@1agh/maude 0.29.0 → 0.31.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.
Files changed (162) hide show
  1. package/README.md +6 -6
  2. package/apps/studio/acp/bridge.ts +285 -0
  3. package/apps/studio/acp/env.ts +48 -0
  4. package/apps/studio/acp/index.ts +132 -0
  5. package/apps/studio/acp/probe.ts +112 -0
  6. package/apps/studio/acp/transcript.ts +149 -0
  7. package/apps/studio/ai-banner.tsx +0 -1
  8. package/apps/studio/annotations-align.ts +149 -0
  9. package/apps/studio/annotations-bindings.ts +197 -0
  10. package/apps/studio/annotations-context-toolbar.tsx +436 -186
  11. package/apps/studio/annotations-groups.ts +270 -0
  12. package/apps/studio/annotations-layer.tsx +1714 -1661
  13. package/apps/studio/annotations-model.ts +2077 -0
  14. package/apps/studio/annotations-snap.ts +125 -0
  15. package/apps/studio/api.ts +433 -182
  16. package/apps/studio/bin/_png-playwright.mjs +1 -1
  17. package/apps/studio/bin/annotate.mjs +732 -0
  18. package/apps/studio/bin/annotate.sh +17 -0
  19. package/apps/studio/bin/chat-open.sh +44 -0
  20. package/apps/studio/bin/read-annotations.mjs +152 -17
  21. package/apps/studio/build.ts +1 -1
  22. package/apps/studio/canvas-arrowheads.ts +78 -9
  23. package/apps/studio/canvas-cursors.ts +2 -0
  24. package/apps/studio/canvas-edit.ts +257 -7
  25. package/apps/studio/canvas-icons.tsx +105 -0
  26. package/apps/studio/canvas-lib.tsx +112 -19
  27. package/apps/studio/canvas-list-watch.ts +177 -0
  28. package/apps/studio/canvas-shell.tsx +326 -9
  29. package/apps/studio/client/app.jsx +3579 -250
  30. package/apps/studio/client/canvas-url.js +5 -0
  31. package/apps/studio/client/github.js +99 -0
  32. package/apps/studio/client/index.html +1 -1
  33. package/apps/studio/client/panels/ChatPanel.jsx +770 -0
  34. package/apps/studio/client/panels/CollabModelInfographic.jsx +71 -0
  35. package/apps/studio/client/panels/CreateProject.jsx +334 -0
  36. package/apps/studio/client/panels/DiffView.jsx +590 -0
  37. package/apps/studio/client/panels/GitPanel.jsx +767 -0
  38. package/apps/studio/client/panels/IdentityBar.jsx +294 -0
  39. package/apps/studio/client/panels/OnboardingWizard.jsx +563 -0
  40. package/apps/studio/client/panels/RepoBranchSwitcher.jsx +349 -0
  41. package/apps/studio/client/panels/acp-runtime.js +286 -0
  42. package/apps/studio/client/panels/chat-markdown.jsx +138 -0
  43. package/apps/studio/client/panels/git-grouping.js +86 -0
  44. package/apps/studio/client/styles/0-reset.css +4 -0
  45. package/apps/studio/client/styles/3-shell-maude.css +1326 -14
  46. package/apps/studio/client/styles/4-components.css +39 -0
  47. package/apps/studio/client/styles/5-maude-overrides.css +41 -2
  48. package/apps/studio/client/styles/6-acp-chat.css +771 -0
  49. package/apps/studio/client/styles/_index.css +2 -0
  50. package/apps/studio/client/tour/collab-tour.js +61 -0
  51. package/apps/studio/client/tour/overlay.jsx +116 -18
  52. package/apps/studio/client/tour/usage-tour.js +23 -10
  53. package/apps/studio/client/whats-new.jsx +25 -10
  54. package/apps/studio/collab/registry.ts +13 -0
  55. package/apps/studio/collab/room.ts +36 -0
  56. package/apps/studio/commands/annotation-strokes-command.ts +1 -1
  57. package/apps/studio/commands/move-artboards-command.ts +1 -1
  58. package/apps/studio/comments-overlay.tsx +7 -5
  59. package/apps/studio/context-menu.tsx +4 -3
  60. package/apps/studio/contextual-toolbar.tsx +14 -0
  61. package/apps/studio/cursors-overlay.tsx +37 -21
  62. package/apps/studio/dist/client.bundle.js +31795 -1829
  63. package/apps/studio/dist/comment-mount.js +97 -9
  64. package/apps/studio/dist/styles.css +7938 -1599
  65. package/apps/studio/dom-selection.ts +115 -0
  66. package/apps/studio/export-dialog.tsx +3 -3
  67. package/apps/studio/git/endpoints.ts +338 -0
  68. package/apps/studio/git/service.ts +1334 -0
  69. package/apps/studio/git/watch.ts +97 -0
  70. package/apps/studio/github/endpoints.ts +358 -0
  71. package/apps/studio/github/service.ts +231 -0
  72. package/apps/studio/github/token.ts +53 -0
  73. package/apps/studio/history.ts +20 -3
  74. package/apps/studio/hmr-broadcast.ts +9 -2
  75. package/apps/studio/http.ts +508 -6
  76. package/apps/studio/input-router.tsx +7 -0
  77. package/apps/studio/inspect.ts +37 -8
  78. package/apps/studio/participants-chrome.tsx +70 -16
  79. package/apps/studio/paths.ts +12 -0
  80. package/apps/studio/scaffold-design.ts +57 -0
  81. package/apps/studio/server.ts +70 -4
  82. package/apps/studio/sync/agent.ts +311 -57
  83. package/apps/studio/sync/codec.ts +69 -0
  84. package/apps/studio/sync/cold-start.ts +198 -0
  85. package/apps/studio/sync/connection-state.ts +58 -2
  86. package/apps/studio/sync/hub-link.ts +137 -0
  87. package/apps/studio/sync/index.ts +563 -221
  88. package/apps/studio/sync/journal.ts +190 -0
  89. package/apps/studio/sync/migrate-seed.ts +202 -44
  90. package/apps/studio/sync/projection.ts +22 -3
  91. package/apps/studio/sync/status.ts +15 -4
  92. package/apps/studio/test/acp-bridge.test.ts +127 -0
  93. package/apps/studio/test/acp-env.test.ts +65 -0
  94. package/apps/studio/test/acp-origin-gate.test.ts +78 -0
  95. package/apps/studio/test/acp-transcript.test.ts +112 -0
  96. package/apps/studio/test/activity.test.ts +1 -7
  97. package/apps/studio/test/annotate-write.test.ts +184 -0
  98. package/apps/studio/test/annotations-align.test.ts +88 -0
  99. package/apps/studio/test/annotations-bindings.test.ts +124 -0
  100. package/apps/studio/test/annotations-groups.test.ts +231 -0
  101. package/apps/studio/test/annotations-snap.test.ts +79 -0
  102. package/apps/studio/test/canvas-create-api.test.ts +72 -0
  103. package/apps/studio/test/canvas-edit.test.ts +181 -1
  104. package/apps/studio/test/canvas-list-watch.test.ts +322 -0
  105. package/apps/studio/test/canvas-meta-api.test.ts +161 -27
  106. package/apps/studio/test/canvas-origin-gate.test.ts +43 -0
  107. package/apps/studio/test/chat-markdown.test.tsx +58 -0
  108. package/apps/studio/test/collab-bridge.test.ts +0 -2
  109. package/apps/studio/test/collab-room.test.ts +2 -7
  110. package/apps/studio/test/collab-session-survival.test.tsx +176 -0
  111. package/apps/studio/test/csp-canvas-shell.test.ts +5 -0
  112. package/apps/studio/test/csrf-write-guard.test.ts +78 -0
  113. package/apps/studio/test/editing-presence.test.ts +103 -0
  114. package/apps/studio/test/figjam-v3-model.test.ts +342 -0
  115. package/apps/studio/test/fixtures/figjam-v3-groups-bindings.svg +1 -0
  116. package/apps/studio/test/fixtures/mock-acp-agent.mjs +45 -0
  117. package/apps/studio/test/git-api.test.ts +0 -0
  118. package/apps/studio/test/git-branches.test.ts +106 -0
  119. package/apps/studio/test/git-grouping.test.ts +106 -0
  120. package/apps/studio/test/git-watch.test.ts +97 -0
  121. package/apps/studio/test/github-api.test.ts +465 -0
  122. package/apps/studio/test/hub-link.test.ts +69 -0
  123. package/apps/studio/test/participants-chrome.test.ts +36 -1
  124. package/apps/studio/test/shared-doc-migrate.test.ts +224 -14
  125. package/apps/studio/test/sync-agent.test.ts +272 -2
  126. package/apps/studio/test/sync-codec.test.ts +65 -0
  127. package/apps/studio/test/sync-cold-seed-dedup.test.ts +187 -0
  128. package/apps/studio/test/sync-cold-start.test.ts +304 -0
  129. package/apps/studio/test/sync-connection-state.test.ts +68 -0
  130. package/apps/studio/test/sync-hardening.test.ts +0 -8
  131. package/apps/studio/test/sync-hubs-config.test.ts +0 -1
  132. package/apps/studio/test/sync-incident-replay.test.ts +211 -0
  133. package/apps/studio/test/sync-journal.test.ts +176 -0
  134. package/apps/studio/test/sync-runtime.test.ts +360 -5
  135. package/apps/studio/test/sync-status.test.ts +66 -0
  136. package/apps/studio/test/tour-overlay.test.tsx +18 -0
  137. package/apps/studio/test/use-annotation-resize.test.ts +159 -0
  138. package/apps/studio/test/use-artboard-drag.test.ts +0 -1
  139. package/apps/studio/test/use-collab.test.ts +0 -0
  140. package/apps/studio/test/use-tool-mode.test.tsx +5 -2
  141. package/apps/studio/tool-palette.tsx +30 -11
  142. package/apps/studio/undo-hud.tsx +0 -1
  143. package/apps/studio/use-agent-presence.tsx +4 -2
  144. package/apps/studio/use-annotation-resize.tsx +484 -54
  145. package/apps/studio/use-annotation-selection.tsx +16 -4
  146. package/apps/studio/use-canvas-activity.tsx +2 -2
  147. package/apps/studio/use-chrome-visibility.tsx +66 -0
  148. package/apps/studio/use-collab.tsx +434 -202
  149. package/apps/studio/use-selection-set.tsx +9 -0
  150. package/apps/studio/use-tool-mode.tsx +5 -1
  151. package/apps/studio/whats-new.json +208 -10
  152. package/apps/studio/whats-new.schema.json +18 -2
  153. package/apps/studio/ws.ts +44 -1
  154. package/cli/commands/design-link.test.mjs +84 -0
  155. package/cli/commands/design.mjs +3 -1
  156. package/cli/commands/design.test.mjs +5 -1
  157. package/cli/lib/design-link.mjs +51 -1
  158. package/cli/lib/gitignore-block.mjs +16 -3
  159. package/cli/lib/gitignore-block.test.mjs +13 -1
  160. package/package.json +11 -9
  161. package/plugins/design/dependencies.json +17 -0
  162. package/plugins/design/templates/_shell.html +58 -12
