pmx-canvas 0.11.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/.github/extensions/pmx-canvas/extension.mjs +4 -1
  2. package/.github/extensions/pmx-canvas/runtime.json +1 -1
  3. package/.github/extensions/pmx-canvas/tools.json +440 -18
  4. package/CHANGELOG.md +51 -0
  5. package/dist/amp-plugin/pmx-canvas/LICENSE +21 -0
  6. package/dist/amp-plugin/pmx-canvas/THIRD_PARTY_LICENSES.txt +331 -0
  7. package/dist/amp-plugin/pmx-canvas/index.js +5445 -0
  8. package/dist/amp-plugin/pmx-canvas/runtime.json +3 -0
  9. package/dist/amp-plugin/pmx-canvas/shared-runtime.mjs +194 -0
  10. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/SKILL.md +267 -0
  11. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/evals.json +1168 -0
  12. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/auth/jwt.ts +17 -0
  13. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/auth/login.ts +12 -0
  14. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/auth/middleware.ts +13 -0
  15. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/routes/auth.ts +13 -0
  16. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/investigation-board/src/handlers/users.ts +27 -0
  17. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/mcp.json +36 -0
  18. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/ax-html-control-surface.md +101 -0
  19. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/codex-app-adapter.md +151 -0
  20. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/excalidraw-diagram-authoring.md +150 -0
  21. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/full-reference.md +1839 -0
  22. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/github-copilot-app-adapter.md +223 -0
  23. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/html-primitives.md +139 -0
  24. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/importing-context.md +132 -0
  25. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/installing-pmx-canvas.md +301 -0
  26. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/tours-and-recording.md +117 -0
  27. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/workbench-workflows.md +908 -0
  28. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas-orchestration/SKILL.md +141 -0
  29. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas-testing/SKILL.md +266 -0
  30. package/dist/amp-plugin/pmx-canvas/start-mcp.mjs +14857 -0
  31. package/dist/amp-plugin/pmx-canvas/tools.json +10963 -0
  32. package/dist/canvas/chunks/{abnfDiagram-N423BO3Z-p8dtp6va.js → abnfDiagram-N423BO3Z-cwtsds5d.js} +1 -1
  33. package/dist/canvas/chunks/architecture-TIHT7OUA-x63cwejs.js +1 -0
  34. package/dist/canvas/chunks/{architectureDiagram-T3A2C74G-5jhmxrzf.js → architectureDiagram-T3A2C74G-b4xc9tpz.js} +3 -3
  35. package/dist/canvas/chunks/{blockDiagram-VBNYF7ZC-pw1fa9yb.js → blockDiagram-VBNYF7ZC-ahp3yxxs.js} +7 -7
  36. package/dist/canvas/chunks/{c4Diagram-5PPSVZJV-x07nq0tt.js → c4Diagram-5PPSVZJV-nappnay7.js} +4 -4
  37. package/dist/canvas/chunks/classDiagram-JCYQIIEL-k1j2xc1t.js +1 -0
  38. package/dist/canvas/chunks/classDiagram-v2-OCEON4UE-33x08xf2.js +1 -0
  39. package/dist/canvas/chunks/{cose-bilkent-JH36ORCC-nm39npq0.js → cose-bilkent-JH36ORCC-a428syda.js} +1 -1
  40. package/dist/canvas/chunks/cynefin-VYW2F7L2-8v6jxfz8.js +1 -0
  41. package/dist/canvas/chunks/{cynefinDiagram-MW4NZA55-vdxrwahz.js → cynefinDiagram-MW4NZA55-nspsqebj.js} +1 -1
  42. package/dist/canvas/chunks/{dagre-VZM6K2ZE-bqdm7wpd.js → dagre-VZM6K2ZE-8y6177fh.js} +2 -2
  43. package/dist/canvas/chunks/{diagram-7IWD3JNH-gs5gpr93.js → diagram-7IWD3JNH-vym028wn.js} +4 -4
  44. package/dist/canvas/chunks/{diagram-B4RE2ZJO-cgwjg47s.js → diagram-B4RE2ZJO-jddqb8sy.js} +1 -1
  45. package/dist/canvas/chunks/{diagram-LBJQPF4R-w3vahpav.js → diagram-LBJQPF4R-bjwbpkrn.js} +1 -1
  46. package/dist/canvas/chunks/{diagram-Q27KOJAE-42837z6h.js → diagram-Q27KOJAE-j6ph6hcx.js} +2 -2
  47. package/dist/canvas/chunks/{diagram-UB23O5K3-4fz83q59.js → diagram-UB23O5K3-p09w8jej.js} +1 -1
  48. package/dist/canvas/chunks/{ebnfDiagram-BXEA7PRR-zphtgegj.js → ebnfDiagram-BXEA7PRR-j975ycq5.js} +1 -1
  49. package/dist/canvas/chunks/{erDiagram-JOGREHBK-zvbbdxp4.js → erDiagram-JOGREHBK-sxp6hjn8.js} +5 -5
  50. package/dist/canvas/chunks/eventmodeling-45OFAUF4-xzfgn6xg.js +1 -0
  51. package/dist/canvas/chunks/flowDiagram-UKHOOZJN-2nsmkskb.js +1 -0
  52. package/dist/canvas/chunks/{ganttDiagram-PKOTCBZU-282jzycm.js → ganttDiagram-PKOTCBZU-4tv230y2.js} +2 -2
  53. package/dist/canvas/chunks/gitGraph-TEB2WS4Q-macbhand.js +1 -0
  54. package/dist/canvas/chunks/{gitGraphDiagram-DS77QQ5N-vqqy6p1b.js → gitGraphDiagram-DS77QQ5N-mqgmnw9g.js} +1 -1
  55. package/dist/canvas/chunks/{index-wgv7en21.js → index-037z5dz2.js} +2 -2
  56. package/dist/canvas/chunks/{index-w2mra17t.js → index-081n3har.js} +1 -1
  57. package/dist/canvas/chunks/{index-353m7b0p.js → index-5n03dmb9.js} +1 -1
  58. package/dist/canvas/chunks/{index-yw8h9vha.js → index-60pgzdqe.js} +1 -1
  59. package/dist/canvas/chunks/index-8g1vb57n.js +2 -0
  60. package/dist/canvas/chunks/{index-vv56h019.js → index-8rjes9r6.js} +1 -1
  61. package/dist/canvas/chunks/{index-nprm96xp.js → index-9022d1n9.js} +1 -1
  62. package/dist/canvas/chunks/{index-194m3hc3.js → index-9b02042t.js} +1 -1
  63. package/dist/canvas/chunks/{index-0rk4gp1g.js → index-ap4q4vez.js} +1 -1
  64. package/dist/canvas/chunks/{index-rh7nv68n.js → index-dyp2nhd3.js} +1 -1
  65. package/dist/canvas/chunks/index-frvta4tm.js +2 -0
  66. package/dist/canvas/chunks/{index-s4j678gj.js → index-h9ycj8n2.js} +1 -1
  67. package/dist/canvas/chunks/{index-fjtdggjn.js → index-mergmj97.js} +2 -2
  68. package/dist/canvas/chunks/index-nwsya6dj.js +301 -0
  69. package/dist/canvas/chunks/{index-3cy1bzwh.js → index-nz8qbd1p.js} +1 -1
  70. package/dist/canvas/chunks/{index-d3b3gqe9.js → index-qhfrazv3.js} +1 -1
  71. package/dist/canvas/chunks/{index-6qmsnxwy.js → index-v119nznk.js} +4 -4
  72. package/dist/canvas/chunks/{index-r2fyc9w1.js → index-vpt37m3d.js} +6 -6
  73. package/dist/canvas/chunks/{index-qj8fxwsf.js → index-y9ma6azy.js} +1 -1
  74. package/dist/canvas/chunks/{index-tb1wf525.js → index-zx0j3a2z.js} +26 -26
  75. package/dist/canvas/chunks/info-DKCQHKI2-a0ykzs9z.js +1 -0
  76. package/dist/canvas/chunks/{infoDiagram-6WML65LV-v1yvggqj.js → infoDiagram-6WML65LV-qv97qq6a.js} +2 -2
  77. package/dist/canvas/chunks/ishikawaDiagram-WSZJBQD7-p9306gh0.js +70 -0
  78. package/dist/canvas/chunks/{journeyDiagram-NVQOT4AX-zjcffveh.js → journeyDiagram-NVQOT4AX-sv67zats.js} +5 -5
  79. package/dist/canvas/chunks/{kanban-definition-27J2QSJJ-dakqtfp1.js → kanban-definition-27J2QSJJ-k2pfam6p.js} +1 -1
  80. package/dist/canvas/chunks/{mermaid.core-j2geswrd.js → mermaid.core-83r0fdce.js} +4 -4
  81. package/dist/canvas/chunks/{mindmap-definition-FAOFIHXS-142xhr3k.js → mindmap-definition-FAOFIHXS-vg2newm1.js} +1 -1
  82. package/dist/canvas/chunks/packet-7NZHBO7P-tqnabcdv.js +1 -0
  83. package/dist/canvas/chunks/{pegDiagram-VL7TDLO6-5wvk7vsd.js → pegDiagram-VL7TDLO6-k2h7zc5n.js} +1 -1
  84. package/dist/canvas/chunks/pie-RZYD4A2V-wke6gyhe.js +1 -0
  85. package/dist/canvas/chunks/{pieDiagram-7S7Q4E2Y-ztdhwycc.js → pieDiagram-7S7Q4E2Y-hg169p1v.js} +2 -2
  86. package/dist/canvas/chunks/{quadrantDiagram-CIZ2JOQS-c5p9gmg6.js → quadrantDiagram-CIZ2JOQS-bxtvsq0b.js} +5 -5
  87. package/dist/canvas/chunks/radar-I7S5WNFK-w7ka0drw.js +1 -0
  88. package/dist/canvas/chunks/railroad-3IZDKUUU-y3vg318x.js +1 -0
  89. package/dist/canvas/chunks/railroad-abnf-AHOZXSZD-6hqvcz3c.js +1 -0
  90. package/dist/canvas/chunks/railroad-ebnf-EBAXGLYW-vcae260m.js +1 -0
  91. package/dist/canvas/chunks/railroad-peg-LSFZ7HO6-0dbyme23.js +1 -0
  92. package/dist/canvas/chunks/{railroadDiagram-AXF67PYL-xkmqkjwf.js → railroadDiagram-AXF67PYL-njyhcp4p.js} +1 -1
  93. package/dist/canvas/chunks/{requirementDiagram-LRYGKXZP-9wm2dyaw.js → requirementDiagram-LRYGKXZP-2z6v09gm.js} +4 -4
  94. package/dist/canvas/chunks/{sankeyDiagram-W5VNT64P-2w19etgb.js → sankeyDiagram-W5VNT64P-15mzam0e.js} +1 -1
  95. package/dist/canvas/chunks/{sequenceDiagram-SI44F4Z6-0jn0vwmz.js → sequenceDiagram-SI44F4Z6-rbshyd2c.js} +12 -12
  96. package/dist/canvas/chunks/{sizeCapture-X5ZJPWSS-x75epwdq.js → sizeCapture-X5ZJPWSS-sg26xwts.js} +1 -1
  97. package/dist/canvas/chunks/{stateDiagram-OKZ733FA-schjpy6d.js → stateDiagram-OKZ733FA-6eahp98e.js} +1 -1
  98. package/dist/canvas/chunks/stateDiagram-v2-UEYNNEHI-tty0ggn5.js +1 -0
  99. package/dist/canvas/chunks/{swimlanes-SLNWSIFB-gkw4xce3.js → swimlanes-SLNWSIFB-ze5db10t.js} +1 -1
  100. package/dist/canvas/chunks/swimlanesDiagram-ULZ7WXOC-thze75gq.js +8 -0
  101. package/dist/canvas/chunks/{timeline-definition-Z64GVDOM-x7nkcy01.js → timeline-definition-Z64GVDOM-vnp7jyy8.js} +3 -3
  102. package/dist/canvas/chunks/treeView-QDETBFTQ-6ysffnm6.js +1 -0
  103. package/dist/canvas/chunks/treemap-6X3UGDF4-m3h9p066.js +1 -0
  104. package/dist/canvas/chunks/vennDiagram-T6HMQDX7-0qrnb7mj.js +34 -0
  105. package/dist/canvas/chunks/wardley-OPB4EBWU-dp37drwx.js +1 -0
  106. package/dist/canvas/chunks/{wardleyDiagram-T6FBY63Y-t1j52t9r.js → wardleyDiagram-T6FBY63Y-8nxg8wqt.js} +4 -4
  107. package/dist/canvas/chunks/{xychartDiagram-ELKLHX3M-38t16pme.js → xychartDiagram-ELKLHX3M-nj921e7s.js} +5 -5
  108. package/dist/canvas/global.css +94 -1
  109. package/dist/canvas/index.js +154 -145
  110. package/dist/canvas/mcp-app.html +600 -498
  111. package/dist/json-render/index.css +1 -1
  112. package/dist/types/client/canvas/BoardMoveDialog.d.ts +2 -0
  113. package/dist/types/client/canvas/EdgeEditor.d.ts +19 -0
  114. package/dist/types/client/canvas/GroupNavigation.d.ts +2 -0
  115. package/dist/types/client/canvas/TextPrompt.d.ts +4 -0
  116. package/dist/types/client/nodes/PromptNode.d.ts +1 -0
  117. package/dist/types/client/nodes/ViewerFrame.d.ts +1 -1
  118. package/dist/types/client/nodes/WorkCard.d.ts +7 -0
  119. package/dist/types/client/nodes/use-ax-surface-bridge.d.ts +1 -0
  120. package/dist/types/client/state/canvas-store.d.ts +15 -0
  121. package/dist/types/client/state/human-store.d.ts +2 -0
  122. package/dist/types/client/state/intent-bridge.d.ts +4 -2
  123. package/dist/types/client/state/relation-store.d.ts +11 -0
  124. package/dist/types/client/types.d.ts +1 -1
  125. package/dist/types/json-render/catalog.d.ts +2 -2
  126. package/dist/types/server/agent-presence.d.ts +1 -0
  127. package/dist/types/server/ax-interaction.d.ts +1 -0
  128. package/dist/types/server/ax-state-manager.d.ts +10 -2
  129. package/dist/types/server/board-local.d.ts +4 -0
  130. package/dist/types/server/board-move.d.ts +38 -0
  131. package/dist/types/server/canvas-db.d.ts +12 -2
  132. package/dist/types/server/canvas-operations.d.ts +5 -6
  133. package/dist/types/server/canvas-provenance.d.ts +1 -1
  134. package/dist/types/server/canvas-serialization.d.ts +1 -0
  135. package/dist/types/server/canvas-state.d.ts +84 -20
  136. package/dist/types/server/card-relocation.d.ts +6 -0
  137. package/dist/types/server/context-reads.d.ts +3 -1
  138. package/dist/types/server/human-presence.d.ts +1 -1
  139. package/dist/types/server/index.d.ts +16 -5
  140. package/dist/types/server/intent-registry.d.ts +8 -4
  141. package/dist/types/server/knowledge-lifecycle.d.ts +4 -2
  142. package/dist/types/server/mutation-history.d.ts +7 -5
  143. package/dist/types/server/operations/registry.d.ts +2 -0
  144. package/dist/types/server/trace-manager.d.ts +1 -0
  145. package/dist/types/shared/ax-kinds.d.ts +6 -0
  146. package/dist/types/shared/ax-surface-protocol.d.ts +8 -0
  147. package/dist/types/shared/human-presence.d.ts +1 -0
  148. package/dist/types/shared/lifecycle-status.d.ts +2 -0
  149. package/docs/RELEASE.md +21 -14
  150. package/docs/agent-plugin.md +22 -2
  151. package/docs/amp-plugin.md +270 -0
  152. package/docs/cli.md +42 -3
  153. package/docs/design/GuestName.dc.html +50 -0
  154. package/docs/design/PluginLogo.svg +7 -0
  155. package/docs/design/WorkCards.dc.html +39 -0
  156. package/docs/design/canvas.json +16 -0
  157. package/docs/design/plugin-logo.png +0 -0
  158. package/docs/design.md +111 -8
  159. package/docs/evals/agents-md-sections.md +38 -0
  160. package/docs/http-api.md +128 -10
  161. package/docs/mcp.md +61 -9
  162. package/docs/node-types.md +71 -1
  163. package/docs/plans/plan-009-tech-debt-backlog.md +1 -1
  164. package/docs/plans/plan-019-post-0.9-roadmap.md +44 -20
  165. package/docs/plans/plan-020-wave-5-work-planning.md +553 -0
  166. package/docs/product-vision-2026-09.md +33 -17
  167. package/docs/sdk.md +18 -0
  168. package/package.json +6 -3
  169. package/plugins/pmx-canvas/assets/preview.png +0 -0
  170. package/plugins/pmx-canvas/com.github.copilot/extensions/pmx-canvas/extension.mjs +4 -1
  171. package/plugins/pmx-canvas/com.github.copilot/extensions/pmx-canvas/runtime.json +1 -1
  172. package/plugins/pmx-canvas/plugin.json +2 -2
  173. package/plugins/pmx-canvas/runtime.json +1 -1
  174. package/plugins/pmx-canvas/tools.json +440 -18
  175. package/skills/data-analysis/SKILL.md +13 -26
  176. package/skills/frontend-design/LICENSE.txt +177 -0
  177. package/skills/frontend-design/SKILL.md +3 -0
  178. package/skills/pmx-canvas/SKILL.md +248 -842
  179. package/skills/pmx-canvas/evals/evals.json +110 -5
  180. package/skills/pmx-canvas/references/full-reference.md +142 -28
  181. package/skills/pmx-canvas/references/html-primitives.md +7 -0
  182. package/skills/pmx-canvas/references/installing-pmx-canvas.md +61 -11
  183. package/skills/pmx-canvas/references/tours-and-recording.md +39 -6
  184. package/skills/pmx-canvas/references/workbench-workflows.md +908 -0
  185. package/skills/pmx-canvas-testing/SKILL.md +7 -5
  186. package/skills/published-consumer-e2e/SKILL.md +25 -8
  187. package/skills/published-consumer-e2e/scripts/run-published-consumer-e2e.sh +51 -75
  188. package/skills/web-artifacts-builder/LICENSE.txt +202 -0
  189. package/skills/web-artifacts-builder/SKILL.md +6 -0
  190. package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +2 -2
  191. package/skills/web-artifacts-builder/scripts/init-artifact.sh +8 -8
  192. package/src/cli/commands/apps.ts +1 -0
  193. package/src/cli/commands/boards.ts +30 -0
  194. package/src/client/App.tsx +20 -4
  195. package/src/client/canvas/AttentionHistory.tsx +10 -2
  196. package/src/client/canvas/BoardMoveDialog.tsx +225 -0
  197. package/src/client/canvas/CanvasNode.tsx +45 -2
  198. package/src/client/canvas/CanvasViewport.tsx +38 -9
  199. package/src/client/canvas/ContextMenu.tsx +34 -12
  200. package/src/client/canvas/EdgeEditor.tsx +149 -0
  201. package/src/client/canvas/EdgeLayer.tsx +87 -16
  202. package/src/client/canvas/ExpandedNodeOverlay.tsx +4 -0
  203. package/src/client/canvas/GroupNavigation.tsx +85 -0
  204. package/src/client/canvas/RelationsPanel.tsx +9 -0
  205. package/src/client/canvas/SelectionBar.tsx +21 -0
  206. package/src/client/canvas/SessionPanel.tsx +35 -1
  207. package/src/client/canvas/TextPrompt.tsx +18 -1
  208. package/src/client/canvas/TopBar.tsx +30 -0
  209. package/src/client/canvas/canvas-area.ts +1 -1
  210. package/src/client/nodes/ExtAppFrame.tsx +26 -10
  211. package/src/client/nodes/MarkdownNode.tsx +6 -7
  212. package/src/client/nodes/PromptNode.tsx +32 -3
  213. package/src/client/nodes/StatusNode.tsx +12 -0
  214. package/src/client/nodes/StatusSummary.tsx +11 -0
  215. package/src/client/nodes/ViewerFrame.tsx +21 -10
  216. package/src/client/nodes/WorkCard.tsx +175 -0
  217. package/src/client/nodes/use-ax-surface-bridge.ts +18 -14
  218. package/src/client/state/attention-bridge.ts +5 -0
  219. package/src/client/state/attention-store.ts +1 -0
  220. package/src/client/state/canvas-store.ts +185 -15
  221. package/src/client/state/human-store.ts +22 -2
  222. package/src/client/state/intent-bridge.ts +19 -5
  223. package/src/client/state/relation-store.ts +127 -1
  224. package/src/client/theme/global.css +94 -1
  225. package/src/client/types.ts +1 -0
  226. package/src/mcp/server.ts +13 -3
  227. package/src/server/agent-presence.ts +43 -23
  228. package/src/server/ax-flow-loop.ts +6 -0
  229. package/src/server/ax-gate-ttl.ts +8 -1
  230. package/src/server/ax-interaction.ts +16 -10
  231. package/src/server/ax-state-manager.ts +17 -4
  232. package/src/server/ax-wait.ts +20 -6
  233. package/src/server/board-export.ts +19 -6
  234. package/src/server/board-local.ts +20 -0
  235. package/src/server/board-move.ts +297 -0
  236. package/src/server/canvas-db.ts +262 -160
  237. package/src/server/canvas-operations.ts +139 -109
  238. package/src/server/canvas-schema.ts +21 -0
  239. package/src/server/canvas-serialization.ts +2 -0
  240. package/src/server/canvas-state.ts +792 -159
  241. package/src/server/card-relocation.ts +53 -0
  242. package/src/server/code-graph.ts +4 -3
  243. package/src/server/context-reads.ts +83 -55
  244. package/src/server/demo-state.json +35 -15
  245. package/src/server/file-watcher.ts +30 -10
  246. package/src/server/human-presence.ts +18 -5
  247. package/src/server/index.ts +35 -15
  248. package/src/server/intent-registry.ts +43 -5
  249. package/src/server/knowledge-lifecycle.ts +32 -9
  250. package/src/server/lifecycle-status.ts +29 -1
  251. package/src/server/mcp-app-runtime.ts +26 -7
  252. package/src/server/mutation-history.ts +37 -8
  253. package/src/server/operations/composites.ts +6 -3
  254. package/src/server/operations/mcp-contracts.ts +15 -0
  255. package/src/server/operations/mcp.ts +36 -9
  256. package/src/server/operations/ops/annotation.ts +22 -1
  257. package/src/server/operations/ops/ax-await.ts +1 -0
  258. package/src/server/operations/ops/ax-timeline.ts +28 -2
  259. package/src/server/operations/ops/batch.ts +25 -11
  260. package/src/server/operations/ops/boards.ts +44 -3
  261. package/src/server/operations/ops/nodes.ts +70 -0
  262. package/src/server/operations/ops/query.ts +32 -3
  263. package/src/server/operations/ops/snapshots.ts +1 -0
  264. package/src/server/operations/registry.ts +49 -4
  265. package/src/server/server.ts +62 -16
  266. package/src/server/tour-control.ts +37 -12
  267. package/src/server/trace-manager.ts +4 -0
  268. package/src/server/web-artifacts/scripts/bundle-artifact.sh +2 -2
  269. package/src/server/web-artifacts/scripts/init-artifact.sh +8 -8
  270. package/src/shared/agent-context.ts +7 -1
  271. package/src/shared/auto-arrange.ts +5 -4
  272. package/src/shared/ax-kinds.ts +13 -0
  273. package/src/shared/ax-surface-protocol.ts +22 -0
  274. package/src/shared/human-presence.ts +1 -0
  275. package/src/shared/lifecycle-status.ts +2 -0
  276. package/dist/canvas/chunks/architecture-TIHT7OUA-9tffvpsv.js +0 -1
  277. package/dist/canvas/chunks/classDiagram-JCYQIIEL-nc6g5x1r.js +0 -1
  278. package/dist/canvas/chunks/classDiagram-v2-OCEON4UE-0qnbpwvh.js +0 -1
  279. package/dist/canvas/chunks/cynefin-VYW2F7L2-ys8p46ts.js +0 -1
  280. package/dist/canvas/chunks/eventmodeling-45OFAUF4-v9q6dn4c.js +0 -1
  281. package/dist/canvas/chunks/flowDiagram-UKHOOZJN-yrr5z8tc.js +0 -1
  282. package/dist/canvas/chunks/gitGraph-TEB2WS4Q-kdwb8m0a.js +0 -1
  283. package/dist/canvas/chunks/index-1r72hdzb.js +0 -301
  284. package/dist/canvas/chunks/index-g3pwnqeb.js +0 -2
  285. package/dist/canvas/chunks/index-rft2hcz5.js +0 -2
  286. package/dist/canvas/chunks/info-DKCQHKI2-wpzs6sz3.js +0 -1
  287. package/dist/canvas/chunks/ishikawaDiagram-WSZJBQD7-5hnq1a9p.js +0 -70
  288. package/dist/canvas/chunks/packet-7NZHBO7P-xn439f0s.js +0 -1
  289. package/dist/canvas/chunks/pie-RZYD4A2V-0kf16rwh.js +0 -1
  290. package/dist/canvas/chunks/radar-I7S5WNFK-0g2pz36t.js +0 -1
  291. package/dist/canvas/chunks/railroad-3IZDKUUU-fcaran6j.js +0 -1
  292. package/dist/canvas/chunks/railroad-abnf-AHOZXSZD-wgdya41q.js +0 -1
  293. package/dist/canvas/chunks/railroad-ebnf-EBAXGLYW-gy07a4ka.js +0 -1
  294. package/dist/canvas/chunks/railroad-peg-LSFZ7HO6-ewk6wtkh.js +0 -1
  295. package/dist/canvas/chunks/stateDiagram-v2-UEYNNEHI-k8sfp2e7.js +0 -1
  296. package/dist/canvas/chunks/swimlanesDiagram-ULZ7WXOC-nqysw67j.js +0 -8
  297. package/dist/canvas/chunks/treeView-QDETBFTQ-cesw6gp0.js +0 -1
  298. package/dist/canvas/chunks/treemap-6X3UGDF4-zdv4knp9.js +0 -1
  299. package/dist/canvas/chunks/vennDiagram-T6HMQDX7-x8dqn9yf.js +0 -34
  300. package/dist/canvas/chunks/wardley-OPB4EBWU-44pdddez.js +0 -1
