@1agh/maude 0.43.0 → 0.45.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 (126) hide show
  1. package/apps/studio/acp/bridge.ts +44 -10
  2. package/apps/studio/acp/env.ts +23 -0
  3. package/apps/studio/acp/login-state.ts +263 -0
  4. package/apps/studio/acp/plugin-bootstrap.ts +31 -25
  5. package/apps/studio/acp/probe.ts +152 -1
  6. package/apps/studio/annotations-layer.tsx +396 -46
  7. package/apps/studio/api.ts +395 -2
  8. package/apps/studio/bin/_audio-search.mjs +140 -0
  9. package/apps/studio/bin/_import-asset-pdf-worker.mjs +34 -0
  10. package/apps/studio/bin/_import-asset.mjs +815 -0
  11. package/apps/studio/bin/_import-brand.mjs +635 -0
  12. package/apps/studio/bin/_import-tokens-alias-resolver.mjs +95 -0
  13. package/apps/studio/bin/_import-tokens.mjs +1201 -0
  14. package/apps/studio/bin/_transcribe.mjs +419 -0
  15. package/apps/studio/bin/_transcribe.test.mjs +80 -0
  16. package/apps/studio/bin/audio-search.sh +28 -0
  17. package/apps/studio/bin/generate.sh +154 -0
  18. package/apps/studio/bin/import-asset.sh +34 -0
  19. package/apps/studio/bin/import-brand.sh +29 -0
  20. package/apps/studio/bin/import-tokens.sh +33 -0
  21. package/apps/studio/bin/photo-bg-remove.sh +119 -21
  22. package/apps/studio/bin/transcribe.sh +39 -0
  23. package/apps/studio/canvas-edit.ts +197 -2
  24. package/apps/studio/canvas-lib.tsx +115 -6
  25. package/apps/studio/client/app.jsx +1954 -685
  26. package/apps/studio/client/generate-dialog.jsx +352 -0
  27. package/apps/studio/client/github.js +14 -0
  28. package/apps/studio/client/inspector-controls.jsx +781 -0
  29. package/apps/studio/client/panels/BrandUploadPanel.jsx +233 -0
  30. package/apps/studio/client/panels/ChatPanel.jsx +15 -33
  31. package/apps/studio/client/panels/IntroVideoDialog.jsx +44 -0
  32. package/apps/studio/client/panels/OnboardingWizard.jsx +12 -0
  33. package/apps/studio/client/panels/ReadinessList.jsx +227 -7
  34. package/apps/studio/client/panels/SettingsPanel.jsx +828 -0
  35. package/apps/studio/client/panels/SetupChecklist.jsx +223 -0
  36. package/apps/studio/client/photo-knobs.jsx +167 -172
  37. package/apps/studio/client/styles/3-shell-maude.css +334 -28
  38. package/apps/studio/client/styles/4-components.css +223 -0
  39. package/apps/studio/client/styles/6-acp-chat.css +86 -0
  40. package/apps/studio/client/tour/quick-setup-tour.js +39 -0
  41. package/apps/studio/commands/annotation-strokes-command.ts +13 -3
  42. package/apps/studio/config.schema.json +70 -0
  43. package/apps/studio/context-menu.tsx +11 -2
  44. package/apps/studio/context.ts +16 -0
  45. package/apps/studio/design-setup-readiness.ts +115 -0
  46. package/apps/studio/dist/client.bundle.js +2097 -2088
  47. package/apps/studio/dist/styles.css +1 -1
  48. package/apps/studio/draw/palette.ts +34 -0
  49. package/apps/studio/footage/schema.test.ts +92 -0
  50. package/apps/studio/footage/schema.ts +179 -1
  51. package/apps/studio/generation/adapters/elevenlabs.ts +370 -0
  52. package/apps/studio/generation/adapters/gemini.ts +542 -0
  53. package/apps/studio/generation/adapters/groq.test.ts +80 -0
  54. package/apps/studio/generation/adapters/groq.ts +247 -0
  55. package/apps/studio/generation/audio-library.test.ts +95 -0
  56. package/apps/studio/generation/audio-library.ts +156 -0
  57. package/apps/studio/generation/captions.test.ts +78 -0
  58. package/apps/studio/generation/captions.ts +132 -0
  59. package/apps/studio/generation/download.ts +76 -0
  60. package/apps/studio/generation/elevenlabs.test.ts +223 -0
  61. package/apps/studio/generation/gemini.test.ts +350 -0
  62. package/apps/studio/generation/jobs.test.ts +128 -0
  63. package/apps/studio/generation/jobs.ts +243 -0
  64. package/apps/studio/generation/keys.test.ts +75 -0
  65. package/apps/studio/generation/keys.ts +162 -0
  66. package/apps/studio/generation/prefs.test.ts +95 -0
  67. package/apps/studio/generation/prefs.ts +82 -0
  68. package/apps/studio/generation/registry.ts +88 -0
  69. package/apps/studio/generation/types.test.ts +123 -0
  70. package/apps/studio/generation/types.ts +266 -0
  71. package/apps/studio/generation/whisper-models.test.ts +152 -0
  72. package/apps/studio/generation/whisper-models.ts +257 -0
  73. package/apps/studio/generation/whisper-spike-results.md +61 -0
  74. package/apps/studio/git/service.ts +3 -1
  75. package/apps/studio/http.ts +867 -9
  76. package/apps/studio/media/intro.mp4 +0 -0
  77. package/apps/studio/media-commit-chain.ts +119 -0
  78. package/apps/studio/paths.ts +10 -0
  79. package/apps/studio/readiness.ts +108 -20
  80. package/apps/studio/scaffold-design.ts +1145 -0
  81. package/apps/studio/server.ts +13 -1
  82. package/apps/studio/test/_helpers.ts +15 -2
  83. package/apps/studio/test/acp-bridge.test.ts +34 -1
  84. package/apps/studio/test/acp-env.test.ts +30 -0
  85. package/apps/studio/test/acp-plugin-bootstrap.test.ts +23 -57
  86. package/apps/studio/test/acp-session-plugins.test.ts +72 -1
  87. package/apps/studio/test/annotation-strokes-command.test.ts +17 -0
  88. package/apps/studio/test/annotations-layer.test.ts +174 -0
  89. package/apps/studio/test/canvas-origin-gate.test.ts +37 -0
  90. package/apps/studio/test/csp-canvas-shell.test.ts +11 -0
  91. package/apps/studio/test/csrf-write-guard.test.ts +23 -1
  92. package/apps/studio/test/design-setup-readiness.test.ts +155 -0
  93. package/apps/studio/test/element-structural-edit.test.ts +108 -0
  94. package/apps/studio/test/fixtures/fake-claude-auth.mjs +13 -0
  95. package/apps/studio/test/generate-route.test.ts +106 -0
  96. package/apps/studio/test/import-asset-browser.test.ts +64 -0
  97. package/apps/studio/test/import-asset-route.test.ts +71 -0
  98. package/apps/studio/test/import-asset.test.ts +399 -0
  99. package/apps/studio/test/import-brand-browser.test.ts +88 -0
  100. package/apps/studio/test/import-brand-route.test.ts +120 -0
  101. package/apps/studio/test/import-brand.test.ts +206 -0
  102. package/apps/studio/test/import-tokens.test.ts +722 -0
  103. package/apps/studio/test/media-commit-chain.test.ts +210 -0
  104. package/apps/studio/test/photo-bg-remove-validation.test.ts +71 -0
  105. package/apps/studio/test/readiness.test.ts +13 -11
  106. package/apps/studio/test/scaffold-design.test.ts +122 -0
  107. package/apps/studio/test/tour-overlay.test.tsx +16 -0
  108. package/apps/studio/tool-palette.tsx +11 -6
  109. package/apps/studio/ui-prefs.ts +130 -0
  110. package/apps/studio/use-canvas-media-drop.tsx +4 -2
  111. package/apps/studio/use-chrome-visibility.tsx +8 -2
  112. package/apps/studio/whats-new.json +96 -0
  113. package/apps/studio/ws.ts +5 -0
  114. package/cli/bin/maude.mjs +6 -6
  115. package/cli/commands/design.mjs +33 -0
  116. package/cli/commands/init.mjs +7 -1
  117. package/cli/lib/gitignore-block.mjs +1 -0
  118. package/cli/lib/pkg-root.mjs +107 -0
  119. package/cli/lib/pkg-root.test.mjs +79 -0
  120. package/cli/lib/reconstruct-toolset.test.mjs +194 -0
  121. package/cli/lib/update-check.mjs +8 -0
  122. package/package.json +12 -10
  123. package/plugins/design/dependencies.json +18 -0
  124. package/plugins/flow/.claude-plugin/config.schema.json +5 -0
  125. package/plugins/flow/templates/ai-skeleton/scenario-guide.md +39 -0
  126. package/plugins/flow/templates/ai-skeleton/scenarios/README.md +2 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1agh/maude",
