@sema-agent/core 7.54.1 → 7.56.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 +950 -0
- package/dist/agents/agent-transcript-tool.js +2 -1
- package/dist/agents/builtin-agents.d.ts +12 -14
- package/dist/agents/cascade.js +1 -1
- package/dist/agents/cc-peer-directory.d.ts +36 -0
- package/dist/agents/cc-peer-directory.js +139 -0
- package/dist/agents/cc-peer-wire.d.ts +105 -0
- package/dist/agents/cc-peer-wire.js +98 -0
- package/dist/agents/cc-uds-peer-channel.d.ts +40 -0
- package/dist/agents/cc-uds-peer-channel.js +457 -0
- package/dist/agents/child-model-seat.d.ts +0 -11
- package/dist/agents/child-model-seat.js +0 -3
- package/dist/agents/cross-session-envelope.d.ts +4 -1
- package/dist/agents/cross-session-envelope.js +8 -1
- package/dist/agents/cross-session-judge.d.ts +2 -2
- package/dist/agents/list-agents-tool.d.ts +3 -1
- package/dist/agents/list-agents-tool.js +9 -8
- package/dist/agents/observer.d.ts +4 -5
- package/dist/agents/observer.js +2 -1
- package/dist/agents/peer-admission.d.ts +6 -0
- package/dist/agents/peer-admission.js +4 -1
- package/dist/agents/peer-directory.d.ts +65 -13
- package/dist/agents/peer-directory.js +90 -25
- package/dist/agents/peer-notices.d.ts +1 -1
- package/dist/agents/peer-session-drain.d.ts +3 -1
- package/dist/agents/peer-session-drain.js +3 -2
- package/dist/agents/read-inbox-tool.js +2 -1
- package/dist/agents/repair-loop.js +2 -2
- package/dist/agents/retain-ledger.d.ts +1 -1
- package/dist/agents/roster-store.d.ts +1 -1
- package/dist/agents/send-message-tool.d.ts +10 -0
- package/dist/agents/send-message-tool.js +37 -8
- package/dist/agents/subagent.d.ts +39 -82
- package/dist/agents/subagent.js +109 -106
- package/dist/agents/tool-filter.d.ts +31 -46
- package/dist/agents/tool-filter.js +13 -33
- package/dist/agents/verify.d.ts +6 -5
- package/dist/agents/verify.js +3 -3
- package/dist/brain/anthropic.js +43 -81
- package/dist/brain/errors.d.ts +15 -0
- package/dist/brain/errors.js +10 -0
- package/dist/brain/media-degrade.d.ts +18 -7
- package/dist/brain/media-degrade.js +13 -2
- package/dist/brain/model-capability.d.ts +37 -0
- package/dist/brain/model-capability.js +34 -0
- package/dist/brain/model-presets.d.ts +6 -12
- package/dist/brain/model-presets.js +1 -6
- package/dist/brain/open-responses.js +27 -35
- package/dist/brain/openai.js +30 -98
- package/dist/brain/provider-dialect.d.ts +39 -3
- package/dist/brain/provider-dialect.js +28 -0
- package/dist/brain/reasoning-request.d.ts +96 -0
- package/dist/brain/reasoning-request.js +174 -0
- package/dist/brain/reasoning.d.ts +12 -12
- package/dist/brain/reasoning.js +4 -3
- package/dist/brain/request-params.d.ts +62 -9
- package/dist/brain/request-params.js +42 -7
- package/dist/brain/retry.d.ts +1 -1
- package/dist/brain/route-adjudicator.d.ts +15 -0
- package/dist/brain/route-adjudicator.js +15 -0
- package/dist/brain/status-sink.d.ts +20 -0
- package/dist/brain/status-sink.js +7 -0
- package/dist/brain/stream-engine.js +6 -5
- package/dist/brain/stream-shared.d.ts +1 -1
- package/dist/core/a2a.d.ts +2 -1
- package/dist/core/a2a.js +19 -13
- package/dist/core/advisor-verdict.d.ts +120 -0
- package/dist/core/advisor-verdict.js +92 -0
- package/dist/core/agent-definition.d.ts +17 -8
- package/dist/core/allow-entry.d.ts +69 -36
- package/dist/core/allow-entry.js +81 -52
- package/dist/core/allow-rule-shadow.d.ts +10 -3
- package/dist/core/approval-object.d.ts +2 -1
- package/dist/core/approval-object.js +6 -6
- package/dist/core/ask-origin.d.ts +127 -29
- package/dist/core/ask-origin.js +87 -25
- package/dist/core/ask-question.d.ts +51 -8
- package/dist/core/ask-question.js +12 -7
- package/dist/core/ask-unresolvable-notice.d.ts +8 -3
- package/dist/core/ask-unresolvable-notice.js +16 -2
- package/dist/core/auto-compaction.d.ts +11 -8
- package/dist/core/auto-compaction.js +4 -2
- package/dist/core/auto-mode-arming.d.ts +2 -2
- package/dist/core/auto-mode-defaults.d.ts +8 -8
- package/dist/core/auto-mode-prompt-assets.d.ts +3 -3
- package/dist/core/auto-mode-prompt.d.ts +1 -1
- package/dist/core/auto-mode.d.ts +17 -9
- package/dist/core/auto-mode.js +9 -6
- package/dist/core/background-agent-store.d.ts +3 -3
- package/dist/core/canonical-json.d.ts +1 -1
- package/dist/core/canonical-json.js +2 -2
- package/dist/core/checkpoint-generation.d.ts +53 -0
- package/dist/core/checkpoint-generation.js +35 -0
- package/dist/core/checkpoint-queries.d.ts +180 -0
- package/dist/core/checkpoint-queries.js +272 -0
- package/dist/core/checkpoint-requirements.d.ts +19 -4
- package/dist/core/checkpoint-requirements.js +8 -14
- package/dist/core/checkpoint-store.d.ts +165 -72
- package/dist/core/checkpoint-store.js +79 -82
- package/dist/core/child-clamp-seats.d.ts +6 -0
- package/dist/core/child-clamp-seats.js +3 -16
- package/dist/core/compliance.d.ts +2 -2
- package/dist/core/context-edit.d.ts +6 -7
- package/dist/core/cross-boundary-taint.d.ts +11 -4
- package/dist/core/cross-boundary-taint.js +3 -3
- package/dist/core/decision-receipt.d.ts +37 -3
- package/dist/core/decision-receipt.js +19 -19
- package/dist/core/delegation-not-started.d.ts +6 -0
- package/dist/core/delegation-not-started.js +17 -0
- package/dist/core/effective-path-target.d.ts +1 -1
- package/dist/core/engine-attestation.d.ts +93 -0
- package/dist/core/engine-attestation.js +70 -0
- package/dist/core/engine-capabilities.d.ts +4 -1
- package/dist/core/engine-capabilities.js +1 -1
- package/dist/core/engine-notice.d.ts +45 -12
- package/dist/core/exec-output-tail.d.ts +1 -1
- package/dist/core/file-history-retention.d.ts +1 -1
- package/dist/core/file-history-store.d.ts +147 -21
- package/dist/core/file-history-store.js +58 -32
- package/dist/core/gate-fold.d.ts +1 -1
- package/dist/core/gate-fold.js +24 -11
- package/dist/core/gate-lanes.js +81 -68
- package/dist/core/gate-outcome.d.ts +40 -6
- package/dist/core/gate-outcome.js +56 -0
- package/dist/core/governance-codes.d.ts +17 -3
- package/dist/core/governance-codes.js +16 -0
- package/dist/core/hands-band.d.ts +1 -1
- package/dist/core/hooks.d.ts +21 -20
- package/dist/core/hooks.js +3 -1
- package/dist/core/host-floor.d.ts +128 -0
- package/dist/core/host-floor.js +206 -0
- package/dist/core/host-target.d.ts +84 -0
- package/dist/core/host-target.js +92 -0
- package/dist/core/image-downsample.d.ts +1 -1
- package/dist/core/lsp-diagnostics.d.ts +4 -4
- package/dist/core/lsp.d.ts +3 -3
- package/dist/core/mailbox-store.d.ts +4 -0
- package/dist/core/mcp-connection-pool.d.ts +18 -2
- package/dist/core/mcp-connection-pool.js +53 -6
- package/dist/core/mcp-failure.d.ts +23 -4
- package/dist/core/mcp-failure.js +26 -11
- package/dist/core/mcp-listing-drift.d.ts +10 -0
- package/dist/core/mcp-listing-drift.js +6 -0
- package/dist/core/mcp-server-link.d.ts +173 -0
- package/dist/core/mcp-server-link.js +127 -0
- package/dist/core/mcp-server-spec.d.ts +4 -2
- package/dist/core/mcp-session-end.d.ts +26 -0
- package/dist/core/mcp-session-end.js +29 -0
- package/dist/core/mcp-startup-request.d.ts +17 -0
- package/dist/core/mcp-startup-request.js +17 -0
- package/dist/core/mcp.d.ts +17 -13
- package/dist/core/mcp.js +240 -189
- package/dist/core/media-byte-cap.d.ts +1 -1
- package/dist/core/memory-engine/delegation-settlement.js +15 -24
- package/dist/core/memory-engine/engine.d.ts +9 -9
- package/dist/core/memory-engine/engine.js +4 -4
- package/dist/core/memory-engine/layout.d.ts +60 -8
- package/dist/core/memory-engine/layout.js +65 -6
- package/dist/core/memory-engine/provenance-wording.d.ts +1 -1
- package/dist/core/memory-engine/tools.js +4 -1
- package/dist/core/mode-policy.d.ts +1 -1
- package/dist/core/model-seat.d.ts +10 -3
- package/dist/core/mods/classic-events.d.ts +67 -0
- package/dist/core/mods/classic-events.js +1 -0
- package/dist/core/mods/dollar.d.ts +13 -0
- package/dist/core/mods/extension-call.d.ts +31 -0
- package/dist/core/mods/extension-call.js +43 -0
- package/dist/core/mods/kernel/dispatch.d.ts +20 -3
- package/dist/core/mods/kernel/dispatch.js +140 -69
- package/dist/core/mods/kernel/events.d.ts +47 -11
- package/dist/core/mods/kernel/events.js +66 -42
- package/dist/core/mods/kernel/index.d.ts +4 -4
- package/dist/core/mods/kernel/index.js +2 -2
- package/dist/core/mods/kernel/receive.d.ts +39 -5
- package/dist/core/mods/kernel/receive.js +290 -17
- package/dist/core/mods/kernel/registration.d.ts +33 -2
- package/dist/core/mods/kernel/registration.js +6 -7
- package/dist/core/mods/kernel/site-rules.d.ts +44 -16
- package/dist/core/mods/kernel/site-rules.js +24 -42
- package/dist/core/mods/spec-seats.d.ts +69 -0
- package/dist/core/mods/spec-seats.js +114 -0
- package/dist/core/mods/stations.d.ts +28 -8
- package/dist/core/mods/stations.js +29 -13
- package/dist/core/mods/tool-call.d.ts +79 -0
- package/dist/core/mods/tool-call.js +152 -0
- package/dist/core/namespaced-rule-name.d.ts +44 -24
- package/dist/core/namespaced-rule-name.js +50 -43
- package/dist/core/output-style.d.ts +1 -1
- package/dist/core/param-rule-reach.d.ts +15 -0
- package/dist/core/param-rule-reach.js +30 -0
- package/dist/core/parent-spec-seat.d.ts +13 -1
- package/dist/core/parent-spec-seat.js +6 -0
- package/dist/core/park-selfcheck.js +1 -0
- package/dist/core/pause-registry.d.ts +16 -5
- package/dist/core/pause-registry.js +6 -2
- package/dist/core/peer-channel.d.ts +70 -0
- package/dist/core/peer-channel.js +1 -0
- package/dist/core/permission-rule-consent.d.ts +30 -5
- package/dist/core/permission-rule-consent.js +147 -50
- package/dist/core/permission-rule-model.d.ts +245 -65
- package/dist/core/permission-rule-model.js +421 -107
- package/dist/core/permission-rule-org.d.ts +6 -2
- package/dist/core/permission-rule-org.js +7 -3
- package/dist/core/permission-rule-provider.d.ts +6 -2
- package/dist/core/permission-rule-provider.js +41 -11
- package/dist/core/permission-rule-store.d.ts +22 -26
- package/dist/core/permission-rule-store.js +12 -6
- package/dist/core/permission-rule-sync.d.ts +11 -2
- package/dist/core/permission-rule-sync.js +11 -3
- package/dist/core/permission-rule-syntax.d.ts +5 -4
- package/dist/core/permission-rule-syntax.js +2 -2
- package/dist/core/permission-rules.d.ts +53 -15
- package/dist/core/permission-rules.js +125 -100
- package/dist/core/persisted-rule-arms.d.ts +6 -4
- package/dist/core/persisted-rule-arms.js +10 -12
- package/dist/core/present-plan-tool.js +3 -1
- package/dist/core/principal-name.d.ts +20 -0
- package/dist/core/principal-name.js +22 -0
- package/dist/core/prompt-section-seat.js +4 -6
- package/dist/core/protocol-http-auth.d.ts +26 -5
- package/dist/core/protocol-http-auth.js +137 -4
- package/dist/core/protocol-naming.d.ts +2 -2
- package/dist/core/read-only-shell-table.d.ts +1 -1
- package/dist/core/read-only-shell.d.ts +1 -1
- package/dist/core/retired-keys.d.ts +16 -0
- package/dist/core/retired-keys.js +16 -4
- package/dist/core/rewrite-rejudge.d.ts +60 -0
- package/dist/core/rewrite-rejudge.js +36 -0
- package/dist/core/roles.d.ts +34 -3
- package/dist/core/roles.js +66 -53
- package/dist/core/rule-lane-reads.d.ts +20 -15
- package/dist/core/rule-lane-reads.js +45 -17
- package/dist/core/rule-offer-read.d.ts +53 -0
- package/dist/core/rule-offer-read.js +146 -0
- package/dist/core/rule-owner.d.ts +46 -0
- package/dist/core/rule-owner.js +29 -0
- package/dist/core/runner/advisor-instructions.d.ts +70 -0
- package/dist/core/runner/advisor-instructions.js +61 -0
- package/dist/core/runner/advisor-tool.d.ts +33 -0
- package/dist/core/runner/advisor-tool.js +112 -0
- package/dist/core/runner/announce-once-ledger.d.ts +18 -26
- package/dist/core/runner/announce-once-ledger.js +19 -46
- package/dist/core/runner/approval-feedback.js +6 -3
- package/dist/core/runner/assemble-result.d.ts +2 -1
- package/dist/core/runner/assemble-result.js +1 -1
- package/dist/core/runner/call-hook-stations.d.ts +3 -2
- package/dist/core/runner/caller-roster.d.ts +21 -2
- package/dist/core/runner/caller-roster.js +38 -0
- package/dist/core/runner/capability-withheld-seat.d.ts +5 -0
- package/dist/core/runner/capability-withheld-seat.js +24 -0
- package/dist/core/runner/classifier-ladder.d.ts +33 -13
- package/dist/core/runner/classifier-ladder.js +15 -14
- package/dist/core/runner/compaction-restate.d.ts +10 -6
- package/dist/core/runner/compaction-restate.js +9 -3
- package/dist/core/runner/construction-doors.js +3 -0
- package/dist/core/runner/contracts.d.ts +40 -33
- package/dist/core/runner/conversation-segment.d.ts +28 -0
- package/dist/core/runner/conversation-segment.js +42 -0
- package/dist/core/runner/cross-boundary-lane.d.ts +21 -16
- package/dist/core/runner/cross-boundary-lane.js +58 -34
- package/dist/core/runner/decide-continuation.d.ts +7 -4
- package/dist/core/runner/decide-continuation.js +2 -2
- package/dist/core/runner/denial-limit-arms.d.ts +4 -4
- package/dist/core/runner/denial-limit-arms.js +1 -1
- package/dist/core/runner/derived-route-fallback.d.ts +24 -24
- package/dist/core/runner/derived-route-fallback.js +9 -7
- package/dist/core/runner/file-history-request.d.ts +18 -0
- package/dist/core/runner/file-history-request.js +21 -13
- package/dist/core/runner/file-history-restore.d.ts +45 -0
- package/dist/core/runner/file-history-restore.js +46 -0
- package/dist/core/runner/gate-exit.d.ts +9 -3
- package/dist/core/runner/gate-exit.js +11 -5
- package/dist/core/runner/image.d.ts +7 -17
- package/dist/core/runner/image.js +9 -60
- package/dist/core/runner/initial-run-state.js +1 -1
- package/dist/core/runner/permission-rule-lanes.d.ts +6 -6
- package/dist/core/runner/permission-rule-lanes.js +38 -15
- package/dist/core/runner/person-path-rows.d.ts +12 -9
- package/dist/core/runner/person-path-rows.js +19 -8
- package/dist/core/runner/prepare-advisor.d.ts +63 -0
- package/dist/core/runner/prepare-advisor.js +77 -0
- package/dist/core/runner/prepare-ask-lane.d.ts +2 -2
- package/dist/core/runner/prepare-ask-lane.js +5 -2
- package/dist/core/runner/prepare-caps-and-workflow.d.ts +4 -6
- package/dist/core/runner/prepare-caps-and-workflow.js +5 -4
- package/dist/core/runner/prepare-config-doors.d.ts +31 -38
- package/dist/core/runner/prepare-config-doors.js +57 -34
- package/dist/core/runner/prepare-defer-classify.d.ts +4 -3
- package/dist/core/runner/prepare-defer-classify.js +7 -8
- package/dist/core/runner/prepare-delegation-surface.d.ts +2 -2
- package/dist/core/runner/prepare-delegation-surface.js +1 -1
- package/dist/core/runner/prepare-file-history.d.ts +48 -8
- package/dist/core/runner/prepare-file-history.js +41 -73
- package/dist/core/runner/prepare-gate-stations.d.ts +2 -5
- package/dist/core/runner/prepare-gate-stations.js +12 -8
- package/dist/core/runner/prepare-hands-readface.d.ts +2 -8
- package/dist/core/runner/prepare-hands-readface.js +15 -14
- package/dist/core/runner/prepare-inherited-gate.d.ts +11 -7
- package/dist/core/runner/prepare-inherited-gate.js +8 -6
- package/dist/core/runner/prepare-memory-engine-session.js +1 -1
- package/dist/core/runner/prepare-park-ask.js +12 -12
- package/dist/core/runner/prepare-policy-chain.d.ts +7 -4
- package/dist/core/runner/prepare-policy-chain.js +68 -81
- package/dist/core/runner/prepare-project-context.d.ts +5 -2
- package/dist/core/runner/prepare-project-context.js +6 -3
- package/dist/core/runner/prepare-prompt-assembly.d.ts +5 -7
- package/dist/core/runner/prepare-prompt-assembly.js +10 -8
- package/dist/core/runner/prepare-prompt-inputs.d.ts +11 -9
- package/dist/core/runner/prepare-prompt-inputs.js +4 -6
- package/dist/core/runner/prepare-protocol-tools.d.ts +4 -2
- package/dist/core/runner/prepare-protocol-tools.js +5 -4
- package/dist/core/runner/prepare-safety-scan.d.ts +9 -12
- package/dist/core/runner/prepare-safety-scan.js +8 -23
- package/dist/core/runner/prepare-suspend-saga.d.ts +2 -0
- package/dist/core/runner/prepare-suspend-saga.js +5 -6
- package/dist/core/runner/prepare-task.d.ts +1 -1
- package/dist/core/runner/prepare-task.js +41 -35
- package/dist/core/runner/prepare-tool-disclosure-mount.d.ts +7 -4
- package/dist/core/runner/prepare-tool-disclosure-mount.js +24 -18
- package/dist/core/runner/prepare-turn-wiring.d.ts +0 -4
- package/dist/core/runner/prepare-turn-wiring.js +2 -7
- package/dist/core/runner/prepare-wiring-manifest.d.ts +11 -4
- package/dist/core/runner/prepare-wiring-manifest.js +3 -3
- package/dist/core/runner/resume-admission.js +1 -1
- package/dist/core/runner/resume-apply.js +11 -12
- package/dist/core/runner/resume-checkpoint-screen.js +3 -0
- package/dist/core/runner/resume-claim.d.ts +4 -2
- package/dist/core/runner/resume-claim.js +15 -8
- package/dist/core/runner/resume-policy-outcome.js +1 -1
- package/dist/core/runner/retired-runner-deps.js +2 -1
- package/dist/core/runner/rewind-files.d.ts +15 -0
- package/dist/core/runner/rewind-files.js +132 -0
- package/dist/core/runner/run-attachment-seats.js +2 -2
- package/dist/core/runner/run-brain-sinks.d.ts +4 -1
- package/dist/core/runner/run-brain-sinks.js +4 -2
- package/dist/core/runner/run-compaction-machinery.d.ts +1 -1
- package/dist/core/runner/run-compaction-machinery.js +2 -12
- package/dist/core/runner/run-git-lane.d.ts +1 -0
- package/dist/core/runner/run-harness-handlers.js +14 -7
- package/dist/core/runner/run-leg.d.ts +1 -1
- package/dist/core/runner/run-leg.js +43 -18
- package/dist/core/runner/run-settle-and-teardown.js +3 -2
- package/dist/core/runner/run-telemetry-and-budget-seats.js +1 -1
- package/dist/core/runner/run-turn-boundary.d.ts +1 -0
- package/dist/core/runner/run-turn-boundary.js +15 -22
- package/dist/core/runner/runtask.d.ts +3 -0
- package/dist/core/runner/runtask.js +8 -9
- package/dist/core/runner/session-read-file-states.d.ts +15 -0
- package/dist/core/runner/session-read-file-states.js +28 -0
- package/dist/core/runner/session-rule-policy.d.ts +22 -21
- package/dist/core/runner/session-rule-policy.js +17 -31
- package/dist/core/runner/shell-env-withheld.d.ts +33 -0
- package/dist/core/runner/shell-env-withheld.js +51 -0
- package/dist/core/runner/side-call-account.d.ts +32 -8
- package/dist/core/runner/side-call-account.js +23 -1
- package/dist/core/runner/skills-seat.js +6 -2
- package/dist/core/runner/stream-settle-backstop.js +1 -1
- package/dist/core/runner/strict-output-schema.d.ts +1 -1
- package/dist/core/runner/sub-agent-deny-lists.js +4 -6
- package/dist/core/runner/synthetic-tools.d.ts +16 -13
- package/dist/core/runner/synthetic-tools.js +8 -3
- package/dist/core/runner/tool-disclosure.d.ts +10 -12
- package/dist/core/runner/tool-disclosure.js +3 -4
- package/dist/core/runner/tool-end-body.d.ts +1 -1
- package/dist/core/runner/tool-end-body.js +10 -9
- package/dist/core/runner/tool-face-overlay.d.ts +2 -1
- package/dist/core/runner/tool-face-overlay.js +17 -1
- package/dist/core/runner/tool-not-executed.d.ts +5 -0
- package/dist/core/runner/tool-not-executed.js +11 -0
- package/dist/core/runner/tool-occurrence.d.ts +8 -0
- package/dist/core/runner/tool-occurrence.js +7 -0
- package/dist/core/runner/tool-progress-lane.d.ts +2 -2
- package/dist/core/runner/tool-turn-repair-seat.d.ts +3 -2
- package/dist/core/runner/turn-attachments.d.ts +91 -80
- package/dist/core/runner/turn-attachments.js +62 -37
- package/dist/core/runner-deps.d.ts +42 -42
- package/dist/core/runtime-caps.d.ts +4 -4
- package/dist/core/safety-axis-vocab.d.ts +6 -4
- package/dist/core/safety-axis-vocab.js +6 -5
- package/dist/core/safety-merge-corpus.js +26 -2
- package/dist/core/same-plain-value.d.ts +40 -0
- package/dist/core/same-plain-value.js +49 -0
- package/dist/core/scheduler.d.ts +1 -1
- package/dist/core/secret-env.d.ts +26 -3
- package/dist/core/secret-env.js +44 -8
- package/dist/core/select-model.js +3 -3
- package/dist/core/sensitive-path-policy.d.ts +1 -1
- package/dist/core/sensitive-path-policy.js +1 -1
- package/dist/core/session-policy-store.d.ts +102 -35
- package/dist/core/session-policy-store.js +210 -48
- package/dist/core/session-reconcile.d.ts +2 -2
- package/dist/core/session-store.d.ts +106 -37
- package/dist/core/session-store.js +165 -91
- package/dist/core/session.d.ts +101 -57
- package/dist/core/session.js +53 -0
- package/dist/core/shared-memory/tools.js +3 -1
- package/dist/core/shared-memory/types.d.ts +1 -1
- package/dist/core/shell-read-silence.d.ts +11 -12
- package/dist/core/shell-read-silence.js +9 -5
- package/dist/core/shell-run-candidates.js +3 -1
- package/dist/core/shell-wrapper-projection.js +1 -1
- package/dist/core/shell-wrapper-table.d.ts +14 -7
- package/dist/core/shell-wrapper-table.js +5 -4
- package/dist/core/side-query.d.ts +10 -0
- package/dist/core/side-query.js +15 -1
- package/dist/core/skill-grant.d.ts +7 -2
- package/dist/core/skill-grant.js +5 -0
- package/dist/core/skills-directory.js +6 -2
- package/dist/core/store-contracts/checkpoint-store-contract.d.ts +11 -1
- package/dist/core/store-contracts/checkpoint-store-contract.js +168 -3
- package/dist/core/store-contracts/file-history-store-contract.js +74 -4
- package/dist/core/store-contracts/peer-directory-contract.d.ts +7 -2
- package/dist/core/store-contracts/peer-directory-contract.js +14 -2
- package/dist/core/store-contracts/session-policy-store-contract.d.ts +7 -0
- package/dist/core/store-contracts/session-policy-store-contract.js +130 -0
- package/dist/core/store-contracts/session-repo-contract.js +176 -0
- package/dist/core/store-contracts/session-store-contract.d.ts +6 -8
- package/dist/core/store-contracts/session-store-contract.js +361 -51
- package/dist/core/store-contracts/workflow-journal-store-contract.js +26 -1
- package/dist/core/stub-env.d.ts +2 -0
- package/dist/core/stub-env.js +1 -0
- package/dist/core/surrogate-safe-slice.d.ts +3 -3
- package/dist/core/synthetic-read-verdict.js +3 -3
- package/dist/core/task-event.d.ts +42 -8
- package/dist/core/task-notification.d.ts +19 -15
- package/dist/core/task-registry-agent.d.ts +4 -4
- package/dist/core/task-registry-shared.d.ts +4 -4
- package/dist/core/task-registry-shared.js +1 -0
- package/dist/core/task-registry.d.ts +13 -4
- package/dist/core/task-registry.js +14 -2
- package/dist/core/task-result.d.ts +21 -3
- package/dist/core/task-spec.d.ts +69 -64
- package/dist/core/task-stream.d.ts +6 -6
- package/dist/core/task-tool-shape.d.ts +4 -4
- package/dist/core/tighten-task-spec.d.ts +1 -1
- package/dist/core/tighten-task-spec.js +2 -1
- package/dist/core/tool-catalog-entries.d.ts +36 -2
- package/dist/core/tool-catalog-entries.js +69 -43
- package/dist/core/tool-check-reading.d.ts +11 -0
- package/dist/core/tool-check-reading.js +11 -6
- package/dist/core/tool-conformance.js +1 -0
- package/dist/core/tool-errors.d.ts +2 -2
- package/dist/core/tool-face-reader.js +5 -3
- package/dist/core/tool-face.d.ts +21 -2
- package/dist/core/tool-face.js +1 -1
- package/dist/core/tool-model-gate.d.ts +5 -5
- package/dist/core/tool-name-aliases.d.ts +29 -8
- package/dist/core/tool-name-aliases.js +22 -4
- package/dist/core/tool-name-readings.d.ts +10 -43
- package/dist/core/tool-name-readings.js +2 -11
- package/dist/core/tool-policy.d.ts +85 -196
- package/dist/core/tool-policy.js +150 -175
- package/dist/core/tool-registry.d.ts +14 -7
- package/dist/core/tool-registry.js +17 -7
- package/dist/core/tool-result-store.js +5 -1
- package/dist/core/tool-roster.d.ts +57 -33
- package/dist/core/tool-roster.js +56 -68
- package/dist/core/tool-spec-members.js +8 -3
- package/dist/core/tool-spec.d.ts +53 -31
- package/dist/core/tools.js +51 -10
- package/dist/core/trace.d.ts +6 -2
- package/dist/core/types.d.ts +1 -1
- package/dist/core/untrusted-egress.d.ts +1 -1
- package/dist/core/untrusted-text.d.ts +1 -1
- package/dist/core/user-attachment.d.ts +8 -1
- package/dist/core/user-attachment.js +64 -4
- package/dist/core/warm-resume.d.ts +1 -1
- package/dist/core/wiring-manifest.d.ts +58 -0
- package/dist/core/wiring-manifest.js +14 -5
- package/dist/core/workflow-journal-store.d.ts +62 -0
- package/dist/core/workflow-journal-store.js +78 -2
- package/dist/core/workflow-run-store.d.ts +6 -0
- package/dist/core/workflow-run-store.js +2 -0
- package/dist/engine/compaction/compaction.d.ts +9 -9
- package/dist/engine/compaction/compaction.js +3 -2
- package/dist/engine/execution-env/node-execution-env.d.ts +26 -8
- package/dist/engine/execution-env/node-execution-env.js +54 -24
- package/dist/engine/harness/agent-harness.d.ts +39 -9
- package/dist/engine/harness/agent-harness.js +87 -33
- package/dist/engine/harness/types.d.ts +58 -9
- package/dist/engine/harness/types.js +12 -1
- package/dist/engine/llm/types.d.ts +36 -19
- package/dist/engine/llm/validation.d.ts +4 -1
- package/dist/engine/llm/validation.js +13 -1
- package/dist/engine/loop/agent-loop.d.ts +23 -1
- package/dist/engine/loop/agent-loop.js +26 -34
- package/dist/engine/loop/types.d.ts +31 -19
- package/dist/engine/lsp/node-lsp-manager.d.ts +2 -2
- package/dist/engine/session/memory-repo.d.ts +18 -12
- package/dist/engine/session/memory-repo.js +24 -9
- package/dist/engine/session/parent-chain-guard.d.ts +3 -2
- package/dist/engine/session/parent-chain-guard.js +1 -1
- package/dist/engine/session/repo-utils.d.ts +32 -3
- package/dist/engine/session/repo-utils.js +50 -5
- package/dist/index.d.ts +47 -23
- package/dist/index.js +35 -17
- package/dist/internal/harness-types.d.ts +1 -1
- package/dist/internal/harness.d.ts +3 -3
- package/dist/internal/harness.js +2 -2
- package/dist/internal/llm.d.ts +2 -2
- package/dist/internal/llm.js +1 -1
- package/dist/orchestration/goal.js +2 -2
- package/dist/orchestration/run-workflow-tool.d.ts +8 -6
- package/dist/orchestration/run-workflow-tool.js +10 -6
- package/dist/orchestration/workflow-size-guideline.d.ts +4 -4
- package/dist/orchestration/workflow-types.d.ts +18 -0
- package/dist/orchestration/workflow-types.js +6 -0
- package/dist/orchestration/workflow.d.ts +5 -13
- package/dist/orchestration/workflow.js +57 -49
- package/dist/prompt-assembly/artifact.d.ts +2 -2
- package/dist/prompt-assembly/artifact.js +5 -3
- package/dist/prompt-assembly/assemble.d.ts +3 -2
- package/dist/prompt-assembly/assemble.js +1 -1
- package/dist/prompt-assembly/catalog/schema.d.ts +43 -12
- package/dist/prompt-assembly/catalog/schema.js +34 -2
- package/dist/prompt-assembly/catalog/sections.js +0 -1
- package/dist/prompt-assembly/composer.d.ts +3 -1
- package/dist/prompt-assembly/composer.js +1 -1
- package/dist/prompt-assembly/event-registry.js +2 -0
- package/dist/prompt-assembly/overlay.js +3 -3
- package/dist/prompt-assembly/renderers.d.ts +1 -1
- package/dist/prompt-assembly/renderers.js +0 -3
- package/dist/prompt-assembly/role-base.d.ts +15 -0
- package/dist/prompt-assembly/role-base.js +9 -0
- package/dist/prompt-assembly/select.d.ts +39 -14
- package/dist/prompt-assembly/select.js +47 -16
- package/dist/prompt-assembly/sugar.d.ts +17 -11
- package/dist/prompt-assembly/sugar.js +8 -3
- package/dist/prompt-assembly/tool-catalog.d.ts +39 -2
- package/dist/prompt-assembly/tool-catalog.js +117 -4
- package/dist/prompt-assembly/turn-snapshot.d.ts +4 -10
- package/dist/prompt-assembly/turn-snapshot.js +0 -3
- package/dist/prompt-assembly/types.d.ts +0 -7
- package/dist/prompts/default.d.ts +14 -14
- package/dist/scenarios/full-body.d.ts +15 -15
- package/dist/scenarios/full-body.js +4 -3
- package/dist/shell/lex.js +10 -1
- package/dist/stores/file/adoption/adopt.d.ts +4 -3
- package/dist/stores/file/adoption/adopt.js +27 -33
- package/dist/stores/file/adoption/marker.d.ts +6 -13
- package/dist/stores/file/adoption/marker.js +9 -17
- package/dist/stores/file/checkpoint-store.d.ts +24 -0
- package/dist/stores/file/checkpoint-store.js +45 -7
- package/dist/stores/file/file-history-store.d.ts +20 -19
- package/dist/stores/file/file-history-store.js +157 -141
- package/dist/stores/file/fs-atomic.d.ts +15 -0
- package/dist/stores/file/fs-atomic.js +89 -14
- package/dist/stores/file/index.d.ts +1 -1
- package/dist/stores/file/index.js +2 -1
- package/dist/stores/file/mailbox-store.d.ts +3 -0
- package/dist/stores/file/mailbox-store.js +3 -1
- package/dist/stores/file/permission-rule-adopt.d.ts +1 -1
- package/dist/stores/file/permission-rule-adopt.js +18 -18
- package/dist/stores/file/permission-rule-store.d.ts +18 -2
- package/dist/stores/file/permission-rule-store.js +31 -18
- package/dist/stores/file/session-policy-store.d.ts +3 -3
- package/dist/stores/file/session-store.d.ts +54 -16
- package/dist/stores/file/session-store.js +114 -85
- package/dist/stores/file/workflow-journal-store.d.ts +10 -4
- package/dist/stores/file/workflow-journal-store.js +28 -13
- package/dist/tools/artifact/artifact-text.d.ts +1 -1
- package/dist/tools/artifact/artifact-tool.js +5 -3
- package/dist/tools/fs/bash-program-position.d.ts +19 -2
- package/dist/tools/fs/bash-program-position.js +56 -9
- package/dist/tools/fs/bash-readonly-classifier.d.ts +3 -3
- package/dist/tools/fs/fs-bash.d.ts +2 -2
- package/dist/tools/fs/fs-bash.js +8 -6
- package/dist/tools/fs/fs-glob.d.ts +86 -0
- package/dist/tools/fs/fs-glob.js +226 -0
- package/dist/tools/fs/fs-read.js +14 -14
- package/dist/tools/fs/fs-search-tools.js +7 -7
- package/dist/tools/fs/fs-shared.d.ts +8 -8
- package/dist/tools/fs/gh-rate-limit.d.ts +1 -1
- package/dist/tools/fs/notebook.d.ts +2 -2
- package/dist/tools/fs/pattern-kill-guard.d.ts +22 -0
- package/dist/tools/fs/pattern-kill-guard.js +397 -0
- package/dist/tools/fs/pdf.d.ts +9 -6
- package/dist/tools/fs/pdf.js +3 -3
- package/dist/tools/fs/program-read-model.d.ts +57 -7
- package/dist/tools/fs/program-read-model.js +11 -1
- package/dist/tools/fs/program-read-model.rows.js +78 -21
- package/dist/tools/fs/read-deny-home.js +3 -2
- package/dist/tools/fs/read-deny.d.ts +29 -7
- package/dist/tools/fs/read-deny.js +63 -22
- package/dist/tools/fs/removal-targets.d.ts +18 -8
- package/dist/tools/fs/removal-targets.js +47 -20
- package/dist/tools/fs/safety.d.ts +9 -9
- package/dist/tools/fs/search.d.ts +16 -6
- package/dist/tools/fs/search.js +20 -26
- package/dist/tools/fs/shell-read-argv.js +89 -12
- package/dist/tools/fs/shell-read-bindings.d.ts +31 -0
- package/dist/tools/fs/shell-read-bindings.js +41 -0
- package/dist/tools/fs/shell-read-check.js +12 -20
- package/dist/tools/fs/shell-read-environment.d.ts +5 -1
- package/dist/tools/fs/shell-read-environment.js +3 -2
- package/dist/tools/fs/shell-read-establish.d.ts +15 -0
- package/dist/tools/fs/shell-read-establish.js +19 -20
- package/dist/tools/fs/shell-read-judge.d.ts +4 -0
- package/dist/tools/fs/shell-read-judge.js +5 -2
- package/dist/tools/fs/shell-read-plan.js +24 -16
- package/dist/tools/fs/shell-read-start.d.ts +6 -1
- package/dist/tools/fs/shell-read-write-targets.d.ts +5 -1
- package/dist/tools/fs/shell-read-write-targets.js +2 -3
- package/dist/tools/fs/shell-reentry-text.d.ts +9 -0
- package/dist/tools/fs/shell-reentry-text.js +40 -2
- package/dist/tools/loop-tick.d.ts +2 -2
- package/dist/tools/scheduler-tools.js +5 -1
- package/dist/tools/task-list.d.ts +7 -7
- package/dist/tools/task-list.js +5 -1
- package/dist/tools/todo.js +65 -64
- package/dist/tools/web.d.ts +20 -15
- package/dist/tools/web.js +55 -69
- package/dist/tools/worktree.d.ts +3 -3
- package/dist/tools/worktree.js +3 -1
- package/package.json +1 -1
- package/test/export-surface.snapshot.json +5894 -5638
- package/wire-changes/core@7.55.0.json +3318 -0
- package/wire-changes/core@7.56.0.json +3891 -0
- package/wire-changes/mods-kernel@7.56.0.json +303 -0
- package/dist/core/store-contracts/session-store-incarnation-contract.d.ts +0 -39
- package/dist/core/store-contracts/session-store-incarnation-contract.js +0 -95
|
@@ -15,19 +15,23 @@ import { protocolOf } from "../protocol-table.js";
|
|
|
15
15
|
import { hasConversationContent } from "../session.js";
|
|
16
16
|
import { PROMPT_HASH_SALT } from "./prompt-hash-salt.js";
|
|
17
17
|
const CATALOG_DIGEST = catalogDigestOf(SEMA_DEFAULT_CATALOG);
|
|
18
|
-
|
|
18
|
+
const TASK_TEXT_DIGEST_SCHEME = "sid-sha256:";
|
|
19
|
+
function taskLayerDigestOf(sessionId, text) {
|
|
20
|
+
return `${TASK_TEXT_DIGEST_SCHEME}${createHash("sha256").update(sessionId).update("\u0000").update(text).digest("hex")}`;
|
|
21
|
+
}
|
|
22
|
+
function taskLayerOf(task, sessionId) {
|
|
19
23
|
return task.map(({ overlay: o, origin }) => ({
|
|
20
24
|
by: origin.by,
|
|
21
25
|
id: o.id,
|
|
22
26
|
op: o.op,
|
|
23
27
|
target: o.target,
|
|
24
|
-
...(o.text !== undefined ? {
|
|
28
|
+
...(o.text !== undefined ? { text: taskLayerDigestOf(sessionId, o.text) } : {}),
|
|
25
29
|
...(o.message !== undefined ? { message: o.message } : {}),
|
|
26
30
|
...(o.when !== undefined ? { when: o.when } : {}),
|
|
27
31
|
}));
|
|
28
32
|
}
|
|
29
33
|
export async function preparePromptAssembly(input) {
|
|
30
|
-
const { session, deps, internals, resume, sugar, host, binding, modBus, featureFlags, mcpInstructionsBlock, memoryBlock, envFacts,
|
|
34
|
+
const { session, deps, internals, resume, sugar, host, binding, modBus, featureFlags, mcpInstructionsBlock, memoryBlock, envFacts, promptTraits, tools, model, sessionId, onceLedger } = input;
|
|
31
35
|
const topLevel = internals?.parentTaskId === undefined && internals?.parentSessionId === undefined && internals?.parentCenterArtifactDigest === undefined;
|
|
32
36
|
const stored = await session.getPromptEpoch();
|
|
33
37
|
let centerAdoption;
|
|
@@ -82,10 +86,8 @@ export async function preparePromptAssembly(input) {
|
|
|
82
86
|
...featureFlags,
|
|
83
87
|
orchestrationEnabled: featureFlags.orchestrationEnabled && tools.some((t) => t.name === "Workflow"),
|
|
84
88
|
orchestrationDeferred: featureFlags.orchestrationDeferred && tools.some((t) => t.name === "Workflow"),
|
|
85
|
-
promptProfile,
|
|
86
|
-
fableMitigations,
|
|
87
89
|
};
|
|
88
|
-
const selectorRecord = selectorRecordOf(selectorsOf(facts, host, binding));
|
|
90
|
+
const selectorRecord = selectorRecordOf(selectorsOf(facts, host, binding, promptTraits));
|
|
89
91
|
const centerOverlays = centerOverlaysOf(centerAdoption);
|
|
90
92
|
const lowerAdds = new Map();
|
|
91
93
|
for (const { overlay } of [...sugar, ...centerOverlays])
|
|
@@ -105,6 +107,7 @@ export async function preparePromptAssembly(input) {
|
|
|
105
107
|
deployOverlays: composed.deploy,
|
|
106
108
|
host,
|
|
107
109
|
...(binding !== undefined ? { binding } : {}),
|
|
110
|
+
traits: promptTraits,
|
|
108
111
|
tools,
|
|
109
112
|
facts,
|
|
110
113
|
...(envFacts.cwd !== undefined ? { workspaceFolder: envFacts.cwd } : {}),
|
|
@@ -112,11 +115,10 @@ export async function preparePromptAssembly(input) {
|
|
|
112
115
|
memoryBlock,
|
|
113
116
|
buildEnvBlock: (date) => buildEnvironmentContext({ ...envFacts, date }) || undefined,
|
|
114
117
|
date: envFacts.date,
|
|
115
|
-
...(model.promptGuidance && model.promptGuidance.length > 0 ? { modelGuidance: model.promptGuidance.join("\n\n") } : {}),
|
|
116
118
|
onWarn: (message, phase) => deps.onError?.(new Error(message), { phase, sessionId }),
|
|
117
119
|
});
|
|
118
120
|
const deployLayer = composed.deploy.length > 0 ? digestOf(composed.deploy.map(({ overlay, origin }) => ({ by: origin.by, overlay }))) : undefined;
|
|
119
|
-
const taskLayer = taskOverlays.length > 0 ? digestOf(taskLayerOf(taskOverlays)) : undefined;
|
|
121
|
+
const taskLayer = taskOverlays.length > 0 ? digestOf(taskLayerOf(taskOverlays, sessionId)) : undefined;
|
|
120
122
|
const bindingLayer = digestOf(selectorRecord);
|
|
121
123
|
const renderers = rendererVector();
|
|
122
124
|
const identityFor = (center) => ({
|
|
@@ -23,7 +23,8 @@ import type { LegModBus } from "../mods/stations.js";
|
|
|
23
23
|
import type { ExecutionEnv, ThinkingLevel } from "../../internal/harness.js";
|
|
24
24
|
import type { Model } from "../../internal/llm.js";
|
|
25
25
|
import { type EnvironmentFacts } from "../../prompts/default.js";
|
|
26
|
-
import type {
|
|
26
|
+
import type { HostRole } from "../../prompt-assembly/catalog/schema.js";
|
|
27
|
+
import { type RequestBodySugar } from "../../prompt-assembly/sugar.js";
|
|
27
28
|
import type { ContainmentFace } from "../../tools/fs/index.js";
|
|
28
29
|
import type { LockedPreflight } from "../locked-config.js";
|
|
29
30
|
import type { MaterializedMcp } from "../mcp.js";
|
|
@@ -65,10 +66,6 @@ export interface PreparePromptInputsInput {
|
|
|
65
66
|
/** borrowed-readonly — the frozen tool face; `defer` (the Workflow short-pointer flag) and `selector` (with the spec's whole-face
|
|
66
67
|
* switch, the valve's reading that decides which servers' instructions are taught). */
|
|
67
68
|
toolFaceSnapshot: Pick<ToolFaceSnapshot, "defer" | "selector">;
|
|
68
|
-
/** borrowed-readonly — the resolved prompt profile (rides the flags to the legacy ctx). */
|
|
69
|
-
promptProfile: "simple" | "classic";
|
|
70
|
-
/** borrowed-readonly — the fable-mitigations profile axis (rides the flags with the profile). */
|
|
71
|
-
fableMitigations: boolean;
|
|
72
69
|
/** borrowed-readonly — trusted internals: `goalMode` (goal flag), `isolation` (worktree flag),
|
|
73
70
|
* `defaultSystemPrompt` (the sugar's third source). `undefined` on a standalone prepare. */
|
|
74
71
|
internals: Pick<RunInternals, "goalMode" | "isolation" | "defaultSystemPrompt"> | undefined;
|
|
@@ -81,8 +78,12 @@ export interface PreparePromptInputsInput {
|
|
|
81
78
|
delegation: {
|
|
82
79
|
readonly isNonForkChild: boolean;
|
|
83
80
|
};
|
|
84
|
-
/** borrowed-readonly — the resolved role; only its `systemPrompt`
|
|
85
|
-
|
|
81
|
+
/** borrowed-readonly — the resolved role; only its role-base statement (`promptRole` / `systemPrompt`) is read (the
|
|
82
|
+
* role-base decision's second source). */
|
|
83
|
+
resolvedRole: Pick<ResolvedRole, "promptRole" | "systemPrompt">;
|
|
84
|
+
/** borrowed-readonly — the task seat's role word as its door judged it (`TaskSpec.promptRole`, `resolveHost`): the
|
|
85
|
+
* role-base decision's first source, beside the spec's own text. */
|
|
86
|
+
taskRole: HostRole | undefined;
|
|
86
87
|
/** borrowed-mutable — the materialized MCP roster; `serverInstructions` (the disposed entries) and `tools` (each server's listing: did it list
|
|
87
88
|
* any tool) are read, and the instructions lane's ledger is stated: the block is what the model is told at the run's start. */
|
|
88
89
|
mcp: Pick<MaterializedMcp, "serverInstructions" | "tools" | "instructionsDelta">;
|
|
@@ -122,8 +123,9 @@ export interface PreparePromptInputsInput {
|
|
|
122
123
|
export interface PreparePromptInputsResult {
|
|
123
124
|
/** owned — the runtime feature flags (see {@link PromptFeatureFlags}). */
|
|
124
125
|
featureFlags: PromptFeatureFlags;
|
|
125
|
-
/** owned — the request-body sugar
|
|
126
|
-
|
|
126
|
+
/** owned — the request-body sugar: its overlays (the task class's first contributions, in application order) and the
|
|
127
|
+
* run's host role, from the one role-base decision. */
|
|
128
|
+
sugar: RequestBodySugar;
|
|
127
129
|
/** owned — the fenced MCP server-instructions block, or undefined when no server declared any. */
|
|
128
130
|
mcpInstructionsBlock: string | undefined;
|
|
129
131
|
/** owned — the environment facts the env tail renders from. Filled here; no later phase writes it
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { formatLocalDate, isValidTimeZone } from "../../prompts/default.js";
|
|
2
|
-
import {
|
|
2
|
+
import { requestBodySugar } from "../../prompt-assembly/sugar.js";
|
|
3
3
|
import { valveLeaves } from "../../agents/tool-filter.js";
|
|
4
4
|
import { instructionsTaught, toldAtStart } from "../mounted-mcp.js";
|
|
5
5
|
import { isIsolated } from "../remote-env.js";
|
|
6
|
-
import { readDateAnchor } from "./
|
|
6
|
+
import { readDateAnchor } from "./conversation-segment.js";
|
|
7
7
|
import { probeGitStatusLane } from "./git-status-frame.js";
|
|
8
8
|
import { renderMcpInstructionsEntry } from "./turn-attachments.js";
|
|
9
9
|
const ULTRA_REASONING_TIERS = new Set(["xhigh", "max"]);
|
|
10
10
|
import { compactionEnabled } from "../context-settings.js";
|
|
11
11
|
export async function preparePromptInputs(input) {
|
|
12
|
-
const { spec, deps, failClosedReason, lockedPreflight, selfOrchestrationActive, executionEnv, reminderMark, resolvedReadFace, resolvedWriteFace, toolFaceSnapshot,
|
|
12
|
+
const { spec, deps, failClosedReason, lockedPreflight, selfOrchestrationActive, executionEnv, reminderMark, resolvedReadFace, resolvedWriteFace, toolFaceSnapshot, internals, thinking, ownedEnv, delegation, resolvedRole, mcp, model, externalContentTargetActive, resume, handsEnabled, taskRootFinal, additionalRootsCanonical, additionalReadRootsCanonical, sessionId, session, advertisedWritableDirs } = input;
|
|
13
13
|
const promptPolicyEnabled = Boolean(lockedPreflight.toolPolicy);
|
|
14
14
|
const promptHooksEnabled = input.modBus.hasHandlers("classic.PreToolUse") || input.modBus.hasHandlers("classic.PostToolUse");
|
|
15
15
|
if (failClosedReason) {
|
|
@@ -24,15 +24,13 @@ export async function preparePromptInputs(input) {
|
|
|
24
24
|
writeFaceOpen: resolvedWriteFace === "open",
|
|
25
25
|
orchestrationEnabled: selfOrchestrationActive,
|
|
26
26
|
orchestrationDeferred: selfOrchestrationActive && (toolFaceSnapshot.defer?.includes("Workflow") ?? false),
|
|
27
|
-
promptProfile,
|
|
28
|
-
fableMitigations,
|
|
29
27
|
goalEnabled: internals?.goalMode === true,
|
|
30
28
|
awarenessEnabled: thinking !== undefined && ULTRA_REASONING_TIERS.has(thinking),
|
|
31
29
|
worktreeIsolated: internals?.isolation === "worktree" && ownedEnv !== undefined,
|
|
32
30
|
withinTaskCompactionEnabled: compactionEnabled(spec.compaction?.enabled, input.contextOverlay) && (spec.compaction?.withinTask ?? true),
|
|
33
31
|
isSubagent: delegation.isNonForkChild,
|
|
34
32
|
};
|
|
35
|
-
const sugar =
|
|
33
|
+
const sugar = requestBodySugar({ spec, resolvedRole, ...(input.taskRole !== undefined ? { taskRole: input.taskRole } : {}), ...(internals !== undefined ? { internals } : {}) });
|
|
36
34
|
const valveLeft = valveLeaves(spec, toolFaceSnapshot.selector);
|
|
37
35
|
const taught = mcp.serverInstructions.filter((entry) => instructionsTaught(valveLeft, entry.server, input.roster.tools, mcp.tools));
|
|
38
36
|
toldAtStart(mcp.instructionsDelta, new Set(taught.map((entry) => entry.server)));
|
|
@@ -36,10 +36,12 @@ export interface PrepareProtocolToolsInput {
|
|
|
36
36
|
* mount predicate, and whether a real client was acquired) and `a2a` (the declared peers the door judged: the materialize
|
|
37
37
|
* input and whether a handle was acquired) are read. */
|
|
38
38
|
lockedPreflight: Pick<LockedPreflight, "mcp" | "a2a">;
|
|
39
|
+
/** borrowed-readonly — the deployment's host floor as the config doors compiled it: each MCP http dial and every A2A request is judged by it. */
|
|
40
|
+
hostFloor: import("../host-floor.js").HostFloor | undefined;
|
|
39
41
|
/** borrowed-readonly — the REBOUND spec. Read: `principal` (the MCP header / the A2A identity), `tools`
|
|
40
42
|
* (the caller names both reserved-name guards check against), `excludeAllTools` (the valve's whole-face switch: the live roster lane's
|
|
41
|
-
* reading, and the first-dial gate). */
|
|
42
|
-
spec: Pick<TaskSpec, "principal" | "tools" | "excludeAllTools">;
|
|
43
|
+
* reading, and the first-dial gate), `signal` (the host's abort, which stops an MCP dial). */
|
|
44
|
+
spec: Pick<TaskSpec, "principal" | "tools" | "excludeAllTools" | "signal">;
|
|
43
45
|
/** borrowed-readonly — the deployment seats the materializers and their operator faces read: `onElicit`
|
|
44
46
|
* and `mcpImageResizer` ride into the MCP intake; `onError` takes the A2A warnings (no ledger — a peer is
|
|
45
47
|
* re-read every prepare); `mcpRevocations` + `onNotice` make the revocation wiring. */
|
|
@@ -7,14 +7,14 @@ import { materializeA2aTools } from "../a2a.js";
|
|
|
7
7
|
import { deliverEngineNotice } from "../types.js";
|
|
8
8
|
import { RosterBuilder } from "../tool-roster.js";
|
|
9
9
|
import { TOOL_WIRE_NAME_MAX_CHARS } from "../tool-face.js";
|
|
10
|
-
import { REFRESH_MCP_TOOLS_TOOL_NAME, toolFace } from "../tool-catalog-entries.js";
|
|
10
|
+
import { REFRESH_MCP_TOOLS_TOOL_NAME, mountRuleFace, toolFace } from "../tool-catalog-entries.js";
|
|
11
11
|
import { MCP_NAMESPACE, A2A_NAMESPACE } from "../protocol-table.js";
|
|
12
12
|
import { mintNamespacePrefix } from "../protocol-naming.js";
|
|
13
13
|
import { applyMcpToolFaces } from "./tool-face-overlay.js";
|
|
14
14
|
import { sectionDisposerOf } from "../prompt-section-seat.js";
|
|
15
15
|
import { thrownText } from "../thrown-value.js";
|
|
16
16
|
export async function prepareProtocolTools(input) {
|
|
17
|
-
const { lockedPreflight, spec, deps, mcpPool, reminderMark, reminderDisclosureCounts, runId, sessionId, onceLedger, roster, rosterSeat, remoteToolOffload, toolFaceSnapshot, toolEffects, axisExplicitNegatives, irreversibilityTier, irreversibleTools, egressTools, toolMarkSources, abortController, rollback } = input;
|
|
17
|
+
const { lockedPreflight, hostFloor, spec, deps, mcpPool, reminderMark, reminderDisclosureCounts, runId, sessionId, onceLedger, roster, rosterSeat, remoteToolOffload, toolFaceSnapshot, toolEffects, axisExplicitNegatives, irreversibilityTier, irreversibleTools, egressTools, toolMarkSources, abortController, rollback } = input;
|
|
18
18
|
const markedBy = (name, source) => {
|
|
19
19
|
const set = toolMarkSources.get(name);
|
|
20
20
|
if (set !== undefined)
|
|
@@ -30,7 +30,7 @@ export async function prepareProtocolTools(input) {
|
|
|
30
30
|
const leaves = valveLeaves(spec, toolFaceSnapshot.selector);
|
|
31
31
|
const resourcesReached = resourceFacesLeft(leaves);
|
|
32
32
|
const mcp = lockedPreflight.mcp?.length
|
|
33
|
-
? await materializeMcpTools(lockedPreflight.mcp, spec.principal, deps.onElicit, deps.mcpImageResizer, { reminderMark, counts: reminderDisclosureCounts }, mcpRevocationWiring(deps, runId), mcpPool === undefined ? undefined : { pool: mcpPool.pool, ownsPool: mcpPool.owned }, sectionDisposerOf(input.modBus, abortController.signal), (entry) => resourcesReached || serverReached(mintNamespacePrefix(MCP_NAMESPACE, entry.name)))
|
|
33
|
+
? await materializeMcpTools(lockedPreflight.mcp, spec.principal, deps.onElicit, deps.mcpImageResizer, { reminderMark, counts: reminderDisclosureCounts }, mcpRevocationWiring(deps, runId), mcpPool === undefined ? undefined : { pool: mcpPool.pool, ownsPool: mcpPool.owned }, sectionDisposerOf(input.modBus, abortController.signal), (entry) => resourcesReached || serverReached(mintNamespacePrefix(MCP_NAMESPACE, entry.name)), AbortSignal.any([abortController.signal, ...(spec.signal !== undefined ? [spec.signal] : [])]), hostFloor)
|
|
34
34
|
:
|
|
35
35
|
{ tools: [], toolAxes: [], warnings: [], serverInstructions: [], instructionsDelta: { pendingAdds: [], pendingRemovals: [] }, droppedTools: [], statuses: [], refresh: async () => [], reconnect: async (server) => ({ server, prefix: mintNamespacePrefix(MCP_NAMESPACE, server), outcome: "not_declared", reason: "this task declared no MCP servers", toolCount: 0, added: [], removed: [] }), dispose: async () => { } };
|
|
36
36
|
if (lockedPreflight.mcp?.length)
|
|
@@ -81,6 +81,7 @@ export async function prepareProtocolTools(input) {
|
|
|
81
81
|
if (lockedPreflight.mcp?.length) {
|
|
82
82
|
roster.mount({
|
|
83
83
|
...toolFace("refresh-mcp-tools"),
|
|
84
|
+
...{ ruleFace: mountRuleFace("refresh-mcp-tools") },
|
|
84
85
|
name: REFRESH_MCP_TOOLS_TOOL_NAME,
|
|
85
86
|
label: REFRESH_MCP_TOOLS_TOOL_NAME,
|
|
86
87
|
description: "Refresh the tool list of connected MCP servers. Never dials or re-dials connections — it only re-reads the tool list over the existing connection. The refreshed tools are available immediately; you can call them on your next step. Use when a server's expected tool is missing, or the tool list looks stale after a connection recovered. Omit `server` to refresh every connected server.",
|
|
@@ -166,7 +167,7 @@ export async function prepareProtocolTools(input) {
|
|
|
166
167
|
foldProtocolAxes(mcp.toolAxes, "MCP");
|
|
167
168
|
const a2aDeclared = lockedPreflight.a2a;
|
|
168
169
|
const a2a = a2aDeclared
|
|
169
|
-
? await materializeA2aTools(a2aDeclared, spec.principal, abortController.signal)
|
|
170
|
+
? await materializeA2aTools(a2aDeclared, spec.principal, abortController.signal, hostFloor)
|
|
170
171
|
: { tools: [], toolAxes: [], warnings: [], statuses: [], refresh: async () => [], dispose: async () => { } };
|
|
171
172
|
if (a2aDeclared)
|
|
172
173
|
rollback.push(function a2aDispose() { return a2a.dispose(); });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RunnerDeps, ToolEffect } from "../types.js";
|
|
2
2
|
import type { IrreversibilityTier, ReversibilityProbes } from "./contracts.js";
|
|
3
3
|
import type { ToolMarkSource } from "../ask-origin.js";
|
|
4
|
-
import type
|
|
4
|
+
import { type RosterSpec } from "./caller-roster.js";
|
|
5
5
|
export interface PrepareSafetyScanInput {
|
|
6
6
|
/** borrowed-readonly — the REBOUND spec (`spec′`, the config-doors result). The scan reads
|
|
7
7
|
* `tools`, `handsReadOnly` and `enablePlanMode`; it never mutates. Typed as a spec whose roster is snapshot faces. */
|
|
@@ -16,22 +16,19 @@ export interface PrepareSafetyScanInput {
|
|
|
16
16
|
* The six collections are **borrowed-mutable**: the driver and later phases fold into them IN
|
|
17
17
|
* PLACE (identity is part of the contract — closures alias these exact objects). Mutation owners
|
|
18
18
|
* after this phase, in driver order:
|
|
19
|
-
* · the
|
|
20
|
-
* · the MCP/A2A materialize fold + the runtime refresh seam (protocol-axis tighten registration;
|
|
19
|
+
* · the roster builder (`toolEffects`: every mount and unmount);
|
|
20
|
+
* · the MCP/A2A materialize fold + the runtime refresh seam (protocol-axis tighten registration and a protocol tool's effect;
|
|
21
21
|
* on refresh, `toolEffects.delete` resets a replaced tool's effect record for the fresh fold —
|
|
22
22
|
* the irreversible/egress sets deliberately KEEP their entries, the tighten-only residue);
|
|
23
|
-
* · the hands/read-face block's shellGate fold (Bash/Monitor tier escalation + probe seeding)
|
|
24
|
-
* · the background-task / Monitor / worktree mounts (fixed-name effect registration);
|
|
25
|
-
* · the prepare-final effect sync (fills MISSING entries from the final tool set — never
|
|
26
|
-
* overrides a scanned value).
|
|
23
|
+
* · the hands/read-face block's shellGate fold (Bash/Monitor tier escalation + probe seeding).
|
|
27
24
|
*/
|
|
28
25
|
export interface PrepareSafetyScanResult {
|
|
29
|
-
/** borrowed-mutable — per-tool effect registry (alias-complete), the path-policy / gate read.
|
|
30
|
-
*
|
|
31
|
-
* defect #2107 (7.55.0, design ticket): a selector that keeps a caller instance under a name and unmounts only the engine's leaves the engine's entry. */
|
|
26
|
+
/** borrowed-mutable — per-tool effect registry (alias-complete), the path-policy / gate read. Minted EMPTY here: the roster
|
|
27
|
+
* builder writes every entry, a caller tool's included, from the member that answers to the name after each mount or unmount. */
|
|
32
28
|
toolEffects: Map<string, ToolEffect>;
|
|
33
|
-
/** owned, read once — the wake reconcile's reading (`wakeEffectsOf`):
|
|
34
|
-
* definition this leg may still mount (`engineCandidatesOf`) folded
|
|
29
|
+
/** owned, read once — the wake reconcile's reading (`wakeEffectsOf`): the caller tools' own declarations (each name's kept
|
|
30
|
+
* instance, each alias's first claimer), with every catalog definition this leg may still mount (`engineCandidatesOf`) folded
|
|
31
|
+
* in as a candidate. Built before any mount; no later phase writes it. */
|
|
35
32
|
wakeEffects: Map<string, ToolEffect>;
|
|
36
33
|
/** borrowed-mutable — egress-marked tools (external writes; the gate never auto-allows them). */
|
|
37
34
|
egressTools: Set<string>;
|
|
@@ -2,6 +2,7 @@ import { callerToolNameProblem } from "../caller-tool-name.js";
|
|
|
2
2
|
import { describeToolCatalog } from "../tool-registry.js";
|
|
3
3
|
import { callerCardIdOf, rosterMemberBoundProblem, schemaKeyBoundProblem, survivorsByName } from "../tool-roster.js";
|
|
4
4
|
import { toolFaceProblem } from "./tool-face-overlay.js";
|
|
5
|
+
import { callerEngineContractProblem } from "./caller-roster.js";
|
|
5
6
|
const REPEAT_RISK = { read: 0, idempotent: 1, write: 2 };
|
|
6
7
|
const leastRepeatSafe = (a, b) => (REPEAT_RISK[a] >= REPEAT_RISK[b] ? a : b);
|
|
7
8
|
function engineCandidatesOf(spec, deps) {
|
|
@@ -31,7 +32,7 @@ function wakeEffectsOf(table, claimed, candidates) {
|
|
|
31
32
|
const tierOf = (t) => t.irreversibility ?? (t.reversibilityProbe ? "maybe" : undefined);
|
|
32
33
|
export function prepareSafetyScan(input) {
|
|
33
34
|
const { spec, deps } = input;
|
|
34
|
-
const
|
|
35
|
+
const declared = new Map();
|
|
35
36
|
const survivors = survivorsByName(spec.tools ?? []);
|
|
36
37
|
const claimedAliases = new Set();
|
|
37
38
|
const aliasClaims = [];
|
|
@@ -55,7 +56,7 @@ export function prepareSafetyScan(input) {
|
|
|
55
56
|
aliases: t.aliases,
|
|
56
57
|
...(t.contract !== undefined ? { contractId: t.contract.contractId, implementationRevision: t.contract.implementationRevision } : {}),
|
|
57
58
|
...(typeof t.modelGate === "string" ? { modelGate: t.modelGate } : {}),
|
|
58
|
-
});
|
|
59
|
+
}) ?? callerEngineContractProblem(t);
|
|
59
60
|
if (bound !== undefined) {
|
|
60
61
|
const e = new Error(`A caller tool cannot ride a roster row: ${bound.message}.`);
|
|
61
62
|
e.code = bound.code;
|
|
@@ -72,6 +73,7 @@ export function prepareSafetyScan(input) {
|
|
|
72
73
|
const declared = {
|
|
73
74
|
...(t.family !== undefined ? { family: t.family } : {}),
|
|
74
75
|
...(t.pathTarget !== undefined ? { pathTarget: t.pathTarget } : {}),
|
|
76
|
+
...(t.hostTarget !== undefined ? { hostTarget: t.hostTarget } : {}),
|
|
75
77
|
...(t.ruleFace !== undefined ? { ruleFace: t.ruleFace } : {}),
|
|
76
78
|
...(t.renderHints !== undefined ? { renderHints: t.renderHints } : {}),
|
|
77
79
|
};
|
|
@@ -91,7 +93,7 @@ export function prepareSafetyScan(input) {
|
|
|
91
93
|
throw e;
|
|
92
94
|
}
|
|
93
95
|
if (t.effect && survivors.get(t.name) === t) {
|
|
94
|
-
|
|
96
|
+
declared.set(t.name, t.effect);
|
|
95
97
|
}
|
|
96
98
|
const tier = tierOf(t);
|
|
97
99
|
if (tier !== undefined) {
|
|
@@ -114,9 +116,7 @@ export function prepareSafetyScan(input) {
|
|
|
114
116
|
}
|
|
115
117
|
}
|
|
116
118
|
const candidates = engineCandidatesOf(spec, deps);
|
|
117
|
-
const engineNames = new Set(candidates.map(([n]) => n));
|
|
118
119
|
for (const t of survivors.values()) {
|
|
119
|
-
const tier = tierOf(t);
|
|
120
120
|
for (const alias of t.aliases ?? []) {
|
|
121
121
|
if (alias === t.name || survivors.has(alias))
|
|
122
122
|
continue;
|
|
@@ -125,27 +125,12 @@ export function prepareSafetyScan(input) {
|
|
|
125
125
|
continue;
|
|
126
126
|
claimedAliases.add(alias);
|
|
127
127
|
if (t.effect)
|
|
128
|
-
|
|
129
|
-
if (engineNames.has(alias))
|
|
130
|
-
continue;
|
|
131
|
-
if (tier !== undefined) {
|
|
132
|
-
irreversibilityTier.set(alias, tier);
|
|
133
|
-
if (tier === "always" || tier === "maybe") {
|
|
134
|
-
irreversibleTools.add(alias);
|
|
135
|
-
markedBy(alias, "deployment");
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (t.reversibilityProbe)
|
|
139
|
-
reversibilityProbes.set(alias, t.reversibilityProbe);
|
|
140
|
-
if (t.egress) {
|
|
141
|
-
egressTools.add(alias);
|
|
142
|
-
markedBy(alias, "deployment");
|
|
143
|
-
}
|
|
128
|
+
declared.set(alias, t.effect);
|
|
144
129
|
}
|
|
145
130
|
}
|
|
146
131
|
return {
|
|
147
|
-
toolEffects,
|
|
148
|
-
wakeEffects: wakeEffectsOf(
|
|
132
|
+
toolEffects: new Map(),
|
|
133
|
+
wakeEffects: wakeEffectsOf(declared, [...claimedAliases, ...survivors.keys()], [...aliasClaims, ...candidates]),
|
|
149
134
|
egressTools,
|
|
150
135
|
irreversibleTools,
|
|
151
136
|
irreversibilityTier,
|
|
@@ -114,6 +114,8 @@ export interface PrepareSuspendSagaInput {
|
|
|
114
114
|
writeFaceCheckpointSection: () => SerializedCheckpointState["writeFace"];
|
|
115
115
|
/** borrowed-readonly — the inherited-gate phase's SKILL-GRANT section builder (the row's `skillGrants`). */
|
|
116
116
|
skillGrantCheckpointSection: () => SerializedCheckpointState["skillGrants"];
|
|
117
|
+
/** borrowed-readonly — the leg's skill scopes (the mods admission's record): the row's `skillScopes`, read at the park. */
|
|
118
|
+
skillScopesCheckpointSection: () => SerializedCheckpointState["skillScopes"];
|
|
117
119
|
/** borrowed-readonly — the leg's reminder provenance mark (travels with the row). */
|
|
118
120
|
reminderMark: string;
|
|
119
121
|
/** borrowed-readonly — the hand's live tracked cwd, or undefined; `current` is read at mint time. Not written here. */
|
|
@@ -82,9 +82,10 @@ function stampPlacementRootSessionId(placementRootResolved) {
|
|
|
82
82
|
return placementValueOrAbsent(placementRootResolved);
|
|
83
83
|
}
|
|
84
84
|
export function prepareSuspendSaga(input) {
|
|
85
|
-
const { gateMachineryActive, abortController, harness, checkpointStore, deps, sessionId, hostTaskId, taskScope, liveSpendRef, resume, nestedStats, internals, activeTools, outputRef, readFileStateForCheckpoint, faceCheckpointSection, writeFaceCheckpointSection, skillGrantCheckpointSection, reminderMark, handsCwdRef, handsRoot, handsHome, worktreeSessionRef, undeliveredContinuationRef, inheritedParentConstraints, seedInheritedGate, ancestorRulesNow, inheritedShellGate, permissionMode, inheritedAdmittedOrgScopes, inheritedPathRuleAnchors, inheritedPathRuleInstallations, ownOrgVerdictRef, orgGovernedProvenance, announcedListingsRef, gitStatusRef, hookIdentity, placementRootResolved, checkpointScope, toolCeiling, toolListsJudged, ownToolLists, externalContentTargetActive, crossBoundary, remoteEnvFailures, memoryEngineSession, suspendLoopRef, ownedEnv, incompleteSuspendAdapter } = input;
|
|
85
|
+
const { gateMachineryActive, abortController, harness, checkpointStore, deps, sessionId, hostTaskId, taskScope, liveSpendRef, resume, nestedStats, internals, activeTools, outputRef, readFileStateForCheckpoint, faceCheckpointSection, writeFaceCheckpointSection, skillGrantCheckpointSection, skillScopesCheckpointSection, reminderMark, handsCwdRef, handsRoot, handsHome, worktreeSessionRef, undeliveredContinuationRef, inheritedParentConstraints, seedInheritedGate, ancestorRulesNow, inheritedShellGate, permissionMode, inheritedAdmittedOrgScopes, inheritedPathRuleAnchors, inheritedPathRuleInstallations, ownOrgVerdictRef, orgGovernedProvenance, announcedListingsRef, gitStatusRef, hookIdentity, placementRootResolved, checkpointScope, toolCeiling, toolListsJudged, ownToolLists, externalContentTargetActive, crossBoundary, remoteEnvFailures, memoryEngineSession, suspendLoopRef, ownedEnv, incompleteSuspendAdapter } = input;
|
|
86
86
|
if (!gateMachineryActive)
|
|
87
87
|
return { saga: undefined };
|
|
88
|
+
const taskAccess = { owner: hostTaskId, scope: taskScope, sessionId };
|
|
88
89
|
const inFlightSpendMicroUsd = () => {
|
|
89
90
|
const own = liveSpendRef.get?.().costMicroUsd ?? 0;
|
|
90
91
|
const seededNested = resume?.seed.nestedStats.costMicroUsd;
|
|
@@ -114,6 +115,7 @@ export function prepareSuspendSaga(input) {
|
|
|
114
115
|
readFace: faceCheckpointSection(),
|
|
115
116
|
writeFace: writeFaceCheckpointSection(),
|
|
116
117
|
skillGrants: skillGrantCheckpointSection(),
|
|
118
|
+
skillScopes: skillScopesCheckpointSection(),
|
|
117
119
|
reminderMark,
|
|
118
120
|
repairBundle: repairBundleForCheckpoint(parkedSpendMicroUsd),
|
|
119
121
|
workspaceHandle,
|
|
@@ -122,10 +124,7 @@ export function prepareSuspendSaga(input) {
|
|
|
122
124
|
handsHome,
|
|
123
125
|
activeWorktree: worktreeSessionRef?.current ? { ...worktreeSessionRef.current } : undefined,
|
|
124
126
|
runningBackgroundTasks: (() => {
|
|
125
|
-
const live = defaultTaskRegistry
|
|
126
|
-
.list({ owner: hostTaskId, scope: taskScope, sessionId })
|
|
127
|
-
.filter((t) => t.status === "pending" || t.status === "running")
|
|
128
|
-
.map((t) => ({ id: t.task_id, ...(t.description !== undefined ? { description: t.description } : {}) }));
|
|
127
|
+
const live = defaultTaskRegistry.liveTasks(taskAccess).filter((t) => t.status !== "parked").map((t) => ({ id: t.task_id, ...(t.description !== undefined ? { description: t.description } : {}) }));
|
|
129
128
|
const owed = undeliveredContinuationRef.current.orphanTasks.filter((o) => !live.some((t) => t.id === o.id));
|
|
130
129
|
const all = [...owed, ...live];
|
|
131
130
|
return all.length > 0 ? all : undefined;
|
|
@@ -200,7 +199,7 @@ export function prepareSuspendSaga(input) {
|
|
|
200
199
|
return { tag: "absent" };
|
|
201
200
|
if (memoryEngineSession)
|
|
202
201
|
await memoryEngineSession.harvest("checkpoint");
|
|
203
|
-
const recordUnwritten = await crossBoundary.owe(cp.leafId).then((entryId) => void (entryId !== undefined && (cp = { ...cp, leafId: entryId })), (err) => ({ err }));
|
|
202
|
+
const recordUnwritten = await crossBoundary.owe(cp.leafId, () => defaultTaskRegistry.owedDeliveries(taskAccess)).then((entryId) => void (entryId !== undefined && (cp = { ...cp, leafId: entryId })), (err) => ({ err }));
|
|
204
203
|
if (cutSignal?.aborted) {
|
|
205
204
|
if (remoteEnv !== undefined && remoteHandle?.snapshotId !== undefined) {
|
|
206
205
|
const back = await compensatePausedVM(remoteEnv, remoteHandle.snapshotId);
|
|
@@ -62,7 +62,7 @@ export declare function resolveEnvLifetimeExpiry(env: ExecutionEnv, observedAt:
|
|
|
62
62
|
unanchored: true;
|
|
63
63
|
} | undefined;
|
|
64
64
|
export { resolveCheckpointStore } from "../checkpoint-store.js";
|
|
65
|
-
export {
|
|
65
|
+
export { resolveAttachmentsConfig, resolvePromptTraits, resolveTaskLimits } from "./prepare-config-doors.js";
|
|
66
66
|
export { rebaseWorkspacePath, rebaseWorkspacePathAcross } from "./workspace-path.js";
|
|
67
67
|
/** Everything the run loop needs, built once by {@link prepareTask} (task setup, isolated from the loop). */
|
|
68
68
|
/**
|