@@ -105,6 +105,16 @@
105
105
  "reason": {
106
106
  "description": "Why these nodes matter; kept with newly pinned nodes and shown to the human on hover.",
107
107
  "type": "string"
108
+ },
109
+ "targetBoardId": {
110
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
111
+ "type": "string",
112
+ "minLength": 1
113
+ },
114
+ "agentId": {
115
+ "description": "Stable agent/thread identity for attribution and scope fences.",
116
+ "type": "string",
117
+ "minLength": 1
108
118
  }
109
119
  },
110
120
  "required": [
@@ -292,6 +302,16 @@
292
302
  "sdk",
293
303
  "system"
294
304
  ]
305
+ },
306
+ "targetBoardId": {
307
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
308
+ "type": "string",
309
+ "minLength": 1
310
+ },
311
+ "agentId": {
312
+ "description": "Stable agent/thread identity for attribution and scope fences.",
313
+ "type": "string",
314
+ "minLength": 1
295
315
  }
296
316
  },
297
317
  "required": [
@@ -455,7 +475,7 @@
455
475
  },
456
476
  {
457
477
  "name": "canvas_batch",
458
- "description": "Run a non-atomic batch of canvas operations with optional assigned references. Use assign to name a result, then reference it later as \"$name\" for the created node id or \"$name.id\" for a specific result field. On failure, earlier successful operations remain applied and the response includes ok:false, failedIndex, error, results, and refs. Supports node.add, node.update, node.remove, graph.add, edge.add, edge.remove, group.create, group.add, group.remove, pin.set/add/remove, snapshot.save, and arrange.",
478
+ "description": "Run a non-atomic batch of canvas operations with optional assigned references. Use assign to name a result, then reference it later as \"$name\" for the created node id or \"$name.id\" for a specific result field. On failure, earlier successful operations remain applied and the response includes ok:false, failedIndex, error, results, and refs. Supports node.add, node.update, node.remove, graph.add, edge.add, edge.remove, group.create, group.add, group.remove, annotation.add, annotation.remove, pin.set/add/remove, snapshot.save, and arrange.",
459
479
  "inputSchema": {
460
480
  "type": "object",
461
481
  "properties": {
@@ -487,6 +507,11 @@
487
507
  },
488
508
  "description": "Ordered array of batch operations"
489
509
  },
510
+ "agentId": {
511
+ "description": "Stable agent/thread identity for attribution and scope fences.",
512
+ "type": "string",
513
+ "minLength": 1
514
+ },
490
515
  "full": {
491
516
  "description": "Return full batch operation results. Default false compacts node-like payloads.",
492
517
  "type": "boolean"
@@ -494,6 +519,11 @@
494
519
  "verbose": {
495
520
  "description": "Alias for full:true.",
496
521
  "type": "boolean"
522
+ },
523
+ "targetBoardId": {
524
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
525
+ "type": "string",
526
+ "minLength": 1
497
527
  }
498
528
  },
499
529
  "required": [
@@ -934,6 +964,16 @@
934
964
  },
935
965
  "reason": {
936
966
  "type": "string"
967
+ },
968
+ "targetBoardId": {
969
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
970
+ "type": "string",
971
+ "minLength": 1
972
+ },
973
+ "agentId": {
974
+ "description": "Stable agent/thread identity for attribution and scope fences.",
975
+ "type": "string",
976
+ "minLength": 1
937
977
  }
938
978
  },