3
- "version": "0.43.0",
3
+ "version": "0.45.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": {
@@ -47,16 +47,17 @@
47
47
  "prepublishOnly": "bash scripts/check-version-parity.sh && bash apps/studio/bin/check-runtime-bundles.sh",
48
48
  "test:e2e:desktop:lifecycle": "pnpm --filter @maude/desktop-e2e e2e:lifecycle",
49
49
  "test:e2e:desktop:switchrepos": "pnpm --filter @maude/desktop-e2e e2e:switchrepos",
50
- "test:e2e:desktop:onboarding": "pnpm --filter @maude/desktop-e2e e2e:onboarding"
50
+ "test:e2e:desktop:onboarding": "pnpm --filter @maude/desktop-e2e e2e:onboarding",
51
+ "test:e2e:desktop:acp-cold-start": "pnpm --filter @maude/desktop-e2e e2e:acp-cold-start"
51
52
  },
52
53
  "optionalDependencies": {
53
- "@1agh/maude-darwin-arm64": "0.43.0",
54
- "@1agh/maude-darwin-x64": "0.43.0",
55
- "@1agh/maude-linux-arm64": "0.43.0",
56
- "@1agh/maude-linux-arm64-musl": "0.43.0",
57
- "@1agh/maude-linux-x64": "0.43.0",
58
- "@1agh/maude-linux-x64-musl": "0.43.0",
59
- "@1agh/maude-win32-x64": "0.43.0"
54
+ "@1agh/maude-darwin-arm64": "0.45.0",
55
+ "@1agh/maude-darwin-x64": "0.45.0",
56
+ "@1agh/maude-linux-arm64": "0.45.0",
57
+ "@1agh/maude-linux-arm64-musl": "0.45.0",
58
+ "@1agh/maude-linux-x64": "0.45.0",
59
+ "@1agh/maude-linux-x64-musl": "0.45.0",
60
+ "@1agh/maude-win32-x64": "0.45.0"
60
61
  },
