@myagentroam/agent 0.11.33 → 0.11.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/catalog-file.d.ts +78 -0
- package/dist/cli/catalog-file.js +102 -0
- package/dist/cli/codex-auth-file.d.ts +1 -1
- package/dist/cli/codex-auth-file.js +9 -10
- package/dist/cli/main.js +44 -54
- package/dist/error.d.ts +15 -0
- package/dist/error.js +74 -0
- package/dist/extensions/agents.d.ts +100 -0
- package/dist/extensions/agents.js +121 -0
- package/dist/extensions/capabilities.d.ts +4 -0
- package/dist/extensions/commands.d.ts +23 -0
- package/dist/extensions/commands.js +45 -0
- package/dist/extensions/compaction.d.ts +36 -0
- package/dist/extensions/contracts.d.ts +147 -0
- package/dist/extensions/data.d.ts +81 -0
- package/dist/extensions/data.js +78 -0
- package/dist/extensions/environment.d.ts +39 -0
- package/dist/extensions/environment.js +52 -0
- package/dist/extensions/files.d.ts +68 -0
- package/dist/extensions/files.js +26 -0
- package/dist/extensions/hooks.d.ts +32 -0
- package/dist/extensions/host-ports.d.ts +24 -0
- package/dist/extensions/manager.d.ts +42 -0
- package/dist/extensions/manager.js +457 -0
- package/dist/extensions/mcp.d.ts +116 -0
- package/dist/extensions/mcp.js +434 -0
- package/dist/extensions/model-request.d.ts +65 -0
- package/dist/extensions/model-request.js +197 -0
- package/dist/extensions/model-stream.d.ts +18 -0
- package/dist/extensions/model-stream.js +108 -0
- package/dist/extensions/models.d.ts +46 -0
- package/dist/extensions/models.js +7 -0
- package/dist/extensions/network.d.ts +40 -0
- package/dist/extensions/network.js +97 -0
- package/dist/extensions/operation.d.ts +32 -0
- package/dist/extensions/processes.d.ts +64 -0
- package/dist/extensions/processes.js +284 -0
- package/dist/extensions/prompt-composition.d.ts +38 -0
- package/dist/extensions/prompt-composition.js +100 -0
- package/dist/extensions/prompt-input.d.ts +30 -0
- package/dist/extensions/prompt-input.js +48 -0
- package/dist/extensions/prompts.d.ts +31 -0
- package/dist/extensions/prompts.js +88 -0
- package/dist/extensions/resources.d.ts +26 -0
- package/dist/extensions/resources.js +221 -0
- package/dist/extensions/services.d.ts +31 -0
- package/dist/extensions/services.js +61 -0
- package/dist/extensions/session-api.d.ts +6 -0
- package/dist/extensions/session-api.js +52 -0
- package/dist/extensions/session-input.d.ts +184 -0
- package/dist/extensions/session-input.js +422 -0
- package/dist/extensions/session-messages.d.ts +41 -0
- package/dist/extensions/session-messages.js +76 -0
- package/dist/extensions/session-tools.d.ts +32 -0
- package/dist/extensions/session-tools.js +208 -0
- package/dist/extensions/session.d.ts +60 -0
- package/dist/extensions/session.js +265 -0
- package/dist/extensions/settings.d.ts +76 -0
- package/dist/extensions/settings.js +115 -0
- package/dist/extensions/store.d.ts +10 -0
- package/dist/extensions/store.js +131 -0
- package/dist/extensions/tool-runtime.d.ts +16 -0
- package/dist/extensions/tools.d.ts +80 -0
- package/dist/extensions/tools.js +270 -0
- package/dist/extensions.d.ts +22 -0
- package/dist/host/contracts.d.ts +58 -0
- package/dist/host/contracts.js +18 -0
- package/dist/host/description.d.ts +19 -0
- package/dist/host/local-agent-host.d.ts +96 -0
- package/dist/host/local-agent-host.js +429 -0
- package/dist/host/local-exec-tool.d.ts +26 -0
- package/dist/host/local-exec-tool.js +686 -0
- package/dist/host/local-file-access.d.ts +30 -0
- package/dist/host/local-file-access.js +107 -0
- package/dist/host/local-network-access.d.ts +6 -0
- package/dist/host/local-network-access.js +101 -0
- package/dist/host/local-process-executor.d.ts +5 -0
- package/dist/host/local-process-executor.js +17 -0
- package/dist/host/local-session-environment.d.ts +18 -0
- package/dist/host/local-shell.d.ts +3 -0
- package/dist/host/local-tool-registry.d.ts +34 -0
- package/dist/host/local-tool-registry.js +134 -0
- package/dist/host/network.d.ts +5 -0
- package/dist/host/network.js +42 -0
- package/dist/host/process-control.d.ts +2 -0
- package/dist/host/process-control.js +26 -0
- package/dist/host/skill-contract.d.ts +6 -0
- package/dist/host.d.ts +17 -0
- package/dist/host.js +3 -0
- package/dist/index.d.ts +26 -51
- package/dist/index.js +9 -12
- package/dist/model/anthropic-messages.d.ts +10 -0
- package/dist/model/anthropic-messages.js +692 -0
- package/dist/model/anthropic-thinking.js +33 -0
- package/dist/model/configuration.d.ts +111 -0
- package/dist/model/configuration.js +201 -0
- package/dist/model/contracts.d.ts +229 -0
- package/dist/model/http.d.ts +13 -0
- package/dist/model/http.js +119 -0
- package/dist/model/image-contract.d.ts +10 -0
- package/dist/model/image.d.ts +9 -0
- package/dist/model/inline-media-budget.d.ts +7 -0
- package/dist/model/inline-media-budget.js +36 -0
- package/dist/model/input-images.d.ts +3 -0
- package/dist/model/input-images.js +16 -0
- package/dist/model/openai-responses.d.ts +59 -0
- package/dist/model/openai-responses.js +1586 -0
- package/dist/model/recovery.js +80 -0
- package/dist/model/request-configuration.d.ts +17 -0
- package/dist/model/request-configuration.js +47 -0
- package/dist/model/responses-event-projection.d.ts +24 -0
- package/dist/model/responses-event-projection.js +194 -0
- package/dist/model/responses-request.d.ts +5 -0
- package/dist/model/responses-request.js +363 -0
- package/dist/model/responses-session-cache.d.ts +33 -0
- package/dist/model/responses-session-cache.js +64 -0
- package/dist/model/runtime-credential.d.ts +1 -0
- package/dist/model/runtime-credential.js +1 -0
- package/dist/model/sse.js +281 -0
- package/dist/model/text-blocks.js +40 -0
- package/dist/model/tool-declarations.d.ts +4 -0
- package/dist/model/tool-definition-projection.d.ts +6 -0
- package/dist/model/tool-definition-projection.js +11 -0
- package/dist/model/tool-schema.d.ts +2 -0
- package/dist/model/tool-schema.js +17 -0
- package/dist/model/transport-test.d.ts +10 -0
- package/dist/model/transport-test.js +27 -0
- package/dist/model/usage-observer.d.ts +5 -0
- package/dist/model/usage.d.ts +40 -0
- package/dist/network/credential-runtime.d.ts +8 -0
- package/dist/network/credential-runtime.js +72 -0
- package/dist/network/credentials.d.ts +20 -0
- package/dist/network/credentials.js +18 -0
- package/dist/network/http.d.ts +20 -0
- package/dist/network/http.js +421 -0
- package/dist/network/product-user-agent.d.ts +5 -0
- package/dist/network/product-user-agent.js +22 -0
- package/dist/network/transport-error.d.ts +5 -0
- package/dist/network/transport-error.js +31 -0
- package/dist/process/contracts.d.ts +26 -0
- package/dist/prompts/index.d.ts +20 -0
- package/dist/prompts/index.js +49 -0
- package/dist/prompts/prompt-sections.d.ts +6 -0
- package/dist/prompts/prompt-sections.js +6 -0
- package/dist/prompts/read-context.js +152 -0
- package/dist/runtime/compaction/contracts.d.ts +23 -0
- package/dist/runtime/compaction/coordinator.js +88 -0
- package/dist/runtime/compaction/generate.d.ts +31 -0
- package/dist/runtime/compaction/generate.js +84 -0
- package/dist/runtime/compaction/history.d.ts +16 -0
- package/dist/runtime/compaction/operation.d.ts +30 -0
- package/dist/runtime/compaction/operation.js +131 -0
- package/dist/runtime/compaction/requests.d.ts +16 -0
- package/dist/runtime/compaction/requests.js +114 -0
- package/dist/runtime/compaction/retained-context.d.ts +6 -0
- package/dist/runtime/compaction/retained-context.js +48 -0
- package/dist/runtime/compaction/smart.d.ts +14 -0
- package/dist/runtime/compaction/smart.js +59 -0
- package/dist/runtime/context/contextual-blocks.d.ts +31 -0
- package/dist/runtime/context/contextual-blocks.js +158 -0
- package/dist/runtime/context/environment.d.ts +5 -0
- package/dist/runtime/context/gc-candidates-code.d.ts +6 -0
- package/dist/runtime/context/gc-candidates-code.js +102 -0
- package/dist/runtime/context/gc-candidates-exec.d.ts +6 -0
- package/dist/runtime/context/gc-candidates-exec.js +131 -0
- package/dist/runtime/context/gc-candidates-read-patch.d.ts +7 -0
- package/dist/runtime/context/gc-candidates-read-patch.js +118 -0
- package/dist/runtime/context/gc-candidates-subagent.d.ts +6 -0
- package/dist/runtime/context/gc-candidates-subagent.js +100 -0
- package/dist/runtime/context/gc-candidates-web.d.ts +6 -0
- package/dist/runtime/context/gc-candidates-web.js +58 -0
- package/dist/runtime/context/gc-candidates.d.ts +12 -0
- package/dist/runtime/context/gc-candidates.js +192 -0
- package/dist/runtime/context/gc-contracts.d.ts +57 -0
- package/dist/runtime/context/gc-economics.d.ts +48 -0
- package/dist/runtime/context/gc-economics.js +161 -0
- package/dist/runtime/context/gc-runtime.d.ts +43 -0
- package/dist/runtime/context/gc-tokens.d.ts +26 -0
- package/dist/runtime/context/gc-tokens.js +106 -0
- package/dist/runtime/context/gc.d.ts +7 -0
- package/dist/runtime/context/gc.js +552 -0
- package/dist/runtime/context/instructions.d.ts +37 -0
- package/dist/runtime/context/instructions.js +297 -0
- package/dist/runtime/context/normalize.d.ts +5 -0
- package/dist/runtime/context/projection.d.ts +23 -0
- package/dist/runtime/context/projection.js +284 -0
- package/dist/runtime/context/request-budget.d.ts +5 -0
- package/dist/runtime/context/request-budget.js +25 -0
- package/dist/runtime/context/restore.d.ts +27 -0
- package/dist/runtime/context/restore.js +186 -0
- package/dist/runtime/context/usage.d.ts +17 -0
- package/dist/runtime/context/usage.js +124 -0
- package/dist/runtime/context/world-state.d.ts +34 -0
- package/dist/runtime/context/world-state.js +232 -0
- package/dist/runtime/contracts.d.ts +29 -0
- package/dist/runtime/event-projection.d.ts +14 -0
- package/dist/runtime/event-projection.js +87 -0
- package/dist/runtime/events.d.ts +195 -0
- package/dist/runtime/execution-handle.d.ts +12 -0
- package/dist/runtime/execution-handle.js +1 -0
- package/dist/runtime/execution.d.ts +55 -0
- package/dist/runtime/execution.js +444 -0
- package/dist/runtime/model-progress.js +85 -0
- package/dist/runtime/resource-publication.d.ts +27 -0
- package/dist/runtime/resource-publication.js +60 -0
- package/dist/runtime/tool-round-contract.d.ts +19 -0
- package/dist/runtime/tool-round-contract.js +1 -0
- package/dist/runtime/wait.js +82 -0
- package/dist/sandbox/linux/bubblewrap-sandbox-executor.d.ts +1 -1
- package/dist/sandbox/linux/bubblewrap-sandbox-executor.js +8 -8
- package/dist/sdk/agent.d.ts +7 -0
- package/dist/sdk/agent.js +321 -0
- package/dist/sdk/execution-code-mode.d.ts +18 -0
- package/dist/sdk/execution-code-mode.js +51 -0
- package/dist/sdk/execution-compact-commit.d.ts +23 -0
- package/dist/sdk/execution-compact-commit.js +41 -0
- package/dist/sdk/execution-compact-extension.d.ts +12 -0
- package/dist/sdk/execution-compact-extension.js +46 -0
- package/dist/sdk/execution-compact-generation.d.ts +17 -0
- package/dist/sdk/execution-compact-generation.js +30 -0
- package/dist/sdk/execution-compaction-flight.d.ts +31 -0
- package/dist/sdk/execution-compaction-flight.js +50 -0
- package/dist/sdk/execution-compaction.d.ts +47 -0
- package/dist/sdk/execution-compaction.js +121 -0
- package/dist/sdk/execution-context-coordinator.d.ts +56 -0
- package/dist/sdk/execution-context-coordinator.js +102 -0
- package/dist/sdk/execution-input.d.ts +58 -0
- package/dist/sdk/execution-input.js +266 -0
- package/dist/sdk/execution-model-context.d.ts +52 -0
- package/dist/sdk/execution-model-context.js +156 -0
- package/dist/sdk/execution-model-lifecycle.d.ts +39 -0
- package/dist/sdk/execution-model-lifecycle.js +73 -0
- package/dist/sdk/execution-model-request.d.ts +40 -0
- package/dist/sdk/execution-model-request.js +45 -0
- package/dist/sdk/execution-round-preparation.d.ts +11 -0
- package/dist/sdk/execution-round-preparation.js +18 -0
- package/dist/sdk/execution-round-request.d.ts +30 -0
- package/dist/sdk/execution-round-request.js +31 -0
- package/dist/sdk/execution-tool-catalog.d.ts +46 -0
- package/dist/sdk/execution-tool-catalog.js +103 -0
- package/dist/sdk/execution-tool-scope.d.ts +67 -0
- package/dist/sdk/execution-tool-scope.js +147 -0
- package/dist/sdk/extension-agent-controller.d.ts +3 -0
- package/dist/sdk/extension-agent-controller.js +69 -0
- package/dist/sdk/extension-agents.d.ts +9 -0
- package/dist/sdk/extension-agents.js +58 -0
- package/dist/sdk/extension-models.d.ts +17 -0
- package/dist/sdk/extension-models.js +142 -0
- package/dist/sdk/extension-session-launch.d.ts +18 -0
- package/dist/sdk/extension-session-launch.js +73 -0
- package/dist/sdk/extension-session.d.ts +30 -0
- package/dist/sdk/extension-session.js +107 -0
- package/dist/sdk/extension-tool-runtime.d.ts +2 -0
- package/dist/sdk/extension-tool-runtime.js +14 -0
- package/dist/sdk/extension-tools.d.ts +16 -0
- package/dist/sdk/extension-tools.js +126 -0
- package/dist/sdk/model-input-projection.d.ts +4 -0
- package/dist/sdk/model-input-projection.js +27 -0
- package/dist/sdk/model-runtime.d.ts +21 -0
- package/dist/sdk/model-runtime.js +91 -0
- package/dist/sdk/native-steer.d.ts +20 -0
- package/dist/sdk/native-steer.js +84 -0
- package/dist/sdk/request-preparation.d.ts +9 -0
- package/dist/sdk/resource-input.d.ts +33 -0
- package/dist/sdk/resource-input.js +402 -0
- package/dist/sdk/session-catalog.d.ts +2 -0
- package/dist/sdk/session-catalog.js +12 -0
- package/dist/sdk/session-composition.d.ts +54 -0
- package/dist/sdk/session-composition.js +1 -0
- package/dist/sdk/session-execution-factory.d.ts +43 -0
- package/dist/sdk/session-execution-factory.js +937 -0
- package/dist/sdk/session-execution.d.ts +163 -0
- package/dist/sdk/session-execution.js +388 -0
- package/dist/sdk/session-extension-messages.d.ts +16 -0
- package/dist/sdk/session-extension-messages.js +64 -0
- package/dist/sdk/session-extension-prompt.d.ts +35 -0
- package/dist/sdk/session-extension-prompt.js +62 -0
- package/dist/sdk/session-maintenance.d.ts +25 -0
- package/dist/sdk/session-maintenance.js +205 -0
- package/dist/sdk/session-model-adapters.d.ts +28 -0
- package/dist/sdk/session-model-adapters.js +96 -0
- package/dist/sdk/session-open.d.ts +22 -0
- package/dist/sdk/session-open.js +44 -0
- package/dist/sdk/session-registry.d.ts +17 -0
- package/dist/sdk/session-registry.js +83 -0
- package/dist/sdk/session-runtime.d.ts +72 -0
- package/dist/sdk/session-runtime.js +205 -0
- package/dist/sdk/session.d.ts +3 -0
- package/dist/sdk/session.js +313 -0
- package/dist/sdk/subagent-backend.d.ts +3 -0
- package/dist/sdk/subagent-backend.js +49 -0
- package/dist/sdk/types.d.ts +80 -0
- package/dist/sdk/types.js +1 -0
- package/dist/session/catalog.d.ts +70 -0
- package/dist/session/catalog.js +194 -0
- package/dist/session/code-observation-contract.d.ts +40 -0
- package/dist/session/code-observation-contract.js +1 -0
- package/dist/session/code-observation-projection.d.ts +54 -0
- package/dist/session/code-observation-projection.js +165 -0
- package/dist/session/code-state.d.ts +27 -0
- package/dist/session/code-state.js +89 -0
- package/dist/session/context-gc-checkpoint.d.ts +26 -0
- package/dist/session/context-gc-checkpoint.js +935 -0
- package/dist/session/context-gc-contract.d.ts +141 -0
- package/dist/session/context-gc-contract.js +1 -0
- package/dist/session/context-gc-observations.d.ts +58 -0
- package/dist/session/context-gc-observations.js +187 -0
- package/dist/session/context-gc-replacements.d.ts +63 -0
- package/dist/session/context-gc-subagent.d.ts +54 -0
- package/dist/session/deferred-input.d.ts +5 -0
- package/dist/session/deferred-input.js +74 -0
- package/dist/session/extension-checkpoint.d.ts +8 -0
- package/dist/session/extension-checkpoint.js +30 -0
- package/dist/session/history-input-limits.d.ts +4 -0
- package/dist/session/history-input-limits.js +4 -0
- package/dist/session/inline-media-contract.d.ts +16 -0
- package/dist/session/inline-media-contract.js +1 -0
- package/dist/session/inline-media.d.ts +26 -0
- package/dist/session/inline-media.js +138 -0
- package/dist/session/model-request.d.ts +14 -0
- package/dist/session/model-request.js +1 -0
- package/dist/session/record-contract.d.ts +19 -0
- package/dist/session/record-contract.js +1 -0
- package/dist/session/record-projection.d.ts +6 -0
- package/dist/session/record-projection.js +80 -0
- package/dist/session/resource-contract.d.ts +9 -0
- package/dist/session/resource-contract.js +1 -0
- package/dist/session/rollback.d.ts +13 -0
- package/dist/session/rollback.js +46 -0
- package/dist/session/store/contracts.d.ts +160 -0
- package/dist/session/store/contracts.js +1 -0
- package/dist/session/store/current-state.d.ts +17 -0
- package/dist/session/store/current-state.js +53 -0
- package/dist/session/store/execution-state.d.ts +13 -0
- package/dist/session/store/execution-state.js +103 -0
- package/dist/session/store/index.d.ts +4 -0
- package/dist/session/store/index.js +2 -0
- package/dist/session/store/jsonl/directory-index.d.ts +26 -0
- package/dist/session/store/jsonl/directory-index.js +283 -0
- package/dist/session/store/jsonl/fs-durability.d.ts +3 -0
- package/dist/session/store/jsonl/fs-durability.js +17 -0
- package/dist/session/store/jsonl/history-replacement.d.ts +48 -0
- package/dist/session/store/jsonl/history-replacement.js +147 -0
- package/dist/session/store/jsonl/history.d.ts +25 -0
- package/dist/session/store/jsonl/history.js +181 -0
- package/dist/session/store/jsonl/images.d.ts +19 -0
- package/dist/session/store/jsonl/images.js +122 -0
- package/dist/session/store/jsonl/index-transaction.d.ts +13 -0
- package/dist/session/store/jsonl/index-transaction.js +87 -0
- package/dist/session/store/jsonl/jsonl-admission.d.ts +10 -0
- package/dist/session/store/jsonl/jsonl-admission.js +205 -0
- package/dist/session/store/jsonl/jsonl-codec.d.ts +11 -0
- package/dist/session/store/jsonl/jsonl-codec.js +138 -0
- package/dist/session/store/jsonl/jsonl-migration.d.ts +12 -0
- package/dist/session/store/jsonl/jsonl-migration.js +105 -0
- package/dist/session/store/jsonl/jsonl-store.d.ts +171 -0
- package/dist/session/store/jsonl/jsonl-store.js +2482 -0
- package/dist/session/store/jsonl/open-recovery.d.ts +13 -0
- package/dist/session/store/jsonl/open-recovery.js +131 -0
- package/dist/session/store/jsonl/read-pins.d.ts +4 -0
- package/dist/session/store/jsonl/read-pins.js +131 -0
- package/dist/session/store/jsonl/record-append.d.ts +16 -0
- package/dist/session/store/jsonl/record-append.js +49 -0
- package/dist/session/store/jsonl/records.d.ts +30 -0
- package/dist/session/store/jsonl/records.js +313 -0
- package/dist/session/store/jsonl/resources.d.ts +19 -0
- package/dist/session/store/jsonl/resources.js +209 -0
- package/dist/session/store/jsonl/store-pool.d.ts +12 -0
- package/dist/session/store/jsonl/store-pool.js +55 -0
- package/dist/session/store/jsonl/transaction-recovery.d.ts +48 -0
- package/dist/session/store/jsonl/transaction-recovery.js +374 -0
- package/dist/session/store/jsonl/tree-maintenance.d.ts +12 -0
- package/dist/session/store/jsonl/tree-maintenance.js +59 -0
- package/dist/session/store/types.d.ts +69 -0
- package/dist/session/store/types.js +1 -0
- package/dist/session/summary.d.ts +18 -0
- package/dist/session/summary.js +1 -0
- package/dist/session/todo.d.ts +11 -0
- package/dist/session/todo.js +30 -0
- package/dist/session/tool-result-resources.d.ts +27 -0
- package/dist/session/tool-result-resources.js +255 -0
- package/dist/session/types.js +1 -0
- package/dist/session/user-history.d.ts +17 -0
- package/dist/session/user-history.js +1 -0
- package/dist/session-store.d.ts +2 -0
- package/dist/session-store.js +1 -0
- package/dist/shared/auto-title.d.ts +3 -3
- package/dist/shared/auto-title.js +6 -6
- package/dist/shared/model-text.d.ts +8 -8
- package/dist/shared/model-text.js +8 -7
- package/dist/storage/file-lock.js +83 -0
- package/dist/subagent/contracts.d.ts +107 -0
- package/dist/subagent/contracts.js +1 -0
- package/dist/subagent/limits.d.ts +17 -0
- package/dist/subagent/limits.js +17 -0
- package/dist/subagent/model-update.js +81 -0
- package/dist/subagent/session-controller.d.ts +148 -0
- package/dist/subagent/session-controller.js +1761 -0
- package/dist/subagent/wait-targets.d.ts +10 -0
- package/dist/subagent/wait-targets.js +26 -0
- package/dist/subagent/wait.d.ts +26 -0
- package/dist/subagent/wait.js +73 -0
- package/dist/tools/agent/agent-cancel.d.ts +7 -0
- package/dist/tools/agent/agent-cancel.js +29 -0
- package/dist/tools/agent/agent-message.d.ts +7 -0
- package/dist/tools/agent/agent-message.js +57 -0
- package/dist/tools/agent/agent-start.d.ts +12 -0
- package/dist/tools/agent/agent-start.js +106 -0
- package/dist/tools/agent/agent-wait.d.ts +7 -0
- package/dist/tools/agent/agent-wait.js +91 -0
- package/dist/tools/agent/question.d.ts +7 -0
- package/dist/tools/agent/question.js +125 -0
- package/dist/tools/agent/skill.d.ts +11 -0
- package/dist/tools/agent/skill.js +38 -0
- package/dist/tools/agent/sleep.d.ts +9 -0
- package/dist/tools/agent/sleep.js +54 -0
- package/dist/tools/agent/smart-compact.d.ts +9 -0
- package/dist/tools/agent/smart-compact.js +23 -0
- package/dist/tools/agent/todo-read.d.ts +14 -0
- package/dist/tools/agent/todo-write.d.ts +14 -0
- package/dist/tools/agent/todo-write.js +66 -0
- package/dist/tools/agent/todo.d.ts +25 -0
- package/dist/tools/agent/todo.js +32 -0
- package/dist/tools/callers.d.ts +7 -0
- package/dist/tools/callers.js +39 -0
- package/dist/tools/code-mode/cells.d.ts +29 -0
- package/dist/tools/code-mode/cells.js +338 -0
- package/dist/tools/code-mode/dispatch.d.ts +20 -0
- package/dist/tools/code-mode/dispatch.js +80 -0
- package/dist/tools/code-mode/engine.d.ts +60 -0
- package/dist/tools/code-mode/engine.js +1 -0
- package/dist/tools/code-mode/index.d.ts +31 -0
- package/dist/tools/code-mode/index.js +751 -0
- package/dist/tools/code-mode/observations.d.ts +8 -0
- package/dist/tools/code-mode/observations.js +64 -0
- package/dist/tools/code-mode/worker.d.ts +1 -0
- package/dist/tools/contracts.d.ts +193 -0
- package/dist/tools/contracts.js +1 -0
- package/dist/tools/definition-projection.d.ts +1 -0
- package/dist/tools/definition-projection.js +1 -0
- package/dist/tools/execution-limits.d.ts +69 -0
- package/dist/tools/execution-limits.js +58 -0
- package/dist/tools/execution.d.ts +30 -0
- package/dist/tools/execution.js +191 -0
- package/dist/tools/local/apply-patch-parser.js +177 -0
- package/dist/tools/local/apply-patch.d.ts +19 -0
- package/dist/tools/local/apply-patch.js +489 -0
- package/dist/tools/local/exec.d.ts +28 -0
- package/dist/tools/local/exec.js +194 -0
- package/dist/tools/local/image-processing.js +146 -0
- package/dist/tools/local/read.d.ts +43 -0
- package/dist/tools/local/read.js +470 -0
- package/dist/tools/local/view-image.d.ts +15 -0
- package/dist/tools/local/view-image.js +317 -0
- package/dist/tools/mcp/catalog.js +220 -0
- package/dist/tools/mcp/history.d.ts +4 -0
- package/dist/tools/mcp/tool-search.d.ts +45 -0
- package/dist/tools/mcp/tool-search.js +294 -0
- package/dist/tools/output-projection.d.ts +18 -0
- package/dist/tools/output-projection.js +341 -0
- package/dist/tools/permission-contract.d.ts +25 -0
- package/dist/tools/permission-contract.js +1 -0
- package/dist/tools/permissions.d.ts +61 -0
- package/dist/tools/permissions.js +237 -0
- package/dist/tools/registry.d.ts +7 -0
- package/dist/tools/result-extension-contract.d.ts +37 -0
- package/dist/tools/result-extension-contract.js +32 -0
- package/dist/tools/result-extensions.d.ts +12 -0
- package/dist/tools/result-extensions.js +104 -0
- package/dist/tools/runtime-context.d.ts +89 -0
- package/dist/tools/runtime-context.js +1 -0
- package/dist/tools/runtime-resource-handles.js +28 -0
- package/dist/tools/runtime.js +77 -0
- package/dist/tools/scheduler.d.ts +12 -0
- package/dist/tools/shared/path-resolver.js +133 -0
- package/dist/tools/wait.d.ts +1 -0
- package/dist/tools/wait.js +1 -0
- package/package.json +15 -3
- package/dist/agent-core/error.d.ts +0 -15
- package/dist/agent-core/error.js +0 -74
- package/dist/agent-core/extensions/agents.d.ts +0 -79
- package/dist/agent-core/extensions/agents.js +0 -186
- package/dist/agent-core/extensions/compaction.d.ts +0 -48
- package/dist/agent-core/extensions/contracts.d.ts +0 -265
- package/dist/agent-core/extensions/data.d.ts +0 -84
- package/dist/agent-core/extensions/data.js +0 -83
- package/dist/agent-core/extensions/environment.d.ts +0 -27
- package/dist/agent-core/extensions/environment.js +0 -52
- package/dist/agent-core/extensions/files.d.ts +0 -64
- package/dist/agent-core/extensions/files.js +0 -26
- package/dist/agent-core/extensions/hooks.d.ts +0 -32
- package/dist/agent-core/extensions/manager.d.ts +0 -39
- package/dist/agent-core/extensions/manager.js +0 -458
- package/dist/agent-core/extensions/mcp.d.ts +0 -99
- package/dist/agent-core/extensions/mcp.js +0 -433
- package/dist/agent-core/extensions/model-request.d.ts +0 -56
- package/dist/agent-core/extensions/model-request.js +0 -197
- package/dist/agent-core/extensions/model-stream.d.ts +0 -9
- package/dist/agent-core/extensions/model-stream.js +0 -108
- package/dist/agent-core/extensions/models.d.ts +0 -43
- package/dist/agent-core/extensions/network.d.ts +0 -32
- package/dist/agent-core/extensions/network.js +0 -97
- package/dist/agent-core/extensions/operation.d.ts +0 -30
- package/dist/agent-core/extensions/processes.d.ts +0 -52
- package/dist/agent-core/extensions/processes.js +0 -284
- package/dist/agent-core/extensions/prompt-composition.d.ts +0 -24
- package/dist/agent-core/extensions/prompt-composition.js +0 -106
- package/dist/agent-core/extensions/prompt-input.d.ts +0 -23
- package/dist/agent-core/extensions/prompt-input.js +0 -48
- package/dist/agent-core/extensions/resources.d.ts +0 -27
- package/dist/agent-core/extensions/resources.js +0 -221
- package/dist/agent-core/extensions/services.d.ts +0 -31
- package/dist/agent-core/extensions/services.js +0 -61
- package/dist/agent-core/extensions/session-input.d.ts +0 -163
- package/dist/agent-core/extensions/session-input.js +0 -411
- package/dist/agent-core/extensions/session-messages.d.ts +0 -41
- package/dist/agent-core/extensions/session-messages.js +0 -76
- package/dist/agent-core/extensions/session.d.ts +0 -69
- package/dist/agent-core/extensions/session.js +0 -607
- package/dist/agent-core/extensions/settings.d.ts +0 -59
- package/dist/agent-core/extensions/settings.js +0 -115
- package/dist/agent-core/extensions/store.d.ts +0 -10
- package/dist/agent-core/extensions/store.js +0 -131
- package/dist/agent-core/extensions/tools.d.ts +0 -61
- package/dist/agent-core/extensions/tools.js +0 -269
- package/dist/agent-core/host/contracts.d.ts +0 -100
- package/dist/agent-core/host/contracts.js +0 -18
- package/dist/agent-core/host/local-agent-host.d.ts +0 -96
- package/dist/agent-core/host/local-agent-host.js +0 -425
- package/dist/agent-core/host/local-file-access.d.ts +0 -30
- package/dist/agent-core/host/local-file-access.js +0 -107
- package/dist/agent-core/host/local-network-access.d.ts +0 -6
- package/dist/agent-core/host/local-network-access.js +0 -101
- package/dist/agent-core/host/local-process-executor.d.ts +0 -29
- package/dist/agent-core/host/local-process-executor.js +0 -41
- package/dist/agent-core/host/local-session-environment.d.ts +0 -18
- package/dist/agent-core/host/local-shell.d.ts +0 -3
- package/dist/agent-core/host/network.d.ts +0 -4
- package/dist/agent-core/host/network.js +0 -6
- package/dist/agent-core/model/anthropic-messages.d.ts +0 -10
- package/dist/agent-core/model/anthropic-messages.js +0 -707
- package/dist/agent-core/model/anthropic-thinking.js +0 -33
- package/dist/agent-core/model/catalog-file.d.ts +0 -80
- package/dist/agent-core/model/catalog-file.js +0 -103
- package/dist/agent-core/model/configuration.d.ts +0 -127
- package/dist/agent-core/model/configuration.js +0 -168
- package/dist/agent-core/model/contracts.d.ts +0 -229
- package/dist/agent-core/model/http.d.ts +0 -27
- package/dist/agent-core/model/http.js +0 -534
- package/dist/agent-core/model/image.d.ts +0 -17
- package/dist/agent-core/model/openai-responses.d.ts +0 -77
- package/dist/agent-core/model/openai-responses.js +0 -2123
- package/dist/agent-core/model/product-user-agent.d.ts +0 -5
- package/dist/agent-core/model/product-user-agent.js +0 -22
- package/dist/agent-core/model/recovery.js +0 -80
- package/dist/agent-core/model/request-configuration.d.ts +0 -17
- package/dist/agent-core/model/request-configuration.js +0 -47
- package/dist/agent-core/model/runtime-credential.d.ts +0 -8
- package/dist/agent-core/model/runtime-credential.js +0 -72
- package/dist/agent-core/model/sse.js +0 -281
- package/dist/agent-core/model/text-blocks.js +0 -40
- package/dist/agent-core/model/tool-declarations.d.ts +0 -4
- package/dist/agent-core/model/transport-test.d.ts +0 -3
- package/dist/agent-core/model/transport-test.js +0 -23
- package/dist/agent-core/model/usage-observer.d.ts +0 -31
- package/dist/agent-core/prompts/index.d.ts +0 -20
- package/dist/agent-core/prompts/index.js +0 -49
- package/dist/agent-core/runtime/compaction/coordinator.js +0 -88
- package/dist/agent-core/runtime/compaction/generate.d.ts +0 -28
- package/dist/agent-core/runtime/compaction/generate.js +0 -84
- package/dist/agent-core/runtime/compaction/history.d.ts +0 -16
- package/dist/agent-core/runtime/compaction/operation.d.ts +0 -29
- package/dist/agent-core/runtime/compaction/operation.js +0 -131
- package/dist/agent-core/runtime/compaction/requests.d.ts +0 -16
- package/dist/agent-core/runtime/compaction/requests.js +0 -114
- package/dist/agent-core/runtime/compaction/retained-context.d.ts +0 -6
- package/dist/agent-core/runtime/compaction/retained-context.js +0 -47
- package/dist/agent-core/runtime/compaction/smart.d.ts +0 -14
- package/dist/agent-core/runtime/compaction/smart.js +0 -59
- package/dist/agent-core/runtime/context/contextual-blocks.d.ts +0 -30
- package/dist/agent-core/runtime/context/contextual-blocks.js +0 -146
- package/dist/agent-core/runtime/context/environment.d.ts +0 -5
- package/dist/agent-core/runtime/context/gc-runtime.d.ts +0 -38
- package/dist/agent-core/runtime/context/gc-tokens.d.ts +0 -25
- package/dist/agent-core/runtime/context/gc-tokens.js +0 -103
- package/dist/agent-core/runtime/context/gc.d.ts +0 -75
- package/dist/agent-core/runtime/context/gc.js +0 -1386
- package/dist/agent-core/runtime/context/instructions.d.ts +0 -37
- package/dist/agent-core/runtime/context/instructions.js +0 -297
- package/dist/agent-core/runtime/context/normalize.d.ts +0 -5
- package/dist/agent-core/runtime/context/projection.d.ts +0 -23
- package/dist/agent-core/runtime/context/projection.js +0 -284
- package/dist/agent-core/runtime/context/request-budget.d.ts +0 -4
- package/dist/agent-core/runtime/context/request-budget.js +0 -25
- package/dist/agent-core/runtime/context/restore.d.ts +0 -25
- package/dist/agent-core/runtime/context/restore.js +0 -186
- package/dist/agent-core/runtime/context/usage.d.ts +0 -17
- package/dist/agent-core/runtime/context/usage.js +0 -124
- package/dist/agent-core/runtime/context/world-state.d.ts +0 -33
- package/dist/agent-core/runtime/context/world-state.js +0 -232
- package/dist/agent-core/runtime/contracts.d.ts +0 -41
- package/dist/agent-core/runtime/event-projection.d.ts +0 -14
- package/dist/agent-core/runtime/event-projection.js +0 -87
- package/dist/agent-core/runtime/events.d.ts +0 -197
- package/dist/agent-core/runtime/execution-handle.d.ts +0 -12
- package/dist/agent-core/runtime/execution.d.ts +0 -50
- package/dist/agent-core/runtime/execution.js +0 -445
- package/dist/agent-core/runtime/model-progress.js +0 -85
- package/dist/agent-core/runtime/resource-publication.d.ts +0 -8
- package/dist/agent-core/runtime/resource-publication.js +0 -60
- package/dist/agent-core/sdk/agent.d.ts +0 -11
- package/dist/agent-core/sdk/agent.js +0 -474
- package/dist/agent-core/sdk/extension-agents.d.ts +0 -9
- package/dist/agent-core/sdk/extension-agents.js +0 -58
- package/dist/agent-core/sdk/extension-models.d.ts +0 -13
- package/dist/agent-core/sdk/extension-models.js +0 -137
- package/dist/agent-core/sdk/extension-session.d.ts +0 -30
- package/dist/agent-core/sdk/extension-session.js +0 -105
- package/dist/agent-core/sdk/extension-tools.d.ts +0 -16
- package/dist/agent-core/sdk/extension-tools.js +0 -126
- package/dist/agent-core/sdk/model-runtime.d.ts +0 -18
- package/dist/agent-core/sdk/model-runtime.js +0 -93
- package/dist/agent-core/sdk/native-steer.d.ts +0 -20
- package/dist/agent-core/sdk/native-steer.js +0 -84
- package/dist/agent-core/sdk/request-preparation.d.ts +0 -7
- package/dist/agent-core/sdk/resource-input.d.ts +0 -32
- package/dist/agent-core/sdk/resource-input.js +0 -403
- package/dist/agent-core/sdk/session.d.ts +0 -94
- package/dist/agent-core/sdk/session.js +0 -2377
- package/dist/agent-core/sdk/subagent-backend.d.ts +0 -3
- package/dist/agent-core/sdk/subagent-backend.js +0 -49
- package/dist/agent-core/sdk/types.d.ts +0 -81
- package/dist/agent-core/session/catalog.d.ts +0 -99
- package/dist/agent-core/session/catalog.js +0 -200
- package/dist/agent-core/session/context-gc-checkpoint.d.ts +0 -165
- package/dist/agent-core/session/context-gc-checkpoint.js +0 -935
- package/dist/agent-core/session/context-gc-observations.d.ts +0 -60
- package/dist/agent-core/session/context-gc-observations.js +0 -187
- package/dist/agent-core/session/context-gc-replacements.d.ts +0 -62
- package/dist/agent-core/session/context-gc-subagent.d.ts +0 -53
- package/dist/agent-core/session/deferred-input.d.ts +0 -5
- package/dist/agent-core/session/deferred-input.js +0 -74
- package/dist/agent-core/session/inline-media.d.ts +0 -45
- package/dist/agent-core/session/inline-media.js +0 -163
- package/dist/agent-core/session/rollback.d.ts +0 -13
- package/dist/agent-core/session/rollback.js +0 -46
- package/dist/agent-core/session/store/contracts.d.ts +0 -158
- package/dist/agent-core/session/store/current-state.d.ts +0 -17
- package/dist/agent-core/session/store/current-state.js +0 -53
- package/dist/agent-core/session/store/directory-index.d.ts +0 -18
- package/dist/agent-core/session/store/directory-index.js +0 -169
- package/dist/agent-core/session/store/execution-state.d.ts +0 -18
- package/dist/agent-core/session/store/execution-state.js +0 -175
- package/dist/agent-core/session/store/history.d.ts +0 -25
- package/dist/agent-core/session/store/history.js +0 -181
- package/dist/agent-core/session/store/images.d.ts +0 -19
- package/dist/agent-core/session/store/images.js +0 -110
- package/dist/agent-core/session/store/index.d.ts +0 -4
- package/dist/agent-core/session/store/index.js +0 -2
- package/dist/agent-core/session/store/jsonl-store.d.ts +0 -171
- package/dist/agent-core/session/store/jsonl-store.js +0 -2078
- package/dist/agent-core/session/store/records.d.ts +0 -23
- package/dist/agent-core/session/store/records.js +0 -261
- package/dist/agent-core/session/store/resources.d.ts +0 -26
- package/dist/agent-core/session/store/resources.js +0 -197
- package/dist/agent-core/session/store/types.d.ts +0 -82
- package/dist/agent-core/session/tool-result-resources.d.ts +0 -26
- package/dist/agent-core/session/tool-result-resources.js +0 -256
- package/dist/agent-core/session/transaction-recovery.d.ts +0 -16
- package/dist/agent-core/session/transaction-recovery.js +0 -135
- package/dist/agent-core/storage/file-lock.js +0 -83
- package/dist/agent-core/subagent/contracts.d.ts +0 -117
- package/dist/agent-core/subagent/model-update.js +0 -81
- package/dist/agent-core/subagent/scheduler.d.ts +0 -135
- package/dist/agent-core/subagent/scheduler.js +0 -369
- package/dist/agent-core/subagent/session-controller.d.ts +0 -138
- package/dist/agent-core/subagent/session-controller.js +0 -1594
- package/dist/agent-core/subagent/wait.d.ts +0 -14
- package/dist/agent-core/subagent/wait.js +0 -32
- package/dist/agent-core/tools/agent/agent-cancel.d.ts +0 -7
- package/dist/agent-core/tools/agent/agent-cancel.js +0 -29
- package/dist/agent-core/tools/agent/agent-message.d.ts +0 -7
- package/dist/agent-core/tools/agent/agent-message.js +0 -57
- package/dist/agent-core/tools/agent/agent-start.d.ts +0 -12
- package/dist/agent-core/tools/agent/agent-start.js +0 -106
- package/dist/agent-core/tools/agent/agent-wait.d.ts +0 -7
- package/dist/agent-core/tools/agent/agent-wait.js +0 -91
- package/dist/agent-core/tools/agent/question.d.ts +0 -7
- package/dist/agent-core/tools/agent/question.js +0 -125
- package/dist/agent-core/tools/agent/skill.d.ts +0 -11
- package/dist/agent-core/tools/agent/skill.js +0 -38
- package/dist/agent-core/tools/agent/sleep.d.ts +0 -12
- package/dist/agent-core/tools/agent/sleep.js +0 -54
- package/dist/agent-core/tools/agent/smart-compact.d.ts +0 -9
- package/dist/agent-core/tools/agent/smart-compact.js +0 -23
- package/dist/agent-core/tools/agent/todo-read.d.ts +0 -14
- package/dist/agent-core/tools/agent/todo-write.d.ts +0 -14
- package/dist/agent-core/tools/agent/todo-write.js +0 -66
- package/dist/agent-core/tools/agent/todo.d.ts +0 -26
- package/dist/agent-core/tools/agent/todo.js +0 -60
- package/dist/agent-core/tools/callers.d.ts +0 -6
- package/dist/agent-core/tools/callers.js +0 -39
- package/dist/agent-core/tools/code-mode/cells.d.ts +0 -29
- package/dist/agent-core/tools/code-mode/cells.js +0 -337
- package/dist/agent-core/tools/code-mode/dispatch.d.ts +0 -20
- package/dist/agent-core/tools/code-mode/dispatch.js +0 -80
- package/dist/agent-core/tools/code-mode/engine.d.ts +0 -60
- package/dist/agent-core/tools/code-mode/index.d.ts +0 -29
- package/dist/agent-core/tools/code-mode/index.js +0 -749
- package/dist/agent-core/tools/code-mode/observations.d.ts +0 -98
- package/dist/agent-core/tools/code-mode/observations.js +0 -228
- package/dist/agent-core/tools/code-mode/state.d.ts +0 -9
- package/dist/agent-core/tools/code-mode/state.js +0 -82
- package/dist/agent-core/tools/contracts.d.ts +0 -211
- package/dist/agent-core/tools/definition-projection.d.ts +0 -7
- package/dist/agent-core/tools/definition-projection.js +0 -26
- package/dist/agent-core/tools/execution-limits.d.ts +0 -69
- package/dist/agent-core/tools/execution-limits.js +0 -69
- package/dist/agent-core/tools/execution.d.ts +0 -46
- package/dist/agent-core/tools/execution.js +0 -191
- package/dist/agent-core/tools/local/apply-patch-parser.js +0 -177
- package/dist/agent-core/tools/local/apply-patch.d.ts +0 -19
- package/dist/agent-core/tools/local/apply-patch.js +0 -489
- package/dist/agent-core/tools/local/exec.d.ts +0 -53
- package/dist/agent-core/tools/local/exec.js +0 -877
- package/dist/agent-core/tools/local/image-processing.js +0 -146
- package/dist/agent-core/tools/local/read-context.js +0 -152
- package/dist/agent-core/tools/local/read.d.ts +0 -43
- package/dist/agent-core/tools/local/read.js +0 -470
- package/dist/agent-core/tools/local/registry.d.ts +0 -34
- package/dist/agent-core/tools/local/registry.js +0 -132
- package/dist/agent-core/tools/local/view-image.d.ts +0 -15
- package/dist/agent-core/tools/local/view-image.js +0 -317
- package/dist/agent-core/tools/local/workspace-tools.d.ts +0 -12
- package/dist/agent-core/tools/local/workspace-tools.js +0 -28
- package/dist/agent-core/tools/mcp/catalog.js +0 -220
- package/dist/agent-core/tools/mcp/history.d.ts +0 -4
- package/dist/agent-core/tools/mcp/tool-search.d.ts +0 -45
- package/dist/agent-core/tools/mcp/tool-search.js +0 -294
- package/dist/agent-core/tools/output-projection.d.ts +0 -18
- package/dist/agent-core/tools/output-projection.js +0 -341
- package/dist/agent-core/tools/permissions.d.ts +0 -85
- package/dist/agent-core/tools/permissions.js +0 -237
- package/dist/agent-core/tools/registry.d.ts +0 -7
- package/dist/agent-core/tools/result-extensions.d.ts +0 -46
- package/dist/agent-core/tools/result-extensions.js +0 -134
- package/dist/agent-core/tools/runtime-context.d.ts +0 -74
- package/dist/agent-core/tools/runtime-resource-handles.js +0 -28
- package/dist/agent-core/tools/runtime.js +0 -77
- package/dist/agent-core/tools/scheduler.d.ts +0 -12
- package/dist/agent-core/tools/shared/path-resolver.js +0 -133
- package/dist/agent-core/tools/wait.js +0 -82
- /package/dist/{agent-core/extensions/models.js → extensions/capabilities.js} +0 -0
- /package/dist/{agent-core/extensions → extensions}/compaction.js +0 -0
- /package/dist/{agent-core/model → extensions}/contracts.js +0 -0
- /package/dist/{agent-core/extensions → extensions}/hooks.js +0 -0
- /package/dist/{agent-core/runtime/context/contracts.js → extensions/host-ports.js} +0 -0
- /package/dist/{agent-core/extensions → extensions}/operation.js +0 -0
- /package/dist/{agent-core/runtime/contracts.js → extensions/tool-runtime.js} +0 -0
- /package/dist/{agent-core/extensions/contracts.js → extensions.js} +0 -0
- /package/dist/{agent-core/runtime/events.js → host/description.js} +0 -0
- /package/dist/{agent-core/host → host}/local-session-environment.js +0 -0
- /package/dist/{agent-core/host → host}/local-shell.js +0 -0
- /package/dist/{agent-core/runtime/execution-handle.js → host/skill-contract.js} +0 -0
- /package/dist/{agent-core/model → model}/anthropic-thinking.d.ts +0 -0
- /package/dist/{agent-core/model → model}/attempt-diagnostics.d.ts +0 -0
- /package/dist/{agent-core/model → model}/attempt-diagnostics.js +0 -0
- /package/dist/{agent-core/session/store → model}/contracts.js +0 -0
- /package/dist/{agent-core/sdk/types.js → model/image-contract.js} +0 -0
- /package/dist/{agent-core/model → model}/image.js +0 -0
- /package/dist/{agent-core/model → model}/native-context.d.ts +0 -0
- /package/dist/{agent-core/model → model}/native-context.js +0 -0
- /package/dist/{agent-core/model → model}/recovery.d.ts +0 -0
- /package/dist/{agent-core/model → model}/sse.d.ts +0 -0
- /package/dist/{agent-core/model → model}/text-blocks.d.ts +0 -0
- /package/dist/{agent-core/model → model}/tool-declarations.js +0 -0
- /package/dist/{agent-core/model → model}/tool-input.d.ts +0 -0
- /package/dist/{agent-core/model → model}/tool-input.js +0 -0
- /package/dist/{agent-core/model → model}/usage-observer.js +0 -0
- /package/dist/{agent-core/session/store/types.js → model/usage.js} +0 -0
- /package/dist/{agent-core/subagent → process}/contracts.js +0 -0
- /package/dist/{agent-core/prompts → prompts}/compact.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/compact.js +0 -0
- /package/dist/{agent-core/prompts → prompts}/core.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/core.js +0 -0
- /package/dist/{agent-core/prompts → prompts}/markup.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/markup.js +0 -0
- /package/dist/{agent-core/prompts → prompts}/modes.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/modes.js +0 -0
- /package/dist/{agent-core/prompts → prompts}/output.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/output.js +0 -0
- /package/dist/{agent-core/prompts → prompts}/permissions.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/permissions.js +0 -0
- /package/dist/{agent-core/tools/local → prompts}/read-context.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/resources.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/resources.js +0 -0
- /package/dist/{agent-core/prompts → prompts}/subagent.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/subagent.js +0 -0
- /package/dist/{agent-core/prompts → prompts}/workflow.d.ts +0 -0
- /package/dist/{agent-core/prompts → prompts}/workflow.js +0 -0
- /package/dist/{agent-core/runtime → runtime}/async-queue.d.ts +0 -0
- /package/dist/{agent-core/runtime → runtime}/async-queue.js +0 -0
- /package/dist/{agent-core/tools → runtime/compaction}/contracts.js +0 -0
- /package/dist/{agent-core/runtime → runtime}/compaction/coordinator.d.ts +0 -0
- /package/dist/{agent-core/runtime → runtime}/compaction/history.js +0 -0
- /package/dist/{agent-core/runtime → runtime}/context/contracts.d.ts +0 -0
- /package/dist/{agent-core/session/types.js → runtime/context/contracts.js} +0 -0
- /package/dist/{agent-core/runtime → runtime}/context/environment.js +0 -0
- /package/dist/{agent-core/tools/code-mode/engine.js → runtime/context/gc-contracts.js} +0 -0
- /package/dist/{agent-core/runtime → runtime}/context/gc-runtime.js +0 -0
- /package/dist/{agent-core/runtime → runtime}/context/normalize.js +0 -0
- /package/dist/{agent-core/tools/code-mode/worker.d.ts → runtime/contracts.js} +0 -0
- /package/dist/{agent-core/tools/runtime-context.js → runtime/events.js} +0 -0
- /package/dist/{agent-core/runtime → runtime}/execution-policy.d.ts +0 -0
- /package/dist/{agent-core/runtime → runtime}/execution-policy.js +0 -0
- /package/dist/{agent-core/runtime → runtime}/model-generation-timing.d.ts +0 -0
- /package/dist/{agent-core/runtime → runtime}/model-generation-timing.js +0 -0
- /package/dist/{agent-core/runtime → runtime}/model-progress.d.ts +0 -0
- /package/dist/{agent-core/runtime → runtime}/plan-output.d.ts +0 -0
- /package/dist/{agent-core/runtime → runtime}/plan-output.js +0 -0
- /package/dist/{agent-core/tools/public-metadata.d.ts → runtime/public-tool-metadata.d.ts} +0 -0
- /package/dist/{agent-core/tools/public-metadata.js → runtime/public-tool-metadata.js} +0 -0
- /package/dist/{agent-core/runtime → runtime}/token-budget.d.ts +0 -0
- /package/dist/{agent-core/runtime → runtime}/token-budget.js +0 -0
- /package/dist/{agent-core/tools → runtime}/wait.d.ts +0 -0
- /package/dist/{agent-core/sdk → sdk}/request-preparation.js +0 -0
- /package/dist/{agent-core/session → session}/context-gc-markup.d.ts +0 -0
- /package/dist/{agent-core/session → session}/context-gc-markup.js +0 -0
- /package/dist/{agent-core/session → session}/context-gc-replacements.js +0 -0
- /package/dist/{agent-core/session → session}/context-gc-subagent.js +0 -0
- /package/dist/{agent-core/session → session}/types.d.ts +0 -0
- /package/dist/{agent-core/storage → storage}/file-lock.d.ts +0 -0
- /package/dist/{agent-core/subagent → subagent}/model-update.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/agent/todo-read.js +0 -0
- /package/dist/{agent-core/tools → tools}/code-mode/quickjs-engine.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/code-mode/quickjs-engine.js +0 -0
- /package/dist/{agent-core/tools → tools}/code-mode/text-output.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/code-mode/text-output.js +0 -0
- /package/dist/{agent-core/tools → tools}/code-mode/worker.js +0 -0
- /package/dist/{agent-core/tools → tools}/file-change-diff.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/file-change-diff.js +0 -0
- /package/dist/{agent-core/tools → tools}/input-diagnostics/source-preview.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/input-diagnostics/source-preview.js +0 -0
- /package/dist/{agent-core/tools → tools}/input.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/input.js +0 -0
- /package/dist/{agent-core/tools → tools}/local/apply-patch-parser.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/local/image-processing.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/mcp/catalog.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/mcp/history.js +0 -0
- /package/dist/{agent-core/tools → tools}/registry.js +0 -0
- /package/dist/{agent-core/tools → tools}/runtime-resource-handles.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/runtime.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/scheduler.js +0 -0
- /package/dist/{agent-core/tools → tools}/shared/patch-result.d.ts +0 -0
- /package/dist/{agent-core/tools → tools}/shared/patch-result.js +0 -0
- /package/dist/{agent-core/tools → tools}/shared/path-resolver.d.ts +0 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { AgentReasoningEffort } from '../model/configuration.js';
|
|
2
|
+
import type { SubagentTaskSnapshot, SubagentManyOutput, SubagentHandledResult } from '../subagent/contracts.js';
|
|
3
|
+
import type { ExtensionOperationContext } from './operation.js';
|
|
4
|
+
import type { ExtensionResourceScope } from './resources.js';
|
|
5
|
+
import type { ExtensionHooks } from './hooks.js';
|
|
6
|
+
import type { ExtensionCapabilitySnapshot } from './capabilities.js';
|
|
7
|
+
export type ExtensionAgentSnapshot = Readonly<SubagentTaskSnapshot>;
|
|
8
|
+
export type ExtensionAgentManySnapshot = Readonly<SubagentManyOutput>;
|
|
9
|
+
export type ExtensionAgentWaitResult = ExtensionAgentSnapshot | ExtensionAgentManySnapshot;
|
|
10
|
+
export type ExtensionAgentHandledResult = SubagentHandledResult;
|
|
11
|
+
export type ExtensionAgentSpawnResult = ExtensionAgentSnapshot | ExtensionAgentHandledResult;
|
|
12
|
+
export declare function isHandledAgentResult(value: ExtensionAgentSpawnResult | ExtensionAgentManySnapshot): value is ExtensionAgentHandledResult;
|
|
13
|
+
export interface ExtensionAgentSpawnInput {
|
|
14
|
+
readonly turnSignal?: AbortSignal;
|
|
15
|
+
readonly waitFor?: 'start' | 'completion';
|
|
16
|
+
readonly background?: boolean;
|
|
17
|
+
readonly prompt: string;
|
|
18
|
+
readonly description?: string;
|
|
19
|
+
readonly modelId?: string;
|
|
20
|
+
readonly reasoningEffort?: AgentReasoningEffort;
|
|
21
|
+
readonly role?: 'general-purpose' | 'explore';
|
|
22
|
+
readonly signal?: AbortSignal;
|
|
23
|
+
}
|
|
24
|
+
export interface ExtensionAgentTarget {
|
|
25
|
+
readonly agentId: string;
|
|
26
|
+
readonly signal?: AbortSignal;
|
|
27
|
+
}
|
|
28
|
+
export interface ExtensionAgentWaitInput {
|
|
29
|
+
readonly untilSettled?: true;
|
|
30
|
+
readonly agentId?: string;
|
|
31
|
+
readonly agentIds?: readonly string[];
|
|
32
|
+
readonly mode?: 'any' | 'all';
|
|
33
|
+
readonly signal?: AbortSignal;
|
|
34
|
+
readonly waitMs?: number;
|
|
35
|
+
readonly waitFor?: 'completion' | 'message';
|
|
36
|
+
}
|
|
37
|
+
export interface ExtensionAgentMessageInput extends ExtensionAgentTarget {
|
|
38
|
+
readonly message: string;
|
|
39
|
+
readonly delivery?: 'append' | 'replace';
|
|
40
|
+
}
|
|
41
|
+
export interface ExtensionAgentsBackend {
|
|
42
|
+
own(ownerInstanceId: string): () => Promise<void>;
|
|
43
|
+
spawn(input: ExtensionAgentSpawnInput, call: ExtensionOperationContext): Promise<ExtensionAgentSnapshot>;
|
|
44
|
+
list(call: ExtensionOperationContext): Promise<readonly ExtensionAgentSnapshot[]>;
|
|
45
|
+
inspect(input: ExtensionAgentTarget, call: ExtensionOperationContext): Promise<ExtensionAgentSnapshot>;
|
|
46
|
+
wait(input: ExtensionAgentWaitInput, call: ExtensionOperationContext): Promise<ExtensionAgentWaitResult>;
|
|
47
|
+
message(input: ExtensionAgentMessageInput, call: ExtensionOperationContext): Promise<ExtensionAgentSnapshot>;
|
|
48
|
+
cancel(input: ExtensionAgentTarget, call: ExtensionOperationContext): Promise<ExtensionAgentSnapshot>;
|
|
49
|
+
}
|
|
50
|
+
export interface ExtensionAgentsApi {
|
|
51
|
+
spawn(input: ExtensionAgentSpawnInput): Promise<ExtensionAgentSpawnResult>;
|
|
52
|
+
list(input?: {
|
|
53
|
+
readonly signal?: AbortSignal;
|
|
54
|
+
}): Promise<readonly ExtensionAgentSnapshot[]>;
|
|
55
|
+
inspect(input: ExtensionAgentTarget): Promise<ExtensionAgentSnapshot>;
|
|
56
|
+
wait(input: ExtensionAgentWaitInput & {
|
|
57
|
+
readonly agentIds: readonly string[];
|
|
58
|
+
}): Promise<ExtensionAgentManySnapshot>;
|
|
59
|
+
wait(input: ExtensionAgentWaitInput & {
|
|
60
|
+
readonly agentIds?: undefined;
|
|
61
|
+
}): Promise<ExtensionAgentSnapshot>;
|
|
62
|
+
wait(input: ExtensionAgentWaitInput): Promise<ExtensionAgentWaitResult>;
|
|
63
|
+
message(input: ExtensionAgentMessageInput): Promise<ExtensionAgentSnapshot>;
|
|
64
|
+
cancel(input: ExtensionAgentTarget): Promise<ExtensionAgentSnapshot>;
|
|
65
|
+
}
|
|
66
|
+
export interface ExtensionAgentCompletion {
|
|
67
|
+
readonly operation: 'spawn' | 'wait' | 'message' | 'cancel';
|
|
68
|
+
readonly agentId: string;
|
|
69
|
+
readonly status: SubagentTaskSnapshot['status'];
|
|
70
|
+
readonly deliveryStatus?: SubagentTaskSnapshot['deliveryStatus'];
|
|
71
|
+
}
|
|
72
|
+
type AgentOperation = 'agent.spawn' | 'agent.wait' | 'agent.message' | 'agent.cancel';
|
|
73
|
+
export type ExtensionAgentAction = <Key extends AgentOperation>(key: Key, input: DomainAgentOperations[Key]['input'], leaf: (input: DomainAgentOperations[Key]['input'], call: ExtensionOperationContext) => Promise<DomainAgentOperations[Key]['output']>) => Promise<DomainAgentOperations[Key]['output']>;
|
|
74
|
+
/** All callers share one interception and authoritative leaf-completion boundary. */
|
|
75
|
+
export declare function invokeCoreAgentOperation<Key extends AgentOperation>(hooks: Pick<ExtensionHooks<DomainAgentOperations, DomainAgentFacts>, 'invoke' | 'emit'>, key: Key, input: DomainAgentOperations[Key]['input'], call: ExtensionOperationContext, leaf: (input: DomainAgentOperations[Key]['input'], call: ExtensionOperationContext) => Promise<DomainAgentOperations[Key]['output']>): Promise<DomainAgentOperations[Key]['output']>;
|
|
76
|
+
export declare function resolveAgentSpawn(input: ExtensionAgentSpawnInput): ExtensionAgentSpawnInput;
|
|
77
|
+
export declare function agentCapabilities(capabilities: ExtensionCapabilitySnapshot, available: boolean): ExtensionCapabilitySnapshot;
|
|
78
|
+
export declare function bindCoreAgents(backend: ExtensionAgentsBackend, scope: ExtensionResourceScope, run: <Value>(operation: (call: ExtensionOperationContext) => Promise<Value>, signal?: AbortSignal) => Promise<Value>, hooks: Pick<ExtensionHooks<DomainAgentOperations, DomainAgentFacts>, 'invoke' | 'emit'>): ExtensionAgentsApi;
|
|
79
|
+
export interface DomainAgentOperations {
|
|
80
|
+
'agent.spawn': {
|
|
81
|
+
input: ExtensionAgentSpawnInput;
|
|
82
|
+
output: ExtensionAgentSpawnResult;
|
|
83
|
+
};
|
|
84
|
+
'agent.wait': {
|
|
85
|
+
input: ExtensionAgentWaitInput;
|
|
86
|
+
output: ExtensionAgentWaitResult;
|
|
87
|
+
};
|
|
88
|
+
'agent.message': {
|
|
89
|
+
input: ExtensionAgentMessageInput;
|
|
90
|
+
output: ExtensionAgentSnapshot;
|
|
91
|
+
};
|
|
92
|
+
'agent.cancel': {
|
|
93
|
+
input: ExtensionAgentTarget;
|
|
94
|
+
output: ExtensionAgentSnapshot;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export interface DomainAgentFacts {
|
|
98
|
+
'agent.completed': ExtensionAgentCompletion;
|
|
99
|
+
}
|
|
100
|
+
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { AgentError } from '../error.js';
|
|
2
|
+
import { parseAgentWaitTargets } from '../subagent/wait-targets.js';
|
|
3
|
+
export function isHandledAgentResult(value) {
|
|
4
|
+
return 'outcome' in value && value.outcome === 'handled' && !Object.hasOwn(value, 'agentId');
|
|
5
|
+
}
|
|
6
|
+
/** All callers share one interception and authoritative leaf-completion boundary. */
|
|
7
|
+
export function invokeCoreAgentOperation(hooks, key, input, call, leaf) {
|
|
8
|
+
return hooks.invoke(key, input, call, async (input, effective) => {
|
|
9
|
+
const result = structuredClone(await leaf(input, effective));
|
|
10
|
+
if (isHandledAgentResult(result))
|
|
11
|
+
return result;
|
|
12
|
+
const agents = Array.isArray(result.agents)
|
|
13
|
+
? result.agents
|
|
14
|
+
: [result];
|
|
15
|
+
for (const agent of agents)
|
|
16
|
+
await hooks.emit('agent.completed', {
|
|
17
|
+
operation: key.slice('agent.'.length),
|
|
18
|
+
agentId: agent.agentId,
|
|
19
|
+
status: agent.status,
|
|
20
|
+
...(agent.deliveryStatus === undefined ? {} : { deliveryStatus: agent.deliveryStatus })
|
|
21
|
+
}, effective);
|
|
22
|
+
return result;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function resolveAgentSpawn(input) {
|
|
26
|
+
if (!input ||
|
|
27
|
+
typeof input !== 'object' ||
|
|
28
|
+
Array.isArray(input) ||
|
|
29
|
+
typeof input.prompt !== 'string' ||
|
|
30
|
+
!input.prompt.trim() ||
|
|
31
|
+
(input.turnSignal !== undefined && !(input.turnSignal instanceof AbortSignal)) ||
|
|
32
|
+
(input.description !== undefined &&
|
|
33
|
+
(typeof input.description !== 'string' || !input.description.trim())) ||
|
|
34
|
+
(input.modelId !== undefined && (typeof input.modelId !== 'string' || !input.modelId)) ||
|
|
35
|
+
(input.role !== undefined && input.role !== 'general-purpose' && input.role !== 'explore') ||
|
|
36
|
+
(input.background !== undefined && typeof input.background !== 'boolean') ||
|
|
37
|
+
(input.waitFor !== undefined && input.waitFor !== 'start' && input.waitFor !== 'completion') ||
|
|
38
|
+
(input.reasoningEffort !== undefined &&
|
|
39
|
+
!['low', 'medium', 'high', 'xhigh', 'max', 'ultra'].includes(input.reasoningEffort)))
|
|
40
|
+
throw invalid('Agent spawn input is invalid.');
|
|
41
|
+
return {
|
|
42
|
+
prompt: input.prompt,
|
|
43
|
+
...(input.turnSignal === undefined ? {} : { turnSignal: input.turnSignal }),
|
|
44
|
+
...(input.waitFor === undefined ? {} : { waitFor: input.waitFor }),
|
|
45
|
+
...(input.background === undefined ? {} : { background: input.background }),
|
|
46
|
+
description: input.description ?? 'Extension agent',
|
|
47
|
+
...(input.signal === undefined ? {} : { signal: input.signal }),
|
|
48
|
+
...(input.modelId === undefined ? {} : { modelId: input.modelId }),
|
|
49
|
+
...(input.reasoningEffort === undefined ? {} : { reasoningEffort: input.reasoningEffort }),
|
|
50
|
+
role: input.role ?? 'general-purpose'
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function agentCapabilities(capabilities, available) {
|
|
54
|
+
const values = Object.freeze(capabilities.list().filter((id) => id !== 'agents' || available));
|
|
55
|
+
return Object.freeze({ has: (id) => values.includes(id), list: () => values });
|
|
56
|
+
}
|
|
57
|
+
export function bindCoreAgents(backend, scope, run, hooks) {
|
|
58
|
+
scope.effect(() => backend.own(scope.instanceId));
|
|
59
|
+
const invoke = (key, input) => run((call) => invokeCoreAgentOperation(hooks, key, input, call, async (effectiveInput, effective) => {
|
|
60
|
+
let result;
|
|
61
|
+
switch (key) {
|
|
62
|
+
case 'agent.spawn':
|
|
63
|
+
result = await backend.spawn({
|
|
64
|
+
...resolveAgentSpawn(effectiveInput),
|
|
65
|
+
...(effectiveInput.turnSignal === undefined
|
|
66
|
+
? {}
|
|
67
|
+
: {
|
|
68
|
+
turnSignal: AbortSignal.any([
|
|
69
|
+
scope.signal,
|
|
70
|
+
effectiveInput.turnSignal
|
|
71
|
+
])
|
|
72
|
+
})
|
|
73
|
+
}, effective);
|
|
74
|
+
break;
|
|
75
|
+
case 'agent.wait':
|
|
76
|
+
result = await backend.wait(effectiveInput, effective);
|
|
77
|
+
break;
|
|
78
|
+
case 'agent.message':
|
|
79
|
+
result = await backend.message(effectiveInput, effective);
|
|
80
|
+
break;
|
|
81
|
+
case 'agent.cancel':
|
|
82
|
+
result = await backend.cancel(effectiveInput, effective);
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}), input.signal);
|
|
87
|
+
const target = (input) => {
|
|
88
|
+
if (!input ||
|
|
89
|
+
typeof input !== 'object' ||
|
|
90
|
+
Array.isArray(input) ||
|
|
91
|
+
typeof input.agentId !== 'string' ||
|
|
92
|
+
!input.agentId)
|
|
93
|
+
throw invalid('Agent target is invalid.');
|
|
94
|
+
return { ...input };
|
|
95
|
+
};
|
|
96
|
+
return {
|
|
97
|
+
spawn: (input) => invoke('agent.spawn', { ...input }),
|
|
98
|
+
list: async (input = {}) => {
|
|
99
|
+
if (!input || typeof input !== 'object' || Array.isArray(input))
|
|
100
|
+
throw invalid('Agent list input is invalid.');
|
|
101
|
+
return run(async (call) => structuredClone(await backend.list(call)), input.signal);
|
|
102
|
+
},
|
|
103
|
+
inspect: async (input) => {
|
|
104
|
+
const copied = target(input);
|
|
105
|
+
return run(async (call) => structuredClone(await backend.inspect(copied, call)), copied.signal);
|
|
106
|
+
},
|
|
107
|
+
wait: (async (input) => {
|
|
108
|
+
if (!input || typeof input !== 'object' || Array.isArray(input))
|
|
109
|
+
throw invalid('Agent wait input is invalid.');
|
|
110
|
+
const selection = parseAgentWaitTargets(input);
|
|
111
|
+
return invoke('agent.wait', input.agentId === undefined
|
|
112
|
+
? { ...input, ...selection }
|
|
113
|
+
: target(input));
|
|
114
|
+
}),
|
|
115
|
+
message: async (input) => invoke('agent.message', target(input)),
|
|
116
|
+
cancel: async (input) => invoke('agent.cancel', target(input))
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
function invalid(message) {
|
|
120
|
+
return new AgentError('MAR_AGENT_EXTENSION_AGENT_INPUT_INVALID', message);
|
|
121
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ExtensionCallbackRunner, ExtensionOperationContext, ExtensionOperationRunner } from './operation.js';
|
|
2
|
+
import type { ExtensionResourceRegistration, ExtensionResourceScope } from './resources.js';
|
|
3
|
+
export interface ExtensionCommandSpec {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly description?: string;
|
|
6
|
+
readonly override?: 'replace';
|
|
7
|
+
handler(args: unknown, call: ExtensionOperationContext): unknown | Promise<unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface ExtensionCommandsApi {
|
|
10
|
+
register(spec: ExtensionCommandSpec): ExtensionResourceRegistration;
|
|
11
|
+
list(): readonly Pick<ExtensionCommandSpec, 'name' | 'description'>[];
|
|
12
|
+
run(input: {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly args?: unknown;
|
|
15
|
+
}): Promise<unknown>;
|
|
16
|
+
}
|
|
17
|
+
/** Session command definitions follow the contributing Extension scope. */
|
|
18
|
+
export declare class ExtensionCommands {
|
|
19
|
+
#private;
|
|
20
|
+
private readonly callback;
|
|
21
|
+
constructor(callback: ExtensionCallbackRunner);
|
|
22
|
+
bind(scope: ExtensionResourceScope, run: ExtensionOperationRunner): ExtensionCommandsApi;
|
|
23
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { AgentError } from '../error.js';
|
|
2
|
+
/** Session command definitions follow the contributing Extension scope. */
|
|
3
|
+
export class ExtensionCommands {
|
|
4
|
+
callback;
|
|
5
|
+
#entries = [];
|
|
6
|
+
constructor(callback) {
|
|
7
|
+
this.callback = callback;
|
|
8
|
+
}
|
|
9
|
+
bind(scope, run) {
|
|
10
|
+
return {
|
|
11
|
+
register: (spec) => {
|
|
12
|
+
if (typeof spec.name !== 'string' ||
|
|
13
|
+
!spec.name.trim() ||
|
|
14
|
+
typeof spec.handler !== 'function' ||
|
|
15
|
+
(spec.override !== undefined && spec.override !== 'replace'))
|
|
16
|
+
throw new AgentError('MAR_AGENT_EXTENSION_COMMAND_INVALID', 'Command definition is invalid.');
|
|
17
|
+
if (spec.override !== 'replace' &&
|
|
18
|
+
this.#entries.some((entry) => entry.value.name === spec.name))
|
|
19
|
+
throw new AgentError('MAR_AGENT_EXTENSION_COMMAND_CONFLICT', 'Command name conflicts.');
|
|
20
|
+
const entry = { value: Object.freeze({ ...spec }), scope };
|
|
21
|
+
const registration = scope.effect(() => () => {
|
|
22
|
+
const index = this.#entries.indexOf(entry);
|
|
23
|
+
if (index !== -1)
|
|
24
|
+
this.#entries.splice(index, 1);
|
|
25
|
+
});
|
|
26
|
+
this.#entries.push(entry);
|
|
27
|
+
return registration;
|
|
28
|
+
},
|
|
29
|
+
list: () => [
|
|
30
|
+
...new Map(this.#entries
|
|
31
|
+
.filter((entry) => entry.scope.state === 'ACTIVE')
|
|
32
|
+
.map((entry) => [entry.value.name, entry])).values()
|
|
33
|
+
].map(({ value }) => ({
|
|
34
|
+
name: value.name,
|
|
35
|
+
...(value.description ? { description: value.description } : {})
|
|
36
|
+
})),
|
|
37
|
+
run: (input) => run(async (context) => {
|
|
38
|
+
const entry = this.#entries.findLast((entry) => entry.scope.state === 'ACTIVE' && entry.value.name === input.name);
|
|
39
|
+
if (!entry)
|
|
40
|
+
throw new AgentError('MAR_AGENT_EXTENSION_COMMAND_UNAVAILABLE', 'Command is unavailable.');
|
|
41
|
+
return entry.scope.run((signal) => this.callback(Object.freeze({ ...context, signal, ownerInstanceId: entry.scope.instanceId }), (call) => entry.value.handler(input.args, call)), context.signal);
|
|
42
|
+
})
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ExtensionCompactDiagnostic, ExtensionCompactResult } from '../runtime/compaction/contracts.js';
|
|
2
|
+
export type { ExtensionCompactDiagnostic, ExtensionCompactResult } from '../runtime/compaction/contracts.js';
|
|
3
|
+
import type { SessionModelMessage as ModelMessage } from '../session/model-request.js';
|
|
4
|
+
export interface ExtensionCompactMessage {
|
|
5
|
+
readonly role: 'user' | 'assistant' | 'tool' | 'tool_call';
|
|
6
|
+
readonly content: string;
|
|
7
|
+
readonly callId?: string;
|
|
8
|
+
readonly name?: string;
|
|
9
|
+
readonly arguments?: unknown;
|
|
10
|
+
}
|
|
11
|
+
export interface ExtensionCompactContext {
|
|
12
|
+
readonly reportModelUsage?: ((usage: import('../model/usage-observer.js').ModelRequestUsage) => Promise<void> | void) | undefined;
|
|
13
|
+
readonly operationId: string;
|
|
14
|
+
readonly reason: 'manual' | 'automatic';
|
|
15
|
+
readonly messages: readonly ExtensionCompactMessage[];
|
|
16
|
+
readonly focus?: string;
|
|
17
|
+
readonly summaryTokenBudget: number;
|
|
18
|
+
/** Return the Core's default structured handoff contract, independent of model configuration. */
|
|
19
|
+
readonly getPrompt: () => string;
|
|
20
|
+
/** Private, bounded telemetry only; reporting never changes the generation result. */
|
|
21
|
+
readonly reportDiagnostic?: (diagnostic: ExtensionCompactDiagnostic) => Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
/** Copy only neutral evidence; a hook never receives provider payloads or history ownership. */
|
|
24
|
+
export declare function compactExtensionMessages(messages: readonly ModelMessage[]): readonly ExtensionCompactMessage[];
|
|
25
|
+
/** Whitelist scalar facts; never copy arbitrary plugin payloads into the session log. */
|
|
26
|
+
export declare function compactExtensionDiagnostic(value: unknown): ExtensionCompactDiagnostic | undefined;
|
|
27
|
+
/** Invalid plugin results decline generation rather than altering the checkpoint contract. */
|
|
28
|
+
export declare function compactExtensionResult(value: unknown, budget: number): ExtensionCompactResult | undefined;
|
|
29
|
+
export interface DomainCompactOperations {
|
|
30
|
+
'compact.generate': {
|
|
31
|
+
input: ExtensionCompactContext;
|
|
32
|
+
output: ExtensionCompactResult | undefined;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface DomainCompactFacts {
|
|
36
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type { ExtensionCommandSpec } from './commands.js';
|
|
2
|
+
import type { ExtensionPromptSection } from './prompt-composition.js';
|
|
3
|
+
import type { ExtensionCapabilitySnapshot } from './capabilities.js';
|
|
4
|
+
import type { ExtensionPromptComposition } from './prompt-composition.js';
|
|
5
|
+
import type { ExtensionModelsApi } from './models.js';
|
|
6
|
+
import type { ExtensionAgentsApi } from './agents.js';
|
|
7
|
+
import type { ExtensionDataApi } from './data.js';
|
|
8
|
+
import type { ExtensionMcpApi } from './mcp.js';
|
|
9
|
+
import type { ExtensionFilesApi } from './files.js';
|
|
10
|
+
import type { ExtensionEnvironmentApi } from './environment.js';
|
|
11
|
+
import type { ExtensionSettingsApi } from './settings.js';
|
|
12
|
+
import type { ExtensionProcessesApi } from './processes.js';
|
|
13
|
+
import type { ExtensionNetworkApi } from './network.js';
|
|
14
|
+
import type { ExtensionSessionApi } from './session-input.js';
|
|
15
|
+
import type { ToolExecutionResult } from '../tools/contracts.js';
|
|
16
|
+
import type { ExtensionHookOptions, ExtensionInterceptor } from './hooks.js';
|
|
17
|
+
import type { ExtensionOperationContext } from './operation.js';
|
|
18
|
+
import type { ExtensionDisposer, ExtensionResourceRegistration, ExtensionResourceScope } from './resources.js';
|
|
19
|
+
import type { ExtensionServiceRegistry } from './services.js';
|
|
20
|
+
import type { ExtensionToolRef, ExtensionToolInvocation, ExtensionToolCheck, ExtensionToolSpec } from './tools.js';
|
|
21
|
+
import type { DomainAgentOperations, DomainAgentFacts } from './agents.js';
|
|
22
|
+
import type { DomainCompactOperations, DomainCompactFacts } from './compaction.js';
|
|
23
|
+
import type { DomainEnvironmentOperations, DomainEnvironmentFacts } from './environment.js';
|
|
24
|
+
import type { DomainFileOperations, DomainFileFacts } from './files.js';
|
|
25
|
+
import type { DomainMcpOperations, DomainMcpFacts } from './mcp.js';
|
|
26
|
+
import type { DomainModelRequestOperations, DomainModelRequestFacts } from './model-request.js';
|
|
27
|
+
import type { DomainModelStreamOperations, DomainModelStreamFacts } from './model-stream.js';
|
|
28
|
+
import type { DomainNetworkOperations, DomainNetworkFacts } from './network.js';
|
|
29
|
+
import type { DomainProcessOperations, DomainProcessFacts } from './processes.js';
|
|
30
|
+
import type { DomainPromptCompositionOperations, DomainPromptCompositionFacts } from './prompt-composition.js';
|
|
31
|
+
import type { DomainPromptInputOperations, DomainPromptInputFacts } from './prompt-input.js';
|
|
32
|
+
import type { DomainSessionOperations, DomainSessionFacts } from './session-input.js';
|
|
33
|
+
import type { DomainSettingsOperations, DomainSettingsFacts } from './settings.js';
|
|
34
|
+
import type { DomainToolOperations, DomainToolFacts } from './tools.js';
|
|
35
|
+
export interface ExtensionDomainOperations extends DomainAgentOperations, DomainCompactOperations, DomainEnvironmentOperations, DomainFileOperations, DomainMcpOperations, DomainModelRequestOperations, DomainModelStreamOperations, DomainNetworkOperations, DomainProcessOperations, DomainPromptCompositionOperations, DomainPromptInputOperations, DomainSessionOperations, DomainSettingsOperations, DomainToolOperations {
|
|
36
|
+
}
|
|
37
|
+
export interface ExtensionDomainFacts extends DomainAgentFacts, DomainCompactFacts, DomainEnvironmentFacts, DomainFileFacts, DomainMcpFacts, DomainModelRequestFacts, DomainModelStreamFacts, DomainNetworkFacts, DomainProcessFacts, DomainPromptCompositionFacts, DomainPromptInputFacts, DomainSessionFacts, DomainSettingsFacts, DomainToolFacts {
|
|
38
|
+
}
|
|
39
|
+
export interface ExtensionHookRegistrar {
|
|
40
|
+
intercept<Key extends keyof ExtensionDomainOperations>(key: Key, handler: ExtensionInterceptor<ExtensionDomainOperations[Key]['input'], ExtensionDomainOperations[Key]['output']>, options?: ExtensionHookOptions): ExtensionResourceRegistration;
|
|
41
|
+
observe<Key extends keyof ExtensionDomainFacts>(key: Key, handler: (fact: ExtensionDomainFacts[Key], call: ExtensionOperationContext) => void | Promise<void>, options?: ExtensionHookOptions): ExtensionResourceRegistration;
|
|
42
|
+
}
|
|
43
|
+
export type { ExtensionCapabilitySnapshot } from './capabilities.js';
|
|
44
|
+
export type { ExtensionCommandSpec } from './commands.js';
|
|
45
|
+
export type { ExtensionPromptSection } from './prompt-composition.js';
|
|
46
|
+
export interface AgentExtensionContext {
|
|
47
|
+
readonly data?: Pick<ExtensionDataApi, 'store'>;
|
|
48
|
+
readonly resources: ExtensionResourceScope;
|
|
49
|
+
readonly services: ExtensionServiceRegistry;
|
|
50
|
+
readonly capabilities: ExtensionCapabilitySnapshot;
|
|
51
|
+
readonly bindings: Readonly<Record<string, unknown>>;
|
|
52
|
+
readonly observability: {
|
|
53
|
+
log(message: string): void;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export interface SessionExtensionContext extends AgentExtensionContext {
|
|
57
|
+
readonly mcp?: ExtensionMcpApi;
|
|
58
|
+
readonly agents?: ExtensionAgentsApi;
|
|
59
|
+
readonly environment?: ExtensionEnvironmentApi;
|
|
60
|
+
readonly settings?: ExtensionSettingsApi;
|
|
61
|
+
readonly processes?: ExtensionProcessesApi;
|
|
62
|
+
readonly network?: ExtensionNetworkApi;
|
|
63
|
+
readonly files?: ExtensionFilesApi;
|
|
64
|
+
readonly sessionId: string;
|
|
65
|
+
readonly models?: ExtensionModelsApi;
|
|
66
|
+
readonly data: ExtensionDataApi;
|
|
67
|
+
readonly session?: ExtensionSessionApi;
|
|
68
|
+
readonly hooks: ExtensionHookRegistrar;
|
|
69
|
+
readonly tools: {
|
|
70
|
+
register(spec: ExtensionToolSpec): ExtensionResourceRegistration;
|
|
71
|
+
catalog(): readonly ExtensionToolRef[];
|
|
72
|
+
check(call: ExtensionToolInvocation): Promise<ExtensionToolCheck>;
|
|
73
|
+
invoke(call: ExtensionToolInvocation): Promise<ToolExecutionResult>;
|
|
74
|
+
};
|
|
75
|
+
readonly commands: {
|
|
76
|
+
register(spec: ExtensionCommandSpec): ExtensionResourceRegistration;
|
|
77
|
+
list(): readonly Pick<ExtensionCommandSpec, 'name' | 'description'>[];
|
|
78
|
+
run(input: {
|
|
79
|
+
readonly name: string;
|
|
80
|
+
readonly args?: unknown;
|
|
81
|
+
}): Promise<unknown>;
|
|
82
|
+
};
|
|
83
|
+
readonly prompts: {
|
|
84
|
+
register(section: ExtensionPromptSection): ExtensionResourceRegistration;
|
|
85
|
+
sections(): readonly ExtensionPromptSection[];
|
|
86
|
+
compose(system: string): Promise<string>;
|
|
87
|
+
composeSections(input: ExtensionPromptComposition): Promise<ExtensionPromptComposition>;
|
|
88
|
+
composeDefault(facts?: import('./prompt-composition.js').ExtensionPromptFacts): Promise<ExtensionPromptComposition>;
|
|
89
|
+
};
|
|
90
|
+
readonly clock: {
|
|
91
|
+
now(): number;
|
|
92
|
+
sleep(input: {
|
|
93
|
+
readonly durationMs: number;
|
|
94
|
+
readonly signal?: AbortSignal;
|
|
95
|
+
}): Promise<void>;
|
|
96
|
+
after(durationMs: number, callback: (call: ExtensionOperationContext) => void | Promise<void>): ExtensionResourceRegistration;
|
|
97
|
+
every(durationMs: number, callback: (call: ExtensionOperationContext) => void | Promise<void>): ExtensionResourceRegistration;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export interface ExtensionServiceDeclaration {
|
|
101
|
+
readonly key: {
|
|
102
|
+
readonly id: string;
|
|
103
|
+
readonly scope: 'agent' | 'session';
|
|
104
|
+
};
|
|
105
|
+
readonly intent?: 'provide' | 'replace' | 'wrap';
|
|
106
|
+
}
|
|
107
|
+
export interface ExtensionServiceDependency {
|
|
108
|
+
readonly key: {
|
|
109
|
+
readonly id: string;
|
|
110
|
+
readonly scope: 'agent' | 'session';
|
|
111
|
+
};
|
|
112
|
+
readonly optional?: boolean;
|
|
113
|
+
}
|
|
114
|
+
export interface AgentExtension {
|
|
115
|
+
readonly dataDirectory?: string;
|
|
116
|
+
readonly id: string;
|
|
117
|
+
readonly apiVersion: '1.0';
|
|
118
|
+
readonly bindings?: Readonly<Record<string, unknown>>;
|
|
119
|
+
readonly requires?: readonly {
|
|
120
|
+
readonly id: string;
|
|
121
|
+
}[];
|
|
122
|
+
readonly optional?: readonly {
|
|
123
|
+
readonly id: string;
|
|
124
|
+
}[];
|
|
125
|
+
readonly provides?: readonly ExtensionServiceDeclaration[];
|
|
126
|
+
readonly serviceDependencies?: readonly ExtensionServiceDependency[];
|
|
127
|
+
readonly failurePolicy?: 'disable-extension' | 'fail-composition';
|
|
128
|
+
setup?(context: AgentExtensionContext): void | ExtensionDisposer | Promise<void | ExtensionDisposer>;
|
|
129
|
+
attachSession?(context: SessionExtensionContext): void | ExtensionDisposer | Promise<void | ExtensionDisposer>;
|
|
130
|
+
}
|
|
131
|
+
export interface ExtensionSnapshot {
|
|
132
|
+
readonly revision: string;
|
|
133
|
+
readonly extensions: readonly AgentExtension[];
|
|
134
|
+
}
|
|
135
|
+
export interface ExtensionSource {
|
|
136
|
+
resolve(input: {
|
|
137
|
+
readonly signal: AbortSignal;
|
|
138
|
+
}): Promise<ExtensionSnapshot>;
|
|
139
|
+
}
|
|
140
|
+
export interface ExtensionDiagnostic {
|
|
141
|
+
readonly code: string;
|
|
142
|
+
readonly extensionId?: string;
|
|
143
|
+
readonly sessionId?: string;
|
|
144
|
+
readonly revision?: string;
|
|
145
|
+
readonly operationId?: string;
|
|
146
|
+
readonly message?: string;
|
|
147
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type ExtensionCheckpoint, type ExtensionJsonValue } from '../session/extension-checkpoint.js';
|
|
2
|
+
export { cloneCoreJson, type ExtensionCheckpoint, type ExtensionJsonValue } from '../session/extension-checkpoint.js';
|
|
3
|
+
import type { ExtensionCallbackRunner, ExtensionOperationContext, ExtensionOperationRunner } from './operation.js';
|
|
4
|
+
import type { ExtensionResourceRegistration } from './resources.js';
|
|
5
|
+
import { ExtensionResourceScope } from './resources.js';
|
|
6
|
+
/** Storage is installed by the application; lifecycle remains scoped by the extension. */
|
|
7
|
+
export type ExtensionStoreBackend = (directory: string, run: <T>(operation: (signal: AbortSignal) => Promise<T>) => Promise<T>) => ExtensionStoreApi;
|
|
8
|
+
export interface ExtensionCheckpointApi {
|
|
9
|
+
get(input: {
|
|
10
|
+
readonly key: string;
|
|
11
|
+
}): Promise<ExtensionCheckpoint>;
|
|
12
|
+
set(input: {
|
|
13
|
+
readonly key: string;
|
|
14
|
+
readonly value: ExtensionJsonValue;
|
|
15
|
+
readonly expectedRevision?: number;
|
|
16
|
+
}): Promise<ExtensionCheckpoint>;
|
|
17
|
+
delete(input: {
|
|
18
|
+
readonly key: string;
|
|
19
|
+
readonly expectedRevision?: number;
|
|
20
|
+
}): Promise<ExtensionCheckpoint>;
|
|
21
|
+
}
|
|
22
|
+
export interface ExtensionCheckpointBackend {
|
|
23
|
+
read(extensionId: string, key: string, call: ExtensionOperationContext): Promise<ExtensionCheckpoint>;
|
|
24
|
+
write(extensionId: string, key: string, value: ExtensionJsonValue | undefined, expectedRevision: number | undefined, call: ExtensionOperationContext): Promise<ExtensionCheckpoint>;
|
|
25
|
+
}
|
|
26
|
+
export interface ExtensionStateChange {
|
|
27
|
+
readonly key: string;
|
|
28
|
+
readonly revision: number;
|
|
29
|
+
readonly value?: ExtensionJsonValue;
|
|
30
|
+
}
|
|
31
|
+
export interface ExtensionStateApi {
|
|
32
|
+
read(key: string): Promise<ExtensionJsonValue | undefined>;
|
|
33
|
+
write(key: string, value: ExtensionJsonValue): Promise<number>;
|
|
34
|
+
delete(key: string): Promise<number>;
|
|
35
|
+
watch(handler: (change: ExtensionStateChange, call: ExtensionOperationContext) => void | Promise<void>): ExtensionResourceRegistration;
|
|
36
|
+
}
|
|
37
|
+
export interface ExtensionDataApi {
|
|
38
|
+
readonly store?: ExtensionStoreApi;
|
|
39
|
+
readonly state: ExtensionStateApi;
|
|
40
|
+
readonly checkpoint?: ExtensionCheckpointApi;
|
|
41
|
+
}
|
|
42
|
+
export declare function bindCoreData(state: ExtensionState, store: ExtensionStoreBackend | undefined, directory: string | undefined, checkpoint: ExtensionCheckpointBackend | undefined, extensionId: string, run: ExtensionOperationRunner): ExtensionDataApi;
|
|
43
|
+
export interface ExtensionStoreCommit {
|
|
44
|
+
readonly expectedRevision?: number;
|
|
45
|
+
readonly writes: readonly {
|
|
46
|
+
readonly key: string;
|
|
47
|
+
readonly value?: ExtensionJsonValue;
|
|
48
|
+
}[];
|
|
49
|
+
}
|
|
50
|
+
export interface ExtensionStoreApi {
|
|
51
|
+
get(input: {
|
|
52
|
+
readonly key: string;
|
|
53
|
+
}): Promise<ExtensionCheckpoint>;
|
|
54
|
+
keys(): Promise<{
|
|
55
|
+
readonly revision: number;
|
|
56
|
+
readonly keys: readonly string[];
|
|
57
|
+
}>;
|
|
58
|
+
set(input: {
|
|
59
|
+
readonly key: string;
|
|
60
|
+
readonly value: ExtensionJsonValue;
|
|
61
|
+
readonly expectedRevision?: number;
|
|
62
|
+
}): Promise<ExtensionCheckpoint>;
|
|
63
|
+
delete(input: {
|
|
64
|
+
readonly key: string;
|
|
65
|
+
readonly expectedRevision?: number;
|
|
66
|
+
}): Promise<ExtensionCheckpoint>;
|
|
67
|
+
commit(input: ExtensionStoreCommit): Promise<{
|
|
68
|
+
readonly revision: number;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
/** Explicit reactive state, not a proxy over the Session or a second persistence mechanism. */
|
|
72
|
+
export declare class ExtensionState {
|
|
73
|
+
#private;
|
|
74
|
+
readonly scope: ExtensionResourceScope;
|
|
75
|
+
readonly diagnose: () => void;
|
|
76
|
+
readonly callback: ExtensionCallbackRunner;
|
|
77
|
+
constructor(scope: ExtensionResourceScope, diagnose: () => void, callback?: ExtensionCallbackRunner);
|
|
78
|
+
read(key: string): ExtensionJsonValue | undefined;
|
|
79
|
+
write(key: string, value: ExtensionJsonValue | undefined, call: ExtensionOperationContext): Promise<number>;
|
|
80
|
+
watch(handler: (change: ExtensionStateChange, call: ExtensionOperationContext) => void | Promise<void>): ExtensionResourceRegistration;
|
|
81
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { cloneCoreJson } from '../session/extension-checkpoint.js';
|
|
2
|
+
export { cloneCoreJson } from '../session/extension-checkpoint.js';
|
|
3
|
+
import { AgentError } from '../error.js';
|
|
4
|
+
export function bindCoreData(state, store, directory, checkpoint, extensionId, run) {
|
|
5
|
+
return {
|
|
6
|
+
...(directory === undefined
|
|
7
|
+
? {}
|
|
8
|
+
: { store: store(directory, (operation) => run((call) => operation(call.signal))) }),
|
|
9
|
+
state: {
|
|
10
|
+
read: (key) => run(async () => state.read(key)),
|
|
11
|
+
write: (key, value) => run((call) => state.write(key, value, call)),
|
|
12
|
+
delete: (key) => run((call) => state.write(key, undefined, call)),
|
|
13
|
+
watch: (handler) => state.watch(handler)
|
|
14
|
+
},
|
|
15
|
+
...(checkpoint
|
|
16
|
+
? {
|
|
17
|
+
checkpoint: {
|
|
18
|
+
get: (input) => run((call) => checkpoint.read(extensionId, input.key, call)),
|
|
19
|
+
set: (input) => run((call) => checkpoint.write(extensionId, input.key, input.value, input.expectedRevision, call)),
|
|
20
|
+
delete: (input) => run((call) => checkpoint.write(extensionId, input.key, undefined, input.expectedRevision, call))
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
: {})
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** Explicit reactive state, not a proxy over the Session or a second persistence mechanism. */
|
|
27
|
+
export class ExtensionState {
|
|
28
|
+
scope;
|
|
29
|
+
diagnose;
|
|
30
|
+
callback;
|
|
31
|
+
#values = new Map();
|
|
32
|
+
#observers = [];
|
|
33
|
+
#revision = 0;
|
|
34
|
+
constructor(scope, diagnose, callback = async (call, run) => run(call)) {
|
|
35
|
+
this.scope = scope;
|
|
36
|
+
this.diagnose = diagnose;
|
|
37
|
+
this.callback = callback;
|
|
38
|
+
}
|
|
39
|
+
read(key) {
|
|
40
|
+
const value = this.#values.get(key);
|
|
41
|
+
return value === undefined ? undefined : cloneCoreJson(value);
|
|
42
|
+
}
|
|
43
|
+
async write(key, value, call) {
|
|
44
|
+
if (typeof key !== 'string')
|
|
45
|
+
throw new AgentError('MAR_AGENT_EXTENSION_DATA_INVALID', 'State key must be a string.');
|
|
46
|
+
const committed = value === undefined ? undefined : cloneCoreJson(value);
|
|
47
|
+
if (committed === undefined)
|
|
48
|
+
this.#values.delete(key);
|
|
49
|
+
else
|
|
50
|
+
this.#values.set(key, committed);
|
|
51
|
+
const revision = ++this.#revision;
|
|
52
|
+
const change = {
|
|
53
|
+
key,
|
|
54
|
+
revision,
|
|
55
|
+
...(committed !== undefined ? { value: cloneCoreJson(committed) } : {})
|
|
56
|
+
};
|
|
57
|
+
if (this.scope.state === 'ACTIVE')
|
|
58
|
+
for (const observer of [...this.#observers]) {
|
|
59
|
+
try {
|
|
60
|
+
await this.scope.run((signal) => this.callback(Object.freeze({ ...call, signal }), (effective) => observer(structuredClone(change), effective)), call.signal);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
call.signal.throwIfAborted();
|
|
64
|
+
this.diagnose();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return revision;
|
|
68
|
+
}
|
|
69
|
+
watch(handler) {
|
|
70
|
+
const registration = this.scope.effect(() => () => {
|
|
71
|
+
const index = this.#observers.indexOf(handler);
|
|
72
|
+
if (index !== -1)
|
|
73
|
+
this.#observers.splice(index, 1);
|
|
74
|
+
});
|
|
75
|
+
this.#observers.push(handler);
|
|
76
|
+
return registration;
|
|
77
|
+
}
|
|
78
|
+
}
|