939
979
  "required": [
@@ -1323,6 +1363,16 @@
1323
1363
  "snapshot": {
1324
1364
  "type": "string",
1325
1365
  "description": "Snapshot name or ID to compare against"
1366
+ },
1367
+ "targetBoardId": {
1368
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
1369
+ "type": "string",
1370
+ "minLength": 1
1371
+ },
1372
+ "agentId": {
1373
+ "description": "Stable agent/thread identity for attribution and scope fences.",
1374
+ "type": "string",
1375
+ "minLength": 1
1326
1376
  }
1327
1377
  },
1328
1378
  "required": [
@@ -1736,7 +1786,7 @@
1736
1786
  },
1737
1787
  {
1738
1788
  "name": "canvas_board",
1739
- "description": "Knowledge data: knowledge-list reads categories/folders/shared relation presets; category-set replaces category (id/name/glyph/decayType/rate/triggers/revalidationMethod); category-remove deletes an unused category by id (explicit folder assignments, including empty folders, refuse deletion); relation-preset-set saves preset (id/name/vocabulary); relation-preset-remove deletes a template without changing existing board vocabularies; folder-set replaces path/categoryId/lifecycleOverride (null inherits). These workspace actions never open a board and are refused under agent scope fences. Boards in this workspace — the library of the human's and your working memory, filed in folders on Home. Your writes always go to the open board (activeBoardId); on Home (no board open) your first write opens the most recent board, or a new one when there are none. Action \"list\" returns every board (with its folder), most recently opened first; \"get\" reads one (default: the open board); \"create\" makes a new empty board WITHOUT opening it (optional folder); \"open\" explicitly switches the server active board to id (null or omitted opens Home), changing the subsequent write target. Humans browsing Map/Graph stay in the library until they explicitly open a board/card; do not infer activeBoardId from their visible library. After creating a board, open its returned id and verify activeBoardId before writing; another participant can switch the board later. \"update\" renames a board, files it under a folder (folder \"\" removes it), or designates its README via readmeNodeId. As part of normal board authoring, read the board metadata; if readmeNodeId is null, choose or create a concise markdown introduction explaining its purpose and key context, then designate that node with \"update\". Preserve an existing README unless the human asks to change it; humans can override the designation manually. \"pin\" adds a board to the working set (its README and pinned cards reach your brief whichever board is open; optional reason), \"unpin\" removes it; a pinned board is read-only context, never a write target. Only the human deletes boards.",
1789
+ "description": "\"move-selection\" previews or atomically relocates selected cards and group descendants to a new board, preserves identity and leaves a portal. Supply sourceBoardId, nodeIds, name, expectedRevision and requestId; preview:true reports blockers and the Undo/snapshot boundary. Retry identical input with the same requestId. It never opens the destination. Knowledge data: knowledge-list reads categories/folders/shared relation presets; category-set replaces category (id/name/glyph/decayType/rate/triggers/revalidationMethod); category-remove deletes an unused category by id (explicit folder assignments, including empty folders, refuse deletion); relation-preset-set saves preset (id/name/vocabulary); relation-preset-remove deletes a template without changing existing board vocabularies; folder-set replaces path/categoryId/lifecycleOverride (null inherits). These workspace actions never open a board and are refused under agent scope fences. Boards in this workspace — the library of the human's and your working memory, filed in folders on Home. Your writes always go to the open board (activeBoardId); on Home (no board open) your first write opens the most recent board, or a new one when there are none. Action \"list\" returns every board (with its folder), most recently opened first; \"get\" reads one (default: the open board); \"create\" makes a new empty board WITHOUT opening it (optional folder); \"open\" explicitly switches the server active board to id (null or omitted opens Home), changing the subsequent write target. Humans browsing Map/Graph stay in the library until they explicitly open a board/card; do not infer activeBoardId from their visible library. After creating a board, open its returned id and verify activeBoardId before writing; another participant can switch the board later. \"update\" renames a board, files it under a folder (folder \"\" removes it), or designates its README via readmeNodeId. As part of normal board authoring, read the board metadata; if readmeNodeId is null, choose or create a concise markdown introduction explaining its purpose and key context, then designate that node with \"update\". Preserve an existing README unless the human asks to change it; humans can override the designation manually. \"pin\" adds a board to the working set (its README and pinned cards reach your brief whichever board is open; optional reason), \"unpin\" removes it; a pinned board is read-only context, never a write target. Only the human deletes boards.",
1740
1790
  "inputSchema": {
1741
1791
  "type": "object",
1742
1792
  "properties": {
@@ -1747,6 +1797,7 @@
1747
1797
  "get",
1748
1798
  "create",
1749
1799
  "create-from",
1800
+ "move-selection",
1750
1801
  "open",
1751
1802
  "update",
1752
1803
  "knowledge-list",
@@ -1758,7 +1809,7 @@
1758
1809
  "pin",
1759
1810
  "unpin"
1760
1811
  ],
1761
- "description": "Operation to perform: list | get | create | create-from | open | update | pin | unpin | knowledge-list | category-set | category-remove | relation-preset-set | relation-preset-remove | folder-set."
1812
+ "description": "Operation to perform: list | get | create | create-from | move-selection | open | update | pin | unpin | knowledge-list | category-set | category-remove | relation-preset-set | relation-preset-remove | folder-set."
1762
1813
  },
1763
1814
  "id": {
1764
1815
  "description": "Board id (default: the open board)"
@@ -1789,6 +1840,16 @@
1789
1840
  "description": "Return reusable cards and structure without creating",
1790
1841
  "type": "boolean"
1791
1842
  },
1843
+ "expectedRevision": {
1844
+ "type": "integer",
1845
+ "minimum": 0,
1846
+ "maximum": 9007199254740991
1847
+ },
1848
+ "requestId": {
1849
+ "type": "string",
1850
+ "minLength": 1,
1851
+ "maxLength": 200
1852
+ },
1792
1853
  "relationVocabulary": {
1793
1854
  "description": "Board relation vocabulary: open kinds with a meaning ink and direction",
1794
1855
  "maxItems": 64,
@@ -2042,6 +2103,16 @@
2042
2103
  "reason": {
2043
2104
  "description": "Why this board matters; shown to the human on hover",
2044
2105
  "type": "string"
2106
+ },
2107
+ "targetBoardId": {
2108
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
2109
+ "type": "string",
2110
+ "minLength": 1
2111
+ },
2112
+ "agentId": {
2113
+ "description": "Stable agent/thread identity for attribution and scope fences.",
2114
+ "type": "string",
2115
+ "minLength": 1
2045
2116
  }
2046
2117
  },
2047
2118
  "required": [
@@ -2297,6 +2368,109 @@
2297
2368
  ],
2298
2369
  "additionalProperties": false
2299
2370
  },