@@ -1353,6 +1353,45 @@
1353
1353
  color: var(--u-fg-2);
1354
1354
  margin-bottom: 14px;
1355
1355
  }
1356
+ /* "Do this one thing" hint — shown when a step needs a canvas open or an element
1357
+ ⌘-clicked (the cross-origin canvas means the tour can't do it for you). */
1358
+ .mdcc-tour__hint {
1359
+ display: flex;
1360
+ align-items: center;
1361
+ gap: 8px;
1362
+ margin: -4px 0 14px;
1363
+ padding: 8px 10px;
1364
+ border-radius: var(--radius-md);
1365
+ background: color-mix(in oklab, var(--u-accent) 12%, transparent);
1366
+ border: 1px solid color-mix(in oklab, var(--u-accent) 35%, transparent);
1367
+ color: var(--u-fg-1);
1368
+ font-size: 12px;
1369
+ line-height: 1.4;
1370
+ }
1371
+ .mdcc-tour__hint-dot {
1372
+ flex: none;
1373
+ width: 8px;
1374
+ height: 8px;
1375
+ border-radius: 50%;
1376
+ background: var(--u-accent);
1377
+ animation: mdcc-tour-pulse 1.4s ease-in-out infinite;
1378
+ }
1379
+ @keyframes mdcc-tour-pulse {
1380
+ 0%,
1381
+ 100% {
1382
+ opacity: 0.4;
1383
+ transform: scale(0.85);
1384
+ }
1385
+ 50% {
1386
+ opacity: 1;
1387
+ transform: scale(1.15);
1388
+ }
1389
+ }
1390
+ @media (prefers-reduced-motion: reduce) {
1391
+ .mdcc-tour__hint-dot {
1392
+ animation: none;
1393
+ }
1394
+ }
1356
1395
  .mdcc-tour__actions {
1357
1396
  display: flex;
1358
1397
  align-items: center;
@@ -25,6 +25,9 @@
25
25
  .maude .help-modal-hd {
26
26
  border-bottom: 1px solid var(--border-subtle);
27
27
  background: var(--bg-1);
28
+ /* title + SKU sat glued together (flex space-between, no gap) */
29
+ justify-content: flex-start;
30
+ gap: var(--space-4);
28
31
  }
29
32
  .maude .help-modal-hd .title { font-family: var(--font-display); font-weight: 600; letter-spacing: var(--tracking-tight); text-transform: none; color: var(--fg-0); }
30
33
  .maude .help-modal-hd .sku { font-family: var(--font-mono); color: var(--fg-3); }
@@ -61,10 +64,37 @@
61
64
  .mdcc-tour__skip { background: transparent; color: var(--fg-2); border: 0; font-family: var(--font-body); }
62
65
  .mdcc-tour__skip:hover { color: var(--fg-0); }
63
66
 
67
+ /* ─── Phase 29 (E4) — collab tour: the two-layer infographic step ──────────────
68
+ A step with a `render` graphic widens the card so the diagram breathes. cm-*
69
+ classes draw the live layer floating over the Save → Publish → Pull cycle. */
70
+ .mdcc-tour__card--graphic { width: min(580px, 92vw) !important; }
71
+ .mdcc-tour__graphic { margin: var(--space-2) 0 var(--space-4); }
72
+ .cm-info { display: flex; flex-direction: column; gap: var(--space-3); }
73
+ .cm-live { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4); border: 1px solid color-mix(in oklab, var(--presence-online) 32%, var(--border-default)); border-radius: var(--radius-md); background: color-mix(in oklab, var(--presence-online) 8%, var(--bg-2)); }
74
+ .cm-live-hd { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--type-sm); color: var(--fg-1); }
75
+ .cm-live-hd b { color: var(--fg-0); }
76
+ .cm-live-dot { width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--presence-online); box-shadow: 0 0 0 4px color-mix(in oklab, var(--presence-online) 22%, transparent); flex: 0 0 auto; }
77
+ .cm-live-items { display: flex; flex-wrap: wrap; gap: var(--space-2); }
78
+ .cm-live-item { display: inline-flex; align-items: center; gap: 5px; padding: 2px var(--space-2); border-radius: var(--radius-pill); background: var(--bg-1); border: 1px solid var(--border-subtle); color: var(--fg-2); font-size: var(--type-xs); }
79
+ .cm-live-item svg { color: var(--presence-online); }
80
+ .cm-live-note { color: var(--fg-2); font-size: var(--type-xs); }
81
+ .cm-bridge { display: flex; align-items: center; gap: var(--space-3); }
82
+ .cm-bridge-line { flex: 1; height: 1px; background: var(--border-default); }
83
+ .cm-bridge-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--fg-3); }
84
+ .cm-cycle { position: relative; display: flex; align-items: flex-start; justify-content: center; gap: var(--space-2); }
85
+ .cm-cycle::before { content: ""; position: absolute; top: 30px; left: 14%; right: 14%; height: 2px; background: linear-gradient(90deg, transparent, var(--accent-muted) 18%, var(--accent-muted) 82%, transparent); border-radius: var(--radius-pill); }
86
+ .cm-step { position: relative; flex: 1 1 0; max-width: 160px; display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-2); border: 1px solid var(--border-default); border-radius: var(--radius-md); background: var(--bg-1); text-align: center; }
87
+ .cm-step-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: var(--radius-md); background: var(--accent-tint); color: var(--accent); }
88
+ .cm-step-label { font-weight: 600; color: var(--fg-0); font-size: var(--type-xs); }
89
+ .cm-step-sub { color: var(--fg-2); font-size: 10px; line-height: var(--lh-sm); }
90
+ .cm-cyc-arrow { color: var(--accent); align-self: center; padding-top: 14px; }
91
+
64
92
  /* tour nudge (first-run) */
