← Simulator.CompanyCONTENT HISTORY

Update to Simulator.Company

Snapshot Oct 24, 2026 · 13:31 UTC · version 2.10.0

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save Simulator.Company and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Simulator.Company files & attachments specialist. Use when the user wants to upload a file, attach a document/image to an actor or comment, list/rename/detach workspace files. Activate when the user says \"upload a file\", \"attach this document\", \"add an attachment\", \"rename the file\", \"detach the file\", \"list workspace files\", \"завантаж файл\", \"прикріпи файл/документ\", \"відкріпи вкладення\", \"загрузи файл\", \"прикрепи документ\". For setting an actor's picture/avatar use the `uploadActorPicture` engine tool; for comments that carry files use `simulator-reactions`.\n",
  "included_files": [],
  "name": "simulator-attachments",
  "skill_md_contents": "---\nname: simulator-attachments\ndescription: >\n  Simulator.Company files & attachments specialist. Use when the user wants to upload a\n  file, attach a document/image to an actor or comment, list/rename/detach workspace files.\n  Activate when the user says \"upload a file\", \"attach this document\", \"add an attachment\",\n  \"rename the file\", \"detach the file\", \"list workspace files\", \"завантаж файл\",\n  \"прикріпи файл/документ\", \"відкріпи вкладення\", \"загрузи файл\", \"прикрепи документ\".\n  For setting an actor's picture/avatar use the `uploadActorPicture` engine tool; for\n  comments that carry files use `simulator-reactions`.\n---\n\n> **Curated tool names (v2 server):** `uploadBase64`, `getAttachments`, `getActorAttachments`,\n> `addAttachments`, `updateAttachment`, `removeAttachments`. Plus the engine tools\n> `uploadActorPicture` / `uploadActorPictureBulk` for actor avatars. Call them by these exact names.\n\n# Simulator.Company Files & Attachments Specialist\n\nA **file** is uploaded once into the workspace and becomes an **attachment record** (with an\n`attachId`). You then **link** that record to actors or reactions. Listing, renaming and\nunlinking operate on the record.\n\n> **Relationship to the other skills**\n> - **`simulator-reactions`** — a comment can carry files via its `attachments:[{attachId}]`.\n> - **`simulator-actors`** — `uploadActorPicture` sets an actor's avatar (an engine tool, not here).\n\n## The flow: upload → attachId → link\n\n1. **Upload** the bytes → get the attachment record (`attachId`, stored `fileName`).\n2. **Link** the `attachId` to an actor/reaction (or pass it in a reaction's `attachments`).\n3. **Manage** it later (rename, list, unlink).\n\n## Workspace context\n\n`uploadBase64`, `getAttachments`, `addAttachments`, `removeAttachments` take an `accId`\n(workspace id) — it defaults to the configured workspace if omitted. `updateAttachment`\nis addressed by `attachId` only.\n\n---\n\n## Upload a file\n\n```\nuploadBase64(\n  accId=\"ws_xxx\",                  # optional — defaults to the configured workspace\n  file=\"<base64 string>\",          # prefer RAW base64; a data:<mime>;base64, prefix is also stripped server-side\n  originalName=\"report.pdf\",       # sets the type + title\n  ttl=0)                           # seconds; 0 = permanent\n# → returns the attachment record incl. attachId + fileName\n```\n\n> Prefer raw base64. A `data:` URI prefix is accepted and stripped server-side, but raw base64\n> is the safe default. Multipart uploads are not a curated tool — use `uploadActorPicture` for\n> actor images, or `uploadBase64` for everything else.\n\n## Link / unlink files\n\n```\naddAttachments(accId=\"ws_xxx\", items=[\n  { \"attachId\": 5521, \"actorId\": \"<actor or reaction UUID>\" }\n])\nremoveAttachments(accId=\"ws_xxx\", items=[\n  { \"attachId\": 5521, \"actorId\": \"<actor or reaction UUID>\" }\n])   # unlinks; does NOT delete the stored file\n```\n\n## List & rename\n\n```\ngetAttachments(accId=\"ws_xxx\", limit=50, orderBy=\"created_at\", orderValue=\"DESC\")  # all files in the workspace\ngetActorAttachments(actorId=\"<actor UUID>\", limit=100)                             # only files linked to one actor\nupdateAttachment(attachId=5521, title=\"Q3 report.pdf\")\n```\n\n> Use `getActorAttachments` when you want a single actor's files; `getAttachments` lists the\n> whole workspace. `getActorAttachments` is addressed by `actorId` (no `accId`).\n\n## End-to-end: attach a PDF to an actor\n\n```\n# 1. upload\nuploadBase64(originalName=\"contract.pdf\", file=\"<base64>\")   → attachId 5521\n# 2. link it to the actor\naddAttachments(items=[{ \"attachId\": 5521, \"actorId\": \"<actor UUID>\" }])\n# (or attach to a comment instead — see simulator-reactions: createReaction(..., attachments=[{attachId:5521}]))\n```\n\n---\n\n## Reference Documents\n\n| Path | When to read |\n|---|---|\n| `$CLAUDE_PLUGIN_ROOT/docs/entities/attachments.md` | Attachment model, statuses, storage, virus-scan flow |\n| `$CLAUDE_PLUGIN_ROOT/docs/entities/reactions.md` | Attaching files to comments |\n\n## Tips\n\n- Upload first to get an `attachId`, then `addAttachments` (or a reaction's `attachments`).\n- `removeAttachments` only **unlinks** — it does not delete the stored bytes.\n- `uploadBase64` prefers raw base64; a `data:<mime>;base64,` prefix is stripped server-side.\n- For an actor's avatar/picture use `uploadActorPicture` (handles URL / local path / base64, auto-rasterises SVG).\n- `addAttachments`/`removeAttachments` `items` need BOTH `attachId` and `actorId` per entry.\n"
}

SHA-256 of public snapshot: 36bbd2396529bcc94eaaa943da77f956da64fb4a3fc8de57f493de1060a1fc85