2371
+ {
2372
+ "type": "object",
2373
+ "properties": {
2374
+ "operation": {
2375
+ "type": "string",
2376
+ "const": "board.move-selection"
2377
+ },
2378
+ "outcome": {
2379
+ "type": "string",
2380
+ "const": "success"
2381
+ },
2382
+ "data": {
2383
+ "anyOf": [
2384
+ {
2385
+ "type": "object",
2386
+ "properties": {
2387
+ "ok": {
2388
+ "type": "boolean"
2389
+ },
2390
+ "preview": {
2391
+ "type": "object",
2392
+ "properties": {
2393
+ "sourceBoardId": {
2394
+ "type": "string",
2395
+ "minLength": 1
2396
+ },
2397
+ "nodeIds": {
2398
+ "type": "array",
2399
+ "items": {
2400
+ "type": "string",
2401
+ "minLength": 1
2402
+ }
2403
+ },
2404
+ "blockers": {
2405
+ "type": "array",
2406
+ "items": {
2407
+ "type": "string"
2408
+ }
2409
+ }
2410
+ },
2411
+ "required": [
2412
+ "sourceBoardId",
2413
+ "nodeIds",
2414
+ "blockers"
2415
+ ],
2416
+ "additionalProperties": {}
2417
+ }
2418
+ },
2419
+ "required": [
2420
+ "ok",
2421
+ "preview"
2422
+ ],
2423
+ "additionalProperties": {}
2424
+ },
2425
+ {
2426
+ "type": "object",
2427
+ "properties": {
2428
+ "ok": {
2429
+ "type": "boolean"
2430
+ },
2431
+ "sourceBoardId": {
2432
+ "type": "string",
2433
+ "minLength": 1
2434
+ },
2435
+ "destinationBoardId": {
2436
+ "type": "string",
2437
+ "minLength": 1
2438
+ },
2439
+ "portalId": {
2440
+ "type": "string",
2441
+ "minLength": 1
2442
+ },
2443
+ "nodeIds": {
2444
+ "type": "array",
2445
+ "items": {
2446
+ "type": "string",
2447
+ "minLength": 1
2448
+ }
2449
+ },
2450
+ "replayed": {
2451
+ "type": "boolean"
2452
+ }
2453
+ },
2454
+ "required": [
2455
+ "ok",
2456
+ "sourceBoardId",
2457
+ "destinationBoardId",
2458
+ "portalId",
2459
+ "nodeIds",
2460
+ "replayed"
2461
+ ],
2462
+ "additionalProperties": {}
2463
+ }
2464
+ ]
2465
+ }
2466
+ },
2467
+ "required": [
2468
+ "operation",
2469
+ "outcome",
2470
+ "data"
2471
+ ],
2472
+ "additionalProperties": false
2473
+ },
2300
2474
  {
2301
2475
  "type": "object",
2302
2476
  "properties": {
@@ -2577,6 +2751,7 @@
2577
2751
  "board.get",
2578
2752
  "board.create",
2579
2753
  "board.create-from",
2754
+ "board.move-selection",
2580
2755
  "board.open",
2581
2756
  "board.update",
2582
2757
  "knowledge.list",
@@ -3026,6 +3201,16 @@
3026
3201
  }
3027
3202
  ]
