@ai-agent-forge/agent-forge 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5969 -0
- package/README.md +629 -0
- package/dist/artifacts/artifact-store.d.ts +51 -0
- package/dist/artifacts/artifact-store.d.ts.map +1 -0
- package/dist/artifacts/artifact-store.js +87 -0
- package/dist/artifacts/artifact-store.js.map +1 -0
- package/dist/artifacts/paged-read.d.ts +51 -0
- package/dist/artifacts/paged-read.d.ts.map +1 -0
- package/dist/artifacts/paged-read.js +55 -0
- package/dist/artifacts/paged-read.js.map +1 -0
- package/dist/bun/cli.d.ts +3 -0
- package/dist/bun/cli.d.ts.map +1 -0
- package/dist/bun/cli.js +11 -0
- package/dist/bun/cli.js.map +1 -0
- package/dist/bun/register-bedrock.d.ts +2 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -0
- package/dist/bun/register-bedrock.js +4 -0
- package/dist/bun/register-bedrock.js.map +1 -0
- package/dist/bun/restore-sandbox-env.d.ts +17 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +36 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/bundle/.build-manifest.json +3566 -0
- package/dist/bundle/chunks/anthropic-messages-RJYU4TCY.js +6 -0
- package/dist/bundle/chunks/anthropic.js +75 -0
- package/dist/bundle/chunks/azure-openai-responses-LESTCUL7.js +2 -0
- package/dist/bundle/chunks/bedrock-converse-stream.js +78 -0
- package/dist/bundle/chunks/chunk-3QKHSPQL.js +8 -0
- package/dist/bundle/chunks/chunk-4L3WN2XY.js +2 -0
- package/dist/bundle/chunks/chunk-4NKZMFSZ.js +1579 -0
- package/dist/bundle/chunks/chunk-6CYCI3EJ.js +12 -0
- package/dist/bundle/chunks/chunk-6R7UI4IY.js +2 -0
- package/dist/bundle/chunks/chunk-7ZC4UXSL.js +2 -0
- package/dist/bundle/chunks/chunk-7ZY7IXZD.js +4 -0
- package/dist/bundle/chunks/chunk-DRQDKNXA.js +2 -0
- package/dist/bundle/chunks/chunk-DTD7JQ7Y.js +42 -0
- package/dist/bundle/chunks/chunk-EWXX34QG.js +2 -0
- package/dist/bundle/chunks/chunk-GMWCTUPB.js +2 -0
- package/dist/bundle/chunks/chunk-JUUC5AZY.js +2 -0
- package/dist/bundle/chunks/chunk-KQEGUM34.js +2 -0
- package/dist/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
- package/dist/bundle/chunks/chunk-MDOTREMR.js +11 -0
- package/dist/bundle/chunks/chunk-NUHFSC37.js +25 -0
- package/dist/bundle/chunks/chunk-PGXDEOVV.js +2 -0
- package/dist/bundle/chunks/chunk-PJACZCIR.js +2 -0
- package/dist/bundle/chunks/chunk-PRRNXB7S.js +2 -0
- package/dist/bundle/chunks/chunk-SER2HCLE.js +38 -0
- package/dist/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
- package/dist/bundle/chunks/chunk-V46XUTK3.js +2 -0
- package/dist/bundle/chunks/chunk-WGLBM2BP.js +2 -0
- package/dist/bundle/chunks/chunk-WW3LMV3F.js +2 -0
- package/dist/bundle/chunks/chunk-XDUWOHPL.js +6 -0
- package/dist/bundle/chunks/github-copilot.js +2 -0
- package/dist/bundle/chunks/google-generative-ai-NZ66X6K7.js +2 -0
- package/dist/bundle/chunks/google-vertex-2ZZOFBNQ.js +2 -0
- package/dist/bundle/chunks/https-proxy-agent-UDEHOBGS.js +13 -0
- package/dist/bundle/chunks/image-resize-worker.js +2 -0
- package/dist/bundle/chunks/kimi-coding.js +2 -0
- package/dist/bundle/chunks/lib-HGQMNYVT.js +9 -0
- package/dist/bundle/chunks/mistral-conversations-B6DZRMEK.js +5 -0
- package/dist/bundle/chunks/multipart-parser-SQ6GDJL7.js +3 -0
- package/dist/bundle/chunks/node-O3RIBJRH.js +16 -0
- package/dist/bundle/chunks/node-TWVVAGPO.js +2 -0
- package/dist/bundle/chunks/openai-codex-responses-UFH6O5K6.js +10 -0
- package/dist/bundle/chunks/openai-codex.js +75 -0
- package/dist/bundle/chunks/openai-completions-A55GHA4O.js +7 -0
- package/dist/bundle/chunks/openai-responses-TJLXRAXR.js +2 -0
- package/dist/bundle/chunks/openrouter-images-G3GT5BVT.js +2 -0
- package/dist/bundle/chunks/openrouter.js +75 -0
- package/dist/bundle/chunks/pi-messages-SLF355GF.js +8 -0
- package/dist/bundle/chunks/radius.js +75 -0
- package/dist/bundle/chunks/src-UK77SYZE.js +4 -0
- package/dist/bundle/chunks/xai.js +2 -0
- package/dist/bundle/cli.js +3 -0
- package/dist/bundle/client.js +2 -0
- package/dist/bundle/index.js +8 -0
- package/dist/bundle/rpc-entry.js +3 -0
- package/dist/capabilities/builtin.d.ts +46 -0
- package/dist/capabilities/builtin.d.ts.map +1 -0
- package/dist/capabilities/builtin.js +68 -0
- package/dist/capabilities/builtin.js.map +1 -0
- package/dist/cli/args.d.ts +102 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +712 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/auth-check.d.ts +19 -0
- package/dist/cli/auth-check.d.ts.map +1 -0
- package/dist/cli/auth-check.js +50 -0
- package/dist/cli/auth-check.js.map +1 -0
- package/dist/cli/auth-command.d.ts +24 -0
- package/dist/cli/auth-command.d.ts.map +1 -0
- package/dist/cli/auth-command.js +102 -0
- package/dist/cli/auth-command.js.map +1 -0
- package/dist/cli/config-selector.d.ts +23 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +51 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/credential-print.d.ts +13 -0
- package/dist/cli/credential-print.d.ts.map +1 -0
- package/dist/cli/credential-print.js +76 -0
- package/dist/cli/credential-print.js.map +1 -0
- package/dist/cli/experimental/auth.d.ts +16 -0
- package/dist/cli/experimental/auth.d.ts.map +1 -0
- package/dist/cli/experimental/auth.js +13 -0
- package/dist/cli/experimental/auth.js.map +1 -0
- package/dist/cli/experimental/cli.d.ts +6 -0
- package/dist/cli/experimental/cli.d.ts.map +1 -0
- package/dist/cli/experimental/cli.js +5 -0
- package/dist/cli/experimental/cli.js.map +1 -0
- package/dist/cli/experimental/command-options.d.ts +17 -0
- package/dist/cli/experimental/command-options.d.ts.map +1 -0
- package/dist/cli/experimental/command-options.js +35 -0
- package/dist/cli/experimental/command-options.js.map +1 -0
- package/dist/cli/experimental/command.d.ts +63 -0
- package/dist/cli/experimental/command.d.ts.map +1 -0
- package/dist/cli/experimental/command.js +130 -0
- package/dist/cli/experimental/command.js.map +1 -0
- package/dist/cli/experimental/commands/client.d.ts +13 -0
- package/dist/cli/experimental/commands/client.d.ts.map +1 -0
- package/dist/cli/experimental/commands/client.js +25 -0
- package/dist/cli/experimental/commands/client.js.map +1 -0
- package/dist/cli/experimental/commands/pi.d.ts +15 -0
- package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
- package/dist/cli/experimental/commands/pi.js +26 -0
- package/dist/cli/experimental/commands/pi.js.map +1 -0
- package/dist/cli/experimental/commands/server.d.ts +13 -0
- package/dist/cli/experimental/commands/server.d.ts.map +1 -0
- package/dist/cli/experimental/commands/server.js +25 -0
- package/dist/cli/experimental/commands/server.js.map +1 -0
- package/dist/cli/experimental/transport-address.d.ts +10 -0
- package/dist/cli/experimental/transport-address.d.ts.map +1 -0
- package/dist/cli/experimental/transport-address.js +38 -0
- package/dist/cli/experimental/transport-address.js.map +1 -0
- package/dist/cli/file-processor.d.ts +15 -0
- package/dist/cli/file-processor.d.ts.map +1 -0
- package/dist/cli/file-processor.js +71 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/initial-message.d.ts +18 -0
- package/dist/cli/initial-message.d.ts.map +1 -0
- package/dist/cli/initial-message.js +22 -0
- package/dist/cli/initial-message.js.map +1 -0
- package/dist/cli/list-models.d.ts +9 -0
- package/dist/cli/list-models.d.ts.map +1 -0
- package/dist/cli/list-models.js +98 -0
- package/dist/cli/list-models.js.map +1 -0
- package/dist/cli/plugin-command.d.ts +50 -0
- package/dist/cli/plugin-command.d.ts.map +1 -0
- package/dist/cli/plugin-command.js +85 -0
- package/dist/cli/plugin-command.js.map +1 -0
- package/dist/cli/plugin-manager-controller.d.ts +59 -0
- package/dist/cli/plugin-manager-controller.d.ts.map +1 -0
- package/dist/cli/plugin-manager-controller.js +183 -0
- package/dist/cli/plugin-manager-controller.js.map +1 -0
- package/dist/cli/plugin-selection-controller.d.ts +57 -0
- package/dist/cli/plugin-selection-controller.d.ts.map +1 -0
- package/dist/cli/plugin-selection-controller.js +159 -0
- package/dist/cli/plugin-selection-controller.js.map +1 -0
- package/dist/cli/serve.d.ts +39 -0
- package/dist/cli/serve.d.ts.map +1 -0
- package/dist/cli/serve.js +124 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/cli/session-picker.d.ts +30 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +62 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli/startup-ui.d.ts +20 -0
- package/dist/cli/startup-ui.d.ts.map +1 -0
- package/dist/cli/startup-ui.js +185 -0
- package/dist/cli/startup-ui.js.map +1 -0
- package/dist/cli/trace-view.d.ts +86 -0
- package/dist/cli/trace-view.d.ts.map +1 -0
- package/dist/cli/trace-view.js +263 -0
- package/dist/cli/trace-view.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +19 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/remote-session.d.ts +53 -0
- package/dist/client/remote-session.d.ts.map +1 -0
- package/dist/client/remote-session.js +340 -0
- package/dist/client/remote-session.js.map +1 -0
- package/dist/client/transcript.d.ts +12 -0
- package/dist/client/transcript.d.ts.map +1 -0
- package/dist/client/transcript.js +98 -0
- package/dist/client/transcript.js.map +1 -0
- package/dist/config.d.ts +95 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +459 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-capability-contract.d.ts +322 -0
- package/dist/core/agent-capability-contract.d.ts.map +1 -0
- package/dist/core/agent-capability-contract.js +1154 -0
- package/dist/core/agent-capability-contract.js.map +1 -0
- package/dist/core/agent-session-bash.d.ts +51 -0
- package/dist/core/agent-session-bash.d.ts.map +1 -0
- package/dist/core/agent-session-bash.js +138 -0
- package/dist/core/agent-session-bash.js.map +1 -0
- package/dist/core/agent-session-compaction.d.ts +188 -0
- package/dist/core/agent-session-compaction.d.ts.map +1 -0
- package/dist/core/agent-session-compaction.js +1071 -0
- package/dist/core/agent-session-compaction.js.map +1 -0
- package/dist/core/agent-session-context.d.ts +43 -0
- package/dist/core/agent-session-context.d.ts.map +1 -0
- package/dist/core/agent-session-context.js +170 -0
- package/dist/core/agent-session-context.js.map +1 -0
- package/dist/core/agent-session-extensions.d.ts +30 -0
- package/dist/core/agent-session-extensions.d.ts.map +1 -0
- package/dist/core/agent-session-extensions.js +74 -0
- package/dist/core/agent-session-extensions.js.map +1 -0
- package/dist/core/agent-session-internal.d.ts +290 -0
- package/dist/core/agent-session-internal.d.ts.map +1 -0
- package/dist/core/agent-session-internal.js +40 -0
- package/dist/core/agent-session-internal.js.map +1 -0
- package/dist/core/agent-session-lifecycle.d.ts +242 -0
- package/dist/core/agent-session-lifecycle.d.ts.map +1 -0
- package/dist/core/agent-session-lifecycle.js +699 -0
- package/dist/core/agent-session-lifecycle.js.map +1 -0
- package/dist/core/agent-session-loop-runner.d.ts +52 -0
- package/dist/core/agent-session-loop-runner.d.ts.map +1 -0
- package/dist/core/agent-session-loop-runner.js +168 -0
- package/dist/core/agent-session-loop-runner.js.map +1 -0
- package/dist/core/agent-session-loop.d.ts +39 -0
- package/dist/core/agent-session-loop.d.ts.map +1 -0
- package/dist/core/agent-session-loop.js +155 -0
- package/dist/core/agent-session-loop.js.map +1 -0
- package/dist/core/agent-session-model.d.ts +49 -0
- package/dist/core/agent-session-model.d.ts.map +1 -0
- package/dist/core/agent-session-model.js +155 -0
- package/dist/core/agent-session-model.js.map +1 -0
- package/dist/core/agent-session-paths.d.ts +3 -0
- package/dist/core/agent-session-paths.d.ts.map +1 -0
- package/dist/core/agent-session-paths.js +14 -0
- package/dist/core/agent-session-paths.js.map +1 -0
- package/dist/core/agent-session-projection.d.ts +53 -0
- package/dist/core/agent-session-projection.d.ts.map +1 -0
- package/dist/core/agent-session-projection.js +195 -0
- package/dist/core/agent-session-projection.js.map +1 -0
- package/dist/core/agent-session-retry.d.ts +28 -0
- package/dist/core/agent-session-retry.d.ts.map +1 -0
- package/dist/core/agent-session-retry.js +141 -0
- package/dist/core/agent-session-retry.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts +181 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/core/agent-session-runtime.js +297 -0
- package/dist/core/agent-session-runtime.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +281 -0
- package/dist/core/agent-session-services.d.ts.map +1 -0
- package/dist/core/agent-session-services.js +680 -0
- package/dist/core/agent-session-services.js.map +1 -0
- package/dist/core/agent-session-store.d.ts +47 -0
- package/dist/core/agent-session-store.d.ts.map +1 -0
- package/dist/core/agent-session-store.js +155 -0
- package/dist/core/agent-session-store.js.map +1 -0
- package/dist/core/agent-session-tools.d.ts +36 -0
- package/dist/core/agent-session-tools.d.ts.map +1 -0
- package/dist/core/agent-session-tools.js +305 -0
- package/dist/core/agent-session-tools.js.map +1 -0
- package/dist/core/agent-session.d.ts +1156 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +2550 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-guidance.d.ts +5 -0
- package/dist/core/auth-guidance.d.ts.map +1 -0
- package/dist/core/auth-guidance.js +21 -0
- package/dist/core/auth-guidance.js.map +1 -0
- package/dist/core/auth-storage.d.ts +72 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +426 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +32 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +111 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/cache-stats.d.ts +49 -0
- package/dist/core/cache-stats.d.ts.map +1 -0
- package/dist/core/cache-stats.js +101 -0
- package/dist/core/cache-stats.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +88 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +220 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +178 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +608 -0
- package/dist/core/compaction/compaction.js.map +1 -0
- package/dist/core/compaction/index.d.ts +7 -0
- package/dist/core/compaction/index.d.ts.map +1 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/index.js.map +1 -0
- package/dist/core/compaction/utils.d.ts +49 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +170 -0
- package/dist/core/compaction/utils.js.map +1 -0
- package/dist/core/defaults.d.ts +4 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +11 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/embedded-sdk.d.ts +96 -0
- package/dist/core/embedded-sdk.d.ts.map +1 -0
- package/dist/core/embedded-sdk.js +395 -0
- package/dist/core/embedded-sdk.js.map +1 -0
- package/dist/core/event-bus.d.ts +9 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/exec.d.ts +29 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +75 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/experimental.d.ts +2 -0
- package/dist/core/experimental.d.ts.map +1 -0
- package/dist/core/experimental.js +6 -0
- package/dist/core/experimental.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/core/export-html/ansi-to-html.js +249 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/core/export-html/index.d.ts +37 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +226 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1864 -0
- package/dist/core/export-html/tool-renderer.d.ts +34 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +108 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +78 -0
- package/dist/core/extensions/agent-composition.d.ts +67 -0
- package/dist/core/extensions/agent-composition.d.ts.map +1 -0
- package/dist/core/extensions/agent-composition.js +785 -0
- package/dist/core/extensions/agent-composition.js.map +1 -0
- package/dist/core/extensions/bootstrap-agent-loop.d.ts +203 -0
- package/dist/core/extensions/bootstrap-agent-loop.d.ts.map +1 -0
- package/dist/core/extensions/bootstrap-agent-loop.js +565 -0
- package/dist/core/extensions/bootstrap-agent-loop.js.map +1 -0
- package/dist/core/extensions/bootstrap-branch-summary-policy.d.ts +7 -0
- package/dist/core/extensions/bootstrap-branch-summary-policy.d.ts.map +1 -0
- package/dist/core/extensions/bootstrap-branch-summary-policy.js +28 -0
- package/dist/core/extensions/bootstrap-branch-summary-policy.js.map +1 -0
- package/dist/core/extensions/bootstrap-compaction-policy.d.ts +7 -0
- package/dist/core/extensions/bootstrap-compaction-policy.d.ts.map +1 -0
- package/dist/core/extensions/bootstrap-compaction-policy.js +81 -0
- package/dist/core/extensions/bootstrap-compaction-policy.js.map +1 -0
- package/dist/core/extensions/bootstrap-lifecycle.d.ts +26 -0
- package/dist/core/extensions/bootstrap-lifecycle.d.ts.map +1 -0
- package/dist/core/extensions/bootstrap-lifecycle.js +181 -0
- package/dist/core/extensions/bootstrap-lifecycle.js.map +1 -0
- package/dist/core/extensions/bootstrap-overflow-policy.d.ts +7 -0
- package/dist/core/extensions/bootstrap-overflow-policy.d.ts.map +1 -0
- package/dist/core/extensions/bootstrap-overflow-policy.js +29 -0
- package/dist/core/extensions/bootstrap-overflow-policy.js.map +1 -0
- package/dist/core/extensions/bootstrap-retry-policy.d.ts +7 -0
- package/dist/core/extensions/bootstrap-retry-policy.d.ts.map +1 -0
- package/dist/core/extensions/bootstrap-retry-policy.js +28 -0
- package/dist/core/extensions/bootstrap-retry-policy.js.map +1 -0
- package/dist/core/extensions/bootstrap-skills.d.ts +16 -0
- package/dist/core/extensions/bootstrap-skills.d.ts.map +1 -0
- package/dist/core/extensions/bootstrap-skills.js +119 -0
- package/dist/core/extensions/bootstrap-skills.js.map +1 -0
- package/dist/core/extensions/bootstrap-tools.d.ts +20 -0
- package/dist/core/extensions/bootstrap-tools.d.ts.map +1 -0
- package/dist/core/extensions/bootstrap-tools.js +35 -0
- package/dist/core/extensions/bootstrap-tools.js.map +1 -0
- package/dist/core/extensions/capability-exports.d.ts +5 -0
- package/dist/core/extensions/capability-exports.d.ts.map +1 -0
- package/dist/core/extensions/capability-exports.js +4 -0
- package/dist/core/extensions/capability-exports.js.map +1 -0
- package/dist/core/extensions/capability-plugin.d.ts +69 -0
- package/dist/core/extensions/capability-plugin.d.ts.map +1 -0
- package/dist/core/extensions/capability-plugin.js +485 -0
- package/dist/core/extensions/capability-plugin.js.map +1 -0
- package/dist/core/extensions/capability-runtime-events.d.ts +22 -0
- package/dist/core/extensions/capability-runtime-events.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-events.js +381 -0
- package/dist/core/extensions/capability-runtime-events.js.map +1 -0
- package/dist/core/extensions/capability-runtime-guards.d.ts +93 -0
- package/dist/core/extensions/capability-runtime-guards.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-guards.js +800 -0
- package/dist/core/extensions/capability-runtime-guards.js.map +1 -0
- package/dist/core/extensions/capability-runtime-inspect.d.ts +12 -0
- package/dist/core/extensions/capability-runtime-inspect.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-inspect.js +106 -0
- package/dist/core/extensions/capability-runtime-inspect.js.map +1 -0
- package/dist/core/extensions/capability-runtime-manifest.d.ts +19 -0
- package/dist/core/extensions/capability-runtime-manifest.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-manifest.js +218 -0
- package/dist/core/extensions/capability-runtime-manifest.js.map +1 -0
- package/dist/core/extensions/capability-runtime-operation.d.ts +26 -0
- package/dist/core/extensions/capability-runtime-operation.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-operation.js +88 -0
- package/dist/core/extensions/capability-runtime-operation.js.map +1 -0
- package/dist/core/extensions/capability-runtime-snapshot.d.ts +11 -0
- package/dist/core/extensions/capability-runtime-snapshot.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-snapshot.js +81 -0
- package/dist/core/extensions/capability-runtime-snapshot.js.map +1 -0
- package/dist/core/extensions/capability-runtime-store.d.ts +34 -0
- package/dist/core/extensions/capability-runtime-store.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-store.js +153 -0
- package/dist/core/extensions/capability-runtime-store.js.map +1 -0
- package/dist/core/extensions/capability-runtime-tool.d.ts +10 -0
- package/dist/core/extensions/capability-runtime-tool.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-tool.js +10 -0
- package/dist/core/extensions/capability-runtime-tool.js.map +1 -0
- package/dist/core/extensions/capability-runtime-types.d.ts +303 -0
- package/dist/core/extensions/capability-runtime-types.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-types.js +2 -0
- package/dist/core/extensions/capability-runtime-types.js.map +1 -0
- package/dist/core/extensions/capability-runtime-validation.d.ts +35 -0
- package/dist/core/extensions/capability-runtime-validation.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime-validation.js +380 -0
- package/dist/core/extensions/capability-runtime-validation.js.map +1 -0
- package/dist/core/extensions/capability-runtime.d.ts +7 -0
- package/dist/core/extensions/capability-runtime.d.ts.map +1 -0
- package/dist/core/extensions/capability-runtime.js +2170 -0
- package/dist/core/extensions/capability-runtime.js.map +1 -0
- package/dist/core/extensions/compaction-memory-failure-mode.d.ts +43 -0
- package/dist/core/extensions/compaction-memory-failure-mode.d.ts.map +1 -0
- package/dist/core/extensions/compaction-memory-failure-mode.js +31 -0
- package/dist/core/extensions/compaction-memory-failure-mode.js.map +1 -0
- package/dist/core/extensions/context-strategy-binding.d.ts +12 -0
- package/dist/core/extensions/context-strategy-binding.d.ts.map +1 -0
- package/dist/core/extensions/context-strategy-binding.js +54 -0
- package/dist/core/extensions/context-strategy-binding.js.map +1 -0
- package/dist/core/extensions/index.d.ts +19 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/index.js +18 -0
- package/dist/core/extensions/index.js.map +1 -0
- package/dist/core/extensions/lifecycle-catalog.d.ts +584 -0
- package/dist/core/extensions/lifecycle-catalog.d.ts.map +1 -0
- package/dist/core/extensions/lifecycle-catalog.js +1903 -0
- package/dist/core/extensions/lifecycle-catalog.js.map +1 -0
- package/dist/core/extensions/lifecycle-delivery-queue.d.ts +48 -0
- package/dist/core/extensions/lifecycle-delivery-queue.d.ts.map +1 -0
- package/dist/core/extensions/lifecycle-delivery-queue.js +164 -0
- package/dist/core/extensions/lifecycle-delivery-queue.js.map +1 -0
- package/dist/core/extensions/microcompact.d.ts +71 -0
- package/dist/core/extensions/microcompact.d.ts.map +1 -0
- package/dist/core/extensions/microcompact.js +123 -0
- package/dist/core/extensions/microcompact.js.map +1 -0
- package/dist/core/extensions/public-api.d.ts +10 -0
- package/dist/core/extensions/public-api.d.ts.map +1 -0
- package/dist/core/extensions/public-api.js +9 -0
- package/dist/core/extensions/public-api.js.map +1 -0
- package/dist/core/facade/coding-agent-facade.d.ts +338 -0
- package/dist/core/facade/coding-agent-facade.d.ts.map +1 -0
- package/dist/core/facade/coding-agent-facade.js +115 -0
- package/dist/core/facade/coding-agent-facade.js.map +1 -0
- package/dist/core/facade/coding-agent-runtime-facade.d.ts +115 -0
- package/dist/core/facade/coding-agent-runtime-facade.d.ts.map +1 -0
- package/dist/core/facade/coding-agent-runtime-facade.js +63 -0
- package/dist/core/facade/coding-agent-runtime-facade.js.map +1 -0
- package/dist/core/facade/index.d.ts +6 -0
- package/dist/core/facade/index.d.ts.map +1 -0
- package/dist/core/facade/index.js +3 -0
- package/dist/core/facade/index.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +57 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +323 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/http-dispatcher.d.ts +22 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -0
- package/dist/core/http-dispatcher.js +98 -0
- package/dist/core/http-dispatcher.js.map +1 -0
- package/dist/core/index.d.ts +19 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/input-source.d.ts +9 -0
- package/dist/core/input-source.d.ts.map +1 -0
- package/dist/core/input-source.js +2 -0
- package/dist/core/input-source.js.map +1 -0
- package/dist/core/keybindings.d.ts +442 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +329 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/logger.d.ts +107 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +246 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/messages.d.ts +85 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +146 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-config.d.ts +586 -0
- package/dist/core/model-config.d.ts.map +1 -0
- package/dist/core/model-config.js +258 -0
- package/dist/core/model-config.js.map +1 -0
- package/dist/core/model-registry.d.ts +49 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +115 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +124 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +590 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/model-runtime.d.ts +100 -0
- package/dist/core/model-runtime.d.ts.map +1 -0
- package/dist/core/model-runtime.js +598 -0
- package/dist/core/model-runtime.js.map +1 -0
- package/dist/core/models-store.d.ts +22 -0
- package/dist/core/models-store.d.ts.map +1 -0
- package/dist/core/models-store.js +115 -0
- package/dist/core/models-store.js.map +1 -0
- package/dist/core/output-guard.d.ts +7 -0
- package/dist/core/output-guard.d.ts.map +1 -0
- package/dist/core/output-guard.js +90 -0
- package/dist/core/output-guard.js.map +1 -0
- package/dist/core/package-install-host.d.ts +23 -0
- package/dist/core/package-install-host.d.ts.map +1 -0
- package/dist/core/package-install-host.js +202 -0
- package/dist/core/package-install-host.js.map +1 -0
- package/dist/core/package-manager.d.ts +93 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +947 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/package-process-runner.d.ts +4 -0
- package/dist/core/package-process-runner.d.ts.map +1 -0
- package/dist/core/package-process-runner.js +47 -0
- package/dist/core/package-process-runner.js.map +1 -0
- package/dist/core/package-resource-collection.d.ts +16 -0
- package/dist/core/package-resource-collection.d.ts.map +1 -0
- package/dist/core/package-resource-collection.js +300 -0
- package/dist/core/package-resource-collection.js.map +1 -0
- package/dist/core/package-resource-discovery.d.ts +33 -0
- package/dist/core/package-resource-discovery.d.ts.map +1 -0
- package/dist/core/package-resource-discovery.js +449 -0
- package/dist/core/package-resource-discovery.js.map +1 -0
- package/dist/core/package-source.d.ts +157 -0
- package/dist/core/package-source.d.ts.map +1 -0
- package/dist/core/package-source.js +179 -0
- package/dist/core/package-source.js.map +1 -0
- package/dist/core/pi-manifest.d.ts +7 -0
- package/dist/core/pi-manifest.d.ts.map +1 -0
- package/dist/core/pi-manifest.js +26 -0
- package/dist/core/pi-manifest.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +54 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +236 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/provider-composer.d.ts +58 -0
- package/dist/core/provider-composer.d.ts.map +1 -0
- package/dist/core/provider-composer.js +403 -0
- package/dist/core/provider-composer.js.map +1 -0
- package/dist/core/radius.d.ts +2 -0
- package/dist/core/radius.d.ts.map +1 -0
- package/dist/core/radius.js +2 -0
- package/dist/core/radius.js.map +1 -0
- package/dist/core/remote-catalog-provider.d.ts +5 -0
- package/dist/core/remote-catalog-provider.d.ts.map +1 -0
- package/dist/core/remote-catalog-provider.js +121 -0
- package/dist/core/remote-catalog-provider.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +30 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +247 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +211 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +687 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/runtime-credentials.d.ts +15 -0
- package/dist/core/runtime-credentials.d.ts.map +1 -0
- package/dist/core/runtime-credentials.js +39 -0
- package/dist/core/runtime-credentials.js.map +1 -0
- package/dist/core/sdk.d.ts +395 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +1112 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/session-cwd.d.ts +19 -0
- package/dist/core/session-cwd.d.ts.map +1 -0
- package/dist/core/session-cwd.js +38 -0
- package/dist/core/session-cwd.js.map +1 -0
- package/dist/core/session-export.d.ts +7 -0
- package/dist/core/session-export.d.ts.map +1 -0
- package/dist/core/session-export.js +48 -0
- package/dist/core/session-export.js.map +1 -0
- package/dist/core/session-manager.d.ts +463 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1583 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/session-start.d.ts +12 -0
- package/dist/core/session-start.d.ts.map +1 -0
- package/dist/core/session-start.js +2 -0
- package/dist/core/session-start.js.map +1 -0
- package/dist/core/session-storage.d.ts +130 -0
- package/dist/core/session-storage.d.ts.map +1 -0
- package/dist/core/session-storage.js +386 -0
- package/dist/core/session-storage.js.map +1 -0
- package/dist/core/settings-diagnostics.d.ts +9 -0
- package/dist/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/core/settings-diagnostics.js +21 -0
- package/dist/core/settings-diagnostics.js.map +1 -0
- package/dist/core/settings-manager.d.ts +352 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +987 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +60 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +382 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +15 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +33 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/source-info.d.ts +18 -0
- package/dist/core/source-info.d.ts.map +1 -0
- package/dist/core/source-info.js +19 -0
- package/dist/core/source-info.js.map +1 -0
- package/dist/core/system-prompt.d.ts +8 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +137 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/timings.d.ts +11 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +46 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +87 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +409 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +110 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +425 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +55 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +305 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-queue.js +52 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -0
- package/dist/core/tools/find.d.ts +42 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +303 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +41 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +309 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +44 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +129 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +41 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +173 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/output-accumulator.d.ts +52 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +184 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +10 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +99 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/powershell.d.ts +16 -0
- package/dist/core/tools/powershell.d.ts.map +1 -0
- package/dist/core/tools/powershell.js +39 -0
- package/dist/core/tools/powershell.js.map +1 -0
- package/dist/core/tools/read.d.ts +39 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +282 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +24 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +65 -0
- package/dist/core/tools/render-utils.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +15 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.js +36 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
- package/dist/core/tools/tool-definition.d.ts +123 -0
- package/dist/core/tools/tool-definition.d.ts.map +1 -0
- package/dist/core/tools/tool-definition.js +20 -0
- package/dist/core/tools/tool-definition.js.map +1 -0
- package/dist/core/tools/tool-search.d.ts +30 -0
- package/dist/core/tools/tool-search.d.ts.map +1 -0
- package/dist/core/tools/tool-search.js +99 -0
- package/dist/core/tools/tool-search.js.map +1 -0
- package/dist/core/tools/truncate.d.ts +70 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +215 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/write.d.ts +30 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +202 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/core/trace-retention.d.ts +19 -0
- package/dist/core/trace-retention.d.ts.map +1 -0
- package/dist/core/trace-retention.js +91 -0
- package/dist/core/trace-retention.js.map +1 -0
- package/dist/core/usage-totals.d.ts +21 -0
- package/dist/core/usage-totals.d.ts.map +1 -0
- package/dist/core/usage-totals.js +53 -0
- package/dist/core/usage-totals.js.map +1 -0
- package/dist/durable/durable-service.d.ts +136 -0
- package/dist/durable/durable-service.d.ts.map +1 -0
- package/dist/durable/durable-service.js +710 -0
- package/dist/durable/durable-service.js.map +1 -0
- package/dist/e2e/stdio-launcher.d.ts +25 -0
- package/dist/e2e/stdio-launcher.d.ts.map +1 -0
- package/dist/e2e/stdio-launcher.js +244 -0
- package/dist/e2e/stdio-launcher.js.map +1 -0
- package/dist/host/agent-retry-scheduler.d.ts +65 -0
- package/dist/host/agent-retry-scheduler.d.ts.map +1 -0
- package/dist/host/agent-retry-scheduler.js +52 -0
- package/dist/host/agent-retry-scheduler.js.map +1 -0
- package/dist/host/auto-compaction.d.ts +56 -0
- package/dist/host/auto-compaction.d.ts.map +1 -0
- package/dist/host/auto-compaction.js +62 -0
- package/dist/host/auto-compaction.js.map +1 -0
- package/dist/host/branch-reload.d.ts +56 -0
- package/dist/host/branch-reload.d.ts.map +1 -0
- package/dist/host/branch-reload.js +39 -0
- package/dist/host/branch-reload.js.map +1 -0
- package/dist/host/channel-adapter.d.ts +25 -0
- package/dist/host/channel-adapter.d.ts.map +1 -0
- package/dist/host/channel-adapter.js +45 -0
- package/dist/host/channel-adapter.js.map +1 -0
- package/dist/host/checkpoint-commit.d.ts +74 -0
- package/dist/host/checkpoint-commit.d.ts.map +1 -0
- package/dist/host/checkpoint-commit.js +76 -0
- package/dist/host/checkpoint-commit.js.map +1 -0
- package/dist/host/manual-compaction.d.ts +43 -0
- package/dist/host/manual-compaction.d.ts.map +1 -0
- package/dist/host/manual-compaction.js +63 -0
- package/dist/host/manual-compaction.js.map +1 -0
- package/dist/host/output-projection.d.ts +61 -0
- package/dist/host/output-projection.d.ts.map +1 -0
- package/dist/host/output-projection.js +74 -0
- package/dist/host/output-projection.js.map +1 -0
- package/dist/host/output-reducer.d.ts +43 -0
- package/dist/host/output-reducer.d.ts.map +1 -0
- package/dist/host/output-reducer.js +77 -0
- package/dist/host/output-reducer.js.map +1 -0
- package/dist/host/output-serializer.d.ts +31 -0
- package/dist/host/output-serializer.d.ts.map +1 -0
- package/dist/host/output-serializer.js +120 -0
- package/dist/host/output-serializer.js.map +1 -0
- package/dist/host/overflow-recovery.d.ts +55 -0
- package/dist/host/overflow-recovery.d.ts.map +1 -0
- package/dist/host/overflow-recovery.js +89 -0
- package/dist/host/overflow-recovery.js.map +1 -0
- package/dist/host/retry-common.d.ts +29 -0
- package/dist/host/retry-common.d.ts.map +1 -0
- package/dist/host/retry-common.js +12 -0
- package/dist/host/retry-common.js.map +1 -0
- package/dist/host/session-event-translation.d.ts +26 -0
- package/dist/host/session-event-translation.d.ts.map +1 -0
- package/dist/host/session-event-translation.js +61 -0
- package/dist/host/session-event-translation.js.map +1 -0
- package/dist/host/summary-retry.d.ts +54 -0
- package/dist/host/summary-retry.d.ts.map +1 -0
- package/dist/host/summary-retry.js +66 -0
- package/dist/host/summary-retry.js.map +1 -0
- package/dist/index.d.ts +105 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +176 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +36 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +1630 -0
- package/dist/main.js.map +1 -0
- package/dist/migration/migration-tool.d.ts +56 -0
- package/dist/migration/migration-tool.d.ts.map +1 -0
- package/dist/migration/migration-tool.js +72 -0
- package/dist/migration/migration-tool.js.map +1 -0
- package/dist/migrations.d.ts +33 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +272 -0
- package/dist/migrations.js.map +1 -0
- package/dist/modes/index.d.ts +10 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +8 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/components/armin.d.ts +34 -0
- package/dist/modes/interactive/components/armin.d.ts.map +1 -0
- package/dist/modes/interactive/components/armin.js +336 -0
- package/dist/modes/interactive/components/armin.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +25 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +151 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +176 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.js +56 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.js +44 -0
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts +113 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +857 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +19 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-editor.js +71 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-entry.js +52 -0
- package/dist/modes/interactive/components/custom-entry.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +22 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-message.js +87 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
- package/dist/modes/interactive/components/daxnuts.js +141 -0
- package/dist/modes/interactive/components/daxnuts.js.map +1 -0
- package/dist/modes/interactive/components/dialog-editor.d.ts +21 -0
- package/dist/modes/interactive/components/dialog-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/dialog-editor.js +98 -0
- package/dist/modes/interactive/components/dialog-editor.js.map +1 -0
- package/dist/modes/interactive/components/dialog-input.d.ts +23 -0
- package/dist/modes/interactive/components/dialog-input.d.ts.map +1 -0
- package/dist/modes/interactive/components/dialog-input.js +61 -0
- package/dist/modes/interactive/components/dialog-input.js.map +1 -0
- package/dist/modes/interactive/components/dialog-selector.d.ts +26 -0
- package/dist/modes/interactive/components/dialog-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/dialog-selector.js +83 -0
- package/dist/modes/interactive/components/dialog-selector.js.map +1 -0
- package/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/modes/interactive/components/diff.js +133 -0
- package/dist/modes/interactive/components/diff.js.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
- package/dist/modes/interactive/components/first-time-setup.js +103 -0
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +33 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +248 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/index.d.ts +34 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/modes/interactive/components/index.js +35 -0
- package/dist/modes/interactive/components/index.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +36 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +188 -0
- package/dist/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
- package/dist/modes/interactive/components/markdown-transform.js +19 -0
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
- package/dist/modes/interactive/components/mermaid.d.ts +11 -0
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
- package/dist/modes/interactive/components/mermaid.js +75 -0
- package/dist/modes/interactive/components/mermaid.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +67 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector.js +381 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +165 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/plugin-manager-entry.d.ts +62 -0
- package/dist/modes/interactive/components/plugin-manager-entry.d.ts.map +1 -0
- package/dist/modes/interactive/components/plugin-manager-entry.js +294 -0
- package/dist/modes/interactive/components/plugin-manager-entry.js.map +1 -0
- package/dist/modes/interactive/components/plugin-selection-entry.d.ts +82 -0
- package/dist/modes/interactive/components/plugin-selection-entry.d.ts.map +1 -0
- package/dist/modes/interactive/components/plugin-selection-entry.js +228 -0
- package/dist/modes/interactive/components/plugin-selection-entry.js.map +1 -0
- package/dist/modes/interactive/components/render-types.d.ts +26 -0
- package/dist/modes/interactive/components/render-types.d.ts.map +1 -0
- package/dist/modes/interactive/components/render-types.js +7 -0
- package/dist/modes/interactive/components/render-types.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +46 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +328 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.js +158 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +143 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +1053 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +88 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +677 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-submenu.js +165 -0
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.js +39 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/status-indicator.d.ts +34 -0
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
- package/dist/modes/interactive/components/status-indicator.js +60 -0
- package/dist/modes/interactive/components/status-indicator.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js +50 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +23 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.js +109 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +59 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +335 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-list.d.ts +67 -0
- package/dist/modes/interactive/components/tree-list.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-list.js +710 -0
- package/dist/modes/interactive/components/tree-list.js.map +1 -0
- package/dist/modes/interactive/components/tree-render.d.ts +17 -0
- package/dist/modes/interactive/components/tree-render.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-render.js +316 -0
- package/dist/modes/interactive/components/tree-render.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +25 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +235 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/modes/interactive/components/tree-types.d.ts +35 -0
- package/dist/modes/interactive/components/tree-types.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-types.js +2 -0
- package/dist/modes/interactive/components/tree-types.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.js +114 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +16 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +49 -0
- package/dist/modes/interactive/components/user-message.js.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/modes/interactive/external-editor.d.ts +12 -0
- package/dist/modes/interactive/external-editor.d.ts.map +1 -0
- package/dist/modes/interactive/external-editor.js +38 -0
- package/dist/modes/interactive/external-editor.js.map +1 -0
- package/dist/modes/interactive/interactive-auth.d.ts +90 -0
- package/dist/modes/interactive/interactive-auth.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-auth.js +492 -0
- package/dist/modes/interactive/interactive-auth.js.map +1 -0
- package/dist/modes/interactive/interactive-commands.d.ts +68 -0
- package/dist/modes/interactive/interactive-commands.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-commands.js +157 -0
- package/dist/modes/interactive/interactive-commands.js.map +1 -0
- package/dist/modes/interactive/interactive-dialog-ui.d.ts +73 -0
- package/dist/modes/interactive/interactive-dialog-ui.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-dialog-ui.js +189 -0
- package/dist/modes/interactive/interactive-dialog-ui.js.map +1 -0
- package/dist/modes/interactive/interactive-format.d.ts +65 -0
- package/dist/modes/interactive/interactive-format.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-format.js +268 -0
- package/dist/modes/interactive/interactive-format.js.map +1 -0
- package/dist/modes/interactive/interactive-helpers.d.ts +25 -0
- package/dist/modes/interactive/interactive-helpers.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-helpers.js +73 -0
- package/dist/modes/interactive/interactive-helpers.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +640 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +4107 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/interactive-selectors.d.ts +95 -0
- package/dist/modes/interactive/interactive-selectors.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-selectors.js +356 -0
- package/dist/modes/interactive/interactive-selectors.js.map +1 -0
- package/dist/modes/interactive/model-catalog-refresh.d.ts +11 -0
- package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
- package/dist/modes/interactive/model-catalog-refresh.js +35 -0
- package/dist/modes/interactive/model-catalog-refresh.js.map +1 -0
- package/dist/modes/interactive/model-search.d.ts +12 -0
- package/dist/modes/interactive/model-search.d.ts.map +1 -0
- package/dist/modes/interactive/model-search.js +15 -0
- package/dist/modes/interactive/model-search.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +90 -0
- package/dist/modes/interactive/theme/light.json +89 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts +40 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme-controller.js +126 -0
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
- package/dist/modes/interactive/theme/theme-schema.json +352 -0
- package/dist/modes/interactive/theme/theme.d.ts +122 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +1093 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -0
- package/dist/modes/json-event.d.ts +34 -0
- package/dist/modes/json-event.d.ts.map +1 -0
- package/dist/modes/json-event.js +29 -0
- package/dist/modes/json-event.js.map +1 -0
- package/dist/modes/print-mode.d.ts +32 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +205 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/jsonl.d.ts +17 -0
- package/dist/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/modes/rpc/jsonl.js +49 -0
- package/dist/modes/rpc/jsonl.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +254 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +496 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +53 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-mode.js +540 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +486 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-types.js +8 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -0
- package/dist/package-manager-cli.d.ts +18 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +944 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/dist/plugins/ecosystem/active-bindings.d.ts +92 -0
- package/dist/plugins/ecosystem/active-bindings.d.ts.map +1 -0
- package/dist/plugins/ecosystem/active-bindings.js +198 -0
- package/dist/plugins/ecosystem/active-bindings.js.map +1 -0
- package/dist/plugins/ecosystem/bootstrap-factory-manifest.d.ts +32 -0
- package/dist/plugins/ecosystem/bootstrap-factory-manifest.d.ts.map +1 -0
- package/dist/plugins/ecosystem/bootstrap-factory-manifest.js +32 -0
- package/dist/plugins/ecosystem/bootstrap-factory-manifest.js.map +1 -0
- package/dist/plugins/ecosystem/catalog.d.ts +38 -0
- package/dist/plugins/ecosystem/catalog.d.ts.map +1 -0
- package/dist/plugins/ecosystem/catalog.js +90 -0
- package/dist/plugins/ecosystem/catalog.js.map +1 -0
- package/dist/plugins/ecosystem/cli.d.ts +102 -0
- package/dist/plugins/ecosystem/cli.d.ts.map +1 -0
- package/dist/plugins/ecosystem/cli.js +970 -0
- package/dist/plugins/ecosystem/cli.js.map +1 -0
- package/dist/plugins/ecosystem/default-active-bindings.d.ts +33 -0
- package/dist/plugins/ecosystem/default-active-bindings.d.ts.map +1 -0
- package/dist/plugins/ecosystem/default-active-bindings.js +105 -0
- package/dist/plugins/ecosystem/default-active-bindings.js.map +1 -0
- package/dist/plugins/ecosystem/default-plugin-market.d.ts +68 -0
- package/dist/plugins/ecosystem/default-plugin-market.d.ts.map +1 -0
- package/dist/plugins/ecosystem/default-plugin-market.js +146 -0
- package/dist/plugins/ecosystem/default-plugin-market.js.map +1 -0
- package/dist/plugins/ecosystem/distribution.d.ts +113 -0
- package/dist/plugins/ecosystem/distribution.d.ts.map +1 -0
- package/dist/plugins/ecosystem/distribution.js +371 -0
- package/dist/plugins/ecosystem/distribution.js.map +1 -0
- package/dist/plugins/ecosystem/index.d.ts +56 -0
- package/dist/plugins/ecosystem/index.d.ts.map +1 -0
- package/dist/plugins/ecosystem/index.js +31 -0
- package/dist/plugins/ecosystem/index.js.map +1 -0
- package/dist/plugins/ecosystem/installer.d.ts +130 -0
- package/dist/plugins/ecosystem/installer.d.ts.map +1 -0
- package/dist/plugins/ecosystem/installer.js +316 -0
- package/dist/plugins/ecosystem/installer.js.map +1 -0
- package/dist/plugins/ecosystem/node-disk-registry-source.d.ts +47 -0
- package/dist/plugins/ecosystem/node-disk-registry-source.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-disk-registry-source.js +208 -0
- package/dist/plugins/ecosystem/node-disk-registry-source.js.map +1 -0
- package/dist/plugins/ecosystem/node-distribution-host.d.ts +55 -0
- package/dist/plugins/ecosystem/node-distribution-host.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-distribution-host.js +423 -0
- package/dist/plugins/ecosystem/node-distribution-host.js.map +1 -0
- package/dist/plugins/ecosystem/node-local-package-source.d.ts +10 -0
- package/dist/plugins/ecosystem/node-local-package-source.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-local-package-source.js +97 -0
- package/dist/plugins/ecosystem/node-local-package-source.js.map +1 -0
- package/dist/plugins/ecosystem/node-npm-registry-source.d.ts +58 -0
- package/dist/plugins/ecosystem/node-npm-registry-source.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-npm-registry-source.js +326 -0
- package/dist/plugins/ecosystem/node-npm-registry-source.js.map +1 -0
- package/dist/plugins/ecosystem/node-package-install-host.d.ts +91 -0
- package/dist/plugins/ecosystem/node-package-install-host.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-package-install-host.js +857 -0
- package/dist/plugins/ecosystem/node-package-install-host.js.map +1 -0
- package/dist/plugins/ecosystem/node-package-install-persistence.d.ts +34 -0
- package/dist/plugins/ecosystem/node-package-install-persistence.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-package-install-persistence.js +221 -0
- package/dist/plugins/ecosystem/node-package-install-persistence.js.map +1 -0
- package/dist/plugins/ecosystem/node-package-install-stack.d.ts +28 -0
- package/dist/plugins/ecosystem/node-package-install-stack.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-package-install-stack.js +65 -0
- package/dist/plugins/ecosystem/node-package-install-stack.js.map +1 -0
- package/dist/plugins/ecosystem/node-package-media.d.ts +14 -0
- package/dist/plugins/ecosystem/node-package-media.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-package-media.js +36 -0
- package/dist/plugins/ecosystem/node-package-media.js.map +1 -0
- package/dist/plugins/ecosystem/node-plugin-acquisition-host.d.ts +83 -0
- package/dist/plugins/ecosystem/node-plugin-acquisition-host.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-plugin-acquisition-host.js +423 -0
- package/dist/plugins/ecosystem/node-plugin-acquisition-host.js.map +1 -0
- package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts +48 -0
- package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-plugin-bootstrap.js +191 -0
- package/dist/plugins/ecosystem/node-plugin-bootstrap.js.map +1 -0
- package/dist/plugins/ecosystem/node-plugin-trust-root.d.ts +26 -0
- package/dist/plugins/ecosystem/node-plugin-trust-root.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-plugin-trust-root.js +120 -0
- package/dist/plugins/ecosystem/node-plugin-trust-root.js.map +1 -0
- package/dist/plugins/ecosystem/node-registry-source.d.ts +35 -0
- package/dist/plugins/ecosystem/node-registry-source.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-registry-source.js +286 -0
- package/dist/plugins/ecosystem/node-registry-source.js.map +1 -0
- package/dist/plugins/ecosystem/node-release-package-source.d.ts +47 -0
- package/dist/plugins/ecosystem/node-release-package-source.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-release-package-source.js +336 -0
- package/dist/plugins/ecosystem/node-release-package-source.js.map +1 -0
- package/dist/plugins/ecosystem/node-tar-package.d.ts +11 -0
- package/dist/plugins/ecosystem/node-tar-package.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-tar-package.js +294 -0
- package/dist/plugins/ecosystem/node-tar-package.js.map +1 -0
- package/dist/plugins/ecosystem/node-tar-writer.d.ts +16 -0
- package/dist/plugins/ecosystem/node-tar-writer.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-tar-writer.js +134 -0
- package/dist/plugins/ecosystem/node-tar-writer.js.map +1 -0
- package/dist/plugins/ecosystem/node-url-package-source.d.ts +31 -0
- package/dist/plugins/ecosystem/node-url-package-source.d.ts.map +1 -0
- package/dist/plugins/ecosystem/node-url-package-source.js +159 -0
- package/dist/plugins/ecosystem/node-url-package-source.js.map +1 -0
- package/dist/plugins/ecosystem/plugin-acquisition.d.ts +88 -0
- package/dist/plugins/ecosystem/plugin-acquisition.d.ts.map +1 -0
- package/dist/plugins/ecosystem/plugin-acquisition.js +197 -0
- package/dist/plugins/ecosystem/plugin-acquisition.js.map +1 -0
- package/dist/plugins/ecosystem/plugin-bootstrap.d.ts +87 -0
- package/dist/plugins/ecosystem/plugin-bootstrap.d.ts.map +1 -0
- package/dist/plugins/ecosystem/plugin-bootstrap.js +134 -0
- package/dist/plugins/ecosystem/plugin-bootstrap.js.map +1 -0
- package/dist/plugins/ecosystem/registry-cli-adapter.d.ts +8 -0
- package/dist/plugins/ecosystem/registry-cli-adapter.d.ts.map +1 -0
- package/dist/plugins/ecosystem/registry-cli-adapter.js +16 -0
- package/dist/plugins/ecosystem/registry-cli-adapter.js.map +1 -0
- package/dist/plugins/ecosystem/registry.d.ts +121 -0
- package/dist/plugins/ecosystem/registry.d.ts.map +1 -0
- package/dist/plugins/ecosystem/registry.js +324 -0
- package/dist/plugins/ecosystem/registry.js.map +1 -0
- package/dist/plugins/ecosystem/resolver.d.ts +32 -0
- package/dist/plugins/ecosystem/resolver.d.ts.map +1 -0
- package/dist/plugins/ecosystem/resolver.js +325 -0
- package/dist/plugins/ecosystem/resolver.js.map +1 -0
- package/dist/plugins/ecosystem/selection-store.d.ts +66 -0
- package/dist/plugins/ecosystem/selection-store.d.ts.map +1 -0
- package/dist/plugins/ecosystem/selection-store.js +241 -0
- package/dist/plugins/ecosystem/selection-store.js.map +1 -0
- package/dist/plugins/ecosystem/selection.d.ts +54 -0
- package/dist/plugins/ecosystem/selection.d.ts.map +1 -0
- package/dist/plugins/ecosystem/selection.js +116 -0
- package/dist/plugins/ecosystem/selection.js.map +1 -0
- package/dist/plugins/ecosystem/state.d.ts +96 -0
- package/dist/plugins/ecosystem/state.d.ts.map +1 -0
- package/dist/plugins/ecosystem/state.js +346 -0
- package/dist/plugins/ecosystem/state.js.map +1 -0
- package/dist/plugins/ecosystem/types.d.ts +90 -0
- package/dist/plugins/ecosystem/types.d.ts.map +1 -0
- package/dist/plugins/ecosystem/types.js +8 -0
- package/dist/plugins/ecosystem/types.js.map +1 -0
- package/dist/plugins/ecosystem/updates.d.ts +30 -0
- package/dist/plugins/ecosystem/updates.d.ts.map +1 -0
- package/dist/plugins/ecosystem/updates.js +148 -0
- package/dist/plugins/ecosystem/updates.js.map +1 -0
- package/dist/plugins/integrity-adapter.d.ts +58 -0
- package/dist/plugins/integrity-adapter.d.ts.map +1 -0
- package/dist/plugins/integrity-adapter.js +70 -0
- package/dist/plugins/integrity-adapter.js.map +1 -0
- package/dist/plugins/mcp-http.d.ts +78 -0
- package/dist/plugins/mcp-http.d.ts.map +1 -0
- package/dist/plugins/mcp-http.js +176 -0
- package/dist/plugins/mcp-http.js.map +1 -0
- package/dist/plugins/observability-types.d.ts +9 -0
- package/dist/plugins/observability-types.d.ts.map +1 -0
- package/dist/plugins/observability-types.js +9 -0
- package/dist/plugins/observability-types.js.map +1 -0
- package/dist/plugins/plugin-host.d.ts +46 -0
- package/dist/plugins/plugin-host.d.ts.map +1 -0
- package/dist/plugins/plugin-host.js +80 -0
- package/dist/plugins/plugin-host.js.map +1 -0
- package/dist/plugins/plugin-supervisor.d.ts +77 -0
- package/dist/plugins/plugin-supervisor.d.ts.map +1 -0
- package/dist/plugins/plugin-supervisor.js +82 -0
- package/dist/plugins/plugin-supervisor.js.map +1 -0
- package/dist/plugins/subagent-task/runner-entry.d.ts +35 -0
- package/dist/plugins/subagent-task/runner-entry.d.ts.map +1 -0
- package/dist/plugins/subagent-task/runner-entry.js +39 -0
- package/dist/plugins/subagent-task/runner-entry.js.map +1 -0
- package/dist/plugins/subagent-task/session-factory.d.ts +57 -0
- package/dist/plugins/subagent-task/session-factory.d.ts.map +1 -0
- package/dist/plugins/subagent-task/session-factory.js +51 -0
- package/dist/plugins/subagent-task/session-factory.js.map +1 -0
- package/dist/profile/child-facade.d.ts +44 -0
- package/dist/profile/child-facade.d.ts.map +1 -0
- package/dist/profile/child-facade.js +56 -0
- package/dist/profile/child-facade.js.map +1 -0
- package/dist/profile/dependency-wiring.d.ts +48 -0
- package/dist/profile/dependency-wiring.d.ts.map +1 -0
- package/dist/profile/dependency-wiring.js +56 -0
- package/dist/profile/dependency-wiring.js.map +1 -0
- package/dist/profile/domain-recovery.d.ts +60 -0
- package/dist/profile/domain-recovery.d.ts.map +1 -0
- package/dist/profile/domain-recovery.js +94 -0
- package/dist/profile/domain-recovery.js.map +1 -0
- package/dist/profile/first-roles.d.ts +30 -0
- package/dist/profile/first-roles.d.ts.map +1 -0
- package/dist/profile/first-roles.js +74 -0
- package/dist/profile/first-roles.js.map +1 -0
- package/dist/profile/goal-plugin.d.ts +38 -0
- package/dist/profile/goal-plugin.d.ts.map +1 -0
- package/dist/profile/goal-plugin.js +113 -0
- package/dist/profile/goal-plugin.js.map +1 -0
- package/dist/profile/identity.d.ts +58 -0
- package/dist/profile/identity.d.ts.map +1 -0
- package/dist/profile/identity.js +100 -0
- package/dist/profile/identity.js.map +1 -0
- package/dist/profile/lock.d.ts +59 -0
- package/dist/profile/lock.d.ts.map +1 -0
- package/dist/profile/lock.js +59 -0
- package/dist/profile/lock.js.map +1 -0
- package/dist/profile/plan-plugin.d.ts +44 -0
- package/dist/profile/plan-plugin.d.ts.map +1 -0
- package/dist/profile/plan-plugin.js +144 -0
- package/dist/profile/plan-plugin.js.map +1 -0
- package/dist/profile/plugin-profiles.d.ts +56 -0
- package/dist/profile/plugin-profiles.d.ts.map +1 -0
- package/dist/profile/plugin-profiles.js +192 -0
- package/dist/profile/plugin-profiles.js.map +1 -0
- package/dist/profile/policy-manifest.d.ts +53 -0
- package/dist/profile/policy-manifest.d.ts.map +1 -0
- package/dist/profile/policy-manifest.js +52 -0
- package/dist/profile/policy-manifest.js.map +1 -0
- package/dist/profile/profile-assembly.d.ts +74 -0
- package/dist/profile/profile-assembly.d.ts.map +1 -0
- package/dist/profile/profile-assembly.js +90 -0
- package/dist/profile/profile-assembly.js.map +1 -0
- package/dist/profile/profile-migration.d.ts +56 -0
- package/dist/profile/profile-migration.d.ts.map +1 -0
- package/dist/profile/profile-migration.js +60 -0
- package/dist/profile/profile-migration.js.map +1 -0
- package/dist/profile/profile-registry.d.ts +58 -0
- package/dist/profile/profile-registry.d.ts.map +1 -0
- package/dist/profile/profile-registry.js +74 -0
- package/dist/profile/profile-registry.js.map +1 -0
- package/dist/profile/role-assembly.d.ts +47 -0
- package/dist/profile/role-assembly.d.ts.map +1 -0
- package/dist/profile/role-assembly.js +31 -0
- package/dist/profile/role-assembly.js.map +1 -0
- package/dist/profile/role-catalog.d.ts +44 -0
- package/dist/profile/role-catalog.d.ts.map +1 -0
- package/dist/profile/role-catalog.js +130 -0
- package/dist/profile/role-catalog.js.map +1 -0
- package/dist/profile/role-orchestrator.d.ts +123 -0
- package/dist/profile/role-orchestrator.d.ts.map +1 -0
- package/dist/profile/role-orchestrator.js +194 -0
- package/dist/profile/role-orchestrator.js.map +1 -0
- package/dist/profile/role-runner.d.ts +99 -0
- package/dist/profile/role-runner.d.ts.map +1 -0
- package/dist/profile/role-runner.js +78 -0
- package/dist/profile/role-runner.js.map +1 -0
- package/dist/profile/root-facade.d.ts +36 -0
- package/dist/profile/root-facade.d.ts.map +1 -0
- package/dist/profile/root-facade.js +48 -0
- package/dist/profile/root-facade.js.map +1 -0
- package/dist/profile/skill-discovery-wiring.d.ts +58 -0
- package/dist/profile/skill-discovery-wiring.d.ts.map +1 -0
- package/dist/profile/skill-discovery-wiring.js +75 -0
- package/dist/profile/skill-discovery-wiring.js.map +1 -0
- package/dist/profile/state-store.d.ts +62 -0
- package/dist/profile/state-store.d.ts.map +1 -0
- package/dist/profile/state-store.js +140 -0
- package/dist/profile/state-store.js.map +1 -0
- package/dist/profile/todo-plugin.d.ts +37 -0
- package/dist/profile/todo-plugin.d.ts.map +1 -0
- package/dist/profile/todo-plugin.js +132 -0
- package/dist/profile/todo-plugin.js.map +1 -0
- package/dist/profiles/builtin-suites.d.ts +142 -0
- package/dist/profiles/builtin-suites.d.ts.map +1 -0
- package/dist/profiles/builtin-suites.js +395 -0
- package/dist/profiles/builtin-suites.js.map +1 -0
- package/dist/profiles/resolved-agent-profile.d.ts +83 -0
- package/dist/profiles/resolved-agent-profile.d.ts.map +1 -0
- package/dist/profiles/resolved-agent-profile.js +75 -0
- package/dist/profiles/resolved-agent-profile.js.map +1 -0
- package/dist/profiles/suite-lifecycle.d.ts +158 -0
- package/dist/profiles/suite-lifecycle.d.ts.map +1 -0
- package/dist/profiles/suite-lifecycle.js +447 -0
- package/dist/profiles/suite-lifecycle.js.map +1 -0
- package/dist/profiles/suite-loader.d.ts +410 -0
- package/dist/profiles/suite-loader.d.ts.map +1 -0
- package/dist/profiles/suite-loader.js +823 -0
- package/dist/profiles/suite-loader.js.map +1 -0
- package/dist/remote/server-assembly.d.ts +230 -0
- package/dist/remote/server-assembly.d.ts.map +1 -0
- package/dist/remote/server-assembly.js +1189 -0
- package/dist/remote/server-assembly.js.map +1 -0
- package/dist/remote/server-entry.d.ts +112 -0
- package/dist/remote/server-entry.d.ts.map +1 -0
- package/dist/remote/server-entry.js +239 -0
- package/dist/remote/server-entry.js.map +1 -0
- package/dist/remote/session-source.d.ts +101 -0
- package/dist/remote/session-source.d.ts.map +1 -0
- package/dist/remote/session-source.js +173 -0
- package/dist/remote/session-source.js.map +1 -0
- package/dist/rpc-entry.d.ts +3 -0
- package/dist/rpc-entry.d.ts.map +1 -0
- package/dist/rpc-entry.js +11 -0
- package/dist/rpc-entry.js.map +1 -0
- package/dist/server/create-harness.d.ts +26 -0
- package/dist/server/create-harness.d.ts.map +1 -0
- package/dist/server/create-harness.js +106 -0
- package/dist/server/create-harness.js.map +1 -0
- package/dist/share/session-share.d.ts +98 -0
- package/dist/share/session-share.d.ts.map +1 -0
- package/dist/share/session-share.js +89 -0
- package/dist/share/session-share.js.map +1 -0
- package/dist/share/share-viewer.d.ts +43 -0
- package/dist/share/share-viewer.d.ts.map +1 -0
- package/dist/share/share-viewer.js +103 -0
- package/dist/share/share-viewer.js.map +1 -0
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +6 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-ai-server.d.ts +77 -0
- package/dist/testing/mock-ai-server.d.ts.map +1 -0
- package/dist/testing/mock-ai-server.js +69 -0
- package/dist/testing/mock-ai-server.js.map +1 -0
- package/dist/testing/plugin-testkit.d.ts +148 -0
- package/dist/testing/plugin-testkit.d.ts.map +1 -0
- package/dist/testing/plugin-testkit.js +493 -0
- package/dist/testing/plugin-testkit.js.map +1 -0
- package/dist/testing/runtime-delivery-queue.d.ts +47 -0
- package/dist/testing/runtime-delivery-queue.d.ts.map +1 -0
- package/dist/testing/runtime-delivery-queue.js +158 -0
- package/dist/testing/runtime-delivery-queue.js.map +1 -0
- package/dist/testing/session-plugin-testkit.d.ts +144 -0
- package/dist/testing/session-plugin-testkit.d.ts.map +1 -0
- package/dist/testing/session-plugin-testkit.js +444 -0
- package/dist/testing/session-plugin-testkit.js.map +1 -0
- package/dist/utils/abort.d.ts +5 -0
- package/dist/utils/abort.d.ts.map +1 -0
- package/dist/utils/abort.js +53 -0
- package/dist/utils/abort.js.map +1 -0
- package/dist/utils/agent-forge-user-agent.d.ts +2 -0
- package/dist/utils/agent-forge-user-agent.d.ts.map +1 -0
- package/dist/utils/agent-forge-user-agent.js +5 -0
- package/dist/utils/agent-forge-user-agent.js.map +1 -0
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +53 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/changelog.d.ts +22 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +165 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/child-process.d.ts +18 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +107 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts +11 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +246 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +11 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +22 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/clipboard.d.ts +4 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +161 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/deprecation.d.ts +4 -0
- package/dist/utils/deprecation.d.ts.map +1 -0
- package/dist/utils/deprecation.js +13 -0
- package/dist/utils/deprecation.js.map +1 -0
- package/dist/utils/exif-orientation.d.ts +5 -0
- package/dist/utils/exif-orientation.d.ts.map +1 -0
- package/dist/utils/exif-orientation.js +158 -0
- package/dist/utils/exif-orientation.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +8 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +27 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/fs-watch.d.ts +5 -0
- package/dist/utils/fs-watch.d.ts.map +1 -0
- package/dist/utils/fs-watch.js +25 -0
- package/dist/utils/fs-watch.js.map +1 -0
- package/dist/utils/git.d.ts +26 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +201 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/image-convert.d.ts +10 -0
- package/dist/utils/image-convert.d.ts.map +1 -0
- package/dist/utils/image-convert.js +45 -0
- package/dist/utils/image-convert.js.map +1 -0
- package/dist/utils/image-process.d.ts +18 -0
- package/dist/utils/image-process.d.ts.map +1 -0
- package/dist/utils/image-process.js +84 -0
- package/dist/utils/image-process.js.map +1 -0
- package/dist/utils/image-resize-core.d.ts +30 -0
- package/dist/utils/image-resize-core.d.ts.map +1 -0
- package/dist/utils/image-resize-core.js +125 -0
- package/dist/utils/image-resize-core.js.map +1 -0
- package/dist/utils/image-resize-worker.d.ts +2 -0
- package/dist/utils/image-resize-worker.d.ts.map +1 -0
- package/dist/utils/image-resize-worker.js +31 -0
- package/dist/utils/image-resize-worker.js.map +1 -0
- package/dist/utils/image-resize.d.ts +16 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +100 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/json.d.ts +3 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +8 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/management-http.d.ts +25 -0
- package/dist/utils/management-http.d.ts.map +1 -0
- package/dist/utils/management-http.js +54 -0
- package/dist/utils/management-http.js.map +1 -0
- package/dist/utils/mime.d.ts +3 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +115 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/open-browser.d.ts +9 -0
- package/dist/utils/open-browser.d.ts.map +1 -0
- package/dist/utils/open-browser.js +22 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/paths.d.ts +34 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +114 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/photon.d.ts +21 -0
- package/dist/utils/photon.d.ts.map +1 -0
- package/dist/utils/photon.js +124 -0
- package/dist/utils/photon.js.map +1 -0
- package/dist/utils/shell.d.ts +34 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +216 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/sync-sleep.d.ts +2 -0
- package/dist/utils/sync-sleep.d.ts.map +1 -0
- package/dist/utils/sync-sleep.js +11 -0
- package/dist/utils/sync-sleep.js.map +1 -0
- package/dist/utils/syntax-highlight.d.ts +13 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +177 -0
- package/dist/utils/syntax-highlight.js.map +1 -0
- package/dist/utils/text.d.ts +8 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +9 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/utils/tool-result-images.d.ts +19 -0
- package/dist/utils/tool-result-images.d.ts.map +1 -0
- package/dist/utils/tool-result-images.js +45 -0
- package/dist/utils/tool-result-images.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +24 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +437 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/dist/utils/version-check.d.ts +21 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +86 -0
- package/dist/utils/version-check.js.map +1 -0
- package/dist/utils/windows-self-update.d.ts +3 -0
- package/dist/utils/windows-self-update.d.ts.map +1 -0
- package/dist/utils/windows-self-update.js +77 -0
- package/dist/utils/windows-self-update.js.map +1 -0
- package/docs/compaction.md +348 -0
- package/docs/containerization.md +114 -0
- package/docs/development.md +71 -0
- package/docs/docs.json +148 -0
- package/docs/environment-variables.md +96 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +76 -0
- package/docs/json.md +98 -0
- package/docs/keybindings.md +245 -0
- package/docs/llama-cpp.md +101 -0
- package/docs/models.md +576 -0
- package/docs/packages.md +205 -0
- package/docs/prompt-templates.md +96 -0
- package/docs/providers.md +317 -0
- package/docs/quickstart.md +167 -0
- package/docs/rpc.md +1487 -0
- package/docs/sdk.md +1146 -0
- package/docs/security.md +24 -0
- package/docs/session-format.md +438 -0
- package/docs/sessions.md +145 -0
- package/docs/settings.md +355 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +231 -0
- package/docs/terminal-setup.md +192 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +320 -0
- package/docs/tmux.md +63 -0
- package/docs/tui.md +478 -0
- package/docs/usage.md +291 -0
- package/docs/windows.md +39 -0
- package/examples/README.md +21 -0
- package/examples/extensions/README.md +163 -0
- package/examples/extensions/bash-spawn-hook/index.ts +37 -0
- package/examples/extensions/bash-spawn-hook/plugin.json +10 -0
- package/examples/extensions/bookmark/index.ts +67 -0
- package/examples/extensions/bookmark/plugin.json +11 -0
- package/examples/extensions/built-in-tool-renderer/index.ts +262 -0
- package/examples/extensions/built-in-tool-renderer/plugin.json +10 -0
- package/examples/extensions/claude-rules/index.ts +119 -0
- package/examples/extensions/claude-rules/plugin.json +8 -0
- package/examples/extensions/cli-bridge/README.md +27 -0
- package/examples/extensions/cli-bridge/index.ts +320 -0
- package/examples/extensions/cli-bridge/plugin.json +10 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +53 -0
- package/examples/extensions/dynamic-resources/plugin.json +8 -0
- package/examples/extensions/dynamic-tools/index.ts +102 -0
- package/examples/extensions/dynamic-tools/plugin.json +14 -0
- package/examples/extensions/event-bus/index.ts +75 -0
- package/examples/extensions/event-bus/plugin.json +13 -0
- package/examples/extensions/file-trigger/index.ts +65 -0
- package/examples/extensions/file-trigger/plugin.json +13 -0
- package/examples/extensions/goal/README.md +16 -0
- package/examples/extensions/goal/index.ts +134 -0
- package/examples/extensions/goal/plugin.json +12 -0
- package/examples/extensions/hello/index.ts +29 -0
- package/examples/extensions/hello/plugin.json +10 -0
- package/examples/extensions/kimi-deferred-tools/index.ts +93 -0
- package/examples/extensions/kimi-deferred-tools/plugin.json +11 -0
- package/examples/extensions/mcp-stdio/README.md +19 -0
- package/examples/extensions/mcp-stdio/index.d.ts +64 -0
- package/examples/extensions/mcp-stdio/index.d.ts.map +1 -0
- package/examples/extensions/mcp-stdio/index.js +292 -0
- package/examples/extensions/mcp-stdio/index.js.map +1 -0
- package/examples/extensions/mcp-stdio/index.ts +381 -0
- package/examples/extensions/mcp-stdio/plugin.json +10 -0
- package/examples/extensions/memory-backend/index.ts +120 -0
- package/examples/extensions/memory-backend/plugin.json +10 -0
- package/examples/extensions/minimal-mode/index.ts +447 -0
- package/examples/extensions/minimal-mode/plugin.json +10 -0
- package/examples/extensions/multi-agent/README.md +7 -0
- package/examples/extensions/multi-agent/index.ts +592 -0
- package/examples/extensions/multi-agent/plugin.json +13 -0
- package/examples/extensions/notify/index.ts +70 -0
- package/examples/extensions/notify/plugin.json +8 -0
- package/examples/extensions/permission-gate/index.ts +55 -0
- package/examples/extensions/permission-gate/plugin.json +11 -0
- package/examples/extensions/pirate/index.ts +75 -0
- package/examples/extensions/pirate/plugin.json +8 -0
- package/examples/extensions/plan/README.md +16 -0
- package/examples/extensions/plan/index.ts +136 -0
- package/examples/extensions/plan/plugin.json +12 -0
- package/examples/extensions/prompt-customizer/index.ts +117 -0
- package/examples/extensions/prompt-customizer/plugin.json +8 -0
- package/examples/extensions/protected-paths/index.ts +44 -0
- package/examples/extensions/protected-paths/plugin.json +11 -0
- package/examples/extensions/provider-attribution/README.md +12 -0
- package/examples/extensions/provider-attribution/index.ts +86 -0
- package/examples/extensions/provider-attribution/plugin.json +10 -0
- package/examples/extensions/send-user-message/index.ts +118 -0
- package/examples/extensions/send-user-message/plugin.json +11 -0
- package/examples/extensions/session-name/index.ts +31 -0
- package/examples/extensions/session-name/plugin.json +11 -0
- package/examples/extensions/session-share/README.md +15 -0
- package/examples/extensions/session-share/index.ts +170 -0
- package/examples/extensions/session-share/plugin.json +15 -0
- package/examples/extensions/structured-output/index.ts +68 -0
- package/examples/extensions/structured-output/plugin.json +10 -0
- package/examples/extensions/subagent/README.md +177 -0
- package/examples/extensions/subagent/agents/planner.md +37 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/subagent/agents/scout.md +50 -0
- package/examples/extensions/subagent/agents/worker.md +24 -0
- package/examples/extensions/subagent/agents.ts +157 -0
- package/examples/extensions/subagent/index.ts +1057 -0
- package/examples/extensions/subagent/plugin.json +13 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/examples/extensions/subagent/prompts/implement.md +10 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/examples/extensions/suite-manager/README.md +45 -0
- package/examples/extensions/suite-manager/index.ts +182 -0
- package/examples/extensions/suite-manager/plugin.json +13 -0
- package/examples/extensions/timed-confirm/index.ts +93 -0
- package/examples/extensions/timed-confirm/plugin.json +13 -0
- package/examples/extensions/todo-set/README.md +18 -0
- package/examples/extensions/todo-set/index.ts +133 -0
- package/examples/extensions/todo-set/plugin.json +12 -0
- package/examples/extensions/tool-override/index.ts +159 -0
- package/examples/extensions/tool-override/plugin.json +11 -0
- package/examples/extensions/trigger-compact/index.ts +76 -0
- package/examples/extensions/trigger-compact/plugin.json +14 -0
- package/examples/extensions/truncated-tool/index.ts +204 -0
- package/examples/extensions/truncated-tool/plugin.json +10 -0
- package/examples/extensions/with-deps/index.ts +42 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/extensions/with-deps/plugin.json +10 -0
- package/examples/remote-client.ts +66 -0
- package/examples/rpc-extension-ui.ts +641 -0
- package/examples/sdk/01-minimal.ts +26 -0
- package/examples/sdk/02-custom-model.ts +49 -0
- package/examples/sdk/03-custom-prompt.ts +70 -0
- package/examples/sdk/04-skills.ts +55 -0
- package/examples/sdk/05-tools.ts +48 -0
- package/examples/sdk/07-context-files.ts +42 -0
- package/examples/sdk/08-prompt-templates.ts +51 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
- package/examples/sdk/10-settings.ts +53 -0
- package/examples/sdk/11-sessions.ts +52 -0
- package/examples/sdk/12-full-control.ts +72 -0
- package/examples/sdk/13-session-runtime.ts +71 -0
- package/examples/sdk/14-custom-session-storage.ts +132 -0
- package/examples/sdk/README.md +139 -0
- package/package.json +111 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* session-share contract (2.6c) — an explicit, revocable share contract with
|
|
3
|
+
* a permission context, scope whitelist, and artifact references.
|
|
4
|
+
*
|
|
5
|
+
* A share contract is created for one session with a read-only permission
|
|
6
|
+
* context and an explicit scope (messages on/off, artifact whitelist).
|
|
7
|
+
* Resolution fails structurally for revoked, expired, out-of-scope, or
|
|
8
|
+
* unknown requests — nothing is implicitly included. Revocation is the
|
|
9
|
+
* cancellation path and is terminal. Transports are injected explicitly by
|
|
10
|
+
* the caller (the kernel ships none); HTML/viewer integration is 2.6d.
|
|
11
|
+
*/
|
|
12
|
+
import type { JsonValue } from "@agent-forge/ai";
|
|
13
|
+
export interface ShareScopeV1 {
|
|
14
|
+
readonly messages: boolean;
|
|
15
|
+
/** Exact artifact references shareable under this contract. */
|
|
16
|
+
readonly artifacts: readonly string[];
|
|
17
|
+
readonly diagnostics: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface ShareContractV1 {
|
|
20
|
+
readonly shareId: string;
|
|
21
|
+
readonly sessionId: string;
|
|
22
|
+
readonly permission: "read_only";
|
|
23
|
+
readonly scope: ShareScopeV1;
|
|
24
|
+
readonly createdAt: number;
|
|
25
|
+
readonly expiresAt?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface ShareArtifactInputV1 {
|
|
28
|
+
readonly artifactId: string;
|
|
29
|
+
readonly mediaType: string;
|
|
30
|
+
readonly bytesBase64: string;
|
|
31
|
+
}
|
|
32
|
+
export type ShareResolveRequestV1 = {
|
|
33
|
+
readonly kind: "messages";
|
|
34
|
+
} | {
|
|
35
|
+
readonly kind: "diagnostics";
|
|
36
|
+
} | {
|
|
37
|
+
readonly kind: "artifact";
|
|
38
|
+
readonly artifactId: string;
|
|
39
|
+
};
|
|
40
|
+
export type ShareResolveResultV1 = {
|
|
41
|
+
readonly status: "resolved";
|
|
42
|
+
readonly kind: "messages";
|
|
43
|
+
readonly content: JsonValue;
|
|
44
|
+
} | {
|
|
45
|
+
readonly status: "resolved";
|
|
46
|
+
readonly kind: "diagnostics";
|
|
47
|
+
readonly content: JsonValue;
|
|
48
|
+
} | {
|
|
49
|
+
readonly status: "resolved";
|
|
50
|
+
readonly kind: "artifact";
|
|
51
|
+
readonly artifact: ShareArtifactInputV1;
|
|
52
|
+
} | {
|
|
53
|
+
readonly status: "denied";
|
|
54
|
+
readonly reason: string;
|
|
55
|
+
} | {
|
|
56
|
+
readonly status: "not_found";
|
|
57
|
+
readonly shareId: string;
|
|
58
|
+
};
|
|
59
|
+
export type ShareTransportPayloadV1 = JsonValue | ShareResolveResultV1;
|
|
60
|
+
export interface ShareTransportV1 {
|
|
61
|
+
readonly id: string;
|
|
62
|
+
send(input: {
|
|
63
|
+
readonly contract: ShareContractV1;
|
|
64
|
+
readonly payload: ShareTransportPayloadV1;
|
|
65
|
+
}): {
|
|
66
|
+
readonly accepted: boolean;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export interface SessionShareManagerV1 {
|
|
70
|
+
createShare(input: {
|
|
71
|
+
readonly sessionId: string;
|
|
72
|
+
readonly scope: ShareScopeV1;
|
|
73
|
+
readonly expiresAt?: number;
|
|
74
|
+
}): ShareContractV1;
|
|
75
|
+
resolve(input: {
|
|
76
|
+
readonly shareId: string;
|
|
77
|
+
readonly request: ShareResolveRequestV1;
|
|
78
|
+
readonly now?: number;
|
|
79
|
+
}): ShareResolveResultV1;
|
|
80
|
+
revoke(shareId: string, input: {
|
|
81
|
+
readonly reason: string;
|
|
82
|
+
}): ShareContractV1;
|
|
83
|
+
readonly transport: ShareTransportV1;
|
|
84
|
+
}
|
|
85
|
+
export declare function createSessionShare(options: {
|
|
86
|
+
/** Provider for the session's message transcript (JSON-safe). */
|
|
87
|
+
readonly readMessages: (sessionId: string) => JsonValue;
|
|
88
|
+
/** Provider for the session's diagnostics (JSON-safe). */
|
|
89
|
+
readonly readDiagnostics: (sessionId: string) => JsonValue;
|
|
90
|
+
/** Provider for artifact bytes (base64); wired to the 2.6a store by the caller. */
|
|
91
|
+
readonly readArtifact: (input: {
|
|
92
|
+
readonly sessionId: string;
|
|
93
|
+
readonly artifactId: string;
|
|
94
|
+
}) => ShareArtifactInputV1;
|
|
95
|
+
readonly transport: ShareTransportV1;
|
|
96
|
+
readonly now?: () => number;
|
|
97
|
+
}): SessionShareManagerV1;
|
|
98
|
+
//# sourceMappingURL=session-share.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-share.d.ts","sourceRoot":"","sources":["../../src/share/session-share.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * session-share contract (2.6c) — an explicit, revocable share contract with\n * a permission context, scope whitelist, and artifact references.\n *\n * A share contract is created for one session with a read-only permission\n * context and an explicit scope (messages on/off, artifact whitelist).\n * Resolution fails structurally for revoked, expired, out-of-scope, or\n * unknown requests — nothing is implicitly included. Revocation is the\n * cancellation path and is terminal. Transports are injected explicitly by\n * the caller (the kernel ships none); HTML/viewer integration is 2.6d.\n */\nimport type { JsonValue } from \"@agent-forge/ai\";\n\nexport interface ShareScopeV1 {\n\treadonly messages: boolean;\n\t/** Exact artifact references shareable under this contract. */\n\treadonly artifacts: readonly string[];\n\treadonly diagnostics: boolean;\n}\n\nexport interface ShareContractV1 {\n\treadonly shareId: string;\n\treadonly sessionId: string;\n\treadonly permission: \"read_only\";\n\treadonly scope: ShareScopeV1;\n\treadonly createdAt: number;\n\treadonly expiresAt?: number;\n}\n\nexport interface ShareArtifactInputV1 {\n\treadonly artifactId: string;\n\treadonly mediaType: string;\n\treadonly bytesBase64: string;\n}\n\nexport type ShareResolveRequestV1 =\n\t| { readonly kind: \"messages\" }\n\t| { readonly kind: \"diagnostics\" }\n\t| { readonly kind: \"artifact\"; readonly artifactId: string };\n\nexport type ShareResolveResultV1 =\n\t| { readonly status: \"resolved\"; readonly kind: \"messages\"; readonly content: JsonValue }\n\t| { readonly status: \"resolved\"; readonly kind: \"diagnostics\"; readonly content: JsonValue }\n\t| { readonly status: \"resolved\"; readonly kind: \"artifact\"; readonly artifact: ShareArtifactInputV1 }\n\t| { readonly status: \"denied\"; readonly reason: string }\n\t| { readonly status: \"not_found\"; readonly shareId: string };\n\nexport type ShareTransportPayloadV1 = JsonValue | ShareResolveResultV1;\n\nexport interface ShareTransportV1 {\n\treadonly id: string;\n\tsend(input: { readonly contract: ShareContractV1; readonly payload: ShareTransportPayloadV1 }): {\n\t\treadonly accepted: boolean;\n\t};\n}\n\nexport interface SessionShareManagerV1 {\n\tcreateShare(input: {\n\t\treadonly sessionId: string;\n\t\treadonly scope: ShareScopeV1;\n\t\treadonly expiresAt?: number;\n\t}): ShareContractV1;\n\tresolve(input: {\n\t\treadonly shareId: string;\n\t\treadonly request: ShareResolveRequestV1;\n\t\treadonly now?: number;\n\t}): ShareResolveResultV1;\n\trevoke(shareId: string, input: { readonly reason: string }): ShareContractV1;\n\treadonly transport: ShareTransportV1;\n}\n\nexport function createSessionShare(options: {\n\t/** Provider for the session's message transcript (JSON-safe). */\n\treadonly readMessages: (sessionId: string) => JsonValue;\n\t/** Provider for the session's diagnostics (JSON-safe). */\n\treadonly readDiagnostics: (sessionId: string) => JsonValue;\n\t/** Provider for artifact bytes (base64); wired to the 2.6a store by the caller. */\n\treadonly readArtifact: (input: { readonly sessionId: string; readonly artifactId: string }) => ShareArtifactInputV1;\n\treadonly transport: ShareTransportV1;\n\treadonly now?: () => number;\n}): SessionShareManagerV1 {\n\tconst now = options.now ?? (() => Date.now());\n\tconst contracts = new Map<string, { contract: ShareContractV1; revokedReason?: string }>();\n\tlet shareSequence = 0;\n\n\tconst shareIdOf = (sessionId: string): string => {\n\t\tshareSequence += 1;\n\t\tlet hash = 0x811c9dc5;\n\t\tconst value = `${sessionId}#${shareSequence}`;\n\t\tfor (let index = 0; index < value.length; index += 1) {\n\t\t\thash ^= value.charCodeAt(index);\n\t\t\thash = Math.imul(hash, 0x01000193);\n\t\t}\n\t\treturn `share-${(hash >>> 0).toString(36)}`;\n\t};\n\n\treturn {\n\t\ttransport: options.transport,\n\t\tcreateShare(input) {\n\t\t\tconst contract: ShareContractV1 = {\n\t\t\t\tshareId: shareIdOf(input.sessionId),\n\t\t\t\tsessionId: input.sessionId,\n\t\t\t\tpermission: \"read_only\",\n\t\t\t\tscope: input.scope,\n\t\t\t\tcreatedAt: now(),\n\t\t\t\t...(input.expiresAt === undefined ? {} : { expiresAt: input.expiresAt }),\n\t\t\t};\n\t\t\tcontracts.set(contract.shareId, { contract });\n\t\t\treturn contract;\n\t\t},\n\t\tresolve({ shareId, request, now: at }) {\n\t\t\tconst record = contracts.get(shareId);\n\t\t\tif (!record) return { status: \"not_found\", shareId };\n\t\t\tconst currentTime = at ?? now();\n\t\t\tif (record.revokedReason !== undefined) {\n\t\t\t\treturn { status: \"denied\", reason: `Share ${shareId} is revoked: ${record.revokedReason}` };\n\t\t\t}\n\t\t\tif (record.contract.expiresAt !== undefined && currentTime > record.contract.expiresAt) {\n\t\t\t\treturn { status: \"denied\", reason: `Share ${shareId} expired at ${record.contract.expiresAt}` };\n\t\t\t}\n\t\t\tconst { scope } = record.contract;\n\t\t\tswitch (request.kind) {\n\t\t\t\tcase \"messages\":\n\t\t\t\t\tif (!scope.messages) {\n\t\t\t\t\t\treturn { status: \"denied\", reason: \"Messages are outside the share scope\" };\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: \"resolved\",\n\t\t\t\t\t\tkind: \"messages\",\n\t\t\t\t\t\tcontent: options.readMessages(record.contract.sessionId),\n\t\t\t\t\t};\n\t\t\t\tcase \"diagnostics\":\n\t\t\t\t\tif (!scope.diagnostics) {\n\t\t\t\t\t\treturn { status: \"denied\", reason: \"Diagnostics are outside the share scope\" };\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: \"resolved\",\n\t\t\t\t\t\tkind: \"diagnostics\",\n\t\t\t\t\t\tcontent: options.readDiagnostics(record.contract.sessionId),\n\t\t\t\t\t};\n\t\t\t\tcase \"artifact\":\n\t\t\t\t\tif (!scope.artifacts.includes(request.artifactId)) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstatus: \"denied\",\n\t\t\t\t\t\t\treason: `Artifact ${request.artifactId} is not in the share whitelist`,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: \"resolved\",\n\t\t\t\t\t\tkind: \"artifact\",\n\t\t\t\t\t\tartifact: options.readArtifact({\n\t\t\t\t\t\t\tsessionId: record.contract.sessionId,\n\t\t\t\t\t\t\tartifactId: request.artifactId,\n\t\t\t\t\t\t}),\n\t\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\trevoke(shareId, input) {\n\t\t\tconst record = contracts.get(shareId);\n\t\t\tif (!record) throw new Error(`Share not found: ${shareId}`);\n\t\t\tif (record.revokedReason !== undefined) {\n\t\t\t\tthrow new Error(`Share ${shareId} has already been revoked`);\n\t\t\t}\n\t\t\trecord.revokedReason = input.reason;\n\t\t\treturn record.contract;\n\t\t},\n\t};\n}\n"]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export function createSessionShare(options) {
|
|
2
|
+
const now = options.now ?? (() => Date.now());
|
|
3
|
+
const contracts = new Map();
|
|
4
|
+
let shareSequence = 0;
|
|
5
|
+
const shareIdOf = (sessionId) => {
|
|
6
|
+
shareSequence += 1;
|
|
7
|
+
let hash = 0x811c9dc5;
|
|
8
|
+
const value = `${sessionId}#${shareSequence}`;
|
|
9
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
10
|
+
hash ^= value.charCodeAt(index);
|
|
11
|
+
hash = Math.imul(hash, 0x01000193);
|
|
12
|
+
}
|
|
13
|
+
return `share-${(hash >>> 0).toString(36)}`;
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
16
|
+
transport: options.transport,
|
|
17
|
+
createShare(input) {
|
|
18
|
+
const contract = {
|
|
19
|
+
shareId: shareIdOf(input.sessionId),
|
|
20
|
+
sessionId: input.sessionId,
|
|
21
|
+
permission: "read_only",
|
|
22
|
+
scope: input.scope,
|
|
23
|
+
createdAt: now(),
|
|
24
|
+
...(input.expiresAt === undefined ? {} : { expiresAt: input.expiresAt }),
|
|
25
|
+
};
|
|
26
|
+
contracts.set(contract.shareId, { contract });
|
|
27
|
+
return contract;
|
|
28
|
+
},
|
|
29
|
+
resolve({ shareId, request, now: at }) {
|
|
30
|
+
const record = contracts.get(shareId);
|
|
31
|
+
if (!record)
|
|
32
|
+
return { status: "not_found", shareId };
|
|
33
|
+
const currentTime = at ?? now();
|
|
34
|
+
if (record.revokedReason !== undefined) {
|
|
35
|
+
return { status: "denied", reason: `Share ${shareId} is revoked: ${record.revokedReason}` };
|
|
36
|
+
}
|
|
37
|
+
if (record.contract.expiresAt !== undefined && currentTime > record.contract.expiresAt) {
|
|
38
|
+
return { status: "denied", reason: `Share ${shareId} expired at ${record.contract.expiresAt}` };
|
|
39
|
+
}
|
|
40
|
+
const { scope } = record.contract;
|
|
41
|
+
switch (request.kind) {
|
|
42
|
+
case "messages":
|
|
43
|
+
if (!scope.messages) {
|
|
44
|
+
return { status: "denied", reason: "Messages are outside the share scope" };
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
status: "resolved",
|
|
48
|
+
kind: "messages",
|
|
49
|
+
content: options.readMessages(record.contract.sessionId),
|
|
50
|
+
};
|
|
51
|
+
case "diagnostics":
|
|
52
|
+
if (!scope.diagnostics) {
|
|
53
|
+
return { status: "denied", reason: "Diagnostics are outside the share scope" };
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
status: "resolved",
|
|
57
|
+
kind: "diagnostics",
|
|
58
|
+
content: options.readDiagnostics(record.contract.sessionId),
|
|
59
|
+
};
|
|
60
|
+
case "artifact":
|
|
61
|
+
if (!scope.artifacts.includes(request.artifactId)) {
|
|
62
|
+
return {
|
|
63
|
+
status: "denied",
|
|
64
|
+
reason: `Artifact ${request.artifactId} is not in the share whitelist`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
status: "resolved",
|
|
69
|
+
kind: "artifact",
|
|
70
|
+
artifact: options.readArtifact({
|
|
71
|
+
sessionId: record.contract.sessionId,
|
|
72
|
+
artifactId: request.artifactId,
|
|
73
|
+
}),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
revoke(shareId, input) {
|
|
78
|
+
const record = contracts.get(shareId);
|
|
79
|
+
if (!record)
|
|
80
|
+
throw new Error(`Share not found: ${shareId}`);
|
|
81
|
+
if (record.revokedReason !== undefined) {
|
|
82
|
+
throw new Error(`Share ${shareId} has already been revoked`);
|
|
83
|
+
}
|
|
84
|
+
record.revokedReason = input.reason;
|
|
85
|
+
return record.contract;
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=session-share.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-share.js","sourceRoot":"","sources":["../../src/share/session-share.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * session-share contract (2.6c) — an explicit, revocable share contract with\n * a permission context, scope whitelist, and artifact references.\n *\n * A share contract is created for one session with a read-only permission\n * context and an explicit scope (messages on/off, artifact whitelist).\n * Resolution fails structurally for revoked, expired, out-of-scope, or\n * unknown requests — nothing is implicitly included. Revocation is the\n * cancellation path and is terminal. Transports are injected explicitly by\n * the caller (the kernel ships none); HTML/viewer integration is 2.6d.\n */\nimport type { JsonValue } from \"@agent-forge/ai\";\n\nexport interface ShareScopeV1 {\n\treadonly messages: boolean;\n\t/** Exact artifact references shareable under this contract. */\n\treadonly artifacts: readonly string[];\n\treadonly diagnostics: boolean;\n}\n\nexport interface ShareContractV1 {\n\treadonly shareId: string;\n\treadonly sessionId: string;\n\treadonly permission: \"read_only\";\n\treadonly scope: ShareScopeV1;\n\treadonly createdAt: number;\n\treadonly expiresAt?: number;\n}\n\nexport interface ShareArtifactInputV1 {\n\treadonly artifactId: string;\n\treadonly mediaType: string;\n\treadonly bytesBase64: string;\n}\n\nexport type ShareResolveRequestV1 =\n\t| { readonly kind: \"messages\" }\n\t| { readonly kind: \"diagnostics\" }\n\t| { readonly kind: \"artifact\"; readonly artifactId: string };\n\nexport type ShareResolveResultV1 =\n\t| { readonly status: \"resolved\"; readonly kind: \"messages\"; readonly content: JsonValue }\n\t| { readonly status: \"resolved\"; readonly kind: \"diagnostics\"; readonly content: JsonValue }\n\t| { readonly status: \"resolved\"; readonly kind: \"artifact\"; readonly artifact: ShareArtifactInputV1 }\n\t| { readonly status: \"denied\"; readonly reason: string }\n\t| { readonly status: \"not_found\"; readonly shareId: string };\n\nexport type ShareTransportPayloadV1 = JsonValue | ShareResolveResultV1;\n\nexport interface ShareTransportV1 {\n\treadonly id: string;\n\tsend(input: { readonly contract: ShareContractV1; readonly payload: ShareTransportPayloadV1 }): {\n\t\treadonly accepted: boolean;\n\t};\n}\n\nexport interface SessionShareManagerV1 {\n\tcreateShare(input: {\n\t\treadonly sessionId: string;\n\t\treadonly scope: ShareScopeV1;\n\t\treadonly expiresAt?: number;\n\t}): ShareContractV1;\n\tresolve(input: {\n\t\treadonly shareId: string;\n\t\treadonly request: ShareResolveRequestV1;\n\t\treadonly now?: number;\n\t}): ShareResolveResultV1;\n\trevoke(shareId: string, input: { readonly reason: string }): ShareContractV1;\n\treadonly transport: ShareTransportV1;\n}\n\nexport function createSessionShare(options: {\n\t/** Provider for the session's message transcript (JSON-safe). */\n\treadonly readMessages: (sessionId: string) => JsonValue;\n\t/** Provider for the session's diagnostics (JSON-safe). */\n\treadonly readDiagnostics: (sessionId: string) => JsonValue;\n\t/** Provider for artifact bytes (base64); wired to the 2.6a store by the caller. */\n\treadonly readArtifact: (input: { readonly sessionId: string; readonly artifactId: string }) => ShareArtifactInputV1;\n\treadonly transport: ShareTransportV1;\n\treadonly now?: () => number;\n}): SessionShareManagerV1 {\n\tconst now = options.now ?? (() => Date.now());\n\tconst contracts = new Map<string, { contract: ShareContractV1; revokedReason?: string }>();\n\tlet shareSequence = 0;\n\n\tconst shareIdOf = (sessionId: string): string => {\n\t\tshareSequence += 1;\n\t\tlet hash = 0x811c9dc5;\n\t\tconst value = `${sessionId}#${shareSequence}`;\n\t\tfor (let index = 0; index < value.length; index += 1) {\n\t\t\thash ^= value.charCodeAt(index);\n\t\t\thash = Math.imul(hash, 0x01000193);\n\t\t}\n\t\treturn `share-${(hash >>> 0).toString(36)}`;\n\t};\n\n\treturn {\n\t\ttransport: options.transport,\n\t\tcreateShare(input) {\n\t\t\tconst contract: ShareContractV1 = {\n\t\t\t\tshareId: shareIdOf(input.sessionId),\n\t\t\t\tsessionId: input.sessionId,\n\t\t\t\tpermission: \"read_only\",\n\t\t\t\tscope: input.scope,\n\t\t\t\tcreatedAt: now(),\n\t\t\t\t...(input.expiresAt === undefined ? {} : { expiresAt: input.expiresAt }),\n\t\t\t};\n\t\t\tcontracts.set(contract.shareId, { contract });\n\t\t\treturn contract;\n\t\t},\n\t\tresolve({ shareId, request, now: at }) {\n\t\t\tconst record = contracts.get(shareId);\n\t\t\tif (!record) return { status: \"not_found\", shareId };\n\t\t\tconst currentTime = at ?? now();\n\t\t\tif (record.revokedReason !== undefined) {\n\t\t\t\treturn { status: \"denied\", reason: `Share ${shareId} is revoked: ${record.revokedReason}` };\n\t\t\t}\n\t\t\tif (record.contract.expiresAt !== undefined && currentTime > record.contract.expiresAt) {\n\t\t\t\treturn { status: \"denied\", reason: `Share ${shareId} expired at ${record.contract.expiresAt}` };\n\t\t\t}\n\t\t\tconst { scope } = record.contract;\n\t\t\tswitch (request.kind) {\n\t\t\t\tcase \"messages\":\n\t\t\t\t\tif (!scope.messages) {\n\t\t\t\t\t\treturn { status: \"denied\", reason: \"Messages are outside the share scope\" };\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: \"resolved\",\n\t\t\t\t\t\tkind: \"messages\",\n\t\t\t\t\t\tcontent: options.readMessages(record.contract.sessionId),\n\t\t\t\t\t};\n\t\t\t\tcase \"diagnostics\":\n\t\t\t\t\tif (!scope.diagnostics) {\n\t\t\t\t\t\treturn { status: \"denied\", reason: \"Diagnostics are outside the share scope\" };\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: \"resolved\",\n\t\t\t\t\t\tkind: \"diagnostics\",\n\t\t\t\t\t\tcontent: options.readDiagnostics(record.contract.sessionId),\n\t\t\t\t\t};\n\t\t\t\tcase \"artifact\":\n\t\t\t\t\tif (!scope.artifacts.includes(request.artifactId)) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstatus: \"denied\",\n\t\t\t\t\t\t\treason: `Artifact ${request.artifactId} is not in the share whitelist`,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: \"resolved\",\n\t\t\t\t\t\tkind: \"artifact\",\n\t\t\t\t\t\tartifact: options.readArtifact({\n\t\t\t\t\t\t\tsessionId: record.contract.sessionId,\n\t\t\t\t\t\t\tartifactId: request.artifactId,\n\t\t\t\t\t\t}),\n\t\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\trevoke(shareId, input) {\n\t\t\tconst record = contracts.get(shareId);\n\t\t\tif (!record) throw new Error(`Share not found: ${shareId}`);\n\t\t\tif (record.revokedReason !== undefined) {\n\t\t\t\tthrow new Error(`Share ${shareId} has already been revoked`);\n\t\t\t}\n\t\t\trecord.revokedReason = input.reason;\n\t\t\treturn record.contract;\n\t\t},\n\t};\n}\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* session-share viewer integration (2.6d) — renders share resolution results
|
|
3
|
+
* into cross-host viewer documents with failure recovery.
|
|
4
|
+
*
|
|
5
|
+
* One deterministic render produces both an HTML view (for the interactive
|
|
6
|
+
* viewer, with all content HTML-escaped — injection can never cross the
|
|
7
|
+
* viewer boundary) and a JSON payload (for cross-host mocks and structured
|
|
8
|
+
* hosts). Denied/not-found resolutions render as explicit failure views
|
|
9
|
+
* carrying the denial reason: the viewer never crashes on a failed share
|
|
10
|
+
* and never renders an unexplained empty page. The core `/share` command
|
|
11
|
+
* path itself stays in the session layer.
|
|
12
|
+
*/
|
|
13
|
+
import type { JsonValue } from "@agent-forge/ai";
|
|
14
|
+
import type { ShareContractV1, ShareResolveResultV1 } from "./session-share.ts";
|
|
15
|
+
export interface ShareViewV1 {
|
|
16
|
+
readonly shareId: string;
|
|
17
|
+
readonly state: "resolved" | "failed";
|
|
18
|
+
readonly kind?: string;
|
|
19
|
+
readonly html: string;
|
|
20
|
+
readonly payload: JsonValue;
|
|
21
|
+
}
|
|
22
|
+
export interface ShareViewerV1 {
|
|
23
|
+
render(input: {
|
|
24
|
+
readonly contract: ShareContractV1;
|
|
25
|
+
readonly result: ShareResolveResultV1;
|
|
26
|
+
}): ShareViewV1;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Renders one already-shared transcript artifact (e.g. the session JSONL a
|
|
30
|
+
* `/share` target published) into the viewer document. This is the
|
|
31
|
+
* consumption side of 2.6d: callers hand over primitive shared-artifact
|
|
32
|
+
* facts and the synthesis of the render input stays inside the viewer
|
|
33
|
+
* module. The synthetic contract only drives the shareId into the rendered
|
|
34
|
+
* markup and payload; `createdAt` is never rendered, so callers pass no
|
|
35
|
+
* timestamp.
|
|
36
|
+
*/
|
|
37
|
+
export declare function renderSharedTranscriptView(input: {
|
|
38
|
+
readonly shareId: string;
|
|
39
|
+
readonly sessionId: string;
|
|
40
|
+
readonly transcriptLines: readonly string[];
|
|
41
|
+
}): ShareViewV1;
|
|
42
|
+
export declare function createShareViewer(): ShareViewerV1;
|
|
43
|
+
//# sourceMappingURL=share-viewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-viewer.d.ts","sourceRoot":"","sources":["../../src/share/share-viewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;KAAE,GAAG,WAAW,CAAC;CAC1G;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C,GAAG,WAAW,CAed;AAED,wBAAgB,iBAAiB,IAAI,aAAa,CA6DjD","sourcesContent":["/**\n * session-share viewer integration (2.6d) — renders share resolution results\n * into cross-host viewer documents with failure recovery.\n *\n * One deterministic render produces both an HTML view (for the interactive\n * viewer, with all content HTML-escaped — injection can never cross the\n * viewer boundary) and a JSON payload (for cross-host mocks and structured\n * hosts). Denied/not-found resolutions render as explicit failure views\n * carrying the denial reason: the viewer never crashes on a failed share\n * and never renders an unexplained empty page. The core `/share` command\n * path itself stays in the session layer.\n */\nimport type { JsonValue } from \"@agent-forge/ai\";\nimport type { ShareContractV1, ShareResolveResultV1 } from \"./session-share.ts\";\n\nexport interface ShareViewV1 {\n\treadonly shareId: string;\n\treadonly state: \"resolved\" | \"failed\";\n\treadonly kind?: string;\n\treadonly html: string;\n\treadonly payload: JsonValue;\n}\n\nexport interface ShareViewerV1 {\n\trender(input: { readonly contract: ShareContractV1; readonly result: ShareResolveResultV1 }): ShareViewV1;\n}\n\nfunction escapeHtml(value: string): string {\n\treturn value\n\t\t.replaceAll(\"&\", \"&\")\n\t\t.replaceAll(\"<\", \"<\")\n\t\t.replaceAll(\">\", \">\")\n\t\t.replaceAll('\"', \""\")\n\t\t.replaceAll(\"'\", \"'\");\n}\n\nfunction failureView(shareId: string, reason: string): string {\n\treturn [\n\t\t`<article class=\"share-share-failure\" data-share=\"${escapeHtml(shareId)}\">`,\n\t\t`<h1>Share unavailable</h1>`,\n\t\t`<p class=\"share-reason\">${escapeHtml(reason)}</p>`,\n\t\t`</article>`,\n\t].join(\"\\n\");\n}\n\n/**\n * Renders one already-shared transcript artifact (e.g. the session JSONL a\n * `/share` target published) into the viewer document. This is the\n * consumption side of 2.6d: callers hand over primitive shared-artifact\n * facts and the synthesis of the render input stays inside the viewer\n * module. The synthetic contract only drives the shareId into the rendered\n * markup and payload; `createdAt` is never rendered, so callers pass no\n * timestamp.\n */\nexport function renderSharedTranscriptView(input: {\n\treadonly shareId: string;\n\treadonly sessionId: string;\n\treadonly transcriptLines: readonly string[];\n}): ShareViewV1 {\n\treturn createShareViewer().render({\n\t\tcontract: {\n\t\t\tshareId: input.shareId,\n\t\t\tsessionId: input.sessionId,\n\t\t\tpermission: \"read_only\",\n\t\t\tscope: { messages: true, artifacts: [], diagnostics: true },\n\t\t\tcreatedAt: 0,\n\t\t},\n\t\tresult: {\n\t\t\tstatus: \"resolved\",\n\t\t\tkind: \"messages\",\n\t\t\tcontent: { sessionId: input.sessionId, turns: [...input.transcriptLines] },\n\t\t},\n\t});\n}\n\nexport function createShareViewer(): ShareViewerV1 {\n\treturn {\n\t\trender({ contract, result }) {\n\t\t\tif (result.status !== \"resolved\") {\n\t\t\t\tconst reason = result.status === \"denied\" ? result.reason : `Unknown share: ${result.shareId}`;\n\t\t\t\treturn {\n\t\t\t\t\tshareId: contract.shareId,\n\t\t\t\t\tstate: \"failed\",\n\t\t\t\t\thtml: failureView(contract.shareId, reason),\n\t\t\t\t\tpayload: { shareId: contract.shareId, state: \"failed\", reason },\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tlet bodyHtml: string;\n\t\t\tlet payload: JsonValue;\n\t\t\tswitch (result.kind) {\n\t\t\t\tcase \"messages\": {\n\t\t\t\t\tconst content = result.content as { readonly turns?: readonly string[] };\n\t\t\t\t\tconst turns = Array.isArray(content.turns) ? content.turns : [];\n\t\t\t\t\tbodyHtml = [\n\t\t\t\t\t\t`<h1>Shared messages</h1>`,\n\t\t\t\t\t\t`<ol class=\"share-turns\">`,\n\t\t\t\t\t\t...turns.map((turn) => `<li>${escapeHtml(String(turn))}</li>`),\n\t\t\t\t\t\t`</ol>`,\n\t\t\t\t\t].join(\"\\n\");\n\t\t\t\t\tpayload = { shareId: contract.shareId, state: \"resolved\", kind: \"messages\", turns: [...turns] };\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"diagnostics\": {\n\t\t\t\t\tbodyHtml = `<h1>Shared diagnostics</h1><pre class=\"share-diagnostics\">${escapeHtml(JSON.stringify(result.content))}</pre>`;\n\t\t\t\t\tpayload = { shareId: contract.shareId, state: \"resolved\", kind: \"diagnostics\", content: result.content };\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"artifact\": {\n\t\t\t\t\tbodyHtml = [\n\t\t\t\t\t\t`<h1>Shared artifact</h1>`,\n\t\t\t\t\t\t`<p class=\"share-artifact\" data-artifact=\"${escapeHtml(result.artifact.artifactId)}\">`,\n\t\t\t\t\t\t`${escapeHtml(result.artifact.mediaType)} · ${escapeHtml(result.artifact.bytesBase64)}`,\n\t\t\t\t\t\t`</p>`,\n\t\t\t\t\t].join(\"\\n\");\n\t\t\t\t\tpayload = {\n\t\t\t\t\t\tshareId: contract.shareId,\n\t\t\t\t\t\tstate: \"resolved\",\n\t\t\t\t\t\tkind: \"artifact\",\n\t\t\t\t\t\tartifact: { ...result.artifact },\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbodyHtml = failureView(contract.shareId, \"Unsupported resolution kind\");\n\t\t\t\t\tpayload = { shareId: contract.shareId, state: \"failed\", reason: \"unsupported kind\" };\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tshareId: contract.shareId,\n\t\t\t\tstate: \"resolved\",\n\t\t\t\tkind: result.kind,\n\t\t\t\thtml: `<article class=\"share-view\" data-share=\"${escapeHtml(contract.shareId)}\">\\n${bodyHtml}\\n</article>`,\n\t\t\t\tpayload,\n\t\t\t};\n\t\t},\n\t};\n}\n"]}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
function escapeHtml(value) {
|
|
2
|
+
return value
|
|
3
|
+
.replaceAll("&", "&")
|
|
4
|
+
.replaceAll("<", "<")
|
|
5
|
+
.replaceAll(">", ">")
|
|
6
|
+
.replaceAll('"', """)
|
|
7
|
+
.replaceAll("'", "'");
|
|
8
|
+
}
|
|
9
|
+
function failureView(shareId, reason) {
|
|
10
|
+
return [
|
|
11
|
+
`<article class="share-share-failure" data-share="${escapeHtml(shareId)}">`,
|
|
12
|
+
`<h1>Share unavailable</h1>`,
|
|
13
|
+
`<p class="share-reason">${escapeHtml(reason)}</p>`,
|
|
14
|
+
`</article>`,
|
|
15
|
+
].join("\n");
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Renders one already-shared transcript artifact (e.g. the session JSONL a
|
|
19
|
+
* `/share` target published) into the viewer document. This is the
|
|
20
|
+
* consumption side of 2.6d: callers hand over primitive shared-artifact
|
|
21
|
+
* facts and the synthesis of the render input stays inside the viewer
|
|
22
|
+
* module. The synthetic contract only drives the shareId into the rendered
|
|
23
|
+
* markup and payload; `createdAt` is never rendered, so callers pass no
|
|
24
|
+
* timestamp.
|
|
25
|
+
*/
|
|
26
|
+
export function renderSharedTranscriptView(input) {
|
|
27
|
+
return createShareViewer().render({
|
|
28
|
+
contract: {
|
|
29
|
+
shareId: input.shareId,
|
|
30
|
+
sessionId: input.sessionId,
|
|
31
|
+
permission: "read_only",
|
|
32
|
+
scope: { messages: true, artifacts: [], diagnostics: true },
|
|
33
|
+
createdAt: 0,
|
|
34
|
+
},
|
|
35
|
+
result: {
|
|
36
|
+
status: "resolved",
|
|
37
|
+
kind: "messages",
|
|
38
|
+
content: { sessionId: input.sessionId, turns: [...input.transcriptLines] },
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export function createShareViewer() {
|
|
43
|
+
return {
|
|
44
|
+
render({ contract, result }) {
|
|
45
|
+
if (result.status !== "resolved") {
|
|
46
|
+
const reason = result.status === "denied" ? result.reason : `Unknown share: ${result.shareId}`;
|
|
47
|
+
return {
|
|
48
|
+
shareId: contract.shareId,
|
|
49
|
+
state: "failed",
|
|
50
|
+
html: failureView(contract.shareId, reason),
|
|
51
|
+
payload: { shareId: contract.shareId, state: "failed", reason },
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
let bodyHtml;
|
|
55
|
+
let payload;
|
|
56
|
+
switch (result.kind) {
|
|
57
|
+
case "messages": {
|
|
58
|
+
const content = result.content;
|
|
59
|
+
const turns = Array.isArray(content.turns) ? content.turns : [];
|
|
60
|
+
bodyHtml = [
|
|
61
|
+
`<h1>Shared messages</h1>`,
|
|
62
|
+
`<ol class="share-turns">`,
|
|
63
|
+
...turns.map((turn) => `<li>${escapeHtml(String(turn))}</li>`),
|
|
64
|
+
`</ol>`,
|
|
65
|
+
].join("\n");
|
|
66
|
+
payload = { shareId: contract.shareId, state: "resolved", kind: "messages", turns: [...turns] };
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case "diagnostics": {
|
|
70
|
+
bodyHtml = `<h1>Shared diagnostics</h1><pre class="share-diagnostics">${escapeHtml(JSON.stringify(result.content))}</pre>`;
|
|
71
|
+
payload = { shareId: contract.shareId, state: "resolved", kind: "diagnostics", content: result.content };
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
case "artifact": {
|
|
75
|
+
bodyHtml = [
|
|
76
|
+
`<h1>Shared artifact</h1>`,
|
|
77
|
+
`<p class="share-artifact" data-artifact="${escapeHtml(result.artifact.artifactId)}">`,
|
|
78
|
+
`${escapeHtml(result.artifact.mediaType)} · ${escapeHtml(result.artifact.bytesBase64)}`,
|
|
79
|
+
`</p>`,
|
|
80
|
+
].join("\n");
|
|
81
|
+
payload = {
|
|
82
|
+
shareId: contract.shareId,
|
|
83
|
+
state: "resolved",
|
|
84
|
+
kind: "artifact",
|
|
85
|
+
artifact: { ...result.artifact },
|
|
86
|
+
};
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
default:
|
|
90
|
+
bodyHtml = failureView(contract.shareId, "Unsupported resolution kind");
|
|
91
|
+
payload = { shareId: contract.shareId, state: "failed", reason: "unsupported kind" };
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
shareId: contract.shareId,
|
|
95
|
+
state: "resolved",
|
|
96
|
+
kind: result.kind,
|
|
97
|
+
html: `<article class="share-view" data-share="${escapeHtml(contract.shareId)}">\n${bodyHtml}\n</article>`,
|
|
98
|
+
payload,
|
|
99
|
+
};
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=share-viewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-viewer.js","sourceRoot":"","sources":["../../src/share/share-viewer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * session-share viewer integration (2.6d) — renders share resolution results\n * into cross-host viewer documents with failure recovery.\n *\n * One deterministic render produces both an HTML view (for the interactive\n * viewer, with all content HTML-escaped — injection can never cross the\n * viewer boundary) and a JSON payload (for cross-host mocks and structured\n * hosts). Denied/not-found resolutions render as explicit failure views\n * carrying the denial reason: the viewer never crashes on a failed share\n * and never renders an unexplained empty page. The core `/share` command\n * path itself stays in the session layer.\n */\nimport type { JsonValue } from \"@agent-forge/ai\";\nimport type { ShareContractV1, ShareResolveResultV1 } from \"./session-share.ts\";\n\nexport interface ShareViewV1 {\n\treadonly shareId: string;\n\treadonly state: \"resolved\" | \"failed\";\n\treadonly kind?: string;\n\treadonly html: string;\n\treadonly payload: JsonValue;\n}\n\nexport interface ShareViewerV1 {\n\trender(input: { readonly contract: ShareContractV1; readonly result: ShareResolveResultV1 }): ShareViewV1;\n}\n\nfunction escapeHtml(value: string): string {\n\treturn value\n\t\t.replaceAll(\"&\", \"&\")\n\t\t.replaceAll(\"<\", \"<\")\n\t\t.replaceAll(\">\", \">\")\n\t\t.replaceAll('\"', \""\")\n\t\t.replaceAll(\"'\", \"'\");\n}\n\nfunction failureView(shareId: string, reason: string): string {\n\treturn [\n\t\t`<article class=\"share-share-failure\" data-share=\"${escapeHtml(shareId)}\">`,\n\t\t`<h1>Share unavailable</h1>`,\n\t\t`<p class=\"share-reason\">${escapeHtml(reason)}</p>`,\n\t\t`</article>`,\n\t].join(\"\\n\");\n}\n\n/**\n * Renders one already-shared transcript artifact (e.g. the session JSONL a\n * `/share` target published) into the viewer document. This is the\n * consumption side of 2.6d: callers hand over primitive shared-artifact\n * facts and the synthesis of the render input stays inside the viewer\n * module. The synthetic contract only drives the shareId into the rendered\n * markup and payload; `createdAt` is never rendered, so callers pass no\n * timestamp.\n */\nexport function renderSharedTranscriptView(input: {\n\treadonly shareId: string;\n\treadonly sessionId: string;\n\treadonly transcriptLines: readonly string[];\n}): ShareViewV1 {\n\treturn createShareViewer().render({\n\t\tcontract: {\n\t\t\tshareId: input.shareId,\n\t\t\tsessionId: input.sessionId,\n\t\t\tpermission: \"read_only\",\n\t\t\tscope: { messages: true, artifacts: [], diagnostics: true },\n\t\t\tcreatedAt: 0,\n\t\t},\n\t\tresult: {\n\t\t\tstatus: \"resolved\",\n\t\t\tkind: \"messages\",\n\t\t\tcontent: { sessionId: input.sessionId, turns: [...input.transcriptLines] },\n\t\t},\n\t});\n}\n\nexport function createShareViewer(): ShareViewerV1 {\n\treturn {\n\t\trender({ contract, result }) {\n\t\t\tif (result.status !== \"resolved\") {\n\t\t\t\tconst reason = result.status === \"denied\" ? result.reason : `Unknown share: ${result.shareId}`;\n\t\t\t\treturn {\n\t\t\t\t\tshareId: contract.shareId,\n\t\t\t\t\tstate: \"failed\",\n\t\t\t\t\thtml: failureView(contract.shareId, reason),\n\t\t\t\t\tpayload: { shareId: contract.shareId, state: \"failed\", reason },\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tlet bodyHtml: string;\n\t\t\tlet payload: JsonValue;\n\t\t\tswitch (result.kind) {\n\t\t\t\tcase \"messages\": {\n\t\t\t\t\tconst content = result.content as { readonly turns?: readonly string[] };\n\t\t\t\t\tconst turns = Array.isArray(content.turns) ? content.turns : [];\n\t\t\t\t\tbodyHtml = [\n\t\t\t\t\t\t`<h1>Shared messages</h1>`,\n\t\t\t\t\t\t`<ol class=\"share-turns\">`,\n\t\t\t\t\t\t...turns.map((turn) => `<li>${escapeHtml(String(turn))}</li>`),\n\t\t\t\t\t\t`</ol>`,\n\t\t\t\t\t].join(\"\\n\");\n\t\t\t\t\tpayload = { shareId: contract.shareId, state: \"resolved\", kind: \"messages\", turns: [...turns] };\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"diagnostics\": {\n\t\t\t\t\tbodyHtml = `<h1>Shared diagnostics</h1><pre class=\"share-diagnostics\">${escapeHtml(JSON.stringify(result.content))}</pre>`;\n\t\t\t\t\tpayload = { shareId: contract.shareId, state: \"resolved\", kind: \"diagnostics\", content: result.content };\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"artifact\": {\n\t\t\t\t\tbodyHtml = [\n\t\t\t\t\t\t`<h1>Shared artifact</h1>`,\n\t\t\t\t\t\t`<p class=\"share-artifact\" data-artifact=\"${escapeHtml(result.artifact.artifactId)}\">`,\n\t\t\t\t\t\t`${escapeHtml(result.artifact.mediaType)} · ${escapeHtml(result.artifact.bytesBase64)}`,\n\t\t\t\t\t\t`</p>`,\n\t\t\t\t\t].join(\"\\n\");\n\t\t\t\t\tpayload = {\n\t\t\t\t\t\tshareId: contract.shareId,\n\t\t\t\t\t\tstate: \"resolved\",\n\t\t\t\t\t\tkind: \"artifact\",\n\t\t\t\t\t\tartifact: { ...result.artifact },\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbodyHtml = failureView(contract.shareId, \"Unsupported resolution kind\");\n\t\t\t\t\tpayload = { shareId: contract.shareId, state: \"failed\", reason: \"unsupported kind\" };\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tshareId: contract.shareId,\n\t\t\t\tstate: \"resolved\",\n\t\t\t\tkind: result.kind,\n\t\t\t\thtml: `<article class=\"share-view\" data-share=\"${escapeHtml(contract.shareId)}\">\\n${bodyHtml}\\n</article>`,\n\t\t\t\tpayload,\n\t\t\t};\n\t\t},\n\t};\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createPluginTestKit, type PluginTestKit, type PluginTestKitOptions, type PluginTestKitPlugin, type PluginTestKitTranscript, repeatPluginTestKit, } from "./plugin-testkit.ts";
|
|
2
|
+
export { createRuntimeOnlyDeliveryQueue, MODEL_STREAM_BACKPRESSURE_OVERFLOW_CODE, RuntimeOnlyBackpressureOverflowError, type RuntimeOnlyDeliveryQueue, type RuntimeOnlyDeliveryQueueOptions, type RuntimeOnlyDeliveryQueueSnapshot, type RuntimeOnlyDeliveryQueueStatus, } from "./runtime-delivery-queue.ts";
|
|
3
|
+
export { createSessionPluginTestKit, repeatSessionPluginTestKit, type SessionPluginTestKit, type SessionPluginTestKitInspector, type SessionPluginTestKitOptions, type SessionPluginTestKitPlugin, type SessionPluginTestKitTranscript, } from "./session-plugin-testkit.ts";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,mBAAmB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,8BAA8B,EAC9B,uCAAuC,EACvC,oCAAoC,EACpC,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,GACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,0BAA0B,EAC1B,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,GACnC,MAAM,6BAA6B,CAAC","sourcesContent":["// Memory testkit moved to the @agent-forge/plugin-memory package with the\n// capability itself (D-075 S4 fourth batch); consumers import it from there.\nexport {\n\tcreatePluginTestKit,\n\ttype PluginTestKit,\n\ttype PluginTestKitOptions,\n\ttype PluginTestKitPlugin,\n\ttype PluginTestKitTranscript,\n\trepeatPluginTestKit,\n} from \"./plugin-testkit.ts\";\nexport {\n\tcreateRuntimeOnlyDeliveryQueue,\n\tMODEL_STREAM_BACKPRESSURE_OVERFLOW_CODE,\n\tRuntimeOnlyBackpressureOverflowError,\n\ttype RuntimeOnlyDeliveryQueue,\n\ttype RuntimeOnlyDeliveryQueueOptions,\n\ttype RuntimeOnlyDeliveryQueueSnapshot,\n\ttype RuntimeOnlyDeliveryQueueStatus,\n} from \"./runtime-delivery-queue.ts\";\nexport {\n\tcreateSessionPluginTestKit,\n\trepeatSessionPluginTestKit,\n\ttype SessionPluginTestKit,\n\ttype SessionPluginTestKitInspector,\n\ttype SessionPluginTestKitOptions,\n\ttype SessionPluginTestKitPlugin,\n\ttype SessionPluginTestKitTranscript,\n} from \"./session-plugin-testkit.ts\";\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Memory testkit moved to the @agent-forge/plugin-memory package with the
|
|
2
|
+
// capability itself (D-075 S4 fourth batch); consumers import it from there.
|
|
3
|
+
export { createPluginTestKit, repeatPluginTestKit, } from "./plugin-testkit.js";
|
|
4
|
+
export { createRuntimeOnlyDeliveryQueue, MODEL_STREAM_BACKPRESSURE_OVERFLOW_CODE, RuntimeOnlyBackpressureOverflowError, } from "./runtime-delivery-queue.js";
|
|
5
|
+
export { createSessionPluginTestKit, repeatSessionPluginTestKit, } from "./session-plugin-testkit.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,6EAA6E;AAC7E,OAAO,EACN,mBAAmB,EAKnB,mBAAmB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,8BAA8B,EAC9B,uCAAuC,EACvC,oCAAoC,GAKpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,0BAA0B,EAC1B,0BAA0B,GAM1B,MAAM,6BAA6B,CAAC","sourcesContent":["// Memory testkit moved to the @agent-forge/plugin-memory package with the\n// capability itself (D-075 S4 fourth batch); consumers import it from there.\nexport {\n\tcreatePluginTestKit,\n\ttype PluginTestKit,\n\ttype PluginTestKitOptions,\n\ttype PluginTestKitPlugin,\n\ttype PluginTestKitTranscript,\n\trepeatPluginTestKit,\n} from \"./plugin-testkit.ts\";\nexport {\n\tcreateRuntimeOnlyDeliveryQueue,\n\tMODEL_STREAM_BACKPRESSURE_OVERFLOW_CODE,\n\tRuntimeOnlyBackpressureOverflowError,\n\ttype RuntimeOnlyDeliveryQueue,\n\ttype RuntimeOnlyDeliveryQueueOptions,\n\ttype RuntimeOnlyDeliveryQueueSnapshot,\n\ttype RuntimeOnlyDeliveryQueueStatus,\n} from \"./runtime-delivery-queue.ts\";\nexport {\n\tcreateSessionPluginTestKit,\n\trepeatSessionPluginTestKit,\n\ttype SessionPluginTestKit,\n\ttype SessionPluginTestKitInspector,\n\ttype SessionPluginTestKitOptions,\n\ttype SessionPluginTestKitPlugin,\n\ttype SessionPluginTestKitTranscript,\n} from \"./session-plugin-testkit.ts\";\n"]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock AI server (3.1) — a deterministic, fail-closed mock model endpoint
|
|
3
|
+
* driven by scenario fixtures with fault injection.
|
|
4
|
+
*
|
|
5
|
+
* Fail-closed rules: a request that matches no fixture is an explicit
|
|
6
|
+
* `unmatched_request` error (never a guessed default response); a fixture
|
|
7
|
+
* whose scripted steps are exhausted answers `scenario_exhausted` (extra
|
|
8
|
+
* requests can never slip through); and generated IDs/timestamps come only
|
|
9
|
+
* from injected deterministic sources — the mock itself contains zero
|
|
10
|
+
* randomness. Fault injection (timeout, disconnect, server error, truncated
|
|
11
|
+
* stream) is scripted per step and surfaces as structured errors or marked
|
|
12
|
+
* responses, never as a plausible-looking success. Transport gateways are
|
|
13
|
+
* later slices (3.2-3.3); real models are always out of scope here.
|
|
14
|
+
*/
|
|
15
|
+
import type { JsonValue } from "@agent-forge/ai";
|
|
16
|
+
export interface MockAiRequestV1 {
|
|
17
|
+
readonly model: string;
|
|
18
|
+
readonly messages: readonly JsonValue[];
|
|
19
|
+
readonly stream?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export type MockAiPartV1 = {
|
|
22
|
+
readonly type: "text";
|
|
23
|
+
readonly text: string;
|
|
24
|
+
} | {
|
|
25
|
+
readonly type: "tool_call";
|
|
26
|
+
readonly callId: string;
|
|
27
|
+
readonly toolName: string;
|
|
28
|
+
readonly arguments: JsonValue;
|
|
29
|
+
} | {
|
|
30
|
+
readonly type: "finish";
|
|
31
|
+
readonly reason: string;
|
|
32
|
+
};
|
|
33
|
+
export type MockAiFaultV1 = "timeout" | "disconnect" | "server_error" | "truncated_stream";
|
|
34
|
+
export interface MockAiStepV1 {
|
|
35
|
+
readonly response?: {
|
|
36
|
+
readonly parts: readonly MockAiPartV1[];
|
|
37
|
+
};
|
|
38
|
+
readonly fault?: MockAiFaultV1;
|
|
39
|
+
}
|
|
40
|
+
export interface MockAiFixtureV1 {
|
|
41
|
+
readonly scenarioId: string;
|
|
42
|
+
readonly match: {
|
|
43
|
+
readonly modelEquals?: string;
|
|
44
|
+
readonly minMessages?: number;
|
|
45
|
+
readonly streamEquals?: boolean;
|
|
46
|
+
};
|
|
47
|
+
readonly steps: readonly MockAiStepV1[];
|
|
48
|
+
}
|
|
49
|
+
export interface MockAiResponseV1 {
|
|
50
|
+
readonly scenarioId: string;
|
|
51
|
+
readonly stepIndex: number;
|
|
52
|
+
readonly id: string;
|
|
53
|
+
readonly at: number;
|
|
54
|
+
readonly parts: readonly MockAiPartV1[];
|
|
55
|
+
readonly truncated: boolean;
|
|
56
|
+
readonly serverError?: {
|
|
57
|
+
readonly status: 500;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export interface MockAiServerV1 {
|
|
61
|
+
handle(request: MockAiRequestV1): MockAiResponseV1;
|
|
62
|
+
/** Fails closed: unconsumed scripted steps are a test bug. */
|
|
63
|
+
verifyComplete(): void;
|
|
64
|
+
receivedRequests(): readonly {
|
|
65
|
+
readonly at: number;
|
|
66
|
+
readonly request: MockAiRequestV1;
|
|
67
|
+
}[];
|
|
68
|
+
}
|
|
69
|
+
export declare class MockAiError extends Error {
|
|
70
|
+
readonly code: "unmatched_request" | "scenario_exhausted" | "injected_timeout" | "injected_disconnect";
|
|
71
|
+
constructor(code: MockAiError["code"], message: string);
|
|
72
|
+
}
|
|
73
|
+
export declare function createMockAiServer(options: {
|
|
74
|
+
readonly fixtures: readonly MockAiFixtureV1[];
|
|
75
|
+
readonly now?: () => number;
|
|
76
|
+
}): MockAiServerV1;
|
|
77
|
+
//# sourceMappingURL=mock-ai-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-ai-server.d.ts","sourceRoot":"","sources":["../../src/testing/mock-ai-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GACjH;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAE3F,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;KAExC,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACf,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,gBAAgB,CAAC;IACnD,8DAA8D;IAC9D,cAAc,IAAI,IAAI,CAAC;IACvB,gBAAgB,IAAI,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;KAAE,EAAE,CAAC;CAC1F;AAED,qBAAa,WAAY,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;IAEvG,YAAY,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAIrD;CACD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC5B,GAAG,cAAc,CA0EjB","sourcesContent":["/**\n * Mock AI server (3.1) — a deterministic, fail-closed mock model endpoint\n * driven by scenario fixtures with fault injection.\n *\n * Fail-closed rules: a request that matches no fixture is an explicit\n * `unmatched_request` error (never a guessed default response); a fixture\n * whose scripted steps are exhausted answers `scenario_exhausted` (extra\n * requests can never slip through); and generated IDs/timestamps come only\n * from injected deterministic sources — the mock itself contains zero\n * randomness. Fault injection (timeout, disconnect, server error, truncated\n * stream) is scripted per step and surfaces as structured errors or marked\n * responses, never as a plausible-looking success. Transport gateways are\n * later slices (3.2-3.3); real models are always out of scope here.\n */\nimport type { JsonValue } from \"@agent-forge/ai\";\n\nexport interface MockAiRequestV1 {\n\treadonly model: string;\n\treadonly messages: readonly JsonValue[];\n\treadonly stream?: boolean;\n}\n\nexport type MockAiPartV1 =\n\t| { readonly type: \"text\"; readonly text: string }\n\t| { readonly type: \"tool_call\"; readonly callId: string; readonly toolName: string; readonly arguments: JsonValue }\n\t| { readonly type: \"finish\"; readonly reason: string };\n\nexport type MockAiFaultV1 = \"timeout\" | \"disconnect\" | \"server_error\" | \"truncated_stream\";\n\nexport interface MockAiStepV1 {\n\treadonly response?: {\n\t\treadonly parts: readonly MockAiPartV1[];\n\t\t/** Stream truncation is also expressible by omitting the finish part. */\n\t};\n\treadonly fault?: MockAiFaultV1;\n}\n\nexport interface MockAiFixtureV1 {\n\treadonly scenarioId: string;\n\treadonly match: {\n\t\treadonly modelEquals?: string;\n\t\treadonly minMessages?: number;\n\t\treadonly streamEquals?: boolean;\n\t};\n\treadonly steps: readonly MockAiStepV1[];\n}\n\nexport interface MockAiResponseV1 {\n\treadonly scenarioId: string;\n\treadonly stepIndex: number;\n\treadonly id: string;\n\treadonly at: number;\n\treadonly parts: readonly MockAiPartV1[];\n\treadonly truncated: boolean;\n\treadonly serverError?: { readonly status: 500 };\n}\n\nexport interface MockAiServerV1 {\n\thandle(request: MockAiRequestV1): MockAiResponseV1;\n\t/** Fails closed: unconsumed scripted steps are a test bug. */\n\tverifyComplete(): void;\n\treceivedRequests(): readonly { readonly at: number; readonly request: MockAiRequestV1 }[];\n}\n\nexport class MockAiError extends Error {\n\treadonly code: \"unmatched_request\" | \"scenario_exhausted\" | \"injected_timeout\" | \"injected_disconnect\";\n\n\tconstructor(code: MockAiError[\"code\"], message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"MockAiError\";\n\t\tthis.code = code;\n\t}\n}\n\nexport function createMockAiServer(options: {\n\treadonly fixtures: readonly MockAiFixtureV1[];\n\treadonly now?: () => number;\n}): MockAiServerV1 {\n\tconst now = options.now ?? (() => 0);\n\tconst consumed = new Map<string, number>();\n\tconst received: Array<{ at: number; request: MockAiRequestV1 }> = [];\n\tconst declaredScenarioIds = new Set(options.fixtures.map((fixture) => fixture.scenarioId));\n\n\tconst matches = (fixture: MockAiFixtureV1, request: MockAiRequestV1): boolean => {\n\t\tif (fixture.match.modelEquals !== undefined && request.model !== fixture.match.modelEquals) return false;\n\t\tif (fixture.match.minMessages !== undefined && request.messages.length < fixture.match.minMessages) return false;\n\t\tif (fixture.match.streamEquals !== undefined && (request.stream ?? false) !== fixture.match.streamEquals)\n\t\t\treturn false;\n\t\treturn true;\n\t};\n\n\treturn {\n\t\thandle(request) {\n\t\t\tconst at = now();\n\t\t\treceived.push({ at, request: { ...request, messages: [...request.messages] } });\n\t\t\tconst fixture = options.fixtures.find((candidate) => matches(candidate, request));\n\t\t\tif (!fixture) {\n\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\"unmatched_request\",\n\t\t\t\t\t`No fixture matches model=${request.model} messages=${request.messages.length} stream=${request.stream ?? false}; the mock is fail-closed`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst stepIndex = consumed.get(fixture.scenarioId) ?? 0;\n\t\t\tif (stepIndex >= fixture.steps.length) {\n\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\"scenario_exhausted\",\n\t\t\t\t\t`Scenario ${fixture.scenarioId} has no scripted step ${stepIndex + 1}; extra requests fail closed`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconsumed.set(fixture.scenarioId, stepIndex + 1);\n\t\t\tconst step = fixture.steps[stepIndex]!;\n\t\t\tif (step.fault === \"timeout\") {\n\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\"injected_timeout\",\n\t\t\t\t\t`Scenario ${fixture.scenarioId} step ${stepIndex} injected a timeout`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (step.fault === \"disconnect\") {\n\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\"injected_disconnect\",\n\t\t\t\t\t`Scenario ${fixture.scenarioId} step ${stepIndex} injected a disconnect`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst parts = step.response?.parts ?? [];\n\t\t\tconst truncated = step.fault === \"truncated_stream\" || !parts.some((part) => part.type === \"finish\");\n\t\t\treturn {\n\t\t\t\tscenarioId: fixture.scenarioId,\n\t\t\t\tstepIndex,\n\t\t\t\tid: `mock-${fixture.scenarioId}-${stepIndex}`,\n\t\t\t\tat,\n\t\t\t\tparts: Object.freeze([...parts]),\n\t\t\t\ttruncated,\n\t\t\t\t...(step.fault === \"server_error\" ? { serverError: { status: 500 as const } } : {}),\n\t\t\t};\n\t\t},\n\t\tverifyComplete() {\n\t\t\tfor (const fixture of options.fixtures) {\n\t\t\t\tconst consumedCount = consumed.get(fixture.scenarioId) ?? 0;\n\t\t\t\tif (consumedCount !== fixture.steps.length) {\n\t\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\t\"scenario_exhausted\",\n\t\t\t\t\t\t`Scenario ${fixture.scenarioId} has ${fixture.steps.length - consumedCount} unconsumed scripted step(s)`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvoid declaredScenarioIds;\n\t\t},\n\t\treceivedRequests() {\n\t\t\treturn Object.freeze([...received]);\n\t\t},\n\t};\n}\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export class MockAiError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
constructor(code, message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = "MockAiError";
|
|
6
|
+
this.code = code;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function createMockAiServer(options) {
|
|
10
|
+
const now = options.now ?? (() => 0);
|
|
11
|
+
const consumed = new Map();
|
|
12
|
+
const received = [];
|
|
13
|
+
const declaredScenarioIds = new Set(options.fixtures.map((fixture) => fixture.scenarioId));
|
|
14
|
+
const matches = (fixture, request) => {
|
|
15
|
+
if (fixture.match.modelEquals !== undefined && request.model !== fixture.match.modelEquals)
|
|
16
|
+
return false;
|
|
17
|
+
if (fixture.match.minMessages !== undefined && request.messages.length < fixture.match.minMessages)
|
|
18
|
+
return false;
|
|
19
|
+
if (fixture.match.streamEquals !== undefined && (request.stream ?? false) !== fixture.match.streamEquals)
|
|
20
|
+
return false;
|
|
21
|
+
return true;
|
|
22
|
+
};
|
|
23
|
+
return {
|
|
24
|
+
handle(request) {
|
|
25
|
+
const at = now();
|
|
26
|
+
received.push({ at, request: { ...request, messages: [...request.messages] } });
|
|
27
|
+
const fixture = options.fixtures.find((candidate) => matches(candidate, request));
|
|
28
|
+
if (!fixture) {
|
|
29
|
+
throw new MockAiError("unmatched_request", `No fixture matches model=${request.model} messages=${request.messages.length} stream=${request.stream ?? false}; the mock is fail-closed`);
|
|
30
|
+
}
|
|
31
|
+
const stepIndex = consumed.get(fixture.scenarioId) ?? 0;
|
|
32
|
+
if (stepIndex >= fixture.steps.length) {
|
|
33
|
+
throw new MockAiError("scenario_exhausted", `Scenario ${fixture.scenarioId} has no scripted step ${stepIndex + 1}; extra requests fail closed`);
|
|
34
|
+
}
|
|
35
|
+
consumed.set(fixture.scenarioId, stepIndex + 1);
|
|
36
|
+
const step = fixture.steps[stepIndex];
|
|
37
|
+
if (step.fault === "timeout") {
|
|
38
|
+
throw new MockAiError("injected_timeout", `Scenario ${fixture.scenarioId} step ${stepIndex} injected a timeout`);
|
|
39
|
+
}
|
|
40
|
+
if (step.fault === "disconnect") {
|
|
41
|
+
throw new MockAiError("injected_disconnect", `Scenario ${fixture.scenarioId} step ${stepIndex} injected a disconnect`);
|
|
42
|
+
}
|
|
43
|
+
const parts = step.response?.parts ?? [];
|
|
44
|
+
const truncated = step.fault === "truncated_stream" || !parts.some((part) => part.type === "finish");
|
|
45
|
+
return {
|
|
46
|
+
scenarioId: fixture.scenarioId,
|
|
47
|
+
stepIndex,
|
|
48
|
+
id: `mock-${fixture.scenarioId}-${stepIndex}`,
|
|
49
|
+
at,
|
|
50
|
+
parts: Object.freeze([...parts]),
|
|
51
|
+
truncated,
|
|
52
|
+
...(step.fault === "server_error" ? { serverError: { status: 500 } } : {}),
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
verifyComplete() {
|
|
56
|
+
for (const fixture of options.fixtures) {
|
|
57
|
+
const consumedCount = consumed.get(fixture.scenarioId) ?? 0;
|
|
58
|
+
if (consumedCount !== fixture.steps.length) {
|
|
59
|
+
throw new MockAiError("scenario_exhausted", `Scenario ${fixture.scenarioId} has ${fixture.steps.length - consumedCount} unconsumed scripted step(s)`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
void declaredScenarioIds;
|
|
63
|
+
},
|
|
64
|
+
receivedRequests() {
|
|
65
|
+
return Object.freeze([...received]);
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=mock-ai-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-ai-server.js","sourceRoot":"","sources":["../../src/testing/mock-ai-server.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Mock AI server (3.1) — a deterministic, fail-closed mock model endpoint\n * driven by scenario fixtures with fault injection.\n *\n * Fail-closed rules: a request that matches no fixture is an explicit\n * `unmatched_request` error (never a guessed default response); a fixture\n * whose scripted steps are exhausted answers `scenario_exhausted` (extra\n * requests can never slip through); and generated IDs/timestamps come only\n * from injected deterministic sources — the mock itself contains zero\n * randomness. Fault injection (timeout, disconnect, server error, truncated\n * stream) is scripted per step and surfaces as structured errors or marked\n * responses, never as a plausible-looking success. Transport gateways are\n * later slices (3.2-3.3); real models are always out of scope here.\n */\nimport type { JsonValue } from \"@agent-forge/ai\";\n\nexport interface MockAiRequestV1 {\n\treadonly model: string;\n\treadonly messages: readonly JsonValue[];\n\treadonly stream?: boolean;\n}\n\nexport type MockAiPartV1 =\n\t| { readonly type: \"text\"; readonly text: string }\n\t| { readonly type: \"tool_call\"; readonly callId: string; readonly toolName: string; readonly arguments: JsonValue }\n\t| { readonly type: \"finish\"; readonly reason: string };\n\nexport type MockAiFaultV1 = \"timeout\" | \"disconnect\" | \"server_error\" | \"truncated_stream\";\n\nexport interface MockAiStepV1 {\n\treadonly response?: {\n\t\treadonly parts: readonly MockAiPartV1[];\n\t\t/** Stream truncation is also expressible by omitting the finish part. */\n\t};\n\treadonly fault?: MockAiFaultV1;\n}\n\nexport interface MockAiFixtureV1 {\n\treadonly scenarioId: string;\n\treadonly match: {\n\t\treadonly modelEquals?: string;\n\t\treadonly minMessages?: number;\n\t\treadonly streamEquals?: boolean;\n\t};\n\treadonly steps: readonly MockAiStepV1[];\n}\n\nexport interface MockAiResponseV1 {\n\treadonly scenarioId: string;\n\treadonly stepIndex: number;\n\treadonly id: string;\n\treadonly at: number;\n\treadonly parts: readonly MockAiPartV1[];\n\treadonly truncated: boolean;\n\treadonly serverError?: { readonly status: 500 };\n}\n\nexport interface MockAiServerV1 {\n\thandle(request: MockAiRequestV1): MockAiResponseV1;\n\t/** Fails closed: unconsumed scripted steps are a test bug. */\n\tverifyComplete(): void;\n\treceivedRequests(): readonly { readonly at: number; readonly request: MockAiRequestV1 }[];\n}\n\nexport class MockAiError extends Error {\n\treadonly code: \"unmatched_request\" | \"scenario_exhausted\" | \"injected_timeout\" | \"injected_disconnect\";\n\n\tconstructor(code: MockAiError[\"code\"], message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"MockAiError\";\n\t\tthis.code = code;\n\t}\n}\n\nexport function createMockAiServer(options: {\n\treadonly fixtures: readonly MockAiFixtureV1[];\n\treadonly now?: () => number;\n}): MockAiServerV1 {\n\tconst now = options.now ?? (() => 0);\n\tconst consumed = new Map<string, number>();\n\tconst received: Array<{ at: number; request: MockAiRequestV1 }> = [];\n\tconst declaredScenarioIds = new Set(options.fixtures.map((fixture) => fixture.scenarioId));\n\n\tconst matches = (fixture: MockAiFixtureV1, request: MockAiRequestV1): boolean => {\n\t\tif (fixture.match.modelEquals !== undefined && request.model !== fixture.match.modelEquals) return false;\n\t\tif (fixture.match.minMessages !== undefined && request.messages.length < fixture.match.minMessages) return false;\n\t\tif (fixture.match.streamEquals !== undefined && (request.stream ?? false) !== fixture.match.streamEquals)\n\t\t\treturn false;\n\t\treturn true;\n\t};\n\n\treturn {\n\t\thandle(request) {\n\t\t\tconst at = now();\n\t\t\treceived.push({ at, request: { ...request, messages: [...request.messages] } });\n\t\t\tconst fixture = options.fixtures.find((candidate) => matches(candidate, request));\n\t\t\tif (!fixture) {\n\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\"unmatched_request\",\n\t\t\t\t\t`No fixture matches model=${request.model} messages=${request.messages.length} stream=${request.stream ?? false}; the mock is fail-closed`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst stepIndex = consumed.get(fixture.scenarioId) ?? 0;\n\t\t\tif (stepIndex >= fixture.steps.length) {\n\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\"scenario_exhausted\",\n\t\t\t\t\t`Scenario ${fixture.scenarioId} has no scripted step ${stepIndex + 1}; extra requests fail closed`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconsumed.set(fixture.scenarioId, stepIndex + 1);\n\t\t\tconst step = fixture.steps[stepIndex]!;\n\t\t\tif (step.fault === \"timeout\") {\n\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\"injected_timeout\",\n\t\t\t\t\t`Scenario ${fixture.scenarioId} step ${stepIndex} injected a timeout`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (step.fault === \"disconnect\") {\n\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\"injected_disconnect\",\n\t\t\t\t\t`Scenario ${fixture.scenarioId} step ${stepIndex} injected a disconnect`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst parts = step.response?.parts ?? [];\n\t\t\tconst truncated = step.fault === \"truncated_stream\" || !parts.some((part) => part.type === \"finish\");\n\t\t\treturn {\n\t\t\t\tscenarioId: fixture.scenarioId,\n\t\t\t\tstepIndex,\n\t\t\t\tid: `mock-${fixture.scenarioId}-${stepIndex}`,\n\t\t\t\tat,\n\t\t\t\tparts: Object.freeze([...parts]),\n\t\t\t\ttruncated,\n\t\t\t\t...(step.fault === \"server_error\" ? { serverError: { status: 500 as const } } : {}),\n\t\t\t};\n\t\t},\n\t\tverifyComplete() {\n\t\t\tfor (const fixture of options.fixtures) {\n\t\t\t\tconst consumedCount = consumed.get(fixture.scenarioId) ?? 0;\n\t\t\t\tif (consumedCount !== fixture.steps.length) {\n\t\t\t\t\tthrow new MockAiError(\n\t\t\t\t\t\t\"scenario_exhausted\",\n\t\t\t\t\t\t`Scenario ${fixture.scenarioId} has ${fixture.steps.length - consumedCount} unconsumed scripted step(s)`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvoid declaredScenarioIds;\n\t\t},\n\t\treceivedRequests() {\n\t\t\treturn Object.freeze([...received]);\n\t\t},\n\t};\n}\n"]}
|