65
93
  .maude .mdcc-tour-nudge {
66
94
  background: var(--bg-2); border: 1px solid var(--border-default); border-left: 3px solid var(--accent);
67
95
  border-radius: var(--radius-md); box-shadow: var(--shadow-lg); font-family: var(--font-body); color: var(--fg-1);
96
+ /* raised above the in-canvas zoom pill (bottom-left), same as .st-toast */
97
+ bottom: 84px;
68
98
  }
69
99
  .maude .mdcc-tour-nudge__cta { background: var(--accent); color: var(--accent-fg); border: 0; border-radius: var(--radius-sm); font-family: var(--font-body); font-weight: 500; }
70
100
  .maude .mdcc-tour-nudge__cta:hover { background: var(--accent-hover); }
@@ -108,8 +138,17 @@
108
138
  .maude .sv-h-num, .maude .sv-count { font-family: var(--font-mono); color: var(--fg-3); }
109
139
  .maude .sv-tok-cell { border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); background: var(--bg-1); overflow: hidden; }
110
140
  .maude .sv-tok-swatch { border-radius: 0; }
111
- .maude .sv-tok-name { font-family: var(--font-mono); color: var(--fg-0); }
112
- .maude .sv-tok-value { font-family: var(--font-mono); color: var(--fg-2); }
141
+ /* token meta — the legacy side-by-side row wrapped long names across 3 lines
142
+ * ("--presence-" / "offline"); stack name over value, each on one nowrap line. */
143
+ .maude .sv-tok-meta {
144
+ flex-direction: column;
145
+ align-items: flex-start;
146
+ justify-content: flex-start;
147
+ gap: 1px;
148
+ padding: var(--space-2) var(--space-3);
149
+ }
150
+ .maude .sv-tok-name { font-family: var(--font-mono); color: var(--fg-0); white-space: nowrap; max-width: 100%; }
151
+ .maude .sv-tok-value { font-family: var(--font-mono); color: var(--fg-2); max-width: 100%; }
113
152
  .maude .sv-type-row { border-bottom: 1px solid var(--border-subtle); }
114
153
  .maude .sv-type-tok { font-family: var(--font-mono); color: var(--fg-2); }
115
154
  .maude .sv-preview-card { border: 1px solid var(--border-subtle); border-radius: var(--radius-md); background: var(--bg-1); overflow: hidden; box-shadow: var(--shadow-sm); }