3028
3203
  }
3204
+ },
3205
+ "targetBoardId": {
3206
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
3207
+ "type": "string",
3208
+ "minLength": 1
3209
+ },
3210
+ "agentId": {
3211
+ "description": "Stable agent/thread identity for attribution and scope fences.",
3212
+ "type": "string",
3213
+ "minLength": 1
3029
3214
  }
3030
3215
  },
3031
3216
  "required": [
@@ -3752,6 +3937,16 @@
3752
3937
  "heightPx": {
3753
3938
  "description": "SDK alias for nodeHeight (node frame height)",
3754
3939
  "type": "number"
3940
+ },
3941
+ "targetBoardId": {
3942
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
3943
+ "type": "string",
3944
+ "minLength": 1
3945
+ },
3946
+ "agentId": {
3947
+ "description": "Stable agent/thread identity for attribution and scope fences.",
3948
+ "type": "string",
3949
+ "minLength": 1
3755
3950
  }
3756
3951
  },
3757
3952
  "required": [
@@ -4232,6 +4427,16 @@
4232
4427
  "edge_id": {
4233
4428
  "description": "Alias for id (legacy HTTP body field)",
4234
4429
  "type": "string"
4430
+ },
4431
+ "targetBoardId": {
4432
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
4433
+ "type": "string",
4434
+ "minLength": 1
4435
+ },
4436
+ "agentId": {
4437
+ "description": "Stable agent/thread identity for attribution and scope fences.",
4438
+ "type": "string",
4439
+ "minLength": 1
4235
4440
  }
4236
4441
  },
