@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
|
@@ -6,7 +6,7 @@ import { announceTranscriptIntegrityGapOnce, canAccessAgentRecord, clearRevivedR
|
|
|
6
6
|
import { uuidv7 } from "../internal/harness.js";
|
|
7
7
|
import { MAILBOX_TOMBSTONED_RECIPIENT_CODE, mailboxCrossProcessMountVerdict } from "../core/mailbox-store.js";
|
|
8
8
|
import { peerSendVerdictSeverity } from "./cross-session-judge.js";
|
|
9
|
-
import { parsePeerSessionAddress, peerSessionBoxHandle, resolvePeerSessions } from "./peer-directory.js";
|
|
9
|
+
import { listPeerDirectory, parsePeerSessionAddress, peerSessionBoxHandle, peerSessionLane, resolvePeerSessions } from "./peer-directory.js";
|
|
10
10
|
import { peerIdleMachineFor } from "./peer-idle.js";
|
|
11
11
|
import { PEER_IDLE_OUTSTANDING_CAP, PEER_IDLE_SUBSCRIPTION_TTL_MS, peerIdleNoticeLabel } from "./peer-notices.js";
|
|
12
12
|
import { escapeAttributeValue, escapeEnvelopeTag, isObserverTaskId, OBSERVER_SENDMESSAGE_SENDER_REFUSAL, OBSERVER_SENDMESSAGE_TARGET_REFUSAL, } from "./observer.js";
|
|
@@ -15,7 +15,7 @@ import { neutralizePeerBody } from "./cross-session-envelope.js";
|
|
|
15
15
|
import { SUBAGENT_RESUME_CAP, SubagentRetainLedger, getSessionRetainLedger } from "./retain-ledger.js";
|
|
16
16
|
import { createSubagentResume } from "./subagent.js";
|
|
17
17
|
import { appendHopToken, judgePeerAdmission, peerAxisToken, resolvePeerLaneConfig, PEER_MESSAGE_NOTICE, } from "./peer-admission.js";
|
|
18
|
-
import { toolFace } from "../core/tool-catalog-entries.js";
|
|
18
|
+
import { mountRuleFace, toolFace } from "../core/tool-catalog-entries.js";
|
|
19
19
|
import { thrownText } from "../core/thrown-value.js";
|
|
20
20
|
import { assertNoRetiredKeys } from "../core/retired-keys.js";
|
|
21
21
|
import { sliceHeadSafe } from "../core/surrogate-safe-slice.js";
|
|
@@ -163,6 +163,7 @@ export function createSendMessageTool(opts) {
|
|
|
163
163
|
return defineTool({
|
|
164
164
|
name: SEND_MESSAGE_TOOL_NAME,
|
|
165
165
|
...toolFace("send-message"),
|
|
166
|
+
ruleFace: mountRuleFace("send-message"),
|
|
166
167
|
executionMode: "parallel",
|
|
167
168
|
description: `Send a follow-up message to a previously spawned background agent. ` +
|
|
168
169
|
`Your plain text output is NOT visible to other agents — to communicate, you MUST call this tool. Messages addressed to you are delivered automatically; you don't check an inbox. ` +
|
|
@@ -187,7 +188,7 @@ export function createSendMessageTool(opts) {
|
|
|
187
188
|
: `Continuing a finished agent requires the run to retain sub-agent sessions; when the session was not ` +
|
|
188
189
|
`retained (or is no longer held) you get an honest error and should launch a new agent with the needed context instead.`) +
|
|
189
190
|
(peerLane.active
|
|
190
|
-
? ` Peer SESSIONS — other sessions of this engine for the same user${opts.peerListingMounted === false ? "" : opts.peerListingMounted === true ? " (list them with ListAgents)" : " (list them with ListAgents where that tool is mounted)"} — are addressed by name, by \`name [ref]\` when a name is ambiguous, or by their \`session.<id>\` address. A message to a peer is parked durably in its session box and read at its next turn boundary (an offline peer reads it when it next runs); the receipt confirms the box accepted it, not that the peer acted on it
|
|
191
|
+
? ` Peer SESSIONS — other sessions of this engine for the same user${opts.peerListingMounted === false ? "" : opts.peerListingMounted === true ? " (list them with ListAgents)" : " (list them with ListAgents where that tool is mounted)"} — are addressed by name, by \`name [ref]\` when a name is ambiguous, or by their \`session.<id>\` address. A message to a peer is parked durably in its session box and read at its next turn boundary (an offline peer reads it when it next runs); the receipt confirms the box accepted it, not that the peer acted on it.${opts.peerChannel !== undefined ? " A peer whose box is not in this host's mailbox store — a Claude Code session, or a session of this engine on another store — is reached over its socket instead: nothing is parked for it, the message is sent once and only while it runs, and its receipt says so." : ""}`
|
|
191
192
|
: ""),
|
|
192
193
|
parameters: sendMessageParameters,
|
|
193
194
|
execute: async (args, ctx) => {
|
|
@@ -262,7 +263,7 @@ export function createSendMessageTool(opts) {
|
|
|
262
263
|
let ownRowName;
|
|
263
264
|
const resolvePeerTarget = async () => {
|
|
264
265
|
try {
|
|
265
|
-
const rows = await opts.peerDirectory
|
|
266
|
+
const rows = await listPeerDirectory(opts.peerDirectory, { scope: peerScope ?? "" });
|
|
266
267
|
if (peerSelfSessionId !== undefined)
|
|
267
268
|
ownRowName = rows.find((r) => r.sessionId.toLowerCase() === peerSelfSessionId.toLowerCase())?.name;
|
|
268
269
|
return resolvePeerSessions(rows, to, peerSelfSessionId !== undefined ? { sessionId: peerSelfSessionId } : undefined);
|
|
@@ -282,6 +283,8 @@ export function createSendMessageTool(opts) {
|
|
|
282
283
|
}
|
|
283
284
|
const modeClass = opts.peerSelfSession?.modeClass?.();
|
|
284
285
|
const now = Date.now();
|
|
286
|
+
if (peerSessionLane(record, opts.mailbox) === "uds")
|
|
287
|
+
return deliverOverSocket(record, peerLabel, modeClass);
|
|
285
288
|
let boxFull = false;
|
|
286
289
|
try {
|
|
287
290
|
boxFull = (await opts.mailbox.peekCount(peerScope, handle)) >= admissionConfig.maxQueuedPeerMessages;
|
|
@@ -343,9 +346,10 @@ export function createSendMessageTool(opts) {
|
|
|
343
346
|
}
|
|
344
347
|
}
|
|
345
348
|
}
|
|
349
|
+
const doorbell = opts.peerChannel !== undefined && record.sockPath !== undefined && record.liveness === "live" && (seq !== undefined || subscriptionSeq !== undefined) ? await opts.peerChannel.nudge(record.sockPath).catch(() => false) : undefined;
|
|
346
350
|
let rowRestored = "present";
|
|
347
351
|
try {
|
|
348
|
-
const rowsNow = await opts.peerDirectory
|
|
352
|
+
const rowsNow = await listPeerDirectory(opts.peerDirectory, { scope: peerScope });
|
|
349
353
|
const nowRow = rowsNow.find((r) => r.sessionId.toLowerCase() === record.sessionId.toLowerCase());
|
|
350
354
|
if (nowRow?.liveness === "deleted")
|
|
351
355
|
rowRestored = "deleted_meanwhile";
|
|
@@ -372,7 +376,7 @@ export function createSendMessageTool(opts) {
|
|
|
372
376
|
}
|
|
373
377
|
return {
|
|
374
378
|
content: `Idle subscription recorded for ${peerLabel} (record seq ${subscriptionSeq}): you will get ONE automated notice when that session next goes idle or exits (one-shot; it expires unheard after ${PEER_IDLE_SUBSCRIPTION_TTL_MS / 3_600_000} h). No message was sent. Do not poll for it; continue with your task.${rowNote}`,
|
|
375
|
-
details: { type: "send-message", status: "peer_idle_subscribed", to, address: handle, subscription, ...(subscriptionSeq !== undefined ? { subscriptionSeq } : {}), ...(rowRestored !== "present" ? { directoryRow: rowRestored } : {}) },
|
|
379
|
+
details: { type: "send-message", status: "peer_idle_subscribed", to, address: handle, subscription, ...(subscriptionSeq !== undefined ? { subscriptionSeq } : {}), ...(rowRestored !== "present" ? { directoryRow: rowRestored } : {}), ...(doorbell !== undefined ? { doorbell } : {}) },
|
|
376
380
|
};
|
|
377
381
|
}
|
|
378
382
|
const verdict = { ok: true, disposition: offline ? "parked_offline" : "queued", via: "store" };
|
|
@@ -380,7 +384,32 @@ export function createSendMessageTool(opts) {
|
|
|
380
384
|
content: offline
|
|
381
385
|
? `Message parked for ${peerLabel}: that session is offline, so the message was parked durably in its session box (seq ${seq}) and will be delivered when it next runs — subject to the deployment's mailbox retirement policy, which does not notify you. Continue with your task; do not resend the same content.${subscriptionNote}${rowNote}`
|
|
382
386
|
: `Message queued for ${peerLabel} (seq ${seq}): it is parked durably in that session's box and will be read at its next turn boundary. This receipt confirms acceptance into the box, not the peer's judgment of the message. Continue with your task; do not resend the same content.${subscriptionNote}${rowNote}`,
|
|
383
|
-
details: { type: "send-message", status: offline ? "peer_parked_offline" : "peer_queued", to, address: handle, seq, verdict, ...(subscription !== undefined ? { subscription } : {}), ...(subscriptionSeq !== undefined ? { subscriptionSeq } : {}), ...(rowRestored !== "present" ? { directoryRow: rowRestored } : {}) },
|
|
387
|
+
details: { type: "send-message", status: offline ? "peer_parked_offline" : "peer_queued", to, address: handle, seq, verdict, ...(subscription !== undefined ? { subscription } : {}), ...(subscriptionSeq !== undefined ? { subscriptionSeq } : {}), ...(rowRestored !== "present" ? { directoryRow: rowRestored } : {}), ...(doorbell !== undefined ? { doorbell } : {}) },
|
|
388
|
+
};
|
|
389
|
+
};
|
|
390
|
+
const deliverOverSocket = async (record, peerLabel, modeClass) => {
|
|
391
|
+
if (notifyWhenIdle)
|
|
392
|
+
return peerRefusal("peer_send.invalid_target", `notify_when_idle is only supported for peer sessions that drain this host's mailbox store, and ${peerLabel} is reached over its socket. Nothing was sent.`);
|
|
393
|
+
if (opts.peerChannel === undefined)
|
|
394
|
+
return peerRefusal("peer_send.not_reachable", `${peerLabel} does not drain this host's mailbox store (a Claude Code session, or a session of this engine on another store), so a message parked here would never be read, and no socket channel is wired here to reach it (RunnerDeps.peerChannel). Nothing was sent.`);
|
|
395
|
+
if (record.liveness !== "live")
|
|
396
|
+
return peerRefusal("peer_send.not_reachable", `${peerLabel} is reached only over its socket and is not running; nothing holds a message for it while it is down. Nothing was sent.`);
|
|
397
|
+
const recipientKey = peerAxisToken(peerScope, "s", record.sessionId);
|
|
398
|
+
const sendVerdict = judgePeerAdmission(peerScope, recipientKey, { senderKey, body: message, prospectiveChain, ownTokens: [recipientKey] }, admissionConfig, undefined, "send");
|
|
399
|
+
if (!sendVerdict.ok)
|
|
400
|
+
return admissionRefusal(sendVerdict.reason, peerLabel);
|
|
401
|
+
const verdict = await opts.peerChannel.dial(record.sockPath, {
|
|
402
|
+
body: message,
|
|
403
|
+
...(peerSelfSessionId !== undefined ? { fromSession: peerSelfSessionId } : {}),
|
|
404
|
+
fromName: ownRowName ?? opts.peerSelfSession?.name ?? senderLabel,
|
|
405
|
+
...(modeClass === "bypass" || modeClass === "prompting" ? { fromMode: modeClass } : {}),
|
|
406
|
+
hopChain: prospectiveChain,
|
|
407
|
+
});
|
|
408
|
+
if (!verdict.ok)
|
|
409
|
+
return peerRefusal(verdict.code, `${peerLabel} could not be reached over its socket — ${verdict.message}.${verdict.code === "peer_send.send_uncertain" ? " It may have arrived: do not resend the same content blindly." : " Nothing was delivered."}`);
|
|
410
|
+
return {
|
|
411
|
+
content: `Message sent to ${peerLabel} over its socket: it does not drain this host's mailbox store, so nothing is parked here, and the socket answers no acknowledgement — the message was written to its socket once and the connection closed cleanly, which is all this receipt confirms (not that its session took it in, nor that its model read it). Continue with your task; do not resend the same content.`,
|
|
412
|
+
details: { type: "send-message", status: "peer_delivered", to, address: peerSessionBoxHandle(record.sessionId), verdict },
|
|
384
413
|
};
|
|
385
414
|
};
|
|
386
415
|
const settlePeerResolution = async (r) => {
|
|
@@ -877,7 +906,7 @@ export function createSendMessageTool(opts) {
|
|
|
877
906
|
(suggestion !== undefined ? ` Did you mean: ${suggestion}?` : "") +
|
|
878
907
|
(labels.length > 0 ? ` Running background agents: ${labels.join(", ")}.` : "") +
|
|
879
908
|
` Reachable from here: ${reachable.join("; ").slice(0, 300)}.` +
|
|
880
|
-
` Note: a completed foreground agent is not
|
|
909
|
+
` Note: a completed foreground agent is not addressable (nothing retains its transcript) — name an agent or run it in the background to keep it addressable (a named agent always runs in the background), or launch a new agent.`,
|
|
881
910
|
details: { error: "not_found", to, ...(suggestion !== undefined ? { suggestion } : {}) },
|
|
882
911
|
isError: true,
|
|
883
912
|
};
|
|
@@ -65,7 +65,7 @@ interface ReviewSample {
|
|
|
65
65
|
/** Layered head/middle/tail sample of `text` under `budget`, with each skipped span marked in band so the
|
|
66
66
|
* reader can see that the material is discontinuous. Exported for tests (window determinism). */
|
|
67
67
|
export declare function layeredReviewSample(text: string, budget?: number, windows?: number): ReviewSample;
|
|
68
|
-
/** Default model-facing name of the delegation tool (
|
|
68
|
+
/** Default model-facing name of the delegation tool (`Agent`; legacy alias `Task`). */
|
|
69
69
|
export declare const DEFAULT_SUBAGENT_TOOL_NAME = "Agent";
|
|
70
70
|
/**
|
|
71
71
|
* extraTools 快审 S4 — per-root-spawn-tree cap on `extraTools` factory evaluations. The factory runs
|
|
@@ -77,8 +77,8 @@ export declare const DEFAULT_SUBAGENT_TOOL_NAME = "Agent";
|
|
|
77
77
|
* runs) with the same generic-note + host-sink disclosure as a factory failure (S3 posture).
|
|
78
78
|
*/
|
|
79
79
|
export declare const EXTRA_TOOLS_MAX_FACTORY_CALLS_PER_TREE = 64;
|
|
80
|
-
/** RB-292 — default delegation nesting depth
|
|
81
|
-
*
|
|
80
|
+
/** RB-292 — default delegation nesting depth: 3, the reference's own default (`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`, cli296.js:245773).
|
|
81
|
+
* Semantics (off-by-one)
|
|
82
82
|
* are pinned on {@link SubagentToolOptions.maxDepth}. */
|
|
83
83
|
export declare const DEFAULT_SUBAGENT_MAX_DEPTH = 3;
|
|
84
84
|
/**
|
|
@@ -91,31 +91,17 @@ export declare const EXTRA_TOOLS_FAILED_NOTE = "note: extraTools evaluation fail
|
|
|
91
91
|
/** extraTools 快审 S4 — the fixed model-facing disclosure for a budget-exhausted (skipped) evaluation. */
|
|
92
92
|
export declare const EXTRA_TOOLS_BUDGET_NOTE = "note: extraTools evaluation was skipped \u2014 this spawn tree exhausted its factory-call budget (64); no dynamic tools were injected for this spawn.";
|
|
93
93
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* the cumulative semantics match without a fold step. Delegation calls themselves are excluded from every
|
|
100
|
-
* bucket (CC excludes `gi`=Agent and `yU`=Task, 206:540453-540455). `linesAdded`/`linesRemoved` mirror CC
|
|
101
|
-
* `i3r` (206:399357-399375): LINE COUNTS OF THE EDIT ARGUMENTS (new/old_string, Write content, NotebookEdit
|
|
102
|
-
* new_source) — not a real diff; honest to CC's own approximation.
|
|
94
|
+
* The Agent completed card's structured `toolStats`: seven counters, each `.optional()`. sema counts them on the
|
|
95
|
+
* shared forward-event sink — the sink re-threads DESCENDANT events too (grandchildren bubble through, see
|
|
96
|
+
* subagent-steps.ts header), so nested delegations are counted without a separate fold step. Delegation calls
|
|
97
|
+
* themselves are excluded from every bucket. `linesAdded`/`linesRemoved` are LINE COUNTS OF THE EDIT ARGUMENTS
|
|
98
|
+
* (new/old_string, Write content, NotebookEdit new_source) — not a real diff.
|
|
103
99
|
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* (
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
* (`F2_ = ARTIFACT_TOOL_NAME` @409045) with `input.action !== "list"`, and it is the one counter
|
|
110
|
-
* that also joins the "did this child do anything at all" sum (@408306-408312). sema has no
|
|
111
|
-
* Artifact tool, so there is no call to count: the field is deliberately NOT added (an
|
|
112
|
-
* always-absent counter is noise on every consumer). Registered as a divergence candidate — if a
|
|
113
|
-
* deployment ever mounts an artifact-shaped tool, this is where it lands.
|
|
114
|
-
* • 220's Agent result carries `modelsUsed` (ordered distinct models, emitted only when length > 1
|
|
115
|
-
* @408398) and `resolvedModel` (@466120-466127) beside toolStats. sema reports the resolved model
|
|
116
|
-
* through `TaskResult.model` and has no mid-run swap history on the delegation card. Also
|
|
117
|
-
* registered rather than added: the swap list needs a per-turn model ledger sema does not keep,
|
|
118
|
-
* and inventing a one-element array would be a face without a mechanism.
|
|
100
|
+
* Two fields of the reference's card are deliberately NOT carried, each registered as a divergence candidate:
|
|
101
|
+
* • `frameCount` (cli296.js:34029), a count of artifact-tool calls.
|
|
102
|
+
* • `modelsUsed` (cli296.js:54014), the ordered distinct models: sema reports the resolved model through
|
|
103
|
+
* `TaskResult.model` and has no mid-run swap history on the delegation card; the swap list needs a per-turn
|
|
104
|
+
* model ledger sema does not keep, and inventing a one-element array would be a face without a mechanism.
|
|
119
105
|
*/
|
|
120
106
|
export interface SubagentToolStats {
|
|
121
107
|
readCount: number;
|
|
@@ -134,9 +120,9 @@ export interface SubagentToolStats {
|
|
|
134
120
|
*/
|
|
135
121
|
export declare const FORK_SUBAGENT_TYPE = "fork";
|
|
136
122
|
/**
|
|
137
|
-
* The BUILT-IN "general-purpose" `subagent_type` alias (
|
|
123
|
+
* The BUILT-IN "general-purpose" `subagent_type` alias (the reference ships the same built-in definition:
|
|
138
124
|
* CC's agent registry always contains a built-in `general-purpose` definition with `tools: ["*"]`, and an
|
|
139
|
-
* OMITTED `subagent_type` defaults to it
|
|
125
|
+
* OMITTED `subagent_type` defaults to it). CC-ecosystem prompts/skills
|
|
140
126
|
* therefore hardcode `subagent_type: "general-purpose"` freely. sema's equivalent of that built-in is the
|
|
141
127
|
* plain clean-context delegation (full tool pool, SUBAGENT_PROMPT persona) — so the literal FOLDS to the
|
|
142
128
|
* omitted-type path instead of bouncing as an unknown type. A deployment (or builtin) agent definition of
|
|
@@ -182,9 +168,6 @@ export interface SubagentWorktreeIsolation {
|
|
|
182
168
|
/** CC "auto-cleaned if unchanged": remove the worktree when clean, keep it when the child made changes. */
|
|
183
169
|
finish(worktreeDir: string): Promise<"pruned" | "kept">;
|
|
184
170
|
}
|
|
185
|
-
/** Is `result` one of the delegation tool's refusals before any child ran ({@link notStartedResult})? The brand only: the identity
|
|
186
|
-
* of its `details` object, never what the result says. */
|
|
187
|
-
export declare function isNotStartedDelegationResult(result: unknown): boolean;
|
|
188
171
|
/**
|
|
189
172
|
* Build the {@link SubagentWorktreeIsolation} helper over a base env + repo root. Called by `prepare-task`
|
|
190
173
|
* (closure over the run's ExecutionEnv/taskRootPath — trusted, mirrors the scheduler/fork mounts). The
|
|
@@ -568,10 +551,7 @@ export interface SubagentToolOptions {
|
|
|
568
551
|
* `WiringManifest.fleet.subagentTranscripts` is the ADDRESSABILITY tier and folds to `"none"` on
|
|
569
552
|
* the absent-row-store arm before it looks at a session store, so it cannot separate the first
|
|
570
553
|
* shape above from the third. What DOES answer it is this runner's store's own pair of
|
|
571
|
-
* declarations — `sessions.durability` and its release/evict policy — read together.
|
|
572
|
-
* (CC 2.1.250) writes a sub-agent transcript unconditionally to its own file beside the parent
|
|
573
|
-
* session, so "the child conversation is readable afterwards" is never conditional on a store
|
|
574
|
-
* tier there.
|
|
554
|
+
* declarations — `sessions.durability` and its release/evict policy — read together.
|
|
575
555
|
*/
|
|
576
556
|
runner: RunnerSelfSeat;
|
|
577
557
|
/**
|
|
@@ -644,8 +624,7 @@ export interface SubagentToolOptions {
|
|
|
644
624
|
*/
|
|
645
625
|
agents?: AgentDefinition[];
|
|
646
626
|
/**
|
|
647
|
-
* F1
|
|
648
|
-
* registry, GA default-on — pretty.js:487221-487240 + iAt :487127). Default `true` (CC posture);
|
|
627
|
+
* F1: offer the BUILT-IN read-only `Explore`/`Plan` agent types, on by default. Default `true`;
|
|
649
628
|
* `false` removes them (the config-driven analog of CC's `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`).
|
|
650
629
|
* A deployment definition named "Explore"/"Plan" SHADOWS the built-in of the same name (definition
|
|
651
630
|
* wins — fork-shadowing precedent).
|
|
@@ -690,10 +669,15 @@ export interface SubagentToolOptions {
|
|
|
690
669
|
allowTools?: string[];
|
|
691
670
|
/** Tool-level denylist (design/38 1A), used when no `agent` is selected: the denied half of the child's own selector layer (a deny wins). */
|
|
692
671
|
denyTools?: string[];
|
|
693
|
-
/** System prompt / persona for the child
|
|
672
|
+
/** System prompt / persona for the child, by TEXT — the child's own role-base statement, written on its task seat (an
|
|
673
|
+
* agent definition's `systemPrompt` wins over it). Default (since 1.259.0): the LEAN
|
|
694
674
|
* {@link SUBAGENT_PROMPT} (agent persona + return contract), NOT the full default constitution role
|
|
695
675
|
* base — pass `DEFAULT_SYSTEM_PROMPT` here explicitly to restore the pre-1.259 behavior. */
|
|
696
676
|
systemPrompt?: string;
|
|
677
|
+
/** The child's role base by WORD (`TaskSpec.promptRole`'s closed set: `"code"` gives the children the catalog's coding
|
|
678
|
+
* base): the same seat as {@link systemPrompt} (text beside it replaces the base this word selects) — so a role
|
|
679
|
+
* preset never overtakes it. Outside the closed set ⇒ refused when the tool is built (`config.prompt_selector_invalid`). */
|
|
680
|
+
promptRole?: import("../prompt-assembly/catalog/schema.js").HostRole;
|
|
697
681
|
/** Tool name exposed to the parent. Default "Agent". */
|
|
698
682
|
name?: string;
|
|
699
683
|
/** What the child is for (shown to the parent in the tool description). */
|
|
@@ -704,11 +688,9 @@ export interface SubagentToolOptions {
|
|
|
704
688
|
* Max nesting depth of delegation. A child at depth `d` only receives a delegation tool when
|
|
705
689
|
* `d + 1 < maxDepth`, so it cannot recurse past the limit.
|
|
706
690
|
*
|
|
707
|
-
* Default 3 (RB-292)
|
|
708
|
-
* when set, else a remote-config value, else the constant `aHu = 3` @272076 (cli250.js:37597). The old default of 5 was
|
|
709
|
-
* anchored on CC 2.1.201's `Y4t` and upstream has since moved; 5 is a stale anchor, not a sema choice.
|
|
691
|
+
* Default 3 (RB-292): the same default as the reference (`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`, cli296.js:245773).
|
|
710
692
|
* sema exposes the override as THIS option rather than an env var (deployments configure the tool, not
|
|
711
|
-
* the process), so the env/remote-config half of
|
|
693
|
+
* the process), so the env/remote-config half of that lookup has no sema counterpart to keep in sync.
|
|
712
694
|
*
|
|
713
695
|
* Semantics pin (off-by-one checked): with the default, the main agent + children at depths 1-2 all
|
|
714
696
|
* carry a delegation tool, the depth-3 child is the STRUCTURAL leaf (no delegation tool mounted —
|
|
@@ -814,56 +796,32 @@ export interface SubagentSpawnContext {
|
|
|
814
796
|
/** Delegation depth of the SPAWNING tool (0 = the main agent's Agent tool; a grandchild spawn sees 1, …). */
|
|
815
797
|
depth: number;
|
|
816
798
|
}
|
|
817
|
-
|
|
818
|
-
* "general-purpose" alias fold (CC 2.1.207 parity — see {@link GENERAL_PURPOSE_SUBAGENT_TYPE}): rewrite
|
|
819
|
-
* `subagent_type: "general-purpose"` to the OMITTED form so it takes the plain clean-context delegation
|
|
820
|
-
* path (sema's built-in general-purpose equivalent: full tool pool + SUBAGENT_PROMPT persona). Wired both
|
|
821
|
-
* as the tool's `prepareArguments` pre-validation shim (the declared `subagent_type` enum lists only
|
|
822
|
-
* DEFINED agent names, so the literal must rewrite BEFORE the schema check) AND inside execute (direct
|
|
823
|
-
* ToolSpec.execute callers). Idempotent; identity when `shadowed` (a deployment/builtin definition of the
|
|
824
|
-
* same name wins — the literal then resolves as a normal agent lookup, never this fold). This is a LIVE
|
|
825
|
-
* cross-vocabulary mapping, not a compatibility arm (RB-479-A③ retired the Fork `{directive}` adapter
|
|
826
|
-
* that used to share this wiring).
|
|
827
|
-
*/
|
|
828
|
-
/**
|
|
829
|
-
* RB-293 — subagent_type fold, CC 2.1.220 `ulr` @317317 verbatim:
|
|
830
|
-
* `e.normalize("NFKC").toLowerCase().replace(/[\p{White_Space}\p{Pd}_]+/gu, "")`.
|
|
831
|
-
*
|
|
832
|
-
* Deliberately lossy and deliberately NOT a resolver: it exists only to decide whether two spellings
|
|
833
|
-
* denote the same roster entry AFTER an exact match has already failed. `\p{Pd}` is the dash punctuation
|
|
834
|
-
* class (so an en-dash paste folds like a hyphen), `\p{White_Space}` covers NBSP and friends, and NFKC
|
|
835
|
-
* folds fullwidth/compatibility forms — the three ways a name gets mangled between a listing line and a
|
|
836
|
-
* tool call. Note it can map DISTINCT roster names onto one key ("code-review" / "code_review"), which
|
|
837
|
-
* is exactly why the caller must treat a multi-hit as ambiguous rather than picking a winner.
|
|
838
|
-
*/
|
|
839
|
-
export declare function normalizeSubagentType(value: string): string;
|
|
799
|
+
export { normalizeSubagentType } from "../core/permission-rule-model.js";
|
|
840
800
|
/**
|
|
841
801
|
* A system-prompt note you can append to the PARENT task so the model knows delegation exists.
|
|
842
802
|
* (The tool description below is the primary "explicit instruction"; this is an optional reinforcement.)
|
|
843
803
|
*/
|
|
844
804
|
export declare const SUBAGENT_SYSTEM_NOTE: string;
|
|
845
805
|
/**
|
|
846
|
-
* G4
|
|
847
|
-
* frame prepended to a fork child's directive.
|
|
806
|
+
* G4: the MESSAGE-LAYER instruction
|
|
807
|
+
* frame prepended to a fork child's directive. The fork's SYSTEM prompt stays byte-identical to the
|
|
848
808
|
* parent (prompt-cache) and carries the fork behavior contract in the messages instead — same posture
|
|
849
809
|
* here: this frame wraps the `prompt` (the child's objective/user turn) and never touches systemPrompt.
|
|
850
|
-
*
|
|
851
|
-
* name matches
|
|
852
|
-
* fork guidance
|
|
810
|
+
* The no-spawn line is the full text — the tool
|
|
811
|
+
* name matches our DEFAULT_SUBAGENT_TOOL_NAME and our tool card carries its own
|
|
812
|
+
* fork guidance for the referent. An earlier adaptation dropped the "default to forking" clause
|
|
853
813
|
* as CC-specific; a live identity-confusion incident (a fork reading the parent's delegation record as
|
|
854
814
|
* "someone else is on it" and stopping) showed the parent/fork disambiguation clause is load-bearing —
|
|
855
|
-
* keep the
|
|
856
|
-
*
|
|
857
|
-
*
|
|
858
|
-
*
|
|
859
|
-
* read-back, :415673). 1.259.0 合车复审修①: an earlier transcription invented a `<directive-prefix>`
|
|
860
|
-
* tag here — that tag does not exist in 198; the anchor is the plain-text prefix.
|
|
815
|
+
* keep the frame whole.
|
|
816
|
+
* Frame TAIL = the literal plain-text directive prefix `Your directive: ` (no `<directive-prefix>` tag exists;
|
|
817
|
+
* the assembly is `…</fork-boilerplate>\n\n${prefix}${directive}`, and the SAME prefix is stripped on
|
|
818
|
+
* read-back).
|
|
861
819
|
*/
|
|
862
820
|
export declare const FORK_DIRECTIVE_FRAME = "<fork-boilerplate>\nYou are a worker fork. The transcript above is the parent's history \u2014 inherited reference, not your situation. You are NOT a continuation of that agent. Execute ONE directive, then stop.\n\nHard rules:\n- Do NOT spawn subagents with the Agent tool. The \"default to forking\" guidance is for the parent; you ARE the fork, execute directly.\n- One shot: report once and stop. No follow-up questions, no proposed next steps, no waiting for the user.\n\nGuidelines (your directive may override any of these):\n- Stay in scope. Other forks may be handling adjacent work; if you spot something outside your directive, note it in a sentence and move on.\n- Open with one line restating your task, so the parent can spot scope drift at a glance.\n- Be concise \u2014 as short as the answer allows, no shorter. Plain text, no preamble, no meta-commentary.\n- If you committed changes, list the paths and commit hashes in your report.\n</fork-boilerplate>\n\nYour directive: ";
|
|
863
821
|
/**
|
|
864
|
-
* RB-295
|
|
822
|
+
* RB-295: the path-translation note
|
|
865
823
|
* a FORK gets when it also runs under `isolation: "worktree"`. Upstream pushes it as its own message
|
|
866
|
-
* appended AFTER the fork's directive messages
|
|
824
|
+
* appended AFTER the fork's directive messages
|
|
867
825
|
* — it exists precisely because a fork INHERITS the parent's transcript, and every absolute path in that
|
|
868
826
|
* transcript points at the parent's working copy while the fork's tools now resolve inside the worktree.
|
|
869
827
|
* A non-fork worktree child has no inherited paths and gets no note, exactly as upstream.
|
|
@@ -874,7 +832,7 @@ export declare const FORK_DIRECTIVE_FRAME = "<fork-boilerplate>\nYou are a worke
|
|
|
874
832
|
*/
|
|
875
833
|
export declare function forkWorktreeTranslationNote(parentCwd: string | undefined, worktreeDir: string): string;
|
|
876
834
|
/**
|
|
877
|
-
* RB-291 — the `async_launched` tool-result card, rebuilt from the
|
|
835
|
+
* RB-291 — the `async_launched` tool-result card, rebuilt from the reference's card
|
|
878
836
|
* and shared by both background lanes (Agent bg + fork bg) so the two copies cannot drift apart again.
|
|
879
837
|
* Three drifts were repaired against the anchor:
|
|
880
838
|
* ① the closing instruction had inverted the anchor's meaning — sema said "end your response. Do not
|
|
@@ -936,8 +894,7 @@ export declare function agentToolsNote(def: {
|
|
|
936
894
|
denyTools?: string[];
|
|
937
895
|
}): string;
|
|
938
896
|
/**
|
|
939
|
-
* F4
|
|
940
|
-
* `t = yg(mainLoopModel)` :479504): pick the roster guidance text for one agent definition. CC keys
|
|
897
|
+
* F4: pick the roster guidance text for one agent definition. CC keys
|
|
941
898
|
* `lean` on its simple-system-prompt model predicate; sema runs the CC lean-prompt arm wholesale
|
|
942
899
|
* (provider-neutral engine, web.ts lean-card precedent), so every call site passes the default
|
|
943
900
|
* `lean = true` — a definition WITH `whenToUseLean` shows the lean text (exactly what modern CC main
|