@1agh/maude 0.46.0 → 0.47.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/apps/studio/acp/bootstrap-brief.ts +8 -0
- package/apps/studio/acp/bridge.ts +113 -5
- package/apps/studio/annotations-layer.tsx +42 -0
- package/apps/studio/api.ts +417 -2
- package/apps/studio/bin/_agent-browser-safe-config.json +1 -0
- package/apps/studio/bin/_agent-browser-safe.mjs +228 -0
- package/apps/studio/bin/_agent-browser-safe.test.mjs +165 -0
- package/apps/studio/bin/_curl-local.mjs +349 -0
- package/apps/studio/bin/_curl-local.test.mjs +280 -0
- package/apps/studio/bin/agent-browser-safe.sh +29 -0
- package/apps/studio/bin/curl-local.sh +28 -0
- package/apps/studio/canvas-cursors.ts +6 -0
- package/apps/studio/canvas-edit.ts +678 -11
- package/apps/studio/canvas-icons.tsx +13 -0
- package/apps/studio/canvas-lib.tsx +3 -0
- package/apps/studio/canvas-shell.tsx +646 -26
- package/apps/studio/client/app.jsx +898 -52
- package/apps/studio/client/panels/ChatPanel.jsx +47 -2
- package/apps/studio/client/styles/3-shell-maude.css +39 -0
- package/apps/studio/contextual-toolbar.tsx +5 -3
- package/apps/studio/dist/client.bundle.js +1103 -1103
- package/apps/studio/dist/comment-mount.js +2 -2
- package/apps/studio/dist/styles.css +1 -1
- package/apps/studio/grid-track-handles.ts +179 -0
- package/apps/studio/handoff.ts +35 -0
- package/apps/studio/http.ts +118 -0
- package/apps/studio/input-router.tsx +73 -17
- package/apps/studio/test/acp-session-allowed-tools.test.ts +107 -11
- package/apps/studio/test/browse-posture.test.tsx +107 -0
- package/apps/studio/test/canvas-hide-chrome.test.ts +58 -0
- package/apps/studio/test/canvas-meta-api.test.ts +70 -0
- package/apps/studio/test/canvas-origin-gate.test.ts +4 -0
- package/apps/studio/test/comment-mount.test.ts +2 -1
- package/apps/studio/test/component-map.test.ts +48 -0
- package/apps/studio/test/convert-to-absolute.test.ts +333 -0
- package/apps/studio/test/detach-component.test.ts +94 -0
- package/apps/studio/test/edit-scope-api.test.ts +8 -4
- package/apps/studio/test/element-structural-api.test.ts +74 -0
- package/apps/studio/test/element-structural-edit.test.ts +113 -0
- package/apps/studio/test/grid-track-handles.test.ts +160 -0
- package/apps/studio/test/handoff.test.ts +48 -0
- package/apps/studio/test/input-router.test.ts +82 -8
- package/apps/studio/test/layers-synthetic-groups.test.ts +96 -0
- package/apps/studio/test/pdf-print-boxes.test.ts +54 -0
- package/apps/studio/test/use-tool-mode.test.tsx +10 -2
- package/apps/studio/tool-palette.tsx +3 -1
- package/apps/studio/use-canvas-media-drop.tsx +126 -0
- package/apps/studio/use-element-resize.tsx +3 -1
- package/apps/studio/use-grid-track-handles.tsx +364 -0
- package/apps/studio/use-keyboard-discipline.tsx +15 -0
- package/apps/studio/use-tool-mode.tsx +30 -3
- package/apps/studio/web-overlay-content.tsx +52 -0
- package/apps/studio/whats-new.json +27 -0
- package/cli/commands/design.mjs +16 -0
- package/package.json +8 -8
- package/plugins/design/templates/_shell.html +4 -0
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./whats-new.schema.json",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"id": "figma-smart-select",
|
|
6
|
+
"version": "0.47.0",
|
|
7
|
+
"date": "2026-07-21",
|
|
8
|
+
"kind": "feature",
|
|
9
|
+
"title": "Click to select, like Figma",
|
|
10
|
+
"summary": "Your mock now opens live — click a button or link to actually try it. When you want to edit, press V: a plain click selects the object under your cursor, ⌘-click reaches the deepest element, double-click drills in one level, and Enter / Shift+Enter / Tab walk the layer tree. The toolbar's first two tools are Browse (live) and Select (V). The Layers panel grew up too: wrapper groups show at their real depth, component instances render purple with their component's name, you can lock a layer (locked layers can't be selected or dragged on the canvas), double-click a layer's name to rename it, and the tree auto-reveals whatever you pick on the canvas. And when a flex layout fights your manual tweaks, right-click the container → \"Convert children to absolute position\" freezes every child where it sits so you can drag them freely (one undo reverts it) — or convert a whole artboard at once (right-click the artboard, or when switching its kind to Digital/Print). And when a component instance needs its own look, hit Detach on the Inspector's Shared badge — edits stay local to that one instance. Text editing got Figma's exact rhythm too: drilling down to a text layer selects all of it (ready to overwrite), and once you're in, a click places the cursor, a double-click grabs a word, and a triple-click grabs everything.",
|
|
11
|
+
"surface": "design-ui"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "acp-safe-defaults-and-attention-notifications",
|
|
15
|
+
"version": "0.47.0",
|
|
16
|
+
"date": "2026-07-21",
|
|
17
|
+
"kind": "improvement",
|
|
18
|
+
"title": "Fewer prompts in chat, and a nudge when you're needed",
|
|
19
|
+
"summary": "The assistant chat now runs common design-workflow actions — browser checks, your own local dev-server requests, reading files, and web search — without asking every time. And when a chat is waiting on your approval or an answer, Maude now sends a system notification so you don't miss it.",
|
|
20
|
+
"surface": "design-ui"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "web-artboards",
|
|
24
|
+
"version": "0.47.0",
|
|
25
|
+
"date": "2026-07-21",
|
|
26
|
+
"kind": "feature",
|
|
27
|
+
"title": "Web artboards — breakpoints, duplicate, and a grid editor",
|
|
28
|
+
"summary": "Set an artboard's kind to Web and it becomes a responsive viewport: a small chip shows its current breakpoint, and \"Duplicate at width…\" (right-click or the Inspector) clones it at Mobile/Tablet/Laptop/Desktop widths for reflow testing. Grid containers also get a new Grid section in the Inspector — define columns and rows with px/%/fr/em/auto units, drag the gutters directly on the canvas, and place children into specific cells.",
|
|
29
|
+
"surface": "design-ui"
|
|
30
|
+
},
|
|
4
31
|
{
|
|
5
32
|
"id": "scene-aware-video-analyze",
|
|
6
33
|
"version": "0.46.0",
|
package/cli/commands/design.mjs
CHANGED
|
@@ -110,6 +110,22 @@ const BIN_VERBS = new Set([
|
|
|
110
110
|
// user's ElevenLabs history before spending credits on a new music/SFX/VO
|
|
111
111
|
// track. Runs server-side (key resolved by the sidecar); needs a dev server.
|
|
112
112
|
'audio-search',
|
|
113
|
+
// DDR-185. `curl-local` is a loopback-only curl: resolves the request's
|
|
114
|
+
// target host and refuses to invoke real curl at all unless every resolved
|
|
115
|
+
// address is strictly loopback (127.0.0.0/8 or ::1). Exists so an ACP chat
|
|
116
|
+
// session can auto-approve "check my local dev server" without widening the
|
|
117
|
+
// session's Bash allow-list to unscoped curl (`Bash(curl:*)` would reach any
|
|
118
|
+
// host — see DDR-185's rejected alternatives). No dev server dependency —
|
|
119
|
+
// pure Node, no `<designRoot>` involvement.
|
|
120
|
+
'curl-local',
|
|
121
|
+
// DDR-185 security addendum. `agent-browser-safe` replaces the bare
|
|
122
|
+
// `Bash(agent-browser:*)` allow-list entry a security review found was a
|
|
123
|
+
// zero-confirmation session-hijack primitive (agent-browser's own bundled
|
|
124
|
+
// skill recommends a PERSISTENT authenticated Chrome profile). Closed
|
|
125
|
+
// subcommand allow-list + forced domain scope + forced ephemeral profile —
|
|
126
|
+
// see `_agent-browser-safe.mjs` for the full rationale. No dev server
|
|
127
|
+
// dependency — pure Node.
|
|
128
|
+
'agent-browser-safe',
|
|
113
129
|
]);
|
|
114
130
|
|
|
115
131
|
// Bin verbs that boot the dev-server (directly, or by shelling into server-up.sh).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1agh/maude",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.47.0",
|
|
4
4
|
"description": "Marketplace of Claude Code plugins by Michal Dovrtěl: `design` (canvas-first design iteration) + `flow` (generic agentic workflow loop with .ai second brain). Ships the `maude` CLI (with `mdcc` legacy alias) to scaffold workspace, run the design dev server, and manage configs.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -51,13 +51,13 @@
|
|
|
51
51
|
"test:e2e:desktop:acp-cold-start": "pnpm --filter @maude/desktop-e2e e2e:acp-cold-start"
|
|
52
52
|
},
|
|
53
53
|
"optionalDependencies": {
|
|
54
|
-
"@1agh/maude-darwin-arm64": "0.
|
|
55
|
-
"@1agh/maude-darwin-x64": "0.
|
|
56
|
-
"@1agh/maude-linux-arm64": "0.
|
|
57
|
-
"@1agh/maude-linux-arm64-musl": "0.
|
|
58
|
-
"@1agh/maude-linux-x64": "0.
|
|
59
|
-
"@1agh/maude-linux-x64-musl": "0.
|
|
60
|
-
"@1agh/maude-win32-x64": "0.
|
|
54
|
+
"@1agh/maude-darwin-arm64": "0.47.0",
|
|
55
|
+
"@1agh/maude-darwin-x64": "0.47.0",
|
|
56
|
+
"@1agh/maude-linux-arm64": "0.47.0",
|
|
57
|
+
"@1agh/maude-linux-arm64-musl": "0.47.0",
|
|
58
|
+
"@1agh/maude-linux-x64": "0.47.0",
|
|
59
|
+
"@1agh/maude-linux-x64-musl": "0.47.0",
|
|
60
|
+
"@1agh/maude-win32-x64": "0.47.0"
|
|
61
61
|
},
|
|
62
62
|
"files": [
|
|
63
63
|
"cli",
|
|
@@ -116,6 +116,10 @@
|
|
|
116
116
|
.dc-hmr-holding,
|
|
117
117
|
/* Artboard title/label button (editor affordance, not design content) */
|
|
118
118
|
.dc-artboard-label,
|
|
119
|
+
/* Print/bleed/trim/margin guide overlay (feature-2-print-artboards) —
|
|
120
|
+
in-app-only chrome; never part of a PDF/PNG/SVG export (RCA
|
|
121
|
+
issue-pdf-print-export-marks-missing). */
|
|
122
|
+
.dc-artboard-guides,
|
|
119
123
|
/* Generic opt-in hooks for any future floating overlay */
|
|
120
124
|
[data-dc-overlay],
|
|
121
125
|
[data-mdcc-annotations] { display: none !important; }
|