4237
4442
  "required": [
@@ -4544,6 +4749,16 @@
4544
4749
  "groupId": {
4545
4750
  "description": "The group node ID",
4546
4751
  "type": "string"
4752
+ },
4753
+ "targetBoardId": {
4754
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
4755
+ "type": "string",
4756
+ "minLength": 1
4757
+ },
4758
+ "agentId": {
4759
+ "description": "Stable agent/thread identity for attribution and scope fences.",
4760
+ "type": "string",
4761
+ "minLength": 1
4547
4762
  }
4548
4763
  },
4549
4764
  "required": [
@@ -4819,6 +5034,16 @@
4819
5034
  "redo"
4820
5035
  ],
4821
5036
  "description": "Operation to perform: undo | redo."
5037
+ },
5038
+ "targetBoardId": {
5039
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
5040
+ "type": "string",
5041
+ "minLength": 1
5042
+ },
5043
+ "agentId": {
5044
+ "description": "Stable agent/thread identity for attribution and scope fences.",
5045
+ "type": "string",
5046
+ "minLength": 1
4822
5047
  }
4823
5048
  },
4824
5049
  "required": [
@@ -4984,7 +5209,7 @@
4984
5209
  },
4985
5210
  {
4986
5211
  "name": "canvas_view",
4987
- "description": "Canvas viewport and layout control. Action \"arrange\" auto-lays-out nodes (grid/columns/etc.); \"focus\" pans/zooms the viewport to a node; \"fit\" zooms to fit all nodes in view; \"clear\" removes every node and edge from the canvas; \"remove-annotation\" deletes a human-drawn annotation by id; \"get-tour\"/\"set-tour\" read or persist the presentation tour; \"tour-go\" presents a stop (stop index or step next/previous); \"tour-exit\" leaves presentation; \"move\" eases the camera to a nodeId, world rect or viewport over a duration. Camera actions never enter undo history.",
5212
+ "description": "Canvas viewport and layout control. Action \"arrange\" auto-lays-out nodes (grid/columns/etc.); \"focus\" pans/zooms the viewport to a node; \"fit\" zooms to fit all nodes in view; \"clear\" removes every node and edge from the canvas; \"add-annotation\" draws freehand points or text in world coordinates; \"remove-annotation\" erases a whole mark by id; \"get-tour\"/\"set-tour\" read or persist the presentation tour; \"tour-go\" presents a stop (stop index or step next/previous); \"tour-exit\" leaves presentation; \"move\" eases the camera to a nodeId, world rect or viewport over a duration. Camera actions never enter undo history.",
4988
5213
  "inputSchema": {
4989
5214
  "type": "object",
4990
5215
  "properties": {
@@ -5000,9 +5225,10 @@
5000
5225
  "focus",
5001
5226
  "fit",
5002
5227
  "clear",
5228
+ "add-annotation",
5003
5229
  "remove-annotation"
5004
5230
  ],
5005
- "description": "Operation to perform: arrange | focus | fit | clear | remove-annotation | get-tour | set-tour | tour-go | tour-exit | move."
5231
+ "description": "Operation to perform: arrange | focus | fit | clear | add-annotation | remove-annotation | get-tour | set-tour | tour-go | tour-exit | move."
5006
5232
  },
5007
5233
  "tour": {
5008
5234
  "anyOf": [
@@ -5295,6 +5521,51 @@
5295
5521
  "items": {
5296
5522
  "type": "string"
5297
5523
  }
5524
+ },
5525
+ "type": {
5526
+ "type": "string",
5527
+ "enum": [
5528
+ "freehand",
5529
+ "text"
5530
+ ]
5531
+ },
5532
+ "points": {
5533
+ "minItems": 1,
5534
+ "type": "array",
5535
+ "items": {
5536
+ "type": "object",
5537
+ "properties": {
5538
+ "x": {
5539
+ "type": "number"
5540
+ },
5541
+ "y": {
5542
+ "type": "number"
5543
+ }
5544
+ },
5545
+ "required": [
5546
+ "x",
5547
+ "y"
5548
+ ]
5549
+ }
5550
+ },
5551
+ "color": {
5552
+ "type": "string"
5553
+ },
5554
+ "label": {
5555
+ "type": "string"
5556
+ },
5557
+ "text": {
5558
+ "type": "string"
5559
+ },
5560
+ "targetBoardId": {
5561
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
5562
+ "type": "string",
5563
+ "minLength": 1
5564
+ },
5565
+ "agentId": {
5566
+ "description": "Stable agent/thread identity for attribution and scope fences.",
5567
+ "type": "string",
5568
+ "minLength": 1
5298
5569
  }
5299
5570
  },
5300
5571
  "required": [
@@ -6113,6 +6384,51 @@
6113
6384
  ],
6114
6385
  "additionalProperties": false
6115
6386
  },
