@sema-agent/core 7.55.0 → 7.57.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 +1054 -0
- package/LICENSE +1 -1
- package/dist/agents/cascade.js +1 -1
- package/dist/agents/cc-peer-directory.js +1 -0
- package/dist/agents/child-model-seat.d.ts +0 -11
- package/dist/agents/child-model-seat.js +0 -3
- package/dist/agents/list-agents-tool.d.ts +3 -1
- package/dist/agents/list-agents-tool.js +7 -7
- package/dist/agents/org-delivery-gate.js +3 -4
- package/dist/agents/peer-directory.d.ts +22 -4
- package/dist/agents/peer-directory.js +24 -2
- package/dist/agents/peer-held-queue.d.ts +69 -49
- package/dist/agents/peer-held-queue.js +255 -106
- package/dist/agents/peer-session-drain.js +65 -45
- package/dist/agents/repair-loop.js +2 -2
- package/dist/agents/send-message-tool.js +7 -6
- package/dist/agents/subagent.d.ts +6 -4
- package/dist/agents/subagent.js +72 -68
- package/dist/agents/tool-filter.d.ts +7 -5
- package/dist/agents/tool-filter.js +12 -9
- package/dist/agents/verify.d.ts +3 -2
- package/dist/agents/verify.js +3 -3
- package/dist/brain/anthropic.js +45 -80
- 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 +2 -8
- package/dist/brain/model-presets.js +1 -6
- package/dist/brain/open-responses.js +23 -34
- package/dist/brain/openai.js +25 -96
- package/dist/brain/provider-dialect.d.ts +3 -2
- package/dist/brain/provider-dialect.js +2 -2
- package/dist/brain/reasoning-request.d.ts +96 -0
- package/dist/brain/reasoning-request.js +174 -0
- package/dist/brain/reasoning.d.ts +11 -11
- package/dist/brain/reasoning.js +4 -3
- package/dist/brain/request-params.d.ts +13 -4
- package/dist/brain/request-params.js +21 -5
- package/dist/brain/status-sink.d.ts +20 -0
- package/dist/brain/status-sink.js +7 -0
- package/dist/brain/stream-engine.d.ts +9 -0
- package/dist/brain/stream-engine.js +24 -10
- package/dist/brain/stream-shared.d.ts +5 -4
- package/dist/brain/stream-shared.js +4 -4
- package/dist/core/a2a.d.ts +2 -1
- package/dist/core/a2a.js +19 -13
- package/dist/core/agent-definition.d.ts +10 -0
- package/dist/core/allow-entry.d.ts +23 -23
- package/dist/core/allow-entry.js +42 -46
- package/dist/core/allow-rule-shadow.d.ts +3 -3
- package/dist/core/approval-object.d.ts +21 -5
- package/dist/core/approval-object.js +44 -17
- package/dist/core/ask-origin.d.ts +66 -20
- package/dist/core/ask-origin.js +63 -23
- package/dist/core/ask-question.d.ts +51 -8
- package/dist/core/ask-question.js +3 -4
- 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 +71 -6
- package/dist/core/auto-compaction.js +42 -26
- package/dist/core/background-agent-store.d.ts +6 -2
- package/dist/core/background-agent-store.js +1 -1
- 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 -1
- package/dist/core/checkpoint-requirements.js +6 -0
- package/dist/core/checkpoint-store.d.ts +105 -53
- package/dist/core/checkpoint-store.js +43 -20
- package/dist/core/cross-boundary-taint.d.ts +6 -5
- package/dist/core/cross-boundary-taint.js +5 -5
- package/dist/core/decision-receipt.d.ts +37 -3
- package/dist/core/decision-receipt.js +17 -17
- package/dist/core/delegation-not-started.d.ts +6 -0
- package/dist/core/delegation-not-started.js +17 -0
- 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 +32 -12
- package/dist/core/engine-notice.js +6 -0
- package/dist/core/file-history-store.d.ts +104 -22
- package/dist/core/file-history-store.js +37 -19
- package/dist/core/gate-fold.d.ts +1 -1
- package/dist/core/gate-fold.js +22 -10
- package/dist/core/gate-lanes.js +73 -65
- package/dist/core/gate-outcome.d.ts +26 -5
- package/dist/core/gate-outcome.js +26 -0
- package/dist/core/governance-codes.d.ts +5 -1
- package/dist/core/governance-codes.js +6 -0
- package/dist/core/hooks.d.ts +19 -18
- 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 +38 -3
- package/dist/core/host-target.js +38 -5
- package/dist/core/mailbox-store.d.ts +62 -1
- package/dist/core/mailbox-store.js +59 -0
- package/dist/core/mcp-name-judge.d.ts +46 -0
- package/dist/core/mcp-name-judge.js +61 -0
- package/dist/core/mcp-probe.d.ts +1 -1
- package/dist/core/mcp-probe.js +2 -5
- package/dist/core/mcp.d.ts +5 -1
- package/dist/core/mcp.js +70 -64
- package/dist/core/memory-engine/consolidation-driver.js +4 -3
- package/dist/core/memory-engine/delegation-settlement.js +15 -24
- package/dist/core/memory-engine/distiller.js +26 -17
- 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 +70 -8
- 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 +32 -38
- package/dist/core/namespaced-rule-name.js +29 -36
- package/dist/core/parent-spec-seat.d.ts +6 -1
- package/dist/core/parent-spec-seat.js +2 -0
- package/dist/core/park-selfcheck.js +3 -0
- package/dist/core/permission-rule-consent.d.ts +24 -3
- package/dist/core/permission-rule-consent.js +136 -41
- package/dist/core/permission-rule-model.d.ts +57 -5
- package/dist/core/permission-rule-model.js +90 -31
- package/dist/core/permission-rule-org.d.ts +6 -2
- package/dist/core/permission-rule-org.js +8 -4
- package/dist/core/permission-rule-provider.d.ts +5 -2
- package/dist/core/permission-rule-provider.js +41 -11
- package/dist/core/permission-rule-store.d.ts +3 -2
- package/dist/core/permission-rule-store.js +11 -2
- package/dist/core/permission-rule-sync.js +3 -2
- 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 +4 -4
- package/dist/core/permission-rules.js +11 -20
- package/dist/core/persisted-rule-arms.d.ts +2 -2
- package/dist/core/persisted-rule-arms.js +10 -12
- 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 +40 -5
- package/dist/core/protocol-http-auth.js +168 -4
- package/dist/core/protocol-naming.d.ts +20 -0
- package/dist/core/protocol-naming.js +20 -3
- package/dist/core/read-only-shell.d.ts +20 -5
- package/dist/core/read-only-shell.js +29 -14
- package/dist/core/remote-env.d.ts +37 -1
- package/dist/core/remote-env.js +11 -0
- package/dist/core/resume-startup-cause.d.ts +24 -2
- package/dist/core/resume-startup-cause.js +20 -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 +28 -1
- package/dist/core/roles.js +81 -26
- package/dist/core/rule-lane-reads.d.ts +20 -15
- package/dist/core/rule-lane-reads.js +45 -17
- package/dist/core/rule-owner.d.ts +3 -3
- package/dist/core/rule-owner.js +3 -2
- package/dist/core/runner/announce-once-ledger.d.ts +14 -0
- package/dist/core/runner/announce-once-ledger.js +5 -0
- package/dist/core/runner/assemble-result.d.ts +1 -0
- 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 +16 -4
- package/dist/core/runner/caller-roster.js +33 -6
- 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 +7 -9
- package/dist/core/runner/classifier-ladder.js +3 -3
- package/dist/core/runner/compact-session.d.ts +10 -0
- package/dist/core/runner/compact-session.js +202 -0
- package/dist/core/runner/compaction-call-options.d.ts +2 -2
- package/dist/core/runner/compaction-seams.d.ts +21 -1
- package/dist/core/runner/compaction-seams.js +11 -8
- package/dist/core/runner/construction-doors.js +3 -0
- package/dist/core/runner/contracts.d.ts +50 -40
- package/dist/core/runner/cross-boundary-lane.d.ts +17 -13
- package/dist/core/runner/cross-boundary-lane.js +40 -27
- package/dist/core/runner/denial-limit-arms.d.ts +2 -2
- package/dist/core/runner/denial-limit-arms.js +1 -1
- package/dist/core/runner/derived-route-fallback.d.ts +13 -0
- package/dist/core/runner/derived-route-fallback.js +6 -0
- package/dist/core/runner/env-capability-census.d.ts +3 -2
- package/dist/core/runner/env-capability-census.js +9 -3
- 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 +3 -3
- package/dist/core/runner/gate-exit.js +4 -3
- package/dist/core/runner/image.d.ts +7 -17
- package/dist/core/runner/image.js +9 -60
- package/dist/core/runner/permission-rule-lanes.d.ts +11 -11
- package/dist/core/runner/permission-rule-lanes.js +39 -17
- package/dist/core/runner/person-path-rows.d.ts +12 -9
- package/dist/core/runner/person-path-rows.js +18 -7
- package/dist/core/runner/prepare-acquire-reconcile.d.ts +3 -0
- package/dist/core/runner/prepare-acquire-reconcile.js +2 -1
- 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 +4 -3
- package/dist/core/runner/prepare-config-doors.d.ts +35 -38
- package/dist/core/runner/prepare-config-doors.js +46 -28
- 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-file-history.d.ts +48 -8
- package/dist/core/runner/prepare-file-history.js +7 -39
- package/dist/core/runner/prepare-gate-stations.d.ts +1 -1
- package/dist/core/runner/prepare-gate-stations.js +10 -1
- package/dist/core/runner/prepare-hands-readface.d.ts +5 -9
- package/dist/core/runner/prepare-hands-readface.js +17 -14
- package/dist/core/runner/prepare-inherited-gate.d.ts +6 -3
- package/dist/core/runner/prepare-inherited-gate.js +5 -3
- package/dist/core/runner/prepare-memory-engine-session.js +1 -1
- package/dist/core/runner/prepare-park-ask.d.ts +2 -0
- package/dist/core/runner/prepare-park-ask.js +7 -7
- package/dist/core/runner/prepare-policy-chain.d.ts +6 -3
- package/dist/core/runner/prepare-policy-chain.js +67 -76
- 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 +3 -5
- package/dist/core/runner/prepare-protocol-tools.d.ts +2 -0
- package/dist/core/runner/prepare-protocol-tools.js +3 -3
- package/dist/core/runner/prepare-safety-scan.d.ts +1 -1
- package/dist/core/runner/prepare-safety-scan.js +0 -17
- 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 +5 -2
- package/dist/core/runner/prepare-task.js +48 -43
- package/dist/core/runner/prepare-tool-disclosure-mount.d.ts +20 -4
- package/dist/core/runner/prepare-tool-disclosure-mount.js +33 -23
- 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 +6 -2
- 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/retired-runner-deps.js +1 -0
- package/dist/core/runner/rewind-files.d.ts +12 -0
- package/dist/core/runner/rewind-files.js +90 -0
- package/dist/core/runner/run-attachment-seats.js +2 -1
- 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-harness-handlers.js +12 -4
- package/dist/core/runner/run-leg.d.ts +1 -1
- package/dist/core/runner/run-leg.js +40 -39
- package/dist/core/runner/run-notification-lane.d.ts +2 -0
- package/dist/core/runner/run-notification-lane.js +2 -2
- package/dist/core/runner/run-recovery-lanes.js +3 -4
- package/dist/core/runner/run-settle-and-teardown.js +7 -12
- package/dist/core/runner/run-terminal-adoption.js +3 -4
- package/dist/core/runner/run-turn-boundary.js +4 -15
- package/dist/core/runner/runtask.d.ts +10 -0
- package/dist/core/runner/runtask.js +35 -42
- package/dist/core/runner/send-message-continuation.js +1 -1
- 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.js +4 -3
- package/dist/core/runner/session-verb-doors.d.ts +28 -0
- package/dist/core/runner/session-verb-doors.js +48 -0
- package/dist/core/runner/session-write-ledger.d.ts +30 -0
- package/dist/core/runner/session-write-ledger.js +101 -0
- 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/skills-seat.js +6 -2
- package/dist/core/runner/stream-settle-backstop.js +12 -15
- package/dist/core/runner/sub-agent-deny-lists.d.ts +25 -3
- package/dist/core/runner/sub-agent-deny-lists.js +25 -17
- package/dist/core/runner/synthetic-tools.d.ts +6 -0
- package/dist/core/runner/synthetic-tools.js +4 -1
- package/dist/core/runner/teardown-bounded.d.ts +1 -0
- package/dist/core/runner/teardown-bounded.js +1 -0
- package/dist/core/runner/tool-disclosure.d.ts +10 -12
- package/dist/core/runner/tool-disclosure.js +1 -3
- 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-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/turn-attachments.d.ts +33 -15
- package/dist/core/runner/turn-attachments.js +62 -37
- package/dist/core/runner-deps.d.ts +7 -7
- 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 +11 -3
- package/dist/core/secret-env.d.ts +30 -3
- package/dist/core/secret-env.js +47 -8
- package/dist/core/select-model.js +3 -3
- package/dist/core/session-policy-store.d.ts +32 -15
- package/dist/core/session-policy-store.js +156 -36
- package/dist/core/session-store.d.ts +29 -10
- package/dist/core/session-store.js +51 -19
- package/dist/core/session.d.ts +82 -16
- package/dist/core/session.js +53 -0
- 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.d.ts +1 -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.js +10 -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/background-agent-store-contract.js +1 -0
- package/dist/core/store-contracts/checkpoint-store-contract.d.ts +11 -1
- package/dist/core/store-contracts/checkpoint-store-contract.js +141 -2
- package/dist/core/store-contracts/file-history-store-contract.js +40 -1
- package/dist/core/store-contracts/mailbox-store-contract.js +49 -1
- 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-repo-contract.js +51 -0
- package/dist/core/store-contracts/session-store-contract.d.ts +2 -1
- package/dist/core/store-contracts/session-store-contract.js +150 -14
- package/dist/core/stub-env.d.ts +2 -0
- package/dist/core/stub-env.js +1 -0
- package/dist/core/synthetic-read-verdict.js +3 -3
- package/dist/core/task-event.d.ts +32 -4
- package/dist/core/task-notification.d.ts +16 -12
- package/dist/core/task-registry-agent.d.ts +8 -4
- package/dist/core/task-registry-agent.js +14 -8
- package/dist/core/task-registry-shared.d.ts +35 -6
- package/dist/core/task-registry-shared.js +11 -0
- package/dist/core/task-registry.d.ts +10 -1
- package/dist/core/task-registry.js +12 -2
- package/dist/core/task-result.d.ts +18 -0
- package/dist/core/task-spec.d.ts +18 -13
- package/dist/core/tighten-task-spec.js +2 -1
- package/dist/core/tool-catalog-entries.d.ts +23 -0
- package/dist/core/tool-catalog-entries.js +14 -2
- package/dist/core/tool-check-reading.d.ts +11 -0
- package/dist/core/tool-check-reading.js +11 -6
- package/dist/core/tool-model-gate.d.ts +2 -2
- package/dist/core/tool-name-aliases.d.ts +48 -18
- package/dist/core/tool-name-aliases.js +36 -19
- package/dist/core/tool-name-readings.d.ts +6 -32
- package/dist/core/tool-name-readings.js +2 -9
- package/dist/core/tool-policy.d.ts +78 -204
- package/dist/core/tool-policy.js +152 -204
- package/dist/core/tool-result-store.js +3 -0
- package/dist/core/tool-roster.d.ts +14 -19
- package/dist/core/tool-roster.js +11 -44
- package/dist/core/tool-spec-members.js +7 -2
- package/dist/core/tool-spec.d.ts +19 -11
- package/dist/core/tools.js +49 -9
- package/dist/core/trace.d.ts +6 -3
- package/dist/core/trace.js +2 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/untrusted-egress.d.ts +20 -0
- package/dist/core/untrusted-egress.js +77 -3
- package/dist/core/user-attachment.d.ts +8 -1
- package/dist/core/user-attachment.js +64 -4
- package/dist/core/wiring-manifest.d.ts +9 -0
- package/dist/core/wiring-manifest.js +1 -0
- package/dist/core/workflow-journal-store.js +1 -1
- package/dist/engine/compaction/compaction.js +3 -2
- package/dist/engine/execution-env/node-execution-env.d.ts +7 -3
- package/dist/engine/execution-env/node-execution-env.js +11 -2
- package/dist/engine/harness/agent-harness.d.ts +32 -6
- package/dist/engine/harness/agent-harness.js +65 -9
- package/dist/engine/harness/types.d.ts +29 -2
- package/dist/engine/llm/types.d.ts +28 -11
- package/dist/engine/loop/agent-loop.d.ts +23 -4
- package/dist/engine/loop/agent-loop.js +42 -30
- package/dist/engine/loop/types.d.ts +16 -6
- package/dist/engine/session/memory-repo.d.ts +9 -2
- package/dist/engine/session/memory-repo.js +11 -1
- package/dist/engine/session/repo-utils.d.ts +6 -5
- package/dist/engine/session/repo-utils.js +14 -6
- package/dist/index.d.ts +34 -17
- package/dist/index.js +22 -11
- package/dist/internal/harness-types.d.ts +1 -1
- package/dist/internal/harness.d.ts +2 -1
- package/dist/internal/harness.js +1 -0
- package/dist/internal/llm.d.ts +1 -1
- package/dist/orchestration/run-workflow-tool.d.ts +6 -4
- package/dist/orchestration/run-workflow-tool.js +5 -3
- package/dist/orchestration/workflow.d.ts +3 -0
- package/dist/orchestration/workflow.js +36 -18
- package/dist/primitives/credential-ref.d.ts +89 -0
- package/dist/primitives/credential-ref.js +125 -0
- package/dist/primitives/index.d.ts +2 -0
- package/dist/primitives/index.js +1 -0
- 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 +1 -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 +37 -3
- package/dist/prompt-assembly/tool-catalog.js +114 -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/scenarios/full-body.d.ts +11 -11
- package/dist/scenarios/full-body.js +4 -3
- package/dist/shell/lex.js +10 -1
- package/dist/stores/file/adoption/adopt.js +4 -3
- package/dist/stores/file/adoption/marker.js +3 -2
- package/dist/stores/file/checkpoint-store.d.ts +21 -4
- package/dist/stores/file/checkpoint-store.js +38 -7
- package/dist/stores/file/file-history-store.js +18 -11
- package/dist/stores/file/index.js +2 -1
- package/dist/stores/file/mailbox-store.d.ts +2 -1
- package/dist/stores/file/mailbox-store.js +26 -1
- package/dist/stores/file/permission-rule-adopt.js +4 -3
- package/dist/stores/file/permission-rule-store.js +11 -5
- package/dist/stores/file/session-store.d.ts +29 -6
- package/dist/stores/file/session-store.js +42 -50
- package/dist/tools/artifact/artifact-tool.js +3 -2
- 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 +15 -19
- package/dist/tools/fs/bash-readonly-classifier.js +5 -10
- package/dist/tools/fs/fs-bash.js +15 -8
- 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/pattern-kill-guard.d.ts +23 -0
- package/dist/tools/fs/pattern-kill-guard.js +429 -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/removal-targets.d.ts +17 -7
- package/dist/tools/fs/removal-targets.js +47 -20
- package/dist/tools/fs/search.d.ts +10 -0
- 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.d.ts +10 -0
- package/dist/tools/fs/shell-read-check.js +13 -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-identity.d.ts +12 -9
- package/dist/tools/fs/shell-read-identity.js +9 -4
- 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/todo.js +63 -63
- package/dist/tools/web.d.ts +19 -14
- package/dist/tools/web.js +46 -61
- package/package.json +1 -1
- package/test/export-surface.snapshot.json +221 -7
- package/wire-changes/core-stores-sql@7.57.0.json +29 -0
- package/wire-changes/core@7.56.0.json +3891 -0
- package/wire-changes/core@7.57.0.json +1487 -0
- package/wire-changes/mods-kernel@7.56.0.json +303 -0
- package/wire-changes/mods-kernel@7.57.0.json +29 -0
- package/wire-changes/primitives@7.57.0.json +245 -0
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
export const KERNEL_CONTRACT_VERSION =
|
|
1
|
+
export const KERNEL_CONTRACT_VERSION = 3;
|
|
2
2
|
export const MOD_TIERS = Object.freeze(["prepend", "user", "append", "builtin", "core"]);
|
|
3
3
|
export const MOD_SEATS = Object.freeze(["deployment", "task"]);
|
|
4
4
|
export const MOD_EVENT_SIDES = Object.freeze(["engine", "surface", "both"]);
|
|
5
|
-
export const MOD_FAILURE_ANSWERS = Object.freeze(["refuse", "skip"]);
|
|
5
|
+
export const MOD_FAILURE_ANSWERS = Object.freeze(["refuse", "skip", "refuse_until_run"]);
|
|
6
|
+
export function failureRefuses(failure) {
|
|
7
|
+
return failure !== "skip";
|
|
8
|
+
}
|
|
6
9
|
export const MOD_ABORT_POSTURES = Object.freeze(["immediate", "grace", "caller"]);
|
|
7
10
|
export const NEXT_TO_TABLE = Object.freeze({
|
|
8
11
|
prepend: Object.freeze(["append", "builtin", "core"]),
|
|
@@ -27,10 +30,19 @@ export const SEAT_TIER_TABLE = Object.freeze({
|
|
|
27
30
|
deployment: Object.freeze({ declared: "required", tiers: Object.freeze(["prepend", "user", "append"]) }),
|
|
28
31
|
task: Object.freeze({ declared: "optional", tiers: Object.freeze(["user"]) }),
|
|
29
32
|
});
|
|
30
|
-
const station = (failure, abort, pinned = []) => Object.freeze({
|
|
33
|
+
const station = (failure, abort, pinned = [], more = {}) => Object.freeze({
|
|
34
|
+
failure,
|
|
35
|
+
abort,
|
|
36
|
+
pinned: Object.freeze([...pinned]),
|
|
37
|
+
...(more.call === true ? { call: Object.freeze({ pausesCallerBudget: true }) } : {}),
|
|
38
|
+
...(more.budgetMs !== undefined ? { budgetMs: more.budgetMs } : {}),
|
|
39
|
+
});
|
|
31
40
|
const method = (pausesCallerBudget) => Object.freeze({ failure: "skip", abort: "caller", pinned: Object.freeze([]), method: Object.freeze({ pausesCallerBudget }) });
|
|
32
41
|
const engine = (s) => Object.freeze(s === undefined ? { side: "engine" } : { side: "engine", station: s });
|
|
33
|
-
const surface = Object.freeze({ side: "surface" });
|
|
42
|
+
const surface = (s) => Object.freeze(s === undefined ? { side: "surface" } : { side: "surface", station: s });
|
|
43
|
+
const RENDER_PINNED = ["surface", "component", "requestId", "viewport"];
|
|
44
|
+
const ELEMENT_PINNED = ["plugin", "element", "component", "requestId", "surface"];
|
|
45
|
+
const PROMPT_EDIT_BUDGET_MS = 50;
|
|
34
46
|
export const MOD_EVENT_TABLE = Object.freeze({
|
|
35
47
|
"classic.PreToolUse": engine(station("refuse", "immediate", ["tool", "tool_use_id", "agentId", "input"])),
|
|
36
48
|
"classic.PostToolUse": engine(station("skip", "grace")),
|
|
@@ -65,34 +77,34 @@ export const MOD_EVENT_TABLE = Object.freeze({
|
|
|
65
77
|
"classic.FileChanged": engine(),
|
|
66
78
|
"classic.DirectoryAdded": engine(),
|
|
67
79
|
"classic.MessageDisplay": engine(),
|
|
68
|
-
"tool.call": engine(),
|
|
80
|
+
"tool.call": engine(station("refuse_until_run", "immediate", ["tool", "tool_use_id", "agentId", "input"], { call: true })),
|
|
69
81
|
"tool.check": engine(station("refuse", "immediate", ["tool", "input", "tool_use_id", "agentId", "ceiling"])),
|
|
70
|
-
"ui.render": surface,
|
|
71
|
-
"ui.resolve": surface,
|
|
72
|
-
"ui.press": surface,
|
|
73
|
-
"ui.input": surface,
|
|
74
|
-
"ui.select": surface,
|
|
75
|
-
"ui.message": surface,
|
|
76
|
-
"ui.fault": surface,
|
|
77
|
-
"ui.scroll": surface,
|
|
78
|
-
"ui.focus": surface,
|
|
82
|
+
"ui.render": surface(station("skip", "grace", RENDER_PINNED)),
|
|
83
|
+
"ui.resolve": surface(station("skip", "grace", ["surface", "component"])),
|
|
84
|
+
"ui.press": surface(station("skip", "grace", ELEMENT_PINNED)),
|
|
85
|
+
"ui.input": surface(station("skip", "grace", ELEMENT_PINNED)),
|
|
86
|
+
"ui.select": surface(station("skip", "grace", ELEMENT_PINNED)),
|
|
87
|
+
"ui.message": surface(),
|
|
88
|
+
"ui.fault": surface(),
|
|
89
|
+
"ui.scroll": surface(station("skip", "grace", ["component", "requestId", "by", "bodyRows", "contentRows", "origin", "pointer"], { call: true })),
|
|
90
|
+
"ui.focus": surface(station("skip", "grace", ["component", "requestId", "plugin", "origin", "element"], { call: true })),
|
|
79
91
|
"agent.offer": engine(),
|
|
80
92
|
"agent.spawn": engine(),
|
|
81
93
|
"prompt.submit": engine(),
|
|
82
|
-
"prompt.fill": surface,
|
|
83
|
-
"prompt.suggest": surface,
|
|
84
|
-
"prompt.edit": surface,
|
|
85
|
-
"prompt.autocomplete": surface,
|
|
94
|
+
"prompt.fill": surface(station("skip", "grace", ["origin", "mode"], { call: true })),
|
|
95
|
+
"prompt.suggest": surface(station("skip", "grace", ["origin"], { call: true })),
|
|
96
|
+
"prompt.edit": surface(station("skip", "grace", ["origin", "key"], { budgetMs: PROMPT_EDIT_BUDGET_MS })),
|
|
97
|
+
"prompt.autocomplete": surface(),
|
|
86
98
|
"prompt.section": engine(station("skip", "grace", ["name", "key", "mountedTools"])),
|
|
87
99
|
"prompt.context": engine(),
|
|
88
100
|
"prompt.attachment": engine(),
|
|
89
|
-
"prompt.mention":
|
|
101
|
+
"prompt.mention": engine(station("refuse", "immediate", ["mention", "agentId"])),
|
|
90
102
|
"prompt.compose": engine(station("skip", "grace", ["model", "catalog", "selectors"])),
|
|
91
103
|
"tool.describe": engine(),
|
|
92
|
-
"command.run": surface,
|
|
93
|
-
"command.describe": surface,
|
|
94
|
-
"config.set": surface,
|
|
95
|
-
"config.describe": surface,
|
|
104
|
+
"command.run": surface(station("skip", "grace", ["command", "presentation", "origin"], { call: true })),
|
|
105
|
+
"command.describe": surface(station("skip", "grace", ["command", "immediate", "provider"])),
|
|
106
|
+
"config.set": surface(station("refuse", "immediate", ["key", "previous", "provider", "origin"], { call: true })),
|
|
107
|
+
"config.describe": surface(station("skip", "grace", ["key", "provider"])),
|
|
96
108
|
"telemetry.log": engine(),
|
|
97
109
|
"telemetry.mark": engine(),
|
|
98
110
|
"skill.prompt": engine(),
|
|
@@ -106,7 +118,7 @@ export const MOD_EVENT_TABLE = Object.freeze({
|
|
|
106
118
|
"session.detach": engine(),
|
|
107
119
|
"session.measure": engine(),
|
|
108
120
|
"session.end": engine(),
|
|
109
|
-
"plugin.register": Object.freeze({ side: "both", station: station("
|
|
121
|
+
"plugin.register": Object.freeze({ side: "both", station: station("refuse", "immediate", ["name", "seat", "tier", "uses"]) }),
|
|
110
122
|
"turn.start": engine(),
|
|
111
123
|
"turn.step": engine(),
|
|
112
124
|
"turn.complete": engine(),
|
|
@@ -114,8 +126,8 @@ export const MOD_EVENT_TABLE = Object.freeze({
|
|
|
114
126
|
"model.complete": engine(method(true)),
|
|
115
127
|
"model.classify": engine(),
|
|
116
128
|
"model.fork": engine(),
|
|
117
|
-
"audio.play": surface,
|
|
118
|
-
"audio.speak": surface,
|
|
129
|
+
"audio.play": surface(),
|
|
130
|
+
"audio.speak": surface(),
|
|
119
131
|
"mcp.call": engine(),
|
|
120
132
|
"mcp.connect": engine(),
|
|
121
133
|
"session.cwd": engine(method(true)),
|
|
@@ -131,27 +143,27 @@ export const MOD_EVENT_TABLE = Object.freeze({
|
|
|
131
143
|
"session.usage": engine(),
|
|
132
144
|
"session.version": engine(),
|
|
133
145
|
"turn.abort": engine(),
|
|
134
|
-
"prompt.read": surface,
|
|
146
|
+
"prompt.read": surface(method(true)),
|
|
135
147
|
"flag.value": engine(),
|
|
136
148
|
"tool.list": engine(method(true)),
|
|
137
149
|
"tool.register": engine(),
|
|
138
|
-
"command.list": surface,
|
|
139
|
-
"command.register": surface,
|
|
140
|
-
"config.list": surface,
|
|
150
|
+
"command.list": surface(method(true)),
|
|
151
|
+
"command.register": surface(method(true)),
|
|
152
|
+
"config.list": surface(method(true)),
|
|
141
153
|
"agent.list": engine(method(true)),
|
|
142
154
|
"agent.register": engine(),
|
|
143
|
-
"ui.toast": surface,
|
|
144
|
-
"ui.status": surface,
|
|
145
|
-
"ui.log": surface,
|
|
146
|
-
"ui.notice": surface,
|
|
147
|
-
"ui.invalidate": surface,
|
|
148
|
-
"ui.open": surface,
|
|
149
|
-
"ui.close": surface,
|
|
150
|
-
"ui.panes": surface,
|
|
151
|
-
"ui.selection": surface,
|
|
152
|
-
"ui.copy": surface,
|
|
153
|
-
"ui.notify": surface,
|
|
154
|
-
"ui.blit": surface,
|
|
155
|
+
"ui.toast": surface(method(true)),
|
|
156
|
+
"ui.status": surface(),
|
|
157
|
+
"ui.log": surface(method(true)),
|
|
158
|
+
"ui.notice": surface(method(true)),
|
|
159
|
+
"ui.invalidate": surface(method(true)),
|
|
160
|
+
"ui.open": surface(),
|
|
161
|
+
"ui.close": surface(),
|
|
162
|
+
"ui.panes": surface(),
|
|
163
|
+
"ui.selection": surface(method(true)),
|
|
164
|
+
"ui.copy": surface(method(true)),
|
|
165
|
+
"ui.notify": surface(),
|
|
166
|
+
"ui.blit": surface(),
|
|
155
167
|
"fs.read": engine(),
|
|
156
168
|
"fs.write": engine(),
|
|
157
169
|
"fs.list": engine(),
|
|
@@ -199,6 +211,18 @@ export function expandModPattern(pattern) {
|
|
|
199
211
|
}
|
|
200
212
|
return isModEventName(pattern) ? { names: [pattern] } : { refusal: `"${pattern}" is not an event` };
|
|
201
213
|
}
|
|
214
|
+
export function expandOnSide(pattern, side) {
|
|
215
|
+
const expanded = expandModPattern(pattern);
|
|
216
|
+
if ("refusal" in expanded)
|
|
217
|
+
return expanded;
|
|
218
|
+
const own = expanded.names.filter((n) => readOnSide(n, side));
|
|
219
|
+
if (own.length > 0)
|
|
220
|
+
return { names: own };
|
|
221
|
+
const named = String(pattern);
|
|
222
|
+
return named.endsWith(".*")
|
|
223
|
+
? { refusal: `"${named}" selects no event the ${side} bus reads (${expanded.names.length === 1 ? "its one name is" : "its names are"} the ${MOD_EVENT_TABLE[expanded.names[0]].side} side's)` }
|
|
224
|
+
: { refusal: `"${named}" is a ${MOD_EVENT_TABLE[expanded.names[0]].side} event, read on that side's bus only — never on the ${side} bus` };
|
|
225
|
+
}
|
|
202
226
|
export function describe(value) {
|
|
203
227
|
if (typeof value === "string")
|
|
204
228
|
return `"${value}"`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** The package entry of `@sema-agent/mods-kernel`; core reads the same modules directly. */
|
|
2
|
-
export { KERNEL_CONTRACT_VERSION, MOD_TIERS, MOD_SEATS, MOD_EVENT_SIDES, MOD_FAILURE_ANSWERS, MOD_ABORT_POSTURES, NEXT_TO_TABLE, SEAT_TIER_TABLE, MOD_EVENT_TABLE, nextToRefusal, expandModPattern, isModEventName, stationOn, readOnSide, type ModTier, type ModRegistrationTier, type ModSeat, type ModEventSide, type ModBusSide, type ModFailureAnswer, type ModAbortPosture, type ModStation, type ModEventRow, type ModEventName, } from "./events.js";
|
|
2
|
+
export { KERNEL_CONTRACT_VERSION, MOD_TIERS, MOD_SEATS, MOD_EVENT_SIDES, MOD_FAILURE_ANSWERS, MOD_ABORT_POSTURES, NEXT_TO_TABLE, SEAT_TIER_TABLE, MOD_EVENT_TABLE, nextToRefusal, expandModPattern, expandOnSide, failureRefuses, isModEventName, stationOn, readOnSide, type ModTier, type ModRegistrationTier, type ModSeat, type ModEventSide, type ModBusSide, type ModFailureAnswer, type ModAbortPosture, type ModStation, type ModEventRow, type ModEventName, } from "./events.js";
|
|
3
3
|
export { DEFAULT_MOD_BUDGET_MS, CATCH_BUDGET_MS, RUNAWAY_AFTER_MS, POST_ABORT_GRACE_MS, MAX_TIMER_MS, resolveModBudgetMs, type ModBudgetReading, } from "./budget.js";
|
|
4
|
-
export { MOD_FAILURE_CAUSES, type ModFailureCause, type ModEventPayload, type ModAnswerCheck, type ModAnswerer, type ModMatcher, type ModSkip } from "./site-rules.js";
|
|
5
|
-
export { ENGINE_ORIGIN, MODS_INVALID_CODE, MODS_REGISTRATION_REFUSED_CODE, MOD_TRACE_OUTCOMES, type ModTraceOutcome, type ModUses, type ModOrigin, type ModPluginFacts, type ModDollarBase, type ModTraceEntry, type ModCaughtError, type ModNext, type ModHandler, type ModHandlerOptions, type On, type ModRegistration, type ModAdmissionRecord, type ModSeats, } from "./registration.js";
|
|
6
|
-
export { admitMods, type ModFrame, type ModBottomContext, type ModMethodBottom, type ModMethodSeat, type ModMethodBottoms, type ModDispatchOutcome, type ModDispatchOptions, type ModBus, type ModMountedHandler, type ModBusInput, } from "./dispatch.js";
|
|
4
|
+
export { MOD_FAILURE_CAUSES, type ModFailureCause, type ModEventPayload, type ModAnswerCheck, type ModAnswerRanks, type ModDispatchRun, type ModAnswerer, type ModMatcher, type ModSkip, } from "./site-rules.js";
|
|
5
|
+
export { ENGINE_ORIGIN, MODS_INVALID_CODE, MODS_REGISTRATION_REFUSED_CODE, MOD_TRACE_OUTCOMES, type ModTraceOutcome, type ModUses, type ModOrigin, type ModPluginFacts, type ModDollarBase, type ModTraceEntry, type ModCaughtError, type ModNext, type ModHandler, type ModHandlerOptions, type ModEventPair, type ModEventMap, type ModTypedNext, type ModTypedHandler, type On, type MappedOn, type ModRegistration, type ModAdmissionRecord, type ModSeats, } from "./registration.js";
|
|
6
|
+
export { admitMods, type ModFrame, type ModBottomContext, type ModMethodBottom, type ModMethodSeat, type ModMethodBottoms, type ModCallEntry, type ModCallEntries, type ModDispatchOutcome, type ModDispatchOptions, type ModBus, type ModMountedHandler, type ModBusInput, } from "./dispatch.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { KERNEL_CONTRACT_VERSION, MOD_TIERS, MOD_SEATS, MOD_EVENT_SIDES, MOD_FAILURE_ANSWERS, MOD_ABORT_POSTURES, NEXT_TO_TABLE, SEAT_TIER_TABLE, MOD_EVENT_TABLE, nextToRefusal, expandModPattern, isModEventName, stationOn, readOnSide, } from "./events.js";
|
|
1
|
+
export { KERNEL_CONTRACT_VERSION, MOD_TIERS, MOD_SEATS, MOD_EVENT_SIDES, MOD_FAILURE_ANSWERS, MOD_ABORT_POSTURES, NEXT_TO_TABLE, SEAT_TIER_TABLE, MOD_EVENT_TABLE, nextToRefusal, expandModPattern, expandOnSide, failureRefuses, isModEventName, stationOn, readOnSide, } from "./events.js";
|
|
2
2
|
export { DEFAULT_MOD_BUDGET_MS, CATCH_BUDGET_MS, RUNAWAY_AFTER_MS, POST_ABORT_GRACE_MS, MAX_TIMER_MS, resolveModBudgetMs, } from "./budget.js";
|
|
3
|
-
export { MOD_FAILURE_CAUSES } from "./site-rules.js";
|
|
3
|
+
export { MOD_FAILURE_CAUSES, } from "./site-rules.js";
|
|
4
4
|
export { ENGINE_ORIGIN, MODS_INVALID_CODE, MODS_REGISTRATION_REFUSED_CODE, MOD_TRACE_OUTCOMES, } from "./registration.js";
|
|
5
5
|
export { admitMods, } from "./dispatch.js";
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The ONE receipt of a caller's object: how a value someone else's code built becomes a value the receiver owns.
|
|
3
3
|
* Every reader of a caller's object reads it here — a constructor's configuration (`new Runner`'s deps, a brain's
|
|
4
|
-
* config), a station's answer record, a mods handler's payload and answer — each with its own mode, never its own
|
|
4
|
+
* config), a station's answer record, a mods handler's payload and answer, what a tool's `execute` returns — each with its own mode, never its own
|
|
5
5
|
* copy of the walk.
|
|
6
6
|
*
|
|
7
7
|
* The walk: a primitive is itself. A CONTAINER — an ordinary record (prototype `Object.prototype` or none) or an
|
|
8
8
|
* ordinary array — within `depth` levels is copied member by member off its own property descriptors, captured in
|
|
9
|
-
* one call before any of the caller's code can run
|
|
10
|
-
*
|
|
9
|
+
* one call before any of the caller's code can run (under `wire`, read live in the order `JSON.stringify` reads them); each
|
|
10
|
+
* member lands as an enumerable data property of the copy, which is filled on no prototype (so no setter up a chain runs and
|
|
11
|
+
* an own `__proto__` key stays a plain key) and handed its ordinary prototype when full. Anything else — a function, an
|
|
11
12
|
* object of another prototype, a container past `depth` — is handed as it is, refused, or (an object of another
|
|
12
13
|
* prototype under `copy`) copied off its own members like a record, by `others`, which also says whether cycles and
|
|
13
|
-
* shared references keep their shape or are refused / walked again
|
|
14
|
+
* shared references keep their shape or are refused / walked again (and `leaves` whether what is handed on is a structured
|
|
15
|
+
* clone of itself; `wire`, whether the members are those the JSON wire reads). A refusal refuses the whole receipt, or — under
|
|
14
16
|
* `contain` — only the member it was met in. The walk keeps its own stack (one frame per container being copied), so
|
|
15
17
|
* neither how deep a value nests nor how deep its caller already stands decides a verdict: only `depth` does.
|
|
16
18
|
*
|
|
@@ -55,6 +57,19 @@ export interface ReceiptMode {
|
|
|
55
57
|
readonly contain?: true;
|
|
56
58
|
/** Every container the copy makes is frozen (a received value cannot be changed after it was received). */
|
|
57
59
|
readonly freeze?: boolean;
|
|
60
|
+
/** The members are the ones the JSON wire carries, read as it reads them, and none of the caller's serializers runs
|
|
61
|
+
* (`accessors: "call-once"` only): a record's members are its own enumerable ones (a non-enumerable one is never read), a
|
|
62
|
+
* list's its indices (another own member of a list is never read), named when the container is met and each read live, in
|
|
63
|
+
* order, walked to its end before the next (a dense list or a record; a sparse list off its own members); an object that
|
|
64
|
+
* would be serialized through a `toJSON` (found off
|
|
65
|
+
* property descriptors up its prototype chain, nothing run) is not data — refused as `not-data`, its members with it —
|
|
66
|
+
* except the platform's own `Date.prototype.toJSON` (by identity), whose answer the receipt reads off the date's own
|
|
67
|
+
* time value (an ISO string, or `null` for an invalid date), never through a method the object could override. */
|
|
68
|
+
readonly wire?: true;
|
|
69
|
+
/** Under `others: "as-is"`, an object that is not copied is replaced by a structured clone of that object alone (one
|
|
70
|
+
* clone per object, so a shared one stays shared); a function, and an object the clone refuses (a handle, a class
|
|
71
|
+
* instance holding a function), are handed as they are. */
|
|
72
|
+
readonly leaves?: "cloned";
|
|
58
73
|
/** The host's Proxy probe. */
|
|
59
74
|
readonly isProxy?: (value: object) => boolean;
|
|
60
75
|
}
|
|
@@ -79,12 +94,20 @@ export type Receipt = {
|
|
|
79
94
|
};
|
|
80
95
|
/** Whether `v` is an ordinary record: an object whose prototype is `Object.prototype` or none (an array is not one). */
|
|
81
96
|
export declare function isPlainRecord(v: unknown): v is Record<string, unknown>;
|
|
97
|
+
/** A data member's descriptor, itself on no prototype: a definition reads `get` / `set` / `value` … off its descriptor, and one
|
|
98
|
+
* inherited from `Object.prototype` would be read (and run). */
|
|
99
|
+
export declare function dataMember(value: unknown): PropertyDescriptor;
|
|
100
|
+
/** `value` as the next member of an engine-owned list — defined, never assigned, so a setter some prototype holds at that index
|
|
101
|
+
* never runs (a `push` or an assignment to a new index asks the prototype chain first). */
|
|
102
|
+
export declare function appendOwn<T>(list: T[], value: T): void;
|
|
82
103
|
/**
|
|
83
104
|
* Receive `value` by `mode`. `held` names objects the reader already owns: met in the walk, each is kept as itself — not
|
|
84
105
|
* received again, never walked — so a member handed back unchanged keeps its identity. The set is consulted as it is,
|
|
85
106
|
* never copied, so one set serves every receipt of the same owner.
|
|
86
107
|
*/
|
|
87
|
-
export declare function receive(value: unknown, mode: ReceiptMode, held?:
|
|
108
|
+
export declare function receive(value: unknown, mode: ReceiptMode, held?: {
|
|
109
|
+
has(value: object): boolean;
|
|
110
|
+
}): Receipt;
|
|
88
111
|
/** The mods bus's mode: a payload and an answer received whole — no accessor runs, no depth limit, cycles and shared
|
|
89
112
|
* references kept, a function or a class instance handed as it is, every copied container frozen (so a member the
|
|
90
113
|
* bus holds cannot be changed under it by a handler that holds it too). The engine's own event is received in it as it
|
|
@@ -93,3 +116,14 @@ export declare function receive(value: unknown, mode: ReceiptMode, held?: Readon
|
|
|
93
116
|
export declare const MODS_PAYLOAD_MODE: ReceiptMode;
|
|
94
117
|
/** One clause naming a fault for a sentence ("an accessor at input.deep.x"). */
|
|
95
118
|
export declare function describeFault(fault: ReceiptFault): string;
|
|
119
|
+
/**
|
|
120
|
+
* The SEALED objects reachable from `roots`: every ordinary record or array whose whole graph is frozen data — frozen, of
|
|
121
|
+
* the ordinary prototype, every member an enumerable string-keyed data property holding a primitive (no symbol, no
|
|
122
|
+
* bigint) or another sealed object. Nothing in such a graph can change, so an answer may hold one as itself and the
|
|
123
|
+
* station's every read of it reads what was checked. Read off property descriptors (no getter ever runs), by an explicit
|
|
124
|
+
* stack (no depth decides); a cycle of frozen data is sealed. An object of another kind, an unfrozen container and every
|
|
125
|
+
* container that reaches one is not sealed: an answer holding it is received like any other value (copied as data, or
|
|
126
|
+
* refused); a sealed object an unfrozen container holds is still found. Taken as a snapshot at the moment it is asked —
|
|
127
|
+
* what a handler later freezes is not in it.
|
|
128
|
+
*/
|
|
129
|
+
export declare function sealedObjects(roots: readonly unknown[]): ReadonlySet<object>;
|