@namzu/sdk 48.3.1 → 50.0.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 +542 -0
- package/README.md +137 -125
- package/dist/agents/QueryAgent.d.ts.map +1 -1
- package/dist/agents/QueryAgent.js +1 -0
- package/dist/agents/QueryAgent.js.map +1 -1
- package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/examples/SupervisorAgent.js +1 -0
- package/dist/agents/examples/SupervisorAgent.js.map +1 -1
- package/dist/agents/runAgent.d.ts +2 -0
- package/dist/agents/runAgent.d.ts.map +1 -1
- package/dist/agents/runAgent.js +1 -0
- package/dist/agents/runAgent.js.map +1 -1
- package/dist/authorization/shell-lexer.d.ts.map +1 -1
- package/dist/authorization/shell-lexer.js +16 -1
- package/dist/authorization/shell-lexer.js.map +1 -1
- package/dist/bridge/acp/permission.d.ts +8 -2
- package/dist/bridge/acp/permission.d.ts.map +1 -1
- package/dist/bridge/acp/permission.js +1 -0
- package/dist/bridge/acp/permission.js.map +1 -1
- package/dist/bridge/acp/server.d.ts +25 -1
- package/dist/bridge/acp/server.d.ts.map +1 -1
- package/dist/bridge/acp/server.js +205 -21
- package/dist/bridge/acp/server.js.map +1 -1
- package/dist/bridge/acp/tasks.d.ts +5 -0
- package/dist/bridge/acp/tasks.d.ts.map +1 -0
- package/dist/bridge/acp/tasks.js +19 -0
- package/dist/bridge/acp/tasks.js.map +1 -0
- package/dist/bridge/acp/update.d.ts.map +1 -1
- package/dist/bridge/acp/update.js +148 -13
- package/dist/bridge/acp/update.js.map +1 -1
- package/dist/config/registry.d.ts +2 -0
- package/dist/config/registry.d.ts.map +1 -1
- package/dist/config/registry.js +23 -3
- package/dist/config/registry.js.map +1 -1
- package/dist/config/runtime.d.ts +31 -31
- package/dist/connector/mcp/adapter.d.ts.map +1 -1
- package/dist/connector/mcp/adapter.js +11 -4
- package/dist/connector/mcp/adapter.js.map +1 -1
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +6 -3
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/connector/mcp/discovery.d.ts +9 -5
- package/dist/connector/mcp/discovery.d.ts.map +1 -1
- package/dist/connector/mcp/discovery.js +16 -8
- package/dist/connector/mcp/discovery.js.map +1 -1
- package/dist/connector/mcp/mcp-toolset.d.ts +3 -0
- package/dist/connector/mcp/mcp-toolset.d.ts.map +1 -1
- package/dist/connector/mcp/mcp-toolset.js +20 -2
- package/dist/connector/mcp/mcp-toolset.js.map +1 -1
- package/dist/connector/mcp/reconnect.d.ts +2 -0
- package/dist/connector/mcp/reconnect.d.ts.map +1 -1
- package/dist/connector/mcp/reconnect.js +36 -5
- package/dist/connector/mcp/reconnect.js.map +1 -1
- package/dist/constants/acp/index.d.ts +3 -0
- package/dist/constants/acp/index.d.ts.map +1 -1
- package/dist/constants/acp/index.js +3 -0
- package/dist/constants/acp/index.js.map +1 -1
- package/dist/contracts/a2a.d.ts +80 -80
- package/dist/contracts/schemas.d.ts +2 -2
- package/dist/contracts/session/schemas.d.ts +10 -10
- package/dist/manager/agent/lifecycle.d.ts +11 -0
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +178 -3
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/plan/lifecycle.d.ts +7 -8
- package/dist/manager/plan/lifecycle.d.ts.map +1 -1
- package/dist/manager/plan/lifecycle.js +7 -8
- package/dist/manager/plan/lifecycle.js.map +1 -1
- package/dist/manager/resident/consumption.d.ts +8 -8
- package/dist/manager/resident/learning-cycle.d.ts +2 -2
- package/dist/manager/resident/learning-observation.d.ts +12 -12
- package/dist/manager/resident/learning.d.ts +82 -82
- package/dist/manager/resident/outbox.d.ts +8 -8
- package/dist/manager/resident/proposal.d.ts +2 -2
- package/dist/manager/resident/store.d.ts +10 -10
- package/dist/manager/session/attribution.d.ts +1 -0
- package/dist/manager/session/attribution.d.ts.map +1 -1
- package/dist/manager/session/attribution.js +9 -1
- package/dist/manager/session/attribution.js.map +1 -1
- package/dist/manager/session/streamed-message-identity.d.ts +6 -0
- package/dist/manager/session/streamed-message-identity.d.ts.map +1 -0
- package/dist/manager/session/streamed-message-identity.js +14 -0
- package/dist/manager/session/streamed-message-identity.js.map +1 -0
- package/dist/manager/session/turn-recorder.d.ts.map +1 -1
- package/dist/manager/session/turn-recorder.js +4 -3
- package/dist/manager/session/turn-recorder.js.map +1 -1
- package/dist/pals/activity/causality.d.ts +23 -0
- package/dist/pals/activity/causality.d.ts.map +1 -0
- package/dist/pals/activity/causality.js +205 -0
- package/dist/pals/activity/causality.js.map +1 -0
- package/dist/pals/activity/projection.d.ts +5 -0
- package/dist/pals/activity/projection.d.ts.map +1 -0
- package/dist/pals/activity/projection.js +79 -0
- package/dist/pals/activity/projection.js.map +1 -0
- package/dist/pals/activity/source.d.ts +16 -0
- package/dist/pals/activity/source.d.ts.map +1 -0
- package/dist/pals/activity/source.js +235 -0
- package/dist/pals/activity/source.js.map +1 -0
- package/dist/pals/activity/subscription-policy.d.ts +38 -0
- package/dist/pals/activity/subscription-policy.d.ts.map +1 -0
- package/dist/pals/activity/subscription-policy.js +183 -0
- package/dist/pals/activity/subscription-policy.js.map +1 -0
- package/dist/pals/activity/subscription-schema.d.ts +353 -0
- package/dist/pals/activity/subscription-schema.d.ts.map +1 -0
- package/dist/pals/activity/subscription-schema.js +24 -0
- package/dist/pals/activity/subscription-schema.js.map +1 -0
- package/dist/pals/activity/subscription-store.d.ts +25 -0
- package/dist/pals/activity/subscription-store.d.ts.map +1 -0
- package/dist/pals/activity/subscription-store.js +152 -0
- package/dist/pals/activity/subscription-store.js.map +1 -0
- package/dist/pals/activity/subscription-types.d.ts +42 -0
- package/dist/pals/activity/subscription-types.d.ts.map +1 -0
- package/dist/pals/activity/subscription-types.js +2 -0
- package/dist/pals/activity/subscription-types.js.map +1 -0
- package/dist/pals/activity/subscriptions.d.ts +32 -0
- package/dist/pals/activity/subscriptions.d.ts.map +1 -0
- package/dist/pals/activity/subscriptions.js +151 -0
- package/dist/pals/activity/subscriptions.js.map +1 -0
- package/dist/pals/activity/types.d.ts +77 -0
- package/dist/pals/activity/types.d.ts.map +1 -0
- package/dist/pals/activity/types.js +2 -0
- package/dist/pals/activity/types.js.map +1 -0
- package/dist/pals/channels/ingress.d.ts +9 -0
- package/dist/pals/channels/ingress.d.ts.map +1 -0
- package/dist/pals/channels/ingress.js +131 -0
- package/dist/pals/channels/ingress.js.map +1 -0
- package/dist/pals/channels/routes.d.ts +20 -0
- package/dist/pals/channels/routes.d.ts.map +1 -0
- package/dist/pals/channels/routes.js +111 -0
- package/dist/pals/channels/routes.js.map +1 -0
- package/dist/pals/channels/routing.d.ts +37 -0
- package/dist/pals/channels/routing.d.ts.map +1 -0
- package/dist/pals/channels/routing.js +150 -0
- package/dist/pals/channels/routing.js.map +1 -0
- package/dist/pals/channels/schema.d.ts +234 -0
- package/dist/pals/channels/schema.d.ts.map +1 -0
- package/dist/pals/channels/schema.js +94 -0
- package/dist/pals/channels/schema.js.map +1 -0
- package/dist/pals/channels/types.d.ts +115 -0
- package/dist/pals/channels/types.d.ts.map +1 -0
- package/dist/pals/channels/types.js +2 -0
- package/dist/pals/channels/types.js.map +1 -0
- package/dist/pals/communication/broker.d.ts +8 -0
- package/dist/pals/communication/broker.d.ts.map +1 -0
- package/dist/pals/communication/broker.js +121 -0
- package/dist/pals/communication/broker.js.map +1 -0
- package/dist/pals/communication/dispatch.d.ts +4 -0
- package/dist/pals/communication/dispatch.d.ts.map +1 -0
- package/dist/pals/communication/dispatch.js +57 -0
- package/dist/pals/communication/dispatch.js.map +1 -0
- package/dist/pals/communication/inbound.d.ts +9 -0
- package/dist/pals/communication/inbound.d.ts.map +1 -0
- package/dist/pals/communication/inbound.js +155 -0
- package/dist/pals/communication/inbound.js.map +1 -0
- package/dist/pals/communication/ingress-dispatch.d.ts +5 -0
- package/dist/pals/communication/ingress-dispatch.d.ts.map +1 -0
- package/dist/pals/communication/ingress-dispatch.js +51 -0
- package/dist/pals/communication/ingress-dispatch.js.map +1 -0
- package/dist/pals/communication/ingress-inbound.d.ts +9 -0
- package/dist/pals/communication/ingress-inbound.d.ts.map +1 -0
- package/dist/pals/communication/ingress-inbound.js +222 -0
- package/dist/pals/communication/ingress-inbound.js.map +1 -0
- package/dist/pals/communication/ingress-schema.d.ts +7829 -0
- package/dist/pals/communication/ingress-schema.d.ts.map +1 -0
- package/dist/pals/communication/ingress-schema.js +479 -0
- package/dist/pals/communication/ingress-schema.js.map +1 -0
- package/dist/pals/communication/ingress-types.d.ts +187 -0
- package/dist/pals/communication/ingress-types.d.ts.map +1 -0
- package/dist/pals/communication/ingress-types.js +73 -0
- package/dist/pals/communication/ingress-types.js.map +1 -0
- package/dist/pals/communication/operator.d.ts +75 -0
- package/dist/pals/communication/operator.d.ts.map +1 -0
- package/dist/pals/communication/operator.js +217 -0
- package/dist/pals/communication/operator.js.map +1 -0
- package/dist/pals/communication/policy.d.ts +41 -0
- package/dist/pals/communication/policy.d.ts.map +1 -0
- package/dist/pals/communication/policy.js +138 -0
- package/dist/pals/communication/policy.js.map +1 -0
- package/dist/pals/communication/schema.d.ts +2000 -0
- package/dist/pals/communication/schema.d.ts.map +1 -0
- package/dist/pals/communication/schema.js +170 -0
- package/dist/pals/communication/schema.js.map +1 -0
- package/dist/pals/communication/store.d.ts +61 -0
- package/dist/pals/communication/store.d.ts.map +1 -0
- package/dist/pals/communication/store.js +450 -0
- package/dist/pals/communication/store.js.map +1 -0
- package/dist/pals/communication/tools.d.ts +23 -0
- package/dist/pals/communication/tools.d.ts.map +1 -0
- package/dist/pals/communication/tools.js +107 -0
- package/dist/pals/communication/tools.js.map +1 -0
- package/dist/pals/communication/types.d.ts +168 -0
- package/dist/pals/communication/types.d.ts.map +1 -0
- package/dist/pals/communication/types.js +24 -0
- package/dist/pals/communication/types.js.map +1 -0
- package/dist/pals/communication/verify.d.ts +22 -0
- package/dist/pals/communication/verify.d.ts.map +1 -0
- package/dist/pals/communication/verify.js +142 -0
- package/dist/pals/communication/verify.js.map +1 -0
- package/dist/pals/lifecycle.d.ts +37 -0
- package/dist/pals/lifecycle.d.ts.map +1 -0
- package/dist/pals/lifecycle.js +22 -0
- package/dist/pals/lifecycle.js.map +1 -0
- package/dist/pals/prompt.d.ts +30 -0
- package/dist/pals/prompt.d.ts.map +1 -0
- package/dist/pals/prompt.js +65 -0
- package/dist/pals/prompt.js.map +1 -0
- package/dist/pals/reference-images.d.ts +44 -0
- package/dist/pals/reference-images.d.ts.map +1 -0
- package/dist/pals/reference-images.js +248 -0
- package/dist/pals/reference-images.js.map +1 -0
- package/dist/pals/runtime.d.ts +46 -0
- package/dist/pals/runtime.d.ts.map +1 -0
- package/dist/pals/runtime.js +624 -0
- package/dist/pals/runtime.js.map +1 -0
- package/dist/pals/store.d.ts +26 -0
- package/dist/pals/store.d.ts.map +1 -0
- package/dist/pals/store.js +334 -0
- package/dist/pals/store.js.map +1 -0
- package/dist/pals/types.d.ts +145 -0
- package/dist/pals/types.d.ts.map +1 -0
- package/dist/pals/types.js +2 -0
- package/dist/pals/types.js.map +1 -0
- package/dist/peers/envelope.js +1 -1
- package/dist/peers/envelope.js.map +1 -1
- package/dist/peers/protocol.d.ts +83 -83
- package/dist/peers/record.d.ts +10 -10
- package/dist/plugin/lifecycle.d.ts +14 -10
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +178 -41
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/shell-hook.d.ts.map +1 -1
- package/dist/plugin/shell-hook.js +7 -2
- package/dist/plugin/shell-hook.js.map +1 -1
- package/dist/process/kill-tree.d.ts.map +1 -1
- package/dist/process/kill-tree.js +9 -1
- package/dist/process/kill-tree.js.map +1 -1
- package/dist/prompt/resident-learning.js +2 -2
- package/dist/prompt/resident-learning.js.map +1 -1
- package/dist/prompt/resident-step.d.ts +2 -2
- package/dist/prompt/resident-step.js +4 -4
- package/dist/prompt/resident-step.js.map +1 -1
- package/dist/provider/errors.d.ts +19 -0
- package/dist/provider/errors.d.ts.map +1 -1
- package/dist/provider/errors.js +123 -2
- package/dist/provider/errors.js.map +1 -1
- package/dist/public-runtime.d.ts +43 -15
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +37 -9
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +8 -3
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +8 -3
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +27 -7
- package/dist/public-types.d.ts.map +1 -1
- package/dist/registry/tool/presentation.d.ts +1 -0
- package/dist/registry/tool/presentation.d.ts.map +1 -1
- package/dist/registry/tool/presentation.js +9 -7
- package/dist/registry/tool/presentation.js.map +1 -1
- package/dist/registry/tool/screen.d.ts.map +1 -1
- package/dist/registry/tool/screen.js +33 -2
- package/dist/registry/tool/screen.js.map +1 -1
- package/dist/runtime/harness-session/index.d.ts +5 -0
- package/dist/runtime/harness-session/index.d.ts.map +1 -0
- package/dist/runtime/harness-session/index.js +928 -0
- package/dist/runtime/harness-session/index.js.map +1 -0
- package/dist/runtime/harness-session/journal.d.ts +37 -0
- package/dist/runtime/harness-session/journal.d.ts.map +1 -0
- package/dist/runtime/harness-session/journal.js +177 -0
- package/dist/runtime/harness-session/journal.js.map +1 -0
- package/dist/runtime/harness-session/saved-view.d.ts +8 -0
- package/dist/runtime/harness-session/saved-view.d.ts.map +1 -0
- package/dist/runtime/harness-session/saved-view.js +112 -0
- package/dist/runtime/harness-session/saved-view.js.map +1 -0
- package/dist/runtime/jobs/awaited-jobs.d.ts +2 -1
- package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -1
- package/dist/runtime/jobs/awaited-jobs.js +2 -1
- package/dist/runtime/jobs/awaited-jobs.js.map +1 -1
- package/dist/runtime/jobs/registry.d.ts +56 -1
- package/dist/runtime/jobs/registry.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.js +377 -39
- package/dist/runtime/jobs/registry.js.map +1 -1
- package/dist/runtime/query/abandon-turn.d.ts +12 -1
- package/dist/runtime/query/abandon-turn.d.ts.map +1 -1
- package/dist/runtime/query/abandon-turn.js +3 -1
- package/dist/runtime/query/abandon-turn.js.map +1 -1
- package/dist/runtime/query/checkpoint.d.ts +4 -0
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +10 -0
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/durable-inbound.d.ts +5 -0
- package/dist/runtime/query/durable-inbound.d.ts.map +1 -0
- package/dist/runtime/query/durable-inbound.js +89 -0
- package/dist/runtime/query/durable-inbound.js.map +1 -0
- package/dist/runtime/query/events.d.ts +4 -0
- package/dist/runtime/query/events.d.ts.map +1 -1
- package/dist/runtime/query/events.js +22 -5
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts +5 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.js +85 -13
- package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +41 -18
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +227 -114
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/index.d.ts +9 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +41 -5
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +18 -6
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +176 -75
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/outstanding-work.d.ts +9 -5
- package/dist/runtime/query/iteration/outstanding-work.d.ts.map +1 -1
- package/dist/runtime/query/iteration/outstanding-work.js +63 -6
- package/dist/runtime/query/iteration/outstanding-work.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +8 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +106 -17
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/step-shaping.d.ts +2 -0
- package/dist/runtime/query/iteration/step-shaping.d.ts.map +1 -1
- package/dist/runtime/query/iteration/step-shaping.js +5 -1
- package/dist/runtime/query/iteration/step-shaping.js.map +1 -1
- package/dist/runtime/query/observation-context.d.ts +2 -2
- package/dist/runtime/query/observation-context.d.ts.map +1 -1
- package/dist/runtime/query/observation-context.js +20 -13
- package/dist/runtime/query/observation-context.js.map +1 -1
- package/dist/runtime/query/prepare-turn.js +2 -2
- package/dist/runtime/query/prepare-turn.js.map +1 -1
- package/dist/runtime/query/prompt-cache.d.ts +1 -0
- package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
- package/dist/runtime/query/prompt-cache.js +2 -0
- package/dist/runtime/query/prompt-cache.js.map +1 -1
- package/dist/runtime/query/prompt.d.ts +2 -0
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +23 -1
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/repeat-call.d.ts +12 -3
- package/dist/runtime/query/repeat-call.d.ts.map +1 -1
- package/dist/runtime/query/repeat-call.js +33 -10
- package/dist/runtime/query/repeat-call.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts +5 -6
- package/dist/runtime/query/resume-pending.d.ts.map +1 -1
- package/dist/runtime/query/resume-pending.js +30 -3
- package/dist/runtime/query/resume-pending.js.map +1 -1
- package/dist/runtime/query/resume-session.js +1 -1
- package/dist/runtime/query/resume-session.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +8 -1
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +6 -0
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/saved-presentation.d.ts +13 -0
- package/dist/runtime/query/saved-presentation.d.ts.map +1 -0
- package/dist/runtime/query/saved-presentation.js +63 -0
- package/dist/runtime/query/saved-presentation.js.map +1 -0
- package/dist/runtime/query/steering.d.ts +6 -9
- package/dist/runtime/query/steering.d.ts.map +1 -1
- package/dist/runtime/query/steering.js.map +1 -1
- package/dist/runtime/query/tool-executions.d.ts +7 -3
- package/dist/runtime/query/tool-executions.d.ts.map +1 -1
- package/dist/runtime/query/tool-executions.js +89 -9
- package/dist/runtime/query/tool-executions.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +3 -1
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +3 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/scheduler/completion-inbox.d.ts +25 -1
- package/dist/scheduler/completion-inbox.d.ts.map +1 -1
- package/dist/scheduler/completion-inbox.js +102 -8
- package/dist/scheduler/completion-inbox.js.map +1 -1
- package/dist/scheduler/delegating.d.ts.map +1 -1
- package/dist/scheduler/delegating.js +5 -0
- package/dist/scheduler/delegating.js.map +1 -1
- package/dist/scheduler/local.d.ts.map +1 -1
- package/dist/scheduler/local.js +2 -0
- package/dist/scheduler/local.js.map +1 -1
- package/dist/session/summary/materialize.d.ts +10 -6
- package/dist/session/summary/materialize.d.ts.map +1 -1
- package/dist/session/summary/materialize.js +41 -8
- package/dist/session/summary/materialize.js.map +1 -1
- package/dist/store/budget/ledger.d.ts +9 -0
- package/dist/store/budget/ledger.d.ts.map +1 -1
- package/dist/store/budget/ledger.js +58 -6
- package/dist/store/budget/ledger.js.map +1 -1
- package/dist/store/evidence/index-page.d.ts +12 -12
- package/dist/store/evidence/source-text.d.ts +4 -4
- package/dist/store/index.d.ts +1 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +1 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/memory/disk.d.ts +7 -2
- package/dist/store/memory/disk.d.ts.map +1 -1
- package/dist/store/memory/disk.js +58 -5
- package/dist/store/memory/disk.js.map +1 -1
- package/dist/store/memory/index.d.ts +9 -0
- package/dist/store/memory/index.d.ts.map +1 -1
- package/dist/store/memory/index.js +43 -5
- package/dist/store/memory/index.js.map +1 -1
- package/dist/store/memory/markdown.d.ts +7 -2
- package/dist/store/memory/markdown.d.ts.map +1 -1
- package/dist/store/memory/markdown.js +33 -0
- package/dist/store/memory/markdown.js.map +1 -1
- package/dist/store/memory/memory.d.ts +7 -2
- package/dist/store/memory/memory.d.ts.map +1 -1
- package/dist/store/memory/memory.js +34 -0
- package/dist/store/memory/memory.js.map +1 -1
- package/dist/store/memory/revision.d.ts +16 -0
- package/dist/store/memory/revision.d.ts.map +1 -0
- package/dist/store/memory/revision.js +144 -0
- package/dist/store/memory/revision.js.map +1 -0
- package/dist/store/session/disk.d.ts +9 -4
- package/dist/store/session/disk.d.ts.map +1 -1
- package/dist/store/session/disk.js +57 -11
- package/dist/store/session/disk.js.map +1 -1
- package/dist/store/session/memory.d.ts +5 -3
- package/dist/store/session/memory.d.ts.map +1 -1
- package/dist/store/session/memory.js +24 -7
- package/dist/store/session/memory.js.map +1 -1
- package/dist/store/session-log/core.d.ts +26 -6
- package/dist/store/session-log/core.d.ts.map +1 -1
- package/dist/store/session-log/core.js +61 -8
- package/dist/store/session-log/core.js.map +1 -1
- package/dist/store/session-log/disk.d.ts +2 -2
- package/dist/store/session-log/disk.d.ts.map +1 -1
- package/dist/store/session-log/disk.js +1 -0
- package/dist/store/session-log/disk.js.map +1 -1
- package/dist/store/session-log/fold.d.ts +7 -0
- package/dist/store/session-log/fold.d.ts.map +1 -1
- package/dist/store/session-log/fold.js +21 -0
- package/dist/store/session-log/fold.js.map +1 -1
- package/dist/store/session-log/index.d.ts +5 -3
- package/dist/store/session-log/index.d.ts.map +1 -1
- package/dist/store/session-log/index.js +3 -1
- package/dist/store/session-log/index.js.map +1 -1
- package/dist/store/session-log/memory.d.ts +1 -1
- package/dist/store/session-log/memory.d.ts.map +1 -1
- package/dist/store/session-log/memory.js +1 -0
- package/dist/store/session-log/memory.js.map +1 -1
- package/dist/store/session-log/spill.d.ts +10 -3
- package/dist/store/session-log/spill.d.ts.map +1 -1
- package/dist/store/session-log/spill.js +70 -5
- package/dist/store/session-log/spill.js.map +1 -1
- package/dist/store/session-log/structured-result.d.ts +21 -0
- package/dist/store/session-log/structured-result.d.ts.map +1 -0
- package/dist/store/session-log/structured-result.js +67 -0
- package/dist/store/session-log/structured-result.js.map +1 -0
- package/dist/store/task/disk.d.ts +11 -0
- package/dist/store/task/disk.d.ts.map +1 -1
- package/dist/store/task/disk.js +41 -2
- package/dist/store/task/disk.js.map +1 -1
- package/dist/store/task/memory.d.ts.map +1 -1
- package/dist/store/task/memory.js +15 -3
- package/dist/store/task/memory.js.map +1 -1
- package/dist/tools/admit-facts.d.ts +13 -0
- package/dist/tools/admit-facts.d.ts.map +1 -0
- package/dist/tools/admit-facts.js +142 -0
- package/dist/tools/admit-facts.js.map +1 -0
- package/dist/tools/builtins/bash.d.ts +4 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +108 -22
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/browser.d.ts +10 -10
- package/dist/tools/builtins/computer-use.d.ts +90 -90
- package/dist/tools/builtins/edit.d.ts +17 -0
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +34 -0
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/file-write-result.d.ts.map +1 -1
- package/dist/tools/builtins/file-write-result.js +13 -0
- package/dist/tools/builtins/file-write-result.js.map +1 -1
- package/dist/tools/builtins/glob.d.ts.map +1 -1
- package/dist/tools/builtins/glob.js +12 -0
- package/dist/tools/builtins/glob.js.map +1 -1
- package/dist/tools/builtins/grep.d.ts.map +1 -1
- package/dist/tools/builtins/grep.js +14 -0
- package/dist/tools/builtins/grep.js.map +1 -1
- package/dist/tools/builtins/index.d.ts +2 -0
- package/dist/tools/builtins/index.d.ts.map +1 -1
- package/dist/tools/builtins/index.js +1 -0
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/job.d.ts.map +1 -1
- package/dist/tools/builtins/job.js +4 -1
- package/dist/tools/builtins/job.js.map +1 -1
- package/dist/tools/builtins/lsp.d.ts +2 -2
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +49 -0
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/view-image.d.ts +24 -0
- package/dist/tools/builtins/view-image.d.ts.map +1 -0
- package/dist/tools/builtins/view-image.js +385 -0
- package/dist/tools/builtins/view-image.js.map +1 -0
- package/dist/tools/builtins/wait-for-job-bounds.d.ts +8 -4
- package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -1
- package/dist/tools/builtins/wait-for-job-bounds.js +43 -8
- package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -1
- package/dist/tools/builtins/wait-for-job.d.ts +3 -0
- package/dist/tools/builtins/wait-for-job.d.ts.map +1 -1
- package/dist/tools/builtins/wait-for-job.js +127 -15
- package/dist/tools/builtins/wait-for-job.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +1 -0
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/command-shell.d.ts +37 -2
- package/dist/tools/command-shell.d.ts.map +1 -1
- package/dist/tools/command-shell.js +100 -3
- package/dist/tools/command-shell.js.map +1 -1
- package/dist/tools/coordinator/agent.d.ts +9 -19
- package/dist/tools/coordinator/agent.d.ts.map +1 -1
- package/dist/tools/coordinator/agent.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +127 -67
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.d.ts +2 -0
- package/dist/tools/coordinator/wait-with-idle-bound.d.ts.map +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.js +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.js.map +1 -1
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +4 -0
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/failure-facts.d.ts +8 -0
- package/dist/tools/failure-facts.d.ts.map +1 -0
- package/dist/tools/failure-facts.js +24 -0
- package/dist/tools/failure-facts.js.map +1 -0
- package/dist/tools/host-output.d.ts +24 -0
- package/dist/tools/host-output.d.ts.map +1 -0
- package/dist/tools/host-output.js +117 -0
- package/dist/tools/host-output.js.map +1 -0
- package/dist/tools/memory/delete.d.ts.map +1 -1
- package/dist/tools/memory/delete.js +38 -3
- package/dist/tools/memory/delete.js.map +1 -1
- package/dist/tools/memory/read.d.ts.map +1 -1
- package/dist/tools/memory/read.js +38 -2
- package/dist/tools/memory/read.js.map +1 -1
- package/dist/tools/memory/search.d.ts.map +1 -1
- package/dist/tools/memory/search.js +38 -7
- package/dist/tools/memory/search.js.map +1 -1
- package/dist/tools/memory/update.d.ts.map +1 -1
- package/dist/tools/memory/update.js +30 -3
- package/dist/tools/memory/update.js.map +1 -1
- package/dist/tools/oem-code-pages.d.ts +8 -0
- package/dist/tools/oem-code-pages.d.ts.map +1 -0
- package/dist/tools/oem-code-pages.js +23 -0
- package/dist/tools/oem-code-pages.js.map +1 -0
- package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
- package/dist/tools/schedules/schedule-tool.js +35 -6
- package/dist/tools/schedules/schedule-tool.js.map +1 -1
- package/dist/tools/schedules/types.d.ts +23 -3
- package/dist/tools/schedules/types.d.ts.map +1 -1
- package/dist/tools/task/list.d.ts.map +1 -1
- package/dist/tools/task/list.js +14 -6
- package/dist/tools/task/list.js.map +1 -1
- package/dist/tools/task/present.d.ts.map +1 -1
- package/dist/tools/task/present.js +26 -6
- package/dist/tools/task/present.js.map +1 -1
- package/dist/tools/task/update.d.ts.map +1 -1
- package/dist/tools/task/update.js +12 -5
- package/dist/tools/task/update.js.map +1 -1
- package/dist/tools/text-window.d.ts +19 -0
- package/dist/tools/text-window.d.ts.map +1 -0
- package/dist/tools/text-window.js +83 -0
- package/dist/tools/text-window.js.map +1 -0
- package/dist/toolsets/manager.d.ts +24 -0
- package/dist/toolsets/manager.d.ts.map +1 -1
- package/dist/toolsets/manager.js +105 -2
- package/dist/toolsets/manager.js.map +1 -1
- package/dist/turn/memory-recall.d.ts +2 -0
- package/dist/turn/memory-recall.d.ts.map +1 -1
- package/dist/turn/memory-recall.js +3 -1
- package/dist/turn/memory-recall.js.map +1 -1
- package/dist/types/acp/index.d.ts +137 -1
- package/dist/types/acp/index.d.ts.map +1 -1
- package/dist/types/agent/base.d.ts +3 -0
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/manager.d.ts +8 -23
- package/dist/types/agent/manager.d.ts.map +1 -1
- package/dist/types/agent/scheduler.d.ts +10 -1
- package/dist/types/agent/scheduler.d.ts.map +1 -1
- package/dist/types/agent/task.d.ts +4 -0
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/authorization/index.d.ts +30 -30
- package/dist/types/connector/mcp.d.ts +7 -0
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/errors/catalog.d.ts.map +1 -1
- package/dist/types/errors/catalog.js +4 -2
- package/dist/types/errors/catalog.js.map +1 -1
- package/dist/types/harness/schema.d.ts +354 -0
- package/dist/types/harness/schema.d.ts.map +1 -0
- package/dist/types/harness/schema.js +203 -0
- package/dist/types/harness/schema.js.map +1 -0
- package/dist/types/harness/session.d.ts +278 -0
- package/dist/types/harness/session.d.ts.map +1 -0
- package/dist/types/harness/session.js +2 -0
- package/dist/types/harness/session.js.map +1 -0
- package/dist/types/hitl/index.d.ts +12 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/job/index.d.ts +47 -0
- package/dist/types/job/index.d.ts.map +1 -0
- package/dist/types/job/index.js +2 -0
- package/dist/types/job/index.js.map +1 -0
- package/dist/types/memory/index.d.ts +29 -0
- package/dist/types/memory/index.d.ts.map +1 -1
- package/dist/types/memory/index.js +6 -0
- package/dist/types/memory/index.js.map +1 -1
- package/dist/types/message/inbound-delivery.d.ts +44 -0
- package/dist/types/message/inbound-delivery.d.ts.map +1 -0
- package/dist/types/message/inbound-delivery.js +14 -0
- package/dist/types/message/inbound-delivery.js.map +1 -0
- package/dist/types/message/index.d.ts +4 -1
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +5 -1
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/plugin/index.d.ts +18 -8
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/index.js +5 -2
- package/dist/types/plugin/index.js.map +1 -1
- package/dist/types/sandbox/index.d.ts +39 -2
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/session/checkpoint.d.ts +24 -17
- package/dist/types/session/checkpoint.d.ts.map +1 -1
- package/dist/types/session/checkpoint.js +1 -0
- package/dist/types/session/checkpoint.js.map +1 -1
- package/dist/types/session/events.d.ts +23 -1
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/events.js.map +1 -1
- package/dist/types/session/records.d.ts +1514 -565
- package/dist/types/session/records.d.ts.map +1 -1
- package/dist/types/session/records.js +89 -1
- package/dist/types/session/records.js.map +1 -1
- package/dist/types/session/step.d.ts +2 -0
- package/dist/types/session/step.d.ts.map +1 -1
- package/dist/types/session/step.js.map +1 -1
- package/dist/types/session/store.d.ts +19 -10
- package/dist/types/session/store.d.ts.map +1 -1
- package/dist/types/session/tool-execution.d.ts +6 -0
- package/dist/types/session/tool-execution.d.ts.map +1 -1
- package/dist/types/structured-output/index.d.ts +12 -2
- package/dist/types/structured-output/index.d.ts.map +1 -1
- package/dist/types/summary/ref.d.ts +3 -1
- package/dist/types/summary/ref.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +32 -4
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/types/tool/presentation.d.ts +106 -0
- package/dist/types/tool/presentation.d.ts.map +1 -1
- package/dist/utils/json-snapshot.d.ts +6 -2
- package/dist/utils/json-snapshot.d.ts.map +1 -1
- package/dist/utils/json-snapshot.js +19 -9
- package/dist/utils/json-snapshot.js.map +1 -1
- package/dist/utils/structured-result-json.d.ts +5 -0
- package/dist/utils/structured-result-json.d.ts.map +1 -0
- package/dist/utils/structured-result-json.js +10 -0
- package/dist/utils/structured-result-json.js.map +1 -0
- package/package.json +1 -1
- package/src/agents/QueryAgent.ts +1 -0
- package/src/agents/examples/SupervisorAgent.ts +1 -0
- package/src/agents/runAgent.ts +3 -0
- package/src/authorization/shell-lexer.ts +16 -1
- package/src/bridge/acp/permission.ts +17 -3
- package/src/bridge/acp/server.ts +271 -25
- package/src/bridge/acp/tasks.ts +23 -0
- package/src/bridge/acp/update.ts +167 -13
- package/src/config/registry.ts +24 -3
- package/src/connector/mcp/adapter.ts +16 -4
- package/src/connector/mcp/client.ts +6 -2
- package/src/connector/mcp/discovery.ts +29 -8
- package/src/connector/mcp/mcp-toolset.ts +25 -4
- package/src/connector/mcp/reconnect.ts +34 -4
- package/src/constants/acp/index.ts +4 -0
- package/src/manager/agent/lifecycle.ts +230 -3
- package/src/manager/plan/lifecycle.ts +11 -9
- package/src/manager/session/attribution.ts +12 -2
- package/src/manager/session/streamed-message-identity.ts +21 -0
- package/src/manager/session/turn-recorder.ts +4 -3
- package/src/pals/activity/causality.ts +261 -0
- package/src/pals/activity/projection.ts +89 -0
- package/src/pals/activity/source.ts +240 -0
- package/src/pals/activity/subscription-policy.ts +230 -0
- package/src/pals/activity/subscription-schema.ts +27 -0
- package/src/pals/activity/subscription-store.ts +172 -0
- package/src/pals/activity/subscription-types.ts +48 -0
- package/src/pals/activity/subscriptions.ts +209 -0
- package/src/pals/activity/types.ts +108 -0
- package/src/pals/channels/ingress.ts +153 -0
- package/src/pals/channels/routes.ts +118 -0
- package/src/pals/channels/routing.ts +197 -0
- package/src/pals/channels/schema.ts +108 -0
- package/src/pals/channels/types.ts +156 -0
- package/src/pals/communication/broker.ts +131 -0
- package/src/pals/communication/dispatch.ts +66 -0
- package/src/pals/communication/inbound.ts +193 -0
- package/src/pals/communication/ingress-dispatch.ts +63 -0
- package/src/pals/communication/ingress-inbound.ts +269 -0
- package/src/pals/communication/ingress-schema.ts +526 -0
- package/src/pals/communication/ingress-types.ts +336 -0
- package/src/pals/communication/operator.ts +315 -0
- package/src/pals/communication/policy.ts +174 -0
- package/src/pals/communication/schema.ts +173 -0
- package/src/pals/communication/store.ts +577 -0
- package/src/pals/communication/tools.ts +139 -0
- package/src/pals/communication/types.ts +227 -0
- package/src/pals/communication/verify.ts +220 -0
- package/src/pals/lifecycle.ts +54 -0
- package/src/pals/prompt.ts +101 -0
- package/src/pals/reference-images.ts +322 -0
- package/src/pals/runtime.ts +670 -0
- package/src/pals/store.ts +369 -0
- package/src/pals/types.ts +157 -0
- package/src/peers/envelope.ts +1 -1
- package/src/plugin/lifecycle.ts +217 -46
- package/src/plugin/shell-hook.ts +8 -2
- package/src/process/kill-tree.ts +10 -1
- package/src/prompt/resident-learning.ts +2 -2
- package/src/prompt/resident-step.ts +4 -4
- package/src/provider/errors.ts +135 -2
- package/src/public-runtime.ts +119 -12
- package/src/public-tools.ts +13 -1
- package/src/public-types.ts +69 -7
- package/src/registry/tool/presentation.ts +9 -4
- package/src/registry/tool/screen.ts +34 -2
- package/src/runtime/harness-session/index.ts +1125 -0
- package/src/runtime/harness-session/journal.ts +209 -0
- package/src/runtime/harness-session/saved-view.ts +122 -0
- package/src/runtime/jobs/awaited-jobs.ts +2 -1
- package/src/runtime/jobs/registry.ts +423 -50
- package/src/runtime/query/abandon-turn.ts +18 -2
- package/src/runtime/query/checkpoint.ts +11 -0
- package/src/runtime/query/durable-inbound.ts +101 -0
- package/src/runtime/query/events.ts +22 -5
- package/src/runtime/query/executor/tool-call-admission.ts +125 -32
- package/src/runtime/query/executor.ts +316 -130
- package/src/runtime/query/index.ts +48 -5
- package/src/runtime/query/iteration/index.ts +253 -114
- package/src/runtime/query/iteration/outstanding-work.ts +57 -7
- package/src/runtime/query/iteration/phases/context.ts +8 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +124 -22
- package/src/runtime/query/iteration/step-shaping.ts +9 -1
- package/src/runtime/query/observation-context.ts +22 -16
- package/src/runtime/query/prepare-turn.ts +2 -2
- package/src/runtime/query/prompt-cache.ts +3 -0
- package/src/runtime/query/prompt.ts +32 -1
- package/src/runtime/query/repeat-call.ts +40 -10
- package/src/runtime/query/resume-pending.ts +60 -7
- package/src/runtime/query/resume-session.ts +1 -1
- package/src/runtime/query/review-policy.ts +23 -2
- package/src/runtime/query/saved-presentation.ts +70 -0
- package/src/runtime/query/steering.ts +6 -9
- package/src/runtime/query/tool-executions.ts +108 -9
- package/src/runtime/query/tooling.ts +6 -1
- package/src/scheduler/completion-inbox.ts +108 -7
- package/src/scheduler/delegating.ts +5 -0
- package/src/scheduler/local.ts +2 -0
- package/src/session/summary/materialize.ts +51 -9
- package/src/store/budget/ledger.ts +60 -5
- package/src/store/index.ts +1 -0
- package/src/store/memory/disk.ts +82 -7
- package/src/store/memory/index.ts +66 -7
- package/src/store/memory/markdown.ts +54 -2
- package/src/store/memory/memory.ts +52 -2
- package/src/store/memory/revision.ts +158 -0
- package/src/store/session/disk.ts +77 -10
- package/src/store/session/memory.ts +32 -7
- package/src/store/session-log/core.ts +118 -11
- package/src/store/session-log/disk.ts +9 -2
- package/src/store/session-log/fold.ts +22 -0
- package/src/store/session-log/index.ts +5 -0
- package/src/store/session-log/memory.ts +2 -1
- package/src/store/session-log/spill.ts +89 -6
- package/src/store/session-log/structured-result.ts +96 -0
- package/src/store/task/disk.ts +46 -2
- package/src/store/task/memory.ts +13 -3
- package/src/tools/admit-facts.ts +145 -0
- package/src/tools/builtins/bash.ts +132 -24
- package/src/tools/builtins/edit.ts +42 -0
- package/src/tools/builtins/file-write-result.ts +14 -0
- package/src/tools/builtins/glob.ts +12 -0
- package/src/tools/builtins/grep.ts +14 -0
- package/src/tools/builtins/index.ts +2 -0
- package/src/tools/builtins/job.ts +4 -1
- package/src/tools/builtins/read-file.ts +57 -0
- package/src/tools/builtins/view-image.ts +409 -0
- package/src/tools/builtins/wait-for-job-bounds.ts +45 -7
- package/src/tools/builtins/wait-for-job.ts +159 -36
- package/src/tools/builtins/write-file.ts +4 -2
- package/src/tools/command-shell.ts +132 -5
- package/src/tools/coordinator/agent.ts +9 -19
- package/src/tools/coordinator/index.ts +150 -75
- package/src/tools/coordinator/wait-with-idle-bound.ts +3 -1
- package/src/tools/defineTool.ts +4 -0
- package/src/tools/failure-facts.ts +24 -0
- package/src/tools/host-output.ts +136 -0
- package/src/tools/memory/delete.ts +33 -3
- package/src/tools/memory/read.ts +35 -2
- package/src/tools/memory/search.ts +38 -7
- package/src/tools/memory/update.ts +28 -3
- package/src/tools/oem-code-pages.ts +22 -0
- package/src/tools/schedules/schedule-tool.ts +38 -5
- package/src/tools/schedules/types.ts +23 -3
- package/src/tools/task/list.ts +15 -7
- package/src/tools/task/present.ts +37 -7
- package/src/tools/task/update.ts +12 -5
- package/src/tools/text-window.ts +87 -0
- package/src/toolsets/manager.ts +132 -2
- package/src/turn/memory-recall.ts +5 -1
- package/src/types/acp/index.ts +150 -4
- package/src/types/agent/base.ts +3 -0
- package/src/types/agent/manager.ts +8 -23
- package/src/types/agent/scheduler.ts +10 -1
- package/src/types/agent/task.ts +4 -0
- package/src/types/connector/mcp.ts +7 -0
- package/src/types/errors/catalog.ts +4 -2
- package/src/types/harness/schema.ts +203 -0
- package/src/types/harness/session.ts +306 -0
- package/src/types/hitl/index.ts +17 -1
- package/src/types/job/index.ts +42 -0
- package/src/types/memory/index.ts +43 -0
- package/src/types/message/inbound-delivery.ts +63 -0
- package/src/types/message/index.ts +8 -1
- package/src/types/plugin/index.ts +11 -6
- package/src/types/sandbox/index.ts +46 -0
- package/src/types/session/checkpoint.ts +4 -1
- package/src/types/session/events.ts +23 -1
- package/src/types/session/records.ts +114 -2
- package/src/types/session/step.ts +2 -0
- package/src/types/session/store.ts +23 -9
- package/src/types/session/tool-execution.ts +6 -0
- package/src/types/structured-output/index.ts +13 -2
- package/src/types/summary/ref.ts +3 -1
- package/src/types/tool/index.ts +39 -5
- package/src/types/tool/presentation.ts +121 -0
- package/src/utils/json-snapshot.ts +26 -9
- package/src/utils/structured-result-json.ts +10 -0
|
@@ -144,8 +144,10 @@ export const DEFAULT_ERROR_RULES: readonly ErrorCatalogRule[] = [
|
|
|
144
144
|
// separates them when the provider sent it.
|
|
145
145
|
id: 'provider.permission',
|
|
146
146
|
when: (facts) => facts.status === 403,
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
// A 403 says the request was refused, not that a key was accepted: some providers answer
|
|
148
|
+
// a request that carried no key at all (a keyless free tier) with the same status.
|
|
149
|
+
message: 'The provider refused this request.',
|
|
150
|
+
hint: 'Check the model name and whether the account behind your key has access to it. If no key was sent, add one or choose another provider.',
|
|
149
151
|
},
|
|
150
152
|
{
|
|
151
153
|
id: 'provider.auth',
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import { isEntityId } from '../../utils/id.js'
|
|
3
|
+
import type { MessageId, TurnId } from '../ids/index.js'
|
|
4
|
+
import type { HarnessEvent, HarnessJson } from './session.js'
|
|
5
|
+
|
|
6
|
+
const opaque = z
|
|
7
|
+
.string()
|
|
8
|
+
.min(1)
|
|
9
|
+
.max(4096)
|
|
10
|
+
.refine((v) => !Array.from(v).some((c) => c.charCodeAt(0) < 32))
|
|
11
|
+
const text = z.string().max(1024 * 1024)
|
|
12
|
+
const digest = z.string().regex(/^[a-f0-9]{64}$/)
|
|
13
|
+
const turnId = z.custom<TurnId>((v) => isEntityId(v, 'turn'))
|
|
14
|
+
const messageId = z.custom<MessageId>((v) => isEntityId(v, 'message'))
|
|
15
|
+
|
|
16
|
+
function validJson(value: unknown, depth = 0, budget = { nodes: 0 }): boolean {
|
|
17
|
+
if (depth > 32 || ++budget.nodes > 50000) return false
|
|
18
|
+
if (value === null || typeof value === 'boolean') return true
|
|
19
|
+
if (typeof value === 'number') return Number.isFinite(value)
|
|
20
|
+
if (typeof value === 'string') return value.length <= 1024 * 1024
|
|
21
|
+
if (Array.isArray(value)) return value.every((v) => validJson(v, depth + 1, budget))
|
|
22
|
+
if (typeof value !== 'object' || Object.getPrototypeOf(value) !== Object.prototype) return false
|
|
23
|
+
return Object.entries(value).every(
|
|
24
|
+
([k, v]) => k.length <= 4096 && validJson(v, depth + 1, budget),
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
const json = z
|
|
28
|
+
.custom<HarnessJson>((v) => validJson(v))
|
|
29
|
+
.refine((v) => JSON.stringify(v).length <= 1024 * 1024)
|
|
30
|
+
|
|
31
|
+
export const HarnessBindingSchema = z
|
|
32
|
+
.object({
|
|
33
|
+
v: z.literal(1),
|
|
34
|
+
engineId: opaque,
|
|
35
|
+
profileRef: opaque,
|
|
36
|
+
nativeSessionId: opaque,
|
|
37
|
+
cwd: opaque,
|
|
38
|
+
initialModel: opaque,
|
|
39
|
+
})
|
|
40
|
+
.strict()
|
|
41
|
+
const nativeTurn = {
|
|
42
|
+
nativeSessionId: opaque,
|
|
43
|
+
nativeTurnId: opaque,
|
|
44
|
+
turnIdSource: z.enum(['engine', 'operation']).optional(),
|
|
45
|
+
}
|
|
46
|
+
const nativeItem = { ...nativeTurn, nativeItemId: opaque }
|
|
47
|
+
export const HarnessNativeTurnSchema = z.object(nativeTurn).strict()
|
|
48
|
+
export const HarnessReviewRequestSchema = z
|
|
49
|
+
.object({
|
|
50
|
+
...nativeTurn,
|
|
51
|
+
requestId: opaque,
|
|
52
|
+
nativeItemId: opaque.optional(),
|
|
53
|
+
kind: z.enum(['command', 'file-change', 'tool']),
|
|
54
|
+
title: opaque,
|
|
55
|
+
input: json,
|
|
56
|
+
decisions: z
|
|
57
|
+
.array(z.enum(['approve-once', 'reject', 'cancel']))
|
|
58
|
+
.min(1)
|
|
59
|
+
.max(3),
|
|
60
|
+
})
|
|
61
|
+
.strict()
|
|
62
|
+
export const HarnessDecisionSchema = z.discriminatedUnion('kind', [
|
|
63
|
+
z.object({ kind: z.literal('approve-once'), updatedInput: json.optional() }).strict(),
|
|
64
|
+
z.object({ kind: z.literal('reject'), feedback: text.optional() }).strict(),
|
|
65
|
+
z.object({ kind: z.literal('cancel') }).strict(),
|
|
66
|
+
])
|
|
67
|
+
const part = z
|
|
68
|
+
.object({ id: opaque, text, phase: z.enum(['commentary', 'final_answer']).optional() })
|
|
69
|
+
.strict()
|
|
70
|
+
export const HarnessEventSchema: z.ZodType<HarnessEvent> = z.discriminatedUnion('kind', [
|
|
71
|
+
z.object({ kind: z.literal('turn-started'), ...nativeTurn, model: opaque.optional() }).strict(),
|
|
72
|
+
z.object({ kind: z.literal('message-started'), ...nativeItem }).strict(),
|
|
73
|
+
z
|
|
74
|
+
.object({
|
|
75
|
+
kind: z.literal('text-delta'),
|
|
76
|
+
...nativeItem,
|
|
77
|
+
text,
|
|
78
|
+
part: part.omit({ text: true }).optional(),
|
|
79
|
+
})
|
|
80
|
+
.strict(),
|
|
81
|
+
z
|
|
82
|
+
.object({
|
|
83
|
+
kind: z.literal('message-completed'),
|
|
84
|
+
...nativeItem,
|
|
85
|
+
content: text,
|
|
86
|
+
parts: z.array(part).max(10000).optional(),
|
|
87
|
+
stopReason: z.enum([
|
|
88
|
+
'end_turn',
|
|
89
|
+
'tool_use',
|
|
90
|
+
'max_tokens',
|
|
91
|
+
'stop_sequence',
|
|
92
|
+
'pause_turn',
|
|
93
|
+
'refusal',
|
|
94
|
+
'forced_finalize',
|
|
95
|
+
'cancelled',
|
|
96
|
+
]),
|
|
97
|
+
})
|
|
98
|
+
.strict(),
|
|
99
|
+
z
|
|
100
|
+
.object({
|
|
101
|
+
kind: z.literal('reasoning'),
|
|
102
|
+
...nativeItem,
|
|
103
|
+
blockId: opaque,
|
|
104
|
+
status: z.enum(['pending', 'completed']),
|
|
105
|
+
text: text.optional(),
|
|
106
|
+
})
|
|
107
|
+
.strict(),
|
|
108
|
+
z.object({ kind: z.literal('tool-started'), ...nativeItem, name: opaque, input: json }).strict(),
|
|
109
|
+
z.object({ kind: z.literal('tool-output'), ...nativeItem, text }).strict(),
|
|
110
|
+
z
|
|
111
|
+
.object({
|
|
112
|
+
kind: z.literal('tool-completed'),
|
|
113
|
+
...nativeItem,
|
|
114
|
+
name: opaque,
|
|
115
|
+
result: text,
|
|
116
|
+
status: z.enum(['completed', 'failed', 'declined', 'cancelled']),
|
|
117
|
+
durationMs: z.number().int().nonnegative().safe().optional(),
|
|
118
|
+
})
|
|
119
|
+
.strict(),
|
|
120
|
+
z.object({ kind: z.literal('review-requested'), request: HarnessReviewRequestSchema }).strict(),
|
|
121
|
+
z.object({ kind: z.literal('review-resolved'), ...nativeTurn, requestId: opaque }).strict(),
|
|
122
|
+
z
|
|
123
|
+
.object({
|
|
124
|
+
kind: z.literal('turn-completed'),
|
|
125
|
+
...nativeTurn,
|
|
126
|
+
status: z.enum(['completed', 'failed', 'cancelled']),
|
|
127
|
+
finalItemId: opaque.optional(),
|
|
128
|
+
result: text.optional(),
|
|
129
|
+
error: z.object({ code: opaque, message: text }).strict().optional(),
|
|
130
|
+
})
|
|
131
|
+
.strict(),
|
|
132
|
+
z
|
|
133
|
+
.object({ kind: z.literal('connection-lost'), code: opaque, mayBeRunning: z.boolean() })
|
|
134
|
+
.strict(),
|
|
135
|
+
])
|
|
136
|
+
|
|
137
|
+
export const HarnessJournalTransitionSchema = z.discriminatedUnion('kind', [
|
|
138
|
+
z
|
|
139
|
+
.object({
|
|
140
|
+
kind: z.literal('dispatch-prepared'),
|
|
141
|
+
model: opaque.optional(),
|
|
142
|
+
effort: z
|
|
143
|
+
.enum(['none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max', 'ultra'])
|
|
144
|
+
.optional(),
|
|
145
|
+
permissionMode: z.enum(['prompt', 'auto', 'accept-edits', 'plan', 'strict']).optional(),
|
|
146
|
+
operationId: opaque,
|
|
147
|
+
turnId,
|
|
148
|
+
promptId: messageId,
|
|
149
|
+
digest,
|
|
150
|
+
})
|
|
151
|
+
.strict(),
|
|
152
|
+
z
|
|
153
|
+
.object({
|
|
154
|
+
kind: z.literal('dispatch-accepted'),
|
|
155
|
+
operationId: opaque,
|
|
156
|
+
turnId,
|
|
157
|
+
nativeTurn: HarnessNativeTurnSchema,
|
|
158
|
+
})
|
|
159
|
+
.strict(),
|
|
160
|
+
z
|
|
161
|
+
.object({
|
|
162
|
+
kind: z.literal('item-bound'),
|
|
163
|
+
turnId,
|
|
164
|
+
nativeItem: z.object(nativeItem).strict(),
|
|
165
|
+
messageId: messageId.optional(),
|
|
166
|
+
toolUseId: opaque.optional(),
|
|
167
|
+
})
|
|
168
|
+
.strict(),
|
|
169
|
+
z
|
|
170
|
+
.object({
|
|
171
|
+
kind: z.literal('review-requested'),
|
|
172
|
+
turnId,
|
|
173
|
+
request: HarnessReviewRequestSchema,
|
|
174
|
+
digest,
|
|
175
|
+
})
|
|
176
|
+
.strict(),
|
|
177
|
+
z
|
|
178
|
+
.object({
|
|
179
|
+
kind: z.literal('review-decided'),
|
|
180
|
+
turnId,
|
|
181
|
+
requestId: opaque,
|
|
182
|
+
requestDigest: digest,
|
|
183
|
+
decisionDigest: digest,
|
|
184
|
+
decision: HarnessDecisionSchema,
|
|
185
|
+
})
|
|
186
|
+
.strict(),
|
|
187
|
+
z.object({ kind: z.literal('review-resolved'), turnId, requestId: opaque }).strict(),
|
|
188
|
+
z
|
|
189
|
+
.object({ kind: z.literal('connection-lost'), turnId: turnId.optional(), code: opaque })
|
|
190
|
+
.strict(),
|
|
191
|
+
])
|
|
192
|
+
|
|
193
|
+
/** Clone at ingress, before any host callback can suspend, and freeze every nested value. */
|
|
194
|
+
export function harnessSnapshot<T>(value: T): T {
|
|
195
|
+
const copy = structuredClone(value)
|
|
196
|
+
const freeze = (v: unknown): void => {
|
|
197
|
+
if (!v || typeof v !== 'object') return
|
|
198
|
+
for (const entry of Object.values(v)) freeze(entry)
|
|
199
|
+
Object.freeze(v)
|
|
200
|
+
}
|
|
201
|
+
freeze(copy)
|
|
202
|
+
return copy
|
|
203
|
+
}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import type { ReviewMode } from '../../runtime/query/review-policy.js'
|
|
2
|
+
import type { SessionLog } from '../../store/session-log/index.js'
|
|
3
|
+
/**
|
|
4
|
+
* A session whose execution and tools belong to a host-composed external harness.
|
|
5
|
+
* SDK code contains no vendor import, process runner or credential discovery.
|
|
6
|
+
* Existing Namzu query/LLMProvider/tool execution is unchanged.
|
|
7
|
+
*/
|
|
8
|
+
import type {
|
|
9
|
+
MessageId,
|
|
10
|
+
ProjectId,
|
|
11
|
+
SessionId,
|
|
12
|
+
TenantId,
|
|
13
|
+
ToolUseId,
|
|
14
|
+
TopicId,
|
|
15
|
+
TurnId,
|
|
16
|
+
} from '../ids/index.js'
|
|
17
|
+
import type { Message } from '../message/index.js'
|
|
18
|
+
import type { ReasoningEffort } from '../provider/index.js'
|
|
19
|
+
import type { SessionEvent } from '../session/events.js'
|
|
20
|
+
|
|
21
|
+
export type HarnessJson =
|
|
22
|
+
| null
|
|
23
|
+
| boolean
|
|
24
|
+
| number
|
|
25
|
+
| string
|
|
26
|
+
| readonly HarnessJson[]
|
|
27
|
+
| { readonly [key: string]: HarnessJson }
|
|
28
|
+
|
|
29
|
+
/** Native IDs remain opaque strings and are NEVER parsed as Namzu UUIDs. */
|
|
30
|
+
export interface HarnessBinding {
|
|
31
|
+
readonly v: 1
|
|
32
|
+
readonly engineId: string
|
|
33
|
+
/** Host-owned opaque identity for executable/state-home/account selection; no credentials. */
|
|
34
|
+
readonly profileRef: string
|
|
35
|
+
/** Exact native conversation/thread identifier, not a shared root or Namzu session ID. */
|
|
36
|
+
readonly nativeSessionId: string
|
|
37
|
+
/** Canonical absolute native execution directory, confirmed by the adapter. */
|
|
38
|
+
readonly cwd: string
|
|
39
|
+
/** Verified initial selection; later changes are captured per turn, never engine changes. */
|
|
40
|
+
readonly initialModel: string
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface HarnessScope {
|
|
44
|
+
readonly sessionId: SessionId
|
|
45
|
+
readonly tenantId: TenantId
|
|
46
|
+
readonly projectId: ProjectId
|
|
47
|
+
readonly topicId: TopicId
|
|
48
|
+
readonly cwd: string
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Values established from the installed engine/protocol, never copied from Namzu providers. */
|
|
52
|
+
export interface HarnessCapabilities {
|
|
53
|
+
readonly persistentSessions: boolean
|
|
54
|
+
readonly history: 'snapshot' | 'unavailable'
|
|
55
|
+
readonly models: 'discover' | 'configured' | 'unavailable'
|
|
56
|
+
readonly permissions: 'interactive' | 'deny-only' | 'unavailable'
|
|
57
|
+
readonly interrupt: 'native-terminal' | 'process-stop' | 'unavailable'
|
|
58
|
+
readonly attachments: readonly ('image' | 'file')[]
|
|
59
|
+
readonly effortLevels?: readonly ReasoningEffort[]
|
|
60
|
+
/** Common UI may offer only modes actually mapped by this engine. */
|
|
61
|
+
readonly reviewModes: readonly ReviewMode[]
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface HarnessModel {
|
|
65
|
+
readonly id: string
|
|
66
|
+
readonly label: string
|
|
67
|
+
readonly effortLevels?: readonly ReasoningEffort[]
|
|
68
|
+
readonly defaultEffort?: ReasoningEffort
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export interface HarnessNativeTurn {
|
|
72
|
+
readonly nativeSessionId: string
|
|
73
|
+
readonly nativeTurnId: string
|
|
74
|
+
/** Explicit operation correlation when the engine exposes no native turn ID. */
|
|
75
|
+
readonly turnIdSource?: 'engine' | 'operation'
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export interface HarnessNativeItem extends HarnessNativeTurn {
|
|
79
|
+
readonly nativeItemId: string
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface HarnessPublicTextPart {
|
|
83
|
+
readonly id: string
|
|
84
|
+
readonly text: string
|
|
85
|
+
readonly phase?: 'commentary' | 'final_answer'
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export type HarnessDecision =
|
|
89
|
+
| { readonly kind: 'approve-once'; readonly updatedInput?: HarnessJson }
|
|
90
|
+
| { readonly kind: 'reject'; readonly feedback?: string }
|
|
91
|
+
| { readonly kind: 'cancel' }
|
|
92
|
+
|
|
93
|
+
export interface HarnessReviewRequest extends HarnessNativeTurn {
|
|
94
|
+
readonly requestId: string
|
|
95
|
+
readonly nativeItemId?: string
|
|
96
|
+
readonly kind: 'command' | 'file-change' | 'tool'
|
|
97
|
+
readonly title: string
|
|
98
|
+
/** Public proposed operation only. No raw RPC frame, credentials or private thinking. */
|
|
99
|
+
readonly input: HarnessJson
|
|
100
|
+
readonly decisions: readonly HarnessDecision['kind'][]
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** A NEW, namespaced port union. No new existing SessionEvent discriminants. */
|
|
104
|
+
export type HarnessEvent =
|
|
105
|
+
| (HarnessNativeTurn & { readonly kind: 'turn-started'; readonly model?: string })
|
|
106
|
+
| (HarnessNativeItem & { readonly kind: 'message-started' })
|
|
107
|
+
| (HarnessNativeItem & {
|
|
108
|
+
readonly kind: 'text-delta'
|
|
109
|
+
readonly text: string
|
|
110
|
+
readonly part?: Pick<HarnessPublicTextPart, 'id' | 'phase'>
|
|
111
|
+
})
|
|
112
|
+
| (HarnessNativeItem & {
|
|
113
|
+
readonly kind: 'message-completed'
|
|
114
|
+
readonly content: string
|
|
115
|
+
readonly parts?: readonly HarnessPublicTextPart[]
|
|
116
|
+
readonly stopReason: import('../session/stop-reason.js').MessageStopReason
|
|
117
|
+
})
|
|
118
|
+
| (HarnessNativeItem & {
|
|
119
|
+
readonly kind: 'reasoning'
|
|
120
|
+
readonly blockId: string
|
|
121
|
+
readonly status: 'pending' | 'completed'
|
|
122
|
+
/** Only engine-documented public summary/thinking; never replay/signature material. */
|
|
123
|
+
readonly text?: string
|
|
124
|
+
})
|
|
125
|
+
| (HarnessNativeItem & {
|
|
126
|
+
readonly kind: 'tool-started'
|
|
127
|
+
readonly name: string
|
|
128
|
+
readonly input: HarnessJson
|
|
129
|
+
})
|
|
130
|
+
| (HarnessNativeItem & { readonly kind: 'tool-output'; readonly text: string })
|
|
131
|
+
| (HarnessNativeItem & {
|
|
132
|
+
readonly kind: 'tool-completed'
|
|
133
|
+
readonly name: string
|
|
134
|
+
readonly result: string
|
|
135
|
+
readonly status: 'completed' | 'failed' | 'declined' | 'cancelled'
|
|
136
|
+
readonly durationMs?: number
|
|
137
|
+
})
|
|
138
|
+
| { readonly kind: 'review-requested'; readonly request: HarnessReviewRequest }
|
|
139
|
+
| (HarnessNativeTurn & { readonly kind: 'review-resolved'; readonly requestId: string })
|
|
140
|
+
| (HarnessNativeTurn & {
|
|
141
|
+
readonly kind: 'turn-completed'
|
|
142
|
+
readonly status: 'completed' | 'failed' | 'cancelled'
|
|
143
|
+
readonly finalItemId?: string
|
|
144
|
+
readonly result?: string
|
|
145
|
+
readonly error?: { readonly code: string; readonly message: string }
|
|
146
|
+
})
|
|
147
|
+
| {
|
|
148
|
+
readonly kind: 'connection-lost'
|
|
149
|
+
readonly code: string
|
|
150
|
+
/** True never implies that native work stopped. */
|
|
151
|
+
readonly mayBeRunning: boolean
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/** Resolve after validation/persistence/publication, never await a human answer here. */
|
|
155
|
+
export type HarnessEventSink = (event: HarnessEvent) => Promise<void>
|
|
156
|
+
|
|
157
|
+
export interface HarnessPrompt {
|
|
158
|
+
/** Actual host operation identity for this admitted prompt, persisted before send. */
|
|
159
|
+
readonly operationId: string
|
|
160
|
+
readonly prompt: string
|
|
161
|
+
readonly model: string
|
|
162
|
+
readonly effort?: ReasoningEffort
|
|
163
|
+
readonly permissionMode: ReviewMode
|
|
164
|
+
readonly signal?: AbortSignal
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export interface HarnessHistorySnapshot {
|
|
168
|
+
readonly binding: HarnessBinding
|
|
169
|
+
readonly activeTurn?: HarnessNativeTurn
|
|
170
|
+
/** Authoritative lifecycle/items, not byte-for-byte replay of ephemeral deltas. */
|
|
171
|
+
readonly events: readonly Exclude<
|
|
172
|
+
HarnessEvent,
|
|
173
|
+
{ readonly kind: 'text-delta' | 'tool-output' | 'connection-lost' }
|
|
174
|
+
>[]
|
|
175
|
+
readonly pendingReviews: readonly HarnessReviewRequest[]
|
|
176
|
+
readonly complete: boolean
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export interface HarnessConnection {
|
|
180
|
+
readonly binding: HarnessBinding
|
|
181
|
+
readonly capabilities: HarnessCapabilities
|
|
182
|
+
models(signal?: AbortSignal): Promise<readonly HarnessModel[]>
|
|
183
|
+
/** ACK may follow terminal event. It must not resurrect a finished turn. */
|
|
184
|
+
dispatch(input: HarnessPrompt): Promise<HarnessNativeTurn>
|
|
185
|
+
/** Receipt means requested only; SDK waits for correlated terminal/confirmed owned stop. */
|
|
186
|
+
interrupt(turn: HarnessNativeTurn): Promise<{ readonly requested: true }>
|
|
187
|
+
/** Validate exact current native request, then send one of that request's decisions. */
|
|
188
|
+
respond(
|
|
189
|
+
request: HarnessReviewRequest,
|
|
190
|
+
decision: HarnessDecision,
|
|
191
|
+
): Promise<{ readonly sent: true }>
|
|
192
|
+
/** Never resends a prompt. Absence/incomplete history leaves explicit reconciliation required. */
|
|
193
|
+
readHistory(signal?: AbortSignal): Promise<HarnessHistorySnapshot>
|
|
194
|
+
/** Success confirms own process/children stopped; rejection retains handle for retry. */
|
|
195
|
+
close(): Promise<{ readonly stopped: true }>
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
export interface HarnessAdapter {
|
|
199
|
+
readonly engineId: string
|
|
200
|
+
readonly profileRef: string
|
|
201
|
+
/** Subscribe BEFORE spawn/initialize/open/resume so early items/requests cannot be lost. */
|
|
202
|
+
open(
|
|
203
|
+
input: {
|
|
204
|
+
readonly cwd: string
|
|
205
|
+
readonly model?: string
|
|
206
|
+
readonly resume?: HarnessBinding
|
|
207
|
+
readonly signal?: AbortSignal
|
|
208
|
+
},
|
|
209
|
+
onEvent: HarnessEventSink,
|
|
210
|
+
): Promise<HarnessConnection>
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
export interface HarnessAdmissionRequest {
|
|
214
|
+
readonly kind: 'open' | 'run' | 'approval' | 'reconnect'
|
|
215
|
+
readonly scope: HarnessScope
|
|
216
|
+
readonly binding?: HarnessBinding
|
|
217
|
+
readonly nativeTurn?: HarnessNativeTurn
|
|
218
|
+
readonly review?: HarnessReviewRequest
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export interface HarnessSessionOptions {
|
|
222
|
+
readonly scope: HarnessScope
|
|
223
|
+
readonly sessionLog: SessionLog
|
|
224
|
+
readonly adapter: HarnessAdapter
|
|
225
|
+
/** REQUIRED current trusted host boundary: canonical cwd/trust/user ownership, ordinary only. */
|
|
226
|
+
readonly assertAdmission: (
|
|
227
|
+
request: HarnessAdmissionRequest,
|
|
228
|
+
signal?: AbortSignal,
|
|
229
|
+
) => Promise<void>
|
|
230
|
+
readonly onEvent: (event: SessionEvent) => void | Promise<void>
|
|
231
|
+
readonly onReview: (request: HarnessReviewRequest) => void | Promise<void>
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export interface HarnessTurnOutcome {
|
|
235
|
+
readonly turnId: TurnId
|
|
236
|
+
readonly nativeTurn: HarnessNativeTurn
|
|
237
|
+
readonly status: 'completed' | 'failed' | 'cancelled'
|
|
238
|
+
readonly messages: readonly Message[]
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export interface HarnessSession {
|
|
242
|
+
readonly scope: HarnessScope
|
|
243
|
+
readonly binding: HarnessBinding | undefined
|
|
244
|
+
/** Exact admitted turn pointer for host cancellation; never a model-supplied ID. */
|
|
245
|
+
readonly currentTurnId: TurnId | undefined
|
|
246
|
+
readonly status:
|
|
247
|
+
| 'disconnected'
|
|
248
|
+
| 'idle'
|
|
249
|
+
| 'running'
|
|
250
|
+
| 'waiting'
|
|
251
|
+
| 'reconciliation-required'
|
|
252
|
+
| 'closed'
|
|
253
|
+
/** Public durable text only; no native process startup. */
|
|
254
|
+
history(): Promise<readonly Message[]>
|
|
255
|
+
/** Reject concurrent turn operations. CLI/desktop owns its visible queue. */
|
|
256
|
+
run(input: Omit<HarnessPrompt, 'operationId'>): Promise<HarnessTurnOutcome>
|
|
257
|
+
/** Exact expected turn pointer prevents a stale Stop from cancelling the next turn. */
|
|
258
|
+
cancel(expectedTurnId: TurnId): Promise<{ readonly stopped: true; readonly turnId: TurnId }>
|
|
259
|
+
/** SDK adds current writer generation/request digest internally; renderer cannot supply authority. */
|
|
260
|
+
respond(request: HarnessReviewRequest, decision: HarnessDecision): Promise<void>
|
|
261
|
+
reconnect(signal?: AbortSignal): Promise<void>
|
|
262
|
+
close(): Promise<void>
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/** Typed journal receipts stored in the existing session_updated record. */
|
|
266
|
+
export type HarnessJournalTransition =
|
|
267
|
+
| {
|
|
268
|
+
readonly kind: 'dispatch-prepared'
|
|
269
|
+
/** Actual admitted selection; engine binding remains immutable. */
|
|
270
|
+
readonly model?: string
|
|
271
|
+
readonly effort?: ReasoningEffort
|
|
272
|
+
readonly permissionMode?: ReviewMode
|
|
273
|
+
readonly operationId: string
|
|
274
|
+
readonly turnId: TurnId
|
|
275
|
+
readonly promptId: MessageId
|
|
276
|
+
readonly digest: string
|
|
277
|
+
}
|
|
278
|
+
| {
|
|
279
|
+
readonly kind: 'dispatch-accepted'
|
|
280
|
+
readonly operationId: string
|
|
281
|
+
readonly turnId: TurnId
|
|
282
|
+
readonly nativeTurn: HarnessNativeTurn
|
|
283
|
+
}
|
|
284
|
+
| {
|
|
285
|
+
readonly kind: 'item-bound'
|
|
286
|
+
readonly turnId: TurnId
|
|
287
|
+
readonly nativeItem: HarnessNativeItem
|
|
288
|
+
readonly messageId?: MessageId
|
|
289
|
+
readonly toolUseId?: ToolUseId
|
|
290
|
+
}
|
|
291
|
+
| {
|
|
292
|
+
readonly kind: 'review-requested'
|
|
293
|
+
readonly turnId: TurnId
|
|
294
|
+
readonly request: HarnessReviewRequest
|
|
295
|
+
readonly digest: string
|
|
296
|
+
}
|
|
297
|
+
| {
|
|
298
|
+
readonly kind: 'review-decided'
|
|
299
|
+
readonly turnId: TurnId
|
|
300
|
+
readonly requestId: string
|
|
301
|
+
readonly requestDigest: string
|
|
302
|
+
readonly decisionDigest: string
|
|
303
|
+
readonly decision: HarnessDecision
|
|
304
|
+
}
|
|
305
|
+
| { readonly kind: 'review-resolved'; readonly turnId: TurnId; readonly requestId: string }
|
|
306
|
+
| { readonly kind: 'connection-lost'; readonly turnId?: TurnId; readonly code: string }
|
package/src/types/hitl/index.ts
CHANGED
|
@@ -3,6 +3,12 @@ import type { CheckpointId, PlanId, SessionId, TurnId } from '../ids/index.js'
|
|
|
3
3
|
|
|
4
4
|
export type { CheckpointId }
|
|
5
5
|
|
|
6
|
+
/** A person's No to a tool call. See the `declined` field of `reject_tools`. */
|
|
7
|
+
export interface ToolCallDeclined {
|
|
8
|
+
/** What the person said about it, in their own words. */
|
|
9
|
+
readonly note?: string
|
|
10
|
+
}
|
|
11
|
+
|
|
6
12
|
export type HITLResumeDecision =
|
|
7
13
|
| { action: 'continue' }
|
|
8
14
|
| { action: 'approve_plan'; feedback?: string }
|
|
@@ -56,7 +62,17 @@ export type HITLResumeDecision =
|
|
|
56
62
|
/** See the `approve_tools` field of the same name. */
|
|
57
63
|
confirmedEscalations?: readonly string[]
|
|
58
64
|
}
|
|
59
|
-
| {
|
|
65
|
+
| {
|
|
66
|
+
action: 'reject_tools'
|
|
67
|
+
feedback: string
|
|
68
|
+
/**
|
|
69
|
+
* Present only when a person answered No. `feedback` is what the
|
|
70
|
+
* MODEL is told and a policy refusal fills it too, so it cannot say
|
|
71
|
+
* who refused; this does. `note` is the person's own words, apart
|
|
72
|
+
* from any wrapper a host put around them in `feedback`.
|
|
73
|
+
*/
|
|
74
|
+
declined?: ToolCallDeclined
|
|
75
|
+
}
|
|
60
76
|
| {
|
|
61
77
|
action: 'answer_question'
|
|
62
78
|
selectedOptionIds: string[]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** A literal condition on one existing background job's output. */
|
|
2
|
+
export interface BackgroundJobOutputWaitOptions {
|
|
3
|
+
/** Non-empty UTF-8 literal, at most 4096 bytes. Never a regular expression. */
|
|
4
|
+
readonly literal: string
|
|
5
|
+
/** Match each pipe independently; `either` never joins stdout to stderr. */
|
|
6
|
+
readonly stream?: 'stdout' | 'stderr' | 'either'
|
|
7
|
+
/** Combined output byte cursor, as returned by `read` or an earlier wait. */
|
|
8
|
+
readonly fromOffset?: number
|
|
9
|
+
/** Required wall bound, from 1 millisecond through one hour. */
|
|
10
|
+
readonly timeoutMs: number
|
|
11
|
+
/** Optional silence bound, reset by output from either pipe. */
|
|
12
|
+
readonly idleTimeoutMs?: number
|
|
13
|
+
/** Cancels this observation, without stopping the process. */
|
|
14
|
+
readonly signal?: AbortSignal
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Evidence and cursor common to every readiness wait outcome. */
|
|
18
|
+
export interface BackgroundJobOutputWaitProgress {
|
|
19
|
+
readonly status: string
|
|
20
|
+
readonly exitCode?: number
|
|
21
|
+
/** Why the command never started, when it could not. */
|
|
22
|
+
readonly error?: string
|
|
23
|
+
/** Mixed stdout/stderr tail, at most 32 KiB. Treat process output as untrusted. */
|
|
24
|
+
readonly output: string
|
|
25
|
+
readonly nextOffset: number
|
|
26
|
+
/** Bytes unavailable because the job's normal output cap discarded them. */
|
|
27
|
+
readonly droppedBytes: number
|
|
28
|
+
/** Available output excluded from matching by the bounded channel history. */
|
|
29
|
+
readonly unsearchedBytes: number
|
|
30
|
+
/** Earlier observed bytes omitted from the bounded result text. */
|
|
31
|
+
readonly omittedOutputBytes: number
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** A matched marker proves its appearance, not process completion or service health. */
|
|
35
|
+
export type BackgroundJobOutputWaitResult = BackgroundJobOutputWaitProgress &
|
|
36
|
+
(
|
|
37
|
+
| { readonly kind: 'matched'; readonly matchedStream: 'stdout' | 'stderr' }
|
|
38
|
+
| { readonly kind: 'exited' }
|
|
39
|
+
| { readonly kind: 'stopped' }
|
|
40
|
+
| { readonly kind: 'timeout'; readonly cause: 'wall' | 'idle'; readonly elapsedMs: number }
|
|
41
|
+
| { readonly kind: 'aborted' }
|
|
42
|
+
)
|
|
@@ -80,6 +80,11 @@ export interface MemoryRecord {
|
|
|
80
80
|
readonly content: MemoryContent
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
/** A full record and an opaque token for that exact logical snapshot. */
|
|
84
|
+
export interface VersionedMemoryRecord extends MemoryRecord {
|
|
85
|
+
readonly revision: string
|
|
86
|
+
}
|
|
87
|
+
|
|
83
88
|
export interface MemorySearchParams {
|
|
84
89
|
readonly query?: string
|
|
85
90
|
readonly tags?: string[]
|
|
@@ -87,11 +92,22 @@ export interface MemorySearchParams {
|
|
|
87
92
|
readonly limit?: number
|
|
88
93
|
/** Match at least one exact normalized word token before limiting results. Empty means no constraint. */
|
|
89
94
|
readonly requiredIdentifiers?: readonly string[]
|
|
95
|
+
/** Maximum indexed candidates to examine in one page; omitted scans all. */
|
|
96
|
+
readonly maxScanned?: number
|
|
97
|
+
/** Skip this many candidates in newest-first scan order; a new search starts at zero. */
|
|
98
|
+
readonly scanOffset?: number
|
|
90
99
|
}
|
|
91
100
|
|
|
92
101
|
export interface MemorySearchResult {
|
|
93
102
|
readonly entries: readonly MemoryIndexEntry[]
|
|
103
|
+
/** Exact unless truncated is true; then counts matches in the scanned candidates only. */
|
|
94
104
|
readonly totalCount: number
|
|
105
|
+
/** True when the search stopped before examining all eligible candidates. */
|
|
106
|
+
readonly truncated?: boolean
|
|
107
|
+
/** Number of eligible candidates examined in this page. */
|
|
108
|
+
readonly scannedCount?: number
|
|
109
|
+
/** Pass as scanOffset to inspect the next page; absent when this scan reached the end. */
|
|
110
|
+
readonly nextScanOffset?: number
|
|
95
111
|
}
|
|
96
112
|
|
|
97
113
|
export interface CreateMemoryParams {
|
|
@@ -128,6 +144,33 @@ export interface MemoryStore {
|
|
|
128
144
|
list(params?: MemorySearchParams): Promise<MemorySearchResult>
|
|
129
145
|
}
|
|
130
146
|
|
|
147
|
+
/**
|
|
148
|
+
* Opt-in compare-and-set operations. A supplied revision is checked together
|
|
149
|
+
* with the mutation, under the store's own coordination boundary. Implementing
|
|
150
|
+
* only one of these methods is not enough to advertise conditional writes.
|
|
151
|
+
*/
|
|
152
|
+
export interface ConditionalMemoryStore extends MemoryStore {
|
|
153
|
+
/** The record and a token covering its complete logical snapshot. */
|
|
154
|
+
getVersionedRecord(id: MemoryId): Promise<VersionedMemoryRecord | undefined>
|
|
155
|
+
/** Throw MemoryRevisionConflictError if the record changed or disappeared. */
|
|
156
|
+
updateIfRevision(
|
|
157
|
+
id: MemoryId,
|
|
158
|
+
updates: UpdateMemoryParams,
|
|
159
|
+
expectedRevision: string,
|
|
160
|
+
): Promise<MemoryIndexEntry>
|
|
161
|
+
/** Throw MemoryRevisionConflictError if the record changed or disappeared. */
|
|
162
|
+
deleteIfRevision(id: MemoryId, expectedRevision: string): Promise<void>
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export function hasConditionalMemoryWrites(store: MemoryStore): store is ConditionalMemoryStore {
|
|
166
|
+
const candidate = store as Partial<ConditionalMemoryStore>
|
|
167
|
+
return (
|
|
168
|
+
typeof candidate.getVersionedRecord === 'function' &&
|
|
169
|
+
typeof candidate.updateIfRevision === 'function' &&
|
|
170
|
+
typeof candidate.deleteIfRevision === 'function'
|
|
171
|
+
)
|
|
172
|
+
}
|
|
173
|
+
|
|
131
174
|
export interface MemoryIndex {
|
|
132
175
|
search(params: MemorySearchParams): MemorySearchResult
|
|
133
176
|
getEntry(id: MemoryId): MemoryIndexEntry | undefined
|