@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,1189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal coding-agent runtime -> remote server assembly (1B.7h).
|
|
3
|
+
*
|
|
4
|
+
* Adapts first-party `AgentSession` instances to the public `@agent-forge/server`
|
|
5
|
+
* session boundary so a preinstalled session adapter can run a deterministic
|
|
6
|
+
* server end to end. The adapter only consumes the public `AgentSession` surface
|
|
7
|
+
* and never reads private session objects.
|
|
8
|
+
*
|
|
9
|
+
* Snapshot transcripts use positional ids (`t-<index>`) that are stable within
|
|
10
|
+
* one revision but not across history rewrites such as compaction; snapshots
|
|
11
|
+
* stay authoritative and durable replay is journal-based, so replay does not
|
|
12
|
+
* depend on these ids. Streaming is reported as snapshot-change notifications;
|
|
13
|
+
* amortized delta progress belongs to a later slice.
|
|
14
|
+
*
|
|
15
|
+
* Durable operations and artifacts (E4-c): when a `DurableServiceV1` is
|
|
16
|
+
* supplied, the service exposes the server `operations`/`artifacts` surfaces as
|
|
17
|
+
* a thin adapter over the durable service — it never creates a second artifact
|
|
18
|
+
* store. Artifact records project the protocol `ArtifactRef` 1:1 onto the SDK
|
|
19
|
+
* `OutputArtifactRef` and carry base64 bytes so remote `artifact_stat` /
|
|
20
|
+
* `artifact_read` survive restarts via the durable log replay; the runtime
|
|
21
|
+
* in-memory artifact store remains the live write path (built in
|
|
22
|
+
* capability-runtime). Keyed mutation commands (`operationId` on prompt/steer/
|
|
23
|
+
* abort/set_model/set_thinking) persist their successful response snapshots as
|
|
24
|
+
* deterministic `mutation-response:<sessionId>:<operationId>` artifact records
|
|
25
|
+
* so a retry after a restart replays the recorded response; the server's
|
|
26
|
+
* in-process LRU stays the live dedup path. Without a durable service the
|
|
27
|
+
* surfaces stay undefined and the server answers `durable_unavailable` /
|
|
28
|
+
* `not_implemented` explicitly.
|
|
29
|
+
*
|
|
30
|
+
* Deployment boundary: the durable writer lease is process-local memory. This
|
|
31
|
+
* assembly is single-instance per durable store — the durable backend's file
|
|
32
|
+
* writes are cross-process mutually exclusive (its `.lock`), while the writer
|
|
33
|
+
* lease single-instance semantics remain process-local: who should claim the
|
|
34
|
+
* lease still needs deployment-level coordination. On
|
|
35
|
+
* startup the service claims the writer lease and, when the restored state
|
|
36
|
+
* marks a dead writer (snapshot import), recovers it; a live foreign writer
|
|
37
|
+
* keeps the service unavailable instead of fighting over the lease. Operations
|
|
38
|
+
* left pending by a crashed process are swept to a rejected terminal so no
|
|
39
|
+
* submitted operation can hang as `accepted` forever.
|
|
40
|
+
*/
|
|
41
|
+
import { Buffer } from "node:buffer";
|
|
42
|
+
import { randomUUID } from "node:crypto";
|
|
43
|
+
import { PiServer, PiServerError, } from "@agent-forge/server";
|
|
44
|
+
import { DurableServiceErrorV1 } from "../durable/durable-service.js";
|
|
45
|
+
function requireIdle(session, action) {
|
|
46
|
+
if (!session.isIdle) {
|
|
47
|
+
throw new PiServerError("busy", `Cannot ${action} while the session is busy`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function toError(error) {
|
|
51
|
+
if (error instanceof PiServerError)
|
|
52
|
+
return error;
|
|
53
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
54
|
+
if (/reload in progress/i.test(message))
|
|
55
|
+
return new PiServerError("busy", message);
|
|
56
|
+
if (/compaction is in progress/i.test(message))
|
|
57
|
+
return new PiServerError("busy", message);
|
|
58
|
+
if (/already processing/i.test(message))
|
|
59
|
+
return new PiServerError("busy", message);
|
|
60
|
+
// Operational session failures (missing credentials, no active model,
|
|
61
|
+
// extension rejections) must reach the remote client with their original
|
|
62
|
+
// message instead of being folded into an unspecific internal error.
|
|
63
|
+
return new PiServerError("invalid_request", message);
|
|
64
|
+
}
|
|
65
|
+
function jsonSafe(value) {
|
|
66
|
+
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
67
|
+
return true;
|
|
68
|
+
if (typeof value === "number")
|
|
69
|
+
return Number.isFinite(value);
|
|
70
|
+
if (Array.isArray(value))
|
|
71
|
+
return value.every(jsonSafe);
|
|
72
|
+
if (typeof value !== "object" || Object.getPrototypeOf(value) !== Object.prototype)
|
|
73
|
+
return false;
|
|
74
|
+
return Object.values(value).every(jsonSafe);
|
|
75
|
+
}
|
|
76
|
+
/** Parses an adapter-owned operation payload; undefined for foreign or malformed records. */
|
|
77
|
+
function parseOperationPayload(value) {
|
|
78
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
79
|
+
return undefined;
|
|
80
|
+
const record = value;
|
|
81
|
+
if (record.status !== "pending" && record.status !== "completed" && record.status !== "rejected")
|
|
82
|
+
return undefined;
|
|
83
|
+
if (typeof record.sessionId !== "string" || record.sessionId === "")
|
|
84
|
+
return undefined;
|
|
85
|
+
if (typeof record.operationType !== "string")
|
|
86
|
+
return undefined;
|
|
87
|
+
if (typeof record.submittedAt !== "number" || !Number.isFinite(record.submittedAt))
|
|
88
|
+
return undefined;
|
|
89
|
+
let error;
|
|
90
|
+
if (record.error !== undefined) {
|
|
91
|
+
if (typeof record.error !== "object" || record.error === null || Array.isArray(record.error))
|
|
92
|
+
return undefined;
|
|
93
|
+
const entry = record.error;
|
|
94
|
+
if (typeof entry.code !== "string" || typeof entry.message !== "string")
|
|
95
|
+
return undefined;
|
|
96
|
+
error = { code: entry.code, message: entry.message };
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
status: record.status,
|
|
100
|
+
sessionId: record.sessionId,
|
|
101
|
+
operationType: record.operationType,
|
|
102
|
+
...(typeof record.idempotencyKey === "string" ? { idempotencyKey: record.idempotencyKey } : {}),
|
|
103
|
+
...(record.result === undefined ? {} : { result: record.result }),
|
|
104
|
+
...(error === undefined ? {} : { error }),
|
|
105
|
+
submittedAt: record.submittedAt,
|
|
106
|
+
...(typeof record.terminalAt === "number" ? { terminalAt: record.terminalAt } : {}),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** Parses an adapter-owned artifact payload; undefined for foreign or malformed records. */
|
|
110
|
+
function parseArtifactPayload(value) {
|
|
111
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
112
|
+
return undefined;
|
|
113
|
+
const record = value;
|
|
114
|
+
const ref = record.ref;
|
|
115
|
+
if (typeof ref !== "object" || ref === null || Array.isArray(ref))
|
|
116
|
+
return undefined;
|
|
117
|
+
const entry = ref;
|
|
118
|
+
if (typeof entry.sessionId !== "string" ||
|
|
119
|
+
typeof entry.operationId !== "string" ||
|
|
120
|
+
typeof entry.artifactId !== "string" ||
|
|
121
|
+
typeof entry.kind !== "string" ||
|
|
122
|
+
typeof entry.mediaType !== "string" ||
|
|
123
|
+
typeof entry.truncated !== "boolean" ||
|
|
124
|
+
typeof entry.createdAt !== "number" ||
|
|
125
|
+
typeof record.bytes !== "string") {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
ref: {
|
|
130
|
+
sessionId: entry.sessionId,
|
|
131
|
+
operationId: entry.operationId,
|
|
132
|
+
artifactId: entry.artifactId,
|
|
133
|
+
kind: entry.kind,
|
|
134
|
+
mediaType: entry.mediaType,
|
|
135
|
+
...(typeof entry.sizeBytes === "number" ? { sizeBytes: entry.sizeBytes } : {}),
|
|
136
|
+
truncated: entry.truncated,
|
|
137
|
+
createdAt: entry.createdAt,
|
|
138
|
+
},
|
|
139
|
+
bytes: record.bytes,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Parses a stored mutation-response payload; undefined for foreign or
|
|
144
|
+
* malformed records. The required-field assertion is deliberately minimal: the
|
|
145
|
+
* full `SessionSnapshot` shape is already enforced by the wire codec when the
|
|
146
|
+
* replayed snapshot is encoded into a response, so a damaged record only needs
|
|
147
|
+
* to fail this check to fall back to a fresh execution.
|
|
148
|
+
*/
|
|
149
|
+
function parseMutationResponsePayload(value, sessionId) {
|
|
150
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
151
|
+
return undefined;
|
|
152
|
+
const record = value;
|
|
153
|
+
if (record.id !== sessionId ||
|
|
154
|
+
typeof record.cwd !== "string" ||
|
|
155
|
+
record.cwd === "" ||
|
|
156
|
+
typeof record.revision !== "number" ||
|
|
157
|
+
!Number.isInteger(record.revision) ||
|
|
158
|
+
record.revision < 0 ||
|
|
159
|
+
!Array.isArray(record.transcript)) {
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
return value;
|
|
163
|
+
}
|
|
164
|
+
/** Protocol `ArtifactRef` is a 1:1 projection of the SDK `OutputArtifactRef`. */
|
|
165
|
+
function toProtocolArtifactRef(ref) {
|
|
166
|
+
return {
|
|
167
|
+
sessionId: ref.sessionId,
|
|
168
|
+
operationId: ref.operationId,
|
|
169
|
+
artifactId: ref.artifactId,
|
|
170
|
+
kind: ref.kind,
|
|
171
|
+
mediaType: ref.mediaType,
|
|
172
|
+
...(ref.sizeBytes === undefined ? {} : { sizeBytes: ref.sizeBytes }),
|
|
173
|
+
truncated: ref.truncated,
|
|
174
|
+
createdAt: ref.createdAt,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function projectUsage(usage) {
|
|
178
|
+
if (!usage || typeof usage !== "object" || Array.isArray(usage))
|
|
179
|
+
return undefined;
|
|
180
|
+
const record = usage;
|
|
181
|
+
const readCount = (key) => {
|
|
182
|
+
const value = record[key];
|
|
183
|
+
return typeof value === "number" && Number.isFinite(value) ? Math.max(0, Math.trunc(value)) : undefined;
|
|
184
|
+
};
|
|
185
|
+
const input = readCount("input");
|
|
186
|
+
const output = readCount("output");
|
|
187
|
+
const cacheRead = readCount("cacheRead");
|
|
188
|
+
const cacheWrite = readCount("cacheWrite");
|
|
189
|
+
const totalTokens = readCount("totalTokens");
|
|
190
|
+
if (input === undefined || output === undefined || cacheRead === undefined || cacheWrite === undefined) {
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
if (totalTokens === undefined)
|
|
194
|
+
return undefined;
|
|
195
|
+
const cost = record.cost;
|
|
196
|
+
if (!cost || typeof cost !== "object" || Array.isArray(cost))
|
|
197
|
+
return undefined;
|
|
198
|
+
const costRecord = cost;
|
|
199
|
+
const readCost = (key) => {
|
|
200
|
+
const value = costRecord[key];
|
|
201
|
+
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
202
|
+
};
|
|
203
|
+
const costInput = readCost("input");
|
|
204
|
+
const costOutput = readCost("output");
|
|
205
|
+
const costCacheRead = readCost("cacheRead");
|
|
206
|
+
const costCacheWrite = readCost("cacheWrite");
|
|
207
|
+
const costTotal = readCost("total");
|
|
208
|
+
if (costInput === undefined ||
|
|
209
|
+
costOutput === undefined ||
|
|
210
|
+
costCacheRead === undefined ||
|
|
211
|
+
costCacheWrite === undefined ||
|
|
212
|
+
costTotal === undefined) {
|
|
213
|
+
return undefined;
|
|
214
|
+
}
|
|
215
|
+
const reasoning = readCount("reasoning");
|
|
216
|
+
return {
|
|
217
|
+
input,
|
|
218
|
+
output,
|
|
219
|
+
cacheRead,
|
|
220
|
+
cacheWrite,
|
|
221
|
+
...(reasoning === undefined ? {} : { reasoning }),
|
|
222
|
+
totalTokens,
|
|
223
|
+
cost: {
|
|
224
|
+
input: costInput,
|
|
225
|
+
output: costOutput,
|
|
226
|
+
cacheRead: costCacheRead,
|
|
227
|
+
cacheWrite: costCacheWrite,
|
|
228
|
+
total: costTotal,
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
function projectUserContent(content) {
|
|
233
|
+
if (typeof content === "string")
|
|
234
|
+
return [{ type: "text", text: content }];
|
|
235
|
+
const projected = [];
|
|
236
|
+
for (const part of content) {
|
|
237
|
+
if (!part || typeof part !== "object")
|
|
238
|
+
continue;
|
|
239
|
+
const record = part;
|
|
240
|
+
if (record.type === "text" && typeof record.text === "string") {
|
|
241
|
+
projected.push({ type: "text", text: record.text });
|
|
242
|
+
}
|
|
243
|
+
else if (record.type === "image" && typeof record.data === "string" && typeof record.mimeType === "string") {
|
|
244
|
+
projected.push({ type: "image", data: record.data, mimeType: record.mimeType });
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return projected;
|
|
248
|
+
}
|
|
249
|
+
function projectToolResultContent(content) {
|
|
250
|
+
return projectUserContent(content);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Projects the current `AgentSession` messages onto the protocol transcript.
|
|
254
|
+
* Tool inputs are recovered from the matching assistant `toolCall` content;
|
|
255
|
+
* `null` marks an unrecoverable input instead of fabricating one. `!`-command
|
|
256
|
+
* bash executions project as `bash` tool items. Session-level summary and
|
|
257
|
+
* extension messages (`branchSummary`, `compactionSummary`, `custom`) project
|
|
258
|
+
* as snapshot-only `note` items; they never enter streaming progress. Note
|
|
259
|
+
* items carry the text/summary face only — custom-message `details` and image
|
|
260
|
+
* content parts are not projected. Item ids
|
|
261
|
+
* stay positional (`t-<index>`): they are stable within one revision but not
|
|
262
|
+
* across history rewrites such as compaction.
|
|
263
|
+
*/
|
|
264
|
+
export function projectSessionTranscript(session) {
|
|
265
|
+
const messages = session.messages;
|
|
266
|
+
const toolInputs = new Map();
|
|
267
|
+
for (const message of messages) {
|
|
268
|
+
if (message.role !== "assistant")
|
|
269
|
+
continue;
|
|
270
|
+
for (const part of message.content) {
|
|
271
|
+
if (part.type === "toolCall")
|
|
272
|
+
toolInputs.set(part.id, part.arguments);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
const items = [];
|
|
276
|
+
for (const message of messages) {
|
|
277
|
+
const id = `t-${items.length}`;
|
|
278
|
+
const timestamp = Math.max(0, Math.trunc(message.timestamp));
|
|
279
|
+
if (message.role === "user") {
|
|
280
|
+
items.push({
|
|
281
|
+
id,
|
|
282
|
+
role: "user",
|
|
283
|
+
content: projectUserContent(message.content),
|
|
284
|
+
timestamp,
|
|
285
|
+
});
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
if (message.role === "toolResult") {
|
|
289
|
+
const input = toolInputs.get(message.toolCallId);
|
|
290
|
+
const usage = projectUsage(message.usage);
|
|
291
|
+
const details = jsonSafe(message.details) ? message.details : undefined;
|
|
292
|
+
const base = {
|
|
293
|
+
id,
|
|
294
|
+
role: "tool",
|
|
295
|
+
toolCallId: message.toolCallId,
|
|
296
|
+
toolName: message.toolName,
|
|
297
|
+
input: input !== undefined && jsonSafe(input) ? input : null,
|
|
298
|
+
content: projectToolResultContent(message.content),
|
|
299
|
+
...(details === undefined ? {} : { details }),
|
|
300
|
+
...(usage === undefined ? {} : { usage }),
|
|
301
|
+
timestamp,
|
|
302
|
+
};
|
|
303
|
+
if (message.isError) {
|
|
304
|
+
const item = { ...base, status: "error", isError: true };
|
|
305
|
+
items.push(item);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
const item = { ...base, status: "complete", isError: false };
|
|
309
|
+
items.push(item);
|
|
310
|
+
}
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
if (message.role === "bashExecution") {
|
|
314
|
+
const failed = message.cancelled || (message.exitCode !== undefined && message.exitCode !== 0);
|
|
315
|
+
const base = {
|
|
316
|
+
id,
|
|
317
|
+
role: "tool",
|
|
318
|
+
toolCallId: `bash-${id}`,
|
|
319
|
+
toolName: "bash",
|
|
320
|
+
input: { command: message.command },
|
|
321
|
+
content: [{ type: "text", text: message.output }],
|
|
322
|
+
details: {
|
|
323
|
+
exitCode: message.exitCode ?? null,
|
|
324
|
+
cancelled: message.cancelled,
|
|
325
|
+
truncated: message.truncated,
|
|
326
|
+
},
|
|
327
|
+
timestamp,
|
|
328
|
+
};
|
|
329
|
+
if (failed) {
|
|
330
|
+
const item = { ...base, status: "error", isError: true };
|
|
331
|
+
items.push(item);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
const item = { ...base, status: "complete", isError: false };
|
|
335
|
+
items.push(item);
|
|
336
|
+
}
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
if (message.role === "branchSummary") {
|
|
340
|
+
items.push({
|
|
341
|
+
id,
|
|
342
|
+
role: "note",
|
|
343
|
+
kind: "branchSummary",
|
|
344
|
+
text: message.summary,
|
|
345
|
+
fromId: message.fromId,
|
|
346
|
+
timestamp,
|
|
347
|
+
});
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
if (message.role === "compactionSummary") {
|
|
351
|
+
items.push({
|
|
352
|
+
id,
|
|
353
|
+
role: "note",
|
|
354
|
+
kind: "compactionSummary",
|
|
355
|
+
text: message.summary,
|
|
356
|
+
tokensBefore: Math.max(0, Math.trunc(message.tokensBefore)),
|
|
357
|
+
timestamp,
|
|
358
|
+
});
|
|
359
|
+
continue;
|
|
360
|
+
}
|
|
361
|
+
if (message.role === "custom") {
|
|
362
|
+
const text = typeof message.content === "string"
|
|
363
|
+
? message.content
|
|
364
|
+
: message.content
|
|
365
|
+
.filter((part) => part.type === "text")
|
|
366
|
+
.map((part) => part.text)
|
|
367
|
+
.join("\n");
|
|
368
|
+
items.push({
|
|
369
|
+
id,
|
|
370
|
+
role: "note",
|
|
371
|
+
kind: "custom",
|
|
372
|
+
text,
|
|
373
|
+
customType: message.customType,
|
|
374
|
+
display: message.display,
|
|
375
|
+
timestamp,
|
|
376
|
+
});
|
|
377
|
+
continue;
|
|
378
|
+
}
|
|
379
|
+
if (message.role !== "assistant")
|
|
380
|
+
continue;
|
|
381
|
+
const streaming = session.isStreaming && message === messages.at(-1);
|
|
382
|
+
const content = message.content.map((part) => {
|
|
383
|
+
if (part.type === "text")
|
|
384
|
+
return { type: "text", text: part.text };
|
|
385
|
+
if (part.type === "thinking") {
|
|
386
|
+
return {
|
|
387
|
+
type: "thinking",
|
|
388
|
+
thinking: part.thinking,
|
|
389
|
+
...(part.redacted === undefined ? {} : { redacted: part.redacted }),
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
return {
|
|
393
|
+
type: "toolCall",
|
|
394
|
+
toolCallId: part.id,
|
|
395
|
+
toolName: part.name,
|
|
396
|
+
input: part.arguments,
|
|
397
|
+
};
|
|
398
|
+
});
|
|
399
|
+
const usage = projectUsage(message.usage);
|
|
400
|
+
const common = {
|
|
401
|
+
id,
|
|
402
|
+
role: "assistant",
|
|
403
|
+
content,
|
|
404
|
+
model: { provider: message.provider, id: message.model },
|
|
405
|
+
...(message.responseModel ? { responseModel: message.responseModel } : {}),
|
|
406
|
+
...(usage === undefined ? {} : { usage }),
|
|
407
|
+
timestamp,
|
|
408
|
+
};
|
|
409
|
+
if (streaming || message.stopReason === "pending" || message.stopReason === "deferred") {
|
|
410
|
+
const item = { ...common, status: "streaming" };
|
|
411
|
+
items.push(item);
|
|
412
|
+
}
|
|
413
|
+
else if (message.stopReason === "error") {
|
|
414
|
+
const item = {
|
|
415
|
+
...common,
|
|
416
|
+
status: "error",
|
|
417
|
+
stopReason: "error",
|
|
418
|
+
...(message.errorMessage ? { errorMessage: message.errorMessage } : {}),
|
|
419
|
+
};
|
|
420
|
+
items.push(item);
|
|
421
|
+
}
|
|
422
|
+
else if (message.stopReason === "aborted") {
|
|
423
|
+
const item = {
|
|
424
|
+
...common,
|
|
425
|
+
status: "aborted",
|
|
426
|
+
stopReason: "aborted",
|
|
427
|
+
...(message.errorMessage ? { errorMessage: message.errorMessage } : {}),
|
|
428
|
+
};
|
|
429
|
+
items.push(item);
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
const item = { ...common, status: "complete", stopReason: message.stopReason };
|
|
433
|
+
items.push(item);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
return items;
|
|
437
|
+
}
|
|
438
|
+
function sessionPhase(session) {
|
|
439
|
+
if (session.isCompacting)
|
|
440
|
+
return "compaction";
|
|
441
|
+
if (session.isStreaming)
|
|
442
|
+
return "turn";
|
|
443
|
+
return "idle";
|
|
444
|
+
}
|
|
445
|
+
/** Server-side runtime over one exclusively owned coding-agent session. */
|
|
446
|
+
export class CodingAgentSessionRuntime {
|
|
447
|
+
session;
|
|
448
|
+
descriptor;
|
|
449
|
+
models;
|
|
450
|
+
listeners = new Set();
|
|
451
|
+
unsubscribe;
|
|
452
|
+
onDisposed;
|
|
453
|
+
disposed = false;
|
|
454
|
+
constructor(session, descriptor, options) {
|
|
455
|
+
this.session = session;
|
|
456
|
+
this.descriptor = descriptor;
|
|
457
|
+
this.models = options?.models ?? {
|
|
458
|
+
list: async () => [],
|
|
459
|
+
resolve: () => {
|
|
460
|
+
throw new PiServerError("not_implemented", "Model resolution is not configured");
|
|
461
|
+
},
|
|
462
|
+
};
|
|
463
|
+
this.onDisposed = options?.onDisposed;
|
|
464
|
+
this.unsubscribe = session.subscribe((event) => this.onSessionEvent(event));
|
|
465
|
+
}
|
|
466
|
+
snapshot() {
|
|
467
|
+
const queuedSteer = this.session.getSteeringMessages();
|
|
468
|
+
const name = this.session.sessionName ?? this.descriptor.name;
|
|
469
|
+
return {
|
|
470
|
+
id: this.descriptor.id,
|
|
471
|
+
...(name === undefined ? {} : { name }),
|
|
472
|
+
// The protocol requires a non-empty snapshot cwd. This runtime only
|
|
473
|
+
// describes acquired sessions: creates validate a non-empty cwd and
|
|
474
|
+
// opens fall back to a non-empty cwd inside the source, so the
|
|
475
|
+
// SessionManager cwd is the authoritative value when the descriptor
|
|
476
|
+
// carries none (legacy sessions record no cwd).
|
|
477
|
+
cwd: this.descriptor.cwd ?? this.session.sessionManager.getCwd(),
|
|
478
|
+
createdAt: this.descriptor.createdAt,
|
|
479
|
+
updatedAt: this.descriptor.updatedAt,
|
|
480
|
+
phase: sessionPhase(this.session),
|
|
481
|
+
model: this.currentModelRef(),
|
|
482
|
+
thinkingLevel: this.session.thinkingLevel,
|
|
483
|
+
...(this.descriptor.profileId === undefined ? {} : { profileId: this.descriptor.profileId }),
|
|
484
|
+
...(this.descriptor.profileVersion === undefined ? {} : { profileVersion: this.descriptor.profileVersion }),
|
|
485
|
+
attached: false,
|
|
486
|
+
locked: false,
|
|
487
|
+
// Durable revision: the SessionManager entry sequence. It survives
|
|
488
|
+
// reopen and only advances when a persisted entry lands.
|
|
489
|
+
revision: this.session.getRevision().sequence,
|
|
490
|
+
transcript: projectSessionTranscript(this.session),
|
|
491
|
+
queuedSteer: queuedSteer.map((text, index) => ({
|
|
492
|
+
id: `steer-${index}`,
|
|
493
|
+
role: "user",
|
|
494
|
+
content: [{ type: "text", text }],
|
|
495
|
+
timestamp: this.descriptor.updatedAt,
|
|
496
|
+
})),
|
|
497
|
+
queuedSteerCount: queuedSteer.length,
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
getPhase() {
|
|
501
|
+
return sessionPhase(this.session);
|
|
502
|
+
}
|
|
503
|
+
async prompt(input) {
|
|
504
|
+
this.assertUsable();
|
|
505
|
+
requireIdle(this.session, "submit a prompt");
|
|
506
|
+
try {
|
|
507
|
+
await this.session.prompt(input.text);
|
|
508
|
+
}
|
|
509
|
+
catch (error) {
|
|
510
|
+
throw toError(error);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
async steer(input) {
|
|
514
|
+
this.assertUsable();
|
|
515
|
+
if (this.session.isIdle) {
|
|
516
|
+
throw new PiServerError("busy", "There is no active prompt to steer");
|
|
517
|
+
}
|
|
518
|
+
try {
|
|
519
|
+
await this.session.steer(input.text);
|
|
520
|
+
}
|
|
521
|
+
catch (error) {
|
|
522
|
+
throw toError(error);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
async abort() {
|
|
526
|
+
this.assertUsable();
|
|
527
|
+
try {
|
|
528
|
+
await this.session.abort();
|
|
529
|
+
}
|
|
530
|
+
catch (error) {
|
|
531
|
+
throw toError(error);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
async setModel(model) {
|
|
535
|
+
this.assertUsable();
|
|
536
|
+
requireIdle(this.session, "change the model");
|
|
537
|
+
let resolved;
|
|
538
|
+
try {
|
|
539
|
+
resolved = await this.models.resolve(model);
|
|
540
|
+
await this.session.setModel(resolved);
|
|
541
|
+
}
|
|
542
|
+
catch (error) {
|
|
543
|
+
throw toError(error);
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
async setThinking(thinkingLevel) {
|
|
547
|
+
this.assertUsable();
|
|
548
|
+
requireIdle(this.session, "change the thinking level");
|
|
549
|
+
try {
|
|
550
|
+
this.session.setThinkingLevel(thinkingLevel);
|
|
551
|
+
}
|
|
552
|
+
catch (error) {
|
|
553
|
+
throw toError(error);
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
subscribe(listener) {
|
|
557
|
+
this.listeners.add(listener);
|
|
558
|
+
return () => this.listeners.delete(listener);
|
|
559
|
+
}
|
|
560
|
+
async dispose() {
|
|
561
|
+
if (this.disposed)
|
|
562
|
+
return;
|
|
563
|
+
this.disposed = true;
|
|
564
|
+
this.unsubscribe();
|
|
565
|
+
try {
|
|
566
|
+
await this.session.dispose();
|
|
567
|
+
}
|
|
568
|
+
finally {
|
|
569
|
+
this.onDisposed?.();
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
assertUsable() {
|
|
573
|
+
if (this.disposed)
|
|
574
|
+
throw new PiServerError("invalid_request", "Session runtime is disposed");
|
|
575
|
+
}
|
|
576
|
+
onSessionEvent(_event) {
|
|
577
|
+
// Every event still broadcasts a snapshot, but the revision value is the
|
|
578
|
+
// durable SessionManager sequence: events that persist no entry keep the
|
|
579
|
+
// same revision number. Clients accept equal-revision snapshots (only
|
|
580
|
+
// regressions are dropped), so no state is lost.
|
|
581
|
+
for (const listener of [...this.listeners]) {
|
|
582
|
+
try {
|
|
583
|
+
listener({ type: "snapshot" });
|
|
584
|
+
}
|
|
585
|
+
catch {
|
|
586
|
+
// Snapshot observers must not affect the session.
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
currentModelRef() {
|
|
591
|
+
const model = this.session.model;
|
|
592
|
+
// Defensive layer: the create/open preflights reject model-less sessions,
|
|
593
|
+
// so a live runtime always has a model. A residual model-less runtime must
|
|
594
|
+
// still fail diagnosably instead of surfacing as an unspecific internal
|
|
595
|
+
// error through snapshot projection.
|
|
596
|
+
if (!model)
|
|
597
|
+
throw new PiServerError("invalid_request", "Session has no active model");
|
|
598
|
+
return { provider: model.provider, id: model.id };
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
/** Exclusive `PiServerService` over a coding-agent session source. */
|
|
602
|
+
export class CodingAgentServerService {
|
|
603
|
+
source;
|
|
604
|
+
models;
|
|
605
|
+
now;
|
|
606
|
+
acquired = new Map();
|
|
607
|
+
opening = new Set();
|
|
608
|
+
durable;
|
|
609
|
+
executors = new Map();
|
|
610
|
+
/** In-memory operation store surface; undefined without a durable service. */
|
|
611
|
+
operationStore;
|
|
612
|
+
/** In-memory artifact store surface; undefined without a durable service. */
|
|
613
|
+
artifactStore;
|
|
614
|
+
/** Durable mutation-response store surface; undefined without a durable service. */
|
|
615
|
+
mutationResponseStore;
|
|
616
|
+
writerId;
|
|
617
|
+
leaseReady = false;
|
|
618
|
+
/** Idempotency key (`sessionId\0key`) -> recorded operation. */
|
|
619
|
+
idempotencyIndex = new Map();
|
|
620
|
+
/** Operation id -> recorded payload snapshot for idempotent acks. */
|
|
621
|
+
recordedOperations = new Map();
|
|
622
|
+
/** Active executor abort controllers by operation id. */
|
|
623
|
+
inFlight = new Map();
|
|
624
|
+
/** Cancel requests observed while the executor was still draining. */
|
|
625
|
+
cancelRequested = new Set();
|
|
626
|
+
constructor(options) {
|
|
627
|
+
this.source = options.sessions;
|
|
628
|
+
this.models = options.models;
|
|
629
|
+
this.now = options.now ?? (() => Date.now());
|
|
630
|
+
for (const executor of options.operationExecutors ?? [])
|
|
631
|
+
this.executors.set(executor.operationType, executor);
|
|
632
|
+
if (options.durable) {
|
|
633
|
+
this.durable = options.durable;
|
|
634
|
+
this.writerId = options.writerId ?? randomUUID();
|
|
635
|
+
this.claimWriterLease();
|
|
636
|
+
if (this.leaseReady)
|
|
637
|
+
this.sweepInterruptedOperations();
|
|
638
|
+
this.operationStore = {
|
|
639
|
+
submit: (input) => this.submitOperation(input),
|
|
640
|
+
cancel: (input) => this.cancelOperation(input),
|
|
641
|
+
result: (input) => this.resultOperation(input),
|
|
642
|
+
};
|
|
643
|
+
this.artifactStore = {
|
|
644
|
+
stat: (sessionId, artifactId) => this.statArtifact(sessionId, artifactId),
|
|
645
|
+
read: (sessionId, artifactId, readerOptions) => this.readArtifact(sessionId, artifactId, readerOptions),
|
|
646
|
+
};
|
|
647
|
+
this.mutationResponseStore = {
|
|
648
|
+
load: (sessionId, operationId) => this.loadMutationResponse(sessionId, operationId),
|
|
649
|
+
record: (sessionId, operationId, snapshot) => this.recordMutationResponse(sessionId, operationId, snapshot),
|
|
650
|
+
};
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
/** Remote artifact access; unconfigured without a durable service. */
|
|
654
|
+
get artifacts() {
|
|
655
|
+
return this.artifactStore;
|
|
656
|
+
}
|
|
657
|
+
/** Durable operation commands; unconfigured without a durable service. */
|
|
658
|
+
get operations() {
|
|
659
|
+
return this.operationStore;
|
|
660
|
+
}
|
|
661
|
+
/** Durable replay of mutation-command responses; unconfigured without a durable service. */
|
|
662
|
+
get mutationResponses() {
|
|
663
|
+
return this.mutationResponseStore;
|
|
664
|
+
}
|
|
665
|
+
// -------------------------------------------------------------------------
|
|
666
|
+
// Durable writer lease (single-instance boundary)
|
|
667
|
+
// -------------------------------------------------------------------------
|
|
668
|
+
/**
|
|
669
|
+
* Claims the writer lease at startup. A holder found in restored state
|
|
670
|
+
* belonged to a dead process (snapshot import), so it is recovered; a live
|
|
671
|
+
* foreign writer keeps the lease and this service stays unavailable.
|
|
672
|
+
*/
|
|
673
|
+
claimWriterLease() {
|
|
674
|
+
const durable = this.durable;
|
|
675
|
+
const writerId = this.writerId;
|
|
676
|
+
if (!durable || !writerId)
|
|
677
|
+
return;
|
|
678
|
+
if (durable.claimWriter(writerId).status === "claimed") {
|
|
679
|
+
this.leaseReady = true;
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
this.leaseReady = durable.recoverWriter(writerId).status === "recovered";
|
|
683
|
+
}
|
|
684
|
+
/**
|
|
685
|
+
* Releases the store writer lease on graceful shutdown (D-067 phase 2 S2)
|
|
686
|
+
* so a successor process can claim immediately. Best-effort: only a held
|
|
687
|
+
* lease is released, and failures are swallowed — a crashed process leaves
|
|
688
|
+
* the lease for the TTL recovery path instead.
|
|
689
|
+
*/
|
|
690
|
+
releaseWriterLease() {
|
|
691
|
+
const durable = this.durable;
|
|
692
|
+
const writerId = this.writerId;
|
|
693
|
+
if (!durable || !writerId || !this.leaseReady)
|
|
694
|
+
return;
|
|
695
|
+
try {
|
|
696
|
+
durable.releaseWriter(writerId);
|
|
697
|
+
this.leaseReady = false;
|
|
698
|
+
}
|
|
699
|
+
catch {
|
|
700
|
+
// Shutdown release is advisory; the TTL recovery path handles the rest.
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
/** Persists one adapter-owned operation record; a lost lease degrades to `durable_unavailable`. */
|
|
704
|
+
persistOperation(operationId, sessionId, payload) {
|
|
705
|
+
try {
|
|
706
|
+
this.durable?.persistOperation({
|
|
707
|
+
writerId: this.writerId ?? "",
|
|
708
|
+
operationId,
|
|
709
|
+
sessionId,
|
|
710
|
+
data: payload,
|
|
711
|
+
});
|
|
712
|
+
}
|
|
713
|
+
catch (error) {
|
|
714
|
+
if (error instanceof DurableServiceErrorV1) {
|
|
715
|
+
throw new PiServerError("durable_unavailable", error.message);
|
|
716
|
+
}
|
|
717
|
+
throw error;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
requireDurable() {
|
|
721
|
+
if (!this.durable || !this.leaseReady) {
|
|
722
|
+
throw new PiServerError("durable_unavailable", "Durable operation store is not ready");
|
|
723
|
+
}
|
|
724
|
+
return this.durable;
|
|
725
|
+
}
|
|
726
|
+
/**
|
|
727
|
+
* Rejects operations that were pending when the previous process stopped:
|
|
728
|
+
* no executor survives a crash, so replayed `pending` records are swept to
|
|
729
|
+
* a rejected terminal and their idempotency keys keep returning that
|
|
730
|
+
/**
|
|
731
|
+
* recorded terminal.
|
|
732
|
+
*/
|
|
733
|
+
sweepInterruptedOperations() {
|
|
734
|
+
const durable = this.durable;
|
|
735
|
+
if (!durable)
|
|
736
|
+
return;
|
|
737
|
+
for (const record of durable.exportState().operations) {
|
|
738
|
+
const payload = parseOperationPayload(record.data);
|
|
739
|
+
if (!payload)
|
|
740
|
+
continue;
|
|
741
|
+
const resolved = payload.status === "pending"
|
|
742
|
+
? {
|
|
743
|
+
...payload,
|
|
744
|
+
status: "rejected",
|
|
745
|
+
error: { code: "internal_error", message: "Operation did not complete before the server stopped" },
|
|
746
|
+
terminalAt: this.now(),
|
|
747
|
+
}
|
|
748
|
+
: payload;
|
|
749
|
+
if (resolved !== payload)
|
|
750
|
+
this.persistOperation(record.operationId, payload.sessionId, resolved);
|
|
751
|
+
this.recordOperation(record.operationId, resolved);
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
recordOperation(operationId, payload) {
|
|
755
|
+
this.recordedOperations.set(operationId, { operationId, payload });
|
|
756
|
+
if (payload.idempotencyKey !== undefined) {
|
|
757
|
+
this.idempotencyIndex.set(`${payload.sessionId}\0${payload.idempotencyKey}`, { operationId, payload });
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
// -------------------------------------------------------------------------
|
|
761
|
+
// Operation commands (server `operations` surface)
|
|
762
|
+
// -------------------------------------------------------------------------
|
|
763
|
+
async submitOperation(input) {
|
|
764
|
+
this.requireDurable();
|
|
765
|
+
// Idempotent replay precedes the live-session check: a recorded terminal
|
|
766
|
+
// must stay answerable after a restart even though no runtime is open.
|
|
767
|
+
if (input.idempotencyKey !== undefined) {
|
|
768
|
+
const recorded = this.idempotencyIndex.get(`${input.sessionId}\0${input.idempotencyKey}`);
|
|
769
|
+
if (recorded)
|
|
770
|
+
return this.ackOf(recorded);
|
|
771
|
+
}
|
|
772
|
+
const runtime = this.acquired.get(input.sessionId);
|
|
773
|
+
if (!runtime)
|
|
774
|
+
throw new PiServerError("not_found", `Session is not open: ${input.sessionId}`);
|
|
775
|
+
if (input.expectedRevision !== undefined) {
|
|
776
|
+
const revision = (await runtime.snapshot()).revision;
|
|
777
|
+
if (revision !== input.expectedRevision) {
|
|
778
|
+
throw new PiServerError("operation_conflict", `Session revision is ${revision}, expectedRevision was ${input.expectedRevision}`);
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
const operationId = randomUUID();
|
|
782
|
+
const payload = {
|
|
783
|
+
status: "pending",
|
|
784
|
+
sessionId: input.sessionId,
|
|
785
|
+
operationType: input.operationType,
|
|
786
|
+
...(input.idempotencyKey === undefined ? {} : { idempotencyKey: input.idempotencyKey }),
|
|
787
|
+
submittedAt: this.now(),
|
|
788
|
+
};
|
|
789
|
+
this.persistOperation(operationId, input.sessionId, payload);
|
|
790
|
+
this.recordOperation(operationId, payload);
|
|
791
|
+
// Fire-and-forget execution: the ack must reach the client immediately,
|
|
792
|
+
// otherwise a long operation hides its own operationId and cancel/result
|
|
793
|
+
// stay unreachable. `executeOperation` records executor failures as
|
|
794
|
+
// rejected terminals; only a terminal persist failure can still escape,
|
|
795
|
+
// so pin the in-memory record to a rejected terminal carrying the
|
|
796
|
+
// original error. The durable log keeps `pending` and the restart sweep
|
|
797
|
+
// converges the record.
|
|
798
|
+
this.executeOperation(operationId, payload, input.input).catch((error) => {
|
|
799
|
+
this.recordOperation(operationId, {
|
|
800
|
+
...payload,
|
|
801
|
+
status: "rejected",
|
|
802
|
+
error: { code: "internal_error", message: error instanceof Error ? error.message : String(error) },
|
|
803
|
+
terminalAt: this.now(),
|
|
804
|
+
});
|
|
805
|
+
});
|
|
806
|
+
return this.ackOf({ operationId, payload });
|
|
807
|
+
}
|
|
808
|
+
/**
|
|
809
|
+
* Runs the executor and persists the terminal state. Cancel is only a
|
|
810
|
+
* request: the terminal record is written strictly after the executor
|
|
811
|
+
* drains, so `cancel -> drain -> terminal` is the observable order.
|
|
812
|
+
*/
|
|
813
|
+
async executeOperation(operationId, payload, input) {
|
|
814
|
+
const executor = this.executors.get(payload.operationType);
|
|
815
|
+
if (!executor) {
|
|
816
|
+
return this.completeOperation(operationId, {
|
|
817
|
+
...payload,
|
|
818
|
+
status: "rejected",
|
|
819
|
+
error: {
|
|
820
|
+
code: "not_implemented",
|
|
821
|
+
message: `No executor is registered for operation type ${payload.operationType}`,
|
|
822
|
+
},
|
|
823
|
+
terminalAt: this.now(),
|
|
824
|
+
});
|
|
825
|
+
}
|
|
826
|
+
const controller = new AbortController();
|
|
827
|
+
this.inFlight.set(operationId, controller);
|
|
828
|
+
let terminal;
|
|
829
|
+
try {
|
|
830
|
+
const result = await executor.execute({
|
|
831
|
+
sessionId: payload.sessionId,
|
|
832
|
+
operationId,
|
|
833
|
+
...(input === undefined ? {} : { input }),
|
|
834
|
+
signal: controller.signal,
|
|
835
|
+
});
|
|
836
|
+
terminal = { ...payload, status: "completed", result, terminalAt: this.now() };
|
|
837
|
+
}
|
|
838
|
+
catch (error) {
|
|
839
|
+
terminal = {
|
|
840
|
+
...payload,
|
|
841
|
+
status: "rejected",
|
|
842
|
+
error: this.toTerminalError(operationId, error),
|
|
843
|
+
terminalAt: this.now(),
|
|
844
|
+
};
|
|
845
|
+
}
|
|
846
|
+
finally {
|
|
847
|
+
this.inFlight.delete(operationId);
|
|
848
|
+
this.cancelRequested.delete(operationId);
|
|
849
|
+
}
|
|
850
|
+
return this.completeOperation(operationId, terminal);
|
|
851
|
+
}
|
|
852
|
+
toTerminalError(operationId, error) {
|
|
853
|
+
if (this.cancelRequested.has(operationId)) {
|
|
854
|
+
return { code: "operation_cancelled", message: "Operation was cancelled before completion" };
|
|
855
|
+
}
|
|
856
|
+
if (error instanceof PiServerError)
|
|
857
|
+
return { code: error.code, message: error.message };
|
|
858
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
859
|
+
return { code: "invalid_request", message };
|
|
860
|
+
}
|
|
861
|
+
completeOperation(operationId, terminal) {
|
|
862
|
+
this.persistOperation(operationId, terminal.sessionId, terminal);
|
|
863
|
+
this.recordOperation(operationId, terminal);
|
|
864
|
+
return this.ackOf({ operationId, payload: terminal });
|
|
865
|
+
}
|
|
866
|
+
cancelOperation(input) {
|
|
867
|
+
this.requireDurable();
|
|
868
|
+
const recorded = this.recordedOperations.get(input.operationId);
|
|
869
|
+
// Session ownership is part of the lookup: a foreign session gets the
|
|
870
|
+
// same not-found answer as a missing id, without leaking ownership.
|
|
871
|
+
if (!recorded || recorded.payload.sessionId !== input.sessionId) {
|
|
872
|
+
throw new PiServerError("operation_not_found", `Unknown operation: ${input.operationId}`);
|
|
873
|
+
}
|
|
874
|
+
if (recorded.payload.status !== "pending")
|
|
875
|
+
return this.ackOf(recorded);
|
|
876
|
+
// Record the cancel request and signal the executor. The terminal state
|
|
877
|
+
// is only written once the executor drained (or nothing is draining).
|
|
878
|
+
this.cancelRequested.add(input.operationId);
|
|
879
|
+
this.inFlight.get(input.operationId)?.abort();
|
|
880
|
+
return { operationId: input.operationId, status: "accepted" };
|
|
881
|
+
}
|
|
882
|
+
resultOperation(input) {
|
|
883
|
+
this.requireDurable();
|
|
884
|
+
const recorded = this.recordedOperations.get(input.operationId);
|
|
885
|
+
// Session ownership is part of the lookup: a foreign session gets the
|
|
886
|
+
// same not-found answer as a missing id, without leaking ownership.
|
|
887
|
+
if (!recorded || recorded.payload.sessionId !== input.sessionId) {
|
|
888
|
+
throw new PiServerError("operation_not_found", `Unknown operation: ${input.operationId}`);
|
|
889
|
+
}
|
|
890
|
+
return this.ackOf(recorded);
|
|
891
|
+
}
|
|
892
|
+
ackOf(recorded) {
|
|
893
|
+
const { operationId, payload } = recorded;
|
|
894
|
+
if (payload.status === "completed") {
|
|
895
|
+
return {
|
|
896
|
+
operationId,
|
|
897
|
+
status: "completed",
|
|
898
|
+
...(payload.result === undefined ? {} : { result: payload.result }),
|
|
899
|
+
};
|
|
900
|
+
}
|
|
901
|
+
if (payload.status === "rejected") {
|
|
902
|
+
return {
|
|
903
|
+
operationId,
|
|
904
|
+
status: "rejected",
|
|
905
|
+
...(payload.error === undefined
|
|
906
|
+
? {}
|
|
907
|
+
: { error: { code: payload.error.code, message: payload.error.message } }),
|
|
908
|
+
};
|
|
909
|
+
}
|
|
910
|
+
return { operationId, status: "accepted" };
|
|
911
|
+
}
|
|
912
|
+
// -------------------------------------------------------------------------
|
|
913
|
+
// Artifact adapter (output-artifacts face + durable persistence)
|
|
914
|
+
// -------------------------------------------------------------------------
|
|
915
|
+
/**
|
|
916
|
+
* Mirrors one runtime output artifact into the durable store so remote
|
|
917
|
+
* `artifact_stat`/`artifact_read` can serve it, including after a restart
|
|
918
|
+
* via log replay. The runtime in-memory store (capability-runtime) stays
|
|
919
|
+
* the live write path; this adds durable persistence, not a second store.
|
|
920
|
+
*/
|
|
921
|
+
persistOutputArtifact(sessionId, ref, bytes) {
|
|
922
|
+
this.requireDurable();
|
|
923
|
+
if (ref.sessionId !== sessionId) {
|
|
924
|
+
throw new PiServerError("invalid_request", "Artifact sessionId must match the owning session");
|
|
925
|
+
}
|
|
926
|
+
if (ref.artifactId === "")
|
|
927
|
+
throw new PiServerError("invalid_request", "Artifact id must not be empty");
|
|
928
|
+
if (ref.sizeBytes !== undefined && ref.sizeBytes !== bytes.byteLength) {
|
|
929
|
+
throw new PiServerError("invalid_request", "Artifact sizeBytes must match the payload length");
|
|
930
|
+
}
|
|
931
|
+
try {
|
|
932
|
+
this.durable?.persistArtifact({
|
|
933
|
+
writerId: this.writerId ?? "",
|
|
934
|
+
artifactId: ref.artifactId,
|
|
935
|
+
sessionId,
|
|
936
|
+
data: { ref, bytes: Buffer.from(bytes).toString("base64") },
|
|
937
|
+
});
|
|
938
|
+
}
|
|
939
|
+
catch (error) {
|
|
940
|
+
if (error instanceof DurableServiceErrorV1) {
|
|
941
|
+
throw new PiServerError("durable_unavailable", error.message);
|
|
942
|
+
}
|
|
943
|
+
throw error;
|
|
944
|
+
}
|
|
945
|
+
return toProtocolArtifactRef(ref);
|
|
946
|
+
}
|
|
947
|
+
statArtifact(sessionId, artifactId) {
|
|
948
|
+
return toProtocolArtifactRef(this.loadArtifactPayload(sessionId, artifactId).ref);
|
|
949
|
+
}
|
|
950
|
+
readArtifact(sessionId, artifactId, options) {
|
|
951
|
+
const payload = this.loadArtifactPayload(sessionId, artifactId);
|
|
952
|
+
const bytes = Buffer.from(payload.bytes, "base64");
|
|
953
|
+
const end = Math.min(options.offset + options.maxBytes, bytes.byteLength);
|
|
954
|
+
const data = new Uint8Array(bytes.subarray(options.offset, end));
|
|
955
|
+
const eof = end >= bytes.byteLength;
|
|
956
|
+
return {
|
|
957
|
+
artifact: toProtocolArtifactRef(payload.ref),
|
|
958
|
+
data,
|
|
959
|
+
...(eof ? {} : { nextOffset: end }),
|
|
960
|
+
eof,
|
|
961
|
+
};
|
|
962
|
+
}
|
|
963
|
+
/**
|
|
964
|
+
* Loads one artifact payload through the durable service.
|
|
965
|
+
*/
|
|
966
|
+
loadArtifactPayload(sessionId, artifactId) {
|
|
967
|
+
const durable = this.requireDurable();
|
|
968
|
+
const record = durable.loadArtifact({ artifactId });
|
|
969
|
+
if (!record || record.sessionId !== sessionId) {
|
|
970
|
+
throw new PiServerError("not_found", `Unknown artifact: ${artifactId}`);
|
|
971
|
+
}
|
|
972
|
+
const payload = parseArtifactPayload(record.data);
|
|
973
|
+
if (!payload || payload.ref.sessionId !== sessionId || payload.ref.artifactId !== artifactId) {
|
|
974
|
+
throw new PiServerError("durable_unavailable", "Stored artifact record is malformed");
|
|
975
|
+
}
|
|
976
|
+
return payload;
|
|
977
|
+
}
|
|
978
|
+
// -------------------------------------------------------------------------
|
|
979
|
+
// Mutation-response store (idempotent replay of keyed mutation commands)
|
|
980
|
+
// -------------------------------------------------------------------------
|
|
981
|
+
/**
|
|
982
|
+
* Deterministic artifact id for one mutation-command response, following the
|
|
983
|
+
* `agent-task:<taskId>` precedent for derived artifact ids.
|
|
984
|
+
*/
|
|
985
|
+
mutationResponseArtifactId(sessionId, operationId) {
|
|
986
|
+
return `mutation-response:${sessionId}:${operationId}`;
|
|
987
|
+
}
|
|
988
|
+
/**
|
|
989
|
+
* Loads a recorded response through the durable service. The durable log
|
|
990
|
+
* was already replayed into memory at construction, so this read never
|
|
991
|
+
* touches the disk. A missing or malformed record yields undefined so the
|
|
992
|
+
* caller re-executes; unexpected durable failures propagate and are
|
|
993
|
+
* reported (and treated as a miss) by the server's idempotency layer.
|
|
994
|
+
*/
|
|
995
|
+
async loadMutationResponse(sessionId, operationId) {
|
|
996
|
+
const durable = this.requireDurable();
|
|
997
|
+
const record = durable.loadArtifact({
|
|
998
|
+
artifactId: this.mutationResponseArtifactId(sessionId, operationId),
|
|
999
|
+
});
|
|
1000
|
+
if (record === undefined || record.sessionId !== sessionId)
|
|
1001
|
+
return undefined;
|
|
1002
|
+
const snapshot = parseMutationResponsePayload(record.data, sessionId);
|
|
1003
|
+
return snapshot === undefined ? undefined : structuredClone(snapshot);
|
|
1004
|
+
}
|
|
1005
|
+
/**
|
|
1006
|
+
* Persists one successful response snapshot as a durable artifact record so
|
|
1007
|
+
* retries after a restart replay it. The payload is the `SessionSnapshot`
|
|
1008
|
+
* itself: every field is JSON-safe, so the JSONL durable log round-trips it
|
|
1009
|
+
* without an adapter-specific envelope.
|
|
1010
|
+
*/
|
|
1011
|
+
async recordMutationResponse(sessionId, operationId, snapshot) {
|
|
1012
|
+
const durable = this.requireDurable();
|
|
1013
|
+
try {
|
|
1014
|
+
durable.persistArtifact({
|
|
1015
|
+
writerId: this.writerId ?? "",
|
|
1016
|
+
artifactId: this.mutationResponseArtifactId(sessionId, operationId),
|
|
1017
|
+
sessionId,
|
|
1018
|
+
data: snapshot,
|
|
1019
|
+
});
|
|
1020
|
+
}
|
|
1021
|
+
catch (error) {
|
|
1022
|
+
if (error instanceof DurableServiceErrorV1) {
|
|
1023
|
+
throw new PiServerError("durable_unavailable", error.message);
|
|
1024
|
+
}
|
|
1025
|
+
throw error;
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
async listSessions() {
|
|
1029
|
+
const descriptors = await this.source.list();
|
|
1030
|
+
return descriptors.map((descriptor) => ({
|
|
1031
|
+
id: descriptor.id,
|
|
1032
|
+
createdAt: descriptor.createdAt,
|
|
1033
|
+
updatedAt: descriptor.updatedAt,
|
|
1034
|
+
...(descriptor.name === undefined ? {} : { sessionName: descriptor.name }),
|
|
1035
|
+
// Legacy sessions record no cwd; the protocol marks it optional.
|
|
1036
|
+
...(descriptor.cwd === undefined ? {} : { cwd: descriptor.cwd }),
|
|
1037
|
+
}));
|
|
1038
|
+
}
|
|
1039
|
+
async listModels() {
|
|
1040
|
+
return [...(await this.models.list())];
|
|
1041
|
+
}
|
|
1042
|
+
async createSession(options) {
|
|
1043
|
+
this.assertNotAcquired(options.id);
|
|
1044
|
+
if (options.cwd === undefined || options.cwd.trim() === "") {
|
|
1045
|
+
throw new PiServerError("invalid_request", "Creating a coding-agent session requires a cwd");
|
|
1046
|
+
}
|
|
1047
|
+
// The protocol carries a model ref; resolve it to a Model instance the
|
|
1048
|
+
// same way runtime `set_model` does. An unknown ref fails the create
|
|
1049
|
+
// instead of being silently dropped.
|
|
1050
|
+
let model;
|
|
1051
|
+
try {
|
|
1052
|
+
model = options.model === undefined ? undefined : await this.models.resolve(options.model);
|
|
1053
|
+
}
|
|
1054
|
+
catch (error) {
|
|
1055
|
+
throw toError(error);
|
|
1056
|
+
}
|
|
1057
|
+
const timestamp = Math.max(0, Math.trunc(this.now()));
|
|
1058
|
+
const descriptor = {
|
|
1059
|
+
id: options.id,
|
|
1060
|
+
...(options.name === undefined ? {} : { name: options.name }),
|
|
1061
|
+
cwd: options.cwd,
|
|
1062
|
+
...(model === undefined ? {} : { model }),
|
|
1063
|
+
...(options.thinkingLevel === undefined ? {} : { thinkingLevel: options.thinkingLevel }),
|
|
1064
|
+
...(options.profileId === undefined ? {} : { profileId: options.profileId }),
|
|
1065
|
+
...(options.profileVersion === undefined ? {} : { profileVersion: options.profileVersion }),
|
|
1066
|
+
createdAt: timestamp,
|
|
1067
|
+
updatedAt: timestamp,
|
|
1068
|
+
};
|
|
1069
|
+
let session;
|
|
1070
|
+
try {
|
|
1071
|
+
session = await this.openExclusively(descriptor.id, () => this.source.create(descriptor));
|
|
1072
|
+
}
|
|
1073
|
+
catch (error) {
|
|
1074
|
+
throw toError(error);
|
|
1075
|
+
}
|
|
1076
|
+
// Lazy-model contract: createAgentSession does not fail when no model is
|
|
1077
|
+
// resolvable (no auth, empty catalog); it returns a session whose model is
|
|
1078
|
+
// undefined. A model-less live session cannot serve prompts and breaks
|
|
1079
|
+
// every client's list/server_snapshot, so the create fails explicitly.
|
|
1080
|
+
// Disposing rolls the session back before any registration; the
|
|
1081
|
+
// SessionManager has not flushed the JSONL yet (persistence defers until
|
|
1082
|
+
// the first assistant message), so nothing stays on disk, and a flushed
|
|
1083
|
+
// residue would still be harmless: reopening it runs into the same
|
|
1084
|
+
// preflight in openSession.
|
|
1085
|
+
if (session.model === undefined) {
|
|
1086
|
+
// Keep the structured rejection even if rollback fails; the cleanup
|
|
1087
|
+
// failure is appended to the message instead of masking it.
|
|
1088
|
+
let cleanupNote = "";
|
|
1089
|
+
try {
|
|
1090
|
+
await session.dispose();
|
|
1091
|
+
}
|
|
1092
|
+
catch (disposeError) {
|
|
1093
|
+
cleanupNote = ` (session cleanup also failed: ${disposeError instanceof Error ? disposeError.message : String(disposeError)})`;
|
|
1094
|
+
}
|
|
1095
|
+
throw new PiServerError("invalid_request", `Creating a coding-agent session requires a resolvable model; none is available for this server's agent directory${cleanupNote}`);
|
|
1096
|
+
}
|
|
1097
|
+
return this.acquireRuntime(descriptor, session);
|
|
1098
|
+
}
|
|
1099
|
+
async openSession(sessionId) {
|
|
1100
|
+
this.assertNotAcquired(sessionId);
|
|
1101
|
+
const descriptors = await this.source.list();
|
|
1102
|
+
const descriptor = descriptors.find((entry) => entry.id === sessionId);
|
|
1103
|
+
if (!descriptor)
|
|
1104
|
+
throw new PiServerError("not_found", `Unknown session: ${sessionId}`);
|
|
1105
|
+
let session;
|
|
1106
|
+
try {
|
|
1107
|
+
session = await this.openExclusively(descriptor.id, () => this.source.open(descriptor));
|
|
1108
|
+
}
|
|
1109
|
+
catch (error) {
|
|
1110
|
+
throw toError(error);
|
|
1111
|
+
}
|
|
1112
|
+
// Same preflight as create: a history session whose stored model no longer
|
|
1113
|
+
// resolves (model removed, auth missing) must fail the open instead of
|
|
1114
|
+
// going live model-less and breaking every client's list/server_snapshot.
|
|
1115
|
+
if (session.model === undefined) {
|
|
1116
|
+
let cleanupNote = "";
|
|
1117
|
+
try {
|
|
1118
|
+
await session.dispose();
|
|
1119
|
+
}
|
|
1120
|
+
catch (disposeError) {
|
|
1121
|
+
cleanupNote = ` (session cleanup also failed: ${disposeError instanceof Error ? disposeError.message : String(disposeError)})`;
|
|
1122
|
+
}
|
|
1123
|
+
throw new PiServerError("invalid_request", `Reopening session ${sessionId} requires a resolvable model; none is available for this server's agent directory${cleanupNote}`);
|
|
1124
|
+
}
|
|
1125
|
+
return this.acquireRuntime(descriptor, session);
|
|
1126
|
+
}
|
|
1127
|
+
/** Serializes the acquired-check with the async source call to keep opens exclusive. */
|
|
1128
|
+
async openExclusively(id, open) {
|
|
1129
|
+
if (this.opening.has(id) || this.acquired.has(id)) {
|
|
1130
|
+
throw new PiServerError("session_locked", `Session is already open: ${id}`);
|
|
1131
|
+
}
|
|
1132
|
+
this.opening.add(id);
|
|
1133
|
+
try {
|
|
1134
|
+
return await open();
|
|
1135
|
+
}
|
|
1136
|
+
finally {
|
|
1137
|
+
this.opening.delete(id);
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
acquireRuntime(descriptor, session) {
|
|
1141
|
+
// Auto-mirror: with a durable service configured, every artifact committed
|
|
1142
|
+
// by the session's capability runtime is mirrored here, so the wire face
|
|
1143
|
+
// serves it without an explicit persist call. Without a durable service
|
|
1144
|
+
// nothing is registered (no behavior change). Mirror failures surface as
|
|
1145
|
+
// runtime commit-observer log records; they never fail the artifact put.
|
|
1146
|
+
const unsubscribeArtifactMirror = this.durable === undefined
|
|
1147
|
+
? undefined
|
|
1148
|
+
: session.onOutputArtifactCommit(({ ref, bytes }) => {
|
|
1149
|
+
this.persistOutputArtifact(descriptor.id, ref, bytes);
|
|
1150
|
+
});
|
|
1151
|
+
const runtime = new CodingAgentSessionRuntime(session, descriptor, {
|
|
1152
|
+
models: this.models,
|
|
1153
|
+
onDisposed: () => {
|
|
1154
|
+
unsubscribeArtifactMirror?.();
|
|
1155
|
+
this.acquired.delete(descriptor.id);
|
|
1156
|
+
},
|
|
1157
|
+
});
|
|
1158
|
+
this.acquired.set(descriptor.id, runtime);
|
|
1159
|
+
return runtime;
|
|
1160
|
+
}
|
|
1161
|
+
assertNotAcquired(id) {
|
|
1162
|
+
if (this.acquired.has(id) || this.opening.has(id)) {
|
|
1163
|
+
throw new PiServerError("session_locked", `Session is already open: ${id}`);
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
/** Composes the coding-agent service with transport, journal, and auth hooks into one server. */
|
|
1168
|
+
export function assembleCodingAgentServer(options) {
|
|
1169
|
+
const service = new CodingAgentServerService({
|
|
1170
|
+
sessions: options.sessions,
|
|
1171
|
+
models: options.models,
|
|
1172
|
+
now: options.now,
|
|
1173
|
+
...(options.durable === undefined ? {} : { durable: options.durable }),
|
|
1174
|
+
...(options.writerId === undefined ? {} : { writerId: options.writerId }),
|
|
1175
|
+
...(options.operationExecutors === undefined ? {} : { operationExecutors: options.operationExecutors }),
|
|
1176
|
+
});
|
|
1177
|
+
const server = new PiServer(service, {
|
|
1178
|
+
listeners: options.listeners,
|
|
1179
|
+
...(options.journal === undefined ? {} : { journal: options.journal }),
|
|
1180
|
+
...(options.authenticate === undefined ? {} : { authenticate: options.authenticate }),
|
|
1181
|
+
...(options.authorize === undefined ? {} : { authorize: options.authorize }),
|
|
1182
|
+
...(options.serverId === undefined ? {} : { serverId: options.serverId }),
|
|
1183
|
+
...(options.maxFrameLength === undefined ? {} : { maxFrameLength: options.maxFrameLength }),
|
|
1184
|
+
...(options.handshakeTimeoutMs === undefined ? {} : { handshakeTimeoutMs: options.handshakeTimeoutMs }),
|
|
1185
|
+
...(options.onError === undefined ? {} : { onError: options.onError }),
|
|
1186
|
+
});
|
|
1187
|
+
return { server, service };
|
|
1188
|
+
}
|
|
1189
|
+
//# sourceMappingURL=server-assembly.js.map
|