@1agh/maude 0.42.0 → 0.44.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/.ai/cache/_stats.json +7 -0
- package/apps/studio/acp/bootstrap-brief.ts +12 -2
- package/apps/studio/acp/bridge.ts +44 -10
- package/apps/studio/acp/env.ts +23 -0
- package/apps/studio/acp/login-state.ts +263 -0
- package/apps/studio/acp/plugin-bootstrap.ts +31 -25
- package/apps/studio/acp/probe.ts +152 -1
- package/apps/studio/annotations-layer.tsx +1451 -324
- package/apps/studio/annotations-model.ts +58 -0
- package/apps/studio/api.ts +568 -24
- package/apps/studio/bin/_audio-search.mjs +140 -0
- package/apps/studio/bin/_import-asset-pdf-worker.mjs +34 -0
- package/apps/studio/bin/_import-asset.mjs +815 -0
- package/apps/studio/bin/_import-brand.mjs +635 -0
- package/apps/studio/bin/_import-tokens-alias-resolver.mjs +95 -0
- package/apps/studio/bin/_import-tokens.mjs +1201 -0
- package/apps/studio/bin/_ingest-footage.mjs +386 -0
- package/apps/studio/bin/_probe-footage-playwright.mjs +269 -0
- package/apps/studio/bin/_transcribe.mjs +419 -0
- package/apps/studio/bin/_transcribe.test.mjs +80 -0
- package/apps/studio/bin/_video-playwright.mjs +141 -71
- package/apps/studio/bin/audio-search.sh +28 -0
- package/apps/studio/bin/generate.sh +154 -0
- package/apps/studio/bin/import-asset.sh +34 -0
- package/apps/studio/bin/import-brand.sh +29 -0
- package/apps/studio/bin/import-tokens.sh +33 -0
- package/apps/studio/bin/ingest-footage.sh +27 -0
- package/apps/studio/bin/photo-adjust.sh +163 -0
- package/apps/studio/bin/photo-bg-remove.sh +258 -0
- package/apps/studio/bin/probe-footage.sh +28 -0
- package/apps/studio/bin/read-annotations.mjs +125 -2
- package/apps/studio/bin/transcribe.sh +39 -0
- package/apps/studio/canvas-edit.ts +656 -12
- package/apps/studio/canvas-lib.tsx +637 -10
- package/apps/studio/canvas-pipeline.ts +65 -7
- package/apps/studio/canvas-shell.tsx +156 -16
- package/apps/studio/client/app.jsx +2385 -699
- package/apps/studio/client/export-center.jsx +35 -1
- package/apps/studio/client/generate-dialog.jsx +352 -0
- package/apps/studio/client/github.js +18 -0
- package/apps/studio/client/inspector-controls.jsx +781 -0
- package/apps/studio/client/panels/BrandUploadPanel.jsx +233 -0
- package/apps/studio/client/panels/ChatPanel.jsx +15 -33
- package/apps/studio/client/panels/GitPanel.jsx +8 -0
- package/apps/studio/client/panels/IntroVideoDialog.jsx +44 -0
- package/apps/studio/client/panels/OnboardingWizard.jsx +12 -0
- package/apps/studio/client/panels/ReadinessList.jsx +227 -7
- package/apps/studio/client/panels/RepoBranchSwitcher.jsx +133 -21
- package/apps/studio/client/panels/SettingsPanel.jsx +828 -0
- package/apps/studio/client/panels/SetupChecklist.jsx +223 -0
- package/apps/studio/client/panels/StickerPicker.jsx +160 -0
- package/apps/studio/client/panels/TimelinePanel.jsx +15 -2
- package/apps/studio/client/photo-knobs.jsx +432 -0
- package/apps/studio/client/styles/3-shell-maude.css +376 -28
- package/apps/studio/client/styles/4-components.css +223 -0
- package/apps/studio/client/styles/6-acp-chat.css +86 -0
- package/apps/studio/client/tour/quick-setup-tour.js +39 -0
- package/apps/studio/commands/annotation-strokes-command.ts +13 -3
- package/apps/studio/commands/edit-source-command.ts +31 -4
- package/apps/studio/config.schema.json +70 -0
- package/apps/studio/context-menu.tsx +42 -8
- package/apps/studio/context.ts +16 -0
- package/apps/studio/design-setup-readiness.ts +115 -0
- package/apps/studio/dist/client.bundle.js +5572 -21
- package/apps/studio/dist/comment-mount.js +2 -2
- package/apps/studio/dist/runtime/.min-sizes.json +1 -0
- package/apps/studio/dist/runtime/@imgly_background-removal.js +5543 -0
- package/apps/studio/dist/runtime/pixi-js.js +519 -519
- package/apps/studio/dist/styles.css +1 -1
- package/apps/studio/dom-selection.ts +25 -0
- package/apps/studio/draw/palette.ts +34 -0
- package/apps/studio/exporters/jobs.ts +47 -5
- package/apps/studio/exporters/video.ts +24 -4
- package/apps/studio/footage/schema.test.ts +287 -0
- package/apps/studio/footage/schema.ts +662 -0
- package/apps/studio/footage-store.ts +235 -0
- package/apps/studio/fs-watch.ts +10 -0
- package/apps/studio/generation/adapters/elevenlabs.ts +370 -0
- package/apps/studio/generation/adapters/gemini.ts +542 -0
- package/apps/studio/generation/adapters/groq.test.ts +80 -0
- package/apps/studio/generation/adapters/groq.ts +247 -0
- package/apps/studio/generation/audio-library.test.ts +95 -0
- package/apps/studio/generation/audio-library.ts +156 -0
- package/apps/studio/generation/captions.test.ts +78 -0
- package/apps/studio/generation/captions.ts +132 -0
- package/apps/studio/generation/download.ts +76 -0
- package/apps/studio/generation/elevenlabs.test.ts +223 -0
- package/apps/studio/generation/gemini.test.ts +350 -0
- package/apps/studio/generation/jobs.test.ts +128 -0
- package/apps/studio/generation/jobs.ts +243 -0
- package/apps/studio/generation/keys.test.ts +75 -0
- package/apps/studio/generation/keys.ts +162 -0
- package/apps/studio/generation/prefs.test.ts +95 -0
- package/apps/studio/generation/prefs.ts +82 -0
- package/apps/studio/generation/registry.ts +88 -0
- package/apps/studio/generation/types.test.ts +123 -0
- package/apps/studio/generation/types.ts +266 -0
- package/apps/studio/generation/whisper-models.test.ts +152 -0
- package/apps/studio/generation/whisper-models.ts +257 -0
- package/apps/studio/generation/whisper-spike-results.md +61 -0
- package/apps/studio/git/endpoints.ts +68 -7
- package/apps/studio/git/service.ts +199 -21
- package/apps/studio/github/service.ts +67 -0
- package/apps/studio/handoff.ts +3 -2
- package/apps/studio/http.ts +1039 -22
- package/apps/studio/input-router.tsx +10 -0
- package/apps/studio/inspect.ts +53 -1
- package/apps/studio/media/intro.mp4 +0 -0
- package/apps/studio/media-commit-chain.ts +119 -0
- package/apps/studio/paths.ts +20 -0
- package/apps/studio/photo/filters.ts +285 -0
- package/apps/studio/photo/pipeline.ts +607 -0
- package/apps/studio/photo/schema.ts +367 -0
- package/apps/studio/photo-store.ts +154 -0
- package/apps/studio/readiness.ts +108 -20
- package/apps/studio/runtime-bundle.ts +29 -6
- package/apps/studio/scaffold-design.ts +1145 -0
- package/apps/studio/server.ts +18 -2
- package/apps/studio/stickers/figjam-doodle/manifest.json +104 -0
- package/apps/studio/stickers/figjam-doodle/slice1.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice10.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice11.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice12.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice13.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice14.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice15.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice16.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice17.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice18.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice19.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice2.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice20.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice21.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice22.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice23.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice24.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice3.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice4.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice5.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice6.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice7.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice8.png +0 -0
- package/apps/studio/stickers/figjam-doodle/slice9.png +0 -0
- package/apps/studio/stickers/life-style/best.png +0 -0
- package/apps/studio/stickers/life-style/come-on.png +0 -0
- package/apps/studio/stickers/life-style/cut.png +0 -0
- package/apps/studio/stickers/life-style/detox.png +0 -0
- package/apps/studio/stickers/life-style/just.png +0 -0
- package/apps/studio/stickers/life-style/manifest.json +68 -0
- package/apps/studio/stickers/life-style/mirror.png +0 -0
- package/apps/studio/stickers/life-style/nice.png +0 -0
- package/apps/studio/stickers/life-style/objects.png +0 -0
- package/apps/studio/stickers/life-style/ok.png +0 -0
- package/apps/studio/stickers/life-style/queen.png +0 -0
- package/apps/studio/stickers/life-style/star.png +0 -0
- package/apps/studio/stickers/life-style/sun.png +0 -0
- package/apps/studio/stickers/life-style/water.png +0 -0
- package/apps/studio/stickers/life-style/yeah.png +0 -0
- package/apps/studio/stickers/life-style/you-can.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/check-the-deets.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/cut-it.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/dope.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/fresh.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/hot.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/idea.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/keep-exploring.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/killed-it.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/love-it.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/manifest.json +88 -0
- package/apps/studio/stickers/opposing-thoughts/not-sure.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/ok.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/pure-gold.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/save-for-later.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/steal-this.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/take-a-peek.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/this-or-that.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/thoughts.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/vibes.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/winner.png +0 -0
- package/apps/studio/stickers/opposing-thoughts/wip.png +0 -0
- package/apps/studio/stickers/project-status/group-100.png +0 -0
- package/apps/studio/stickers/project-status/group-101.png +0 -0
- package/apps/studio/stickers/project-status/group-102.png +0 -0
- package/apps/studio/stickers/project-status/group-103.png +0 -0
- package/apps/studio/stickers/project-status/group-104.png +0 -0
- package/apps/studio/stickers/project-status/group-105.png +0 -0
- package/apps/studio/stickers/project-status/group-106.png +0 -0
- package/apps/studio/stickers/project-status/group-107.png +0 -0
- package/apps/studio/stickers/project-status/group-108.png +0 -0
- package/apps/studio/stickers/project-status/group-109.png +0 -0
- package/apps/studio/stickers/project-status/group-110.png +0 -0
- package/apps/studio/stickers/project-status/group-111.png +0 -0
- package/apps/studio/stickers/project-status/group-112.png +0 -0
- package/apps/studio/stickers/project-status/group-113.png +0 -0
- package/apps/studio/stickers/project-status/group-114.png +0 -0
- package/apps/studio/stickers/project-status/group-115.png +0 -0
- package/apps/studio/stickers/project-status/group-117.png +0 -0
- package/apps/studio/stickers/project-status/group-118.png +0 -0
- package/apps/studio/stickers/project-status/group-119.png +0 -0
- package/apps/studio/stickers/project-status/group-120.png +0 -0
- package/apps/studio/stickers/project-status/group-121.png +0 -0
- package/apps/studio/stickers/project-status/group-122.png +0 -0
- package/apps/studio/stickers/project-status/group-41.png +0 -0
- package/apps/studio/stickers/project-status/group-42.png +0 -0
- package/apps/studio/stickers/project-status/group-43.png +0 -0
- package/apps/studio/stickers/project-status/group-44.png +0 -0
- package/apps/studio/stickers/project-status/group-45.png +0 -0
- package/apps/studio/stickers/project-status/group-46.png +0 -0
- package/apps/studio/stickers/project-status/group-47.png +0 -0
- package/apps/studio/stickers/project-status/group-48.png +0 -0
- package/apps/studio/stickers/project-status/group-49.png +0 -0
- package/apps/studio/stickers/project-status/group-50.png +0 -0
- package/apps/studio/stickers/project-status/group-51.png +0 -0
- package/apps/studio/stickers/project-status/group-52.png +0 -0
- package/apps/studio/stickers/project-status/group-53.png +0 -0
- package/apps/studio/stickers/project-status/group-54.png +0 -0
- package/apps/studio/stickers/project-status/group-55.png +0 -0
- package/apps/studio/stickers/project-status/group-56.png +0 -0
- package/apps/studio/stickers/project-status/group-57.png +0 -0
- package/apps/studio/stickers/project-status/group-58.png +0 -0
- package/apps/studio/stickers/project-status/group-59.png +0 -0
- package/apps/studio/stickers/project-status/group-60.png +0 -0
- package/apps/studio/stickers/project-status/group-61.png +0 -0
- package/apps/studio/stickers/project-status/group-62.png +0 -0
- package/apps/studio/stickers/project-status/group-63.png +0 -0
- package/apps/studio/stickers/project-status/group-64.png +0 -0
- package/apps/studio/stickers/project-status/group-65.png +0 -0
- package/apps/studio/stickers/project-status/group-66.png +0 -0
- package/apps/studio/stickers/project-status/group-67.png +0 -0
- package/apps/studio/stickers/project-status/group-68.png +0 -0
- package/apps/studio/stickers/project-status/group-69.png +0 -0
- package/apps/studio/stickers/project-status/group-70.png +0 -0
- package/apps/studio/stickers/project-status/group-71.png +0 -0
- package/apps/studio/stickers/project-status/group-72.png +0 -0
- package/apps/studio/stickers/project-status/group-73.png +0 -0
- package/apps/studio/stickers/project-status/group-74.png +0 -0
- package/apps/studio/stickers/project-status/group-75.png +0 -0
- package/apps/studio/stickers/project-status/group-76.png +0 -0
- package/apps/studio/stickers/project-status/group-77.png +0 -0
- package/apps/studio/stickers/project-status/group-78.png +0 -0
- package/apps/studio/stickers/project-status/group-79.png +0 -0
- package/apps/studio/stickers/project-status/group-80.png +0 -0
- package/apps/studio/stickers/project-status/group-81.png +0 -0
- package/apps/studio/stickers/project-status/group-82.png +0 -0
- package/apps/studio/stickers/project-status/group-83.png +0 -0
- package/apps/studio/stickers/project-status/group-84.png +0 -0
- package/apps/studio/stickers/project-status/group-85.png +0 -0
- package/apps/studio/stickers/project-status/group-86.png +0 -0
- package/apps/studio/stickers/project-status/group-87.png +0 -0
- package/apps/studio/stickers/project-status/group-88.png +0 -0
- package/apps/studio/stickers/project-status/group-89.png +0 -0
- package/apps/studio/stickers/project-status/group-90.png +0 -0
- package/apps/studio/stickers/project-status/group-91.png +0 -0
- package/apps/studio/stickers/project-status/group-92.png +0 -0
- package/apps/studio/stickers/project-status/group-93.png +0 -0
- package/apps/studio/stickers/project-status/group-94.png +0 -0
- package/apps/studio/stickers/project-status/group-96.png +0 -0
- package/apps/studio/stickers/project-status/group-97.png +0 -0
- package/apps/studio/stickers/project-status/group-98.png +0 -0
- package/apps/studio/stickers/project-status/group-99.png +0 -0
- package/apps/studio/stickers/project-status/manifest.json +328 -0
- package/apps/studio/test/_helpers.ts +15 -2
- package/apps/studio/test/acp-bootstrap-brief.test.ts +11 -0
- package/apps/studio/test/acp-bridge.test.ts +34 -1
- package/apps/studio/test/acp-commands.test.ts +2 -1
- package/apps/studio/test/acp-env.test.ts +30 -0
- package/apps/studio/test/acp-plugin-bootstrap.test.ts +23 -57
- package/apps/studio/test/acp-session-plugins.test.ts +72 -1
- package/apps/studio/test/annotation-strokes-command.test.ts +17 -0
- package/apps/studio/test/annotations-layer.test.ts +174 -0
- package/apps/studio/test/asset-api.test.ts +3 -3
- package/apps/studio/test/canvas-edit.test.ts +17 -6
- package/apps/studio/test/canvas-origin-gate.test.ts +50 -0
- package/apps/studio/test/csp-canvas-shell.test.ts +11 -0
- package/apps/studio/test/csrf-write-guard.test.ts +23 -1
- package/apps/studio/test/design-setup-readiness.test.ts +155 -0
- package/apps/studio/test/dynamic-text-edit.test.ts +162 -0
- package/apps/studio/test/edit-source-command.test.ts +23 -0
- package/apps/studio/test/element-structural-edit.test.ts +154 -0
- package/apps/studio/test/fixtures/fake-claude-auth.mjs +13 -0
- package/apps/studio/test/footage-store.test.ts +100 -0
- package/apps/studio/test/generate-route.test.ts +106 -0
- package/apps/studio/test/git-branches.test.ts +97 -0
- package/apps/studio/test/github-api.test.ts +56 -1
- package/apps/studio/test/import-asset-browser.test.ts +64 -0
- package/apps/studio/test/import-asset-route.test.ts +71 -0
- package/apps/studio/test/import-asset.test.ts +399 -0
- package/apps/studio/test/import-brand-browser.test.ts +88 -0
- package/apps/studio/test/import-brand-route.test.ts +120 -0
- package/apps/studio/test/import-brand.test.ts +206 -0
- package/apps/studio/test/import-tokens.test.ts +722 -0
- package/apps/studio/test/input-router.test.ts +33 -0
- package/apps/studio/test/inspect-script-syntax.test.ts +53 -0
- package/apps/studio/test/media-commit-chain.test.ts +210 -0
- package/apps/studio/test/photo-bg-remove-validation.test.ts +71 -0
- package/apps/studio/test/photo-canvas-bundle.test.ts +61 -0
- package/apps/studio/test/photo-edit-api.test.ts +201 -0
- package/apps/studio/test/photo-filters.test.ts +149 -0
- package/apps/studio/test/photo-pipeline.test.ts +106 -0
- package/apps/studio/test/photo-taxonomy.test.ts +96 -0
- package/apps/studio/test/read-annotations.test.ts +164 -0
- package/apps/studio/test/readiness.test.ts +13 -11
- package/apps/studio/test/scaffold-design.test.ts +122 -0
- package/apps/studio/test/shell-importmap.test.ts +49 -0
- package/apps/studio/test/text-editability-stamp.test.ts +131 -0
- package/apps/studio/test/timeline-parse.test.ts +57 -0
- package/apps/studio/test/tool-palette-insert-anchor.test.ts +5 -3
- package/apps/studio/test/tour-overlay.test.tsx +16 -0
- package/apps/studio/test/undo-stack.test.ts +33 -0
- package/apps/studio/test/video-asset.test.ts +5 -5
- package/apps/studio/test/video-render-bridge.test.ts +23 -1
- package/apps/studio/text-caret.ts +239 -0
- package/apps/studio/tool-palette.tsx +49 -21
- package/apps/studio/ui-prefs.ts +130 -0
- package/apps/studio/undo-stack.ts +94 -2
- package/apps/studio/use-annotation-resize.tsx +4 -4
- package/apps/studio/use-canvas-media-drop.tsx +40 -1
- package/apps/studio/use-chrome-visibility.tsx +8 -2
- package/apps/studio/use-selection-set.tsx +21 -0
- package/apps/studio/video-comp.tsx +48 -7
- package/apps/studio/whats-new.json +149 -0
- package/apps/studio/ws.ts +5 -0
- package/cli/bin/maude.mjs +6 -6
- package/cli/commands/design.mjs +67 -3
- package/cli/lib/gitignore-block.mjs +2 -0
- package/cli/lib/pkg-root.mjs +107 -0
- package/cli/lib/pkg-root.test.mjs +79 -0
- package/cli/lib/reconstruct-toolset.test.mjs +194 -0
- package/cli/lib/update-check.mjs +8 -0
- package/package.json +13 -11
- package/plugins/design/dependencies.json +18 -0
- package/plugins/design/templates/_shell.html +1 -0
package/apps/studio/server.ts
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import { spawn } from 'node:child_process';
|
|
18
18
|
|
|
19
19
|
import { createAcp } from './acp/index.ts';
|
|
20
|
+
import { cancelInstall, cancelSignin } from './acp/login-state.ts';
|
|
20
21
|
import { createActivity } from './activity.ts';
|
|
21
22
|
import { ASSET_MAX_VIDEO_BYTES, createApi } from './api.ts';
|
|
22
23
|
import { bootSelfHeal } from './boot-self-heal.ts';
|
|
@@ -27,6 +28,7 @@ import { createCollab } from './collab/index.ts';
|
|
|
27
28
|
import { createContext, reloadConfig } from './context.ts';
|
|
28
29
|
import { createExportJobQueue } from './exporters/jobs.ts';
|
|
29
30
|
import { createFsWatch } from './fs-watch.ts';
|
|
31
|
+
import { createGenerationJobQueue } from './generation/jobs.ts';
|
|
30
32
|
import { createGitWatch } from './git/watch.ts';
|
|
31
33
|
import { createHttp } from './http.ts';
|
|
32
34
|
import { createInspect } from './inspect.ts';
|
|
@@ -107,7 +109,9 @@ const activity = createActivity(ctx);
|
|
|
107
109
|
const acp = createAcp(ctx, aiActivity);
|
|
108
110
|
const ws = createWs(ctx, api, inspect, collab, activity, acp);
|
|
109
111
|
const exportJobs = createExportJobQueue(ctx.bus, ctx.paths.designRoot);
|
|
110
|
-
|
|
112
|
+
// feature-ai-media-generation (DDR-16x) — background AI-media generation queue.
|
|
113
|
+
const generateJobs = createGenerationJobQueue(ctx.bus, ctx.paths.designRoot);
|
|
114
|
+
const http = createHttp(ctx, api, inspect, aiActivity, exportJobs, generateJobs);
|
|
111
115
|
const fsWatch = createFsWatch(ctx);
|
|
112
116
|
|
|
113
117
|
// Port: --port arg > $PORT > $MDCC_DEV_PORT > 4399.
|
|
@@ -242,12 +246,16 @@ function startCanvasServer(port: number): BunServer {
|
|
|
242
246
|
'/_api/git-user': http.routes['/_api/git-user'],
|
|
243
247
|
'/_api/canvas-meta': http.routes['/_api/canvas-meta'],
|
|
244
248
|
'/_api/annotations': http.routes['/_api/annotations'],
|
|
245
|
-
// Phase 23 — capped binary image upload (magic-byte sniff +
|
|
249
|
+
// Phase 23 — capped binary image upload (magic-byte sniff + category cap +
|
|
246
250
|
// content-addressed name + traversal guard + no-SVG, in api.saveAsset).
|
|
247
251
|
// Bun matches `routes` BEFORE `fetch`, so the route must be listed here
|
|
248
252
|
// explicitly — the CANVAS_SAFE_API entry alone only opens the fetch
|
|
249
253
|
// fall-through (which serves files, not route handlers). See DDR (Task 9).
|
|
250
254
|
'/_api/asset': http.routes['/_api/asset'],
|
|
255
|
+
// feature-photo-editor — PhotoEdit sidecar GET/PUT. MUST be here AND in
|
|
256
|
+
// CANVAS_SAFE_API (http.ts): Bun matches `routes` before `fetch`, so a
|
|
257
|
+
// one-list entry 404s from the canvas iframe (the DDR-088 rollout bug).
|
|
258
|
+
'/_api/photo-edit': http.routes['/_api/photo-edit'],
|
|
251
259
|
'/_api/git-committers': http.routes['/_api/git-committers'],
|
|
252
260
|
'/_api/ai': http.routes['/_api/ai'],
|
|
253
261
|
'/_comments': http.routes['/_comments'],
|
|
@@ -459,6 +467,14 @@ if (!process.env.NO_OPEN) {
|
|
|
459
467
|
|
|
460
468
|
async function shutdown() {
|
|
461
469
|
console.log('\n Stopping…');
|
|
470
|
+
// DDR-166 — reap in-flight claude-provisioning grandchildren before this
|
|
471
|
+
// process exits. Security-review finding: neither the SIGTERM/SIGINT path
|
|
472
|
+
// here nor sidecar.rs's child.kill() on the Tauri side propagate to a
|
|
473
|
+
// spawned `claude auth login`/installer child by default, so quitting
|
|
474
|
+
// mid-signin or mid-install orphaned it — exactly the DDR's own named-but-
|
|
475
|
+
// previously-unanswered "how does app-quit reach the grandchild" question.
|
|
476
|
+
cancelSignin();
|
|
477
|
+
cancelInstall();
|
|
462
478
|
fsWatch.stop();
|
|
463
479
|
try {
|
|
464
480
|
gitWatch.stop();
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "FigJam Doodle Stickers",
|
|
3
|
+
"author": "CJ Xue",
|
|
4
|
+
"attributionUrl": "https://www.figma.com/community/file/1301623299668462371",
|
|
5
|
+
"license": "Figma Community (see attributionUrl for terms)",
|
|
6
|
+
"stickers": [
|
|
7
|
+
{
|
|
8
|
+
"file": "slice1.png",
|
|
9
|
+
"keywords": ["yes", "agree", "happy"]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"file": "slice10.png",
|
|
13
|
+
"keywords": ["bad", "thumbs-down"]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"file": "slice11.png",
|
|
17
|
+
"keywords": ["lovely", "sweet"]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"file": "slice12.png",
|
|
21
|
+
"keywords": ["good", "thumbs-up"]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"file": "slice13.png",
|
|
25
|
+
"keywords": ["deadline", "due-date", "urgent"]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"file": "slice14.png",
|
|
29
|
+
"keywords": ["confused", "thinking", "hmm"]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"file": "slice15.png",
|
|
33
|
+
"keywords": ["love", "crush", "admire"]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"file": "slice16.png",
|
|
37
|
+
"keywords": ["no-idea", "stuck", "blank"]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"file": "slice17.png",
|
|
41
|
+
"keywords": ["discuss", "talk", "meeting"]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"file": "slice18.png",
|
|
45
|
+
"keywords": ["group", "team", "together"]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"file": "slice19.png",
|
|
49
|
+
"keywords": ["hi-fi", "high-fidelity", "mockup"]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"file": "slice2.png",
|
|
53
|
+
"keywords": ["no", "disagree", "refuse"]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"file": "slice20.png",
|
|
57
|
+
"keywords": ["wireframe", "lo-fi", "sketch"]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"file": "slice21.png",
|
|
61
|
+
"keywords": ["questions", "ask", "confused"]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"file": "slice22.png",
|
|
65
|
+
"keywords": ["merge", "combine"]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"file": "slice23.png",
|
|
69
|
+
"keywords": ["new", "baby", "fresh-start"]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"file": "slice24.png",
|
|
73
|
+
"keywords": ["old", "legacy"]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"file": "slice3.png",
|
|
77
|
+
"keywords": ["fair", "ok", "neutral"]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"file": "slice4.png",
|
|
81
|
+
"keywords": ["love", "crush", "admire", "hearts"]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"file": "slice5.png",
|
|
85
|
+
"keywords": ["good-call", "nice-one", "agree"]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"file": "slice6.png",
|
|
89
|
+
"keywords": ["music", "listening", "headphones", "focus"]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"file": "slice7.png",
|
|
93
|
+
"keywords": ["research", "investigate"]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"file": "slice8.png",
|
|
97
|
+
"keywords": ["error", "bug", "broken", "robot"]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"file": "slice9.png",
|
|
101
|
+
"keywords": ["better", "improved"]
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Life Style Stickers",
|
|
3
|
+
"author": "Pelin ŞENOĞLU",
|
|
4
|
+
"attributionUrl": "https://www.figma.com/community/file/1228731654126072640",
|
|
5
|
+
"license": "Figma Community (see attributionUrl for terms)",
|
|
6
|
+
"stickers": [
|
|
7
|
+
{
|
|
8
|
+
"file": "best.png",
|
|
9
|
+
"keywords": ["best"]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"file": "come-on.png",
|
|
13
|
+
"keywords": ["come-on", "come", "on"]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"file": "cut.png",
|
|
17
|
+
"keywords": ["cut"]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"file": "detox.png",
|
|
21
|
+
"keywords": ["detox"]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"file": "just.png",
|
|
25
|
+
"keywords": ["just"]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"file": "mirror.png",
|
|
29
|
+
"keywords": ["mirror"]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"file": "nice.png",
|
|
33
|
+
"keywords": ["nice"]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"file": "objects.png",
|
|
37
|
+
"keywords": ["objects"]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"file": "ok.png",
|
|
41
|
+
"keywords": ["ok"]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"file": "queen.png",
|
|
45
|
+
"keywords": ["queen"]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"file": "star.png",
|
|
49
|
+
"keywords": ["star"]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"file": "sun.png",
|
|
53
|
+
"keywords": ["sun"]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"file": "water.png",
|
|
57
|
+
"keywords": ["water"]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"file": "yeah.png",
|
|
61
|
+
"keywords": ["yeah"]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"file": "you-can.png",
|
|
65
|
+
"keywords": ["you-can", "you", "can"]
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Opposing Thoughts Stickers",
|
|
3
|
+
"author": "Erik Leib",
|
|
4
|
+
"attributionUrl": "https://www.figma.com/community/file/1130195021486928915",
|
|
5
|
+
"license": "Figma Community (see attributionUrl for terms)",
|
|
6
|
+
"stickers": [
|
|
7
|
+
{
|
|
8
|
+
"file": "check-the-deets.png",
|
|
9
|
+
"keywords": ["check-the-deets", "check", "the", "deets"]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"file": "cut-it.png",
|
|
13
|
+
"keywords": ["cut-it", "cut", "it"]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"file": "dope.png",
|
|
17
|
+
"keywords": ["dope"]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"file": "fresh.png",
|
|
21
|
+
"keywords": ["fresh"]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"file": "hot.png",
|
|
25
|
+
"keywords": ["hot"]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"file": "idea.png",
|
|
29
|
+
"keywords": ["idea"]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"file": "keep-exploring.png",
|
|
33
|
+
"keywords": ["keep-exploring", "keep", "exploring"]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"file": "killed-it.png",
|
|
37
|
+
"keywords": ["killed-it", "killed", "it"]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"file": "love-it.png",
|
|
41
|
+
"keywords": ["love-it", "love", "it"]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"file": "not-sure.png",
|
|
45
|
+
"keywords": ["not-sure", "not", "sure"]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"file": "ok.png",
|
|
49
|
+
"keywords": ["ok"]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"file": "pure-gold.png",
|
|
53
|
+
"keywords": ["pure-gold", "pure", "gold"]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"file": "save-for-later.png",
|
|
57
|
+
"keywords": ["save-for-later", "save", "for", "later"]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"file": "steal-this.png",
|
|
61
|
+
"keywords": ["steal-this", "steal", "this"]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"file": "take-a-peek.png",
|
|
65
|
+
"keywords": ["take-a-peek", "take", "a", "peek"]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"file": "this-or-that.png",
|
|
69
|
+
"keywords": ["this-or-that", "this", "or", "that"]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"file": "thoughts.png",
|
|
73
|
+
"keywords": ["thoughts"]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"file": "vibes.png",
|
|
77
|
+
"keywords": ["vibes"]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"file": "winner.png",
|
|
81
|
+
"keywords": ["winner"]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"file": "wip.png",
|
|
85
|
+
"keywords": ["wip"]
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|