6387
+ {
6388
+ "type": "object",
6389
+ "properties": {
6390
+ "operation": {
6391
+ "type": "string",
6392
+ "const": "annotation.add"
6393
+ },
6394
+ "outcome": {
6395
+ "type": "string",
6396
+ "const": "success"
6397
+ },
6398
+ "data": {
6399
+ "type": "object",
6400
+ "properties": {
6401
+ "ok": {
6402
+ "type": "boolean"
6403
+ },
6404
+ "annotation": {
6405
+ "type": "object",
6406
+ "properties": {
6407
+ "id": {
6408
+ "type": "string",
6409
+ "minLength": 1
6410
+ }
6411
+ },
6412
+ "required": [
6413
+ "id"
6414
+ ],
6415
+ "additionalProperties": {}
6416
+ }
6417
+ },
6418
+ "required": [
6419
+ "ok",
6420
+ "annotation"
6421
+ ],
6422
+ "additionalProperties": {}
6423
+ }
6424
+ },
6425
+ "required": [
6426
+ "operation",
6427
+ "outcome",
6428
+ "data"
6429
+ ],
6430
+ "additionalProperties": false
6431
+ },
6116
6432
  {
6117
6433
  "type": "object",
6118
6434
  "properties": {
@@ -6128,6 +6444,7 @@
6128
6444
  "node.focus",
6129
6445
  "view.fit",
6130
6446
  "canvas.clear",
6447
+ "annotation.add",
6131
6448
  "annotation.remove"
6132
6449
  ]
6133
6450
  },
@@ -6251,6 +6568,14 @@
6251
6568
  "budget": {
6252
6569
  "description": "Maximum response size in UTF-16 code units"
6253
6570
  },
6571
+ "contextDelivery": {
6572
+ "description": "False prepares a brief without recording delivery or advancing a cursor.",
6573
+ "type": "boolean"
6574
+ },
6575
+ "includeSteering": {
6576
+ "description": "False omits steering for hosts that deliver it separately.",
6577
+ "type": "boolean"
6578
+ },
6254
6579
  "projection": {
6255
6580
  "default": "full",
6256
6581
  "description": "Full board/card graph, or board-only Map summaries with qualified cross-board and missing relations",
@@ -6318,6 +6643,16 @@
6318
6643
  "verbose": {
6319
6644
  "description": "Alias for full:true.",
6320
6645
  "type": "boolean"
6646
+ },
6647
+ "targetBoardId": {
6648
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
6649
+ "type": "string",
6650
+ "minLength": 1
6651
+ },
6652
+ "agentId": {
6653
+ "description": "Stable agent/thread identity for attribution and scope fences.",
6654
+ "type": "string",
6655
+ "minLength": 1
6321
6656
  }
6322
6657
  },
6323
6658
  "required": [
@@ -6980,6 +7315,16 @@
6980
7315
  "bundleScriptPath": {
6981
7316
  "description": "Optional script path override for tests/debugging. Must resolve inside the workspace.",
6982
7317
  "type": "string"
7318
+ },
7319
+ "targetBoardId": {
7320
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
7321
+ "type": "string",
7322
+ "minLength": 1
7323
+ },
7324
+ "agentId": {
7325
+ "description": "Stable agent/thread identity for attribution and scope fences.",
7326
+ "type": "string",
7327
+ "minLength": 1
6983
7328
  }
6984
7329
  },
6985
7330
  "required": [
@@ -7325,6 +7670,16 @@
7325
7670
  "script": {
7326
7671
  "description": "Multi-statement JavaScript body. The MCP server wraps it in an async IIFE and evaluates the resolved return value.",
7327
7672
  "type": "string"
7673
+ },
7674
+ "targetBoardId": {
7675
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
7676
+ "type": "string",
7677
+ "minLength": 1
7678
+ },
7679
+ "agentId": {
7680
+ "description": "Stable agent/thread identity for attribution and scope fences.",
7681
+ "type": "string",
7682
+ "minLength": 1
7328
7683
  }
7329
7684
  },
