pmx-canvas 0.8.0 → 0.9.0
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.
- package/.github/extensions/pmx-canvas/runtime.json +1 -1
- package/.github/extensions/pmx-canvas/tools.json +601 -22
- package/CHANGELOG.md +66 -0
- package/Readme.md +131 -532
- package/dist/canvas/global.css +2759 -510
- package/dist/canvas/index.js +168 -107
- package/dist/canvas/mcp-app.html +2936 -632
- package/dist/json-render/index.css +81 -1
- package/dist/json-render/index.js +20 -20
- package/dist/types/client/canvas/BarHint.d.ts +12 -2
- package/dist/types/client/canvas/BoardLinkDialog.d.ts +3 -1
- package/dist/types/client/canvas/BoardPinButton.d.ts +10 -0
- package/dist/types/client/canvas/BoardSwitcher.d.ts +1 -1
- package/dist/types/client/canvas/CanvasViewport.d.ts +1 -1
- package/dist/types/client/canvas/CommandBar.d.ts +3 -4
- package/dist/types/client/canvas/ConnectionBanner.d.ts +2 -1
- package/dist/types/client/canvas/ContextChip.d.ts +3 -0
- package/dist/types/client/canvas/CrossBoardReferences.d.ts +5 -0
- package/dist/types/client/canvas/EdgeLayer.d.ts +14 -3
- package/dist/types/client/canvas/EmptyState.d.ts +4 -4
- package/dist/types/client/canvas/HomeGraphView.d.ts +2 -0
- package/dist/types/client/canvas/HomeMapView.d.ts +1 -0
- package/dist/types/client/canvas/HomeReviewView.d.ts +6 -0
- package/dist/types/client/canvas/HomeView.d.ts +9 -7
- package/dist/types/client/canvas/KnowledgeDialog.d.ts +4 -0
- package/dist/types/client/canvas/LifecycleChrome.d.ts +5 -0
- package/dist/types/client/canvas/LifecycleFields.d.ts +7 -0
- package/dist/types/client/canvas/LifecyclePanel.d.ts +1 -0
- package/dist/types/client/canvas/MemoryInspector.d.ts +7 -0
- package/dist/types/client/canvas/NearPinLayer.d.ts +14 -0
- package/dist/types/client/canvas/NodeContextMark.d.ts +40 -7
- package/dist/types/client/canvas/RelationPresetsDialog.d.ts +4 -0
- package/dist/types/client/canvas/RelationsPanel.d.ts +4 -0
- package/dist/types/client/canvas/SessionPanel.d.ts +2 -0
- package/dist/types/client/canvas/canvas-area.d.ts +1 -1
- package/dist/types/client/canvas/graph-geometry.d.ts +27 -0
- package/dist/types/client/canvas/graph-model.d.ts +37 -0
- package/dist/types/client/canvas/memory-layout.d.ts +23 -0
- package/dist/types/client/canvas/use-chrome-height.d.ts +2 -0
- package/dist/types/client/canvas/use-focus-trap.d.ts +1 -0
- package/dist/types/client/canvas/use-memory-graph.d.ts +8 -0
- package/dist/types/client/canvas/use-pan-zoom.d.ts +4 -1
- package/dist/types/client/icons.d.ts +0 -10
- package/dist/types/client/nodes/AxStepControls.d.ts +1 -1
- package/dist/types/client/nodes/HtmlNode.d.ts +1 -0
- package/dist/types/client/nodes/InlineMarkdownEditor.d.ts +4 -4
- package/dist/types/client/nodes/MarkdownNode.d.ts +5 -1
- package/dist/types/client/nodes/McpAppNode.d.ts +4 -4
- package/dist/types/client/nodes/viewer-runtime-state.d.ts +1 -1
- package/dist/types/client/state/boards-store.d.ts +81 -9
- package/dist/types/client/state/canvas-store.d.ts +14 -1
- package/dist/types/client/state/context-chip-store.d.ts +22 -0
- package/dist/types/client/state/context-status-store.d.ts +35 -0
- package/dist/types/client/state/intent-bridge.d.ts +11 -8
- package/dist/types/client/state/knowledge-store.d.ts +22 -0
- package/dist/types/client/state/near-pin-store.d.ts +44 -1
- package/dist/types/client/state/presence-store.d.ts +4 -4
- package/dist/types/client/state/presentation.d.ts +28 -0
- package/dist/types/client/state/relation-store.d.ts +10 -0
- package/dist/types/client/state/session-store.d.ts +41 -2
- package/dist/types/client/state/workspace-settings.d.ts +7 -0
- package/dist/types/client/types.d.ts +13 -1
- package/dist/types/client/utils/keyboard.d.ts +2 -0
- package/dist/types/client/utils/time-ago.d.ts +4 -0
- package/dist/types/mcp/context-uri-template.d.ts +3 -1
- package/dist/types/server/agent-presence.d.ts +10 -3
- package/dist/types/server/ax-context.d.ts +1 -1
- package/dist/types/server/canvas-db.d.ts +30 -7
- package/dist/types/server/canvas-operations.d.ts +24 -2
- package/dist/types/server/canvas-provenance.d.ts +22 -2
- package/dist/types/server/canvas-serialization.d.ts +2 -0
- package/dist/types/server/canvas-state.d.ts +93 -15
- package/dist/types/server/canvas-validation.d.ts +1 -1
- package/dist/types/server/context-brief.d.ts +94 -6
- package/dist/types/server/context-reads.d.ts +33 -7
- package/dist/types/server/edit-summary.d.ts +20 -0
- package/dist/types/server/index.d.ts +71 -10
- package/dist/types/server/knowledge-lifecycle.d.ts +221 -0
- package/dist/types/server/lifecycle-status.d.ts +10 -0
- package/dist/types/server/memory-graph.d.ts +9 -0
- package/dist/types/server/mutation-history.d.ts +2 -0
- package/dist/types/server/operations/ops/ax-shared.d.ts +1 -1
- package/dist/types/server/operations/ops/boards.d.ts +2 -1
- package/dist/types/server/operations/ops/lifecycle.d.ts +2 -0
- package/dist/types/server/operations/ops/memory-graph.d.ts +2 -0
- package/dist/types/server/operations/ops/nodes.d.ts +5 -0
- package/dist/types/server/operations/ops/query.d.ts +23 -0
- package/dist/types/server/operations/registry.d.ts +1 -0
- package/dist/types/server/placement.d.ts +7 -0
- package/dist/types/server/scope-fence.d.ts +2 -1
- package/dist/types/server/spatial-analysis.d.ts +6 -3
- package/dist/types/server/tour-control.d.ts +32 -0
- package/dist/types/server/wiki-links.d.ts +14 -0
- package/dist/types/server/workbench-auth.d.ts +2 -0
- package/dist/types/shared/agent-context.d.ts +2 -0
- package/dist/types/shared/agent-presence.d.ts +15 -12
- package/dist/types/shared/auto-arrange.d.ts +1 -0
- package/dist/types/shared/boards.d.ts +4 -4
- package/dist/types/shared/knowledge-lifecycle.d.ts +41 -0
- package/dist/types/shared/knowledge-presets.d.ts +6 -0
- package/dist/types/shared/lifecycle-status.d.ts +24 -0
- package/dist/types/shared/memory-graph.d.ts +53 -0
- package/dist/types/shared/relations.d.ts +68 -0
- package/dist/types/shared/semantic-attention.d.ts +2 -0
- package/dist/types/shared/tour.d.ts +38 -0
- package/dist/types/shared/workspace-settings.d.ts +11 -0
- package/docs/RELEASE.md +21 -3
- package/docs/adr-001-bun-only-runtime.md +7 -1
- package/docs/adr-002-shared-product-separate-runtimes.md +93 -0
- package/docs/api-reference.md +109 -0
- package/docs/ax-host-adapter-contract.md +1 -1
- package/docs/ax-state-contract.md +5 -4
- package/docs/cli.md +153 -15
- package/docs/demos/pmx-canvas-demo.mp4 +0 -0
- package/docs/design/AgentContext.dc.html +3 -3
- package/docs/design/BoardPins.dc.html +37 -22
- package/docs/design/Categories.dc.html +208 -0
- package/docs/design/CategoryEditor.dc.html +33 -0
- package/docs/design/Chrome.dc.html +55 -9
- package/docs/design/ContextChip.dc.html +224 -0
- package/docs/design/ContextChip600.dc.html +136 -0
- package/docs/design/EmptyState.dc.html +45 -0
- package/docs/design/Flows.dc.html +23 -1
- package/docs/design/HeaderMarks.dc.html +183 -0
- package/docs/design/Home.dc.html +19 -1
- package/docs/design/HomeGraph.dc.html +86 -202
- package/docs/design/HomeMap.dc.html +23 -1
- package/docs/design/HomeTeam.dc.html +32 -14
- package/docs/design/Lifecycle.dc.html +22 -0
- package/docs/design/Lifecycle600.dc.html +18 -0
- package/docs/design/LifecycleVariants.dc.html +157 -0
- package/docs/design/LinkAuthorship.dc.html +139 -0
- package/docs/design/LinksChanged.dc.html +203 -0
- package/docs/design/LinksOptions.dc.html +137 -0
- package/docs/design/LinksOptions600.dc.html +134 -0
- package/docs/design/NearPin.dc.html +9 -10
- package/docs/design/Pane600.dc.html +4 -3
- package/docs/design/Relations.dc.html +3 -2
- package/docs/design/Restore.dc.html +152 -0
- package/docs/design/SeeChange.dc.html +267 -0
- package/docs/design/Uses.dc.html +12 -6
- package/docs/design/canvas.json +146 -19
- package/docs/design.md +454 -18
- package/docs/environment.md +0 -1
- package/docs/evals/curation-effect.md +128 -0
- package/docs/http-api.md +465 -38
- package/docs/mcp.md +150 -19
- package/docs/node-types.md +58 -3
- package/docs/plans/design-gaps-2026-10-08.md +53 -0
- package/docs/plans/plan-009-tech-debt-backlog.md +379 -0
- package/docs/plans/plan-016-context-made-visible-wave-1.md +150 -5
- package/docs/plans/plan-017-knowledge-categories-and-lifecycle.md +175 -0
- package/docs/plans/plan-018-connected-memory-wave-2.md +594 -0
- package/docs/plans/plan-019-post-0.9-roadmap.md +198 -0
- package/docs/product-context-vision-2026-09.md +17 -1
- package/docs/product-vision-2026-09.md +1082 -43
- package/docs/product-vision-review-2026-09.md +13 -1
- package/docs/screenshots/workbench-live-dark.png +0 -0
- package/docs/screenshots/workbench-live-light.png +0 -0
- package/docs/sdk.md +62 -2
- package/package.json +1 -1
- package/plugins/pmx-canvas/com.github.copilot/extensions/pmx-canvas/runtime.json +1 -1
- package/plugins/pmx-canvas/plugin.json +1 -1
- package/plugins/pmx-canvas/runtime.json +1 -1
- package/plugins/pmx-canvas/tools.json +601 -22
- package/skills/pmx-canvas/SKILL.md +234 -43
- package/skills/pmx-canvas/evals/evals.json +62 -0
- package/skills/pmx-canvas/references/ax-html-control-surface.md +6 -0
- package/skills/pmx-canvas/references/full-reference.md +120 -21
- package/skills/pmx-canvas/references/github-copilot-app-adapter.md +2 -2
- package/skills/pmx-canvas/references/importing-context.md +132 -0
- package/skills/pmx-canvas/references/installing-pmx-canvas.md +6 -6
- package/skills/pmx-canvas/references/tours-and-recording.md +16 -1
- package/skills/pmx-canvas-testing/SKILL.md +20 -0
- package/src/cli/agent.ts +2 -0
- package/src/cli/commands/ax.ts +12 -0
- package/src/cli/commands/boards.ts +87 -11
- package/src/cli/commands/edges.ts +28 -0
- package/src/cli/commands/groups.ts +7 -0
- package/src/cli/commands/nodes.ts +4 -2
- package/src/cli/commands/query.ts +34 -2
- package/src/cli/commands/record.ts +199 -48
- package/src/cli/index.ts +7 -1
- package/src/client/App.tsx +177 -70
- package/src/client/canvas/AttentionHistory.tsx +0 -2
- package/src/client/canvas/BarHint.tsx +40 -2
- package/src/client/canvas/BoardCopyDialog.tsx +1 -1
- package/src/client/canvas/BoardFolderDialog.tsx +7 -7
- package/src/client/canvas/BoardLinkDialog.tsx +138 -33
- package/src/client/canvas/BoardPinButton.tsx +33 -0
- package/src/client/canvas/BoardSwitcher.tsx +26 -40
- package/src/client/canvas/CanvasNode.tsx +360 -237
- package/src/client/canvas/CanvasViewport.tsx +45 -7
- package/src/client/canvas/CommandBar.tsx +29 -23
- package/src/client/canvas/CommandPalette.tsx +5 -12
- package/src/client/canvas/ConnectionBanner.tsx +3 -3
- package/src/client/canvas/ContextChip.tsx +296 -0
- package/src/client/canvas/ContextMenu.tsx +63 -5
- package/src/client/canvas/CrossBoardReferences.tsx +60 -0
- package/src/client/canvas/EdgeLayer.tsx +339 -76
- package/src/client/canvas/EmptyState.tsx +33 -18
- package/src/client/canvas/ExpandedNodeOverlay.tsx +72 -40
- package/src/client/canvas/ExternalWriters.tsx +57 -42
- package/src/client/canvas/HomeGraphView.tsx +942 -0
- package/src/client/canvas/HomeMapView.tsx +641 -0
- package/src/client/canvas/HomeReviewView.tsx +167 -0
- package/src/client/canvas/HomeView.tsx +687 -160
- package/src/client/canvas/IntentLayer.tsx +19 -12
- package/src/client/canvas/KnowledgeDialog.tsx +488 -0
- package/src/client/canvas/LifecycleChrome.tsx +133 -0
- package/src/client/canvas/LifecycleFields.tsx +91 -0
- package/src/client/canvas/LifecyclePanel.tsx +533 -0
- package/src/client/canvas/MemoryInspector.tsx +104 -0
- package/src/client/canvas/Minimap.tsx +3 -3
- package/src/client/canvas/NearPinLayer.tsx +187 -0
- package/src/client/canvas/NodeContextMark.tsx +175 -97
- package/src/client/canvas/Presentation.tsx +23 -57
- package/src/client/canvas/RelationPresetsDialog.tsx +413 -0
- package/src/client/canvas/RelationsPanel.tsx +82 -0
- package/src/client/canvas/SelectionBar.tsx +3 -6
- package/src/client/canvas/SessionPanel.tsx +90 -50
- package/src/client/canvas/SessionReceipt.tsx +311 -39
- package/src/client/canvas/ShortcutOverlay.tsx +1 -1
- package/src/client/canvas/SnapshotPanel.tsx +27 -36
- package/src/client/canvas/ToolRail.tsx +367 -192
- package/src/client/canvas/TopBar.tsx +354 -124
- package/src/client/canvas/canvas-area.ts +10 -3
- package/src/client/canvas/graph-geometry.ts +195 -0
- package/src/client/canvas/graph-model.ts +254 -0
- package/src/client/canvas/memory-layout.ts +106 -0
- package/src/client/canvas/use-chrome-height.ts +20 -0
- package/src/client/canvas/use-focus-trap.ts +31 -5
- package/src/client/canvas/use-memory-graph.ts +58 -0
- package/src/client/canvas/use-node-drag.ts +2 -1
- package/src/client/canvas/use-pan-zoom.ts +64 -7
- package/src/client/icons.tsx +0 -63
- package/src/client/mcp-app/style.css +0 -6
- package/src/client/nodes/AxStepControls.tsx +74 -50
- package/src/client/nodes/BoardNode.tsx +5 -1
- package/src/client/nodes/ContextNode.tsx +18 -11
- package/src/client/nodes/ExtAppFrame.tsx +0 -1
- package/src/client/nodes/FileNode.tsx +46 -42
- package/src/client/nodes/HtmlNode.tsx +44 -2
- package/src/client/nodes/ImageNode.tsx +1 -1
- package/src/client/nodes/InlineFormatBar.tsx +6 -9
- package/src/client/nodes/InlineMarkdownEditor.tsx +56 -17
- package/src/client/nodes/MarkdownNode.tsx +377 -109
- package/src/client/nodes/McpAppNode.tsx +50 -20
- package/src/client/nodes/MdFormatBar.tsx +21 -18
- package/src/client/nodes/PromptNode.tsx +1 -1
- package/src/client/nodes/ResponseNode.tsx +1 -1
- package/src/client/nodes/viewer-runtime-state.ts +54 -22
- package/src/client/state/attention-bridge.ts +64 -15
- package/src/client/state/boards-store.ts +193 -39
- package/src/client/state/canvas-store.ts +99 -12
- package/src/client/state/context-chip-store.ts +70 -0
- package/src/client/state/context-status-store.ts +53 -0
- package/src/client/state/intent-bridge.ts +51 -30
- package/src/client/state/knowledge-store.ts +43 -0
- package/src/client/state/near-pin-store.ts +115 -6
- package/src/client/state/presence-store.ts +7 -10
- package/src/client/state/presentation.ts +91 -0
- package/src/client/state/relation-store.ts +81 -0
- package/src/client/state/session-store.ts +144 -18
- package/src/client/state/sse-bridge.ts +206 -29
- package/src/client/state/workspace-settings.ts +11 -0
- package/src/client/theme/global.css +2759 -510
- package/src/client/types.ts +12 -0
- package/src/client/utils/keyboard.ts +10 -0
- package/src/client/utils/time-ago.ts +14 -0
- package/src/json-render/renderer/index.css +6 -1
- package/src/json-render/renderer/index.tsx +31 -1
- package/src/mcp/canvas-app.ts +12 -2
- package/src/mcp/context-uri-template.ts +7 -4
- package/src/mcp/server.ts +63 -41
- package/src/mcp/workbench-app.ts +39 -6
- package/src/server/agent-presence.ts +128 -28
- package/src/server/ax-context.ts +27 -13
- package/src/server/board-export.ts +12 -1
- package/src/server/canvas-db.ts +331 -42
- package/src/server/canvas-operations.ts +196 -84
- package/src/server/canvas-provenance.ts +53 -22
- package/src/server/canvas-serialization.ts +2 -0
- package/src/server/canvas-state.ts +950 -122
- package/src/server/canvas-validation.ts +9 -2
- package/src/server/context-brief.ts +345 -38
- package/src/server/context-reads.ts +179 -30
- package/src/server/demo-state.json +355 -24
- package/src/server/edit-summary.ts +74 -0
- package/src/server/html-surface.ts +8 -1
- package/src/server/index.ts +203 -13
- package/src/server/knowledge-lifecycle.ts +304 -0
- package/src/server/lifecycle-status.ts +232 -0
- package/src/server/memory-graph.ts +166 -0
- package/src/server/mutation-history.ts +18 -6
- package/src/server/operations/composites.ts +32 -11
- package/src/server/operations/http.ts +7 -2
- package/src/server/operations/index.ts +4 -0
- package/src/server/operations/mcp.ts +32 -1
- package/src/server/operations/ops/ax-presence.ts +1 -1
- package/src/server/operations/ops/ax-read.ts +57 -6
- package/src/server/operations/ops/ax-timeline.ts +28 -2
- package/src/server/operations/ops/backup.ts +5 -3
- package/src/server/operations/ops/batch.ts +35 -4
- package/src/server/operations/ops/boards.ts +188 -47
- package/src/server/operations/ops/canvas-wire.ts +31 -1
- package/src/server/operations/ops/edges.ts +36 -2
- package/src/server/operations/ops/groups.ts +6 -1
- package/src/server/operations/ops/json-render.ts +5 -1
- package/src/server/operations/ops/lifecycle.ts +262 -0
- package/src/server/operations/ops/memory-graph.ts +45 -0
- package/src/server/operations/ops/nodes.ts +107 -24
- package/src/server/operations/ops/query.ts +281 -68
- package/src/server/operations/ops/snapshots.ts +73 -1
- package/src/server/operations/ops/validate.ts +5 -1
- package/src/server/operations/ops/viewport.ts +97 -3
- package/src/server/operations/registry.ts +77 -26
- package/src/server/placement.ts +29 -0
- package/src/server/scope-fence.ts +78 -6
- package/src/server/server.ts +115 -16
- package/src/server/spatial-analysis.ts +48 -23
- package/src/server/tour-control.ts +82 -0
- package/src/server/wiki-links.ts +137 -0
- package/src/server/workbench-auth.ts +11 -0
- package/src/shared/agent-context.ts +3 -0
- package/src/shared/agent-presence.ts +15 -15
- package/src/shared/auto-arrange.ts +2 -0
- package/src/shared/boards.ts +4 -4
- package/src/shared/knowledge-lifecycle.ts +22 -0
- package/src/shared/knowledge-presets.ts +80 -0
- package/src/shared/lifecycle-status.ts +26 -0
- package/src/shared/memory-graph.ts +74 -0
- package/src/shared/relations.ts +98 -0
- package/src/shared/semantic-attention.ts +15 -1
- package/src/shared/tour.ts +23 -5
- package/src/shared/workspace-settings.ts +13 -0
- package/dist/types/client/canvas/ContextPinBar.d.ts +0 -1
- package/dist/types/client/canvas/FocusFieldLayer.d.ts +0 -1
- package/dist/types/client/canvas/kind-colors.d.ts +0 -3
- package/dist/types/server/agent-context.d.ts +0 -22
- package/src/client/canvas/ContextPinBar.tsx +0 -25
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
},
|
|
219
219
|
{
|
|
220
220
|
"name": "canvas_snapshot",
|
|
221
|
-
"description": "Canvas snapshots: save the current state, list saved snapshots, restore one, delete one, garbage-collect old ones, or diff the live canvas against one. Action \"save\" stores a named snapshot; \"list\" returns saved snapshots (newest first); \"restore\" replaces the live canvas with a snapshot; \"delete\" removes one; \"gc\" keeps the newest N and deletes the rest (dryRun to preview); \"diff\" shows added/removed/modified nodes and edges versus a snapshot (by name or id).",
|
|
221
|
+
"description": "Canvas snapshots: save the current state, list saved snapshots, restore one, delete one, garbage-collect old ones, or diff the live canvas against one. Action \"save\" stores a named snapshot; \"list\" returns saved snapshots (newest first); \"restore\" replaces the live canvas with a snapshot; \"delete\" removes one; \"gc\" keeps the newest N and deletes the rest (dryRun to preview); \"diff\" shows added/removed/modified nodes and edges versus a snapshot (by name or id); \"restore-node\" puts one card (nodeId) back to its content in a snapshot, leaving the rest of the board as it is.",
|
|
222
222
|
"inputSchema": {
|
|
223
223
|
"type": "object",
|
|
224
224
|
"properties": {
|
|
@@ -228,11 +228,12 @@
|
|
|
228
228
|
"save",
|
|
229
229
|
"list",
|
|
230
230
|
"restore",
|
|
231
|
+
"restore-node",
|
|
231
232
|
"delete",
|
|
232
233
|
"gc",
|
|
233
234
|
"diff"
|
|
234
235
|
],
|
|
235
|
-
"description": "Operation to perform: save | list | restore | delete | gc | diff."
|
|
236
|
+
"description": "Operation to perform: save | list | restore | restore-node | delete | gc | diff."
|
|
236
237
|
},
|
|
237
238
|
"name": {
|
|
238
239
|
"type": "string",
|
|
@@ -265,6 +266,14 @@
|
|
|
265
266
|
"description": "Snapshot ID or name to restore (from canvas_snapshot or snapshot list)",
|
|
266
267
|
"type": "string"
|
|
267
268
|
},
|
|
269
|
+
"nodeId": {
|
|
270
|
+
"description": "The card to put back as it was in that snapshot",
|
|
271
|
+
"type": "string"
|
|
272
|
+
},
|
|
273
|
+
"preserveHumanEdits": {
|
|
274
|
+
"description": "Skip a card whose latest editor is human (receipt Undo)",
|
|
275
|
+
"type": "boolean"
|
|
276
|
+
},
|
|
268
277
|
"keep": {
|
|
269
278
|
"description": "Number of newest snapshots to keep (default: 20)",
|
|
270
279
|
"type": "number"
|
|
@@ -290,7 +299,7 @@
|
|
|
290
299
|
},
|
|
291
300
|
{
|
|
292
301
|
"name": "canvas_board",
|
|
293
|
-
"description": "Boards in this workspace — the library of the human's and your working memory, filed in
|
|
302
|
+
"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.",
|
|
294
303
|
"inputSchema": {
|
|
295
304
|
"type": "object",
|
|
296
305
|
"properties": {
|
|
@@ -302,9 +311,17 @@
|
|
|
302
311
|
"create",
|
|
303
312
|
"create-from",
|
|
304
313
|
"open",
|
|
305
|
-
"update"
|
|
314
|
+
"update",
|
|
315
|
+
"knowledge-list",
|
|
316
|
+
"category-set",
|
|
317
|
+
"category-remove",
|
|
318
|
+
"relation-preset-set",
|
|
319
|
+
"relation-preset-remove",
|
|
320
|
+
"folder-set",
|
|
321
|
+
"pin",
|
|
322
|
+
"unpin"
|
|
306
323
|
],
|
|
307
|
-
"description": "Operation to perform: list | get | create | create-from | open | update."
|
|
324
|
+
"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."
|
|
308
325
|
},
|
|
309
326
|
"id": {
|
|
310
327
|
"description": "Board id (default: the open board)"
|
|
@@ -312,7 +329,7 @@
|
|
|
312
329
|
"name": {
|
|
313
330
|
"description": "Board name"
|
|
314
331
|
},
|
|
315
|
-
"
|
|
332
|
+
"folder": {
|
|
316
333
|
"description": "Folder path on Home, e.g. Engineering/Canvas"
|
|
317
334
|
},
|
|
318
335
|
"sourceBoardId": {
|
|
@@ -335,6 +352,41 @@
|
|
|
335
352
|
"description": "Return reusable cards and structure without creating",
|
|
336
353
|
"type": "boolean"
|
|
337
354
|
},
|
|
355
|
+
"relationVocabulary": {
|
|
356
|
+
"description": "Board relation vocabulary: open kinds with a meaning ink and direction",
|
|
357
|
+
"maxItems": 64,
|
|
358
|
+
"type": "array",
|
|
359
|
+
"items": {
|
|
360
|
+
"type": "object",
|
|
361
|
+
"properties": {
|
|
362
|
+
"kind": {
|
|
363
|
+
"type": "string",
|
|
364
|
+
"minLength": 1,
|
|
365
|
+
"maxLength": 80
|
|
366
|
+
},
|
|
367
|
+
"ink": {
|
|
368
|
+
"type": "string",
|
|
369
|
+
"enum": [
|
|
370
|
+
"supports",
|
|
371
|
+
"contradicts",
|
|
372
|
+
"cites",
|
|
373
|
+
"derived",
|
|
374
|
+
"informs",
|
|
375
|
+
"related"
|
|
376
|
+
]
|
|
377
|
+
},
|
|
378
|
+
"directed": {
|
|
379
|
+
"type": "boolean"
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
"required": [
|
|
383
|
+
"kind",
|
|
384
|
+
"ink",
|
|
385
|
+
"directed"
|
|
386
|
+
],
|
|
387
|
+
"additionalProperties": false
|
|
388
|
+
}
|
|
389
|
+
},
|
|
338
390
|
"readmeNodeId": {
|
|
339
391
|
"description": "Markdown node id used as the board README",
|
|
340
392
|
"anyOf": [
|
|
@@ -345,6 +397,214 @@
|
|
|
345
397
|
"type": "null"
|
|
346
398
|
}
|
|
347
399
|
]
|
|
400
|
+
},
|
|
401
|
+
"mapPosition": {
|
|
402
|
+
"description": "Persist a Home Map position; null returns to the generated folder layout",
|
|
403
|
+
"anyOf": [
|
|
404
|
+
{
|
|
405
|
+
"type": "object",
|
|
406
|
+
"properties": {
|
|
407
|
+
"x": {
|
|
408
|
+
"type": "number"
|
|
409
|
+
},
|
|
410
|
+
"y": {
|
|
411
|
+
"type": "number"
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
"required": [
|
|
415
|
+
"x",
|
|
416
|
+
"y"
|
|
417
|
+
]
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"type": "null"
|
|
421
|
+
}
|
|
422
|
+
]
|
|
423
|
+
},
|
|
424
|
+
"category": {
|
|
425
|
+
"type": "object",
|
|
426
|
+
"properties": {
|
|
427
|
+
"decayType": {
|
|
428
|
+
"type": "string",
|
|
429
|
+
"enum": [
|
|
430
|
+
"reality",
|
|
431
|
+
"decision",
|
|
432
|
+
"dependency",
|
|
433
|
+
"relevance"
|
|
434
|
+
]
|
|
435
|
+
},
|
|
436
|
+
"rate": {
|
|
437
|
+
"type": "string",
|
|
438
|
+
"enum": [
|
|
439
|
+
"fast",
|
|
440
|
+
"medium",
|
|
441
|
+
"slow",
|
|
442
|
+
"durable"
|
|
443
|
+
]
|
|
444
|
+
},
|
|
445
|
+
"triggers": {
|
|
446
|
+
"type": "array",
|
|
447
|
+
"items": {
|
|
448
|
+
"type": "string",
|
|
449
|
+
"minLength": 1
|
|
450
|
+
}
|
|
451
|
+
},
|
|
452
|
+
"revalidationMethod": {
|
|
453
|
+
"type": "string",
|
|
454
|
+
"minLength": 1
|
|
455
|
+
},
|
|
456
|
+
"cadenceDays": {
|
|
457
|
+
"type": "integer",
|
|
458
|
+
"minimum": 1,
|
|
459
|
+
"maximum": 36500
|
|
460
|
+
},
|
|
461
|
+
"id": {
|
|
462
|
+
"type": "string",
|
|
463
|
+
"minLength": 1
|
|
464
|
+
},
|
|
465
|
+
"name": {
|
|
466
|
+
"type": "string",
|
|
467
|
+
"minLength": 1
|
|
468
|
+
},
|
|
469
|
+
"glyph": {
|
|
470
|
+
"type": "string",
|
|
471
|
+
"minLength": 1
|
|
472
|
+
}
|
|
473
|
+
},
|
|
474
|
+
"required": [
|
|
475
|
+
"decayType",
|
|
476
|
+
"rate",
|
|
477
|
+
"triggers",
|
|
478
|
+
"revalidationMethod",
|
|
479
|
+
"id",
|
|
480
|
+
"name",
|
|
481
|
+
"glyph"
|
|
482
|
+
],
|
|
483
|
+
"additionalProperties": false
|
|
484
|
+
},
|
|
485
|
+
"preset": {
|
|
486
|
+
"type": "object",
|
|
487
|
+
"properties": {
|
|
488
|
+
"id": {
|
|
489
|
+
"type": "string",
|
|
490
|
+
"minLength": 1
|
|
491
|
+
},
|
|
492
|
+
"name": {
|
|
493
|
+
"type": "string",
|
|
494
|
+
"minLength": 1,
|
|
495
|
+
"maxLength": 80
|
|
496
|
+
},
|
|
497
|
+
"vocabulary": {
|
|
498
|
+
"maxItems": 64,
|
|
499
|
+
"type": "array",
|
|
500
|
+
"items": {
|
|
501
|
+
"type": "object",
|
|
502
|
+
"properties": {
|
|
503
|
+
"kind": {
|
|
504
|
+
"type": "string",
|
|
505
|
+
"minLength": 1,
|
|
506
|
+
"maxLength": 80
|
|
507
|
+
},
|
|
508
|
+
"ink": {
|
|
509
|
+
"type": "string",
|
|
510
|
+
"enum": [
|
|
511
|
+
"supports",
|
|
512
|
+
"contradicts",
|
|
513
|
+
"cites",
|
|
514
|
+
"derived",
|
|
515
|
+
"informs",
|
|
516
|
+
"related"
|
|
517
|
+
]
|
|
518
|
+
},
|
|
519
|
+
"directed": {
|
|
520
|
+
"type": "boolean"
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
"required": [
|
|
524
|
+
"kind",
|
|
525
|
+
"ink",
|
|
526
|
+
"directed"
|
|
527
|
+
],
|
|
528
|
+
"additionalProperties": false
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
},
|
|
532
|
+
"required": [
|
|
533
|
+
"id",
|
|
534
|
+
"name",
|
|
535
|
+
"vocabulary"
|
|
536
|
+
],
|
|
537
|
+
"additionalProperties": false
|
|
538
|
+
},
|
|
539
|
+
"path": {
|
|
540
|
+
"type": "string"
|
|
541
|
+
},
|
|
542
|
+
"categoryId": {
|
|
543
|
+
"anyOf": [
|
|
544
|
+
{
|
|
545
|
+
"type": "string"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"type": "null"
|
|
549
|
+
}
|
|
550
|
+
]
|
|
551
|
+
},
|
|
552
|
+
"lifecycleOverride": {
|
|
553
|
+
"anyOf": [
|
|
554
|
+
{
|
|
555
|
+
"type": "object",
|
|
556
|
+
"properties": {
|
|
557
|
+
"decayType": {
|
|
558
|
+
"type": "string",
|
|
559
|
+
"enum": [
|
|
560
|
+
"reality",
|
|
561
|
+
"decision",
|
|
562
|
+
"dependency",
|
|
563
|
+
"relevance"
|
|
564
|
+
]
|
|
565
|
+
},
|
|
566
|
+
"rate": {
|
|
567
|
+
"type": "string",
|
|
568
|
+
"enum": [
|
|
569
|
+
"fast",
|
|
570
|
+
"medium",
|
|
571
|
+
"slow",
|
|
572
|
+
"durable"
|
|
573
|
+
]
|
|
574
|
+
},
|
|
575
|
+
"triggers": {
|
|
576
|
+
"type": "array",
|
|
577
|
+
"items": {
|
|
578
|
+
"type": "string",
|
|
579
|
+
"minLength": 1
|
|
580
|
+
}
|
|
581
|
+
},
|
|
582
|
+
"revalidationMethod": {
|
|
583
|
+
"type": "string",
|
|
584
|
+
"minLength": 1
|
|
585
|
+
},
|
|
586
|
+
"cadenceDays": {
|
|
587
|
+
"type": "integer",
|
|
588
|
+
"minimum": 1,
|
|
589
|
+
"maximum": 36500
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
"required": [
|
|
593
|
+
"decayType",
|
|
594
|
+
"rate",
|
|
595
|
+
"triggers",
|
|
596
|
+
"revalidationMethod"
|
|
597
|
+
],
|
|
598
|
+
"additionalProperties": false
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"type": "null"
|
|
602
|
+
}
|
|
603
|
+
]
|
|
604
|
+
},
|
|
605
|
+
"reason": {
|
|
606
|
+
"description": "Why this board matters; shown to the human on hover",
|
|
607
|
+
"type": "string"
|
|
348
608
|
}
|
|
349
609
|
},
|
|
350
610
|
"required": [
|
|
@@ -359,7 +619,7 @@
|
|
|
359
619
|
},
|
|
360
620
|
{
|
|
361
621
|
"name": "canvas_node",
|
|
362
|
-
"description": "Create, read, update, or remove a canvas node. One tool for node CRUD: action \"add\" creates a node (requires type — markdown, status, context, ledger, trace, file, image, webpage, html, group, etc.); \"get\" reads one node by id; \"update\" patches an existing node (title, content, position, size, data); \"remove\" deletes a node by id. For spec-driven content (json-render, graph) use canvas_render; for external/built apps use canvas_app (actions: open-mcp-app, diagram, build-artifact).",
|
|
622
|
+
"description": "Lifecycle data: lifecycle-get reads effective inheritance, due/source qualification and review history (optional board); lifecycle-set sets full lifecycleOverride or null; review requires outcome retain/revise/externalize/retire/unresolved, evidence and applied. Applied retain/revise/externalize with nonempty evidence also requires expectedContentRevision and expectedSources from the content and sources actually checked; stale reviews fail. Records keep those observations and persist content before evidence. lifecycle-restore requires evidence and explicitly restores retirement, never validation. Retired cards are excluded from active briefs by default. Writes accept expectedBoardId and obey edit locks/scope. Create, read, update, or remove a canvas node. One tool for node CRUD: action \"add\" creates a node (requires type — markdown, board with data.boardId for a portal, status, context, ledger, trace, file, image, webpage, html, group, etc.); \"get\" reads one node by id; \"update\" patches an existing node (title, content, position, size, data); \"remove\" deletes a node by id. For spec-driven content (json-render, graph) use canvas_render; for external/built apps use canvas_app (actions: open-mcp-app, diagram, build-artifact).",
|
|
363
623
|
"inputSchema": {
|
|
364
624
|
"type": "object",
|
|
365
625
|
"properties": {
|
|
@@ -369,9 +629,23 @@
|
|
|
369
629
|
"add",
|
|
370
630
|
"get",
|
|
371
631
|
"update",
|
|
372
|
-
"remove"
|
|
632
|
+
"remove",
|
|
633
|
+
"lifecycle-get",
|
|
634
|
+
"lifecycle-set",
|
|
635
|
+
"review",
|
|
636
|
+
"lifecycle-restore"
|
|
373
637
|
],
|
|
374
|
-
"description": "Operation to perform: add | get | update | remove."
|
|
638
|
+
"description": "Operation to perform: add | get | update | remove | lifecycle-get | lifecycle-set | review | lifecycle-restore."
|
|
639
|
+
},
|
|
640
|
+
"destinationBoardId": {
|
|
641
|
+
"description": "Create a static node on this board without opening it. expectedBoardId still guards the ACTIVE board.",
|
|
642
|
+
"type": "string",
|
|
643
|
+
"minLength": 1
|
|
644
|
+
},
|
|
645
|
+
"requestId": {
|
|
646
|
+
"description": "Persistent logical creation identity. Reuse only for retries with identical input and destination; new identical content needs a new id. Static types only.",
|
|
647
|
+
"type": "string",
|
|
648
|
+
"minLength": 1
|
|
375
649
|
},
|
|
376
650
|
"intentId": {
|
|
377
651
|
"description": "Ghost intent id returned by canvas_intent signal. A vetoed or expired intent blocks this mutation.",
|
|
@@ -381,6 +655,7 @@
|
|
|
381
655
|
"type": "string",
|
|
382
656
|
"enum": [
|
|
383
657
|
"markdown",
|
|
658
|
+
"board",
|
|
384
659
|
"status",
|
|
385
660
|
"context",
|
|
386
661
|
"ledger",
|
|
@@ -389,8 +664,8 @@
|
|
|
389
664
|
"diff",
|
|
390
665
|
"mermaid",
|
|
391
666
|
"image",
|
|
392
|
-
"webpage",
|
|
393
667
|
"mcp-app",
|
|
668
|
+
"webpage",
|
|
394
669
|
"html",
|
|
395
670
|
"group"
|
|
396
671
|
],
|
|
@@ -534,8 +809,7 @@
|
|
|
534
809
|
"description": "The node ID to retrieve"
|
|
535
810
|
},
|
|
536
811
|
"board": {
|
|
537
|
-
"description": "Board id to read without opening it."
|
|
538
|
-
"type": "string"
|
|
812
|
+
"description": "Board id to read without opening it."
|
|
539
813
|
},
|
|
540
814
|
"includeBlobs": {
|
|
541
815
|
"description": "Include full blob payloads instead of blob summaries."
|
|
@@ -546,6 +820,10 @@
|
|
|
546
820
|
"minimum": 0,
|
|
547
821
|
"maximum": 9007199254740991
|
|
548
822
|
},
|
|
823
|
+
"persistFile": {
|
|
824
|
+
"description": "Save file-backed Markdown to disk and card together; requires board and content revision preconditions",
|
|
825
|
+
"type": "boolean"
|
|
826
|
+
},
|
|
549
827
|
"spec": {
|
|
550
828
|
"description": "New json-render spec, or a graph payload with graphType/data for graph nodes",
|
|
551
829
|
"type": "object",
|
|
@@ -584,6 +862,104 @@
|
|
|
584
862
|
},
|
|
585
863
|
"refresh": {
|
|
586
864
|
"description": "Webpage nodes: pass true to re-fetch the page instead of patching fields."
|
|
865
|
+
},
|
|
866
|
+
"expectedBoardId": {
|
|
867
|
+
"anyOf": [
|
|
868
|
+
{
|
|
869
|
+
"type": "string"
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
"type": "null"
|
|
873
|
+
}
|
|
874
|
+
]
|
|
875
|
+
},
|
|
876
|
+
"lifecycleOverride": {
|
|
877
|
+
"anyOf": [
|
|
878
|
+
{
|
|
879
|
+
"type": "object",
|
|
880
|
+
"properties": {
|
|
881
|
+
"decayType": {
|
|
882
|
+
"type": "string",
|
|
883
|
+
"enum": [
|
|
884
|
+
"reality",
|
|
885
|
+
"decision",
|
|
886
|
+
"dependency",
|
|
887
|
+
"relevance"
|
|
888
|
+
]
|
|
889
|
+
},
|
|
890
|
+
"rate": {
|
|
891
|
+
"type": "string",
|
|
892
|
+
"enum": [
|
|
893
|
+
"fast",
|
|
894
|
+
"medium",
|
|
895
|
+
"slow",
|
|
896
|
+
"durable"
|
|
897
|
+
]
|
|
898
|
+
},
|
|
899
|
+
"triggers": {
|
|
900
|
+
"type": "array",
|
|
901
|
+
"items": {
|
|
902
|
+
"type": "string",
|
|
903
|
+
"minLength": 1
|
|
904
|
+
}
|
|
905
|
+
},
|
|
906
|
+
"revalidationMethod": {
|
|
907
|
+
"type": "string",
|
|
908
|
+
"minLength": 1
|
|
909
|
+
},
|
|
910
|
+
"cadenceDays": {
|
|
911
|
+
"type": "integer",
|
|
912
|
+
"minimum": 1,
|
|
913
|
+
"maximum": 36500
|
|
914
|
+
}
|
|
915
|
+
},
|
|
916
|
+
"required": [
|
|
917
|
+
"decayType",
|
|
918
|
+
"rate",
|
|
919
|
+
"triggers",
|
|
920
|
+
"revalidationMethod"
|
|
921
|
+
],
|
|
922
|
+
"additionalProperties": false
|
|
923
|
+
},
|
|
924
|
+
{
|
|
925
|
+
"type": "null"
|
|
926
|
+
}
|
|
927
|
+
]
|
|
928
|
+
},
|
|
929
|
+
"outcome": {
|
|
930
|
+
"type": "string",
|
|
931
|
+
"enum": [
|
|
932
|
+
"retain",
|
|
933
|
+
"revise",
|
|
934
|
+
"externalize",
|
|
935
|
+
"retire",
|
|
936
|
+
"unresolved"
|
|
937
|
+
]
|
|
938
|
+
},
|
|
939
|
+
"evidence": {
|
|
940
|
+
"type": "string"
|
|
941
|
+
},
|
|
942
|
+
"applied": {
|
|
943
|
+
"type": "boolean"
|
|
944
|
+
},
|
|
945
|
+
"expectedSources": {
|
|
946
|
+
"description": "Required when validating dependencies: observations from lifecycle-get after checking the sources.",
|
|
947
|
+
"type": "object",
|
|
948
|
+
"propertyNames": {
|
|
949
|
+
"type": "string"
|
|
950
|
+
},
|
|
951
|
+
"additionalProperties": {
|
|
952
|
+
"anyOf": [
|
|
953
|
+
{
|
|
954
|
+
"type": "integer",
|
|
955
|
+
"minimum": 0,
|
|
956
|
+
"maximum": 9007199254740991
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
"type": "null"
|
|
960
|
+
}
|
|
961
|
+
]
|
|
962
|
+
}
|
|
587
963
|
}
|
|
588
964
|
},
|
|
589
965
|
"required": [
|
|
@@ -901,6 +1277,16 @@
|
|
|
901
1277
|
],
|
|
902
1278
|
"description": "Operation to perform: add | remove."
|
|
903
1279
|
},
|
|
1280
|
+
"destinationBoardId": {
|
|
1281
|
+
"description": "Board owning the source and edge; does not activate it",
|
|
1282
|
+
"type": "string",
|
|
1283
|
+
"minLength": 1
|
|
1284
|
+
},
|
|
1285
|
+
"requestId": {
|
|
1286
|
+
"description": "Logical creation identity for retry-safe edge creation",
|
|
1287
|
+
"type": "string",
|
|
1288
|
+
"minLength": 1
|
|
1289
|
+
},
|
|
904
1290
|
"intentId": {
|
|
905
1291
|
"description": "Ghost intent id returned by canvas_intent signal. A vetoed or expired intent blocks this mutation.",
|
|
906
1292
|
"type": "string"
|
|
@@ -913,6 +1299,11 @@
|
|
|
913
1299
|
"description": "Target node ID",
|
|
914
1300
|
"type": "string"
|
|
915
1301
|
},
|
|
1302
|
+
"toBoardId": {
|
|
1303
|
+
"description": "Target board ID for a cross-board edge; independent of the source destinationBoardId",
|
|
1304
|
+
"type": "string",
|
|
1305
|
+
"minLength": 1
|
|
1306
|
+
},
|
|
916
1307
|
"fromSearch": {
|
|
917
1308
|
"description": "Resolve the source node by exact or fuzzy title/content search",
|
|
918
1309
|
"type": "string"
|
|
@@ -924,6 +1315,17 @@
|
|
|
924
1315
|
"type": {
|
|
925
1316
|
"description": "Edge type: flow, depends-on, relation, or references"
|
|
926
1317
|
},
|
|
1318
|
+
"kind": {
|
|
1319
|
+
"description": "Open semantic kind, e.g. supports, contradicts, derived-from, supersedes",
|
|
1320
|
+
"type": "string",
|
|
1321
|
+
"minLength": 1,
|
|
1322
|
+
"maxLength": 80
|
|
1323
|
+
},
|
|
1324
|
+
"reason": {
|
|
1325
|
+
"description": "Why this relation exists",
|
|
1326
|
+
"type": "string",
|
|
1327
|
+
"maxLength": 4000
|
|
1328
|
+
},
|
|
927
1329
|
"label": {
|
|
928
1330
|
"description": "Edge label text"
|
|
929
1331
|
},
|
|
@@ -967,6 +1369,16 @@
|
|
|
967
1369
|
],
|
|
968
1370
|
"description": "Operation to perform: create | add | ungroup."
|
|
969
1371
|
},
|
|
1372
|
+
"destinationBoardId": {
|
|
1373
|
+
"description": "Create the group on this board without activating it",
|
|
1374
|
+
"type": "string",
|
|
1375
|
+
"minLength": 1
|
|
1376
|
+
},
|
|
1377
|
+
"requestId": {
|
|
1378
|
+
"description": "Logical creation identity for retry-safe group creation",
|
|
1379
|
+
"type": "string",
|
|
1380
|
+
"minLength": 1
|
|
1381
|
+
},
|
|
970
1382
|
"intentId": {
|
|
971
1383
|
"description": "Ghost intent id returned by canvas_intent signal. A vetoed or expired intent blocks this mutation.",
|
|
972
1384
|
"type": "string"
|
|
@@ -1057,7 +1469,7 @@
|
|
|
1057
1469
|
},
|
|
1058
1470
|
{
|
|
1059
1471
|
"name": "canvas_view",
|
|
1060
|
-
"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.",
|
|
1472
|
+
"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.",
|
|
1061
1473
|
"inputSchema": {
|
|
1062
1474
|
"type": "object",
|
|
1063
1475
|
"properties": {
|
|
@@ -1066,13 +1478,16 @@
|
|
|
1066
1478
|
"enum": [
|
|
1067
1479
|
"get-tour",
|
|
1068
1480
|
"set-tour",
|
|
1481
|
+
"tour-go",
|
|
1482
|
+
"tour-exit",
|
|
1483
|
+
"move",
|
|
1069
1484
|
"arrange",
|
|
1070
1485
|
"focus",
|
|
1071
1486
|
"fit",
|
|
1072
1487
|
"clear",
|
|
1073
1488
|
"remove-annotation"
|
|
1074
1489
|
],
|
|
1075
|
-
"description": "Operation to perform: arrange | focus | fit | clear | remove-annotation | get-tour | set-tour."
|
|
1490
|
+
"description": "Operation to perform: arrange | focus | fit | clear | remove-annotation | get-tour | set-tour | tour-go | tour-exit | move."
|
|
1076
1491
|
},
|
|
1077
1492
|
"tour": {
|
|
1078
1493
|
"anyOf": [
|
|
@@ -1100,6 +1515,40 @@
|
|
|
1100
1515
|
],
|
|
1101
1516
|
"additionalProperties": false
|
|
1102
1517
|
},
|
|
1518
|
+
{
|
|
1519
|
+
"type": "object",
|
|
1520
|
+
"properties": {
|
|
1521
|
+
"rect": {
|
|
1522
|
+
"type": "object",
|
|
1523
|
+
"properties": {
|
|
1524
|
+
"x": {
|
|
1525
|
+
"type": "number"
|
|
1526
|
+
},
|
|
1527
|
+
"y": {
|
|
1528
|
+
"type": "number"
|
|
1529
|
+
},
|
|
1530
|
+
"width": {
|
|
1531
|
+
"type": "number",
|
|
1532
|
+
"exclusiveMinimum": 0
|
|
1533
|
+
},
|
|
1534
|
+
"height": {
|
|
1535
|
+
"type": "number",
|
|
1536
|
+
"exclusiveMinimum": 0
|
|
1537
|
+
}
|
|
1538
|
+
},
|
|
1539
|
+
"required": [
|
|
1540
|
+
"x",
|
|
1541
|
+
"y",
|
|
1542
|
+
"width",
|
|
1543
|
+
"height"
|
|
1544
|
+
]
|
|
1545
|
+
}
|
|
1546
|
+
},
|
|
1547
|
+
"required": [
|
|
1548
|
+
"rect"
|
|
1549
|
+
],
|
|
1550
|
+
"additionalProperties": false
|
|
1551
|
+
},
|
|
1103
1552
|
{
|
|
1104
1553
|
"type": "object",
|
|
1105
1554
|
"properties": {
|
|
@@ -1170,6 +1619,101 @@
|
|
|
1170
1619
|
],
|
|
1171
1620
|
"description": "Ordered camera stops, or null to derive from groups"
|
|
1172
1621
|
},
|
|
1622
|
+
"stop": {
|
|
1623
|
+
"description": "Zero-based stop index to go to",
|
|
1624
|
+
"type": "integer",
|
|
1625
|
+
"minimum": 0,
|
|
1626
|
+
"maximum": 9007199254740991
|
|
1627
|
+
},
|
|
1628
|
+
"step": {
|
|
1629
|
+
"description": "Step relative to the current stop (clamped at the ends)",
|
|
1630
|
+
"type": "string",
|
|
1631
|
+
"enum": [
|
|
1632
|
+
"next",
|
|
1633
|
+
"previous"
|
|
1634
|
+
]
|
|
1635
|
+
},
|
|
1636
|
+
"present": {
|
|
1637
|
+
"description": "Start presenting in viewers that are not presenting yet (default true; false only moves presenting viewers)",
|
|
1638
|
+
"type": "boolean"
|
|
1639
|
+
},
|
|
1640
|
+
"nodeId": {
|
|
1641
|
+
"description": "Node or group id to frame",
|
|
1642
|
+
"type": "string"
|
|
1643
|
+
},
|
|
1644
|
+
"rect": {
|
|
1645
|
+
"description": "World-space box { x, y, width, height } to frame",
|
|
1646
|
+
"type": "object",
|
|
1647
|
+
"properties": {
|
|
1648
|
+
"x": {
|
|
1649
|
+
"type": "number"
|
|
1650
|
+
},
|
|
1651
|
+
"y": {
|
|
1652
|
+
"type": "number"
|
|
1653
|
+
},
|
|
1654
|
+
"width": {
|
|
1655
|
+
"type": "number",
|
|
1656
|
+
"exclusiveMinimum": 0
|
|
1657
|
+
},
|
|
1658
|
+
"height": {
|
|
1659
|
+
"type": "number",
|
|
1660
|
+
"exclusiveMinimum": 0
|
|
1661
|
+
}
|
|
1662
|
+
},
|
|
1663
|
+
"required": [
|
|
1664
|
+
"x",
|
|
1665
|
+
"y",
|
|
1666
|
+
"width",
|
|
1667
|
+
"height"
|
|
1668
|
+
]
|
|
1669
|
+
},
|
|
1670
|
+
"viewport": {
|
|
1671
|
+
"description": "Exact screen-space camera { x, y, scale }",
|
|
1672
|
+
"type": "object",
|
|
1673
|
+
"properties": {
|
|
1674
|
+
"x": {
|
|
1675
|
+
"type": "number"
|
|
1676
|
+
},
|
|
1677
|
+
"y": {
|
|
1678
|
+
"type": "number"
|
|
1679
|
+
},
|
|
1680
|
+
"scale": {
|
|
1681
|
+
"type": "number",
|
|
1682
|
+
"exclusiveMinimum": 0
|
|
1683
|
+
}
|
|
1684
|
+
},
|
|
1685
|
+
"required": [
|
|
1686
|
+
"x",
|
|
1687
|
+
"y",
|
|
1688
|
+
"scale"
|
|
1689
|
+
]
|
|
1690
|
+
},
|
|
1691
|
+
"duration": {
|
|
1692
|
+
"description": "Move time in seconds (default 1; 0 jumps)",
|
|
1693
|
+
"type": "number",
|
|
1694
|
+
"minimum": 0,
|
|
1695
|
+
"maximum": 3600
|
|
1696
|
+
},
|
|
1697
|
+
"easing": {
|
|
1698
|
+
"description": "linear | ease-in-out (default) | ease-out",
|
|
1699
|
+
"type": "string",
|
|
1700
|
+
"enum": [
|
|
1701
|
+
"linear",
|
|
1702
|
+
"ease-in-out",
|
|
1703
|
+
"ease-out"
|
|
1704
|
+
]
|
|
1705
|
+
},
|
|
1706
|
+
"padding": {
|
|
1707
|
+
"description": "Screen pixels around a node/rect target (default 40)",
|
|
1708
|
+
"type": "number",
|
|
1709
|
+
"minimum": 0
|
|
1710
|
+
},
|
|
1711
|
+
"pullback": {
|
|
1712
|
+
"description": "Mid-move log-zoom pull-back, 0–4 (default 0)",
|
|
1713
|
+
"type": "number",
|
|
1714
|
+
"minimum": 0,
|
|
1715
|
+
"maximum": 4
|
|
1716
|
+
},
|
|
1173
1717
|
"layout": {
|
|
1174
1718
|
"description": "Arrangement layout (default: grid)",
|
|
1175
1719
|
"type": "string",
|
|
@@ -1194,10 +1738,6 @@
|
|
|
1194
1738
|
"description": "Viewport height used for fit math (default 900)",
|
|
1195
1739
|
"type": "number"
|
|
1196
1740
|
},
|
|
1197
|
-
"padding": {
|
|
1198
|
-
"description": "World-space padding around fitted nodes (default 60)",
|
|
1199
|
-
"type": "number"
|
|
1200
|
-
},
|
|
1201
1741
|
"maxScale": {
|
|
1202
1742
|
"description": "Maximum zoom scale (default 1)",
|
|
1203
1743
|
"type": "number"
|
|
@@ -1222,7 +1762,7 @@
|
|
|
1222
1762
|
},
|
|
1223
1763
|
{
|
|
1224
1764
|
"name": "canvas_query",
|
|
1225
|
-
"description": "Read the board cheapest-first. Action \"context\" returns a budgeted cross-board brief with a durable consumer cursor (budget is UTF-16 characters); \"search\" finds nodes by title/content keywords; \"layout\" returns the full layout; \"validate\" checks geometry and endpoints.",
|
|
1765
|
+
"description": "Read the board cheapest-first. Action \"context\" returns a budgeted cross-board brief with a durable consumer cursor (budget is UTF-16 characters); \"graph\" explores the library relation graph (focus: board ID, qualified node key, or pins; depth: 0–4), summaries only; \"search\" finds nodes by title/content keywords; \"layout\" returns the full layout; \"validate\" checks geometry and endpoints.",
|
|
1226
1766
|
"inputSchema": {
|
|
1227
1767
|
"type": "object",
|
|
1228
1768
|
"properties": {
|
|
@@ -1230,11 +1770,12 @@
|
|
|
1230
1770
|
"type": "string",
|
|
1231
1771
|
"enum": [
|
|
1232
1772
|
"context",
|
|
1773
|
+
"graph",
|
|
1233
1774
|
"search",
|
|
1234
1775
|
"layout",
|
|
1235
1776
|
"validate"
|
|
1236
1777
|
],
|
|
1237
|
-
"description": "Operation to perform: context | search | layout | validate."
|
|
1778
|
+
"description": "Operation to perform: context | graph | search | layout | validate."
|
|
1238
1779
|
},
|
|
1239
1780
|
"consumer": {
|
|
1240
1781
|
"description": "Stable consumer id used for the durable board-scoped cursor"
|
|
@@ -1245,6 +1786,32 @@
|
|
|
1245
1786
|
"budget": {
|
|
1246
1787
|
"description": "Maximum response size in UTF-16 code units"
|
|
1247
1788
|
},
|
|
1789
|
+
"projection": {
|
|
1790
|
+
"default": "full",
|
|
1791
|
+
"description": "Full board/card graph, or board-only Map summaries with qualified cross-board and missing relations",
|
|
1792
|
+
"type": "string",
|
|
1793
|
+
"enum": [
|
|
1794
|
+
"full",
|
|
1795
|
+
"boards"
|
|
1796
|
+
]
|
|
1797
|
+
},
|
|
1798
|
+
"focus": {
|
|
1799
|
+
"description": "Board ID, board-qualified graph node key, or pins; omit for the library",
|
|
1800
|
+
"type": "string"
|
|
1801
|
+
},
|
|
1802
|
+
"depth": {
|
|
1803
|
+
"default": 2,
|
|
1804
|
+
"description": "Undirected hops, including membership, 0–4 (default 2)",
|
|
1805
|
+
"anyOf": [
|
|
1806
|
+
{
|
|
1807
|
+
"type": "number"
|
|
1808
|
+
},
|
|
1809
|
+
{
|
|
1810
|
+
"type": "string",
|
|
1811
|
+
"minLength": 1
|
|
1812
|
+
}
|
|
1813
|
+
]
|
|
1814
|
+
},
|
|
1248
1815
|
"q": {
|
|
1249
1816
|
"description": "Search query — matches against node titles, content, and file paths"
|
|
1250
1817
|
},
|
|
@@ -1256,6 +1823,14 @@
|
|
|
1256
1823
|
"library"
|
|
1257
1824
|
]
|
|
1258
1825
|
},
|
|
1826
|
+
"boardId": {
|
|
1827
|
+
"description": "Stable board ID to search; defaults scope to library when supplied",
|
|
1828
|
+
"type": "string"
|
|
1829
|
+
},
|
|
1830
|
+
"folder": {
|
|
1831
|
+
"description": "Folder and descendants; empty string selects unfiled boards",
|
|
1832
|
+
"type": "string"
|
|
1833
|
+
},
|
|
1259
1834
|
"limit": {
|
|
1260
1835
|
"description": "Max results to return (default: 10)",
|
|
1261
1836
|
"type": "number"
|
|
@@ -1574,7 +2149,7 @@
|
|
|
1574
2149
|
},
|
|
1575
2150
|
{
|
|
1576
2151
|
"name": "canvas_ax_state",
|
|
1577
|
-
"description": "Read or set host-agnostic PMX AX state. Action \"get\" reads the AX state + agent-ready context (pinned/focused context, focus field); \"set-focus\" places node IDs in the AX focus field (nodeIds); \"set-policy\" patches the tool/prompt policy (tools.allowed|excluded|approvalRequired, prompt.systemAppend|mode — merges with existing); \"report-capability\" records a host/session capability for diagnostics; \"presence\" reads agent presence (who is writing, phase, attached session
|
|
2152
|
+
"description": "Read or set host-agnostic PMX AX state. Action \"get\" reads the AX state + agent-ready context (pinned/focused context, focus field); \"set-focus\" places node IDs in the AX focus field (nodeIds); \"set-policy\" patches the tool/prompt policy (tools.allowed|excluded|approvalRequired, prompt.systemAppend|mode — merges with existing); \"report-capability\" records a host/session capability for diagnostics; \"presence\" reads agent presence (who is writing, phase, attached session); \"set-presence\" updates this caller's presence (phase idle|thinking|tooling|waiting-approval, detail, focusNodeId, cursor, attached — attached:true starts a session, false ends it; contextUsage {used,total} reports the agent's real token usage, which the board's context panel names). Adapters may pass a source label (e.g. codex).",
|
|
1578
2153
|
"inputSchema": {
|
|
1579
2154
|
"type": "object",
|
|
1580
2155
|
"properties": {
|
|
@@ -1763,7 +2338,7 @@
|
|
|
1763
2338
|
"type": "boolean"
|
|
1764
2339
|
},
|
|
1765
2340
|
"contextUsage": {
|
|
1766
|
-
"description": "The agent's real token
|
|
2341
|
+
"description": "The agent's real token usage as {used,total} — the board's context panel names how many tokens its whole context holds (null clears it)",
|
|
1767
2342
|
"anyOf": [
|
|
1768
2343
|
{
|
|
1769
2344
|
"type": "object",
|
|
@@ -2074,6 +2649,10 @@
|
|
|
2074
2649
|
"board": {
|
|
2075
2650
|
"description": "Board id; defaults to the open board.",
|
|
2076
2651
|
"type": "string"
|
|
2652
|
+
},
|
|
2653
|
+
"boards": {
|
|
2654
|
+
"description": "Comma-separated board ids: also return each one's latest agent read (pinned boards, in one request).",
|
|
2655
|
+
"type": "string"
|
|
2077
2656
|
}
|
|
2078
2657
|
},
|
|
2079
2658
|
"required": [
|