@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
|
@@ -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
|
|
|
@@ -371,6 +371,8 @@ export interface PluginMCPServerConfig {
|
|
|
371
371
|
readonly command: string
|
|
372
372
|
readonly args?: readonly string[]
|
|
373
373
|
readonly env?: Readonly<Record<string, string>>
|
|
374
|
+
/** Maximum time to connect and discover this server. Default 10,000 ms. */
|
|
375
|
+
readonly connectTimeoutMs?: number
|
|
374
376
|
}
|
|
375
377
|
|
|
376
378
|
// ---------------------------------------------------------------------------
|
|
@@ -392,12 +394,15 @@ export interface PluginManifest {
|
|
|
392
394
|
readonly personas?: readonly string[]
|
|
393
395
|
}
|
|
394
396
|
|
|
395
|
-
export const PluginMCPServerConfigSchema = z
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
397
|
+
export const PluginMCPServerConfigSchema = z
|
|
398
|
+
.object({
|
|
399
|
+
name: z.string().min(1),
|
|
400
|
+
command: z.string().min(1),
|
|
401
|
+
args: z.array(z.string()).optional(),
|
|
402
|
+
env: z.record(z.string()).optional(),
|
|
403
|
+
connectTimeoutMs: z.number().int().positive().max(3_600_000).optional(),
|
|
404
|
+
})
|
|
405
|
+
.strict()
|
|
401
406
|
|
|
402
407
|
export const PluginManifestSchema = z.object({
|
|
403
408
|
name: z
|
|
@@ -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.
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod'
|
|
2
2
|
import { type EntityIdKind, isEntityId } from '../../utils/id.js'
|
|
3
|
+
import {
|
|
4
|
+
STRUCTURED_RESULT_MAX_BYTES,
|
|
5
|
+
parseStructuredResultJson,
|
|
6
|
+
} from '../../utils/structured-result-json.js'
|
|
7
|
+
import { HarnessBindingSchema, HarnessJournalTransitionSchema } from '../harness/schema.js'
|
|
3
8
|
import type { HITLDecisionRequest, HITLResumeDecision } from '../hitl/index.js'
|
|
4
9
|
import type {
|
|
5
10
|
CheckpointId,
|
|
@@ -11,7 +16,7 @@ import type {
|
|
|
11
16
|
TopicId,
|
|
12
17
|
TurnId,
|
|
13
18
|
} from '../ids/index.js'
|
|
14
|
-
import type
|
|
19
|
+
import { type Message, isRuntimeContextMessageSource } from '../message/index.js'
|
|
15
20
|
import type { ActorRef } from './actor.js'
|
|
16
21
|
import { CostInfoSchema, TokenUsageSchema, TurnBudgetBindingSchema } from './checkpoint.js'
|
|
17
22
|
import {
|
|
@@ -70,7 +75,15 @@ const MESSAGE_ROLES = new Set(['system', 'user', 'assistant', 'tool'])
|
|
|
70
75
|
* schema checks the discriminant and leaves the content to the message types.
|
|
71
76
|
*/
|
|
72
77
|
const messageBody = z.custom<Message>(
|
|
73
|
-
(value) =>
|
|
78
|
+
(value) => {
|
|
79
|
+
if (!isPlainObject(value) || !MESSAGE_ROLES.has(value.role as string)) return false
|
|
80
|
+
const source = value.source
|
|
81
|
+
return (
|
|
82
|
+
!isPlainObject(source) ||
|
|
83
|
+
source.type !== 'runtime-context' ||
|
|
84
|
+
isRuntimeContextMessageSource(source)
|
|
85
|
+
)
|
|
86
|
+
},
|
|
74
87
|
{ message: 'expected a message with a system, user, assistant or tool role' },
|
|
75
88
|
)
|
|
76
89
|
|
|
@@ -276,6 +289,16 @@ const spill = z
|
|
|
276
289
|
})
|
|
277
290
|
.strict()
|
|
278
291
|
|
|
292
|
+
const structuredResultSpill = spill
|
|
293
|
+
.extend({
|
|
294
|
+
path: text.regex(/^tool-results\/[a-f0-9]{64}\.txt$/),
|
|
295
|
+
manifest: text.regex(/^tool-results\/[a-f0-9]{64}\.txt\.manifest\.json$/),
|
|
296
|
+
bytes: positive.max(STRUCTURED_RESULT_MAX_BYTES),
|
|
297
|
+
})
|
|
298
|
+
.refine((ref) => ref.manifest === `${ref.path}.manifest.json`, {
|
|
299
|
+
message: 'a structured spill manifest must name its body',
|
|
300
|
+
})
|
|
301
|
+
|
|
279
302
|
const subSessionKind = z.enum(['agent_spawn', 'user_handoff', 'intervention'])
|
|
280
303
|
|
|
281
304
|
const actorRef = z.custom<ActorRef>(
|
|
@@ -319,6 +342,7 @@ function inTurn<T extends string, S extends z.ZodRawShape>(type: T, shape: S) {
|
|
|
319
342
|
// Session
|
|
320
343
|
|
|
321
344
|
export const SessionStartedRecordSchema = recordSchema('session_started', {
|
|
345
|
+
harness: HarnessBindingSchema.optional(),
|
|
322
346
|
projectId,
|
|
323
347
|
tenantId: tenantId.optional(),
|
|
324
348
|
topicId: topicId.optional(),
|
|
@@ -340,6 +364,7 @@ export const SessionStartedRecordSchema = recordSchema('session_started', {
|
|
|
340
364
|
})
|
|
341
365
|
|
|
342
366
|
export const SessionUpdatedRecordSchema = recordSchema('session_updated', {
|
|
367
|
+
harness: HarnessJournalTransitionSchema.optional(),
|
|
343
368
|
title: text.optional(),
|
|
344
369
|
titleSource: z.enum(['derived', 'named']).optional(),
|
|
345
370
|
archived: z.boolean().optional(),
|
|
@@ -382,6 +407,8 @@ export const TurnCompletedRecordSchema = inTurn('turn_completed', {
|
|
|
382
407
|
/** The settled answer, or a preview of it when `resultSpill` holds the whole text. */
|
|
383
408
|
result: text,
|
|
384
409
|
resultSpill: spill.optional(),
|
|
410
|
+
/** Accepted JSON stored separately; settlement.structuredOutput is then absent. */
|
|
411
|
+
structuredOutputSpill: structuredResultSpill.optional(),
|
|
385
412
|
stopReason: stopReason.optional(),
|
|
386
413
|
cancelCause: cancelCause.optional(),
|
|
387
414
|
budget: tokenBudgetSummary.optional(),
|
|
@@ -787,6 +814,83 @@ export const SessionRecordSchema = z
|
|
|
787
814
|
message: `${r.type} happens only inside a turn and must carry turnId`,
|
|
788
815
|
})
|
|
789
816
|
}
|
|
817
|
+
if (
|
|
818
|
+
r.type === 'tool_completed' &&
|
|
819
|
+
r.inputFailure !== undefined &&
|
|
820
|
+
(!['invalid_json', 'schema_validation', 'input_truncated'].includes(
|
|
821
|
+
r.inputFailure as string,
|
|
822
|
+
) ||
|
|
823
|
+
r.isError !== true)
|
|
824
|
+
) {
|
|
825
|
+
context.addIssue({
|
|
826
|
+
code: z.ZodIssueCode.custom,
|
|
827
|
+
path: ['inputFailure'],
|
|
828
|
+
message: 'inputFailure must classify a failed tool admission',
|
|
829
|
+
})
|
|
830
|
+
}
|
|
831
|
+
if (
|
|
832
|
+
r.type === 'tool_completed' &&
|
|
833
|
+
r.skipped !== undefined &&
|
|
834
|
+
(r.skipped !== true || r.isError !== false || r.inputFailure !== undefined)
|
|
835
|
+
) {
|
|
836
|
+
context.addIssue({
|
|
837
|
+
code: z.ZodIssueCode.custom,
|
|
838
|
+
path: ['skipped'],
|
|
839
|
+
message: 'skipped must classify a non-error pre-tool hook skip without an input failure',
|
|
840
|
+
})
|
|
841
|
+
}
|
|
842
|
+
if (
|
|
843
|
+
r.type === 'tool_completed' &&
|
|
844
|
+
(r.structuredResultJson !== undefined || r.structuredResultSpill !== undefined)
|
|
845
|
+
) {
|
|
846
|
+
let validJson = false
|
|
847
|
+
try {
|
|
848
|
+
if (r.structuredResultSpill !== undefined) {
|
|
849
|
+
validJson =
|
|
850
|
+
r.structuredResultJson === undefined &&
|
|
851
|
+
structuredResultSpill.safeParse(r.structuredResultSpill).success
|
|
852
|
+
} else {
|
|
853
|
+
parseStructuredResultJson(r.structuredResultJson)
|
|
854
|
+
validJson = true
|
|
855
|
+
}
|
|
856
|
+
} catch {
|
|
857
|
+
// Retained evidence is never repaired or downgraded to a preview.
|
|
858
|
+
}
|
|
859
|
+
if (
|
|
860
|
+
!validJson ||
|
|
861
|
+
r.toolName !== 'structured_output' ||
|
|
862
|
+
r.isError !== false ||
|
|
863
|
+
r.skipped !== undefined ||
|
|
864
|
+
r.inputFailure !== undefined ||
|
|
865
|
+
r.via !== undefined
|
|
866
|
+
) {
|
|
867
|
+
context.addIssue({
|
|
868
|
+
code: z.ZodIssueCode.custom,
|
|
869
|
+
path: [
|
|
870
|
+
r.structuredResultSpill !== undefined
|
|
871
|
+
? 'structuredResultSpill'
|
|
872
|
+
: 'structuredResultJson',
|
|
873
|
+
],
|
|
874
|
+
message:
|
|
875
|
+
'structured result evidence must hold JSON or a spill from a successful direct structured_output execution, never both',
|
|
876
|
+
})
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
if (r.type === 'turn_completed' && r.structuredOutputSpill !== undefined) {
|
|
880
|
+
const settlement = r.settlement as Record<string, unknown>
|
|
881
|
+
if (
|
|
882
|
+
settlement.status !== 'completed' ||
|
|
883
|
+
settlement.resultSource !== 'structured_output' ||
|
|
884
|
+
settlement.structuredOutput !== undefined
|
|
885
|
+
) {
|
|
886
|
+
context.addIssue({
|
|
887
|
+
code: z.ZodIssueCode.custom,
|
|
888
|
+
path: ['structuredOutputSpill'],
|
|
889
|
+
message:
|
|
890
|
+
'a structured output spill requires a completed structured_output settlement without inline structuredOutput',
|
|
891
|
+
})
|
|
892
|
+
}
|
|
893
|
+
}
|
|
790
894
|
if (r.type === 'message') {
|
|
791
895
|
const content = r.content as { role: unknown }
|
|
792
896
|
if (r.role !== content.role) {
|
|
@@ -851,6 +955,14 @@ export type SessionEventRecord<T extends PersistedSessionEventType = PersistedSe
|
|
|
851
955
|
T extends PersistedSessionEventType
|
|
852
956
|
? Omit<EventOf<T>, 'sessionId' | 'turnId' | 'lineage' | 'v' | 'seq' | 'generation'> &
|
|
853
957
|
RecordEnvelope &
|
|
958
|
+
(T extends 'tool_completed'
|
|
959
|
+
? { readonly structuredResultSpill?: z.infer<typeof structuredResultSpill> }
|
|
960
|
+
: T extends 'turn_completed'
|
|
961
|
+
? {
|
|
962
|
+
readonly resultSpill?: z.infer<typeof spill>
|
|
963
|
+
readonly structuredOutputSpill?: z.infer<typeof structuredResultSpill>
|
|
964
|
+
}
|
|
965
|
+
: unknown) &
|
|
854
966
|
(T extends TurnBoundSessionEventType ? { readonly turnId: TurnId } : unknown)
|
|
855
967
|
: never
|
|
856
968
|
|
|
@@ -159,6 +159,8 @@ export interface StepToolResult {
|
|
|
159
159
|
/** Text form, after the model-visible output budget was applied. */
|
|
160
160
|
output: string
|
|
161
161
|
isError: boolean
|
|
162
|
+
/** The pre-tool hook skipped this call; its receipt is not an executed answer. */
|
|
163
|
+
skipped?: true
|
|
162
164
|
durationMs: number
|
|
163
165
|
}
|
|
164
166
|
|
|
@@ -16,7 +16,7 @@ import type {
|
|
|
16
16
|
SubSessionKind,
|
|
17
17
|
} from '../../types/session/sub-session.js'
|
|
18
18
|
import type { SessionSummaryRef } from '../../types/summary/ref.js'
|
|
19
|
-
import type { SessionId, TenantId } from '../ids/index.js'
|
|
19
|
+
import type { SessionId, TenantId, TurnId } from '../ids/index.js'
|
|
20
20
|
import type { ProjectId, SubSessionId, SummaryId, TopicId } from '../session/ids.js'
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -145,6 +145,10 @@ export interface SessionView {
|
|
|
145
145
|
* callers never get a fallback and must branch on missing explicitly.
|
|
146
146
|
*/
|
|
147
147
|
export interface SessionStore {
|
|
148
|
+
/** Explicit opt-in to immutable turn-keyed summaries. Omission does not support child continuation. */
|
|
149
|
+
readonly supportsInvocationSummaries?: boolean
|
|
150
|
+
/** Opt in only when updateSession and recordSummary enforce owner-version CAS. */
|
|
151
|
+
readonly supportsOwnerVersionCas?: boolean
|
|
148
152
|
// Project CRUD ------------------------------------------------------------
|
|
149
153
|
|
|
150
154
|
createProject(params: CreateProjectParams, tenantId: TenantId): Promise<Project>
|
|
@@ -241,7 +245,8 @@ export interface SessionStore {
|
|
|
241
245
|
* into.
|
|
242
246
|
*
|
|
243
247
|
* **In-process only, stated rather than implied.** `DiskSessionStore`
|
|
244
|
-
* writes
|
|
248
|
+
* serializes session writes across instances using the same root within a
|
|
249
|
+
* process. Its read-compare-write is not a cross-process critical section,
|
|
245
250
|
* so two PROCESSES can still both pass the check. Closing that needs a
|
|
246
251
|
* lease with an expiry — not a PID registry, because a Session is durable
|
|
247
252
|
* and written from hosts where a PID is not a checkable fact. The same
|
|
@@ -359,21 +364,30 @@ export interface SessionStore {
|
|
|
359
364
|
* writes commit as one logical unit; mid-crash recovery is replay via
|
|
360
365
|
* `SessionSummaryMaterializer.recover()`.
|
|
361
366
|
*
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
*
|
|
367
|
+
* Summaries are immutable per `(sessionRef, turnRef)`. An absent `turnRef`
|
|
368
|
+
* preserves the original single conversation-summary contract. A supplied
|
|
369
|
+
* `turnRef` seals one invocation without replacing any previous summary.
|
|
370
|
+
* Rejects a different summary at an already sealed key.
|
|
371
|
+
* With expectedOwnerVersion, refuse before persisting or flipping status if
|
|
372
|
+
* the current session owner changed. Omission preserves the legacy behavior.
|
|
365
373
|
*/
|
|
366
374
|
recordSummary(
|
|
367
375
|
summary: SessionSummaryRef & { materializedBy: 'kernel' },
|
|
368
376
|
tenantId: TenantId,
|
|
377
|
+
expectedOwnerVersion?: number,
|
|
369
378
|
): Promise<void>
|
|
370
379
|
|
|
371
380
|
/**
|
|
372
|
-
* Loads the
|
|
373
|
-
*
|
|
374
|
-
*
|
|
381
|
+
* Loads the original conversation summary, or the exact invocation summary
|
|
382
|
+
* when `turnId` is supplied. Returns `null` when that key is unsealed; it
|
|
383
|
+
* never substitutes the original or newest summary for a missing invocation.
|
|
384
|
+
* Cross-tenant reads reject with `TenantIsolationError` (Convention #17).
|
|
375
385
|
*/
|
|
376
|
-
getSummary(
|
|
386
|
+
getSummary(
|
|
387
|
+
sessionId: SessionId,
|
|
388
|
+
tenantId: TenantId,
|
|
389
|
+
turnId?: TurnId,
|
|
390
|
+
): Promise<SessionSummaryRef | null>
|
|
377
391
|
}
|
|
378
392
|
|
|
379
393
|
/**
|
|
@@ -14,6 +14,12 @@ export interface CompletedToolRecord {
|
|
|
14
14
|
readonly toolName: string
|
|
15
15
|
readonly result: string
|
|
16
16
|
readonly isError: boolean
|
|
17
|
+
/** Trusted admission classification retained with the completion, absent in legacy records. */
|
|
18
|
+
readonly inputFailure?: 'invalid_json' | 'schema_validation' | 'input_truncated'
|
|
19
|
+
/** Trusted pre-tool hook skip, absent in legacy records; the tool produced no output. */
|
|
20
|
+
readonly skipped?: true
|
|
21
|
+
/** Opt-in screened, post-hook JSON from a successful structured_output; independent of the bounded receipt. */
|
|
22
|
+
readonly structuredResultJson?: string
|
|
17
23
|
}
|
|
18
24
|
|
|
19
25
|
/** The latest recorded execution boundary of a tool call, not its inferred external effect. */
|
|
@@ -17,8 +17,19 @@ export interface StructuredOutputConfig<TSchema extends z.ZodType = z.ZodType> {
|
|
|
17
17
|
mode?: 'tool' | 'native'
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* Tool mode only. Default `receipt` settles from the bounded tool message.
|
|
21
|
+
* `durable` also records the screened, post-hook JSON before preview capping,
|
|
22
|
+
* so a truncated preview does not destroy the candidate. The session log's
|
|
23
|
+
* record size limit still applies. This is execution evidence, not acceptance;
|
|
24
|
+
* recovered batches retain the existing fresh-inference settlement policy.
|
|
25
|
+
*/
|
|
26
|
+
toolResultRetention?: 'receipt' | 'durable'
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Correction opportunities after missing output or model-argument validation
|
|
30
|
+
* failure. Default 2; zero stops after the first invalid response. Tool-mode
|
|
31
|
+
* prose and invalid output calls share a checkpointed counter, once per response.
|
|
32
|
+
* Host review rejections use the separate maxReviews allowance.
|
|
22
33
|
*
|
|
23
34
|
* Bounded so a model that cannot satisfy the schema fails loudly rather
|
|
24
35
|
* than iterating against `maxIterations`.
|
package/src/types/summary/ref.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* `session/summary/errors.ts` — they are NOT pure shapes.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
-
import type { SessionId, TenantId } from '../ids/index.js'
|
|
23
|
+
import type { SessionId, TenantId, TurnId } from '../ids/index.js'
|
|
24
24
|
import type { SummaryId } from '../session/ids.js'
|
|
25
25
|
import type { DeliverableRef } from './deliverable.js'
|
|
26
26
|
|
|
@@ -53,6 +53,8 @@ export interface SessionSummaryKeyDecision {
|
|
|
53
53
|
export interface SessionSummaryRef {
|
|
54
54
|
readonly id: SummaryId
|
|
55
55
|
readonly sessionRef: SessionId
|
|
56
|
+
/** Immutable completion of one invocation; omission is the legacy conversation summary. */
|
|
57
|
+
readonly turnRef?: TurnId
|
|
56
58
|
readonly tenantId: TenantId
|
|
57
59
|
readonly outcome: SessionSummaryOutcome
|
|
58
60
|
readonly deliverables: readonly DeliverableRef[]
|