@multiplayer-app/sandbox 0.0.31 → 0.0.33-beta.1
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/dist/agents/content-generator.agent.d.ts +8 -0
- package/dist/agents/content-generator.agent.d.ts.map +1 -1
- package/dist/agents/content-generator.agent.js +53 -6
- package/dist/agents/content-generator.agent.js.map +1 -1
- package/dist/agents/html-generator.agent.d.ts +3 -1
- package/dist/agents/html-generator.agent.d.ts.map +1 -1
- package/dist/agents/html-generator.agent.js +90 -4
- package/dist/agents/html-generator.agent.js.map +1 -1
- package/dist/agents/markdown-generator.agent.d.ts.map +1 -1
- package/dist/agents/markdown-generator.agent.js +5 -10
- package/dist/agents/markdown-generator.agent.js.map +1 -1
- package/dist/agents/notebook.agent.d.ts.map +1 -1
- package/dist/agents/notebook.agent.js +2 -1
- package/dist/agents/notebook.agent.js.map +1 -1
- package/dist/agents/shared/app-vm.tools.d.ts +4 -0
- package/dist/agents/shared/app-vm.tools.d.ts.map +1 -0
- package/dist/agents/shared/app-vm.tools.js +105 -0
- package/dist/agents/shared/app-vm.tools.js.map +1 -0
- package/dist/agents/shared/build-plan.tools.d.ts +5 -0
- package/dist/agents/shared/build-plan.tools.d.ts.map +1 -0
- package/dist/agents/shared/build-plan.tools.js +176 -0
- package/dist/agents/shared/build-plan.tools.js.map +1 -0
- package/dist/agents/shared/content-generator-system-prompt.d.ts +3 -2
- package/dist/agents/shared/content-generator-system-prompt.d.ts.map +1 -1
- package/dist/agents/shared/content-generator-system-prompt.js +41 -24
- package/dist/agents/shared/content-generator-system-prompt.js.map +1 -1
- package/dist/agents/shared/design-skills.d.ts +48 -0
- package/dist/agents/shared/design-skills.d.ts.map +1 -0
- package/dist/agents/shared/design-skills.js +230 -0
- package/dist/agents/shared/design-skills.js.map +1 -0
- package/dist/agents/shared/generate-session-images.tool.d.ts +15 -0
- package/dist/agents/shared/generate-session-images.tool.d.ts.map +1 -0
- package/dist/agents/shared/generate-session-images.tool.js +98 -0
- package/dist/agents/shared/generate-session-images.tool.js.map +1 -0
- package/dist/agents/shared/publish-session-artifacts.tool.d.ts +5 -0
- package/dist/agents/shared/publish-session-artifacts.tool.d.ts.map +1 -1
- package/dist/agents/shared/publish-session-artifacts.tool.js +154 -15
- package/dist/agents/shared/publish-session-artifacts.tool.js.map +1 -1
- package/dist/agents/shared/session-quality-report.tool.d.ts +7 -0
- package/dist/agents/shared/session-quality-report.tool.d.ts.map +1 -0
- package/dist/agents/shared/session-quality-report.tool.js +97 -0
- package/dist/agents/shared/session-quality-report.tool.js.map +1 -0
- package/dist/agents/shared/session-vm-bridge.d.ts +49 -0
- package/dist/agents/shared/session-vm-bridge.d.ts.map +1 -0
- package/dist/agents/shared/session-vm-bridge.js +9 -0
- package/dist/agents/shared/session-vm-bridge.js.map +1 -0
- package/dist/agents/shared/update-session-artifacts.tool.d.ts +5 -0
- package/dist/agents/shared/update-session-artifacts.tool.d.ts.map +1 -1
- package/dist/agents/shared/update-session-artifacts.tool.js +136 -26
- package/dist/agents/shared/update-session-artifacts.tool.js.map +1 -1
- package/dist/agents/shared/validate-artifact-content.tools.d.ts +4 -0
- package/dist/agents/shared/validate-artifact-content.tools.d.ts.map +1 -1
- package/dist/agents/shared/validate-artifact-content.tools.js +24 -1
- package/dist/agents/shared/validate-artifact-content.tools.js.map +1 -1
- package/dist/agents/skills/a11y.skill.d.ts +3 -0
- package/dist/agents/skills/a11y.skill.d.ts.map +1 -0
- package/dist/agents/skills/a11y.skill.js +23 -0
- package/dist/agents/skills/a11y.skill.js.map +1 -0
- package/dist/agents/skills/account-skill-loader.d.ts +13 -0
- package/dist/agents/skills/account-skill-loader.d.ts.map +1 -0
- package/dist/agents/skills/account-skill-loader.js +42 -0
- package/dist/agents/skills/account-skill-loader.js.map +1 -0
- package/dist/agents/skills/app-scaffold.skill.d.ts +3 -0
- package/dist/agents/skills/app-scaffold.skill.d.ts.map +1 -0
- package/dist/agents/skills/app-scaffold.skill.js +30 -0
- package/dist/agents/skills/app-scaffold.skill.js.map +1 -0
- package/dist/agents/skills/copywriting.skill.d.ts +3 -0
- package/dist/agents/skills/copywriting.skill.d.ts.map +1 -0
- package/dist/agents/skills/copywriting.skill.js +35 -0
- package/dist/agents/skills/copywriting.skill.js.map +1 -0
- package/dist/agents/skills/custom-skill-repository.d.ts +40 -0
- package/dist/agents/skills/custom-skill-repository.d.ts.map +1 -0
- package/dist/agents/skills/custom-skill-repository.js +3 -0
- package/dist/agents/skills/custom-skill-repository.js.map +1 -0
- package/dist/agents/skills/data-viz.skill.d.ts +3 -0
- package/dist/agents/skills/data-viz.skill.d.ts.map +1 -0
- package/dist/agents/skills/data-viz.skill.js +42 -0
- package/dist/agents/skills/data-viz.skill.js.map +1 -0
- package/dist/agents/skills/designer.skill.d.ts +3 -0
- package/dist/agents/skills/designer.skill.d.ts.map +1 -0
- package/dist/agents/skills/designer.skill.js +101 -0
- package/dist/agents/skills/designer.skill.js.map +1 -0
- package/dist/agents/skills/forms.skill.d.ts +3 -0
- package/dist/agents/skills/forms.skill.d.ts.map +1 -0
- package/dist/agents/skills/forms.skill.js +37 -0
- package/dist/agents/skills/forms.skill.js.map +1 -0
- package/dist/agents/skills/index.d.ts +6 -0
- package/dist/agents/skills/index.d.ts.map +1 -0
- package/dist/agents/skills/index.js +18 -0
- package/dist/agents/skills/index.js.map +1 -0
- package/dist/agents/skills/interactions.skill.d.ts +3 -0
- package/dist/agents/skills/interactions.skill.d.ts.map +1 -0
- package/dist/agents/skills/interactions.skill.js +31 -0
- package/dist/agents/skills/interactions.skill.js.map +1 -0
- package/dist/agents/skills/registry.d.ts +23 -0
- package/dist/agents/skills/registry.d.ts.map +1 -0
- package/dist/agents/skills/registry.js +75 -0
- package/dist/agents/skills/registry.js.map +1 -0
- package/dist/agents/skills/skill-injection.d.ts +52 -0
- package/dist/agents/skills/skill-injection.d.ts.map +1 -0
- package/dist/agents/skills/skill-injection.js +216 -0
- package/dist/agents/skills/skill-injection.js.map +1 -0
- package/dist/agents/skills/types.d.ts +12 -0
- package/dist/agents/skills/types.d.ts.map +1 -0
- package/dist/agents/skills/types.js +3 -0
- package/dist/agents/skills/types.js.map +1 -0
- package/dist/builder-api-config.d.ts +7 -0
- package/dist/builder-api-config.d.ts.map +1 -1
- package/dist/builder-api-config.js.map +1 -1
- package/dist/context.d.ts +11 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +19 -0
- package/dist/context.js.map +1 -1
- package/dist/create-builder-api.d.ts +8 -3
- package/dist/create-builder-api.d.ts.map +1 -1
- package/dist/create-builder-api.js +20 -0
- package/dist/create-builder-api.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/library/list-library-items.d.ts +2 -2
- package/dist/lib/library/list-library-items.d.ts.map +1 -1
- package/dist/lib/library/list-library-items.js +49 -7
- package/dist/lib/library/list-library-items.js.map +1 -1
- package/dist/lib/object-storage/index.d.ts +3 -0
- package/dist/lib/object-storage/index.d.ts.map +1 -0
- package/dist/lib/object-storage/index.js +19 -0
- package/dist/lib/object-storage/index.js.map +1 -0
- package/dist/lib/object-storage/keys.d.ts +10 -0
- package/dist/lib/object-storage/keys.d.ts.map +1 -0
- package/dist/lib/object-storage/keys.js +51 -0
- package/dist/lib/object-storage/keys.js.map +1 -0
- package/dist/lib/object-storage/s3-object-store.d.ts +14 -0
- package/dist/lib/object-storage/s3-object-store.d.ts.map +1 -0
- package/dist/lib/object-storage/s3-object-store.js +64 -0
- package/dist/lib/object-storage/s3-object-store.js.map +1 -0
- package/dist/lib/session-artifacts/hashline-diff-guide.d.ts +1 -1
- package/dist/lib/session-artifacts/hashline-diff-guide.d.ts.map +1 -1
- package/dist/lib/session-artifacts/hashline-diff-guide.js +9 -5
- package/dist/lib/session-artifacts/hashline-diff-guide.js.map +1 -1
- package/dist/lib/session-artifacts/parse-hashline-diff.d.ts +13 -0
- package/dist/lib/session-artifacts/parse-hashline-diff.d.ts.map +1 -1
- package/dist/lib/session-artifacts/parse-hashline-diff.js +72 -0
- package/dist/lib/session-artifacts/parse-hashline-diff.js.map +1 -1
- package/dist/lib/session-pages/artifact-quality-audit.d.ts +16 -0
- package/dist/lib/session-pages/artifact-quality-audit.d.ts.map +1 -0
- package/dist/lib/session-pages/artifact-quality-audit.js +298 -0
- package/dist/lib/session-pages/artifact-quality-audit.js.map +1 -0
- package/dist/lib/session-pages/artifact-storage.d.ts +3 -0
- package/dist/lib/session-pages/artifact-storage.d.ts.map +1 -1
- package/dist/lib/session-pages/artifact-storage.js +94 -85
- package/dist/lib/session-pages/artifact-storage.js.map +1 -1
- package/dist/lib/session-pages/audit-session-html.d.ts +23 -0
- package/dist/lib/session-pages/audit-session-html.d.ts.map +1 -0
- package/dist/lib/session-pages/audit-session-html.js +82 -0
- package/dist/lib/session-pages/audit-session-html.js.map +1 -0
- package/dist/lib/session-pages/contrast-check.d.ts +25 -0
- package/dist/lib/session-pages/contrast-check.d.ts.map +1 -0
- package/dist/lib/session-pages/contrast-check.js +290 -0
- package/dist/lib/session-pages/contrast-check.js.map +1 -0
- package/dist/lib/session-pages/deferred-quality-rules.d.ts +7 -0
- package/dist/lib/session-pages/deferred-quality-rules.d.ts.map +1 -0
- package/dist/lib/session-pages/deferred-quality-rules.js +25 -0
- package/dist/lib/session-pages/deferred-quality-rules.js.map +1 -0
- package/dist/lib/session-pages/delete-session-artifact.d.ts.map +1 -1
- package/dist/lib/session-pages/delete-session-artifact.js +12 -41
- package/dist/lib/session-pages/delete-session-artifact.js.map +1 -1
- package/dist/lib/session-pages/delete-session-artifacts.d.ts +0 -6
- package/dist/lib/session-pages/delete-session-artifacts.d.ts.map +1 -1
- package/dist/lib/session-pages/delete-session-artifacts.js +51 -15
- package/dist/lib/session-pages/delete-session-artifacts.js.map +1 -1
- package/dist/lib/session-pages/html-artifact-template.d.ts +16 -0
- package/dist/lib/session-pages/html-artifact-template.d.ts.map +1 -1
- package/dist/lib/session-pages/html-artifact-template.js +166 -10
- package/dist/lib/session-pages/html-artifact-template.js.map +1 -1
- package/dist/lib/session-pages/index.d.ts +4 -0
- package/dist/lib/session-pages/index.d.ts.map +1 -1
- package/dist/lib/session-pages/index.js +11 -1
- package/dist/lib/session-pages/index.js.map +1 -1
- package/dist/lib/session-pages/list-session-artifacts.d.ts.map +1 -1
- package/dist/lib/session-pages/list-session-artifacts.js +48 -48
- package/dist/lib/session-pages/list-session-artifacts.js.map +1 -1
- package/dist/lib/session-pages/read-session-artifacts.d.ts.map +1 -1
- package/dist/lib/session-pages/read-session-artifacts.js +4 -26
- package/dist/lib/session-pages/read-session-artifacts.js.map +1 -1
- package/dist/lib/session-pages/resolve-session-account-id.d.ts +3 -0
- package/dist/lib/session-pages/resolve-session-account-id.d.ts.map +1 -0
- package/dist/lib/session-pages/resolve-session-account-id.js +31 -0
- package/dist/lib/session-pages/resolve-session-account-id.js.map +1 -0
- package/dist/lib/session-pages/write-binary-session-artifact.d.ts +12 -0
- package/dist/lib/session-pages/write-binary-session-artifact.d.ts.map +1 -0
- package/dist/lib/session-pages/write-binary-session-artifact.js +23 -0
- package/dist/lib/session-pages/write-binary-session-artifact.js.map +1 -0
- package/dist/lib/session-pages/write-session-artifacts.d.ts +1 -2
- package/dist/lib/session-pages/write-session-artifacts.d.ts.map +1 -1
- package/dist/lib/session-pages/write-session-artifacts.js +12 -1
- package/dist/lib/session-pages/write-session-artifacts.js.map +1 -1
- package/dist/lib/session-plans/build-plan.d.ts +74 -0
- package/dist/lib/session-plans/build-plan.d.ts.map +1 -0
- package/dist/lib/session-plans/build-plan.js +165 -0
- package/dist/lib/session-plans/build-plan.js.map +1 -0
- package/dist/lib/yjs-pending/flush-lock.d.ts +6 -0
- package/dist/lib/yjs-pending/flush-lock.d.ts.map +1 -0
- package/dist/lib/yjs-pending/flush-lock.js +43 -0
- package/dist/lib/yjs-pending/flush-lock.js.map +1 -0
- package/dist/lib/yjs-pending/flush-worker.d.ts +5 -0
- package/dist/lib/yjs-pending/flush-worker.d.ts.map +1 -0
- package/dist/lib/yjs-pending/flush-worker.js +75 -0
- package/dist/lib/yjs-pending/flush-worker.js.map +1 -0
- package/dist/lib/yjs-pending/yjs-pending-updates-repository.d.ts +22 -0
- package/dist/lib/yjs-pending/yjs-pending-updates-repository.d.ts.map +1 -0
- package/dist/lib/yjs-pending/yjs-pending-updates-repository.js +3 -0
- package/dist/lib/yjs-pending/yjs-pending-updates-repository.js.map +1 -0
- package/dist/lib/yjs-pending/yjs-persistence.d.ts +23 -0
- package/dist/lib/yjs-pending/yjs-persistence.d.ts.map +1 -0
- package/dist/lib/yjs-pending/yjs-persistence.js +222 -0
- package/dist/lib/yjs-pending/yjs-persistence.js.map +1 -0
- package/dist/realtime/reset-session-artifact-y-docs.d.ts.map +1 -1
- package/dist/realtime/reset-session-artifact-y-docs.js +1 -6
- package/dist/realtime/reset-session-artifact-y-docs.js.map +1 -1
- package/dist/realtime/session-artifact-y-socket-io.d.ts +0 -5
- package/dist/realtime/session-artifact-y-socket-io.d.ts.map +1 -1
- package/dist/realtime/session-artifact-y-socket-io.js +5 -69
- package/dist/realtime/session-artifact-y-socket-io.js.map +1 -1
- package/dist/realtime/session-artifact-yjs-store.d.ts +18 -32
- package/dist/realtime/session-artifact-yjs-store.d.ts.map +1 -1
- package/dist/realtime/session-artifact-yjs-store.js +135 -233
- package/dist/realtime/session-artifact-yjs-store.js.map +1 -1
- package/dist/routes/sessions.d.ts.map +1 -1
- package/dist/routes/sessions.js +26 -6
- package/dist/routes/sessions.js.map +1 -1
- package/dist/routes/skills.d.ts +2 -0
- package/dist/routes/skills.d.ts.map +1 -0
- package/dist/routes/skills.js +140 -0
- package/dist/routes/skills.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/package.json +9 -9
- package/dist/agents/blocknote.agent.d.ts +0 -6
- package/dist/agents/blocknote.agent.d.ts.map +0 -1
- package/dist/agents/blocknote.agent.js +0 -18
- package/dist/agents/blocknote.agent.js.map +0 -1
- package/dist/agents/filingramp-fetch.agent.d.ts +0 -4
- package/dist/agents/filingramp-fetch.agent.d.ts.map +0 -1
- package/dist/agents/filingramp-fetch.agent.js +0 -195
- package/dist/agents/filingramp-fetch.agent.js.map +0 -1
- package/dist/agents/knowledge/filingramp-endpoints.d.ts +0 -23
- package/dist/agents/knowledge/filingramp-endpoints.d.ts.map +0 -1
- package/dist/agents/knowledge/filingramp-endpoints.js +0 -116
- package/dist/agents/knowledge/filingramp-endpoints.js.map +0 -1
- package/dist/agents/shared/blocknote-system-prompt.d.ts +0 -2
- package/dist/agents/shared/blocknote-system-prompt.d.ts.map +0 -1
- package/dist/agents/shared/blocknote-system-prompt.js +0 -40
- package/dist/agents/shared/blocknote-system-prompt.js.map +0 -1
- package/dist/agents/shared/get-latest-session-artifact.tool.d.ts +0 -7
- package/dist/agents/shared/get-latest-session-artifact.tool.d.ts.map +0 -1
- package/dist/agents/shared/get-latest-session-artifact.tool.js +0 -43
- package/dist/agents/shared/get-latest-session-artifact.tool.js.map +0 -1
- package/dist/agents/shared/get-session-artifact-content.tool.d.ts +0 -7
- package/dist/agents/shared/get-session-artifact-content.tool.d.ts.map +0 -1
- package/dist/agents/shared/get-session-artifact-content.tool.js +0 -44
- package/dist/agents/shared/get-session-artifact-content.tool.js.map +0 -1
- package/dist/agents/shared/list-session-artifact-paths.tool.d.ts +0 -5
- package/dist/agents/shared/list-session-artifact-paths.tool.d.ts.map +0 -1
- package/dist/agents/shared/list-session-artifact-paths.tool.js +0 -37
- package/dist/agents/shared/list-session-artifact-paths.tool.js.map +0 -1
- package/dist/lib/ai/agent-ai-service.d.ts +0 -3
- package/dist/lib/ai/agent-ai-service.d.ts.map +0 -1
- package/dist/lib/ai/agent-ai-service.js +0 -15
- package/dist/lib/ai/agent-ai-service.js.map +0 -1
- package/dist/lib/ai/ai-error-details.d.ts +0 -13
- package/dist/lib/ai/ai-error-details.d.ts.map +0 -1
- package/dist/lib/ai/ai-error-details.js +0 -84
- package/dist/lib/ai/ai-error-details.js.map +0 -1
- package/dist/lib/ai/generate-ai-text.d.ts +0 -12
- package/dist/lib/ai/generate-ai-text.d.ts.map +0 -1
- package/dist/lib/ai/generate-ai-text.js +0 -105
- package/dist/lib/ai/generate-ai-text.js.map +0 -1
- package/dist/lib/ai/run-explicit-agent.d.ts +0 -15
- package/dist/lib/ai/run-explicit-agent.d.ts.map +0 -1
- package/dist/lib/ai/run-explicit-agent.js +0 -30
- package/dist/lib/ai/run-explicit-agent.js.map +0 -1
- package/dist/lib/notebooks/notebook-sql-client.d.ts +0 -5
- package/dist/lib/notebooks/notebook-sql-client.d.ts.map +0 -1
- package/dist/lib/notebooks/notebook-sql-client.js +0 -37
- package/dist/lib/notebooks/notebook-sql-client.js.map +0 -1
- package/dist/lib/notebooks/notebook-sql-schema.d.ts +0 -16
- package/dist/lib/notebooks/notebook-sql-schema.d.ts.map +0 -1
- package/dist/lib/notebooks/notebook-sql-schema.js +0 -117
- package/dist/lib/notebooks/notebook-sql-schema.js.map +0 -1
- package/dist/lib/notebooks/notebook-sql.d.ts +0 -9
- package/dist/lib/notebooks/notebook-sql.d.ts.map +0 -1
- package/dist/lib/notebooks/notebook-sql.js +0 -36
- package/dist/lib/notebooks/notebook-sql.js.map +0 -1
- package/dist/lib/session-artifacts/apply-hashline-edits.d.ts +0 -3
- package/dist/lib/session-artifacts/apply-hashline-edits.d.ts.map +0 -1
- package/dist/lib/session-artifacts/apply-hashline-edits.js +0 -25
- package/dist/lib/session-artifacts/apply-hashline-edits.js.map +0 -1
- package/dist/lib/session-artifacts/artifact-text-edit.d.ts +0 -8
- package/dist/lib/session-artifacts/artifact-text-edit.d.ts.map +0 -1
- package/dist/lib/session-artifacts/artifact-text-edit.js +0 -23
- package/dist/lib/session-artifacts/artifact-text-edit.js.map +0 -1
- package/dist/lib/session-artifacts/hashline-tag.d.ts +0 -33
- package/dist/lib/session-artifacts/hashline-tag.d.ts.map +0 -1
- package/dist/lib/session-artifacts/hashline-tag.js +0 -80
- package/dist/lib/session-artifacts/hashline-tag.js.map +0 -1
- package/dist/lib/session-pages/inject-preview-error-reporter.d.ts +0 -3
- package/dist/lib/session-pages/inject-preview-error-reporter.d.ts.map +0 -1
- package/dist/lib/session-pages/inject-preview-error-reporter.js +0 -30
- package/dist/lib/session-pages/inject-preview-error-reporter.js.map +0 -1
- package/dist/lib/session-pages/read-session-artifact.d.ts +0 -7
- package/dist/lib/session-pages/read-session-artifact.d.ts.map +0 -1
- package/dist/lib/session-pages/read-session-artifact.js +0 -60
- package/dist/lib/session-pages/read-session-artifact.js.map +0 -1
- package/dist/lib/session-pages/session-pico-css.d.ts +0 -5
- package/dist/lib/session-pages/session-pico-css.d.ts.map +0 -1
- package/dist/lib/session-pages/session-pico-css.js +0 -11
- package/dist/lib/session-pages/session-pico-css.js.map +0 -1
- package/dist/realtime/realtime-auth.d.ts +0 -12
- package/dist/realtime/realtime-auth.d.ts.map +0 -1
- package/dist/realtime/realtime-auth.js +0 -25
- package/dist/realtime/realtime-auth.js.map +0 -1
- package/dist/realtime/yjs-account-namespace.d.ts +0 -5
- package/dist/realtime/yjs-account-namespace.d.ts.map +0 -1
- package/dist/realtime/yjs-account-namespace.js +0 -21
- package/dist/realtime/yjs-account-namespace.js.map +0 -1
- package/dist/routes/notebooks/sql-execute.d.ts +0 -3
- package/dist/routes/notebooks/sql-execute.d.ts.map +0 -1
- package/dist/routes/notebooks/sql-execute.js +0 -45
- package/dist/routes/notebooks/sql-execute.js.map +0 -1
- package/dist/routes/sql.d.ts +0 -2
- package/dist/routes/sql.d.ts.map +0 -1
- package/dist/routes/sql.js +0 -50
- package/dist/routes/sql.js.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clearSessionAccountIdCache = clearSessionAccountIdCache;
|
|
4
|
+
exports.resolveSessionAccountId = resolveSessionAccountId;
|
|
5
|
+
const context_1 = require("../../context");
|
|
6
|
+
const SESSION_ACCOUNT_CACHE = new Map();
|
|
7
|
+
function clearSessionAccountIdCache(sessionId) {
|
|
8
|
+
if (sessionId) {
|
|
9
|
+
SESSION_ACCOUNT_CACHE.delete(sessionId);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
SESSION_ACCOUNT_CACHE.clear();
|
|
13
|
+
}
|
|
14
|
+
async function resolveSessionAccountId(sessionId) {
|
|
15
|
+
var _a;
|
|
16
|
+
const cached = SESSION_ACCOUNT_CACHE.get(sessionId);
|
|
17
|
+
if (cached) {
|
|
18
|
+
return cached;
|
|
19
|
+
}
|
|
20
|
+
const chat = await (0, context_1.getBuilderApiRepositories)().chatRepository.findById(sessionId);
|
|
21
|
+
if (!chat) {
|
|
22
|
+
throw new Error(`Session chat not found: ${sessionId}`);
|
|
23
|
+
}
|
|
24
|
+
const accountId = (_a = chat.tenants) === null || _a === void 0 ? void 0 : _a.account;
|
|
25
|
+
if (!accountId) {
|
|
26
|
+
throw new Error(`Session ${sessionId} has no tenants.account`);
|
|
27
|
+
}
|
|
28
|
+
SESSION_ACCOUNT_CACHE.set(sessionId, accountId);
|
|
29
|
+
return accountId;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=resolve-session-account-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-session-account-id.js","sourceRoot":"","sources":["../../../src/lib/session-pages/resolve-session-account-id.ts"],"names":[],"mappings":";;AAIA,gEAMC;AAED,0DAkBC;AA9BD,2CAAyD;AAEzD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAA;AAEvD,SAAgB,0BAA0B,CAAC,SAAkB;IAC3D,IAAI,SAAS,EAAE,CAAC;QACd,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACvC,OAAM;IACR,CAAC;IACD,qBAAqB,CAAC,KAAK,EAAE,CAAA;AAC/B,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,SAAiB;;IAC7D,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACnD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAA,mCAAyB,GAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACjF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,MAAC,IAAI,CAAC,OAA4C,0CAAE,OAAO,CAAA;IAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,yBAAyB,CAAC,CAAA;IAChE,CAAC;IAED,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface BinarySessionArtifact {
|
|
2
|
+
path: string;
|
|
3
|
+
bytes: number;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Write a binary artifact (e.g. a generated image) directly into the session
|
|
7
|
+
* directory. Binary files bypass the Yjs text store: they are not
|
|
8
|
+
* collaboratively edited, and listSessionArtifacts / the artifact GET route
|
|
9
|
+
* pick them up straight from disk.
|
|
10
|
+
*/
|
|
11
|
+
export declare function writeBinarySessionArtifact(sessionId: string, artifactPath: string, data: Uint8Array): Promise<BinarySessionArtifact>;
|
|
12
|
+
//# sourceMappingURL=write-binary-session-artifact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-binary-session-artifact.d.ts","sourceRoot":"","sources":["../../../src/lib/session-pages/write-binary-session-artifact.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,qBAAqB,CAAC,CAMhC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.writeBinarySessionArtifact = writeBinarySessionArtifact;
|
|
7
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const paths_1 = require("./paths");
|
|
10
|
+
/**
|
|
11
|
+
* Write a binary artifact (e.g. a generated image) directly into the session
|
|
12
|
+
* directory. Binary files bypass the Yjs text store: they are not
|
|
13
|
+
* collaboratively edited, and listSessionArtifacts / the artifact GET route
|
|
14
|
+
* pick them up straight from disk.
|
|
15
|
+
*/
|
|
16
|
+
async function writeBinarySessionArtifact(sessionId, artifactPath, data) {
|
|
17
|
+
const relativePath = (0, paths_1.normalizeArtifactPath)(artifactPath);
|
|
18
|
+
const absolutePath = (0, paths_1.resolveArtifactPath)(sessionId, relativePath);
|
|
19
|
+
await promises_1.default.mkdir(node_path_1.default.dirname(absolutePath), { recursive: true });
|
|
20
|
+
await promises_1.default.writeFile(absolutePath, Buffer.from(data));
|
|
21
|
+
return { path: relativePath, bytes: data.byteLength };
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=write-binary-session-artifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-binary-session-artifact.js","sourceRoot":"","sources":["../../../src/lib/session-pages/write-binary-session-artifact.ts"],"names":[],"mappings":";;;;;AAeA,gEAUC;AAzBD,gEAAiC;AACjC,0DAA4B;AAC5B,mCAAoE;AAOpE;;;;;GAKG;AACI,KAAK,UAAU,0BAA0B,CAC9C,SAAiB,EACjB,YAAoB,EACpB,IAAgB;IAEhB,MAAM,YAAY,GAAG,IAAA,6BAAqB,EAAC,YAAY,CAAC,CAAA;IACxD,MAAM,YAAY,GAAG,IAAA,2BAAmB,EAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IACjE,MAAM,kBAAE,CAAC,KAAK,CAAC,mBAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,MAAM,kBAAE,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAA;AACvD,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
export interface SessionArtifactFile {
|
|
2
2
|
path: string;
|
|
3
3
|
content: string;
|
|
4
|
-
/** For .html files: when true, content is a body/main fragment wrapped in a
|
|
4
|
+
/** For .html files: when true, content is a body/main fragment wrapped in a Tailwind shell server-side. */
|
|
5
5
|
fragment?: boolean;
|
|
6
|
-
/** Optional document title when publishing an HTML fragment. */
|
|
7
6
|
title?: string;
|
|
8
7
|
}
|
|
9
8
|
export interface WriteSessionArtifactsInput {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-session-artifacts.d.ts","sourceRoot":"","sources":["../../../src/lib/session-pages/write-session-artifacts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write-session-artifacts.d.ts","sourceRoot":"","sources":["../../../src/lib/session-pages/write-session-artifacts.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,wBAAwB,EAAE,CAAA;CACtC;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,2BAA2B,CAAC,CAsCtC"}
|
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.writeSessionArtifacts = writeSessionArtifacts;
|
|
4
4
|
const session_artifact_yjs_store_1 = require("../../realtime/session-artifact-yjs-store");
|
|
5
|
+
const list_library_items_1 = require("../library/list-library-items");
|
|
5
6
|
const html_artifact_template_1 = require("./html-artifact-template");
|
|
7
|
+
const list_session_artifacts_1 = require("./list-session-artifacts");
|
|
6
8
|
const paths_1 = require("./paths");
|
|
7
9
|
async function writeSessionArtifacts(input) {
|
|
10
|
+
var _a, _b, _c, _d, _e;
|
|
8
11
|
if (input.files.length === 0) {
|
|
9
12
|
return { artifacts: [] };
|
|
10
13
|
}
|
|
@@ -18,12 +21,20 @@ async function writeSessionArtifacts(input) {
|
|
|
18
21
|
title: file.title,
|
|
19
22
|
})
|
|
20
23
|
: file.content;
|
|
21
|
-
|
|
24
|
+
// Upsert: create-only conflict is enforced by publishSessionArtifacts
|
|
25
|
+
// (cross-subagent). Self-revision after an audit repair must overwrite —
|
|
26
|
+
// initializeFromContent threw "File already exists" and forced update loops.
|
|
27
|
+
const published = await store.upsertFromContent(input.sessionId, relativePath, content);
|
|
22
28
|
artifacts.push({
|
|
23
29
|
path: published.path,
|
|
24
30
|
bytes: published.bytes,
|
|
25
31
|
});
|
|
26
32
|
}
|
|
33
|
+
const allFiles = await (0, list_session_artifacts_1.listSessionArtifacts)(input.sessionId);
|
|
34
|
+
const previewPath = (_d = (_b = (_a = allFiles.find((file) => file.path === 'index.html')) === null || _a === void 0 ? void 0 : _a.path) !== null && _b !== void 0 ? _b : (_c = allFiles[0]) === null || _c === void 0 ? void 0 : _c.path) !== null && _d !== void 0 ? _d : (_e = artifacts[0]) === null || _e === void 0 ? void 0 : _e.path;
|
|
35
|
+
if (previewPath) {
|
|
36
|
+
await (0, list_library_items_1.markChatHasArtifacts)(input.sessionId, previewPath, allFiles.length);
|
|
37
|
+
}
|
|
27
38
|
return {
|
|
28
39
|
artifacts,
|
|
29
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-session-artifacts.js","sourceRoot":"","sources":["../../../src/lib/session-pages/write-session-artifacts.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"write-session-artifacts.js","sourceRoot":"","sources":["../../../src/lib/session-pages/write-session-artifacts.ts"],"names":[],"mappings":";;AA4BA,sDAwCC;AApED,0FAAsF;AACtF,sEAAoE;AACpE,qEAAqE;AACrE,qEAA+D;AAC/D,mCAA+C;AAwBxC,KAAK,UAAU,qBAAqB,CACzC,KAAiC;;IAEjC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC1B,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,uDAA0B,GAAE,CAAA;IAC1C,MAAM,SAAS,GAA+B,EAAE,CAAA;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAA,6BAAqB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrD,MAAM,OAAO,GACX,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,IAAA,mDAA0B,EAAC,IAAI,CAAC,OAAO,EAAE;gBACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC;YACF,CAAC,CAAC,IAAI,CAAC,OAAO,CAAA;QAClB,sEAAsE;QACtE,yEAAyE;QACzE,6EAA6E;QAC7E,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;QACvF,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,SAAS,CAAC,KAAK;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,6CAAoB,EAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC5D,MAAM,WAAW,GACf,MAAA,MAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,0CAAE,IAAI,mCACzD,MAAA,QAAQ,CAAC,CAAC,CAAC,0CAAE,IAAI,mCACjB,MAAA,SAAS,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAA;IACpB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAA,yCAAoB,EAAC,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3E,CAAC;IAED,OAAO;QACL,SAAS;KACV,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export type BuildTaskStatus = 'pending' | 'in_progress' | 'done' | 'skipped';
|
|
2
|
+
export interface BuildTask {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
description: string;
|
|
6
|
+
status: BuildTaskStatus;
|
|
7
|
+
/** Artifact paths this task produced or edited. */
|
|
8
|
+
paths?: string[];
|
|
9
|
+
note?: string;
|
|
10
|
+
}
|
|
11
|
+
/** Non-blocking audit findings deferred to the consistency-pass task. */
|
|
12
|
+
export interface OpenAdvisory {
|
|
13
|
+
path: string;
|
|
14
|
+
/** Full advisory lines as returned by publish (`path: [rule] message…`). */
|
|
15
|
+
findings: string[];
|
|
16
|
+
recordedAt: string;
|
|
17
|
+
}
|
|
18
|
+
export interface BuildPlan {
|
|
19
|
+
title: string;
|
|
20
|
+
/** Design contract for the whole session: accent hexes, font pairing,
|
|
21
|
+
* layout pack, signature, radius/density, atmosphere, anti-cliché.
|
|
22
|
+
* Injected into every artifact subagent. */
|
|
23
|
+
designBrief?: string;
|
|
24
|
+
createdAt: string;
|
|
25
|
+
updatedAt: string;
|
|
26
|
+
tasks: BuildTask[];
|
|
27
|
+
/** Quality advisories waiting for the mandatory consistency pass. */
|
|
28
|
+
openAdvisories?: OpenAdvisory[];
|
|
29
|
+
}
|
|
30
|
+
export declare const BUILD_PLAN_PATH = "plan.json";
|
|
31
|
+
/**
|
|
32
|
+
* Layout packs the design brief may name. Keep in sync with designer.skill
|
|
33
|
+
* and extractDesignTokens.
|
|
34
|
+
*/
|
|
35
|
+
export declare const LAYOUT_PACKS: readonly ["product", "launch", "editorial", "magazine", "split-hero", "dark-terminal", "bento", "brutalist", "workspace", "story"];
|
|
36
|
+
export type LayoutPack = (typeof LAYOUT_PACKS)[number];
|
|
37
|
+
/** Matches a layout pack token in free-text briefs (longest names first). */
|
|
38
|
+
export declare const LAYOUT_PACK_PATTERN: RegExp;
|
|
39
|
+
/** Last task must be an explicit consistency/polish pass (enforced at create). */
|
|
40
|
+
export declare function isConsistencyPassTask(task: {
|
|
41
|
+
title: string;
|
|
42
|
+
description: string;
|
|
43
|
+
}): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* designBrief must be specific enough to build a DISTINCT product — accent,
|
|
46
|
+
* pack, fonts, atmosphere, signature, radius/density, anti-cliché.
|
|
47
|
+
* Vague briefs produce Inter/indigo template pages.
|
|
48
|
+
*/
|
|
49
|
+
export declare function assertDesignBriefQuality(brief: string): void;
|
|
50
|
+
export declare function createBuildPlan(title: string, tasks: Array<{
|
|
51
|
+
title: string;
|
|
52
|
+
description: string;
|
|
53
|
+
}>, now: string, designBrief?: string): BuildPlan;
|
|
54
|
+
/** Merge publish advisories into the plan for the consistency pass to consume. */
|
|
55
|
+
export declare function recordOpenAdvisories(plan: BuildPlan, advisories: string[], now: string): BuildPlan;
|
|
56
|
+
/** Drop advisories for paths that were polished (or all when paths omitted). */
|
|
57
|
+
export declare function clearOpenAdvisories(plan: BuildPlan, paths?: string[], now?: string): BuildPlan;
|
|
58
|
+
export declare function parseBuildPlan(content: string): BuildPlan | null;
|
|
59
|
+
export declare function serializeBuildPlan(plan: BuildPlan): string;
|
|
60
|
+
export interface TaskUpdate {
|
|
61
|
+
taskId: string;
|
|
62
|
+
status: BuildTaskStatus;
|
|
63
|
+
paths?: string[];
|
|
64
|
+
note?: string;
|
|
65
|
+
}
|
|
66
|
+
/** Apply a task update; returns null when the task id is unknown. */
|
|
67
|
+
export declare function applyTaskUpdate(plan: BuildPlan, update: TaskUpdate, now: string): BuildPlan | null;
|
|
68
|
+
export declare function nextPendingTask(plan: BuildPlan): BuildTask | undefined;
|
|
69
|
+
export declare function planProgress(plan: BuildPlan): {
|
|
70
|
+
done: number;
|
|
71
|
+
total: number;
|
|
72
|
+
remaining: number;
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=build-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-plan.d.ts","sourceRoot":"","sources":["../../../src/lib/session-plans/build-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LAYOUT_PACK_PATTERN = exports.LAYOUT_PACKS = exports.BUILD_PLAN_PATH = void 0;
|
|
4
|
+
exports.isConsistencyPassTask = isConsistencyPassTask;
|
|
5
|
+
exports.assertDesignBriefQuality = assertDesignBriefQuality;
|
|
6
|
+
exports.createBuildPlan = createBuildPlan;
|
|
7
|
+
exports.recordOpenAdvisories = recordOpenAdvisories;
|
|
8
|
+
exports.clearOpenAdvisories = clearOpenAdvisories;
|
|
9
|
+
exports.parseBuildPlan = parseBuildPlan;
|
|
10
|
+
exports.serializeBuildPlan = serializeBuildPlan;
|
|
11
|
+
exports.applyTaskUpdate = applyTaskUpdate;
|
|
12
|
+
exports.nextPendingTask = nextPendingTask;
|
|
13
|
+
exports.planProgress = planProgress;
|
|
14
|
+
exports.BUILD_PLAN_PATH = 'plan.json';
|
|
15
|
+
/**
|
|
16
|
+
* Layout packs the design brief may name. Keep in sync with designer.skill
|
|
17
|
+
* and extractDesignTokens.
|
|
18
|
+
*/
|
|
19
|
+
exports.LAYOUT_PACKS = [
|
|
20
|
+
'product',
|
|
21
|
+
'launch',
|
|
22
|
+
'editorial',
|
|
23
|
+
'magazine',
|
|
24
|
+
'split-hero',
|
|
25
|
+
'dark-terminal',
|
|
26
|
+
'bento',
|
|
27
|
+
'brutalist',
|
|
28
|
+
'workspace',
|
|
29
|
+
'story',
|
|
30
|
+
];
|
|
31
|
+
/** Matches a layout pack token in free-text briefs (longest names first). */
|
|
32
|
+
exports.LAYOUT_PACK_PATTERN = /\b(split-hero|dark-terminal|workspace|brutalist|magazine|editorial|product|launch|bento|story)\b/i;
|
|
33
|
+
const SIGNATURE_PATTERN = /\bsignature\b/i;
|
|
34
|
+
const RADIUS_OR_DENSITY_PATTERN = /\b(sharp|soft|pill|airy|comfortable|dense)\b/i;
|
|
35
|
+
const ANTI_CLICHE_PATTERN = /\b(anti-?clich[eé]|must not|must NOT|avoid|not look like|no indigo|no centered|never Inter)\b/i;
|
|
36
|
+
/** Last task must be an explicit consistency/polish pass (enforced at create). */
|
|
37
|
+
function isConsistencyPassTask(task) {
|
|
38
|
+
return /\b(consistency|polish|qa|quality)\b/i.test(`${task.title} ${task.description}`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* designBrief must be specific enough to build a DISTINCT product — accent,
|
|
42
|
+
* pack, fonts, atmosphere, signature, radius/density, anti-cliché.
|
|
43
|
+
* Vague briefs produce Inter/indigo template pages.
|
|
44
|
+
*/
|
|
45
|
+
function assertDesignBriefQuality(brief) {
|
|
46
|
+
if (!/#[0-9a-fA-F]{3,8}\b/.test(brief)) {
|
|
47
|
+
throw new Error('designBrief must include an exact accent hex (e.g. #0EA5E9). Pick a topic-fit color — avoid default indigo.');
|
|
48
|
+
}
|
|
49
|
+
if (!exports.LAYOUT_PACK_PATTERN.test(brief)) {
|
|
50
|
+
throw new Error(`designBrief must name a layout pack: ${exports.LAYOUT_PACKS.join(' | ')}.`);
|
|
51
|
+
}
|
|
52
|
+
if (!/fonts\.googleapis\.com/i.test(brief) &&
|
|
53
|
+
!/\b(?:fonts?|typeface|typography)\b/i.test(brief)) {
|
|
54
|
+
throw new Error('designBrief must name a Google Font pairing (display + body), e.g. "Manrope + Source Sans 3".');
|
|
55
|
+
}
|
|
56
|
+
if (!/\b(?:atmosphere|wash|mesh|grain|glass|orb|blur|gradient|grid|noise|ink)\b/i.test(brief)) {
|
|
57
|
+
throw new Error('designBrief must include an atmosphere note (e.g. soft accent wash, hard grid, noise film) so pages are not flat.');
|
|
58
|
+
}
|
|
59
|
+
if (!SIGNATURE_PATTERN.test(brief)) {
|
|
60
|
+
throw new Error('designBrief must name a signature (layout/surface/motion), e.g. "signature: split + hard grid + scroll reveal".');
|
|
61
|
+
}
|
|
62
|
+
if (!RADIUS_OR_DENSITY_PATTERN.test(brief)) {
|
|
63
|
+
throw new Error('designBrief must set radius (sharp|soft|pill) and/or density (airy|comfortable|dense).');
|
|
64
|
+
}
|
|
65
|
+
if (!ANTI_CLICHE_PATTERN.test(brief)) {
|
|
66
|
+
throw new Error('designBrief must include an anti-cliché note (what this must NOT look like), e.g. "no centered blur-orb hero".');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function createBuildPlan(title, tasks, now, designBrief) {
|
|
70
|
+
return {
|
|
71
|
+
title,
|
|
72
|
+
...(designBrief ? { designBrief } : {}),
|
|
73
|
+
createdAt: now,
|
|
74
|
+
updatedAt: now,
|
|
75
|
+
tasks: tasks.map((task, index) => ({
|
|
76
|
+
id: `t${index + 1}`,
|
|
77
|
+
title: task.title,
|
|
78
|
+
description: task.description,
|
|
79
|
+
status: 'pending',
|
|
80
|
+
})),
|
|
81
|
+
openAdvisories: [],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/** Merge publish advisories into the plan for the consistency pass to consume. */
|
|
85
|
+
function recordOpenAdvisories(plan, advisories, now) {
|
|
86
|
+
var _a, _b, _c;
|
|
87
|
+
if (advisories.length === 0)
|
|
88
|
+
return plan;
|
|
89
|
+
const byPath = new Map();
|
|
90
|
+
for (const existing of (_a = plan.openAdvisories) !== null && _a !== void 0 ? _a : []) {
|
|
91
|
+
byPath.set(existing.path, [...existing.findings]);
|
|
92
|
+
}
|
|
93
|
+
for (const line of advisories) {
|
|
94
|
+
const path = (_b = line.split(':')[0]) === null || _b === void 0 ? void 0 : _b.trim();
|
|
95
|
+
if (!path)
|
|
96
|
+
continue;
|
|
97
|
+
const prev = (_c = byPath.get(path)) !== null && _c !== void 0 ? _c : [];
|
|
98
|
+
if (!prev.includes(line))
|
|
99
|
+
prev.push(line);
|
|
100
|
+
byPath.set(path, prev);
|
|
101
|
+
}
|
|
102
|
+
plan.openAdvisories = [...byPath.entries()].map(([path, findings]) => ({
|
|
103
|
+
path,
|
|
104
|
+
findings,
|
|
105
|
+
recordedAt: now,
|
|
106
|
+
}));
|
|
107
|
+
plan.updatedAt = now;
|
|
108
|
+
return plan;
|
|
109
|
+
}
|
|
110
|
+
/** Drop advisories for paths that were polished (or all when paths omitted). */
|
|
111
|
+
function clearOpenAdvisories(plan, paths, now) {
|
|
112
|
+
var _a;
|
|
113
|
+
if (!((_a = plan.openAdvisories) === null || _a === void 0 ? void 0 : _a.length))
|
|
114
|
+
return plan;
|
|
115
|
+
if (!paths || paths.length === 0) {
|
|
116
|
+
plan.openAdvisories = [];
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
const remove = new Set(paths.map((path) => path.replace(/^\.\//, '')));
|
|
120
|
+
plan.openAdvisories = plan.openAdvisories.filter((entry) => !remove.has(entry.path));
|
|
121
|
+
}
|
|
122
|
+
if (now)
|
|
123
|
+
plan.updatedAt = now;
|
|
124
|
+
return plan;
|
|
125
|
+
}
|
|
126
|
+
function parseBuildPlan(content) {
|
|
127
|
+
try {
|
|
128
|
+
const parsed = JSON.parse(content);
|
|
129
|
+
if (!parsed || !Array.isArray(parsed.tasks)) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
return parsed;
|
|
133
|
+
}
|
|
134
|
+
catch (_a) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function serializeBuildPlan(plan) {
|
|
139
|
+
return JSON.stringify(plan, null, 2);
|
|
140
|
+
}
|
|
141
|
+
/** Apply a task update; returns null when the task id is unknown. */
|
|
142
|
+
function applyTaskUpdate(plan, update, now) {
|
|
143
|
+
var _a;
|
|
144
|
+
const task = plan.tasks.find((candidate) => candidate.id === update.taskId);
|
|
145
|
+
if (!task) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
task.status = update.status;
|
|
149
|
+
if (update.paths) {
|
|
150
|
+
task.paths = [...new Set([...((_a = task.paths) !== null && _a !== void 0 ? _a : []), ...update.paths])];
|
|
151
|
+
}
|
|
152
|
+
if (update.note !== undefined) {
|
|
153
|
+
task.note = update.note;
|
|
154
|
+
}
|
|
155
|
+
plan.updatedAt = now;
|
|
156
|
+
return plan;
|
|
157
|
+
}
|
|
158
|
+
function nextPendingTask(plan) {
|
|
159
|
+
return plan.tasks.find((task) => task.status === 'pending' || task.status === 'in_progress');
|
|
160
|
+
}
|
|
161
|
+
function planProgress(plan) {
|
|
162
|
+
const done = plan.tasks.filter((task) => task.status === 'done' || task.status === 'skipped').length;
|
|
163
|
+
return { done, total: plan.tasks.length, remaining: plan.tasks.length - done };
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=build-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-plan.js","sourceRoot":"","sources":["../../../src/lib/session-plans/build-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RedisClientType } from 'redis';
|
|
2
|
+
export declare function flushLockKey(documentId: string): string;
|
|
3
|
+
export declare function acquireFlushLock(redis: RedisClientType, documentId: string, ttlSeconds?: number): Promise<string | null>;
|
|
4
|
+
export declare function releaseFlushLock(redis: RedisClientType, documentId: string, token: string): Promise<void>;
|
|
5
|
+
export declare function withFlushLock<T>(redis: RedisClientType, documentId: string, fn: () => Promise<T>, ttlSeconds?: number): Promise<T | null>;
|
|
6
|
+
//# sourceMappingURL=flush-lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flush-lock.d.ts","sourceRoot":"","sources":["../../../src/lib/yjs-pending/flush-lock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAS5C,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,SAAK,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,SAAK,GACd,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAUnB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.flushLockKey = flushLockKey;
|
|
4
|
+
exports.acquireFlushLock = acquireFlushLock;
|
|
5
|
+
exports.releaseFlushLock = releaseFlushLock;
|
|
6
|
+
exports.withFlushLock = withFlushLock;
|
|
7
|
+
const node_crypto_1 = require("node:crypto");
|
|
8
|
+
const UNLOCK_LUA = `
|
|
9
|
+
if redis.call("get", KEYS[1]) == ARGV[1] then
|
|
10
|
+
return redis.call("del", KEYS[1])
|
|
11
|
+
end
|
|
12
|
+
return 0
|
|
13
|
+
`;
|
|
14
|
+
function flushLockKey(documentId) {
|
|
15
|
+
return `yjs:flush-lock:${documentId}`;
|
|
16
|
+
}
|
|
17
|
+
async function acquireFlushLock(redis, documentId, ttlSeconds = 30) {
|
|
18
|
+
const token = (0, node_crypto_1.randomUUID)();
|
|
19
|
+
const result = await redis.set(flushLockKey(documentId), token, {
|
|
20
|
+
NX: true,
|
|
21
|
+
EX: ttlSeconds,
|
|
22
|
+
});
|
|
23
|
+
return result === 'OK' ? token : null;
|
|
24
|
+
}
|
|
25
|
+
async function releaseFlushLock(redis, documentId, token) {
|
|
26
|
+
await redis.eval(UNLOCK_LUA, {
|
|
27
|
+
keys: [flushLockKey(documentId)],
|
|
28
|
+
arguments: [token],
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
async function withFlushLock(redis, documentId, fn, ttlSeconds = 30) {
|
|
32
|
+
const token = await acquireFlushLock(redis, documentId, ttlSeconds);
|
|
33
|
+
if (!token) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
return await fn();
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
await releaseFlushLock(redis, documentId, token);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=flush-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flush-lock.js","sourceRoot":"","sources":["../../../src/lib/yjs-pending/flush-lock.ts"],"names":[],"mappings":";;AAUA,oCAEC;AAED,4CAWC;AAED,4CASC;AAED,sCAeC;AArDD,6CAAwC;AAGxC,MAAM,UAAU,GAAG;;;;;CAKlB,CAAA;AAED,SAAgB,YAAY,CAAC,UAAkB;IAC7C,OAAO,kBAAkB,UAAU,EAAE,CAAA;AACvC,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,KAAsB,EACtB,UAAkB,EAClB,UAAU,GAAG,EAAE;IAEf,MAAM,KAAK,GAAG,IAAA,wBAAU,GAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE;QAC9D,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,UAAU;KACf,CAAC,CAAA;IACF,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AACvC,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,KAAsB,EACtB,UAAkB,EAClB,KAAa;IAEb,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE;QAC3B,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChC,SAAS,EAAE,CAAC,KAAK,CAAC;KACnB,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,KAAsB,EACtB,UAAkB,EAClB,EAAoB,EACpB,UAAU,GAAG,EAAE;IAEf,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IACnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAA;IACnB,CAAC;YAAS,CAAC;QACT,MAAM,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function runYjsFlushTick(): Promise<void>;
|
|
2
|
+
export declare function sweepExpiredNamedSnapshotsForPrefix(prefix: string): Promise<number>;
|
|
3
|
+
export declare function startYjsFlushWorker(): void;
|
|
4
|
+
export declare function stopYjsFlushWorker(): void;
|
|
5
|
+
//# sourceMappingURL=flush-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flush-worker.d.ts","sourceRoot":"","sources":["../../../src/lib/yjs-pending/flush-worker.ts"],"names":[],"mappings":"AAyBA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAYrD;AAED,wBAAsB,mCAAmC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAczF;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAU1C;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runYjsFlushTick = runYjsFlushTick;
|
|
4
|
+
exports.sweepExpiredNamedSnapshotsForPrefix = sweepExpiredNamedSnapshotsForPrefix;
|
|
5
|
+
exports.startYjsFlushWorker = startYjsFlushWorker;
|
|
6
|
+
exports.stopYjsFlushWorker = stopYjsFlushWorker;
|
|
7
|
+
const context_1 = require("../../context");
|
|
8
|
+
const logger_1 = require("../../logger");
|
|
9
|
+
const artifact_storage_paths_1 = require("../session-pages/artifact-storage-paths");
|
|
10
|
+
const s3_object_store_1 = require("../object-storage/s3-object-store");
|
|
11
|
+
const yjs_persistence_1 = require("./yjs-persistence");
|
|
12
|
+
const SNAPSHOT_RETENTION_MS = 7 * 24 * 60 * 60 * 1000;
|
|
13
|
+
const SNAPSHOT_SEGMENT = '.snapshot-';
|
|
14
|
+
let flushTimer = null;
|
|
15
|
+
function parseSnapshotTimestamp(key) {
|
|
16
|
+
const idx = key.lastIndexOf(SNAPSHOT_SEGMENT);
|
|
17
|
+
if (idx < 0) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const stamp = key.slice(idx + SNAPSHOT_SEGMENT.length);
|
|
21
|
+
const match = /^(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z$/.exec(stamp);
|
|
22
|
+
if (!match) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const ms = Date.parse(`${match[1]}T${match[2]}:${match[3]}:${match[4]}.${match[5]}Z`);
|
|
26
|
+
return Number.isFinite(ms) ? ms : null;
|
|
27
|
+
}
|
|
28
|
+
async function runYjsFlushTick() {
|
|
29
|
+
if (!(0, context_1.getSharedRedisClient)()) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const documentIds = await (0, context_1.getYjsPendingUpdatesRepository)().listDocumentIdsWithPending(100);
|
|
33
|
+
for (const documentId of documentIds) {
|
|
34
|
+
try {
|
|
35
|
+
await (0, yjs_persistence_1.flushDocumentToS3)(documentId);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
(0, logger_1.getBuilderApiLogger)().warn({ err: error, documentId }, 'Yjs S3 flush failed');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async function sweepExpiredNamedSnapshotsForPrefix(prefix) {
|
|
43
|
+
const cutoff = Date.now() - SNAPSHOT_RETENTION_MS;
|
|
44
|
+
let deleted = 0;
|
|
45
|
+
for (const { key } of await (0, s3_object_store_1.listKeysByPrefix)(prefix)) {
|
|
46
|
+
if (!(0, artifact_storage_paths_1.isArtifactSnapshotPath)(key.slice(prefix.length))) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const ts = parseSnapshotTimestamp(key);
|
|
50
|
+
if (ts !== null && ts < cutoff) {
|
|
51
|
+
await (0, s3_object_store_1.deleteObject)(key);
|
|
52
|
+
deleted += 1;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return deleted;
|
|
56
|
+
}
|
|
57
|
+
function startYjsFlushWorker() {
|
|
58
|
+
var _a, _b, _c;
|
|
59
|
+
if (flushTimer) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const intervalMs = (_b = (_a = (0, context_1.getBuilderApiContext)().config.contentStorage) === null || _a === void 0 ? void 0 : _a.flushIntervalMs) !== null && _b !== void 0 ? _b : 5000;
|
|
63
|
+
flushTimer = setInterval(() => {
|
|
64
|
+
void runYjsFlushTick();
|
|
65
|
+
}, intervalMs);
|
|
66
|
+
(_c = flushTimer.unref) === null || _c === void 0 ? void 0 : _c.call(flushTimer);
|
|
67
|
+
(0, logger_1.getBuilderApiLogger)().info({ intervalMs }, 'Yjs S3 flush worker started');
|
|
68
|
+
}
|
|
69
|
+
function stopYjsFlushWorker() {
|
|
70
|
+
if (flushTimer) {
|
|
71
|
+
clearInterval(flushTimer);
|
|
72
|
+
flushTimer = null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=flush-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flush-worker.js","sourceRoot":"","sources":["../../../src/lib/yjs-pending/flush-worker.ts"],"names":[],"mappings":";;AAyBA,0CAYC;AAED,kFAcC;AAED,kDAUC;AAED,gDAKC;AAxED,2CAA0G;AAC1G,yCAAkD;AAClD,oFAAgF;AAChF,uEAAkF;AAClF,uDAAqD;AAErD,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AACrD,MAAM,gBAAgB,GAAG,YAAY,CAAA;AAErC,IAAI,UAAU,GAA0C,IAAI,CAAA;AAE5D,SAAS,sBAAsB,CAAC,GAAW;IACzC,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;IAC7C,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,wDAAwD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACrF,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACxC,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC,IAAA,8BAAoB,GAAE,EAAE,CAAC;QAC5B,OAAM;IACR,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,IAAA,wCAA8B,GAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAA;IAC1F,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,IAAA,mCAAiB,EAAC,UAAU,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,4BAAmB,GAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,qBAAqB,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,mCAAmC,CAAC,MAAc;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,qBAAqB,CAAA;IACjD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,MAAM,IAAA,kCAAgB,EAAC,MAAM,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,IAAA,+CAAsB,EAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACtD,SAAQ;QACV,CAAC;QACD,MAAM,EAAE,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAA,8BAAY,EAAC,GAAG,CAAC,CAAA;YACvB,OAAO,IAAI,CAAC,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAgB,mBAAmB;;IACjC,IAAI,UAAU,EAAE,CAAC;QACf,OAAM;IACR,CAAC;IACD,MAAM,UAAU,GAAG,MAAA,MAAA,IAAA,8BAAoB,GAAE,CAAC,MAAM,CAAC,cAAc,0CAAE,eAAe,mCAAI,IAAI,CAAA;IACxF,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,KAAK,eAAe,EAAE,CAAA;IACxB,CAAC,EAAE,UAAU,CAAC,CAAA;IACd,MAAA,UAAU,CAAC,KAAK,0DAAI,CAAA;IACpB,IAAA,4BAAmB,GAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,6BAA6B,CAAC,CAAA;AAC3E,CAAC;AAED,SAAgB,kBAAkB;IAChC,IAAI,UAAU,EAAE,CAAC;QACf,aAAa,CAAC,UAAU,CAAC,CAAA;QACzB,UAAU,GAAG,IAAI,CAAA;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface YjsPendingUpdate {
|
|
2
|
+
id: string;
|
|
3
|
+
documentId: string;
|
|
4
|
+
accountId: string;
|
|
5
|
+
update: Uint8Array;
|
|
6
|
+
createdAt: string;
|
|
7
|
+
}
|
|
8
|
+
export interface AppendYjsPendingUpdateInput {
|
|
9
|
+
documentId: string;
|
|
10
|
+
accountId: string;
|
|
11
|
+
update: Uint8Array;
|
|
12
|
+
}
|
|
13
|
+
export interface YjsPendingUpdatesRepository {
|
|
14
|
+
append(input: AppendYjsPendingUpdateInput): Promise<YjsPendingUpdate>;
|
|
15
|
+
listByDocumentId(documentId: string): Promise<YjsPendingUpdate[]>;
|
|
16
|
+
countByDocumentId(documentId: string): Promise<number>;
|
|
17
|
+
deleteByIds(ids: string[]): Promise<void>;
|
|
18
|
+
deleteByDocumentId(documentId: string): Promise<void>;
|
|
19
|
+
deleteByDocumentIdPrefix(documentIdPrefix: string): Promise<void>;
|
|
20
|
+
listDocumentIdsWithPending(limit?: number): Promise<string[]>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=yjs-pending-updates-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yjs-pending-updates-repository.d.ts","sourceRoot":"","sources":["../../../src/lib/yjs-pending/yjs-pending-updates-repository.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,UAAU,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,UAAU,CAAA;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrE,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACjE,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACtD,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,0BAA0B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CAC9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yjs-pending-updates-repository.js","sourceRoot":"","sources":["../../../src/lib/yjs-pending/yjs-pending-updates-repository.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
export type ParsedDocumentTarget = {
|
|
3
|
+
kind: 'session-artifact';
|
|
4
|
+
sessionId: string;
|
|
5
|
+
artifactPath: string;
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'notebook';
|
|
8
|
+
accountId: string;
|
|
9
|
+
notebookId: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function parseDocumentTarget(documentIdentifier: string): ParsedDocumentTarget | null;
|
|
12
|
+
export declare function readCommittedYjsState(parsed: ParsedDocumentTarget): Promise<Uint8Array | null>;
|
|
13
|
+
export declare function writeCommittedYjsState(parsed: ParsedDocumentTarget, state: Uint8Array): Promise<void>;
|
|
14
|
+
export declare function writeCommittedContentSnapshot(parsed: ParsedDocumentTarget, content: string): Promise<void>;
|
|
15
|
+
export declare function writeNamedSessionSnapshot(sessionId: string, artifactPath: string, content: string, at?: Date): Promise<string>;
|
|
16
|
+
export declare function docTextContent(doc: Y.Doc): string;
|
|
17
|
+
export declare function loadMergedState(documentIdentifier: string): Promise<Uint8Array | null>;
|
|
18
|
+
export declare function hydrateEphemeralDoc(documentIdentifier: string): Promise<Y.Doc | null>;
|
|
19
|
+
export declare function appendIncrementalUpdate(documentIdentifier: string, accountId: string, update: Uint8Array, options?: {
|
|
20
|
+
treatAsPossiblyFullState?: boolean;
|
|
21
|
+
}): Promise<void>;
|
|
22
|
+
export declare function flushDocumentToS3(documentIdentifier: string): Promise<boolean>;
|
|
23
|
+
//# sourceMappingURL=yjs-persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yjs-persistence.d.ts","sourceRoot":"","sources":["../../../src/lib/yjs-pending/yjs-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAuBxB,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/D,wBAAgB,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAc3F;AAQD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAQpG;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,EAAE,GAAE,IAAiB,GACpB,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,MAAM,CAEjD;AAED,wBAAsB,eAAe,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAoB5F;AAED,wBAAsB,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAmB3F;AAED,wBAAsB,uBAAuB,CAC3C,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE;IAAE,wBAAwB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED,wBAAsB,iBAAiB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoDpF"}
|