61
62
  "files": [
62
63
  "cli",
@@ -96,7 +97,8 @@
96
97
  "devDependencies": {
97
98
  "@biomejs/biome": "^2.5.3",
98
99
  "@changesets/cli": "^2.27.10",
99
- "@playwright/test": "^1.61.1"
100
+ "@playwright/test": "^1.61.1",
101
+ "lucide-react": "^1.24.0"
100
102
  },
101
103
  "dependencies": {
102
104
  "ajv": "^8.20.0",
@@ -195,6 +195,24 @@
195
195
  "fallbackBehavior": "Phase 31 (DDR-123) — the native ACP chat sidepanel drives the user's OWN installed `claude` CLI on their Pro/Max subscription (never API billing). Without it the panel shows the not-connected explainer ('run `claude` in a terminal and `/login`'); every other design surface is unaffected.",
196
196
  "usedBy": ["dev-server/acp/probe.ts", "dev-server/acp/bridge.ts"],
197
197
  "docsUrl": "https://docs.claude.com/en/docs/claude-code"
198
+ },
199
+ {
200
+ "id": "whisper-cpp",
201
+ "type": "cli",
202
+ "hardness": "soft",
203
+ "check": {
204
+ "command": "whisper-cli --help",
205
+ "expectExit": 0
206
+ },
207
+ "install": {
208
+ "darwin": "brew install whisper-cpp",
209
+ "linux": "https://github.com/ggml-org/whisper.cpp#quick-start",
210
+ "preferred": "https://github.com/ggml-org/whisper.cpp"
211
+ },
212
+ "autoInstall": false,
213
+ "fallbackBehavior": "feature-ai-media-generation Phase 2 (DDR-164) — `maude design transcribe` uses whisper.cpp for local, no-key, word-timestamped subtitles (the DEFAULT subtitle path). Without it, transcription falls back to cloud STT (ElevenLabs Scribe / Groq Whisper) via a provider key. whisper.cpp also needs a ggml model file (--model / $MAUDE_WHISPER_MODEL); it ships no default and does not auto-download — see https://huggingface.co/ggerganov/whisper.cpp (e.g. ggml-large-v3-turbo.bin).",
214
+ "usedBy": ["dev-server/bin/transcribe.sh", "dev-server/bin/_transcribe.mjs"],
215
+ "docsUrl": "https://github.com/ggml-org/whisper.cpp"
198
216
  }
199
217
  ]
200
218
  }
@@ -47,6 +47,11 @@
47
47
  "type": "string",
