@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.updateSessionArtifactsSubagentTool = exports.applySessionArtifactDiffTool = exports.getSessionArtifactLatestContentTool = exports.updateSessionArtifactInputSchema = exports.getSessionArtifactLatestContentInputSchema = exports.applySessionArtifactDiffInputSchema = void 0;
|
|
4
|
+
exports.shouldStopUpdateSubagent = shouldStopUpdateSubagent;
|
|
4
5
|
exports.getUpdateSessionArtifactsSubagent = getUpdateSessionArtifactsSubagent;
|
|
5
6
|
const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
6
7
|
const zod_1 = require("zod");
|
|
@@ -9,9 +10,12 @@ const agent_context_1 = require("./agent-context");
|
|
|
9
10
|
const artifact_events_1 = require("../../lib/socket/artifact-events");
|
|
10
11
|
const hashline_diff_guide_1 = require("../../lib/session-artifacts/hashline-diff-guide");
|
|
11
12
|
const hashline_tags_1 = require("../../lib/session-artifacts/hashline-tags");
|
|
13
|
+
const parse_hashline_diff_1 = require("../../lib/session-artifacts/parse-hashline-diff");
|
|
12
14
|
const session_pages_1 = require("../../lib/session-pages");
|
|
13
15
|
const session_artifact_yjs_store_1 = require("../../realtime/session-artifact-yjs-store");
|
|
14
16
|
const logger_1 = require("../../logger");
|
|
17
|
+
const build_plan_1 = require("../../lib/session-plans/build-plan");
|
|
18
|
+
const skills_1 = require("../skills");
|
|
15
19
|
exports.applySessionArtifactDiffInputSchema = zod_1.z.object({
|
|
16
20
|
path: zod_1.z
|
|
17
21
|
.string()
|
|
@@ -20,20 +24,47 @@ exports.applySessionArtifactDiffInputSchema = zod_1.z.object({
|
|
|
20
24
|
diff: zod_1.z
|
|
21
25
|
.string()
|
|
22
26
|
.min(1)
|
|
23
|
-
.describe('
|
|
27
|
+
.describe('Either (1) hashline SEARCH/REPLACE blocks with tags from getSessionArtifactLatestContent, or (2) the COMPLETE new file contents with no <<<SEARCH markers for a wholesale rewrite (preferred for structural/consistency fixes).'),
|
|
24
28
|
});
|
|
25
29
|
exports.getSessionArtifactLatestContentInputSchema = zod_1.z.object({
|
|
26
30
|
path: zod_1.z.string().min(1).describe('Relative path of an existing session artifact'),
|
|
27
31
|
});
|
|
28
32
|
exports.updateSessionArtifactInputSchema = zod_1.z.object({
|
|
29
|
-
parentContext: zod_1.z
|
|
30
|
-
|
|
33
|
+
parentContext: zod_1.z
|
|
34
|
+
.string()
|
|
35
|
+
.min(1)
|
|
36
|
+
.describe('Context the editor cannot see: design brief tokens, exact findings to fix (consistency only), acceptance criteria. Keep short.'),
|
|
37
|
+
task: zod_1.z
|
|
38
|
+
.string()
|
|
39
|
+
.min(1)
|
|
40
|
+
.describe('Single edit instruction including the exact existing path. For HTML section/structural work say WHOLESALE rewrite of the complete page. One delegation per plan task — do not stack multiple updateSessionArtifact calls for the same task.'),
|
|
41
|
+
skills: zod_1.z
|
|
42
|
+
.array(zod_1.z.string())
|
|
43
|
+
.optional()
|
|
44
|
+
.describe('Relevant built-in and account skill guides are selected automatically. Pass [] for doc edits and read/Q&A tasks to skip dynamic skill guidance; otherwise omit this field.'),
|
|
31
45
|
});
|
|
32
|
-
|
|
46
|
+
/** Missing-path attempts per subagent — the editor cannot create files, so
|
|
47
|
+
* retrying against a nonexistent path is always futile. */
|
|
48
|
+
const missingPathAttempts = new Map();
|
|
49
|
+
const MISSING_PATH_ATTEMPTS_LIMIT = 500;
|
|
50
|
+
async function assertExistingArtifactPath(sessionId, artifactPath, context) {
|
|
51
|
+
var _a, _b, _c;
|
|
33
52
|
const normalizedPath = (0, session_pages_1.normalizeArtifactPath)(artifactPath);
|
|
34
53
|
const [artifact] = await (0, session_pages_1.readSessionArtifacts)(sessionId, [normalizedPath]);
|
|
35
54
|
if (!(artifact === null || artifact === void 0 ? void 0 : artifact.found)) {
|
|
36
|
-
|
|
55
|
+
const files = await (0, session_pages_1.listSessionArtifacts)(sessionId);
|
|
56
|
+
const key = `${String((_b = (_a = context === null || context === void 0 ? void 0 : context.data) === null || _a === void 0 ? void 0 : _a.subagentChatId) !== null && _b !== void 0 ? _b : sessionId)}:${normalizedPath}`;
|
|
57
|
+
const attempts = ((_c = missingPathAttempts.get(key)) !== null && _c !== void 0 ? _c : 0) + 1;
|
|
58
|
+
if (missingPathAttempts.size > MISSING_PATH_ATTEMPTS_LIMIT) {
|
|
59
|
+
const oldest = missingPathAttempts.keys().next().value;
|
|
60
|
+
if (oldest !== undefined)
|
|
61
|
+
missingPathAttempts.delete(oldest);
|
|
62
|
+
}
|
|
63
|
+
missingPathAttempts.set(key, attempts);
|
|
64
|
+
const escalation = attempts > 1
|
|
65
|
+
? ' STOP — you were already told this file does not exist and you CANNOT create files. End your turn NOW with a short reply telling the parent to create it via publishSessionArtifacts.'
|
|
66
|
+
: ' You cannot create files — do not retry any tool against this path; reply to the parent that it must be created via publishSessionArtifacts.';
|
|
67
|
+
throw new Error(`Session artifact not found: ${normalizedPath}. Existing files: ${files.map((file) => file.path).join(', ') || '(none)'}.${escalation}`);
|
|
37
68
|
}
|
|
38
69
|
return normalizedPath;
|
|
39
70
|
}
|
|
@@ -58,7 +89,7 @@ exports.getSessionArtifactLatestContentTool = {
|
|
|
58
89
|
throw new Error('Session ID is required');
|
|
59
90
|
}
|
|
60
91
|
try {
|
|
61
|
-
const path = await assertExistingArtifactPath(sessionId, input.path);
|
|
92
|
+
const path = await assertExistingArtifactPath(sessionId, input.path, context);
|
|
62
93
|
const content = await (0, session_artifact_yjs_store_1.getSessionArtifactYjsStore)().getLatestText(sessionId, path);
|
|
63
94
|
return {
|
|
64
95
|
path,
|
|
@@ -84,13 +115,43 @@ exports.applySessionArtifactDiffTool = {
|
|
|
84
115
|
path: zod_1.z.string(),
|
|
85
116
|
}),
|
|
86
117
|
execute: async (input, context) => {
|
|
118
|
+
var _a;
|
|
87
119
|
const sessionId = (0, agent_context_1.getRootChatId)(context);
|
|
88
120
|
if (!sessionId) {
|
|
89
121
|
throw new Error('Session ID is required');
|
|
90
122
|
}
|
|
91
123
|
try {
|
|
92
|
-
const path = await assertExistingArtifactPath(sessionId, input.path);
|
|
93
|
-
const
|
|
124
|
+
const path = await assertExistingArtifactPath(sessionId, input.path, context);
|
|
125
|
+
const isHtml = path.toLowerCase().endsWith('.html');
|
|
126
|
+
const classification = (0, parse_hashline_diff_1.classifyArtifactDiff)(input.diff, { isHtml });
|
|
127
|
+
if (classification.kind === 'invalid') {
|
|
128
|
+
throw new Error(classification.reason);
|
|
129
|
+
}
|
|
130
|
+
const current = await (0, session_artifact_yjs_store_1.getSessionArtifactYjsStore)().getLatestText(sessionId, path);
|
|
131
|
+
const updated = classification.kind === 'replace'
|
|
132
|
+
? isHtml
|
|
133
|
+
? (0, session_pages_1.prepareHtmlArtifactContent)(classification.content, {})
|
|
134
|
+
: classification.content
|
|
135
|
+
: isHtml
|
|
136
|
+
? (0, session_pages_1.prepareHtmlArtifactContent)((0, hashline_tags_1.joinContentLines)((0, parse_hashline_diff_1.applyPatchToLines)((0, hashline_tags_1.splitContentLines)(current), input.diff)), { fragment: false })
|
|
137
|
+
: (0, hashline_tags_1.joinContentLines)((0, parse_hashline_diff_1.applyPatchToLines)((0, hashline_tags_1.splitContentLines)(current), input.diff));
|
|
138
|
+
// Soft quality gate: reject edits that introduce NEW audit errors
|
|
139
|
+
// (legacy pages may carry old findings — those never block edits).
|
|
140
|
+
if (isHtml) {
|
|
141
|
+
const beforeErrorRules = new Set((0, session_pages_1.auditHtmlArtifact)(current).findings
|
|
142
|
+
.filter((finding) => finding.severity === 'error')
|
|
143
|
+
.map((finding) => finding.rule));
|
|
144
|
+
const introduced = (0, session_pages_1.auditHtmlArtifact)(updated).findings.filter((finding) => finding.severity === 'error' && !beforeErrorRules.has(finding.rule));
|
|
145
|
+
if (introduced.length > 0) {
|
|
146
|
+
throw new Error(`Edit rejected — it introduces quality errors: ${introduced
|
|
147
|
+
.map((finding) => `[${finding.rule}] ${finding.message}`)
|
|
148
|
+
.join(' ')}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Always write the gated `updated` content. Never re-parse the raw
|
|
152
|
+
// diff via applyPatchText — that path threw on malformed SEARCH
|
|
153
|
+
// markers after partial retries and left duplicated sections.
|
|
154
|
+
const result = await (0, session_artifact_yjs_store_1.getSessionArtifactYjsStore)().replaceFromContent(sessionId, path, updated);
|
|
94
155
|
const publishedAt = new Date().toISOString();
|
|
95
156
|
const previewUrl = `${(0, context_1.getBuilderApiContext)().config.apiPrefix}/sessions/${sessionId}/${result.path}`;
|
|
96
157
|
const socketPayload = {
|
|
@@ -101,10 +162,28 @@ exports.applySessionArtifactDiffTool = {
|
|
|
101
162
|
};
|
|
102
163
|
const notifyUserIds = await (0, session_pages_1.resolveArtifactNotifyUserIds)(sessionId, context);
|
|
103
164
|
(0, artifact_events_1.emitArtifactUpdateToUsers)(notifyUserIds, socketPayload);
|
|
165
|
+
try {
|
|
166
|
+
const store = (0, session_artifact_yjs_store_1.getSessionArtifactYjsStore)();
|
|
167
|
+
const plan = (0, build_plan_1.parseBuildPlan)(await store.getLatestText(sessionId, build_plan_1.BUILD_PLAN_PATH).catch(() => ''));
|
|
168
|
+
if ((_a = plan === null || plan === void 0 ? void 0 : plan.openAdvisories) === null || _a === void 0 ? void 0 : _a.some((entry) => entry.path === result.path)) {
|
|
169
|
+
(0, build_plan_1.clearOpenAdvisories)(plan, [result.path], publishedAt);
|
|
170
|
+
await store.upsertFromContent(sessionId, build_plan_1.BUILD_PLAN_PATH, (0, build_plan_1.serializeBuildPlan)(plan));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
(0, logger_1.getBuilderApiLogger)().warn(`[update] failed to clear openAdvisories: ${String(err)}`);
|
|
175
|
+
}
|
|
104
176
|
return { path: result.path };
|
|
105
177
|
}
|
|
106
178
|
catch (err) {
|
|
107
179
|
(0, logger_1.getBuilderApiLogger)().error({ err });
|
|
180
|
+
// Stale tags are the common failure loop: models resend the same diff
|
|
181
|
+
// instead of re-reading. Point them at a fresh read (do NOT embed the
|
|
182
|
+
// entire file — that encouraged broken wholesale pastes mid-hashline).
|
|
183
|
+
if (err instanceof Error && /hash mismatch|out of range/i.test(err.message)) {
|
|
184
|
+
const path = (0, session_pages_1.normalizeArtifactPath)(input.path);
|
|
185
|
+
throw new Error(`${err.message}\nDo NOT resend the same diff — its tags are stale. Call getSessionArtifactLatestContent("${path}") again, then either rebuild SEARCH/REPLACE from the new tags OR send the COMPLETE page as diff with no <<<SEARCH markers (preferred for structural fixes).`);
|
|
186
|
+
}
|
|
108
187
|
throw err;
|
|
109
188
|
}
|
|
110
189
|
},
|
|
@@ -115,37 +194,44 @@ exports.updateSessionArtifactsSubagentTool = {
|
|
|
115
194
|
userConfigurable: true,
|
|
116
195
|
data: {
|
|
117
196
|
title: 'updateSessionArtifact',
|
|
118
|
-
description: '
|
|
197
|
+
description: 'ONE edit (or read) of an existing artifact for the current plan task. Prefer wholesale HTML rewrites. Do not call repeatedly for the same task or for mid-build quality warnings.',
|
|
119
198
|
inputSchema: exports.updateSessionArtifactInputSchema,
|
|
120
199
|
subAgent: {
|
|
121
200
|
name: 'artifact-editor',
|
|
122
|
-
description: 'Reads existing session
|
|
201
|
+
description: 'Reads an existing session artifact and applies one edit (wholesale preferred for HTML). Stops after one successful apply or one failed repair.',
|
|
123
202
|
systemPrompt: `You work with a single existing file under the active session. The parent passes parentContext and task (include the artifact path in task).
|
|
124
203
|
|
|
125
204
|
Decide mode from the task:
|
|
126
|
-
- **Read / Q&A** — explain
|
|
127
|
-
- **Edit** — change the file
|
|
205
|
+
- **Read / Q&A** — explain or quote briefly. No applySessionArtifactDiff.
|
|
206
|
+
- **Edit** — change the file once, then stop.
|
|
128
207
|
|
|
129
|
-
|
|
208
|
+
**Speed contract (mandatory)**
|
|
209
|
+
1. Call getSessionArtifactLatestContent once.
|
|
210
|
+
2. For HTML edits that add sections, fix structure, or touch more than a tiny localized tweak: WHOLESALE rewrite — pass the COMPLETE corrected page as \`diff\` with NO <<<SEARCH markers. Preserve existing good sections; add/change only what the task asks.
|
|
211
|
+
3. Hashline SEARCH/REPLACE only for a tiny single-block tweak (one color, one label). If unsure, wholesale.
|
|
212
|
+
4. Call applySessionArtifactDiff once. On success, reply with ONLY the updated path — do not re-read, re-apply, or "improve further".
|
|
213
|
+
5. If apply is rejected (stale tags / malformed hashline / new audit errors): re-read once, WHOLESALE-rewrite the complete page once (no <<<SEARCH), then stop even if still failing. Never loop. Never retry broken hashline.
|
|
214
|
+
6. Do not chase contrast/heuristic polish, emoji, or fonts unless the task explicitly lists blocking error rule names — the server strips emoji and injects fonts.
|
|
130
215
|
|
|
131
216
|
**Read / Q&A workflow**
|
|
132
|
-
1.
|
|
133
|
-
2.
|
|
134
|
-
3. Reply to the parent with the answer, summary, or relevant code chunks only.
|
|
217
|
+
1. Cite short excerpts or bullet summaries only. Never dump the full file.
|
|
218
|
+
2. Reply to the parent with the answer only.
|
|
135
219
|
|
|
136
|
-
**Edit
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
4. Validate before applying:
|
|
141
|
-
- For .html paths, call validateHtml with the expected updated content.
|
|
142
|
-
- For .md paths, call validateMarkdown with the expected updated content and path.
|
|
143
|
-
5. Call applySessionArtifactDiff with path and diff.
|
|
144
|
-
6. Reply to the parent with ONLY the updated path from applySessionArtifactDiff (no file body).
|
|
220
|
+
**Edit quality (single write)**
|
|
221
|
+
- Keep the established design system (fonts, accent hex, chrome, pack, signature). Raise quality in that one write — distinctive fonts (never Inter), topic-fit accent, atmosphere matching the signature (glass sticky nav only when the brief calls for soft glass), Lucide SVG icons, real copy. Never collapse the page into a generic centered blur-orb template.
|
|
222
|
+
- Keep the page's existing base-framework tag. On Tailwind pages style via utilities; every text color readable on its background.
|
|
223
|
+
- An "Account skill guides" / "Session design system" message may follow — apply it in the same write.
|
|
145
224
|
|
|
146
225
|
${hashline_diff_guide_1.HASHLINE_DIFF_GUIDE}
|
|
226
|
+
|
|
227
|
+
# Generation skill guides
|
|
228
|
+
When editing .html, keep changes aligned with these guides (designer + a11y + copywriting always apply):
|
|
229
|
+
|
|
230
|
+
${skills_1.STATIC_SKILL_GUIDES}
|
|
147
231
|
`,
|
|
148
|
-
stopWhen:
|
|
232
|
+
stopWhen: shouldStopUpdateSubagent,
|
|
233
|
+
maxOutputTokens: 16000,
|
|
234
|
+
prepareStep: (0, skills_1.createSkillInjectingPrepareStep)(),
|
|
149
235
|
tools: [
|
|
150
236
|
exports.getSessionArtifactLatestContentTool,
|
|
151
237
|
exports.applySessionArtifactDiffTool,
|
|
@@ -153,6 +239,30 @@ ${hashline_diff_guide_1.HASHLINE_DIFF_GUIDE}
|
|
|
153
239
|
},
|
|
154
240
|
},
|
|
155
241
|
};
|
|
242
|
+
const TERMINAL_UPDATE_FAILURES = [
|
|
243
|
+
'Edit rejected',
|
|
244
|
+
'Quality audit failed',
|
|
245
|
+
'hash mismatch',
|
|
246
|
+
'out of range',
|
|
247
|
+
'Malformed hashline',
|
|
248
|
+
'Artifact not found',
|
|
249
|
+
'does not exist yet',
|
|
250
|
+
'Invalid diff',
|
|
251
|
+
'Session ID is required',
|
|
252
|
+
'File already exists',
|
|
253
|
+
'File not found',
|
|
254
|
+
'Type validation failed',
|
|
255
|
+
];
|
|
256
|
+
/** Read + apply (+ one repair) only. Absolute cap stops providers that ignore the budget. */
|
|
257
|
+
function shouldStopUpdateSubagent({ steps }) {
|
|
258
|
+
if (steps.length >= 4)
|
|
259
|
+
return true;
|
|
260
|
+
const rejectedWrites = steps.filter((step) => {
|
|
261
|
+
const serialized = JSON.stringify(step !== null && step !== void 0 ? step : {});
|
|
262
|
+
return TERMINAL_UPDATE_FAILURES.some((marker) => serialized.includes(marker));
|
|
263
|
+
}).length;
|
|
264
|
+
return rejectedWrites >= 2;
|
|
265
|
+
}
|
|
156
266
|
function getUpdateSessionArtifactsSubagent() {
|
|
157
267
|
return exports.updateSessionArtifactsSubagentTool;
|
|
158
268
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-session-artifacts.tool.js","sourceRoot":"","sources":["../../../src/agents/shared/update-session-artifacts.tool.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"update-session-artifacts.tool.js","sourceRoot":"","sources":["../../../src/agents/shared/update-session-artifacts.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,8 @@ export declare const validateMarkdownInputSchema: z.ZodObject<{
|
|
|
9
9
|
}, z.core.$strip>;
|
|
10
10
|
export declare const validateHtmlTool: AgentTool;
|
|
11
11
|
export declare const validateMarkdownTool: AgentTool;
|
|
12
|
+
export declare const auditHtmlQualityInputSchema: z.ZodObject<{
|
|
13
|
+
html: z.ZodString;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export declare const auditHtmlQualityTool: AgentTool;
|
|
12
16
|
//# sourceMappingURL=validate-artifact-content.tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-artifact-content.tools.d.ts","sourceRoot":"","sources":["../../../src/agents/shared/validate-artifact-content.tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAEhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"validate-artifact-content.tools.d.ts","sourceRoot":"","sources":["../../../src/agents/shared/validate-artifact-content.tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAEhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,uBAAuB;;iBAElC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;iBAMtC,CAAA;AAwGF,eAAO,MAAM,gBAAgB,EAAE,SAe9B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,SAgBlC,CAAA;AAED,eAAO,MAAM,2BAA2B;;iBAEtC,CAAA;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAqBlC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateMarkdownTool = exports.validateHtmlTool = exports.validateMarkdownInputSchema = exports.validateHtmlInputSchema = void 0;
|
|
3
|
+
exports.auditHtmlQualityTool = exports.auditHtmlQualityInputSchema = exports.validateMarkdownTool = exports.validateHtmlTool = exports.validateMarkdownInputSchema = exports.validateHtmlInputSchema = void 0;
|
|
4
4
|
const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
|
+
const session_pages_1 = require("../../lib/session-pages");
|
|
6
7
|
exports.validateHtmlInputSchema = zod_1.z.object({
|
|
7
8
|
html: zod_1.z.string().min(1).describe('HTML to validate'),
|
|
8
9
|
});
|
|
@@ -128,4 +129,26 @@ exports.validateMarkdownTool = {
|
|
|
128
129
|
execute: (input) => basicMarkdownValidation(input.markdown, input.path),
|
|
129
130
|
},
|
|
130
131
|
};
|
|
132
|
+
exports.auditHtmlQualityInputSchema = zod_1.z.object({
|
|
133
|
+
html: zod_1.z.string().min(1).describe('Full HTML page or fragment to audit'),
|
|
134
|
+
});
|
|
135
|
+
exports.auditHtmlQualityTool = {
|
|
136
|
+
type: ai_agent_types_1.AgentToolType.LOCAL_FUNCTION,
|
|
137
|
+
userConfigurable: true,
|
|
138
|
+
data: {
|
|
139
|
+
title: 'auditHtmlQuality',
|
|
140
|
+
needsApproval: false,
|
|
141
|
+
description: 'Audit generated HTML against page-quality rules (external images, placeholder copy, scheme-breaking colors, missing motion guards, unlabeled inputs). Run before publishing and fix findings.',
|
|
142
|
+
inputSchema: exports.auditHtmlQualityInputSchema,
|
|
143
|
+
outputSchema: zod_1.z.object({
|
|
144
|
+
clean: zod_1.z.boolean(),
|
|
145
|
+
findings: zod_1.z.array(zod_1.z.object({
|
|
146
|
+
rule: zod_1.z.string(),
|
|
147
|
+
severity: zod_1.z.enum(['error', 'warning']),
|
|
148
|
+
message: zod_1.z.string(),
|
|
149
|
+
})),
|
|
150
|
+
}),
|
|
151
|
+
execute: (input) => (0, session_pages_1.auditHtmlArtifact)(input.html),
|
|
152
|
+
},
|
|
153
|
+
};
|
|
131
154
|
//# sourceMappingURL=validate-artifact-content.tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-artifact-content.tools.js","sourceRoot":"","sources":["../../../src/agents/shared/validate-artifact-content.tools.ts"],"names":[],"mappings":";;;AACA,oEAA+D;AAC/D,6BAAuB;
|
|
1
|
+
{"version":3,"file":"validate-artifact-content.tools.js","sourceRoot":"","sources":["../../../src/agents/shared/validate-artifact-content.tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a11y.skill.d.ts","sourceRoot":"","sources":["../../../src/agents/skills/a11y.skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,eAAO,MAAM,SAAS,EAAE,eAkBvB,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.a11ySkill = void 0;
|
|
4
|
+
exports.a11ySkill = {
|
|
5
|
+
name: 'a11y',
|
|
6
|
+
description: 'Accessibility checklist applied before publishing any page',
|
|
7
|
+
whenToUse: 'Every UI/HTML page (auto-included with designer).',
|
|
8
|
+
instructions: `## a11y — bake into the single write
|
|
9
|
+
|
|
10
|
+
Incorporate these into the ONE publish/update call — do not iterate tool calls to satisfy the checklist:
|
|
11
|
+
|
|
12
|
+
1. Landmarks: exactly one <main>; site chrome in <header>/<nav>/<footer>; sections labelled via headings or aria-label.
|
|
13
|
+
2. Heading order: one <h1>; no skipped levels; headings describe content, not styling.
|
|
14
|
+
3. Contrast: body text ≥ 4.5:1, large text ≥ 3:1 against its actual background. Bright accent fills (#1DB954-class greens) need text-slate-950 (not text-white) OR a darker fill; bright accent text on white needs a darker accent shade.
|
|
15
|
+
4. Keyboard: everything clickable is a <button>/<a>/input; Esc closes dialogs; :focus-visible clearly visible.
|
|
16
|
+
5. Labels & names: every input has a <label>; icon-only buttons get aria-label; links make sense out of context.
|
|
17
|
+
6. Images/SVG: informative SVGs get role="img" + <title>; decorative ones aria-hidden="true".
|
|
18
|
+
7. State semantics: aria-selected / aria-expanded / aria-sort / role="status" where relevant.
|
|
19
|
+
8. Color is never the only signal — pair statuses with symbols or text.
|
|
20
|
+
9. Motion: animations disabled under prefers-reduced-motion.
|
|
21
|
+
10. Touch targets ≥ 44×44px on primary actions.`,
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=a11y.skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a11y.skill.js","sourceRoot":"","sources":["../../../src/agents/skills/a11y.skill.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAoB;IACxC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,4DAA4D;IACzE,SAAS,EAAE,mDAAmD;IAC9D,YAAY,EAAE;;;;;;;;;;;;;gDAagC;CAC/C,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AdditionalContext } from '@multiplayer-app/ai-agent-types';
|
|
2
|
+
import type { GenerationSkill } from './types';
|
|
3
|
+
/** Loads account-defined skills for the account in the agent context. */
|
|
4
|
+
export type AccountSkillLoader = (context?: AdditionalContext) => Promise<GenerationSkill[]>;
|
|
5
|
+
export declare function getContextAccountId(context?: AdditionalContext): string | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Default loader: reads the account's custom skills via the injected
|
|
8
|
+
* CustomSkillRepository. Resolves to [] when no repository is configured,
|
|
9
|
+
* no account is in context, or the lookup fails — generation must never
|
|
10
|
+
* break because custom skills are unavailable.
|
|
11
|
+
*/
|
|
12
|
+
export declare const loadAccountSkills: AccountSkillLoader;
|
|
13
|
+
//# sourceMappingURL=account-skill-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-skill-loader.d.ts","sourceRoot":"","sources":["../../../src/agents/skills/account-skill-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;AAE5F,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAGnF;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAqB/B,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadAccountSkills = void 0;
|
|
4
|
+
exports.getContextAccountId = getContextAccountId;
|
|
5
|
+
const context_1 = require("../../context");
|
|
6
|
+
const logger_1 = require("../../logger");
|
|
7
|
+
function getContextAccountId(context) {
|
|
8
|
+
var _a;
|
|
9
|
+
const accountId = (_a = context === null || context === void 0 ? void 0 : context.data) === null || _a === void 0 ? void 0 : _a.accountId;
|
|
10
|
+
return typeof accountId === 'string' && accountId ? accountId : undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Default loader: reads the account's custom skills via the injected
|
|
14
|
+
* CustomSkillRepository. Resolves to [] when no repository is configured,
|
|
15
|
+
* no account is in context, or the lookup fails — generation must never
|
|
16
|
+
* break because custom skills are unavailable.
|
|
17
|
+
*/
|
|
18
|
+
const loadAccountSkills = async (context) => {
|
|
19
|
+
const accountId = getContextAccountId(context);
|
|
20
|
+
if (!accountId) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const repository = (0, context_1.getBuilderApiContext)().customSkillRepository;
|
|
25
|
+
if (!repository) {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
const records = await repository.listByAccount(accountId);
|
|
29
|
+
return records.map((record) => ({
|
|
30
|
+
name: record.name,
|
|
31
|
+
description: record.description,
|
|
32
|
+
whenToUse: record.whenToUse,
|
|
33
|
+
instructions: record.instructions,
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
(0, logger_1.getBuilderApiLogger)().error({ err }, 'Failed to load account skills');
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.loadAccountSkills = loadAccountSkills;
|
|
42
|
+
//# sourceMappingURL=account-skill-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-skill-loader.js","sourceRoot":"","sources":["../../../src/agents/skills/account-skill-loader.ts"],"names":[],"mappings":";;;AAQA,kDAGC;AATD,2CAAoD;AACpD,yCAAkD;AAKlD,SAAgB,mBAAmB,CAAC,OAA2B;;IAC7D,MAAM,SAAS,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,SAAS,CAAA;IAC1C,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3E,CAAC;AAED;;;;;GAKG;AACI,MAAM,iBAAiB,GAAuB,KAAK,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,8BAAoB,GAAE,CAAC,qBAAqB,CAAA;QAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QACzD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC,CAAA;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,4BAAmB,GAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAA;QACrE,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AArBY,QAAA,iBAAiB,qBAqB7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-scaffold.skill.d.ts","sourceRoot":"","sources":["../../../src/agents/skills/app-scaffold.skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,eAAO,MAAM,gBAAgB,EAAE,eAyB9B,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.appScaffoldSkill = void 0;
|
|
4
|
+
exports.appScaffoldSkill = {
|
|
5
|
+
name: 'app-scaffold',
|
|
6
|
+
description: 'Build real multi-file apps in the session app workspace (VM) with writeAppFiles/runAppCommand',
|
|
7
|
+
whenToUse: 'The user wants an actual app or project — multiple source files, npm packages, build steps, a backend — beyond a single generated page.',
|
|
8
|
+
instructions: `## app-scaffold
|
|
9
|
+
|
|
10
|
+
When the request is an actual application (multi-file project, npm dependencies, build tooling, server code) target the session app workspace — an isolated per-session VM — instead of session artifacts.
|
|
11
|
+
|
|
12
|
+
### Tools
|
|
13
|
+
- writeAppFiles: write project files into the workspace (batched; workspace-relative paths). Static files are served at the returned previewUrl immediately.
|
|
14
|
+
- runAppCommand: run shell commands in the workspace (npm install, node scripts, builds). Check exitCode and stderr after every command; fix and retry on failure instead of reporting broken output.
|
|
15
|
+
- If these tools error that app workspaces are unavailable, fall back to session artifacts (publishSessionArtifacts) and say so.
|
|
16
|
+
|
|
17
|
+
### Workflow
|
|
18
|
+
1. Static-first: prefer a no-build project (index.html + ES modules + import maps for CDN deps) — it previews instantly and has no toolchain to break. Reach for a build step only when the request genuinely needs one.
|
|
19
|
+
2. Write ALL project files in one writeAppFiles call: entry index.html, source under src/, package.json when using npm.
|
|
20
|
+
3. When npm is needed: package.json with pinned versions → runAppCommand "npm install --no-audit --no-fund" → verify exitCode 0 → build if applicable → verify the output exists (ls dist).
|
|
21
|
+
4. Verify before reporting: runAppCommand a smoke check (node script, curl the built output, ls expected files). A non-zero exit or empty stderr-only result is NOT success.
|
|
22
|
+
5. Report the previewUrl and what was built. Keep docs (README.md) in the workspace too.
|
|
23
|
+
|
|
24
|
+
### Structure conventions
|
|
25
|
+
- index.html at the workspace root is the preview entry.
|
|
26
|
+
- src/ for modules, data/ for JSON fixtures, styles in a single stylesheet unless the project warrants more.
|
|
27
|
+
- package.json scripts: "build" and "start" when relevant; never rely on globally installed CLIs — use npx.
|
|
28
|
+
- All design/interaction/content skills still apply to the UI you produce inside the app.`,
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=app-scaffold.skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-scaffold.skill.js","sourceRoot":"","sources":["../../../src/agents/skills/app-scaffold.skill.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAoB;IAC/C,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,+FAA+F;IAC5G,SAAS,EAAE,yIAAyI;IACpJ,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;0FAoB0E;CACzF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copywriting.skill.d.ts","sourceRoot":"","sources":["../../../src/agents/skills/copywriting.skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,eAAO,MAAM,gBAAgB,EAAE,eA8B9B,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.copywritingSkill = void 0;
|
|
4
|
+
exports.copywritingSkill = {
|
|
5
|
+
name: 'copywriting',
|
|
6
|
+
description: 'Headlines, CTAs, microcopy, realistic sample content — no lorem ipsum',
|
|
7
|
+
whenToUse: 'User-facing pages where the words sell or guide: landing pages, product pages, dashboards with empty states, onboarding.',
|
|
8
|
+
instructions: `## copywriting
|
|
9
|
+
|
|
10
|
+
The words are part of the design. Generic copy makes a beautiful page feel like a template.
|
|
11
|
+
|
|
12
|
+
### Headlines
|
|
13
|
+
- Lead with the outcome, not the category: "Ship dashboards your team actually reads" beats "A Modern Dashboard Solution".
|
|
14
|
+
- One idea per headline, ≤10 words, no title-case-every-word; subhead (1-2 sentences) carries the how/what and names the audience.
|
|
15
|
+
- Ban template words: "Welcome to", "revolutionary", "seamless", "cutting-edge", "unleash", "empower", "solutions".
|
|
16
|
+
|
|
17
|
+
### CTAs
|
|
18
|
+
- Verb + outcome, 2-4 words: "Start free trial", "Book a demo", "See the numbers". Never "Submit", "Click here", or "Learn more" as the primary CTA ("Learn more" is fine only as a quiet text link).
|
|
19
|
+
- One primary CTA per view; the secondary is visually quieter (outline/ghost) and genuinely different in intent.
|
|
20
|
+
|
|
21
|
+
### Body & features
|
|
22
|
+
- Feature blurbs: benefit first, mechanism second — "Find any session in seconds. Full-text search across every recording." 2 sentences max.
|
|
23
|
+
- Concrete beats abstract: numbers, timeframes, named integrations. "Syncs in under 5s" beats "blazing fast".
|
|
24
|
+
- Sentence case everywhere, including buttons and nav.
|
|
25
|
+
|
|
26
|
+
### Microcopy
|
|
27
|
+
- Buttons say what happens next; loading states say what is happening ("Creating your workspace…"); confirmations say what happened and what is next.
|
|
28
|
+
- Empty states are onboarding: what this area will show + the action that fills it ("No sessions yet — start one from the dashboard"), never a bare "No data".
|
|
29
|
+
- Error messages: what went wrong + how to fix, no codes, no blame ("We couldn't save — check your connection and try again").
|
|
30
|
+
|
|
31
|
+
### Sample data (when the page needs content)
|
|
32
|
+
- Realistic and internally consistent: plausible names from varied cultures, real-looking companies/emails (use example.com domains), dates near today, metrics that add up and vary naturally (not 100/200/300).
|
|
33
|
+
- Match the domain: a sales dashboard shows deal names and quotas; a fitness app shows workouts and streaks. Never lorem ipsum, never "Item 1/Item 2/Item 3".`,
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=copywriting.skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copywriting.skill.js","sourceRoot":"","sources":["../../../src/agents/skills/copywriting.skill.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAoB;IAC/C,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,uEAAuE;IACpF,SAAS,EAAE,0HAA0H;IACrI,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;8JAyB8I;CAC7J,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** An account-defined generation skill (brand pack, house style, domain guide). */
|
|
2
|
+
export interface CustomSkillRecord {
|
|
3
|
+
skillId: string;
|
|
4
|
+
accountId: string;
|
|
5
|
+
/** Kebab-case identifier; may shadow a built-in skill to replace it account-wide. */
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
whenToUse: string;
|
|
9
|
+
instructions: string;
|
|
10
|
+
createdBy: string;
|
|
11
|
+
updatedBy: string;
|
|
12
|
+
createdAt: string;
|
|
13
|
+
updatedAt: string;
|
|
14
|
+
}
|
|
15
|
+
export interface CreateCustomSkillInput {
|
|
16
|
+
accountId: string;
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
whenToUse: string;
|
|
20
|
+
instructions: string;
|
|
21
|
+
createdBy: string;
|
|
22
|
+
}
|
|
23
|
+
export interface UpdateCustomSkillInput {
|
|
24
|
+
accountId: string;
|
|
25
|
+
skillId: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
whenToUse?: string;
|
|
29
|
+
instructions?: string;
|
|
30
|
+
updatedBy: string;
|
|
31
|
+
}
|
|
32
|
+
/** Implemented by the embedding host (like NotebookRepository); injected via createBuilderApi options. */
|
|
33
|
+
export interface CustomSkillRepository {
|
|
34
|
+
listByAccount(accountId: string): Promise<CustomSkillRecord[]>;
|
|
35
|
+
getById(accountId: string, skillId: string): Promise<CustomSkillRecord | null>;
|
|
36
|
+
create(input: CreateCustomSkillInput): Promise<CustomSkillRecord>;
|
|
37
|
+
update(input: UpdateCustomSkillInput): Promise<CustomSkillRecord | null>;
|
|
38
|
+
delete(accountId: string, skillId: string): Promise<boolean>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=custom-skill-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-skill-repository.d.ts","sourceRoot":"","sources":["../../../src/agents/skills/custom-skill-repository.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,0GAA0G;AAC1G,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC9D,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IAC9E,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACjE,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACxE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC7D"}
|