7330
7685
  "required": [
@@ -7673,17 +8028,9 @@
7673
8028
  "additionalProperties": {}
7674
8029
  },
7675
8030
  "agentId": {
7676
- "description": "Stable identity for a genuinely separate agent, not a task name. Omit for the main agent when a host adapter already owns its session.",
7677
- "anyOf": [
7678
- {
7679
- "type": "string",
7680
- "minLength": 1,
7681
- "maxLength": 80
7682
- },
7683
- {
7684
- "type": "null"
7685
- }
7686
- ]
8031
+ "description": "Stable agent/thread identity for attribution and scope fences.",
8032
+ "type": "string",
8033
+ "minLength": 1
7687
8034
  },
7688
8035
  "label": {
7689
8036
  "description": "Display name for this writer; use detail for the current task",
@@ -7776,6 +8123,11 @@
7776
8123
  "type": "null"
7777
8124
  }
7778
8125
  ]
8126
+ },
8127
+ "targetBoardId": {
8128
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
8129
+ "type": "string",
8130
+ "minLength": 1
7779
8131
  }
7780
8132
  },
7781
8133
  "required": [
@@ -8013,7 +8365,9 @@
8013
8365
  "description": "Optional host/source label. Defaults to mcp."
8014
8366
  },
8015
8367
  "agentId": {
8016
- "description": "Optional per-agent identity within the host."
8368
+ "description": "Stable agent/thread identity for attribution and scope fences.",
8369
+ "type": "string",
8370
+ "minLength": 1
8017
8371
  },
8018
8372
  "id": {
8019
8373
  "type": "string",
@@ -8075,6 +8429,11 @@
8075
8429
  "author": {
8076
8430
  "description": "Optional author label.",
8077
8431
  "type": "string"
8432
+ },
8433
+ "targetBoardId": {
8434
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
8435
+ "type": "string",
8436
+ "minLength": 1
8078
8437
  }
8079
8438
  },
8080
8439
  "required": [
@@ -8417,6 +8776,16 @@
8417
8776
  },
8418
8777
  "reason": {
8419
8778
  "type": "string"
8779
+ },
8780
+ "targetBoardId": {
8781
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
8782
+ "type": "string",
8783
+ "minLength": 1
8784
+ },
8785
+ "agentId": {
8786
+ "description": "Stable agent/thread identity for attribution and scope fences.",
8787
+ "type": "string",
8788
+ "minLength": 1
8420
8789
  }
8421
8790
  },
8422
8791
  "required": [
@@ -9079,7 +9448,9 @@
9079
9448
  "description": "Optional host/source label. Defaults to mcp."
9080
9449
  },
9081
9450
  "agentId": {
9082
- "description": "Optional per-agent identity within the host."
9451
+ "description": "Stable agent/thread identity for attribution and scope fences.",
9452
+ "type": "string",
9453
+ "minLength": 1
9083
9454
  },
9084
9455
  "title": {
9085
9456
  "type": "string",
@@ -9110,6 +9481,11 @@
9110
9481
  "boards": {
9111
9482
  "description": "Comma-separated board ids: also return each one's latest agent read (pinned boards, in one request).",
9112
9483
  "type": "string"
9484
+ },
9485
+ "targetBoardId": {
9486
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
9487
+ "type": "string",
9488
+ "minLength": 1
9113
9489
  }
9114
9490
  },
9115
9491
  "required": [
@@ -9464,6 +9840,12 @@
9464
9840
  "description": "Max steering messages to return.",
9465
9841
  "type": "number"
9466
9842
  },
9843
+ "offset": {
9844
+ "description": "Skip this many matching pending messages. Restart at zero after an empty page.",
9845
+ "type": "integer",
9846
+ "minimum": 0,
9847
+ "maximum": 9007199254740991
9848
+ },
9467
9849
  "order": {
9468
9850
  "description": "Order of returned steering: \"oldest\" (FIFO, default) for ordered processing, or \"newest\" first to see the latest browser action when limited.",
9469
9851
  "type": "string",
@@ -9472,6 +9854,10 @@
9472
9854
  "oldest"
9473
9855
  ]
9474
9856
  },
9857
+ "addressedOnly": {
9858
+ "description": "Only messages addressed to consumer, excluding broadcasts before applying the limit.",
9859
+ "type": "boolean"
9860
+ },
9475
9861
  "timeoutMs": {
9476
9862
  "description": "Max ms to block until steering arrives (0/omitted = immediate read).",
9477
9863
  "type": "number",
@@ -9481,6 +9867,16 @@
9481
9867
  "id": {
9482
9868
  "type": "string",
9483
9869
  "description": "The steering message id to mark delivered."
9870
+ },
9871
+ "targetBoardId": {
9872
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
9873
+ "type": "string",
9874
+ "minLength": 1
9875
+ },
9876
+ "agentId": {
9877
+ "description": "Stable agent/thread identity for attribution and scope fences.",
9878
+ "type": "string",
9879
+ "minLength": 1
9484
9880
  }
9485
9881
  },
9486
9882
  "required": [
@@ -9792,6 +10188,16 @@
9792
10188
  "settledNodeId": {
9793
10189
  "description": "The real node this intent became — triggers the settle morph.",
9794
10190
  "type": "string"
10191
+ },
10192
+ "targetBoardId": {
10193
+ "description": "Execute on this board without changing the shared workbench view. Nested operations retain this target.",
10194
+ "type": "string",
10195
+ "minLength": 1
10196
+ },
10197
+ "agentId": {
10198
+ "description": "Stable agent/thread identity for attribution and scope fences.",
10199
+ "type": "string",
10200
+ "minLength": 1
9795
10201
  }
9796
10202
  },
9797
10203
  "required": [
@@ -10041,6 +10447,12 @@
10041
10447
  "inputSchema": {
10042
10448
  "type": "object",
10043
10449
  "properties": {
10450
+ "targetBoardId": {
10451
+ "type": "string"
10452
+ },
10453
+ "agentId": {
10454
+ "type": "string"
10455
+ },
10044
10456
  "type": {
10045
10457
  "type": "string",
10046
10458
  "enum": [
@@ -10163,6 +10575,12 @@
10163
10575
  "inputSchema": {
10164
10576
  "type": "object",
10165
10577
  "properties": {
10578
+ "targetBoardId": {
10579
+ "type": "string"
10580
+ },
10581
+ "agentId": {
10582
+ "type": "string"
10583
+ },
10166
10584
  "kind": {
10167
10585
  "type": "string",
10168
10586
  "enum": [
@@ -10450,6 +10868,10 @@
10450
10868
  "inputSchema": {
10451
10869
  "type": "object",
10452
10870
  "properties": {
10871
+ "targetBoardId": {
10872
+ "description": "Not supported: screenshots inspect the shared WebView.",
10873
+ "type": "string"
10874
+ },
10453
10875
  "format": {
10454
10876
  "description": "Screenshot format (default depends on Bun; png recommended)",
10455
10877
  "type": "string",