pmx-canvas 0.6.4 → 0.6.5
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/CHANGELOG.md +19 -0
- package/Readme.md +7 -1
- package/dist/canvas/global.css +58 -4
- package/dist/canvas/index.js +92 -92
- package/dist/canvas/mermaid-entry.js +258 -258
- package/dist/types/cli/agent.d.ts +1 -0
- package/dist/types/cli/commands/record.d.ts +12 -0
- package/dist/types/client/canvas/Presentation.d.ts +13 -0
- package/dist/types/client/canvas/use-node-drag.d.ts +2 -1
- package/dist/types/client/nodes/McpAppNode.d.ts +24 -1
- package/dist/types/client/state/presentation.d.ts +3 -0
- package/dist/types/client/types.d.ts +1 -1
- package/dist/types/json-render/catalog.d.ts +2 -2
- package/dist/types/json-render/server.d.ts +2 -0
- package/dist/types/server/canvas-db.d.ts +2 -0
- package/dist/types/server/canvas-operations.d.ts +22 -0
- package/dist/types/server/canvas-schema.d.ts +1 -0
- package/dist/types/server/canvas-state.d.ts +6 -0
- package/dist/types/server/canvas-validation.d.ts +3 -0
- package/dist/types/server/html-surface.d.ts +1 -1
- package/dist/types/server/index.d.ts +4 -0
- package/dist/types/server/operations/ops/app.d.ts +2 -0
- package/dist/types/server/operations/ops/json-render.d.ts +2 -0
- package/dist/types/server/operations/ops/nodes.d.ts +3 -1
- package/dist/types/server/web-artifacts.d.ts +3 -0
- package/dist/types/shared/tour.d.ts +72 -0
- package/docs/cli.md +89 -0
- package/docs/http-api.md +79 -4
- package/docs/mcp.md +25 -1
- package/docs/node-types.md +80 -0
- package/package.json +1 -1
- package/skills/pmx-canvas/SKILL.md +10 -2
- package/skills/pmx-canvas/references/full-reference.md +1 -1
- package/skills/pmx-canvas/references/installing-pmx-canvas.md +4 -4
- package/src/cli/agent.ts +5 -0
- package/src/cli/commands/nodes.ts +10 -0
- package/src/cli/commands/record.ts +218 -0
- package/src/cli/index.ts +2 -0
- package/src/client/App.tsx +7 -1
- package/src/client/canvas/AgentPresenceLayer.tsx +1 -1
- package/src/client/canvas/CanvasNode.tsx +8 -0
- package/src/client/canvas/IntentLayer.tsx +9 -2
- package/src/client/canvas/Presentation.tsx +108 -0
- package/src/client/canvas/TopBar.tsx +28 -2
- package/src/client/canvas/use-node-drag.ts +8 -3
- package/src/client/mermaid-entry.ts +39 -0
- package/src/client/nodes/HtmlNode.tsx +12 -13
- package/src/client/nodes/McpAppNode.tsx +105 -13
- package/src/client/nodes/MermaidNode.tsx +3 -2
- package/src/client/state/intent-store.ts +5 -1
- package/src/client/state/presentation.ts +7 -0
- package/src/client/state/session-store.ts +3 -0
- package/src/client/state/sse-bridge.ts +3 -0
- package/src/client/theme/global.css +58 -4
- package/src/json-render/server.ts +29 -0
- package/src/server/agent-presence.ts +15 -9
- package/src/server/canvas-db.ts +15 -0
- package/src/server/canvas-operations.ts +115 -22
- package/src/server/canvas-schema.ts +10 -0
- package/src/server/canvas-state.ts +39 -4
- package/src/server/canvas-validation.ts +9 -1
- package/src/server/demo-state.json +11 -7
- package/src/server/html-primitives.ts +199 -91
- package/src/server/html-surface.ts +8 -3
- package/src/server/index.ts +12 -0
- package/src/server/operations/composites.ts +3 -1
- package/src/server/operations/ops/app.ts +10 -0
- package/src/server/operations/ops/batch.ts +12 -3
- package/src/server/operations/ops/groups.ts +14 -7
- package/src/server/operations/ops/json-render.ts +37 -5
- package/src/server/operations/ops/nodes.ts +42 -16
- package/src/server/operations/ops/viewport.ts +32 -0
- package/src/server/operations/registry.ts +6 -0
- package/src/server/scope-fence.ts +1 -1
- package/src/server/server.ts +9 -6
- package/src/server/web-artifacts.ts +9 -2
- package/src/server/workboard.ts +3 -3
- package/src/shared/tour.ts +87 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
All notable changes to `pmx-canvas` are documented here. This project follows
|
|
4
4
|
[Semantic Versioning](https://semver.org/).
|
|
5
5
|
|
|
6
|
+
## [0.6.5] - 2026-09-26
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
|
|
10
|
+
- Present saved board tours or derive stops from groups, with keyboard navigation and optional local PNG/MP4 capture using the same camera path.
|
|
11
|
+
- Creation responses report requested and applied sizes, including group fitting, across HTTP, MCP, and batches.
|
|
12
|
+
- JSON-render warns when unbound form values would be ignored.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Workboards use equal-width columns across narrow and wide frames.
|
|
17
|
+
- Embedded HTML and JSON-render updates keep the previous frame visible until the replacement is ready.
|
|
18
|
+
- Explicitly empty HTML primitive fields omit their sections instead of inserting example content.
|
|
19
|
+
- Mermaid diagrams fit overflowing content without enlarging small diagrams; authored sizes and optional natural scrolling are preserved.
|
|
20
|
+
- Titlebar clicks select nodes without adding a selection after a drag.
|
|
21
|
+
- Detached agents expire promptly, workers roll up under their parent, and camera operations no longer claim writer activity.
|
|
22
|
+
- Unchanged and worker sessions do not replace useful receipts or reopen the panel.
|
|
23
|
+
- Ghosts finish their rendered settle animation before removal, and tour-only changes create distinct snapshots.
|
|
24
|
+
|
|
6
25
|
## [0.6.4] - 2026-09-24
|
|
7
26
|
|
|
8
27
|
### Added
|
package/Readme.md
CHANGED
|
@@ -18,6 +18,12 @@ structured panel into place as they generate it — not as a separate tooling
|
|
|
18
18
|
project. Pin what matters and the agent reads your spatial curation as
|
|
19
19
|
structured context.
|
|
20
20
|
|
|
21
|
+
**The board is the presentation.** Click **Present** to step through a saved tour
|
|
22
|
+
(or groups in reading order), with chrome hidden and smooth camera moves.
|
|
23
|
+
Optionally capture that same tour with
|
|
24
|
+
`pmx-canvas record --mode deterministic --present --output tour.mp4`. See the
|
|
25
|
+
[tour model and CLI walkthrough](docs/cli.md#tour-and-presentation).
|
|
26
|
+
|
|
21
27
|
<p align="center">
|
|
22
28
|
<img src="docs/screenshots/workbench-live-dark.png" alt="Live multi-agent workbench — dark theme: two agents on the board, review cards, an architecture diagram, and the writers pill" width="49%" />
|
|
23
29
|
<img src="docs/screenshots/workbench-live-light.png" alt="Live multi-agent workbench — light theme" width="49%" />
|
|
@@ -372,7 +378,7 @@ services:
|
|
|
372
378
|
```bash
|
|
373
379
|
# .agents/setup — install the CLI (pin the exact version: a fresh orb running
|
|
374
380
|
# @latest can silently pick up a newer release than the one you validated)
|
|
375
|
-
npm install -g pmx-canvas@0.6.
|
|
381
|
+
npm install -g pmx-canvas@0.6.5
|
|
376
382
|
```
|
|
377
383
|
|
|
378
384
|
The server binds the portal-assigned `$PORT` automatically (gated on the
|
package/dist/canvas/global.css
CHANGED
|
@@ -1210,13 +1210,13 @@ body,
|
|
|
1210
1210
|
font-size: 9px;
|
|
1211
1211
|
padding: 1px 6px;
|
|
1212
1212
|
}
|
|
1213
|
-
/*
|
|
1213
|
+
/* Parked idle cursors leave the board (user feedback, 0.5.1 cycle): with many agents
|
|
1214
1214
|
attached, a wall of parked "Idle" pills covers real node content. The
|
|
1215
1215
|
element stays MOUNTED — counts, twin-merge, and cursor-follow logic are
|
|
1216
1216
|
untouched, and visibility (not display) keeps its layout box so position
|
|
1217
|
-
polls still resolve — but it paints nothing
|
|
1218
|
-
|
|
1219
|
-
.agent-cursor.phase-idle {
|
|
1217
|
+
polls still resolve — but it paints nothing. An explicitly reported cursor
|
|
1218
|
+
remains visible even while idle so cursor-only movement cannot disappear. */
|
|
1219
|
+
.agent-cursor.phase-idle:not(.has-explicit-cursor) {
|
|
1220
1220
|
opacity: 0;
|
|
1221
1221
|
visibility: hidden;
|
|
1222
1222
|
transition:
|
|
@@ -4211,6 +4211,33 @@ html.is-node-resizing .ext-app-preview-catcher {
|
|
|
4211
4211
|
}
|
|
4212
4212
|
|
|
4213
4213
|
/* MCP app iframe */
|
|
4214
|
+
.mcp-app-frame-stack {
|
|
4215
|
+
position: relative;
|
|
4216
|
+
flex: 1;
|
|
4217
|
+
min-width: 0;
|
|
4218
|
+
min-height: 0;
|
|
4219
|
+
background: var(--c-panel-soft);
|
|
4220
|
+
overflow: hidden;
|
|
4221
|
+
border-radius: 0 0 calc(var(--radius) - 1px) calc(var(--radius) - 1px);
|
|
4222
|
+
}
|
|
4223
|
+
|
|
4224
|
+
.mcp-app-frame-stack:has(.html-node-frame) {
|
|
4225
|
+
width: 100%;
|
|
4226
|
+
height: 100%;
|
|
4227
|
+
min-height: 300px;
|
|
4228
|
+
background: var(--c-bg);
|
|
4229
|
+
border-radius: 6px;
|
|
4230
|
+
}
|
|
4231
|
+
|
|
4232
|
+
.mcp-app-frame-stack:has(.html-node-frame-presentation) {
|
|
4233
|
+
min-height: 0;
|
|
4234
|
+
border-radius: 0;
|
|
4235
|
+
}
|
|
4236
|
+
|
|
4237
|
+
.mcp-app-frame-stack:has(.html-node-frame-expanded) {
|
|
4238
|
+
min-height: 70vh;
|
|
4239
|
+
}
|
|
4240
|
+
|
|
4214
4241
|
.mcp-app-frame {
|
|
4215
4242
|
width: 100%;
|
|
4216
4243
|
height: 100%;
|
|
@@ -6808,3 +6835,30 @@ html.is-node-dragging .intent-ghost,
|
|
|
6808
6835
|
html.is-node-dragging .intent-line-layer {
|
|
6809
6836
|
opacity: 0.5;
|
|
6810
6837
|
}
|
|
6838
|
+
|
|
6839
|
+
.present-button {
|
|
6840
|
+
color: var(--c-text);
|
|
6841
|
+
background: var(--c-bg);
|
|
6842
|
+
border: 1px solid var(--c-line);
|
|
6843
|
+
border-radius: 6px;
|
|
6844
|
+
padding: 4px 12px;
|
|
6845
|
+
cursor: pointer;
|
|
6846
|
+
}
|
|
6847
|
+
.is-presenting > :not(.app-main):not(.presentation-error),
|
|
6848
|
+
.is-presenting .app-main > :not(.canvas-region),
|
|
6849
|
+
.is-presenting .canvas-region > :not(.canvas-viewport) {
|
|
6850
|
+
display: none !important;
|
|
6851
|
+
}
|
|
6852
|
+
.is-presenting .canvas-viewport { pointer-events: none; }
|
|
6853
|
+
.presentation-error {
|
|
6854
|
+
position: fixed;
|
|
6855
|
+
bottom: 16px;
|
|
6856
|
+
left: 16px;
|
|
6857
|
+
z-index: 100;
|
|
6858
|
+
max-width: calc(100% - 32px);
|
|
6859
|
+
padding: 10px 16px;
|
|
6860
|
+
border: 1px solid var(--c-line);
|
|
6861
|
+
border-radius: 6px;
|
|
6862
|
+
background: var(--c-panel);
|
|
6863
|
+
color: var(--c-text);
|
|
6864
|
+
}
|