@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
package/dist/core/sdk.js
ADDED
|
@@ -0,0 +1,1112 @@
|
|
|
1
|
+
import { existsSync, realpathSync } from "node:fs";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { join, resolve } from "node:path";
|
|
4
|
+
import { Agent, setDefaultStreamFn, } from "@agent-forge/agent-core";
|
|
5
|
+
import { clampThinkingLevel, streamSimple } from "@agent-forge/ai/compat";
|
|
6
|
+
import { createSubagentMailbox } from "@agent-forge/protocol/subagent";
|
|
7
|
+
import { satisfies } from "semver";
|
|
8
|
+
import { BUILTIN_CAPABILITY_PACKAGE_IDS, resolveBuiltinCapabilities } from "../capabilities/builtin.js";
|
|
9
|
+
import { isValidThinkingLevel } from "../cli/args.js";
|
|
10
|
+
import { CONFIG_DIR_NAME, getAgentDir, VERSION } from "../config.js";
|
|
11
|
+
import { profileIdentitiesCompatible } from "../profile/identity.js";
|
|
12
|
+
import { ORIENTATION_PROMPTS } from "../profiles/builtin-suites.js";
|
|
13
|
+
import { buildResolvedAgentProfileV1 } from "../profiles/resolved-agent-profile.js";
|
|
14
|
+
import { createSuiteAssembly, decideSuiteCapabilityPlugin, filterSuiteSkills, readSessionSuiteBinding, resolveSuiteId, SUITE_ENV_VAR, SUITE_SESSION_ENTRY_TYPE, SuiteRebindError, suiteDanglingAssociationDiagnostic, suiteDanglingPluginAssociations, } from "../profiles/suite-loader.js";
|
|
15
|
+
import { resolvePath } from "../utils/paths.js";
|
|
16
|
+
import { AgentSession } from "./agent-session.js";
|
|
17
|
+
import { createAgentSessionRuntime } from "./agent-session-runtime.js";
|
|
18
|
+
import { listAgentSessions, readAgentSession } from "./agent-session-store.js";
|
|
19
|
+
import { formatNoModelsAvailableMessage } from "./auth-guidance.js";
|
|
20
|
+
import { DEFAULT_THINKING_LEVEL } from "./defaults.js";
|
|
21
|
+
import { discoverCapabilityPluginManifests, parseCapabilityPluginManifest } from "./extensions/capability-plugin.js";
|
|
22
|
+
import { resolvePluginCapabilityOrder } from "./extensions/capability-runtime.js";
|
|
23
|
+
import { createCodingAgentFacade } from "./facade/coding-agent-facade.js";
|
|
24
|
+
import { createCodingAgentRuntimeFacade, } from "./facade/coding-agent-runtime-facade.js";
|
|
25
|
+
import { convertToLlm } from "./messages.js";
|
|
26
|
+
import { findExactModelReferenceMatch, findInitialModel } from "./model-resolver.js";
|
|
27
|
+
import { ModelRuntime } from "./model-runtime.js";
|
|
28
|
+
import { DefaultResourceLoader } from "./resource-loader.js";
|
|
29
|
+
import { getDefaultSessionDir, getTraceFilePathForSession, SessionManager } from "./session-manager.js";
|
|
30
|
+
import { SettingsManager } from "./settings-manager.js";
|
|
31
|
+
import { time } from "./timings.js";
|
|
32
|
+
import { createBashTool, createCodingTools, createEditTool, createFindTool, createGrepTool, createLsTool, createPowerShellTool, createReadOnlyTools, createReadTool, createWriteTool, withFileMutationQueue, } from "./tools/index.js";
|
|
33
|
+
// Preserve the pre-0.81 fallback for extensions that construct Agent instances
|
|
34
|
+
// or invoke low-level agent loops without supplying streamFn. Agent core remains
|
|
35
|
+
// provider-agnostic and does not import pi-ai/compat itself.
|
|
36
|
+
setDefaultStreamFn(streamSimple);
|
|
37
|
+
const AGENT_TASK_SETTLED_STATUSES = new Set([
|
|
38
|
+
"queued",
|
|
39
|
+
"admitted",
|
|
40
|
+
"running",
|
|
41
|
+
"succeeded",
|
|
42
|
+
"failed",
|
|
43
|
+
"cancelled",
|
|
44
|
+
"timed_out",
|
|
45
|
+
"drain_timeout",
|
|
46
|
+
"runner_lost",
|
|
47
|
+
]);
|
|
48
|
+
/** Parses one settlement line; undefined for any shape outside the contract. */
|
|
49
|
+
function parseAgentTaskSettledDigestLine(line) {
|
|
50
|
+
let parsed;
|
|
51
|
+
try {
|
|
52
|
+
parsed = JSON.parse(line);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
|
|
58
|
+
return undefined;
|
|
59
|
+
const record = parsed;
|
|
60
|
+
if (typeof record.taskId !== "string" || record.taskId === "")
|
|
61
|
+
return undefined;
|
|
62
|
+
if (typeof record.sessionId !== "string" || record.sessionId === "")
|
|
63
|
+
return undefined;
|
|
64
|
+
if (typeof record.status !== "string" || !AGENT_TASK_SETTLED_STATUSES.has(record.status))
|
|
65
|
+
return undefined;
|
|
66
|
+
if (record.reasonCode !== undefined && (typeof record.reasonCode !== "string" || record.reasonCode === "")) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
taskId: record.taskId,
|
|
71
|
+
// 行内 sessionId 是子会话 id(复审 M1):映射为事件 data 的 taskSessionId。
|
|
72
|
+
taskSessionId: record.sessionId,
|
|
73
|
+
status: record.status,
|
|
74
|
+
...(record.reasonCode === undefined ? {} : { reasonCode: record.reasonCode }),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 后台委派结算行 → agent.task.settled@1 派发(第 4 期轨迹闭合)。行解析失败或
|
|
79
|
+
* status 不属九值枚举时降级为仅 hostLogger warn——不阻断既有 pending 注入行为。
|
|
80
|
+
* 会话缺席(agentSessionRef.current 在会话创建前为 undefined)或已 dispose(旧 runtime revokeState →
|
|
81
|
+
* hasLifecycleEvent false → 派发助手 no-op)时安全跳过。
|
|
82
|
+
*/
|
|
83
|
+
export function deliverAgentTaskSettledDigestLine(session, line, hostLogger) {
|
|
84
|
+
const facts = parseAgentTaskSettledDigestLine(line);
|
|
85
|
+
if (facts === undefined) {
|
|
86
|
+
hostLogger?.warn("sdk", "background delegation settlement line is not a valid agent.task.settled source", {
|
|
87
|
+
cause: line,
|
|
88
|
+
});
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
session?.dispatchAgentTaskSettled(facts);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Plugin id of the standalone observability package (D-075 S4 second batch).
|
|
95
|
+
* When `traceEnabled` is not `false`, the assembler adds it to the installed
|
|
96
|
+
* plugin membership set so the installed package joins the session through
|
|
97
|
+
* the same loading path as every other plugin package.
|
|
98
|
+
*/
|
|
99
|
+
const OBSERVABILITY_PACKAGE_ID = "agent-forge.plugin.observability";
|
|
100
|
+
/**
|
|
101
|
+
* Plugin id of the standalone subagent-delegate package (D-075 S4 third
|
|
102
|
+
* batch). When `subagentPoolFromSelfInvocation` is true (the real CLI
|
|
103
|
+
* assembly declaring its own process entry trustworthy), the assembler
|
|
104
|
+
* overrides the plugin's manifest config with `runnerEntryAuto: true` at load
|
|
105
|
+
* — the config key the package's auto-pooling path consumes (the former host
|
|
106
|
+
* `selfInvocationPool` option is retired). The agent-dir config file still
|
|
107
|
+
* merges over it inside the plugin entry, so users keep the final say.
|
|
108
|
+
*/
|
|
109
|
+
const SUBAGENT_DELEGATE_PACKAGE_ID = "agent-forge.plugin.subagent-delegate";
|
|
110
|
+
/**
|
|
111
|
+
* Plugin id of the standalone memory package (D-075 S4 fourth batch). When the
|
|
112
|
+
* suite declares `builtin.memory` and the resolved memory mode is light/full,
|
|
113
|
+
* the assembler adds the package to the installed-plugin membership set and
|
|
114
|
+
* overrides its manifest config with `memoryMode`/`memorySettingsMode` at load
|
|
115
|
+
* — the config keys the package's entry resolves with the exact precedence
|
|
116
|
+
* the embedded capability used to have (explicit host option → env →
|
|
117
|
+
* settings.json → legacy alias → off). Mode off keeps the package out of the
|
|
118
|
+
* membership set entirely (禁用 = 不装配, plus one startup diagnostic).
|
|
119
|
+
*/
|
|
120
|
+
const MEMORY_PACKAGE_ID = "agent-forge.plugin.memory";
|
|
121
|
+
const isMemoryModeV1 = (value) => value === "off" || value === "light" || value === "full";
|
|
122
|
+
function resolveSdkMemoryMode(explicitMode, env, settingsMode) {
|
|
123
|
+
if (explicitMode !== undefined) {
|
|
124
|
+
if (isMemoryModeV1(explicitMode))
|
|
125
|
+
return { mode: explicitMode };
|
|
126
|
+
return { mode: "off", invalidEnvValue: explicitMode };
|
|
127
|
+
}
|
|
128
|
+
const configured = env.AGENT_FORGE_MEMORY_MODE?.trim().toLowerCase();
|
|
129
|
+
if (configured !== undefined && configured !== "") {
|
|
130
|
+
if (isMemoryModeV1(configured))
|
|
131
|
+
return { mode: configured };
|
|
132
|
+
return { mode: "off", invalidEnvValue: configured };
|
|
133
|
+
}
|
|
134
|
+
const fromSettings = settingsMode?.trim().toLowerCase();
|
|
135
|
+
if (fromSettings !== undefined && fromSettings !== "") {
|
|
136
|
+
if (isMemoryModeV1(fromSettings))
|
|
137
|
+
return { mode: fromSettings };
|
|
138
|
+
return { mode: "off", invalidSettingsValue: fromSettings };
|
|
139
|
+
}
|
|
140
|
+
const legacy = env.AGENT_FORGE_MEMORY_VECTOR?.trim().toLowerCase();
|
|
141
|
+
if (legacy !== undefined && legacy !== "") {
|
|
142
|
+
if (isMemoryModeV1(legacy))
|
|
143
|
+
return { mode: legacy };
|
|
144
|
+
return { mode: "off", invalidEnvValue: legacy };
|
|
145
|
+
}
|
|
146
|
+
return { mode: "off" };
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* 子代理 headless 交互宿主(D-044 §5.5):child 会话无宿主 UI,interaction 请求
|
|
150
|
+
* 落回冻结 InteractionOutcomeV1 语义——prompt 返回 "unavailable"(宿主无 UI),
|
|
151
|
+
* signal 已中止返回 "cancelled";notify 为 fire-and-forget 空操作(语义 delivered)。
|
|
152
|
+
*/
|
|
153
|
+
export const HEADLESS_INTERACTION_HOST = {
|
|
154
|
+
notify: () => { },
|
|
155
|
+
prompt: async (_request, context) => {
|
|
156
|
+
if (context.signal.aborted)
|
|
157
|
+
return { status: "cancelled" };
|
|
158
|
+
return { status: "unavailable" };
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
// Re-exports
|
|
162
|
+
export * from "./agent-session-runtime.js";
|
|
163
|
+
export { withFileMutationQueue,
|
|
164
|
+
// Tool factories (for custom cwd)
|
|
165
|
+
createCodingTools, createReadOnlyTools, createReadTool, createBashTool, createEditTool, createWriteTool, createGrepTool, createFindTool, createLsTool, createPowerShellTool, };
|
|
166
|
+
// Helper Functions
|
|
167
|
+
function getDefaultAgentDir() {
|
|
168
|
+
return getAgentDir();
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Inserts one request-time injection right after the last user message: the
|
|
172
|
+
* injected context is turn-scoped, so it belongs at the head of the current
|
|
173
|
+
* turn, ahead of any assistant/toolResult round already in flight. Purely a
|
|
174
|
+
* request-time view — the persisted session history stays untouched. (The B1
|
|
175
|
+
* memory auto-recall injection moved to the builtin memory capability plugin,
|
|
176
|
+
* D-071; the background delegation digest below is the remaining consumer.)
|
|
177
|
+
*/
|
|
178
|
+
function injectAfterLastUserMessage(messages, injection) {
|
|
179
|
+
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
180
|
+
if (messages[index]?.role === "user") {
|
|
181
|
+
return [...messages.slice(0, index + 1), injection, ...messages.slice(index + 1)];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return messages;
|
|
185
|
+
}
|
|
186
|
+
async function readCapabilityPluginManifestForOrdering(manifestPath) {
|
|
187
|
+
let raw;
|
|
188
|
+
try {
|
|
189
|
+
raw = JSON.parse(await readFile(manifestPath, "utf8"));
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
throw new Error(`Failed to read capability plugin manifest ${manifestPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
193
|
+
}
|
|
194
|
+
return parseCapabilityPluginManifest(raw, manifestPath);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Create an AgentSession with the specified options.
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```typescript
|
|
201
|
+
* // Minimal - uses defaults
|
|
202
|
+
* const { session } = await createAgentSession();
|
|
203
|
+
*
|
|
204
|
+
* // With explicit model
|
|
205
|
+
* import { getModel } from '@agent-forge/ai';
|
|
206
|
+
* const { session } = await createAgentSession({
|
|
207
|
+
* model: getModel('anthropic', 'claude-opus-4-5'),
|
|
208
|
+
* thinkingLevel: 'high',
|
|
209
|
+
* });
|
|
210
|
+
*
|
|
211
|
+
* // Continue previous session
|
|
212
|
+
* const { session, modelFallbackMessage } = await createAgentSession({
|
|
213
|
+
* continueSession: true,
|
|
214
|
+
* });
|
|
215
|
+
*
|
|
216
|
+
* // Full control
|
|
217
|
+
* const loader = new DefaultResourceLoader({
|
|
218
|
+
* cwd: process.cwd(),
|
|
219
|
+
* agentDir: getAgentDir(),
|
|
220
|
+
* settingsManager: SettingsManager.create(),
|
|
221
|
+
* });
|
|
222
|
+
* await loader.reload();
|
|
223
|
+
* const { session } = await createAgentSession({
|
|
224
|
+
* model: myModel,
|
|
225
|
+
* tools: ["read", "bash"],
|
|
226
|
+
* resourceLoader: loader,
|
|
227
|
+
* sessionManager: SessionManager.inMemory(),
|
|
228
|
+
* });
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
export async function createAgentSession(options = {}) {
|
|
232
|
+
const cwd = resolvePath(options.cwd ?? options.sessionManager?.getCwd() ?? process.cwd());
|
|
233
|
+
const agentDir = options.agentDir ? resolvePath(options.agentDir) : getDefaultAgentDir();
|
|
234
|
+
let resourceLoader = options.resourceLoader;
|
|
235
|
+
const authPath = options.agentDir ? join(agentDir, "auth.json") : undefined;
|
|
236
|
+
const modelsPath = options.agentDir ? join(agentDir, "models.json") : undefined;
|
|
237
|
+
const modelRuntime = options.modelRuntime ?? (await ModelRuntime.create({ authPath, modelsPath, credentials: options.credentials }));
|
|
238
|
+
const settingsManager = options.settingsManager ?? SettingsManager.create(cwd, agentDir);
|
|
239
|
+
// Suite assembly (方案系统 M1a/M2): resolve the active suite and build the
|
|
240
|
+
// shared assembly (workspace + loader overrides + diagnostics channel).
|
|
241
|
+
// The inherit switch also gates the global agentDir SYSTEM.md/
|
|
242
|
+
// APPEND_SYSTEM.md prompt channel (设计 §8: it governs the whole system
|
|
243
|
+
// layer). Unknown ids fail here with a structured error listing the
|
|
244
|
+
// available suites. The loader overrides below are applied only when this
|
|
245
|
+
// call builds its own DefaultResourceLoader; callers that bring their own
|
|
246
|
+
// resourceLoader keep the M1a bypass boundary (unchanged).
|
|
247
|
+
const suiteId = resolveSuiteId({
|
|
248
|
+
explicit: options.suite,
|
|
249
|
+
envSuite: process.env[SUITE_ENV_VAR],
|
|
250
|
+
settings: settingsManager,
|
|
251
|
+
agentDir,
|
|
252
|
+
});
|
|
253
|
+
const suiteAssembly = createSuiteAssembly({
|
|
254
|
+
cwd,
|
|
255
|
+
agentDir,
|
|
256
|
+
suiteId,
|
|
257
|
+
pluginProfileId: options.pluginProfileId,
|
|
258
|
+
selectedPluginIds: options.selectedPluginIds,
|
|
259
|
+
disabledPluginIds: options.disabledPluginIds,
|
|
260
|
+
pluginHost: options.pluginHost,
|
|
261
|
+
verifiedPlugins: options.verifiedPlugins,
|
|
262
|
+
manifestOverrides: options.manifestOverrides,
|
|
263
|
+
pluginProfile: options.pluginProfile,
|
|
264
|
+
});
|
|
265
|
+
const suiteWorkspace = suiteAssembly.workspace;
|
|
266
|
+
// ResolvedAgentProfile (D-047 S4a): one deep-frozen aggregate view over the
|
|
267
|
+
// resolved suite per session, built once at the existing single resolution
|
|
268
|
+
// point right after suite assembly. Pure projection of the authoritative
|
|
269
|
+
// sources above (identity, lock verification, plugin profile, workspace
|
|
270
|
+
// paths) — no new generation mechanism; AgentSession stays suite-unaware.
|
|
271
|
+
const resolvedAgentProfile = buildResolvedAgentProfileV1({
|
|
272
|
+
suiteId,
|
|
273
|
+
workspace: suiteWorkspace,
|
|
274
|
+
...(suiteAssembly.pluginProfile === undefined ? {} : { pluginProfile: suiteAssembly.pluginProfile }),
|
|
275
|
+
});
|
|
276
|
+
// Capability wiring (方案系统 M3): resolve the suite's `capabilities`
|
|
277
|
+
// short ids onto the builtin family mapping (every short id assembles from
|
|
278
|
+
// its independent plugin package; unknown ids surface as dangling
|
|
279
|
+
// diagnostics, never as errors — 决策记录 §8) and prepare the external
|
|
280
|
+
// pool / legacy skill association filters. Follows the M1a/M1b assembly
|
|
281
|
+
// boundary: wiring is on when this call builds its own loader and off for
|
|
282
|
+
// callers that bring one unless they opt in explicitly.
|
|
283
|
+
const capabilityWiring = options.suiteCapabilityWiring ?? !options.resourceLoader;
|
|
284
|
+
const capabilityDiagnostics = [];
|
|
285
|
+
// Suite preference diagnostics (统一修复轮 B): unresolvable suite.model /
|
|
286
|
+
// suite.thinking declarations surface here instead of failing startup.
|
|
287
|
+
const suitePreferenceDiagnostics = [];
|
|
288
|
+
let capabilitySkillsFilter;
|
|
289
|
+
// 子代理通信面(D-060 S4/S5):每个装配域自持**一个**信箱(本会话的子代理们向它
|
|
290
|
+
// post escalation/兄弟消息,本会话的 delegate drain)。嵌套委派时,子装配域的信箱
|
|
291
|
+
// 由父侧 creator 构造并经 `subagentMailbox` 注入,保证 post 目标与 drain 来源同一
|
|
292
|
+
// 实例;post-up(向自己的父)接线经 `subagentCommunicationWiring` 注入,两者合并。
|
|
293
|
+
let communicationMailbox;
|
|
294
|
+
const selfMailbox = () => {
|
|
295
|
+
communicationMailbox ??= createSubagentMailbox({
|
|
296
|
+
agentDir,
|
|
297
|
+
ownerParentSessionId: () => agentSessionRef.current?.sessionId,
|
|
298
|
+
});
|
|
299
|
+
return communicationMailbox;
|
|
300
|
+
};
|
|
301
|
+
const communicationWiring = options.enableAgentTasks === false && options.subagentCommunicationWiring === undefined
|
|
302
|
+
? undefined
|
|
303
|
+
: {
|
|
304
|
+
drainEscalations: (sessionId) => selfMailbox().drainEscalations(sessionId),
|
|
305
|
+
...(options.subagentCommunicationWiring ?? {}),
|
|
306
|
+
};
|
|
307
|
+
// 后台委派结算摘要(D-060 S6):delegate 的 background 任务结算时经 sink 落一行
|
|
308
|
+
// 有界 JSON(上限 20 条,超出丢最旧),transformContext 在父的下一次模型轮次
|
|
309
|
+
// 一次性注入并清空——完成感知不抢占父回合。
|
|
310
|
+
const backgroundDigest = { pending: [] };
|
|
311
|
+
// 记忆档位解析(2.4d6 S1;D-075 S4 第四批):SDK 显式选项最优先,settings.json
|
|
312
|
+
// 档位作为 env 之下的持久来源进入解析链(显式 > env > settings > 旧别名 env >
|
|
313
|
+
// off);两者皆缺省时同样走 env/别名/off 解析(off = memory 插件包不装配)。
|
|
314
|
+
// 门控诊断与成员资格判定在下方 capabilityWiring 块产出。
|
|
315
|
+
const settingsMemoryMode = settingsManager.getMemoryModeSetting();
|
|
316
|
+
const memoryModeOption = options.memoryCapability?.mode;
|
|
317
|
+
const memoryModeResolution = resolveSdkMemoryMode(memoryModeOption, process.env, settingsMemoryMode);
|
|
318
|
+
if (capabilityWiring) {
|
|
319
|
+
const resolved = resolveBuiltinCapabilities(suiteWorkspace.suite.capabilities);
|
|
320
|
+
for (const shortId of resolved.unknownShortIds) {
|
|
321
|
+
capabilityDiagnostics.push(suiteDanglingAssociationDiagnostic(suiteId, "capabilities", shortId));
|
|
322
|
+
}
|
|
323
|
+
// 记忆全局门控诊断(2.4d6 S1, D-075 S4 第四批自 builtin 通道迁入):套件确实
|
|
324
|
+
// 声明了 builtin.memory 时才输出(抑制发生了才声明;未声明的场合由白名单语
|
|
325
|
+
// 义覆盖,不加噪音)。文案由 builtin 时代逐字迁移(memory-mode-gating 等 pin)。
|
|
326
|
+
if (suiteWorkspace.suite.capabilities.includes("builtin.memory")) {
|
|
327
|
+
if (memoryModeResolution.invalidEnvValue !== undefined) {
|
|
328
|
+
capabilityDiagnostics.push(`invalid AGENT_FORGE_MEMORY_MODE value "${memoryModeResolution.invalidEnvValue}"; memory stays off (fail-closed)`);
|
|
329
|
+
}
|
|
330
|
+
if (memoryModeResolution.invalidSettingsValue !== undefined) {
|
|
331
|
+
capabilityDiagnostics.push(`invalid memory.mode setting "${memoryModeResolution.invalidSettingsValue}"; memory stays off (fail-closed)`);
|
|
332
|
+
}
|
|
333
|
+
if (memoryModeResolution.mode === "off") {
|
|
334
|
+
capabilityDiagnostics.push("memory disabled (mode=off) — set memory.mode (light|full) in settings.json to enable");
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
// Legacy plugin skill face: the bootstrap-skills contribution face is
|
|
338
|
+
// already filtered loader-side (M1b); only runtime.listSkills() entries
|
|
339
|
+
// pass through this hook. Association dangling is reported by the
|
|
340
|
+
// loader-side skills filter; this hook only narrows the plugin face.
|
|
341
|
+
// The suite-local skill layer (统一修复轮 B) passes by path there.
|
|
342
|
+
const suiteDefinition = suiteWorkspace.suite;
|
|
343
|
+
const suiteLocalSkillsDir = suiteAssembly.localSkillsDir;
|
|
344
|
+
capabilitySkillsFilter = (skills) => filterSuiteSkills(suiteDefinition, skills, { localSkillsDir: suiteLocalSkillsDir }).kept;
|
|
345
|
+
}
|
|
346
|
+
const sessionManager = options.sessionManager ?? SessionManager.create(cwd, getDefaultSessionDir(cwd, agentDir));
|
|
347
|
+
// 打点通道(设计 §5.2):streamFn 闭包的 options 参数会遮蔽装配 options,统一
|
|
348
|
+
// 捕获为局部常量;未注入时全部打点为 no-op。
|
|
349
|
+
const hostLogger = options.hostLogger;
|
|
350
|
+
// 轨迹快照预算(设计 §6 控制面,第 2 期外露):随 trace 服务注入安装店
|
|
351
|
+
// observability 插件;缺省 = 插件内默认(16000 字符/串、384KiB/快照)。
|
|
352
|
+
const traceOptions = options.traceOptions;
|
|
353
|
+
// 轨迹收集默认装配(设计 §4.4/§6,D-065;S4 拆包改造,D-075 第二批):
|
|
354
|
+
// `traceEnabled` 缺省开启时,安装店 `agent-forge.plugin.observability` 包
|
|
355
|
+
// 随装配链加载(成员资格并入 installed 插件集合,可经 disabledPluginIds
|
|
356
|
+
// 显式禁用;第三方可经同一公共 lifecycle 订阅面替换)。宿主适配器闭包只
|
|
357
|
+
// 依赖装配域内既有事实:会话文件路径(惰性解析,经既有 getSessionFile()
|
|
358
|
+
// 读面加 §4.1 配对纯函数)、进程日志(options.hostLogger,未注入为 no-op)、
|
|
359
|
+
// payload 捕获(onPayload 读取;无隐藏全局)。适配器经新 `api.trace` 服务
|
|
360
|
+
// 面注入插件;插件 entry 经适配器可选 `registerFacade` 通道把门面写回
|
|
361
|
+
// 下方三个装配域 ref(payload 捕获 / plugin.log 镜像 / /metrics 数据源),
|
|
362
|
+
// dispose 时置空——与内嵌工厂时代的 ref 语义逐点一致。
|
|
363
|
+
const observabilityCapture = {};
|
|
364
|
+
// 插件日志镜像共享 ref(会话轨迹 plugin.log,设计 §7.2):插件门面
|
|
365
|
+
// mirrorPluginLog 注册时写入,dispose 时置空;AgentSession 的 runtime
|
|
366
|
+
// 日志 sink 经 AgentSessionConfig.logRecordMirrorRef 读它。
|
|
367
|
+
const observabilityLogMirror = {};
|
|
368
|
+
// /metrics 命令的数据源(observability 门面直通):插件门面 getMetrics
|
|
369
|
+
// 注册时写入,dispose 时置空;宿主(TUI/RPC)在装配完成后读取并接进命令
|
|
370
|
+
// options。
|
|
371
|
+
const observabilityGetMetrics = {};
|
|
372
|
+
let traceService;
|
|
373
|
+
if (options.traceEnabled !== false) {
|
|
374
|
+
const adapter = {
|
|
375
|
+
getTraceFilePath: () => {
|
|
376
|
+
const sessionFilePath = sessionManager.getSessionFile();
|
|
377
|
+
return sessionFilePath === undefined ? null : getTraceFilePathForSession(sessionFilePath);
|
|
378
|
+
},
|
|
379
|
+
captureProviderPayload: (payload, model) => {
|
|
380
|
+
observabilityCapture.current?.(payload, model);
|
|
381
|
+
},
|
|
382
|
+
onSinkFailure: (error) => {
|
|
383
|
+
hostLogger?.error("observability", "trace sink failure", { cause: error });
|
|
384
|
+
},
|
|
385
|
+
getTurnCorrelationId: () => agentSessionRef.current?.getTurnCorrelationId(),
|
|
386
|
+
getParentAgentSessionId: () => sessionManager.getHeader()?.parentAgentSession,
|
|
387
|
+
getParentTraceId: () => sessionManager.getHeader()?.parentTraceId,
|
|
388
|
+
registerFacade: (facade) => {
|
|
389
|
+
observabilityCapture.current = facade?.captureProviderPayload;
|
|
390
|
+
observabilityLogMirror.current = facade?.mirrorPluginLog;
|
|
391
|
+
observabilityGetMetrics.current = facade?.getMetrics;
|
|
392
|
+
},
|
|
393
|
+
};
|
|
394
|
+
traceService = { adapter, ...(traceOptions === undefined ? {} : { options: traceOptions }) };
|
|
395
|
+
}
|
|
396
|
+
if (!resourceLoader) {
|
|
397
|
+
// Suite association filtering (方案系统 M1b, 设计 §3/§4): the default
|
|
398
|
+
// loader's skills are filtered down to the suite's
|
|
399
|
+
// associations here, at the assembler layer; project-scope entries
|
|
400
|
+
// (cwd/.agent-forge) always pass. Dangling associations surface through
|
|
401
|
+
// suiteDiagnostics, never as errors.
|
|
402
|
+
resourceLoader = new DefaultResourceLoader({
|
|
403
|
+
cwd,
|
|
404
|
+
agentDir,
|
|
405
|
+
settingsManager,
|
|
406
|
+
...suiteAssembly.loaderOverrides,
|
|
407
|
+
// Suite-local skill layer (统一修复轮 B): <suiteDir>/skills rides the
|
|
408
|
+
// loader's skill paths when the suite is active. The filterSuiteSkills
|
|
409
|
+
// suite-local exemption keeps these entries; user-level and other
|
|
410
|
+
// unassociated layers stay filtered. Undefined (absent directory)
|
|
411
|
+
// injects nothing, so empty and missing directories are both silent.
|
|
412
|
+
...(suiteAssembly.localSkillsDir === undefined
|
|
413
|
+
? {}
|
|
414
|
+
: { additionalSkillPaths: [suiteAssembly.localSkillsDir] }),
|
|
415
|
+
});
|
|
416
|
+
await resourceLoader.reload();
|
|
417
|
+
time("resourceLoader.reload");
|
|
418
|
+
}
|
|
419
|
+
// Check if session has existing data to restore
|
|
420
|
+
const existingSession = sessionManager.buildSessionContext();
|
|
421
|
+
const hasExistingSession = existingSession.messages.length > 0;
|
|
422
|
+
const branchEntries = sessionManager.getBranch();
|
|
423
|
+
const sessionSuiteBinding = readSessionSuiteBinding(branchEntries);
|
|
424
|
+
// 绑定护栏保护的是有对话上下文的会话:会话创建先于插件装载,装载失败(profile
|
|
425
|
+
// drift 等)会留下只有初始化 entry 与绑定的残留——这些 message entries 会让
|
|
426
|
+
// hasExistingSession 为真,若按它门控,用户用同一 session id 重试会永远撞墙
|
|
427
|
+
// (dogfood 2026-09-25 实测)。真实用户输入(user entry)才算对话开始。
|
|
428
|
+
const hasConversation = branchEntries.some((entry) => entry.type === "message" && entry.message?.role === "user");
|
|
429
|
+
if (hasConversation && sessionSuiteBinding !== undefined) {
|
|
430
|
+
if (sessionSuiteBinding.suiteId !== suiteId) {
|
|
431
|
+
throw new SuiteRebindError(`Session is bound to suite "${sessionSuiteBinding.suiteId}" and cannot resume with "${suiteId}"; create a new session or migrate explicitly`);
|
|
432
|
+
}
|
|
433
|
+
if (sessionSuiteBinding.profileIdentity !== undefined &&
|
|
434
|
+
!profileIdentitiesCompatible(sessionSuiteBinding.profileIdentity, suiteWorkspace.identity)) {
|
|
435
|
+
throw new SuiteRebindError("Session Profile identity drift detected; create a new session or migrate explicitly before reloading plugins");
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
const hasThinkingEntry = sessionManager.getBranch().some((entry) => entry.type === "thinking_level_change");
|
|
439
|
+
let model = options.model;
|
|
440
|
+
let modelFallbackMessage;
|
|
441
|
+
// If session has data, try to restore model from it
|
|
442
|
+
if (!model && hasExistingSession && existingSession.model) {
|
|
443
|
+
const restoredModel = modelRuntime.getModel(existingSession.model.provider, existingSession.model.modelId);
|
|
444
|
+
if (restoredModel && modelRuntime.hasConfiguredAuth(restoredModel.provider)) {
|
|
445
|
+
model = restoredModel;
|
|
446
|
+
}
|
|
447
|
+
if (!model) {
|
|
448
|
+
modelFallbackMessage = `Could not restore model ${existingSession.model.provider}/${existingSession.model.modelId}`;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
// Suite model preference (统一修复轮 B): sits below the CLI/explicit option
|
|
452
|
+
// and the restored session model, above the settings default that
|
|
453
|
+
// findInitialModel resolves below. A suite model that matches no
|
|
454
|
+
// authenticated model falls through to the next tier with a diagnostic —
|
|
455
|
+
// never a failure (设计 §9: suite content never blocks startup). Factory
|
|
456
|
+
// builtin suites declare null, so their resolution is unchanged.
|
|
457
|
+
const suiteModelPreference = suiteWorkspace.suite.model;
|
|
458
|
+
if (!model && suiteModelPreference !== null) {
|
|
459
|
+
const suiteModel = findExactModelReferenceMatch(suiteModelPreference, [...modelRuntime.getModels()]);
|
|
460
|
+
if (suiteModel && modelRuntime.hasConfiguredAuth(suiteModel.provider)) {
|
|
461
|
+
model = suiteModel;
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
suitePreferenceDiagnostics.push(`Suite "${suiteId}" model "${suiteModelPreference}" does not resolve to an authenticated model; using the normal model resolution instead.`);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
// If still no model, use findInitialModel (checks settings default, then provider defaults)
|
|
468
|
+
if (!model) {
|
|
469
|
+
const result = await findInitialModel({
|
|
470
|
+
scopedModels: [],
|
|
471
|
+
isContinuing: hasExistingSession,
|
|
472
|
+
defaultProvider: settingsManager.getDefaultProvider(),
|
|
473
|
+
defaultModelId: settingsManager.getDefaultModel(),
|
|
474
|
+
defaultThinkingLevel: settingsManager.getDefaultThinkingLevel(),
|
|
475
|
+
modelThinkingLevels: settingsManager.getAllModelThinkingLevels(),
|
|
476
|
+
modelRuntime,
|
|
477
|
+
});
|
|
478
|
+
model = result.model;
|
|
479
|
+
if (!model) {
|
|
480
|
+
modelFallbackMessage = formatNoModelsAvailableMessage();
|
|
481
|
+
}
|
|
482
|
+
else if (modelFallbackMessage) {
|
|
483
|
+
modelFallbackMessage += `. Using ${model.provider}/${model.id}`;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
let thinkingLevel = options.thinkingLevel;
|
|
487
|
+
// If session has data, restore thinking level from it
|
|
488
|
+
if (thinkingLevel === undefined && hasExistingSession && hasThinkingEntry) {
|
|
489
|
+
thinkingLevel = existingSession.thinkingLevel;
|
|
490
|
+
}
|
|
491
|
+
// Suite thinking preference (统一修复轮 B): below the session's persisted
|
|
492
|
+
// thinking entry, above the settings-derived tiers. An invalid value falls
|
|
493
|
+
// through with a diagnostic; factory builtin suites declare null, so their
|
|
494
|
+
// resolution is unchanged.
|
|
495
|
+
const suiteThinkingPreference = suiteWorkspace.suite.thinking;
|
|
496
|
+
if (thinkingLevel === undefined && suiteThinkingPreference !== null) {
|
|
497
|
+
if (isValidThinkingLevel(suiteThinkingPreference)) {
|
|
498
|
+
thinkingLevel = suiteThinkingPreference;
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
suitePreferenceDiagnostics.push(`Suite "${suiteId}" thinking "${suiteThinkingPreference}" is not a valid thinking level; using the normal thinking resolution instead.`);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
// If session has data without a persisted thinking entry, the settings
|
|
505
|
+
// default applies (same tier as before the suite preference was inserted).
|
|
506
|
+
if (thinkingLevel === undefined && hasExistingSession) {
|
|
507
|
+
thinkingLevel = settingsManager.getDefaultThinkingLevel() ?? DEFAULT_THINKING_LEVEL;
|
|
508
|
+
}
|
|
509
|
+
// Fall back to per-model override, then global default
|
|
510
|
+
if (thinkingLevel === undefined && model) {
|
|
511
|
+
const perModel = settingsManager.getModelThinkingLevel(model.provider, model.id);
|
|
512
|
+
if (perModel) {
|
|
513
|
+
thinkingLevel = perModel;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
if (thinkingLevel === undefined) {
|
|
517
|
+
thinkingLevel = settingsManager.getDefaultThinkingLevel() ?? DEFAULT_THINKING_LEVEL;
|
|
518
|
+
}
|
|
519
|
+
// Clamp to model capabilities
|
|
520
|
+
if (!model) {
|
|
521
|
+
thinkingLevel = "off";
|
|
522
|
+
}
|
|
523
|
+
else {
|
|
524
|
+
thinkingLevel = clampThinkingLevel(model, thinkingLevel);
|
|
525
|
+
}
|
|
526
|
+
const defaultActiveToolNames = options.capabilityMode === "readonly" ? ["read", "grep", "find", "ls"] : ["read", "bash", "edit", "write"];
|
|
527
|
+
const configuredDefaultToolNames = settingsManager.getDefaultTools();
|
|
528
|
+
const allowedToolNames = options.tools ?? (options.noTools === "all" ? [] : undefined);
|
|
529
|
+
const excludedToolNames = options.excludeTools;
|
|
530
|
+
const excludedToolNameSet = excludedToolNames ? new Set(excludedToolNames) : undefined;
|
|
531
|
+
// Suite tool surface (设计 §5/§6): the resolved suite's declared tools
|
|
532
|
+
// override the default allowlist when the caller passed neither tools nor
|
|
533
|
+
// noTools. Both builtin suites share the same unrestricted 8-tool
|
|
534
|
+
// declaration (设计 §5: "两方案同一全集、无任何限制"), so the default
|
|
535
|
+
// assistant activates it too — the historical DEFAULT_SUITE_ID exemption
|
|
536
|
+
// that pinned assistant to the 4-tool base was removed in the 统一修复轮
|
|
537
|
+
// (2026-09-08, per 方案设计 §5 and the user decision "不需要限制这么死").
|
|
538
|
+
// capabilityMode stays a separate, orthogonal axis (设计 §5 权限段):
|
|
539
|
+
// readonly narrows BOTH suites' faces a second time, so the suite
|
|
540
|
+
// declaration never defeats the readonly base face.
|
|
541
|
+
const suiteToolOverride = options.tools === undefined && options.noTools === undefined && options.capabilityMode !== "readonly"
|
|
542
|
+
? [...suiteWorkspace.suite.tools]
|
|
543
|
+
: undefined;
|
|
544
|
+
const initialActiveToolNames = (suiteToolOverride ??
|
|
545
|
+
options.tools ??
|
|
546
|
+
(options.noTools ? [] : (configuredDefaultToolNames ?? defaultActiveToolNames))).filter((name) => !excludedToolNameSet?.has(name));
|
|
547
|
+
let agent;
|
|
548
|
+
// Create convertToLlm wrapper that filters images if blockImages is enabled (defense-in-depth)
|
|
549
|
+
const convertToLlmWithBlockImages = (messages) => {
|
|
550
|
+
const converted = convertToLlm(messages);
|
|
551
|
+
// Check setting dynamically so mid-session changes take effect
|
|
552
|
+
if (!settingsManager.getBlockImages()) {
|
|
553
|
+
return converted;
|
|
554
|
+
}
|
|
555
|
+
// Filter out ImageContent from all messages, replacing with text placeholder
|
|
556
|
+
return converted.map((msg) => {
|
|
557
|
+
if (msg.role === "user" || msg.role === "toolResult") {
|
|
558
|
+
const content = msg.content;
|
|
559
|
+
if (Array.isArray(content)) {
|
|
560
|
+
const hasImages = content.some((c) => c.type === "image");
|
|
561
|
+
if (hasImages) {
|
|
562
|
+
const filteredContent = content
|
|
563
|
+
.map((c) => c.type === "image" ? { type: "text", text: "Image reading is disabled." } : c)
|
|
564
|
+
.filter((c, i, arr) =>
|
|
565
|
+
// Dedupe consecutive "Image reading is disabled." texts
|
|
566
|
+
!(c.type === "text" &&
|
|
567
|
+
c.text === "Image reading is disabled." &&
|
|
568
|
+
i > 0 &&
|
|
569
|
+
arr[i - 1].type === "text" &&
|
|
570
|
+
arr[i - 1].text === "Image reading is disabled."));
|
|
571
|
+
return { ...msg, content: filteredContent };
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
return msg;
|
|
576
|
+
});
|
|
577
|
+
};
|
|
578
|
+
const agentSessionRef = {};
|
|
579
|
+
const customStreamFn = options.streamFn;
|
|
580
|
+
agent = new Agent({
|
|
581
|
+
initialState: {
|
|
582
|
+
systemPrompt: "",
|
|
583
|
+
model,
|
|
584
|
+
thinkingLevel,
|
|
585
|
+
tools: [],
|
|
586
|
+
},
|
|
587
|
+
convertToLlm: convertToLlmWithBlockImages,
|
|
588
|
+
streamFn: customStreamFn
|
|
589
|
+
? (model, context, streamOptions) => customStreamFn(model, context, streamOptions)
|
|
590
|
+
: async (model, context, options) => {
|
|
591
|
+
const providerRetrySettings = settingsManager.getProviderRetrySettings();
|
|
592
|
+
const httpIdleTimeoutMs = settingsManager.getHttpIdleTimeoutMs();
|
|
593
|
+
// SDKs treat timeout=0 as 0ms (immediate timeout), not "no timeout".
|
|
594
|
+
// Use max int32 to effectively disable the timeout.
|
|
595
|
+
const effectiveTimeoutMs = httpIdleTimeoutMs === 0 ? 2147483647 : httpIdleTimeoutMs;
|
|
596
|
+
const timeoutMs = options?.timeoutMs ?? providerRetrySettings.timeoutMs ?? effectiveTimeoutMs;
|
|
597
|
+
const websocketConnectTimeoutMs = options?.websocketConnectTimeoutMs ?? settingsManager.getWebSocketConnectTimeoutMs();
|
|
598
|
+
try {
|
|
599
|
+
return modelRuntime.streamSimple(model, context, {
|
|
600
|
+
...options,
|
|
601
|
+
timeoutMs,
|
|
602
|
+
websocketConnectTimeoutMs,
|
|
603
|
+
maxRetries: options?.maxRetries ?? providerRetrySettings.maxRetries,
|
|
604
|
+
maxRetryDelayMs: options?.maxRetryDelayMs ?? providerRetrySettings.maxRetryDelayMs,
|
|
605
|
+
transformHeaders: async (requestHeaders) => {
|
|
606
|
+
const session = agentSessionRef.current;
|
|
607
|
+
// v8 ignore next -- 流式请求仅在会话初始化后发生,session 恒已赋值
|
|
608
|
+
if (!session)
|
|
609
|
+
throw new Error("Capability runtime is not initialized for provider request");
|
|
610
|
+
return session.getCapabilityRuntime().transformProviderHeaders({
|
|
611
|
+
model,
|
|
612
|
+
...(options?.sessionId === undefined ? {} : { sessionId: options.sessionId }),
|
|
613
|
+
headers: requestHeaders,
|
|
614
|
+
});
|
|
615
|
+
},
|
|
616
|
+
});
|
|
617
|
+
}
|
|
618
|
+
catch (error) {
|
|
619
|
+
// streamFn 错误路径打点(设计 §5.2):保留原始错误向上传播。
|
|
620
|
+
hostLogger?.error("sdk", "provider stream failed", { cause: error });
|
|
621
|
+
throw error;
|
|
622
|
+
}
|
|
623
|
+
},
|
|
624
|
+
onPayload: async (payload, model) => {
|
|
625
|
+
// 轨迹快照(设计 §4.2 llm.request):最终 payload 转发给装配域收集器;
|
|
626
|
+
// 转发自身失败只记日志,绝不影响请求。
|
|
627
|
+
try {
|
|
628
|
+
traceService?.adapter.captureProviderPayload(payload, model?.id);
|
|
629
|
+
}
|
|
630
|
+
catch (error) {
|
|
631
|
+
hostLogger?.warn("sdk", "trace payload capture failed", { cause: error });
|
|
632
|
+
}
|
|
633
|
+
},
|
|
634
|
+
sessionId: sessionManager.getSessionId(),
|
|
635
|
+
transformContext: async (messages) => {
|
|
636
|
+
// 后台委派完成感知(D-060 S6):有已结算未消费的摘要时,在下一次模型轮次
|
|
637
|
+
// 注入一块有界清单(一次性,取后即清)——不打断当前回合,也不写进持久历史。
|
|
638
|
+
// (B1 记忆自动注入已迁至 builtin memory 能力插件的 transformContext 链
|
|
639
|
+
// 环节,D-071。)
|
|
640
|
+
let result = messages;
|
|
641
|
+
if (backgroundDigest.pending.length > 0) {
|
|
642
|
+
const drained = backgroundDigest.pending.splice(0);
|
|
643
|
+
result = injectAfterLastUserMessage(result, {
|
|
644
|
+
role: "user",
|
|
645
|
+
content: ["Background subagent tasks settled:", ...drained.map((line) => `- ${line}`)].join("\n"),
|
|
646
|
+
timestamp: Date.now(),
|
|
647
|
+
});
|
|
648
|
+
}
|
|
649
|
+
return result;
|
|
650
|
+
},
|
|
651
|
+
steeringMode: settingsManager.getSteeringMode(),
|
|
652
|
+
followUpMode: settingsManager.getFollowUpMode(),
|
|
653
|
+
transport: settingsManager.getTransport(),
|
|
654
|
+
thinkingBudgets: settingsManager.getThinkingBudgets(),
|
|
655
|
+
maxRetryDelayMs: settingsManager.getProviderRetrySettings().maxRetryDelayMs,
|
|
656
|
+
});
|
|
657
|
+
// Restore messages if session has existing data
|
|
658
|
+
if (hasExistingSession) {
|
|
659
|
+
agent.state.messages = existingSession.messages;
|
|
660
|
+
if (!hasThinkingEntry) {
|
|
661
|
+
sessionManager.appendThinkingLevelChange(thinkingLevel);
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
else {
|
|
665
|
+
// Save initial model and thinking level for new sessions so they can be restored on resume
|
|
666
|
+
if (model) {
|
|
667
|
+
sessionManager.appendModelChange(model.provider, model.id);
|
|
668
|
+
}
|
|
669
|
+
sessionManager.appendThinkingLevelChange(thinkingLevel);
|
|
670
|
+
}
|
|
671
|
+
// Assistant preference card (统一修复轮 A 交付3, H2 接线) migrated into the
|
|
672
|
+
// memory plugin package with the S4 fourth batch: the plugin's
|
|
673
|
+
// transformContext loop hook reads the ledger-backed card and injects it on
|
|
674
|
+
// assistant-oriented sessions itself. The sdk no longer loads or injects
|
|
675
|
+
// the card.
|
|
676
|
+
const session = new AgentSession({
|
|
677
|
+
agent,
|
|
678
|
+
sessionManager,
|
|
679
|
+
settingsManager,
|
|
680
|
+
cwd,
|
|
681
|
+
scopedModels: options.scopedModels,
|
|
682
|
+
resourceLoader,
|
|
683
|
+
customTools: options.customTools,
|
|
684
|
+
modelRuntime,
|
|
685
|
+
initialActiveToolNames,
|
|
686
|
+
allowedToolNames,
|
|
687
|
+
excludedToolNames,
|
|
688
|
+
sessionStartEvent: options.sessionStartEvent,
|
|
689
|
+
capabilityMode: options.capabilityMode,
|
|
690
|
+
contextStrategyName: options.contextStrategyName,
|
|
691
|
+
retryPolicyName: options.retryPolicyName,
|
|
692
|
+
compactionPolicyName: options.compactionPolicyName,
|
|
693
|
+
overflowPolicyName: options.overflowPolicyName,
|
|
694
|
+
branchSummaryPolicyName: options.branchSummaryPolicyName,
|
|
695
|
+
runLoopStrategyName: options.runLoopStrategyName,
|
|
696
|
+
// 承载退役切片 2:装配域无默认 creator——委派承载 = 宿主 adapter 或 CLI 自动池化。
|
|
697
|
+
agentTaskAdapter: options.enableAgentTasks === false ? undefined : options.agentTaskAdapter,
|
|
698
|
+
...(options.agentTaskResults === undefined ? {} : { agentTaskResults: options.agentTaskResults }),
|
|
699
|
+
// 会话回读(D-060 S3):按 sessionId 读子会话 transcript,作用域在**宿主侧**强制——
|
|
700
|
+
// 只放行本会话自己的子会话(文件头 parentAgentSession 必须等于本会话 id),
|
|
701
|
+
// 越界与不存在同型返回 undefined。
|
|
702
|
+
...(options.enableAgentTasks === false
|
|
703
|
+
? {}
|
|
704
|
+
: {
|
|
705
|
+
agentSessionReader: async (sessionId) => {
|
|
706
|
+
const parentSession = agentSessionRef.current;
|
|
707
|
+
if (parentSession === undefined)
|
|
708
|
+
return undefined;
|
|
709
|
+
const read = readAgentSession({ agentDir, sessionId });
|
|
710
|
+
if (read === undefined || read.parentAgentSession !== parentSession.sessionId)
|
|
711
|
+
return undefined;
|
|
712
|
+
return {
|
|
713
|
+
sessionId: read.sessionId,
|
|
714
|
+
...(read.parentAgentSession === undefined ? {} : { parentAgentSession: read.parentAgentSession }),
|
|
715
|
+
...(read.agentRole === undefined ? {} : { agentRole: read.agentRole }),
|
|
716
|
+
...(read.createdAt === undefined ? {} : { createdAt: read.createdAt }),
|
|
717
|
+
bytes: read.bytes,
|
|
718
|
+
entryCount: read.entryCount,
|
|
719
|
+
truncated: read.truncated,
|
|
720
|
+
entries: read.entries,
|
|
721
|
+
};
|
|
722
|
+
},
|
|
723
|
+
// 子会话盘点(D-060 模型面):只列本会话自己的子会话摘要(store 默认
|
|
724
|
+
// 最近活动倒序、上限 200),读落盘目录,跨进程重启仍可列出。
|
|
725
|
+
agentSessionLister: async () => {
|
|
726
|
+
const parentSession = agentSessionRef.current;
|
|
727
|
+
if (parentSession === undefined)
|
|
728
|
+
return [];
|
|
729
|
+
return listAgentSessions({ agentDir, parentAgentSession: parentSession.sessionId }).map((summary) => ({
|
|
730
|
+
sessionId: summary.sessionId,
|
|
731
|
+
...(summary.agentRole === undefined ? {} : { agentRole: summary.agentRole }),
|
|
732
|
+
...(summary.createdAt === undefined ? {} : { createdAt: summary.createdAt }),
|
|
733
|
+
modifiedAt: summary.modifiedAt,
|
|
734
|
+
bytes: summary.bytes,
|
|
735
|
+
}));
|
|
736
|
+
},
|
|
737
|
+
}),
|
|
738
|
+
agentComposition: options.agentComposition,
|
|
739
|
+
interactionHost: options.interactionHost,
|
|
740
|
+
// 打点通道下沉(设计 §5.2/§7.2):会话级进程日志打点(插件日志镜像、内建
|
|
741
|
+
// 装载失败等)与 plugin.log 轨迹镜像共享 ref(插件门面注册时写入,空 = 无
|
|
742
|
+
// 镜像)。
|
|
743
|
+
hostLogger: options.hostLogger,
|
|
744
|
+
logRecordMirrorRef: observabilityLogMirror,
|
|
745
|
+
observabilityGetMetricsRef: observabilityGetMetrics,
|
|
746
|
+
// D-075 S4 第二批:宿主 agentDir 上公共 HostCapabilities(磁盘状态插件的
|
|
747
|
+
// 配置通道),trace 服务随 traceEnabled 注入 installed observability 包。
|
|
748
|
+
agentDir,
|
|
749
|
+
// D-075 S4 第三批:subagent-delegate 宿主服务上公共 HostCapabilities——
|
|
750
|
+
// communication(父侧 drain + 注入的叶子 post 接线合并)、turnContext
|
|
751
|
+
// (后台结算摘要 sink + 回合 correlationId 捕获)、roleAssociations(当前
|
|
752
|
+
// 方案关联角色;角色定义只在磁盘 <agentDir>/roles/,无编译内定义)。
|
|
753
|
+
// 原内嵌 builtin 构造选项链退役;独立插件包 entry 从 api.host 组装同一形状。
|
|
754
|
+
...(communicationWiring === undefined ? {} : { communication: communicationWiring }),
|
|
755
|
+
...(options.enableAgentTasks === false
|
|
756
|
+
? {}
|
|
757
|
+
: {
|
|
758
|
+
turnContext: {
|
|
759
|
+
backgroundDigestSink: (line) => {
|
|
760
|
+
if (backgroundDigest.pending.length >= 20)
|
|
761
|
+
backgroundDigest.pending.shift();
|
|
762
|
+
backgroundDigest.pending.push(line);
|
|
763
|
+
// 轨迹闭合(第 4 期):结算行同步投递为 agent.task.settled@1(解析
|
|
764
|
+
// 失败/非法 status 降级为 hostLogger warn;dispose 后派发助手 no-op)。
|
|
765
|
+
deliverAgentTaskSettledDigestLine(agentSessionRef.current, line, hostLogger);
|
|
766
|
+
},
|
|
767
|
+
// 回合级血缘(第 3 期第二批):委派提交时刻捕获父回合 correlationId,
|
|
768
|
+
// 随 subagent_run metadata 过线(仅 create 新建路径消费)。
|
|
769
|
+
getTurnCorrelationId: () => agentSessionRef.current?.getTurnCorrelationId(),
|
|
770
|
+
},
|
|
771
|
+
}),
|
|
772
|
+
...(options.enableAgentTasks === false ? {} : { roleAssociations: suiteWorkspace.suite.associations.roles }),
|
|
773
|
+
...(traceService === undefined ? {} : { traceService }),
|
|
774
|
+
// D-075 S4 第四批:记忆底层组件注入上公共 HostCapabilities——
|
|
775
|
+
// `api.host.memoryStorage`,安装店的 memory 插件包 entry 组装消费
|
|
776
|
+
// (store/ledger 工厂与向量组件公共契约,缺省 = 包内默认实现)。
|
|
777
|
+
...(options.memoryCapability?.storage === undefined ? {} : { memoryStorage: options.memoryCapability.storage }),
|
|
778
|
+
// Orientation persona (设计 §6.2, M2): the resolved suite's orientation
|
|
779
|
+
// text rides every system prompt rebuild on this session. Capability
|
|
780
|
+
// tool guides (memory / task management, D-071) ride the owning tools'
|
|
781
|
+
// promptGuidelines instead.
|
|
782
|
+
orientationPrompt: ORIENTATION_PROMPTS[suiteWorkspace.suite.orientation],
|
|
783
|
+
// Capability wiring (方案系统 M3): undefined when the assembly boundary
|
|
784
|
+
// disabled wiring, so the session keeps its default (unwired) identity.
|
|
785
|
+
...(capabilitySkillsFilter === undefined ? {} : { capabilitySkillsFilter }),
|
|
786
|
+
});
|
|
787
|
+
agentSessionRef.current = session;
|
|
788
|
+
// Session-suite binding (设计 §10.1): record the suite as session protocol
|
|
789
|
+
// data via the existing custom-entry extension point. New sessions only;
|
|
790
|
+
// resumed sessions keep their original binding.
|
|
791
|
+
// 新会话写入绑定;失败残留(有绑定但无对话)恢复时重写为当前装配——
|
|
792
|
+
// readSessionSuiteBinding 取 latest,之后的绑定检查语义与实际装配一致。
|
|
793
|
+
// 有对话的既有会话保持原绑定(护栏语义)。
|
|
794
|
+
if (!hasExistingSession || (sessionSuiteBinding !== undefined && !hasConversation)) {
|
|
795
|
+
session.sessionManager.appendCustomEntry(SUITE_SESSION_ENTRY_TYPE, {
|
|
796
|
+
suiteId,
|
|
797
|
+
profileIdentity: suiteWorkspace.identity,
|
|
798
|
+
});
|
|
799
|
+
}
|
|
800
|
+
const pluginRejections = [];
|
|
801
|
+
const recordRejection = async (code, manifestPath, pluginId, message) => {
|
|
802
|
+
const rejection = Object.freeze({
|
|
803
|
+
code,
|
|
804
|
+
manifestPath,
|
|
805
|
+
...(pluginId === undefined ? {} : { pluginId }),
|
|
806
|
+
message,
|
|
807
|
+
});
|
|
808
|
+
pluginRejections.push(rejection);
|
|
809
|
+
// 插件装载失败打点(设计 §5.2):结构化 rejection 之外的进程日志一行,
|
|
810
|
+
// 让轨迹中断时可以凭日志定位。
|
|
811
|
+
hostLogger?.error("sdk", `capability plugin rejected: ${message}`, {
|
|
812
|
+
sessionId: session.sessionId,
|
|
813
|
+
fields: { code: rejection.code, pluginId: rejection.pluginId, manifestPath: rejection.manifestPath },
|
|
814
|
+
});
|
|
815
|
+
try {
|
|
816
|
+
await session.getCapabilityRuntime().recordPluginRejection(rejection);
|
|
817
|
+
}
|
|
818
|
+
catch {
|
|
819
|
+
// Rejection visibility must never fail the remaining startup path.
|
|
820
|
+
}
|
|
821
|
+
};
|
|
822
|
+
const rejectionMessage = (error) => (error instanceof Error ? error.message : String(error));
|
|
823
|
+
try {
|
|
824
|
+
const discoveredManifestPaths = options.discoverCapabilityPlugins === false
|
|
825
|
+
? []
|
|
826
|
+
: discoverCapabilityPluginManifests([join(agentDir, "plugins"), join(cwd, CONFIG_DIR_NAME, "plugins")]);
|
|
827
|
+
// Suite-local plugin layer (统一修复轮 B): manifests below
|
|
828
|
+
// <suiteDir>/plugins load when the suite is active and the capability
|
|
829
|
+
// surface is wired; suite activation is their association, so they bypass
|
|
830
|
+
// associations.plugins filtering like explicit caller paths and win
|
|
831
|
+
// duplicate-id resolution over the pools. The discovery switch gates them
|
|
832
|
+
// too, so callers that disable plugin discovery (child sessions) keep
|
|
833
|
+
// today's plugin-free face.
|
|
834
|
+
const suiteLocalManifestPaths = capabilityWiring && options.discoverCapabilityPlugins !== false && suiteAssembly.localPluginsDir !== undefined
|
|
835
|
+
? discoverCapabilityPluginManifests([suiteAssembly.localPluginsDir])
|
|
836
|
+
: [];
|
|
837
|
+
// Installed-code-loading (D-075 S2): verified active installations whose
|
|
838
|
+
// plugin id is a member of the resolved plugin profile (selected, not
|
|
839
|
+
// disabled) join the pool as explicit candidates; their code loads
|
|
840
|
+
// through session.loadCapabilityPluginManifest exactly like
|
|
841
|
+
// caller-supplied paths. Installed plugins that miss membership stay
|
|
842
|
+
// unloaded — one diagnostic, no implicit third-party loading.
|
|
843
|
+
const disabledPluginIdSet = new Set(options.disabledPluginIds ?? []);
|
|
844
|
+
const profilePluginIds = suiteAssembly.pluginProfile !== undefined && suiteAssembly.pluginProfile.status === "resolved"
|
|
845
|
+
? new Set(suiteAssembly.pluginProfile.profile.pluginIds.filter((pluginId) => !disabledPluginIdSet.has(pluginId)))
|
|
846
|
+
: new Set();
|
|
847
|
+
// S4 拆包(D-075 §6 S4 第一批):suite.capabilities 声明的
|
|
848
|
+
// builtin.goal/builtin.plan/builtin.todo-set 短 id 不再有内嵌注册,经
|
|
849
|
+
// BUILTIN_CAPABILITY_PACKAGE_IDS 映射到独立插件包 id,并入 installed 插件的
|
|
850
|
+
// 成员资格集合——已安装即随装配链加载(active-bindings 来源不变),未安装时
|
|
851
|
+
// 静默缺席(不算 dangling);用户显式 disable 仍然生效。第二批:session-share
|
|
852
|
+
// 短 id 同样经映射接管;observability 包 id 随 traceEnabled 直接并入(trace
|
|
853
|
+
// 关闭时不并入 = 插件不加载,与内嵌时代"不注册即禁用"语义一致)。第四批:
|
|
854
|
+
// builtin.memory 经映射接管,但 memory.mode 解析为 off 时不并入(禁用 = 不装
|
|
855
|
+
// 配,与内嵌时代"禁用 = 不注册"同语义;上面已带一行启动声明)。
|
|
856
|
+
const capabilityPackageIds = suiteWorkspace.suite.capabilities.flatMap((shortId) => {
|
|
857
|
+
const pluginId = BUILTIN_CAPABILITY_PACKAGE_IDS[shortId];
|
|
858
|
+
return pluginId === undefined ? [] : [pluginId];
|
|
859
|
+
});
|
|
860
|
+
if (options.traceEnabled !== false)
|
|
861
|
+
capabilityPackageIds.push(OBSERVABILITY_PACKAGE_ID);
|
|
862
|
+
if (memoryModeResolution.mode === "off") {
|
|
863
|
+
const memoryIndex = capabilityPackageIds.indexOf(MEMORY_PACKAGE_ID);
|
|
864
|
+
if (memoryIndex >= 0)
|
|
865
|
+
capabilityPackageIds.splice(memoryIndex, 1);
|
|
866
|
+
}
|
|
867
|
+
for (const pluginId of capabilityPackageIds) {
|
|
868
|
+
if (!disabledPluginIdSet.has(pluginId))
|
|
869
|
+
profilePluginIds.add(pluginId);
|
|
870
|
+
}
|
|
871
|
+
const installedPluginManifestPaths = [];
|
|
872
|
+
const skippedInstalledPluginIds = [];
|
|
873
|
+
for (const plugin of options.installedCapabilityPlugins ?? []) {
|
|
874
|
+
if (profilePluginIds.has(plugin.pluginId))
|
|
875
|
+
installedPluginManifestPaths.push(plugin.manifestPath);
|
|
876
|
+
else
|
|
877
|
+
skippedInstalledPluginIds.push(plugin.pluginId);
|
|
878
|
+
}
|
|
879
|
+
if (skippedInstalledPluginIds.length > 0) {
|
|
880
|
+
capabilityDiagnostics.push(`Installed capability plugins stay unloaded because the active profile did not select them: ${skippedInstalledPluginIds.sort().join(", ")}`);
|
|
881
|
+
}
|
|
882
|
+
const manifestPaths = [
|
|
883
|
+
...suiteLocalManifestPaths,
|
|
884
|
+
...installedPluginManifestPaths,
|
|
885
|
+
...discoveredManifestPaths,
|
|
886
|
+
...(options.capabilityPluginPaths ?? []),
|
|
887
|
+
];
|
|
888
|
+
const explicitCandidatePaths = new Set([
|
|
889
|
+
...suiteLocalManifestPaths,
|
|
890
|
+
...installedPluginManifestPaths,
|
|
891
|
+
...(options.capabilityPluginPaths ?? []),
|
|
892
|
+
]);
|
|
893
|
+
const loadedManifestPaths = new Set();
|
|
894
|
+
const explicitManifestPaths = new Set();
|
|
895
|
+
const candidatePaths = [];
|
|
896
|
+
for (const manifestPath of manifestPaths) {
|
|
897
|
+
const resolvedManifestPath = resolve(cwd, manifestPath);
|
|
898
|
+
const manifestIdentity = existsSync(resolvedManifestPath)
|
|
899
|
+
? realpathSync(resolvedManifestPath)
|
|
900
|
+
: resolvedManifestPath;
|
|
901
|
+
if (loadedManifestPaths.has(manifestIdentity))
|
|
902
|
+
continue;
|
|
903
|
+
loadedManifestPaths.add(manifestIdentity);
|
|
904
|
+
if (explicitCandidatePaths.has(manifestPath))
|
|
905
|
+
explicitManifestPaths.add(manifestIdentity);
|
|
906
|
+
candidatePaths.push(manifestIdentity);
|
|
907
|
+
}
|
|
908
|
+
// Single-plugin manifest failures reject that plugin only (D-028); the
|
|
909
|
+
// session keeps loading the remaining candidates. The D-073 host-version
|
|
910
|
+
// range gate is semantic (not a parse failure): a manifest whose
|
|
911
|
+
// declared hostVersion range excludes the running VERSION is rejected
|
|
912
|
+
// with its own reason code, and a manifest without hostVersion loads
|
|
913
|
+
// but emits a one-line diagnostic.
|
|
914
|
+
const manifestEntries = [];
|
|
915
|
+
for (const manifestPath of candidatePaths) {
|
|
916
|
+
try {
|
|
917
|
+
const manifest = await readCapabilityPluginManifestForOrdering(manifestPath);
|
|
918
|
+
if (manifest.hostVersion !== undefined) {
|
|
919
|
+
if (!satisfies(VERSION, manifest.hostVersion)) {
|
|
920
|
+
await recordRejection("host_version_incompatible", manifestPath, manifest.id, `Plugin ${manifest.id} declares host version range "${manifest.hostVersion}", but the host is ${VERSION}. Upgrade the host into the declared range, or install a plugin version that supports host ${VERSION}.`);
|
|
921
|
+
continue;
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
else {
|
|
925
|
+
capabilityDiagnostics.push(`Capability plugin ${manifest.id} (${manifestPath}) does not declare "hostVersion"; it loads, but published plugins must declare a host semver range (e.g. ">=${VERSION}").`);
|
|
926
|
+
}
|
|
927
|
+
manifestEntries.push({ path: manifestPath, manifest });
|
|
928
|
+
}
|
|
929
|
+
catch (error) {
|
|
930
|
+
await recordRejection("invalid_manifest", manifestPath, undefined, rejectionMessage(error));
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
// Duplicate plugin IDs keep the first candidate in discovery order and
|
|
934
|
+
// reject the later duplicates. When suite capability wiring is on, the
|
|
935
|
+
// external plugin pool is filtered by `associations.plugins` (方案系统
|
|
936
|
+
// M3): the project-level pool (cwd/.agent-forge/plugins) is the third
|
|
937
|
+
// layer and always passes; every other manifest must match an
|
|
938
|
+
// association exactly. Explicit capabilityPluginPaths are caller intent
|
|
939
|
+
// and bypass the filter; filtered plugins and dangling associations
|
|
940
|
+
// surface as suite diagnostics, never as errors.
|
|
941
|
+
const poolFilter = capabilityWiring
|
|
942
|
+
? {
|
|
943
|
+
suite: suiteWorkspace.suite,
|
|
944
|
+
decide: (manifestId, manifestPath) => decideSuiteCapabilityPlugin(suiteWorkspace.suite, { manifestId, manifestPath }, { cwd }),
|
|
945
|
+
}
|
|
946
|
+
: undefined;
|
|
947
|
+
const seenPluginIds = new Set();
|
|
948
|
+
const uniqueEntries = [];
|
|
949
|
+
const discoveredPluginIds = [];
|
|
950
|
+
for (const entry of manifestEntries) {
|
|
951
|
+
discoveredPluginIds.push(entry.manifest.id);
|
|
952
|
+
if (poolFilter && !explicitManifestPaths.has(entry.path)) {
|
|
953
|
+
const decision = poolFilter.decide(entry.manifest.id, entry.path);
|
|
954
|
+
if (!decision.keep) {
|
|
955
|
+
if (decision.diagnostic)
|
|
956
|
+
capabilityDiagnostics.push(decision.diagnostic);
|
|
957
|
+
continue;
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
if (seenPluginIds.has(entry.manifest.id)) {
|
|
961
|
+
await recordRejection("duplicate_plugin_id", entry.path, entry.manifest.id, `Capability plugin is already loaded: ${entry.manifest.id}; the first manifest in discovery order wins`);
|
|
962
|
+
continue;
|
|
963
|
+
}
|
|
964
|
+
seenPluginIds.add(entry.manifest.id);
|
|
965
|
+
uniqueEntries.push(entry);
|
|
966
|
+
}
|
|
967
|
+
if (poolFilter) {
|
|
968
|
+
capabilityDiagnostics.push(...suiteDanglingPluginAssociations(poolFilter.suite, discoveredPluginIds));
|
|
969
|
+
}
|
|
970
|
+
// Required-capability shortfalls reject the dependent plugin and, by
|
|
971
|
+
// fixpoint, everything that (transitively) required it. Optional
|
|
972
|
+
// requirements never reject. Combination-level failures that
|
|
973
|
+
// resolvePluginCapabilityOrder still detects (duplicate capability
|
|
974
|
+
// identity, dependency cycles) fail the whole startup explicitly.
|
|
975
|
+
const capabilityIdentity = (id, version) => `${id}\u0000${version}`;
|
|
976
|
+
const survivors = new Set(uniqueEntries);
|
|
977
|
+
let removedInLastPass = true;
|
|
978
|
+
while (removedInLastPass) {
|
|
979
|
+
removedInLastPass = false;
|
|
980
|
+
const providers = new Set();
|
|
981
|
+
for (const entry of survivors) {
|
|
982
|
+
for (const declaration of entry.manifest.provides ?? []) {
|
|
983
|
+
providers.add(capabilityIdentity(declaration.id, declaration.version));
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
for (const entry of [...survivors]) {
|
|
987
|
+
const missing = (entry.manifest.requires ?? []).filter((requirement) => !requirement.optional && !providers.has(capabilityIdentity(requirement.id, requirement.version)));
|
|
988
|
+
if (missing.length === 0)
|
|
989
|
+
continue;
|
|
990
|
+
await recordRejection("missing_dependency", entry.path, entry.manifest.id, `Plugin capability is required but unavailable: ${missing
|
|
991
|
+
.map((requirement) => `${requirement.id}@${requirement.version}`)
|
|
992
|
+
.join(", ")} (${entry.manifest.id})`);
|
|
993
|
+
survivors.delete(entry);
|
|
994
|
+
removedInLastPass = true;
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
const pathByManifest = new Map([...survivors].map((entry) => [entry.manifest, entry.path]));
|
|
998
|
+
for (const manifest of resolvePluginCapabilityOrder([...survivors].map((entry) => entry.manifest))) {
|
|
999
|
+
const manifestPath = pathByManifest.get(manifest);
|
|
1000
|
+
// v8 ignore next -- 顺序解析返回的 manifest 均来自同一 survivors 集合,路径恒存在
|
|
1001
|
+
if (!manifestPath)
|
|
1002
|
+
throw new Error(`Capability plugin manifest path is unavailable: ${manifest.id}`);
|
|
1003
|
+
try {
|
|
1004
|
+
await session.loadCapabilityPluginManifest(manifestPath, {
|
|
1005
|
+
// CLI 自动池化(承载退役切片 1,D-075 S4 第三批收敛):宿主声明自身
|
|
1006
|
+
// 入口可信时改写插件 config 的 runnerEntryAuto(原 builtin 注入链的
|
|
1007
|
+
// selfInvocationPool 旗标退役);插件入口的 agent-dir 配置文件仍合并
|
|
1008
|
+
// 在其上,用户显式配置保持最终决定权。
|
|
1009
|
+
...(manifest.id === SUBAGENT_DELEGATE_PACKAGE_ID && options.subagentPoolFromSelfInvocation === true
|
|
1010
|
+
? { configOverride: { runnerEntryAuto: true } }
|
|
1011
|
+
: {}),
|
|
1012
|
+
// 记忆档位注入(D-075 S4 第四批):显式定档与 settings.json 持久档位经
|
|
1013
|
+
// 公共 configOverride 通道合并进 memory 插件包 manifest config——包 entry
|
|
1014
|
+
// 按同一解析链定档(显式 > env > settings > 旧别名 > off);agent-dir
|
|
1015
|
+
// 配置文件(capabilities/builtin.memory.json)仍合并在其上,用户显式
|
|
1016
|
+
// 配置保持最终决定权。mode=off 的包已在上面的成员资格门控中排除,
|
|
1017
|
+
// 不会走到这里。
|
|
1018
|
+
...(manifest.id === MEMORY_PACKAGE_ID
|
|
1019
|
+
? {
|
|
1020
|
+
configOverride: {
|
|
1021
|
+
...(memoryModeOption === undefined ? {} : { memoryMode: memoryModeOption }),
|
|
1022
|
+
...(settingsMemoryMode === undefined ? {} : { memorySettingsMode: settingsMemoryMode }),
|
|
1023
|
+
},
|
|
1024
|
+
}
|
|
1025
|
+
: {}),
|
|
1026
|
+
});
|
|
1027
|
+
}
|
|
1028
|
+
catch (error) {
|
|
1029
|
+
await recordRejection("plugin_load_failed", manifestPath, manifest.id, rejectionMessage(error));
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
// Plugin-owned context restoration runs only after all manifests are loaded.
|
|
1033
|
+
// The persisted session remains the source of truth; request-time transforms
|
|
1034
|
+
// must never be written back into that history implicitly.
|
|
1035
|
+
if (hasExistingSession && options.contextStrategyName) {
|
|
1036
|
+
await session.replaceContext(existingSession.messages);
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
catch (error) {
|
|
1040
|
+
await session.dispose();
|
|
1041
|
+
throw error;
|
|
1042
|
+
}
|
|
1043
|
+
// 会话创建完成打点(设计 §5.2):创建/恢复路径在装配全部完成后落一行 info。
|
|
1044
|
+
hostLogger?.info("sdk", "agent session created", {
|
|
1045
|
+
sessionId: session.sessionId,
|
|
1046
|
+
fields: {
|
|
1047
|
+
suite: suiteId,
|
|
1048
|
+
...(model === undefined ? {} : { model: `${model.provider}/${model.id}` }),
|
|
1049
|
+
trace: options.traceEnabled !== false,
|
|
1050
|
+
},
|
|
1051
|
+
});
|
|
1052
|
+
return {
|
|
1053
|
+
session,
|
|
1054
|
+
modelFallbackMessage,
|
|
1055
|
+
pluginRejections: Object.freeze(pluginRejections.slice()),
|
|
1056
|
+
suiteDiagnostics: Object.freeze([
|
|
1057
|
+
...suiteAssembly.collectDiagnostics(),
|
|
1058
|
+
...capabilityDiagnostics,
|
|
1059
|
+
...suitePreferenceDiagnostics,
|
|
1060
|
+
]),
|
|
1061
|
+
...(suiteAssembly.pluginProfile === undefined ? {} : { pluginProfile: suiteAssembly.pluginProfile }),
|
|
1062
|
+
resolvedAgentProfile,
|
|
1063
|
+
};
|
|
1064
|
+
}
|
|
1065
|
+
/**
|
|
1066
|
+
* Create a stable agent session: the same assembly as createAgentSession
|
|
1067
|
+
* (zero behavior difference), returned as the stable facade pair instead of
|
|
1068
|
+
* the raw session (B-S2b③-S2).
|
|
1069
|
+
*
|
|
1070
|
+
* @example
|
|
1071
|
+
* ```typescript
|
|
1072
|
+
* const { facade, sessionAPI } = await createStableAgentSession({
|
|
1073
|
+
* streamFn: mockStreamFn,
|
|
1074
|
+
* sessionManager: SessionManager.inMemory(),
|
|
1075
|
+
* });
|
|
1076
|
+
* await facade.prompt("hello");
|
|
1077
|
+
* console.log(sessionAPI.getSessionId());
|
|
1078
|
+
* ```
|
|
1079
|
+
*/
|
|
1080
|
+
export async function createStableAgentSession(options = {}) {
|
|
1081
|
+
const result = await createAgentSession(options);
|
|
1082
|
+
return {
|
|
1083
|
+
facade: createCodingAgentFacade(result.session),
|
|
1084
|
+
sessionAPI: result.session.getSessionAPI(),
|
|
1085
|
+
// Pure passthrough of the legacy result's create-time diagnostic (D-061):
|
|
1086
|
+
// same value, same assembly, no behavior change.
|
|
1087
|
+
modelFallbackMessage: result.modelFallbackMessage,
|
|
1088
|
+
};
|
|
1089
|
+
}
|
|
1090
|
+
/**
|
|
1091
|
+
* Create a stable agent session runtime: the same assembly as
|
|
1092
|
+
* createAgentSessionRuntime (zero behavior difference), returned as the stable
|
|
1093
|
+
* runtime facade instead of the raw runtime (D-063, 阶段 4 close-out).
|
|
1094
|
+
*
|
|
1095
|
+
* @example
|
|
1096
|
+
* ```typescript
|
|
1097
|
+
* const { runtimeFacade } = await createStableAgentSessionRuntime(createRuntime, {
|
|
1098
|
+
* cwd: process.cwd(),
|
|
1099
|
+
* agentDir: getAgentDir(),
|
|
1100
|
+
* sessionManager: SessionManager.create(process.cwd()),
|
|
1101
|
+
* });
|
|
1102
|
+
* await runtimeFacade.newSession();
|
|
1103
|
+
* // Re-read after a replacement: the accessor projects the current session.
|
|
1104
|
+
* const facade = runtimeFacade.getSessionFacade();
|
|
1105
|
+
* await facade.prompt("hello");
|
|
1106
|
+
* ```
|
|
1107
|
+
*/
|
|
1108
|
+
export async function createStableAgentSessionRuntime(createRuntime, options) {
|
|
1109
|
+
const runtime = await createAgentSessionRuntime(createRuntime, options);
|
|
1110
|
+
return { runtimeFacade: createCodingAgentRuntimeFacade(runtime) };
|
|
1111
|
+
}
|
|
1112
|
+
//# sourceMappingURL=sdk.js.map
|