48
48
  "description": "Root of the design plugin's canvas workspace, relative to repo root. Where flow looks for `.meta.json` sidecars + canvases when bridging to design (`/flow:plan` canvas detection, `/flow:done` handoff sweep, `codebase-intelligence` design-artifacts section). Mirrors the design plugin's own default. Flow reads this directory read-only — it never writes into the design root except the `/flow:done` handoff sweep's meta status update. Default: `.design`.",
49
49
  "default": ".design"
50
+ },
51
+ "scenarioGuide": {
52
+ "type": "string",
53
+ "description": "Repo-owned scenario-testing knowledge/deltas file that flow:scenario reads for overrides — device/platform lifecycle, selector conventions, infra-error classification, platform-specific gotchas. Mirrors `integrations.changelog.releaseGuide`'s generic-skill-plus-repo-knowledge-file shape, but optional: unlike the release guide, flow:scenario runs its documented defaults when this file is absent — no project is required to author one. Scaffolded by `maude init`. Default: `.ai/scenario-guide.md`.",
54
+ "default": ".ai/scenario-guide.md"
50
55
  }
51
56
  }
52
57
  },
@@ -0,0 +1,39 @@
1
+ # Scenario Guide — PROJECT_NAME
2
+
3
+ > Read by `flow:scenario` (skill + `scenario-runner` agent) before running or authoring a scenario. This file documents ONLY where this project's scenario testing diverges from `flow:scenario`'s generic protocol — device/platform matrix, selector strategy, report shape, speed levers. An absent or empty file is valid: `flow:scenario` runs its documented defaults with no changes. Delete any section below that doesn't apply to this project; don't fill a section with a generic restatement of the default behavior.
4
+
5
+ ## Device / platform lifecycle
6
+
7
+ > Does this project need something other than the generic default (native platforms run in parallel where the host allows it)? State the constraint and why — e.g. a RAM- or CPU-constrained CI/dev box that can only hold one simulator/emulator alive at a time forces a sequential lifecycle instead.
8
+
9
+ _Not yet documented — using the generic default._
10
+
11
+ ## Test account & reset strategy
12
+
13
+ > How does a scenario run get the app into a known state before asserting anything? If this project has a seeded test account, a fixture/profile system, or an in-app reset affordance, describe (or link to) it here. If this lives in its own skill (e.g. a dedicated test-account skill), reference it — don't duplicate its contents.
14
+
15
+ _Not yet documented — using the generic default (no project-specific reset step)._
16
+
17
+ ## Selector strategy overrides
18
+
19
+ > `flow:scenario`'s default selector reach-order is: stable locator (testID / `data-testid`) → accessible name/text → vision-based check (advisory only, never gates a pass/fail). Document here only if this project's locator convention deviates — e.g. a different testID naming scheme, a platform where accessible-name lookup is unreliable, or an additional locator tier.
20
+
21
+ _Not yet documented — using the generic default._
22
+
23
+ ## Infra-error classification overrides
24
+
25
+ > `flow:scenario`'s default treats environment/flake failures (device boot timeout, network blip, stale simulator state) as distinct from real product regressions, so they don't count as blockers. If this project binds that convention to a specific exit code or detection rule, document it here.
26
+
27
+ _Not yet documented — using the generic default._
28
+
29
+ ## Platform-specific gotchas
30
+
31
+ > A running log of harness quirks specific to this project's stack (framework cold-start races, platform dialog chains, overlay/devtools collisions, coordinate math for custom pickers, etc.). Add an entry whenever a scenario run fails for a reason that isn't a product bug — future runs (and future contributors) benefit from not re-discovering it.
32
+
33
+ _None recorded yet._
34
+
35
+ ## Scenario-authoring notes
36
+
37
+ > Anything specific to how new scenarios should be authored for this project beyond `flow:scenario`'s default collaborative loop (announce → act → screenshot → co-design asserts with the user → stop, one step at a time). E.g. project-specific `--save-script` conventions, or app areas that need special care when picking assertions.
38
+
39
+ _Not yet documented — using the generic default._
@@ -2,6 +2,8 @@
2
2
 
3
3
  Cross-platform UI scenarios. One folder per scenario; per-run reports inside.
4
4
 
5
+ > This file documents the **directory layout** convention for individual scenarios. For *behavioral* deltas from `flow:scenario`'s generic protocol (device lifecycle, selector conventions, infra-error classification, platform gotchas), see `../scenario-guide.md` instead — the two files have distinct scopes and shouldn't be merged.
6
+
5
7
  ## Layout
6
8
 
7
9
  ```