@namzu/sdk 49.0.0 → 50.1.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 +541 -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/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/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/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/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/provider/strict-schema.d.ts +28 -0
- package/dist/provider/strict-schema.d.ts.map +1 -1
- package/dist/provider/strict-schema.js +86 -0
- package/dist/provider/strict-schema.js.map +1 -1
- package/dist/public-runtime.d.ts +42 -14
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +36 -8
- 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/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 +351 -34
- 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 +3 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +21 -4
- 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 +144 -67
- 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 +61 -6
- package/dist/runtime/query/iteration/outstanding-work.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +4 -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 +99 -16
- package/dist/runtime/query/iteration/phases/tool-review.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/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 +46 -1
- 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 +2 -0
- package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -1
- package/dist/tools/builtins/wait-for-job-bounds.js +1 -0
- package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -1
- package/dist/tools/builtins/wait-for-job.d.ts +2 -0
- package/dist/tools/builtins/wait-for-job.d.ts.map +1 -1
- package/dist/tools/builtins/wait-for-job.js +104 -6
- 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/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 +11 -0
- package/dist/toolsets/manager.d.ts.map +1 -1
- package/dist/toolsets/manager.js +45 -1
- package/dist/toolsets/manager.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/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 +6 -6
- 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/connector/mcp/adapter.ts +16 -4
- package/src/connector/mcp/client.ts +6 -2
- 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/shell-hook.ts +8 -2
- package/src/process/kill-tree.ts +10 -1
- package/src/provider/errors.ts +135 -2
- package/src/provider/strict-schema.ts +90 -0
- package/src/public-runtime.ts +118 -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/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 +397 -41
- 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 +24 -4
- package/src/runtime/query/iteration/index.ts +218 -104
- package/src/runtime/query/iteration/outstanding-work.ts +55 -7
- package/src/runtime/query/iteration/phases/context.ts +4 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +118 -21
- 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/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 +54 -1
- 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 +3 -0
- package/src/tools/builtins/wait-for-job.ts +141 -32
- 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/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 +58 -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/message/inbound-delivery.ts +63 -0
- package/src/types/message/index.ts +8 -1
- 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
|
@@ -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
|
+
)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { SessionLogHead } from '../../store/session-log/core.js'
|
|
2
|
+
import type { MessageId, SessionId, TurnId } from '../ids/index.js'
|
|
3
|
+
import type { RuntimeContextMessageSource, UserMessage } from './index.js'
|
|
4
|
+
|
|
5
|
+
/** Host provenance only; this reference grants no operator authority. */
|
|
6
|
+
export interface InboundDeliveryRef {
|
|
7
|
+
readonly namespace: string
|
|
8
|
+
readonly id: string
|
|
9
|
+
readonly digest: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Bounded validation for persisted or JavaScript-authored delivery references. */
|
|
13
|
+
export function isInboundDeliveryRef(value: unknown): value is InboundDeliveryRef {
|
|
14
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) return false
|
|
15
|
+
const candidate = value as Record<string, unknown>
|
|
16
|
+
return ['namespace', 'id', 'digest'].every((key) => {
|
|
17
|
+
const field = candidate[key]
|
|
18
|
+
return (
|
|
19
|
+
typeof field === 'string' &&
|
|
20
|
+
field.length > 0 &&
|
|
21
|
+
field.length <= 512 &&
|
|
22
|
+
[...field].every(
|
|
23
|
+
(character) => character.charCodeAt(0) >= 32 && character.charCodeAt(0) !== 127,
|
|
24
|
+
)
|
|
25
|
+
)
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** Durable delivery carries host context and cannot acquire operator authority. */
|
|
30
|
+
export type DurableInboundMessage = UserMessage & {
|
|
31
|
+
readonly source: RuntimeContextMessageSource & {
|
|
32
|
+
readonly kind: Exclude<RuntimeContextMessageSource['kind'], 'steering'>
|
|
33
|
+
readonly deliveryRef: InboundDeliveryRef
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface InboundDeliveryClaim {
|
|
38
|
+
readonly claimId: string
|
|
39
|
+
readonly ref: InboundDeliveryRef
|
|
40
|
+
readonly message: DurableInboundMessage
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Exact ordinary session-log append, flushed before the host acknowledges it. */
|
|
44
|
+
export interface InboundDeliveryReceipt {
|
|
45
|
+
readonly claimId: string
|
|
46
|
+
readonly ref: InboundDeliveryRef
|
|
47
|
+
readonly sessionId: SessionId
|
|
48
|
+
readonly turnId: TurnId
|
|
49
|
+
readonly messageId: MessageId
|
|
50
|
+
readonly through: SessionLogHead
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Host-owned durable input. Claim, write and acknowledgement failures stop execution. */
|
|
54
|
+
export interface DurableInboundSource {
|
|
55
|
+
claim(context: {
|
|
56
|
+
readonly sessionId: SessionId
|
|
57
|
+
readonly turnId: TurnId
|
|
58
|
+
readonly signal: AbortSignal
|
|
59
|
+
}): Promise<readonly InboundDeliveryClaim[]>
|
|
60
|
+
recorded(receipts: readonly InboundDeliveryReceipt[]): Promise<void>
|
|
61
|
+
/** Wake only. An aborted wait must remove its listener. */
|
|
62
|
+
wait?(signal: AbortSignal): Promise<void>
|
|
63
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GoalId, MessageId } from '../ids/index.js'
|
|
2
|
+
import { type InboundDeliveryRef, isInboundDeliveryRef } from './inbound-delivery.js'
|
|
2
3
|
|
|
3
4
|
export type MessageRole = 'system' | 'user' | 'assistant' | 'tool'
|
|
4
5
|
|
|
@@ -350,6 +351,8 @@ export const RUNTIME_CONTEXT_MESSAGE_KINDS = [
|
|
|
350
351
|
'advisory',
|
|
351
352
|
'answer-review',
|
|
352
353
|
'auto-continuation',
|
|
354
|
+
'channel-message',
|
|
355
|
+
'host-observation',
|
|
353
356
|
'job-exit',
|
|
354
357
|
'limit-finalization',
|
|
355
358
|
'peer-message',
|
|
@@ -367,6 +370,8 @@ export type RuntimeContextMessageKind = (typeof RUNTIME_CONTEXT_MESSAGE_KINDS)[n
|
|
|
367
370
|
export interface RuntimeContextMessageSource {
|
|
368
371
|
readonly type: 'runtime-context'
|
|
369
372
|
readonly kind: RuntimeContextMessageKind
|
|
373
|
+
/** Optional durable host delivery identity; it never grants operator authority. */
|
|
374
|
+
readonly deliveryRef?: InboundDeliveryRef
|
|
370
375
|
}
|
|
371
376
|
|
|
372
377
|
export type UserMessageSource =
|
|
@@ -422,11 +427,13 @@ export function isRuntimeContextMessageSource(
|
|
|
422
427
|
const candidate = value as {
|
|
423
428
|
readonly type?: unknown
|
|
424
429
|
readonly kind?: unknown
|
|
430
|
+
readonly deliveryRef?: unknown
|
|
425
431
|
}
|
|
426
432
|
return (
|
|
427
433
|
candidate.type === 'runtime-context' &&
|
|
428
434
|
typeof candidate.kind === 'string' &&
|
|
429
|
-
(RUNTIME_CONTEXT_MESSAGE_KINDS as readonly string[]).includes(candidate.kind)
|
|
435
|
+
(RUNTIME_CONTEXT_MESSAGE_KINDS as readonly string[]).includes(candidate.kind) &&
|
|
436
|
+
(candidate.deliveryRef === undefined || isInboundDeliveryRef(candidate.deliveryRef))
|
|
430
437
|
)
|
|
431
438
|
}
|
|
432
439
|
|
|
@@ -226,6 +226,12 @@ export interface SandboxDetachedProcess {
|
|
|
226
226
|
readonly child: import('node:child_process').ChildProcess
|
|
227
227
|
/** Signal everything the sandbox started for this process, inside the boundary and out. */
|
|
228
228
|
kill(signal: NodeJS.Signals): void
|
|
229
|
+
/**
|
|
230
|
+
* Stop and confirm the entire owned process tree ended. Remote wrappers
|
|
231
|
+
* provide this when closing the host child alone cannot prove guest exit.
|
|
232
|
+
* Reject on an unconfirmed stop; retain ownership so the caller can retry.
|
|
233
|
+
*/
|
|
234
|
+
terminate?(signal?: NodeJS.Signals): Promise<void>
|
|
229
235
|
}
|
|
230
236
|
|
|
231
237
|
export interface SandboxSpawnOptions {
|
|
@@ -233,6 +239,39 @@ export interface SandboxSpawnOptions {
|
|
|
233
239
|
readonly env?: Record<string, string>
|
|
234
240
|
}
|
|
235
241
|
|
|
242
|
+
/** Host-selected guest process options; never inherits the operator environment. */
|
|
243
|
+
export interface SandboxStdioOptions extends SandboxSpawnOptions {
|
|
244
|
+
readonly signal?: AbortSignal
|
|
245
|
+
/** Rechecked at admission and before every write/operation, e.g. Pal writer/lifetime. */
|
|
246
|
+
readonly assertExecutionAllowed?: () => void | Promise<void>
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export interface SandboxStdioEvent {
|
|
250
|
+
readonly stream: 'stdout' | 'stderr'
|
|
251
|
+
readonly data: Uint8Array
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/** A trusted host's ownership barrier for one application request. */
|
|
255
|
+
export interface SandboxStdioOperation {
|
|
256
|
+
/** Call only after an exact application reply, or before dispatch was attempted. */
|
|
257
|
+
complete(): void
|
|
258
|
+
/** Permanently fence this allocation until computer stop. Never replay the request. */
|
|
259
|
+
outcomeUnknown(): void
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/** Interactive pipes for an allocation-owned guest process, not a host child. */
|
|
263
|
+
export interface SandboxStdioChannel {
|
|
264
|
+
/** One bounded, backpressured consumer. Bytes preserve binary and UTF-8 boundaries. */
|
|
265
|
+
readonly events: AsyncIterable<SandboxStdioEvent>
|
|
266
|
+
write(data: string | Uint8Array, signal?: AbortSignal): Promise<void>
|
|
267
|
+
/** Idle services do not prevent takeover; each actual request must hold this barrier. */
|
|
268
|
+
beginOperation(signal?: AbortSignal): Promise<SandboxStdioOperation>
|
|
269
|
+
/** Confirm this server's process group stopped; does not quiesce external applications. */
|
|
270
|
+
close(): Promise<void>
|
|
271
|
+
/** Resolves only on confirmed process-group exit; rejects on lost confirmation. */
|
|
272
|
+
readonly closed: Promise<void>
|
|
273
|
+
}
|
|
274
|
+
|
|
236
275
|
/**
|
|
237
276
|
* One host-side end of a TCP connection opened from inside the sandbox.
|
|
238
277
|
*
|
|
@@ -310,6 +349,13 @@ export interface Sandbox {
|
|
|
310
349
|
opts?: SandboxSpawnOptions,
|
|
311
350
|
): SandboxDetachedProcess
|
|
312
351
|
|
|
352
|
+
/** Optional interactive guest stdio. Never falls back to a host subprocess. */
|
|
353
|
+
openStdio?(
|
|
354
|
+
command: string,
|
|
355
|
+
args?: readonly string[],
|
|
356
|
+
options?: SandboxStdioOptions,
|
|
357
|
+
): Promise<SandboxStdioChannel>
|
|
358
|
+
|
|
313
359
|
/**
|
|
314
360
|
* Narrow or widen what this sandbox can reach, while it is running.
|
|
315
361
|
*
|
|
@@ -40,12 +40,14 @@ export interface Checkpoint {
|
|
|
40
40
|
/**
|
|
41
41
|
* Review corrections already consumed at this checkpoint, independent of
|
|
42
42
|
* compactable history: host structured-output review, prose-answer review
|
|
43
|
-
* and native structured-output correction.
|
|
43
|
+
* and tool/native structured-output correction.
|
|
44
44
|
*/
|
|
45
45
|
readonly review: {
|
|
46
46
|
readonly structuredAttempts: number
|
|
47
47
|
readonly answerAttempts: number
|
|
48
48
|
readonly nativeStructuredAttempts: number
|
|
49
|
+
/** Tool-output corrections; absent in older v1 checkpoints and restored as zero. */
|
|
50
|
+
readonly toolStructuredAttempts?: number
|
|
49
51
|
}
|
|
50
52
|
/** The turn's current operator/goal/steering message, independent of compaction. */
|
|
51
53
|
readonly latestUserMessageId?: MessageId
|
|
@@ -120,6 +122,7 @@ export const CheckpointSchema = z
|
|
|
120
122
|
structuredAttempts: count,
|
|
121
123
|
answerAttempts: count,
|
|
122
124
|
nativeStructuredAttempts: count,
|
|
125
|
+
toolStructuredAttempts: count.optional(),
|
|
123
126
|
})
|
|
124
127
|
.strict(),
|
|
125
128
|
latestUserMessageId: id<MessageId>('message').optional(),
|
|
@@ -18,7 +18,7 @@ import type { Message } from '../message/index.js'
|
|
|
18
18
|
import type { PlanStep } from '../plan/index.js'
|
|
19
19
|
import type { PluginHookEvent, PluginHookResult } from '../plugin/index.js'
|
|
20
20
|
import type { TaskStatus } from '../task/index.js'
|
|
21
|
-
import type { ToolResultView } from '../tool/presentation.js'
|
|
21
|
+
import type { ToolFacts, ToolResultView } from '../tool/presentation.js'
|
|
22
22
|
import type { CancelCause } from './cancel-cause.js'
|
|
23
23
|
import type { FencingToken } from './durable.js'
|
|
24
24
|
import type { Lineage } from './lineage.js'
|
|
@@ -416,12 +416,30 @@ type CoreSessionEvent =
|
|
|
416
416
|
type: 'tool_completed'
|
|
417
417
|
/** Bounded result view; omitted when output was overridden or truncated. */
|
|
418
418
|
presentation?: ToolResultView
|
|
419
|
+
/**
|
|
420
|
+
* What a saved conversation keeps of a call that has no diff: one
|
|
421
|
+
* label line (or a command's first line), never the output. Live
|
|
422
|
+
* hosts ignore it and draw the real result.
|
|
423
|
+
*/
|
|
424
|
+
savedPresentation?: ToolResultView
|
|
425
|
+
/**
|
|
426
|
+
* What the call did, as typed fields for the person's view (see
|
|
427
|
+
* `ToolResult.facts`). Absent when a post-tool hook replaced the
|
|
428
|
+
* output, so a redaction is never undone by a structured copy.
|
|
429
|
+
*/
|
|
430
|
+
facts?: ToolFacts
|
|
419
431
|
sessionId: SessionId
|
|
420
432
|
turnId: TurnId
|
|
421
433
|
toolUseId: ToolUseId
|
|
422
434
|
toolName: string
|
|
423
435
|
result: string
|
|
424
436
|
isError: boolean
|
|
437
|
+
/** Executor-classified provider argument failure; absent for host policy, rewrites and cancellation. */
|
|
438
|
+
inputFailure?: 'invalid_json' | 'schema_validation' | 'input_truncated'
|
|
439
|
+
/** Execution was deliberately skipped by a pre-tool hook; a non-error receipt, not a produced output. */
|
|
440
|
+
skipped?: true
|
|
441
|
+
/** Opt-in successful structured_output JSON after screening and post-tool hooks, before preview capping. Not an accepted result. */
|
|
442
|
+
structuredResultJson?: string
|
|
425
443
|
/** See {@link tool_executing}'s `via`. Carried on both, so a
|
|
426
444
|
* consumer can pair them without holding the start event. */
|
|
427
445
|
via?: {
|
|
@@ -939,6 +957,8 @@ type CoreSessionEvent =
|
|
|
939
957
|
*/
|
|
940
958
|
blockedBy?: readonly TaskId[]
|
|
941
959
|
owner?: string
|
|
960
|
+
/** The present-continuous form the model gave ("Running the tests"); absent when it gave none. */
|
|
961
|
+
activeForm?: string
|
|
942
962
|
}
|
|
943
963
|
| {
|
|
944
964
|
type: 'task_updated'
|
|
@@ -950,6 +970,8 @@ type CoreSessionEvent =
|
|
|
950
970
|
owner?: string
|
|
951
971
|
/** See `task_created`. Carried on updates because an edge can be added later. */
|
|
952
972
|
blockedBy?: readonly TaskId[]
|
|
973
|
+
/** See `task_created`. */
|
|
974
|
+
activeForm?: string
|
|
953
975
|
/**
|
|
954
976
|
* The task was removed from the list (`task_update` with status
|
|
955
977
|
* `deleted`). `status` and `subject` are what it had when it went.
|