@open-everywhere/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/NOTICE +21 -0
- package/README.md +67 -0
- package/agent/access/access-referenced-link-sets.ts +23 -0
- package/agent/access/admin-read-venue.ts +159 -0
- package/agent/access/admin-standing.ts +98 -0
- package/agent/access/analytics-scope.ts +84 -0
- package/agent/access/approval-dedupe.ts +144 -0
- package/agent/access/approval-judge.ts +639 -0
- package/agent/access/approval-preview.ts +118 -0
- package/agent/access/approval-scenarios.ts +48 -0
- package/agent/access/approver-chain.ts +779 -0
- package/agent/access/audience-floor.ts +270 -0
- package/agent/access/aws-output.ts +132 -0
- package/agent/access/aws-screen.ts +198 -0
- package/agent/access/background-tasks.ts +364 -0
- package/agent/access/browser-hosts.ts +151 -0
- package/agent/access/browser-toolkit.ts +271 -0
- package/agent/access/bundle.ts +716 -0
- package/agent/access/capabilities.ts +11 -0
- package/agent/access/chat-dm-grant.ts +241 -0
- package/agent/access/chat-write-grant.ts +194 -0
- package/agent/access/config.ts +132 -0
- package/agent/access/connector-content-origin-state.ts +72 -0
- package/agent/access/connector-credentials.ts +449 -0
- package/agent/access/connector-disclosure.ts +253 -0
- package/agent/access/connector-op-gating.ts +224 -0
- package/agent/access/connector-scope.ts +302 -0
- package/agent/access/consequence.ts +1208 -0
- package/agent/access/credential-bindings-codemod.ts +242 -0
- package/agent/access/credential-endpoints.ts +279 -0
- package/agent/access/credential-grant-ask.ts +115 -0
- package/agent/access/credential-grant-broker.ts +359 -0
- package/agent/access/credential-grant-card.ts +521 -0
- package/agent/access/credential-grant-click.ts +246 -0
- package/agent/access/credential-grant-copy.ts +338 -0
- package/agent/access/credential-grant-flow.ts +735 -0
- package/agent/access/credential-grant-key-shape.ts +59 -0
- package/agent/access/credential-grant-notice.ts +219 -0
- package/agent/access/credential-grant-owner.ts +23 -0
- package/agent/access/credential-grant-reach.ts +81 -0
- package/agent/access/credential-grant-resolution.ts +119 -0
- package/agent/access/credential-grant-revoke.ts +95 -0
- package/agent/access/credential-grant-scope.ts +306 -0
- package/agent/access/credential-grant.ts +284 -0
- package/agent/access/credentials.ts +159 -0
- package/agent/access/dated-read.ts +18 -0
- package/agent/access/delegation-flag.ts +12 -0
- package/agent/access/delegation-mount.ts +28 -0
- package/agent/access/delta.ts +386 -0
- package/agent/access/dispatch-origin-signal.ts +133 -0
- package/agent/access/domain-credentials.ts +115 -0
- package/agent/access/egress-denial-log.ts +111 -0
- package/agent/access/egress-denial-poller.ts +239 -0
- package/agent/access/egress-status.ts +195 -0
- package/agent/access/egress.ts +321 -0
- package/agent/access/enforcement.ts +25 -0
- package/agent/access/eve-patch-probe-boot.ts +91 -0
- package/agent/access/eve-patch-probe.ts +276 -0
- package/agent/access/external-policy.ts +209 -0
- package/agent/access/extra-hosts.ts +31 -0
- package/agent/access/grant-borrow-transport-registry.internal.ts +81 -0
- package/agent/access/grant-room-notice-registry.internal.ts +77 -0
- package/agent/access/grant-schema-pin.ts +38 -0
- package/agent/access/grants-codemod.ts +352 -0
- package/agent/access/group-request.ts +76 -0
- package/agent/access/halt-state.ts +24 -0
- package/agent/access/halt.ts +276 -0
- package/agent/access/host-egress.ts +432 -0
- package/agent/access/human-only-invariants-manifest.ts +172 -0
- package/agent/access/ingestion-binding-manifest.ts +263 -0
- package/agent/access/ingestion-route-inventory.generated.ts +58 -0
- package/agent/access/instructions.ts +89 -0
- package/agent/access/invoker-posture-state.ts +25 -0
- package/agent/access/invoker-posture.ts +96 -0
- package/agent/access/job-posture.ts +83 -0
- package/agent/access/job-session-state.ts +58 -0
- package/agent/access/lean-seat-state.ts +45 -0
- package/agent/access/lean-seat.ts +83 -0
- package/agent/access/lint.ts +638 -0
- package/agent/access/live-delegated-tasks.ts +95 -0
- package/agent/access/loop-breaker.ts +88 -0
- package/agent/access/mcp-call-fence.ts +179 -0
- package/agent/access/member-grant.ts +45 -0
- package/agent/access/member-plane.ts +212 -0
- package/agent/access/native-admin.ts +35 -0
- package/agent/access/native-delegation-state.ts +40 -0
- package/agent/access/network-access.ts +132 -0
- package/agent/access/nullable-optional-fields.ts +184 -0
- package/agent/access/overlay-module.ts +70 -0
- package/agent/access/own-account-gate-manifest.ts +134 -0
- package/agent/access/pane-venue.ts +238 -0
- package/agent/access/pending-delegation-signal.ts +282 -0
- package/agent/access/permission-evidence.ts +627 -0
- package/agent/access/permission-proposal.ts +362 -0
- package/agent/access/platform.ts +14 -0
- package/agent/access/pre-approval-rules.ts +135 -0
- package/agent/access/principal-gate-manifest.ts +830 -0
- package/agent/access/provider-selection-check.ts +130 -0
- package/agent/access/provider-selection.ts +96 -0
- package/agent/access/read-grant.ts +104 -0
- package/agent/access/repo-capabilities.ts +74 -0
- package/agent/access/request.ts +126 -0
- package/agent/access/requester-identity.ts +305 -0
- package/agent/access/requester-messages.ts +52 -0
- package/agent/access/reserved-hosts.ts +11 -0
- package/agent/access/resolver.ts +604 -0
- package/agent/access/resource-capabilities.ts +103 -0
- package/agent/access/resource-grant-manifest.ts +136 -0
- package/agent/access/resource-grant.ts +163 -0
- package/agent/access/result-cap.ts +34 -0
- package/agent/access/result-reduce-model-arm.ts +94 -0
- package/agent/access/result-reduce.ts +104 -0
- package/agent/access/roles.ts +106 -0
- package/agent/access/scope-key.ts +50 -0
- package/agent/access/seat-read-budget.ts +57 -0
- package/agent/access/self-host-egress.ts +103 -0
- package/agent/access/settlement-dispatch-signal.ts +96 -0
- package/agent/access/skill-taint-envelope.ts +94 -0
- package/agent/access/source-gate-manifest.ts +148 -0
- package/agent/access/source-scoped-mount.ts +27 -0
- package/agent/access/subagent-taint.ts +225 -0
- package/agent/access/surface-work-grant.ts +91 -0
- package/agent/access/taint-enforcement.ts +183 -0
- package/agent/access/taint-signal.ts +297 -0
- package/agent/access/taint-tiers.ts +168 -0
- package/agent/access/task-wake-signal.ts +94 -0
- package/agent/access/tenant-admission.ts +191 -0
- package/agent/access/untrusted-projection.ts +273 -0
- package/agent/access/untrusted.ts +132 -0
- package/agent/access/wake-mapping.ts +38 -0
- package/agent/access/web-fetch-fence.ts +81 -0
- package/agent/access/window-gate-manifest.ts +543 -0
- package/agent/access/window-gated.ts +668 -0
- package/agent/access/window-routing.ts +23 -0
- package/agent/access/work-grant.ts +119 -0
- package/agent/access/work-mount-manifest.ts +203 -0
- package/agent/access/worker-capabilities.ts +379 -0
- package/agent/access/worker-capability-index.generated.ts +189 -0
- package/agent/access/worker-continuation.ts +200 -0
- package/agent/access/worker-seat-state.ts +25 -0
- package/agent/access/worker-seat.ts +54 -0
- package/agent/access/worker-toolset-state.ts +65 -0
- package/agent/adapter-api.ts +1795 -0
- package/agent/analytics/compile.ts +461 -0
- package/agent/analytics/execute.ts +166 -0
- package/agent/analytics/registry.ts +302 -0
- package/agent/approvals/access-request.ts +255 -0
- package/agent/approvals/actions.ts +398 -0
- package/agent/approvals/agent-create.ts +272 -0
- package/agent/approvals/arming-context.ts +26 -0
- package/agent/approvals/card-disclosure.ts +53 -0
- package/agent/approvals/card-signal.ts +151 -0
- package/agent/approvals/card-venue.ts +152 -0
- package/agent/approvals/card.ts +121 -0
- package/agent/approvals/chat-dm.ts +63 -0
- package/agent/approvals/chat-post.ts +60 -0
- package/agent/approvals/clicker-floor.ts +106 -0
- package/agent/approvals/decision-authority.internal.ts +114 -0
- package/agent/approvals/decision-wake.ts +122 -0
- package/agent/approvals/domain-exposure.ts +182 -0
- package/agent/approvals/eve-response-policy.ts +48 -0
- package/agent/approvals/flow.ts +2185 -0
- package/agent/approvals/input-response-floor.ts +104 -0
- package/agent/approvals/judge-contradiction.ts +156 -0
- package/agent/approvals/memory-purge.ts +149 -0
- package/agent/approvals/pr-open.ts +172 -0
- package/agent/approvals/review-surface.ts +7 -0
- package/agent/approvals/routine-cancel.ts +57 -0
- package/agent/approvals/routine-create.ts +213 -0
- package/agent/approvals/routine-lifecycle.ts +206 -0
- package/agent/approvals/routine-permission-offer.ts +131 -0
- package/agent/approvals/routine-permission.ts +214 -0
- package/agent/approvals/routine-policy.ts +174 -0
- package/agent/approvals/scope-label.ts +48 -0
- package/agent/approvals/session-checkpoint.ts +80 -0
- package/agent/approvals/session-grant.ts +173 -0
- package/agent/approvals/skill-create.ts +60 -0
- package/agent/approvals/skill-delete.ts +50 -0
- package/agent/approvals/taint-disclosure.ts +42 -0
- package/agent/approvals/ticket-actions.ts +86 -0
- package/agent/approvals/ticket-create.ts +67 -0
- package/agent/approvals/types.ts +48 -0
- package/agent/approvals/webhook-declare.ts +297 -0
- package/agent/approvals/webhook.ts +205 -0
- package/agent/audit/action-registry.ts +1094 -0
- package/agent/audit/audit.ts +105 -0
- package/agent/audit/chain.ts +568 -0
- package/agent/audit/tool-action.ts +286 -0
- package/agent/audit/window-tool-gate.ts +54 -0
- package/agent/audit/worker-toolset.ts +117 -0
- package/agent/blob/hosting.ts +180 -0
- package/agent/channels/access-request-ledger.ts +139 -0
- package/agent/channels/ambient-skip.ts +102 -0
- package/agent/channels/answered-container-ledger.ts +76 -0
- package/agent/channels/approval-card.ts +454 -0
- package/agent/channels/approval-claim-guard.ts +384 -0
- package/agent/channels/attachments.ts +243 -0
- package/agent/channels/aws-sso-callback.ts +9 -0
- package/agent/channels/backscroll-window.ts +145 -0
- package/agent/channels/cancel-note.ts +127 -0
- package/agent/channels/channel-key.ts +56 -0
- package/agent/channels/channel-read.ts +501 -0
- package/agent/channels/chat-turn-audit.ts +23 -0
- package/agent/channels/closing-prose-drop.ts +53 -0
- package/agent/channels/command-registration.ts +165 -0
- package/agent/channels/context-render.ts +206 -0
- package/agent/channels/control-mcp.ts +44 -0
- package/agent/channels/control-read.ts +37 -0
- package/agent/channels/credential-intake-page.ts +12 -0
- package/agent/channels/delegated-provenance.ts +506 -0
- package/agent/channels/dm-audience.ts +346 -0
- package/agent/channels/dm-seat.ts +138 -0
- package/agent/channels/domain-fingerprint.ts +90 -0
- package/agent/channels/egress-spoof.ts +35 -0
- package/agent/channels/engaged-wake.ts +158 -0
- package/agent/channels/engagement.ts +254 -0
- package/agent/channels/entity-actions.ts +186 -0
- package/agent/channels/front-queue.ts +78 -0
- package/agent/channels/generation-retirement.ts +557 -0
- package/agent/channels/halt-per-wake.ts +166 -0
- package/agent/channels/memory-claim-guard.ts +425 -0
- package/agent/channels/name-drop-wake-audit.ts +162 -0
- package/agent/channels/native-wake-retry.ts +62 -0
- package/agent/channels/no-reply-signal.ts +49 -0
- package/agent/channels/normalized-wake.ts +285 -0
- package/agent/channels/oe-oauth-callback.ts +13 -0
- package/agent/channels/own-post-ledger.ts +76 -0
- package/agent/channels/platform-failure.ts +45 -0
- package/agent/channels/policy-pages.ts +15 -0
- package/agent/channels/post-arms.ts +321 -0
- package/agent/channels/proactive-dm-manifest.ts +113 -0
- package/agent/channels/propose-scope.ts +90 -0
- package/agent/channels/question-bridge.ts +594 -0
- package/agent/channels/rate-limit-retry.ts +355 -0
- package/agent/channels/react-signal.ts +26 -0
- package/agent/channels/reaction-ingest.ts +221 -0
- package/agent/channels/read-author-trust.ts +71 -0
- package/agent/channels/read-reach.ts +339 -0
- package/agent/channels/read-scope-audit.ts +127 -0
- package/agent/channels/read-scope-error.ts +5 -0
- package/agent/channels/read-spool.ts +131 -0
- package/agent/channels/reply-edit.ts +208 -0
- package/agent/channels/reply-fold.ts +517 -0
- package/agent/channels/reply-freshness.ts +253 -0
- package/agent/channels/reply-post.ts +502 -0
- package/agent/channels/reply-provenance.ts +804 -0
- package/agent/channels/reply-signal.ts +723 -0
- package/agent/channels/request-claim-guard.ts +532 -0
- package/agent/channels/runtime-code-fingerprint.generated.ts +10 -0
- package/agent/channels/runtime-rotation.ts +224 -0
- package/agent/channels/seat-admission.ts +103 -0
- package/agent/channels/seat-catch-up.ts +482 -0
- package/agent/channels/self-dispatch.ts +349 -0
- package/agent/channels/session-park.ts +252 -0
- package/agent/channels/session-resume.ts +36 -0
- package/agent/channels/session-tail-record.ts +172 -0
- package/agent/channels/session-tail.ts +140 -0
- package/agent/channels/slack-bridge.ts +125 -0
- package/agent/channels/stand-down-silence.ts +110 -0
- package/agent/channels/standing-authority.ts +237 -0
- package/agent/channels/stranded-seat.ts +155 -0
- package/agent/channels/supervisor-complete.ts +141 -0
- package/agent/channels/surface-message-ops.ts +217 -0
- package/agent/channels/task-wake.ts +528 -0
- package/agent/channels/teams-bridge.ts +85 -0
- package/agent/channels/test-wake.ts +12 -0
- package/agent/channels/thread-ownership.ts +70 -0
- package/agent/channels/thread-seat-state.ts +90 -0
- package/agent/channels/ticket-create.ts +171 -0
- package/agent/channels/transcript-relay.ts +9 -0
- package/agent/channels/turn-cancel.ts +431 -0
- package/agent/channels/turn-delivery.ts +484 -0
- package/agent/channels/turn-registry.ts +117 -0
- package/agent/channels/turn-terminal-actions.ts +134 -0
- package/agent/channels/unified-redrive.ts +215 -0
- package/agent/channels/unified-reply.ts +300 -0
- package/agent/channels/unified-supervisor.ts +193 -0
- package/agent/channels/unified-window.ts +1075 -0
- package/agent/channels/unified.ts +1575 -0
- package/agent/channels/wake-accounting.ts +121 -0
- package/agent/channels/wake-arm.ts +244 -0
- package/agent/channels/wake-container.ts +50 -0
- package/agent/channels/wake-envelope.ts +632 -0
- package/agent/channels/wake-origin-codec.ts +96 -0
- package/agent/channels/wake-origin-codecs.ts +4 -0
- package/agent/channels/wake-timing.ts +401 -0
- package/agent/channels/webhook-reveal-page.ts +12 -0
- package/agent/channels/webhooks.ts +216 -0
- package/agent/channels/window-key.ts +439 -0
- package/agent/channels/window-sources.ts +88 -0
- package/agent/channels/work-destinations.ts +48 -0
- package/agent/channels/work-registry.ts +26 -0
- package/agent/channels/work-search.ts +92 -0
- package/agent/commands/core.ts +737 -0
- package/agent/commands/rate.ts +173 -0
- package/agent/connections/auth-retry-memo.ts +115 -0
- package/agent/connections/aws-exec.ts +52 -0
- package/agent/connections/aws-identity.ts +297 -0
- package/agent/connections/aws-sso-callback.ts +103 -0
- package/agent/connections/aws-sso-identity-binding.ts +115 -0
- package/agent/connections/aws-sso-link.ts +40 -0
- package/agent/connections/connector-auth.ts +984 -0
- package/agent/connections/connector-card.ts +447 -0
- package/agent/connections/connector-flags.ts +44 -0
- package/agent/connections/connector-offer.ts +241 -0
- package/agent/connections/connector-transport.ts +131 -0
- package/agent/connections/consent-resume.ts +205 -0
- package/agent/connections/grant-mcp-borrow.ts +334 -0
- package/agent/connections/grant-mcp-transport.ts +64 -0
- package/agent/connections/notion.ts +42 -0
- package/agent/connections/oe-oauth-callback.ts +207 -0
- package/agent/connections/own-account-ask.ts +302 -0
- package/agent/connections/own-account-carriage.ts +99 -0
- package/agent/connections/own-account-gate.ts +361 -0
- package/agent/connections/own-account-vendors.ts +117 -0
- package/agent/connections/user-auth-flow.ts +102 -0
- package/agent/contributions.ts +197 -0
- package/agent/control/auth.ts +663 -0
- package/agent/control/capture-window-read.ts +382 -0
- package/agent/control/delivery-history.ts +558 -0
- package/agent/control/http.ts +169 -0
- package/agent/control/mcp-route.ts +105 -0
- package/agent/control/oauth-clients.ts +278 -0
- package/agent/control/oauth-resource.ts +200 -0
- package/agent/control/oauth-route.ts +397 -0
- package/agent/control/oauth-tokens.ts +222 -0
- package/agent/control/read-route.ts +841 -0
- package/agent/control/server.ts +540 -0
- package/agent/control/test-route.ts +527 -0
- package/agent/control/transcript-export.ts +197 -0
- package/agent/control/transcript-relay.ts +381 -0
- package/agent/control/transcript-render.ts +164 -0
- package/agent/control/views.ts +1289 -0
- package/agent/control/writes.ts +1431 -0
- package/agent/credentials/binding-pr.ts +247 -0
- package/agent/credentials/config-pr-github.ts +197 -0
- package/agent/credentials/config-pr.ts +180 -0
- package/agent/credentials/db-broker.ts +270 -0
- package/agent/credentials/home.ts +83 -0
- package/agent/credentials/intake-page.ts +302 -0
- package/agent/credentials/intake.ts +550 -0
- package/agent/credentials/kv-vault.ts +180 -0
- package/agent/credentials/operator-secrets.ts +396 -0
- package/agent/credentials/page-chrome.ts +59 -0
- package/agent/credentials/page-token.ts +219 -0
- package/agent/credentials/purge.ts +113 -0
- package/agent/credentials/ref.ts +151 -0
- package/agent/credentials/reserved-refs.ts +76 -0
- package/agent/credentials/self-secrets.ts +165 -0
- package/agent/credentials/warm.ts +209 -0
- package/agent/docs/approver-policy.ts +234 -0
- package/agent/docs/capability-map.ts +180 -0
- package/agent/docs/counted-claims.ts +433 -0
- package/agent/docs/registry.ts +184 -0
- package/agent/docs/source-map.ts +174 -0
- package/agent/hooks/approval-raised.ts +37 -0
- package/agent/hooks/approval-settlement.ts +109 -0
- package/agent/hooks/binding-bridge.ts +77 -0
- package/agent/hooks/connector-audit.ts +111 -0
- package/agent/hooks/egress.ts +694 -0
- package/agent/hooks/eve-patch-gate.ts +52 -0
- package/agent/hooks/fire-carriage.ts +44 -0
- package/agent/hooks/fire-toolset.ts +306 -0
- package/agent/hooks/job-posture.ts +82 -0
- package/agent/hooks/lean-seat.ts +233 -0
- package/agent/hooks/learn.ts +199 -0
- package/agent/hooks/link-claim.ts +269 -0
- package/agent/hooks/log-flush.ts +32 -0
- package/agent/hooks/loop-breaker.ts +17 -0
- package/agent/hooks/memory.ts +1250 -0
- package/agent/hooks/native-input-audit.ts +41 -0
- package/agent/hooks/own-account-ask.ts +172 -0
- package/agent/hooks/requester-identity.ts +30 -0
- package/agent/hooks/requester-messages.ts +55 -0
- package/agent/hooks/routine-outcome.ts +252 -0
- package/agent/hooks/routine-silence.ts +38 -0
- package/agent/hooks/session-park.ts +48 -0
- package/agent/hooks/settlement-flush.ts +173 -0
- package/agent/hooks/spawn-taint.ts +1312 -0
- package/agent/hooks/spend.ts +368 -0
- package/agent/hooks/stall-guard.ts +22 -0
- package/agent/hooks/telemetry.ts +90 -0
- package/agent/hooks/turn-anchor.ts +682 -0
- package/agent/hooks/turn-tally.ts +98 -0
- package/agent/hooks/wake-accounting-turn.ts +96 -0
- package/agent/hooks/wake-turn-start.ts +44 -0
- package/agent/hooks/window-routing.ts +51 -0
- package/agent/identity/account-directory.ts +138 -0
- package/agent/identity/account-display-name.ts +178 -0
- package/agent/identity/author-trust.ts +297 -0
- package/agent/identity/binding-bridge.ts +88 -0
- package/agent/identity/binding.ts +1308 -0
- package/agent/identity/bot-display-name.ts +50 -0
- package/agent/identity/bot-name.ts +79 -0
- package/agent/identity/capabilities.ts +79 -0
- package/agent/identity/delegated-binding.ts +130 -0
- package/agent/identity/deployment-identity.ts +105 -0
- package/agent/identity/directory-sync.ts +777 -0
- package/agent/identity/directory.ts +89 -0
- package/agent/identity/display-title.ts +19 -0
- package/agent/identity/frozen-surface-binding.internal.ts +83 -0
- package/agent/identity/group-sync.ts +169 -0
- package/agent/identity/groups-codemod.ts +142 -0
- package/agent/identity/groups-delivery.ts +156 -0
- package/agent/identity/groups.ts +174 -0
- package/agent/identity/link-challenge.ts +147 -0
- package/agent/identity/link-consent.ts +216 -0
- package/agent/identity/link-flow.ts +380 -0
- package/agent/identity/link-initiator.ts +27 -0
- package/agent/identity/link-resolve.ts +227 -0
- package/agent/identity/link-set-ref.ts +33 -0
- package/agent/identity/link-store.ts +889 -0
- package/agent/identity/link-tenant-backfill.ts +79 -0
- package/agent/identity/link-tenant.ts +54 -0
- package/agent/identity/oauth-vault-share.ts +40 -0
- package/agent/identity/platform.ts +48 -0
- package/agent/identity/principal-key-rules.ts +113 -0
- package/agent/identity/principal-key.ts +210 -0
- package/agent/identity/principals.ts +354 -0
- package/agent/identity/surface-key-grammar.ts +142 -0
- package/agent/identity/surface-parity.ts +427 -0
- package/agent/identity/trust-preflight.ts +271 -0
- package/agent/identity/trust.ts +433 -0
- package/agent/identity/wake-trust.ts +217 -0
- package/agent/instructions/access.ts +1239 -0
- package/agent/instructions/seat-prompt.ts +1286 -0
- package/agent/lib/process-registry.ts +52 -0
- package/agent/memory/agents-codemod.ts +443 -0
- package/agent/memory/connector-memory.ts +137 -0
- package/agent/memory/domain.ts +1276 -0
- package/agent/memory/dream/candidates.ts +187 -0
- package/agent/memory/dream/correction.ts +133 -0
- package/agent/memory/dream/judge.ts +174 -0
- package/agent/memory/dream/learn.ts +299 -0
- package/agent/memory/dream/mode3-cluster.ts +151 -0
- package/agent/memory/dream/mode3-last-mile.ts +365 -0
- package/agent/memory/dream/mode3.ts +311 -0
- package/agent/memory/dream/ops.ts +321 -0
- package/agent/memory/dream/proposal.ts +83 -0
- package/agent/memory/dream/recurrence.ts +132 -0
- package/agent/memory/dream/salience.ts +24 -0
- package/agent/memory/dream/skill-proposal-pr.ts +323 -0
- package/agent/memory/dream/supersede-apply.ts +94 -0
- package/agent/memory/dream/tidy.ts +162 -0
- package/agent/memory/graph.ts +178 -0
- package/agent/memory/host-owned-files.ts +3 -0
- package/agent/memory/layout.ts +85 -0
- package/agent/memory/listing.ts +199 -0
- package/agent/memory/markdown.ts +211 -0
- package/agent/memory/partition.ts +66 -0
- package/agent/memory/postgres.ts +497 -0
- package/agent/memory/provenance-mark.ts +318 -0
- package/agent/memory/provenance.ts +28 -0
- package/agent/memory/provider.ts +186 -0
- package/agent/memory/purge-redaction.ts +68 -0
- package/agent/memory/readonly.ts +57 -0
- package/agent/memory/resolve.ts +181 -0
- package/agent/memory/root-fence.ts +54 -0
- package/agent/memory/sandbox-sync.ts +84 -0
- package/agent/memory/selection.ts +120 -0
- package/agent/memory/silo.ts +71 -0
- package/agent/memory/sqlite.ts +206 -0
- package/agent/memory/store.ts +162 -0
- package/agent/memory/sync-timing.ts +223 -0
- package/agent/memory/wake-delta.ts +239 -0
- package/agent/memory/write-evidence.ts +150 -0
- package/agent/memory/write-fence.ts +145 -0
- package/agent/memory/write-intent.ts +205 -0
- package/agent/memory/write-road.ts +159 -0
- package/agent/model/ab-test.ts +374 -0
- package/agent/model/call-capture.ts +414 -0
- package/agent/model/default-model.ts +63 -0
- package/agent/model/model-stamp.ts +162 -0
- package/agent/model/policy.ts +378 -0
- package/agent/model/routing.ts +834 -0
- package/agent/model/step-boundary.ts +560 -0
- package/agent/model/stream-drop-retry.ts +334 -0
- package/agent/model/turn-closeout.ts +299 -0
- package/agent/model/turn-state.ts +461 -0
- package/agent/model/vision.ts +112 -0
- package/agent/observability/ship.ts +394 -0
- package/agent/observability/telemetry.ts +819 -0
- package/agent/observability/turn-clock.ts +96 -0
- package/agent/onboarding/onboarding.ts +98 -0
- package/agent/operational/credential-grant-rows.ts +944 -0
- package/agent/operational/pglite-client.ts +282 -0
- package/agent/operational/post-once.ts +146 -0
- package/agent/operational/postgres.ts +5030 -0
- package/agent/operational/provider.ts +190 -0
- package/agent/operational/sqlite.ts +4007 -0
- package/agent/operational/store.ts +2346 -0
- package/agent/ops/census.ts +1076 -0
- package/agent/ops/probes.ts +69 -0
- package/agent/ops/quickstart.ts +296 -0
- package/agent/ops/server.ts +485 -0
- package/agent/ops/surface-manifest.ts +111 -0
- package/agent/ops/two-role.ts +75 -0
- package/agent/pages/policy-pages.ts +79 -0
- package/agent/plugins/extract.ts +381 -0
- package/agent/plugins/parse.ts +122 -0
- package/agent/plugins/types.ts +147 -0
- package/agent/publish/eve-patch-pack.ts +461 -0
- package/agent/review/blast-radius.ts +282 -0
- package/agent/review/config-facts.ts +200 -0
- package/agent/review/facts-artifact.ts +377 -0
- package/agent/review/facts-cloud-status.ts +288 -0
- package/agent/review/pr-walkthrough.ts +772 -0
- package/agent/review/zip.ts +154 -0
- package/agent/roles/role.ts +228 -0
- package/agent/routines/bound.ts +262 -0
- package/agent/routines/check-in.ts +54 -0
- package/agent/routines/collector.ts +497 -0
- package/agent/routines/declared-permissions.ts +578 -0
- package/agent/routines/disable-notice.ts +181 -0
- package/agent/routines/entity-read.ts +305 -0
- package/agent/routines/event-authz.ts +268 -0
- package/agent/routines/event-match.ts +200 -0
- package/agent/routines/event-model.ts +744 -0
- package/agent/routines/events.ts +201 -0
- package/agent/routines/fire-audit.ts +823 -0
- package/agent/routines/fire-auth.ts +280 -0
- package/agent/routines/fire-carriage.ts +126 -0
- package/agent/routines/fire-creator.ts +86 -0
- package/agent/routines/fire-disclosure.ts +233 -0
- package/agent/routines/fire-eligibility.ts +280 -0
- package/agent/routines/fire-halt.ts +57 -0
- package/agent/routines/fire-message.ts +76 -0
- package/agent/routines/fire-toolset.ts +179 -0
- package/agent/routines/fire-window.ts +604 -0
- package/agent/routines/follow-ups.ts +173 -0
- package/agent/routines/gate.ts +251 -0
- package/agent/routines/github-entity-read.ts +120 -0
- package/agent/routines/github-fanout.ts +88 -0
- package/agent/routines/github-normalizer.ts +248 -0
- package/agent/routines/ingress.ts +855 -0
- package/agent/routines/job.ts +140 -0
- package/agent/routines/jq-filter.ts +387 -0
- package/agent/routines/lifecycle.ts +248 -0
- package/agent/routines/match-stamp.ts +131 -0
- package/agent/routines/outcome-fold.ts +302 -0
- package/agent/routines/partition.ts +27 -0
- package/agent/routines/permission-card-wait.ts +281 -0
- package/agent/routines/permission-card.ts +496 -0
- package/agent/routines/permission-key.ts +54 -0
- package/agent/routines/permission-review.ts +318 -0
- package/agent/routines/policy.ts +304 -0
- package/agent/routines/pre-fire.ts +133 -0
- package/agent/routines/provider-events.ts +430 -0
- package/agent/routines/report.ts +148 -0
- package/agent/routines/routine.ts +949 -0
- package/agent/routines/schedule.ts +209 -0
- package/agent/routines/scheme-name.ts +96 -0
- package/agent/routines/stall.ts +153 -0
- package/agent/routines/store.ts +100 -0
- package/agent/routines/watch.ts +328 -0
- package/agent/sandbox/backend-select.ts +58 -0
- package/agent/sandbox/vercel-create.ts +211 -0
- package/agent/scaffold/app-root.ts +104 -0
- package/agent/scaffold/roster-config.ts +187 -0
- package/agent/scaffold/roster-fs.ts +202 -0
- package/agent/scaffold/roster-plan.ts +880 -0
- package/agent/scaffold/templates.ts +85 -0
- package/agent/scaffold/tool-roster-read.ts +79 -0
- package/agent/scaffold/tool-roster.ts +214 -0
- package/agent/schedules/directory-sync.ts +37 -0
- package/agent/schedules/dispatch.ts +798 -0
- package/agent/schedules/dream-mode3.ts +311 -0
- package/agent/schedules/routine-dispatch.ts +213 -0
- package/agent/schedules/tidy.ts +321 -0
- package/agent/scm/app.ts +150 -0
- package/agent/scm/broker-audit.ts +107 -0
- package/agent/scm/broker.ts +130 -0
- package/agent/scm/capability-fit.ts +164 -0
- package/agent/scm/config-repo-token.ts +44 -0
- package/agent/scm/config.ts +37 -0
- package/agent/scm/contents.ts +162 -0
- package/agent/scm/git.ts +383 -0
- package/agent/scm/github-acting-identity.ts +127 -0
- package/agent/scm/github-search.ts +144 -0
- package/agent/scm/github-work.ts +44 -0
- package/agent/scm/installations.ts +155 -0
- package/agent/scm/issue-actions.ts +234 -0
- package/agent/scm/mint.ts +299 -0
- package/agent/scm/pr-activity.ts +130 -0
- package/agent/scm/pr-diff.ts +143 -0
- package/agent/scm/pr-feedback.ts +335 -0
- package/agent/scm/pr-status.ts +299 -0
- package/agent/scm/pr-watch.ts +162 -0
- package/agent/scm/pr.ts +114 -0
- package/agent/scm/provider.ts +46 -0
- package/agent/scm/refs.ts +142 -0
- package/agent/scm/repo-skills.ts +212 -0
- package/agent/scm/types.ts +50 -0
- package/agent/scm/write-token.ts +41 -0
- package/agent/settings/settings.ts +1525 -0
- package/agent/skills/domain-skills.ts +206 -0
- package/agent/skills/scoped.ts +172 -0
- package/agent/spend/bypass.ts +133 -0
- package/agent/spend/caps.ts +361 -0
- package/agent/spend/check.ts +164 -0
- package/agent/spend/checkpoint.ts +673 -0
- package/agent/spend/dm-mask.ts +134 -0
- package/agent/spend/ingress-gate.ts +349 -0
- package/agent/spend/pricing.ts +584 -0
- package/agent/spend/reporting.ts +900 -0
- package/agent/spend/sandbox-pricing.ts +53 -0
- package/agent/spend/spend.ts +480 -0
- package/agent/spend/stack-pricing.ts +205 -0
- package/agent/spend/store.ts +263 -0
- package/agent/spend/subagent-runs.ts +166 -0
- package/agent/spend/usage-events.ts +144 -0
- package/agent/stall/bash-hang-guard.ts +326 -0
- package/agent/stall/guard.ts +285 -0
- package/agent/status/status.ts +128 -0
- package/agent/subagents/contracts.ts +147 -0
- package/agent/subagents/declared.ts +201 -0
- package/agent/testing/driver-allowlist.ts +239 -0
- package/agent/tools/add_label.ts +68 -0
- package/agent/tools/add_routine_rule.ts +215 -0
- package/agent/tools/agent_version.ts +46 -0
- package/agent/tools/assign.ts +182 -0
- package/agent/tools/aws.ts +175 -0
- package/agent/tools/browser_tools.ts +22 -0
- package/agent/tools/cancel_routine.ts +133 -0
- package/agent/tools/capture_events.ts +54 -0
- package/agent/tools/check_pr_status.ts +72 -0
- package/agent/tools/checkout_repo.ts +172 -0
- package/agent/tools/clear_connector_override.ts +159 -0
- package/agent/tools/clear_spend_limit.ts +199 -0
- package/agent/tools/complete_job.ts +64 -0
- package/agent/tools/complete_thread.ts +134 -0
- package/agent/tools/confirm_link.ts +503 -0
- package/agent/tools/connector.ts +230 -0
- package/agent/tools/create_agent.ts +305 -0
- package/agent/tools/create_routine.ts +487 -0
- package/agent/tools/create_skill.ts +178 -0
- package/agent/tools/create_ticket.ts +187 -0
- package/agent/tools/declare_webhook.ts +362 -0
- package/agent/tools/delete_skill.ts +135 -0
- package/agent/tools/describe_image.ts +302 -0
- package/agent/tools/dm_person.ts +203 -0
- package/agent/tools/edit_reply.ts +195 -0
- package/agent/tools/edit_routine.ts +159 -0
- package/agent/tools/enable_routine.ts +162 -0
- package/agent/tools/explain_permission.ts +59 -0
- package/agent/tools/get_pr_feedback.ts +84 -0
- package/agent/tools/grant_tools.ts +443 -0
- package/agent/tools/halt.ts +172 -0
- package/agent/tools/link_identity.ts +308 -0
- package/agent/tools/list_recent_events.ts +58 -0
- package/agent/tools/list_repos.ts +24 -0
- package/agent/tools/list_routines.ts +152 -0
- package/agent/tools/list_skills.ts +38 -0
- package/agent/tools/list_webhooks.ts +72 -0
- package/agent/tools/memory_admin_list.ts +79 -0
- package/agent/tools/memory_admin_read.ts +95 -0
- package/agent/tools/message_thread_seat.ts +145 -0
- package/agent/tools/no_reply.ts +272 -0
- package/agent/tools/open_pull_request.ts +348 -0
- package/agent/tools/permission_fit_report.ts +190 -0
- package/agent/tools/post_file.ts +416 -0
- package/agent/tools/post_message.ts +169 -0
- package/agent/tools/post_pr_walkthrough.ts +220 -0
- package/agent/tools/purge_memory.ts +361 -0
- package/agent/tools/query_analytics.ts +83 -0
- package/agent/tools/react.ts +201 -0
- package/agent/tools/read_channel.ts +121 -0
- package/agent/tools/read_docs.ts +50 -0
- package/agent/tools/read_file_upload.ts +190 -0
- package/agent/tools/read_routine_transcript.ts +88 -0
- package/agent/tools/read_thread.ts +103 -0
- package/agent/tools/read_thread_seat.ts +91 -0
- package/agent/tools/read_webhook_history.ts +46 -0
- package/agent/tools/read_work_channel.ts +109 -0
- package/agent/tools/read_work_thread.ts +90 -0
- package/agent/tools/record_follow_up.ts +84 -0
- package/agent/tools/record_job_state.ts +49 -0
- package/agent/tools/record_watch_state.ts +47 -0
- package/agent/tools/remove_routine_rule.ts +158 -0
- package/agent/tools/reply.ts +757 -0
- package/agent/tools/report_run_failed.ts +79 -0
- package/agent/tools/request_access.ts +518 -0
- package/agent/tools/request_credential_grant.ts +550 -0
- package/agent/tools/resume.ts +148 -0
- package/agent/tools/revoke_connector.ts +155 -0
- package/agent/tools/revoke_credential_grant.ts +108 -0
- package/agent/tools/revoke_routine_permissions.ts +81 -0
- package/agent/tools/rotate_webhook.ts +185 -0
- package/agent/tools/run_routine_now.ts +120 -0
- package/agent/tools/sandbox_tools.ts +94 -0
- package/agent/tools/search.ts +121 -0
- package/agent/tools/session_cost.ts +135 -0
- package/agent/tools/set_dm_delivery.ts +115 -0
- package/agent/tools/set_spend_limit.ts +529 -0
- package/agent/tools/set_state.ts +179 -0
- package/agent/tools/spawn_thread_session.ts +223 -0
- package/agent/tools/spend_report.ts +440 -0
- package/agent/tools/stand_down.ts +260 -0
- package/agent/tools/subscribe_pr.ts +253 -0
- package/agent/tools/unlink_identity.ts +100 -0
- package/agent/tools/update_status.ts +65 -0
- package/agent/tools/usage_report.ts +103 -0
- package/agent/tools/walk_pr.ts +150 -0
- package/agent/webhooks/achievability.ts +235 -0
- package/agent/webhooks/capture-window.ts +220 -0
- package/agent/webhooks/config.ts +556 -0
- package/agent/webhooks/dispatch.ts +418 -0
- package/agent/webhooks/gate.ts +392 -0
- package/agent/webhooks/handshake-capture.ts +189 -0
- package/agent/webhooks/hooks-codemod.ts +266 -0
- package/agent/webhooks/oe-standard-webhook.ts +563 -0
- package/agent/webhooks/reject-audit.ts +134 -0
- package/agent/webhooks/replay-dedupe.ts +183 -0
- package/agent/webhooks/reveal-page.ts +507 -0
- package/agent/webhooks/secrets.ts +81 -0
- package/agent/webhooks/source-vocabulary.ts +333 -0
- package/agent/webhooks/verifier.ts +324 -0
- package/bin/oe-eve-patch.js +205 -0
- package/bin/oe.js +19 -0
- package/dist/agent/access/access-referenced-link-sets.d.ts +8 -0
- package/dist/agent/access/access-referenced-link-sets.d.ts.map +1 -0
- package/dist/agent/access/access-referenced-link-sets.js +20 -0
- package/dist/agent/access/access-referenced-link-sets.js.map +1 -0
- package/dist/agent/access/admin-read-venue.d.ts +48 -0
- package/dist/agent/access/admin-read-venue.d.ts.map +1 -0
- package/dist/agent/access/admin-read-venue.js +109 -0
- package/dist/agent/access/admin-read-venue.js.map +1 -0
- package/dist/agent/access/admin-standing.d.ts +16 -0
- package/dist/agent/access/admin-standing.d.ts.map +1 -0
- package/dist/agent/access/admin-standing.js +89 -0
- package/dist/agent/access/admin-standing.js.map +1 -0
- package/dist/agent/access/analytics-scope.d.ts +24 -0
- package/dist/agent/access/analytics-scope.d.ts.map +1 -0
- package/dist/agent/access/analytics-scope.js +62 -0
- package/dist/agent/access/analytics-scope.js.map +1 -0
- package/dist/agent/access/approval-dedupe.d.ts +29 -0
- package/dist/agent/access/approval-dedupe.d.ts.map +1 -0
- package/dist/agent/access/approval-dedupe.js +99 -0
- package/dist/agent/access/approval-dedupe.js.map +1 -0
- package/dist/agent/access/approval-judge.d.ts +186 -0
- package/dist/agent/access/approval-judge.d.ts.map +1 -0
- package/dist/agent/access/approval-judge.js +482 -0
- package/dist/agent/access/approval-judge.js.map +1 -0
- package/dist/agent/access/approval-preview.d.ts +27 -0
- package/dist/agent/access/approval-preview.d.ts.map +1 -0
- package/dist/agent/access/approval-preview.js +90 -0
- package/dist/agent/access/approval-preview.js.map +1 -0
- package/dist/agent/access/approval-scenarios.d.ts +18 -0
- package/dist/agent/access/approval-scenarios.d.ts.map +1 -0
- package/dist/agent/access/approval-scenarios.js +27 -0
- package/dist/agent/access/approval-scenarios.js.map +1 -0
- package/dist/agent/access/approver-chain.d.ts +210 -0
- package/dist/agent/access/approver-chain.d.ts.map +1 -0
- package/dist/agent/access/approver-chain.js +585 -0
- package/dist/agent/access/approver-chain.js.map +1 -0
- package/dist/agent/access/audience-floor.d.ts +69 -0
- package/dist/agent/access/audience-floor.d.ts.map +1 -0
- package/dist/agent/access/audience-floor.js +189 -0
- package/dist/agent/access/audience-floor.js.map +1 -0
- package/dist/agent/access/aws-output.d.ts +39 -0
- package/dist/agent/access/aws-output.d.ts.map +1 -0
- package/dist/agent/access/aws-output.js +94 -0
- package/dist/agent/access/aws-output.js.map +1 -0
- package/dist/agent/access/aws-screen.d.ts +24 -0
- package/dist/agent/access/aws-screen.d.ts.map +1 -0
- package/dist/agent/access/aws-screen.js +177 -0
- package/dist/agent/access/aws-screen.js.map +1 -0
- package/dist/agent/access/background-tasks.d.ts +100 -0
- package/dist/agent/access/background-tasks.d.ts.map +1 -0
- package/dist/agent/access/background-tasks.js +288 -0
- package/dist/agent/access/background-tasks.js.map +1 -0
- package/dist/agent/access/browser-hosts.d.ts +37 -0
- package/dist/agent/access/browser-hosts.d.ts.map +1 -0
- package/dist/agent/access/browser-hosts.js +127 -0
- package/dist/agent/access/browser-hosts.js.map +1 -0
- package/dist/agent/access/browser-toolkit.d.ts +48 -0
- package/dist/agent/access/browser-toolkit.d.ts.map +1 -0
- package/dist/agent/access/browser-toolkit.js +240 -0
- package/dist/agent/access/browser-toolkit.js.map +1 -0
- package/dist/agent/access/bundle.d.ts +239 -0
- package/dist/agent/access/bundle.d.ts.map +1 -0
- package/dist/agent/access/bundle.js +454 -0
- package/dist/agent/access/bundle.js.map +1 -0
- package/dist/agent/access/capabilities.d.ts +5 -0
- package/dist/agent/access/capabilities.d.ts.map +1 -0
- package/dist/agent/access/capabilities.js +9 -0
- package/dist/agent/access/capabilities.js.map +1 -0
- package/dist/agent/access/chat-dm-grant.d.ts +47 -0
- package/dist/agent/access/chat-dm-grant.d.ts.map +1 -0
- package/dist/agent/access/chat-dm-grant.js +185 -0
- package/dist/agent/access/chat-dm-grant.js.map +1 -0
- package/dist/agent/access/chat-write-grant.d.ts +35 -0
- package/dist/agent/access/chat-write-grant.d.ts.map +1 -0
- package/dist/agent/access/chat-write-grant.js +153 -0
- package/dist/agent/access/chat-write-grant.js.map +1 -0
- package/dist/agent/access/config.d.ts +117 -0
- package/dist/agent/access/config.d.ts.map +1 -0
- package/dist/agent/access/config.js +16 -0
- package/dist/agent/access/config.js.map +1 -0
- package/dist/agent/access/connector-content-origin-state.d.ts +17 -0
- package/dist/agent/access/connector-content-origin-state.d.ts.map +1 -0
- package/dist/agent/access/connector-content-origin-state.js +73 -0
- package/dist/agent/access/connector-content-origin-state.js.map +1 -0
- package/dist/agent/access/connector-credentials.d.ts +186 -0
- package/dist/agent/access/connector-credentials.d.ts.map +1 -0
- package/dist/agent/access/connector-credentials.js +258 -0
- package/dist/agent/access/connector-credentials.js.map +1 -0
- package/dist/agent/access/connector-disclosure.d.ts +66 -0
- package/dist/agent/access/connector-disclosure.d.ts.map +1 -0
- package/dist/agent/access/connector-disclosure.js +194 -0
- package/dist/agent/access/connector-disclosure.js.map +1 -0
- package/dist/agent/access/connector-op-gating.d.ts +32 -0
- package/dist/agent/access/connector-op-gating.d.ts.map +1 -0
- package/dist/agent/access/connector-op-gating.js +178 -0
- package/dist/agent/access/connector-op-gating.js.map +1 -0
- package/dist/agent/access/connector-scope.d.ts +42 -0
- package/dist/agent/access/connector-scope.d.ts.map +1 -0
- package/dist/agent/access/connector-scope.js +258 -0
- package/dist/agent/access/connector-scope.js.map +1 -0
- package/dist/agent/access/consequence.d.ts +205 -0
- package/dist/agent/access/consequence.d.ts.map +1 -0
- package/dist/agent/access/consequence.js +816 -0
- package/dist/agent/access/consequence.js.map +1 -0
- package/dist/agent/access/credential-bindings-codemod.d.ts +63 -0
- package/dist/agent/access/credential-bindings-codemod.d.ts.map +1 -0
- package/dist/agent/access/credential-bindings-codemod.js +179 -0
- package/dist/agent/access/credential-bindings-codemod.js.map +1 -0
- package/dist/agent/access/credential-endpoints.d.ts +47 -0
- package/dist/agent/access/credential-endpoints.d.ts.map +1 -0
- package/dist/agent/access/credential-endpoints.js +211 -0
- package/dist/agent/access/credential-endpoints.js.map +1 -0
- package/dist/agent/access/credential-grant-ask.d.ts +22 -0
- package/dist/agent/access/credential-grant-ask.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-ask.js +82 -0
- package/dist/agent/access/credential-grant-ask.js.map +1 -0
- package/dist/agent/access/credential-grant-broker.d.ts +85 -0
- package/dist/agent/access/credential-grant-broker.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-broker.js +252 -0
- package/dist/agent/access/credential-grant-broker.js.map +1 -0
- package/dist/agent/access/credential-grant-card.d.ts +98 -0
- package/dist/agent/access/credential-grant-card.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-card.js +447 -0
- package/dist/agent/access/credential-grant-card.js.map +1 -0
- package/dist/agent/access/credential-grant-click.d.ts +43 -0
- package/dist/agent/access/credential-grant-click.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-click.js +190 -0
- package/dist/agent/access/credential-grant-click.js.map +1 -0
- package/dist/agent/access/credential-grant-copy.d.ts +135 -0
- package/dist/agent/access/credential-grant-copy.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-copy.js +276 -0
- package/dist/agent/access/credential-grant-copy.js.map +1 -0
- package/dist/agent/access/credential-grant-flow.d.ts +174 -0
- package/dist/agent/access/credential-grant-flow.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-flow.js +503 -0
- package/dist/agent/access/credential-grant-flow.js.map +1 -0
- package/dist/agent/access/credential-grant-key-shape.d.ts +37 -0
- package/dist/agent/access/credential-grant-key-shape.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-key-shape.js +51 -0
- package/dist/agent/access/credential-grant-key-shape.js.map +1 -0
- package/dist/agent/access/credential-grant-notice.d.ts +29 -0
- package/dist/agent/access/credential-grant-notice.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-notice.js +187 -0
- package/dist/agent/access/credential-grant-notice.js.map +1 -0
- package/dist/agent/access/credential-grant-owner.d.ts +10 -0
- package/dist/agent/access/credential-grant-owner.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-owner.js +16 -0
- package/dist/agent/access/credential-grant-owner.js.map +1 -0
- package/dist/agent/access/credential-grant-reach.d.ts +46 -0
- package/dist/agent/access/credential-grant-reach.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-reach.js +77 -0
- package/dist/agent/access/credential-grant-reach.js.map +1 -0
- package/dist/agent/access/credential-grant-resolution.d.ts +30 -0
- package/dist/agent/access/credential-grant-resolution.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-resolution.js +107 -0
- package/dist/agent/access/credential-grant-resolution.js.map +1 -0
- package/dist/agent/access/credential-grant-revoke.d.ts +33 -0
- package/dist/agent/access/credential-grant-revoke.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-revoke.js +62 -0
- package/dist/agent/access/credential-grant-revoke.js.map +1 -0
- package/dist/agent/access/credential-grant-scope.d.ts +206 -0
- package/dist/agent/access/credential-grant-scope.d.ts.map +1 -0
- package/dist/agent/access/credential-grant-scope.js +282 -0
- package/dist/agent/access/credential-grant-scope.js.map +1 -0
- package/dist/agent/access/credential-grant.d.ts +94 -0
- package/dist/agent/access/credential-grant.d.ts.map +1 -0
- package/dist/agent/access/credential-grant.js +198 -0
- package/dist/agent/access/credential-grant.js.map +1 -0
- package/dist/agent/access/credentials.d.ts +41 -0
- package/dist/agent/access/credentials.d.ts.map +1 -0
- package/dist/agent/access/credentials.js +112 -0
- package/dist/agent/access/credentials.js.map +1 -0
- package/dist/agent/access/dated-read.d.ts +3 -0
- package/dist/agent/access/dated-read.d.ts.map +1 -0
- package/dist/agent/access/dated-read.js +24 -0
- package/dist/agent/access/dated-read.js.map +1 -0
- package/dist/agent/access/delegation-flag.d.ts +5 -0
- package/dist/agent/access/delegation-flag.d.ts.map +1 -0
- package/dist/agent/access/delegation-flag.js +10 -0
- package/dist/agent/access/delegation-flag.js.map +1 -0
- package/dist/agent/access/delegation-mount.d.ts +6 -0
- package/dist/agent/access/delegation-mount.d.ts.map +1 -0
- package/dist/agent/access/delegation-mount.js +30 -0
- package/dist/agent/access/delegation-mount.js.map +1 -0
- package/dist/agent/access/delta.d.ts +103 -0
- package/dist/agent/access/delta.d.ts.map +1 -0
- package/dist/agent/access/delta.js +267 -0
- package/dist/agent/access/delta.js.map +1 -0
- package/dist/agent/access/dispatch-origin-signal.d.ts +19 -0
- package/dist/agent/access/dispatch-origin-signal.d.ts.map +1 -0
- package/dist/agent/access/dispatch-origin-signal.js +130 -0
- package/dist/agent/access/dispatch-origin-signal.js.map +1 -0
- package/dist/agent/access/domain-credentials.d.ts +32 -0
- package/dist/agent/access/domain-credentials.d.ts.map +1 -0
- package/dist/agent/access/domain-credentials.js +78 -0
- package/dist/agent/access/domain-credentials.js.map +1 -0
- package/dist/agent/access/egress-denial-log.d.ts +28 -0
- package/dist/agent/access/egress-denial-log.d.ts.map +1 -0
- package/dist/agent/access/egress-denial-log.js +96 -0
- package/dist/agent/access/egress-denial-log.js.map +1 -0
- package/dist/agent/access/egress-denial-poller.d.ts +56 -0
- package/dist/agent/access/egress-denial-poller.d.ts.map +1 -0
- package/dist/agent/access/egress-denial-poller.js +184 -0
- package/dist/agent/access/egress-denial-poller.js.map +1 -0
- package/dist/agent/access/egress-status.d.ts +61 -0
- package/dist/agent/access/egress-status.d.ts.map +1 -0
- package/dist/agent/access/egress-status.js +130 -0
- package/dist/agent/access/egress-status.js.map +1 -0
- package/dist/agent/access/egress.d.ts +86 -0
- package/dist/agent/access/egress.d.ts.map +1 -0
- package/dist/agent/access/egress.js +236 -0
- package/dist/agent/access/egress.js.map +1 -0
- package/dist/agent/access/enforcement.d.ts +8 -0
- package/dist/agent/access/enforcement.d.ts.map +1 -0
- package/dist/agent/access/enforcement.js +24 -0
- package/dist/agent/access/enforcement.js.map +1 -0
- package/dist/agent/access/eve-patch-probe-boot.d.ts +2 -0
- package/dist/agent/access/eve-patch-probe-boot.d.ts.map +1 -0
- package/dist/agent/access/eve-patch-probe-boot.js +91 -0
- package/dist/agent/access/eve-patch-probe-boot.js.map +1 -0
- package/dist/agent/access/eve-patch-probe.d.ts +57 -0
- package/dist/agent/access/eve-patch-probe.d.ts.map +1 -0
- package/dist/agent/access/eve-patch-probe.js +225 -0
- package/dist/agent/access/eve-patch-probe.js.map +1 -0
- package/dist/agent/access/external-policy.d.ts +95 -0
- package/dist/agent/access/external-policy.d.ts.map +1 -0
- package/dist/agent/access/external-policy.js +154 -0
- package/dist/agent/access/external-policy.js.map +1 -0
- package/dist/agent/access/extra-hosts.d.ts +10 -0
- package/dist/agent/access/extra-hosts.d.ts.map +1 -0
- package/dist/agent/access/extra-hosts.js +28 -0
- package/dist/agent/access/extra-hosts.js.map +1 -0
- package/dist/agent/access/grant-borrow-transport-registry.internal.d.ts +21 -0
- package/dist/agent/access/grant-borrow-transport-registry.internal.d.ts.map +1 -0
- package/dist/agent/access/grant-borrow-transport-registry.internal.js +63 -0
- package/dist/agent/access/grant-borrow-transport-registry.internal.js.map +1 -0
- package/dist/agent/access/grant-room-notice-registry.internal.d.ts +20 -0
- package/dist/agent/access/grant-room-notice-registry.internal.d.ts.map +1 -0
- package/dist/agent/access/grant-room-notice-registry.internal.js +59 -0
- package/dist/agent/access/grant-room-notice-registry.internal.js.map +1 -0
- package/dist/agent/access/grant-schema-pin.d.ts +15 -0
- package/dist/agent/access/grant-schema-pin.d.ts.map +1 -0
- package/dist/agent/access/grant-schema-pin.js +29 -0
- package/dist/agent/access/grant-schema-pin.js.map +1 -0
- package/dist/agent/access/grants-codemod.d.ts +32 -0
- package/dist/agent/access/grants-codemod.d.ts.map +1 -0
- package/dist/agent/access/grants-codemod.js +306 -0
- package/dist/agent/access/grants-codemod.js.map +1 -0
- package/dist/agent/access/group-request.d.ts +13 -0
- package/dist/agent/access/group-request.d.ts.map +1 -0
- package/dist/agent/access/group-request.js +67 -0
- package/dist/agent/access/group-request.js.map +1 -0
- package/dist/agent/access/halt-state.d.ts +7 -0
- package/dist/agent/access/halt-state.d.ts.map +1 -0
- package/dist/agent/access/halt-state.js +23 -0
- package/dist/agent/access/halt-state.js.map +1 -0
- package/dist/agent/access/halt.d.ts +90 -0
- package/dist/agent/access/halt.d.ts.map +1 -0
- package/dist/agent/access/halt.js +239 -0
- package/dist/agent/access/halt.js.map +1 -0
- package/dist/agent/access/host-egress.d.ts +71 -0
- package/dist/agent/access/host-egress.d.ts.map +1 -0
- package/dist/agent/access/host-egress.js +384 -0
- package/dist/agent/access/host-egress.js.map +1 -0
- package/dist/agent/access/human-only-invariants-manifest.d.ts +20 -0
- package/dist/agent/access/human-only-invariants-manifest.d.ts.map +1 -0
- package/dist/agent/access/human-only-invariants-manifest.js +144 -0
- package/dist/agent/access/human-only-invariants-manifest.js.map +1 -0
- package/dist/agent/access/ingestion-binding-manifest.d.ts +41 -0
- package/dist/agent/access/ingestion-binding-manifest.d.ts.map +1 -0
- package/dist/agent/access/ingestion-binding-manifest.js +214 -0
- package/dist/agent/access/ingestion-binding-manifest.js.map +1 -0
- package/dist/agent/access/ingestion-route-inventory.generated.d.ts +13 -0
- package/dist/agent/access/ingestion-route-inventory.generated.d.ts.map +1 -0
- package/dist/agent/access/ingestion-route-inventory.generated.js +46 -0
- package/dist/agent/access/ingestion-route-inventory.generated.js.map +1 -0
- package/dist/agent/access/instructions.d.ts +5 -0
- package/dist/agent/access/instructions.d.ts.map +1 -0
- package/dist/agent/access/instructions.js +72 -0
- package/dist/agent/access/instructions.js.map +1 -0
- package/dist/agent/access/invoker-posture-state.d.ts +8 -0
- package/dist/agent/access/invoker-posture-state.d.ts.map +1 -0
- package/dist/agent/access/invoker-posture-state.js +23 -0
- package/dist/agent/access/invoker-posture-state.js.map +1 -0
- package/dist/agent/access/invoker-posture.d.ts +29 -0
- package/dist/agent/access/invoker-posture.d.ts.map +1 -0
- package/dist/agent/access/invoker-posture.js +70 -0
- package/dist/agent/access/invoker-posture.js.map +1 -0
- package/dist/agent/access/job-posture.d.ts +37 -0
- package/dist/agent/access/job-posture.d.ts.map +1 -0
- package/dist/agent/access/job-posture.js +65 -0
- package/dist/agent/access/job-posture.js.map +1 -0
- package/dist/agent/access/job-session-state.d.ts +13 -0
- package/dist/agent/access/job-session-state.d.ts.map +1 -0
- package/dist/agent/access/job-session-state.js +57 -0
- package/dist/agent/access/job-session-state.js.map +1 -0
- package/dist/agent/access/lean-seat-state.d.ts +12 -0
- package/dist/agent/access/lean-seat-state.d.ts.map +1 -0
- package/dist/agent/access/lean-seat-state.js +35 -0
- package/dist/agent/access/lean-seat-state.js.map +1 -0
- package/dist/agent/access/lean-seat.d.ts +25 -0
- package/dist/agent/access/lean-seat.d.ts.map +1 -0
- package/dist/agent/access/lean-seat.js +66 -0
- package/dist/agent/access/lean-seat.js.map +1 -0
- package/dist/agent/access/lint.d.ts +39 -0
- package/dist/agent/access/lint.d.ts.map +1 -0
- package/dist/agent/access/lint.js +556 -0
- package/dist/agent/access/lint.js.map +1 -0
- package/dist/agent/access/live-delegated-tasks.d.ts +20 -0
- package/dist/agent/access/live-delegated-tasks.d.ts.map +1 -0
- package/dist/agent/access/live-delegated-tasks.js +96 -0
- package/dist/agent/access/live-delegated-tasks.js.map +1 -0
- package/dist/agent/access/loop-breaker.d.ts +26 -0
- package/dist/agent/access/loop-breaker.d.ts.map +1 -0
- package/dist/agent/access/loop-breaker.js +77 -0
- package/dist/agent/access/loop-breaker.js.map +1 -0
- package/dist/agent/access/mcp-call-fence.d.ts +19 -0
- package/dist/agent/access/mcp-call-fence.d.ts.map +1 -0
- package/dist/agent/access/mcp-call-fence.js +180 -0
- package/dist/agent/access/mcp-call-fence.js.map +1 -0
- package/dist/agent/access/member-grant.d.ts +16 -0
- package/dist/agent/access/member-grant.d.ts.map +1 -0
- package/dist/agent/access/member-grant.js +34 -0
- package/dist/agent/access/member-grant.js.map +1 -0
- package/dist/agent/access/member-plane.d.ts +91 -0
- package/dist/agent/access/member-plane.d.ts.map +1 -0
- package/dist/agent/access/member-plane.js +114 -0
- package/dist/agent/access/member-plane.js.map +1 -0
- package/dist/agent/access/native-admin.d.ts +13 -0
- package/dist/agent/access/native-admin.d.ts.map +1 -0
- package/dist/agent/access/native-admin.js +23 -0
- package/dist/agent/access/native-admin.js.map +1 -0
- package/dist/agent/access/native-delegation-state.d.ts +16 -0
- package/dist/agent/access/native-delegation-state.d.ts.map +1 -0
- package/dist/agent/access/native-delegation-state.js +26 -0
- package/dist/agent/access/native-delegation-state.js.map +1 -0
- package/dist/agent/access/network-access.d.ts +23 -0
- package/dist/agent/access/network-access.d.ts.map +1 -0
- package/dist/agent/access/network-access.js +108 -0
- package/dist/agent/access/network-access.js.map +1 -0
- package/dist/agent/access/nullable-optional-fields.d.ts +13 -0
- package/dist/agent/access/nullable-optional-fields.d.ts.map +1 -0
- package/dist/agent/access/nullable-optional-fields.js +190 -0
- package/dist/agent/access/nullable-optional-fields.js.map +1 -0
- package/dist/agent/access/overlay-module.d.ts +20 -0
- package/dist/agent/access/overlay-module.d.ts.map +1 -0
- package/dist/agent/access/overlay-module.js +47 -0
- package/dist/agent/access/overlay-module.js.map +1 -0
- package/dist/agent/access/own-account-gate-manifest.d.ts +23 -0
- package/dist/agent/access/own-account-gate-manifest.d.ts.map +1 -0
- package/dist/agent/access/own-account-gate-manifest.js +109 -0
- package/dist/agent/access/own-account-gate-manifest.js.map +1 -0
- package/dist/agent/access/pane-venue.d.ts +58 -0
- package/dist/agent/access/pane-venue.d.ts.map +1 -0
- package/dist/agent/access/pane-venue.js +177 -0
- package/dist/agent/access/pane-venue.js.map +1 -0
- package/dist/agent/access/pending-delegation-signal.d.ts +38 -0
- package/dist/agent/access/pending-delegation-signal.d.ts.map +1 -0
- package/dist/agent/access/pending-delegation-signal.js +268 -0
- package/dist/agent/access/pending-delegation-signal.js.map +1 -0
- package/dist/agent/access/permission-evidence.d.ts +184 -0
- package/dist/agent/access/permission-evidence.d.ts.map +1 -0
- package/dist/agent/access/permission-evidence.js +412 -0
- package/dist/agent/access/permission-evidence.js.map +1 -0
- package/dist/agent/access/permission-proposal.d.ts +33 -0
- package/dist/agent/access/permission-proposal.d.ts.map +1 -0
- package/dist/agent/access/permission-proposal.js +319 -0
- package/dist/agent/access/permission-proposal.js.map +1 -0
- package/dist/agent/access/platform.d.ts +5 -0
- package/dist/agent/access/platform.d.ts.map +1 -0
- package/dist/agent/access/platform.js +15 -0
- package/dist/agent/access/platform.js.map +1 -0
- package/dist/agent/access/pre-approval-rules.d.ts +44 -0
- package/dist/agent/access/pre-approval-rules.d.ts.map +1 -0
- package/dist/agent/access/pre-approval-rules.js +86 -0
- package/dist/agent/access/pre-approval-rules.js.map +1 -0
- package/dist/agent/access/principal-gate-manifest.d.ts +111 -0
- package/dist/agent/access/principal-gate-manifest.d.ts.map +1 -0
- package/dist/agent/access/principal-gate-manifest.js +718 -0
- package/dist/agent/access/principal-gate-manifest.js.map +1 -0
- package/dist/agent/access/provider-selection-check.d.ts +24 -0
- package/dist/agent/access/provider-selection-check.d.ts.map +1 -0
- package/dist/agent/access/provider-selection-check.js +97 -0
- package/dist/agent/access/provider-selection-check.js.map +1 -0
- package/dist/agent/access/provider-selection.d.ts +21 -0
- package/dist/agent/access/provider-selection.d.ts.map +1 -0
- package/dist/agent/access/provider-selection.js +76 -0
- package/dist/agent/access/provider-selection.js.map +1 -0
- package/dist/agent/access/read-grant.d.ts +13 -0
- package/dist/agent/access/read-grant.d.ts.map +1 -0
- package/dist/agent/access/read-grant.js +96 -0
- package/dist/agent/access/read-grant.js.map +1 -0
- package/dist/agent/access/repo-capabilities.d.ts +30 -0
- package/dist/agent/access/repo-capabilities.d.ts.map +1 -0
- package/dist/agent/access/repo-capabilities.js +60 -0
- package/dist/agent/access/repo-capabilities.js.map +1 -0
- package/dist/agent/access/request.d.ts +17 -0
- package/dist/agent/access/request.d.ts.map +1 -0
- package/dist/agent/access/request.js +110 -0
- package/dist/agent/access/request.js.map +1 -0
- package/dist/agent/access/requester-identity.d.ts +82 -0
- package/dist/agent/access/requester-identity.d.ts.map +1 -0
- package/dist/agent/access/requester-identity.js +275 -0
- package/dist/agent/access/requester-identity.js.map +1 -0
- package/dist/agent/access/requester-messages.d.ts +7 -0
- package/dist/agent/access/requester-messages.d.ts.map +1 -0
- package/dist/agent/access/requester-messages.js +45 -0
- package/dist/agent/access/requester-messages.js.map +1 -0
- package/dist/agent/access/reserved-hosts.d.ts +5 -0
- package/dist/agent/access/reserved-hosts.d.ts.map +1 -0
- package/dist/agent/access/reserved-hosts.js +9 -0
- package/dist/agent/access/reserved-hosts.js.map +1 -0
- package/dist/agent/access/resolver.d.ts +120 -0
- package/dist/agent/access/resolver.d.ts.map +1 -0
- package/dist/agent/access/resolver.js +447 -0
- package/dist/agent/access/resolver.js.map +1 -0
- package/dist/agent/access/resource-capabilities.d.ts +37 -0
- package/dist/agent/access/resource-capabilities.d.ts.map +1 -0
- package/dist/agent/access/resource-capabilities.js +77 -0
- package/dist/agent/access/resource-capabilities.js.map +1 -0
- package/dist/agent/access/resource-grant-manifest.d.ts +21 -0
- package/dist/agent/access/resource-grant-manifest.d.ts.map +1 -0
- package/dist/agent/access/resource-grant-manifest.js +93 -0
- package/dist/agent/access/resource-grant-manifest.js.map +1 -0
- package/dist/agent/access/resource-grant.d.ts +33 -0
- package/dist/agent/access/resource-grant.d.ts.map +1 -0
- package/dist/agent/access/resource-grant.js +131 -0
- package/dist/agent/access/resource-grant.js.map +1 -0
- package/dist/agent/access/result-cap.d.ts +11 -0
- package/dist/agent/access/result-cap.d.ts.map +1 -0
- package/dist/agent/access/result-cap.js +31 -0
- package/dist/agent/access/result-cap.js.map +1 -0
- package/dist/agent/access/result-reduce-model-arm.d.ts +25 -0
- package/dist/agent/access/result-reduce-model-arm.d.ts.map +1 -0
- package/dist/agent/access/result-reduce-model-arm.js +73 -0
- package/dist/agent/access/result-reduce-model-arm.js.map +1 -0
- package/dist/agent/access/result-reduce.d.ts +13 -0
- package/dist/agent/access/result-reduce.d.ts.map +1 -0
- package/dist/agent/access/result-reduce.js +86 -0
- package/dist/agent/access/result-reduce.js.map +1 -0
- package/dist/agent/access/roles.d.ts +26 -0
- package/dist/agent/access/roles.d.ts.map +1 -0
- package/dist/agent/access/roles.js +78 -0
- package/dist/agent/access/roles.js.map +1 -0
- package/dist/agent/access/scope-key.d.ts +43 -0
- package/dist/agent/access/scope-key.d.ts.map +1 -0
- package/dist/agent/access/scope-key.js +36 -0
- package/dist/agent/access/scope-key.js.map +1 -0
- package/dist/agent/access/seat-read-budget.d.ts +17 -0
- package/dist/agent/access/seat-read-budget.d.ts.map +1 -0
- package/dist/agent/access/seat-read-budget.js +53 -0
- package/dist/agent/access/seat-read-budget.js.map +1 -0
- package/dist/agent/access/self-host-egress.d.ts +37 -0
- package/dist/agent/access/self-host-egress.d.ts.map +1 -0
- package/dist/agent/access/self-host-egress.js +63 -0
- package/dist/agent/access/self-host-egress.js.map +1 -0
- package/dist/agent/access/settlement-dispatch-signal.d.ts +22 -0
- package/dist/agent/access/settlement-dispatch-signal.d.ts.map +1 -0
- package/dist/agent/access/settlement-dispatch-signal.js +76 -0
- package/dist/agent/access/settlement-dispatch-signal.js.map +1 -0
- package/dist/agent/access/skill-taint-envelope.d.ts +31 -0
- package/dist/agent/access/skill-taint-envelope.d.ts.map +1 -0
- package/dist/agent/access/skill-taint-envelope.js +80 -0
- package/dist/agent/access/skill-taint-envelope.js.map +1 -0
- package/dist/agent/access/source-gate-manifest.d.ts +14 -0
- package/dist/agent/access/source-gate-manifest.d.ts.map +1 -0
- package/dist/agent/access/source-gate-manifest.js +111 -0
- package/dist/agent/access/source-gate-manifest.js.map +1 -0
- package/dist/agent/access/source-scoped-mount.d.ts +7 -0
- package/dist/agent/access/source-scoped-mount.d.ts.map +1 -0
- package/dist/agent/access/source-scoped-mount.js +26 -0
- package/dist/agent/access/source-scoped-mount.js.map +1 -0
- package/dist/agent/access/subagent-taint.d.ts +44 -0
- package/dist/agent/access/subagent-taint.d.ts.map +1 -0
- package/dist/agent/access/subagent-taint.js +175 -0
- package/dist/agent/access/subagent-taint.js.map +1 -0
- package/dist/agent/access/surface-work-grant.d.ts +20 -0
- package/dist/agent/access/surface-work-grant.d.ts.map +1 -0
- package/dist/agent/access/surface-work-grant.js +84 -0
- package/dist/agent/access/surface-work-grant.js.map +1 -0
- package/dist/agent/access/taint-enforcement.d.ts +46 -0
- package/dist/agent/access/taint-enforcement.d.ts.map +1 -0
- package/dist/agent/access/taint-enforcement.js +141 -0
- package/dist/agent/access/taint-enforcement.js.map +1 -0
- package/dist/agent/access/taint-signal.d.ts +100 -0
- package/dist/agent/access/taint-signal.d.ts.map +1 -0
- package/dist/agent/access/taint-signal.js +236 -0
- package/dist/agent/access/taint-signal.js.map +1 -0
- package/dist/agent/access/taint-tiers.d.ts +64 -0
- package/dist/agent/access/taint-tiers.d.ts.map +1 -0
- package/dist/agent/access/taint-tiers.js +93 -0
- package/dist/agent/access/taint-tiers.js.map +1 -0
- package/dist/agent/access/task-wake-signal.d.ts +9 -0
- package/dist/agent/access/task-wake-signal.d.ts.map +1 -0
- package/dist/agent/access/task-wake-signal.js +86 -0
- package/dist/agent/access/task-wake-signal.js.map +1 -0
- package/dist/agent/access/tenant-admission.d.ts +52 -0
- package/dist/agent/access/tenant-admission.d.ts.map +1 -0
- package/dist/agent/access/tenant-admission.js +154 -0
- package/dist/agent/access/tenant-admission.js.map +1 -0
- package/dist/agent/access/untrusted-projection.d.ts +23 -0
- package/dist/agent/access/untrusted-projection.d.ts.map +1 -0
- package/dist/agent/access/untrusted-projection.js +258 -0
- package/dist/agent/access/untrusted-projection.js.map +1 -0
- package/dist/agent/access/untrusted.d.ts +34 -0
- package/dist/agent/access/untrusted.d.ts.map +1 -0
- package/dist/agent/access/untrusted.js +100 -0
- package/dist/agent/access/untrusted.js.map +1 -0
- package/dist/agent/access/wake-mapping.d.ts +22 -0
- package/dist/agent/access/wake-mapping.d.ts.map +1 -0
- package/dist/agent/access/wake-mapping.js +19 -0
- package/dist/agent/access/wake-mapping.js.map +1 -0
- package/dist/agent/access/web-fetch-fence.d.ts +8 -0
- package/dist/agent/access/web-fetch-fence.d.ts.map +1 -0
- package/dist/agent/access/web-fetch-fence.js +55 -0
- package/dist/agent/access/web-fetch-fence.js.map +1 -0
- package/dist/agent/access/window-gate-manifest.d.ts +75 -0
- package/dist/agent/access/window-gate-manifest.d.ts.map +1 -0
- package/dist/agent/access/window-gate-manifest.js +474 -0
- package/dist/agent/access/window-gate-manifest.js.map +1 -0
- package/dist/agent/access/window-gated.d.ts +111 -0
- package/dist/agent/access/window-gated.d.ts.map +1 -0
- package/dist/agent/access/window-gated.js +611 -0
- package/dist/agent/access/window-gated.js.map +1 -0
- package/dist/agent/access/window-routing.d.ts +16 -0
- package/dist/agent/access/window-routing.d.ts.map +1 -0
- package/dist/agent/access/window-routing.js +11 -0
- package/dist/agent/access/window-routing.js.map +1 -0
- package/dist/agent/access/work-grant.d.ts +39 -0
- package/dist/agent/access/work-grant.d.ts.map +1 -0
- package/dist/agent/access/work-grant.js +76 -0
- package/dist/agent/access/work-grant.js.map +1 -0
- package/dist/agent/access/work-mount-manifest.d.ts +21 -0
- package/dist/agent/access/work-mount-manifest.d.ts.map +1 -0
- package/dist/agent/access/work-mount-manifest.js +149 -0
- package/dist/agent/access/work-mount-manifest.js.map +1 -0
- package/dist/agent/access/worker-capabilities.d.ts +60 -0
- package/dist/agent/access/worker-capabilities.d.ts.map +1 -0
- package/dist/agent/access/worker-capabilities.js +318 -0
- package/dist/agent/access/worker-capabilities.js.map +1 -0
- package/dist/agent/access/worker-capability-index.generated.d.ts +7 -0
- package/dist/agent/access/worker-capability-index.generated.d.ts.map +1 -0
- package/dist/agent/access/worker-capability-index.generated.js +188 -0
- package/dist/agent/access/worker-capability-index.generated.js.map +1 -0
- package/dist/agent/access/worker-continuation.d.ts +7 -0
- package/dist/agent/access/worker-continuation.d.ts.map +1 -0
- package/dist/agent/access/worker-continuation.js +180 -0
- package/dist/agent/access/worker-continuation.js.map +1 -0
- package/dist/agent/access/worker-seat-state.d.ts +8 -0
- package/dist/agent/access/worker-seat-state.d.ts.map +1 -0
- package/dist/agent/access/worker-seat-state.js +24 -0
- package/dist/agent/access/worker-seat-state.js.map +1 -0
- package/dist/agent/access/worker-seat.d.ts +23 -0
- package/dist/agent/access/worker-seat.d.ts.map +1 -0
- package/dist/agent/access/worker-seat.js +47 -0
- package/dist/agent/access/worker-seat.js.map +1 -0
- package/dist/agent/access/worker-toolset-state.d.ts +32 -0
- package/dist/agent/access/worker-toolset-state.d.ts.map +1 -0
- package/dist/agent/access/worker-toolset-state.js +40 -0
- package/dist/agent/access/worker-toolset-state.js.map +1 -0
- package/dist/agent/adapter-api.d.ts +416 -0
- package/dist/agent/adapter-api.d.ts.map +1 -0
- package/dist/agent/adapter-api.js +1147 -0
- package/dist/agent/adapter-api.js.map +1 -0
- package/dist/agent/analytics/compile.d.ts +127 -0
- package/dist/agent/analytics/compile.d.ts.map +1 -0
- package/dist/agent/analytics/compile.js +406 -0
- package/dist/agent/analytics/compile.js.map +1 -0
- package/dist/agent/analytics/execute.d.ts +20 -0
- package/dist/agent/analytics/execute.d.ts.map +1 -0
- package/dist/agent/analytics/execute.js +146 -0
- package/dist/agent/analytics/execute.js.map +1 -0
- package/dist/agent/analytics/registry.d.ts +89 -0
- package/dist/agent/analytics/registry.d.ts.map +1 -0
- package/dist/agent/analytics/registry.js +216 -0
- package/dist/agent/analytics/registry.js.map +1 -0
- package/dist/agent/approvals/access-request.d.ts +53 -0
- package/dist/agent/approvals/access-request.d.ts.map +1 -0
- package/dist/agent/approvals/access-request.js +186 -0
- package/dist/agent/approvals/access-request.js.map +1 -0
- package/dist/agent/approvals/actions.d.ts +95 -0
- package/dist/agent/approvals/actions.d.ts.map +1 -0
- package/dist/agent/approvals/actions.js +293 -0
- package/dist/agent/approvals/actions.js.map +1 -0
- package/dist/agent/approvals/agent-create.d.ts +44 -0
- package/dist/agent/approvals/agent-create.d.ts.map +1 -0
- package/dist/agent/approvals/agent-create.js +205 -0
- package/dist/agent/approvals/agent-create.js.map +1 -0
- package/dist/agent/approvals/arming-context.d.ts +13 -0
- package/dist/agent/approvals/arming-context.d.ts.map +1 -0
- package/dist/agent/approvals/arming-context.js +17 -0
- package/dist/agent/approvals/arming-context.js.map +1 -0
- package/dist/agent/approvals/card-disclosure.d.ts +28 -0
- package/dist/agent/approvals/card-disclosure.d.ts.map +1 -0
- package/dist/agent/approvals/card-disclosure.js +31 -0
- package/dist/agent/approvals/card-disclosure.js.map +1 -0
- package/dist/agent/approvals/card-signal.d.ts +41 -0
- package/dist/agent/approvals/card-signal.d.ts.map +1 -0
- package/dist/agent/approvals/card-signal.js +115 -0
- package/dist/agent/approvals/card-signal.js.map +1 -0
- package/dist/agent/approvals/card-venue.d.ts +55 -0
- package/dist/agent/approvals/card-venue.d.ts.map +1 -0
- package/dist/agent/approvals/card-venue.js +106 -0
- package/dist/agent/approvals/card-venue.js.map +1 -0
- package/dist/agent/approvals/card.d.ts +23 -0
- package/dist/agent/approvals/card.d.ts.map +1 -0
- package/dist/agent/approvals/card.js +99 -0
- package/dist/agent/approvals/card.js.map +1 -0
- package/dist/agent/approvals/chat-dm.d.ts +19 -0
- package/dist/agent/approvals/chat-dm.d.ts.map +1 -0
- package/dist/agent/approvals/chat-dm.js +41 -0
- package/dist/agent/approvals/chat-dm.js.map +1 -0
- package/dist/agent/approvals/chat-post.d.ts +15 -0
- package/dist/agent/approvals/chat-post.d.ts.map +1 -0
- package/dist/agent/approvals/chat-post.js +43 -0
- package/dist/agent/approvals/chat-post.js.map +1 -0
- package/dist/agent/approvals/clicker-floor.d.ts +48 -0
- package/dist/agent/approvals/clicker-floor.d.ts.map +1 -0
- package/dist/agent/approvals/clicker-floor.js +58 -0
- package/dist/agent/approvals/clicker-floor.js.map +1 -0
- package/dist/agent/approvals/decision-authority.internal.d.ts +19 -0
- package/dist/agent/approvals/decision-authority.internal.d.ts.map +1 -0
- package/dist/agent/approvals/decision-authority.internal.js +107 -0
- package/dist/agent/approvals/decision-authority.internal.js.map +1 -0
- package/dist/agent/approvals/decision-wake.d.ts +28 -0
- package/dist/agent/approvals/decision-wake.d.ts.map +1 -0
- package/dist/agent/approvals/decision-wake.js +84 -0
- package/dist/agent/approvals/decision-wake.js.map +1 -0
- package/dist/agent/approvals/domain-exposure.d.ts +27 -0
- package/dist/agent/approvals/domain-exposure.d.ts.map +1 -0
- package/dist/agent/approvals/domain-exposure.js +145 -0
- package/dist/agent/approvals/domain-exposure.js.map +1 -0
- package/dist/agent/approvals/eve-response-policy.d.ts +22 -0
- package/dist/agent/approvals/eve-response-policy.d.ts.map +1 -0
- package/dist/agent/approvals/eve-response-policy.js +27 -0
- package/dist/agent/approvals/eve-response-policy.js.map +1 -0
- package/dist/agent/approvals/flow.d.ts +398 -0
- package/dist/agent/approvals/flow.d.ts.map +1 -0
- package/dist/agent/approvals/flow.js +1722 -0
- package/dist/agent/approvals/flow.js.map +1 -0
- package/dist/agent/approvals/input-response-floor.d.ts +47 -0
- package/dist/agent/approvals/input-response-floor.d.ts.map +1 -0
- package/dist/agent/approvals/input-response-floor.js +56 -0
- package/dist/agent/approvals/input-response-floor.js.map +1 -0
- package/dist/agent/approvals/judge-contradiction.d.ts +56 -0
- package/dist/agent/approvals/judge-contradiction.d.ts.map +1 -0
- package/dist/agent/approvals/judge-contradiction.js +90 -0
- package/dist/agent/approvals/judge-contradiction.js.map +1 -0
- package/dist/agent/approvals/memory-purge.d.ts +2 -0
- package/dist/agent/approvals/memory-purge.d.ts.map +1 -0
- package/dist/agent/approvals/memory-purge.js +128 -0
- package/dist/agent/approvals/memory-purge.js.map +1 -0
- package/dist/agent/approvals/pr-open.d.ts +36 -0
- package/dist/agent/approvals/pr-open.d.ts.map +1 -0
- package/dist/agent/approvals/pr-open.js +134 -0
- package/dist/agent/approvals/pr-open.js.map +1 -0
- package/dist/agent/approvals/review-surface.d.ts +3 -0
- package/dist/agent/approvals/review-surface.d.ts.map +1 -0
- package/dist/agent/approvals/review-surface.js +7 -0
- package/dist/agent/approvals/review-surface.js.map +1 -0
- package/dist/agent/approvals/routine-cancel.d.ts +2 -0
- package/dist/agent/approvals/routine-cancel.d.ts.map +1 -0
- package/dist/agent/approvals/routine-cancel.js +39 -0
- package/dist/agent/approvals/routine-cancel.js.map +1 -0
- package/dist/agent/approvals/routine-create.d.ts +38 -0
- package/dist/agent/approvals/routine-create.d.ts.map +1 -0
- package/dist/agent/approvals/routine-create.js +171 -0
- package/dist/agent/approvals/routine-create.js.map +1 -0
- package/dist/agent/approvals/routine-lifecycle.d.ts +2 -0
- package/dist/agent/approvals/routine-lifecycle.d.ts.map +1 -0
- package/dist/agent/approvals/routine-lifecycle.js +135 -0
- package/dist/agent/approvals/routine-lifecycle.js.map +1 -0
- package/dist/agent/approvals/routine-permission-offer.d.ts +35 -0
- package/dist/agent/approvals/routine-permission-offer.d.ts.map +1 -0
- package/dist/agent/approvals/routine-permission-offer.js +90 -0
- package/dist/agent/approvals/routine-permission-offer.js.map +1 -0
- package/dist/agent/approvals/routine-permission.d.ts +51 -0
- package/dist/agent/approvals/routine-permission.d.ts.map +1 -0
- package/dist/agent/approvals/routine-permission.js +173 -0
- package/dist/agent/approvals/routine-permission.js.map +1 -0
- package/dist/agent/approvals/routine-policy.d.ts +2 -0
- package/dist/agent/approvals/routine-policy.d.ts.map +1 -0
- package/dist/agent/approvals/routine-policy.js +133 -0
- package/dist/agent/approvals/routine-policy.js.map +1 -0
- package/dist/agent/approvals/scope-label.d.ts +11 -0
- package/dist/agent/approvals/scope-label.d.ts.map +1 -0
- package/dist/agent/approvals/scope-label.js +43 -0
- package/dist/agent/approvals/scope-label.js.map +1 -0
- package/dist/agent/approvals/session-checkpoint.d.ts +11 -0
- package/dist/agent/approvals/session-checkpoint.d.ts.map +1 -0
- package/dist/agent/approvals/session-checkpoint.js +60 -0
- package/dist/agent/approvals/session-checkpoint.js.map +1 -0
- package/dist/agent/approvals/session-grant.d.ts +46 -0
- package/dist/agent/approvals/session-grant.d.ts.map +1 -0
- package/dist/agent/approvals/session-grant.js +153 -0
- package/dist/agent/approvals/session-grant.js.map +1 -0
- package/dist/agent/approvals/skill-create.d.ts +2 -0
- package/dist/agent/approvals/skill-create.d.ts.map +1 -0
- package/dist/agent/approvals/skill-create.js +42 -0
- package/dist/agent/approvals/skill-create.js.map +1 -0
- package/dist/agent/approvals/skill-delete.d.ts +2 -0
- package/dist/agent/approvals/skill-delete.d.ts.map +1 -0
- package/dist/agent/approvals/skill-delete.js +38 -0
- package/dist/agent/approvals/skill-delete.js.map +1 -0
- package/dist/agent/approvals/taint-disclosure.d.ts +10 -0
- package/dist/agent/approvals/taint-disclosure.d.ts.map +1 -0
- package/dist/agent/approvals/taint-disclosure.js +36 -0
- package/dist/agent/approvals/taint-disclosure.js.map +1 -0
- package/dist/agent/approvals/ticket-actions.d.ts +27 -0
- package/dist/agent/approvals/ticket-actions.d.ts.map +1 -0
- package/dist/agent/approvals/ticket-actions.js +47 -0
- package/dist/agent/approvals/ticket-actions.js.map +1 -0
- package/dist/agent/approvals/ticket-create.d.ts +19 -0
- package/dist/agent/approvals/ticket-create.d.ts.map +1 -0
- package/dist/agent/approvals/ticket-create.js +46 -0
- package/dist/agent/approvals/ticket-create.js.map +1 -0
- package/dist/agent/approvals/types.d.ts +42 -0
- package/dist/agent/approvals/types.d.ts.map +1 -0
- package/dist/agent/approvals/types.js +3 -0
- package/dist/agent/approvals/types.js.map +1 -0
- package/dist/agent/approvals/webhook-declare.d.ts +55 -0
- package/dist/agent/approvals/webhook-declare.d.ts.map +1 -0
- package/dist/agent/approvals/webhook-declare.js +239 -0
- package/dist/agent/approvals/webhook-declare.js.map +1 -0
- package/dist/agent/approvals/webhook.d.ts +25 -0
- package/dist/agent/approvals/webhook.d.ts.map +1 -0
- package/dist/agent/approvals/webhook.js +156 -0
- package/dist/agent/approvals/webhook.js.map +1 -0
- package/dist/agent/audit/action-registry.d.ts +78 -0
- package/dist/agent/audit/action-registry.d.ts.map +1 -0
- package/dist/agent/audit/action-registry.js +996 -0
- package/dist/agent/audit/action-registry.js.map +1 -0
- package/dist/agent/audit/audit.d.ts +32 -0
- package/dist/agent/audit/audit.d.ts.map +1 -0
- package/dist/agent/audit/audit.js +100 -0
- package/dist/agent/audit/audit.js.map +1 -0
- package/dist/agent/audit/chain.d.ts +196 -0
- package/dist/agent/audit/chain.d.ts.map +1 -0
- package/dist/agent/audit/chain.js +462 -0
- package/dist/agent/audit/chain.js.map +1 -0
- package/dist/agent/audit/tool-action.d.ts +26 -0
- package/dist/agent/audit/tool-action.d.ts.map +1 -0
- package/dist/agent/audit/tool-action.js +271 -0
- package/dist/agent/audit/tool-action.js.map +1 -0
- package/dist/agent/audit/window-tool-gate.d.ts +21 -0
- package/dist/agent/audit/window-tool-gate.d.ts.map +1 -0
- package/dist/agent/audit/window-tool-gate.js +40 -0
- package/dist/agent/audit/window-tool-gate.js.map +1 -0
- package/dist/agent/audit/worker-toolset.d.ts +25 -0
- package/dist/agent/audit/worker-toolset.d.ts.map +1 -0
- package/dist/agent/audit/worker-toolset.js +108 -0
- package/dist/agent/audit/worker-toolset.js.map +1 -0
- package/dist/agent/blob/hosting.d.ts +61 -0
- package/dist/agent/blob/hosting.d.ts.map +1 -0
- package/dist/agent/blob/hosting.js +142 -0
- package/dist/agent/blob/hosting.js.map +1 -0
- package/dist/agent/channels/access-request-ledger.d.ts +36 -0
- package/dist/agent/channels/access-request-ledger.d.ts.map +1 -0
- package/dist/agent/channels/access-request-ledger.js +123 -0
- package/dist/agent/channels/access-request-ledger.js.map +1 -0
- package/dist/agent/channels/ambient-skip.d.ts +19 -0
- package/dist/agent/channels/ambient-skip.d.ts.map +1 -0
- package/dist/agent/channels/ambient-skip.js +88 -0
- package/dist/agent/channels/ambient-skip.js.map +1 -0
- package/dist/agent/channels/answered-container-ledger.d.ts +32 -0
- package/dist/agent/channels/answered-container-ledger.d.ts.map +1 -0
- package/dist/agent/channels/answered-container-ledger.js +70 -0
- package/dist/agent/channels/answered-container-ledger.js.map +1 -0
- package/dist/agent/channels/approval-card.d.ts +266 -0
- package/dist/agent/channels/approval-card.d.ts.map +1 -0
- package/dist/agent/channels/approval-card.js +328 -0
- package/dist/agent/channels/approval-card.js.map +1 -0
- package/dist/agent/channels/approval-claim-guard.d.ts +112 -0
- package/dist/agent/channels/approval-claim-guard.d.ts.map +1 -0
- package/dist/agent/channels/approval-claim-guard.js +324 -0
- package/dist/agent/channels/approval-claim-guard.js.map +1 -0
- package/dist/agent/channels/attachments.d.ts +113 -0
- package/dist/agent/channels/attachments.d.ts.map +1 -0
- package/dist/agent/channels/attachments.js +157 -0
- package/dist/agent/channels/attachments.js.map +1 -0
- package/dist/agent/channels/aws-sso-callback.d.ts +3 -0
- package/dist/agent/channels/aws-sso-callback.d.ts.map +1 -0
- package/dist/agent/channels/aws-sso-callback.js +8 -0
- package/dist/agent/channels/aws-sso-callback.js.map +1 -0
- package/dist/agent/channels/backscroll-window.d.ts +76 -0
- package/dist/agent/channels/backscroll-window.d.ts.map +1 -0
- package/dist/agent/channels/backscroll-window.js +106 -0
- package/dist/agent/channels/backscroll-window.js.map +1 -0
- package/dist/agent/channels/cancel-note.d.ts +45 -0
- package/dist/agent/channels/cancel-note.d.ts.map +1 -0
- package/dist/agent/channels/cancel-note.js +99 -0
- package/dist/agent/channels/cancel-note.js.map +1 -0
- package/dist/agent/channels/channel-key.d.ts +19 -0
- package/dist/agent/channels/channel-key.d.ts.map +1 -0
- package/dist/agent/channels/channel-key.js +53 -0
- package/dist/agent/channels/channel-key.js.map +1 -0
- package/dist/agent/channels/channel-read.d.ts +203 -0
- package/dist/agent/channels/channel-read.d.ts.map +1 -0
- package/dist/agent/channels/channel-read.js +294 -0
- package/dist/agent/channels/channel-read.js.map +1 -0
- package/dist/agent/channels/chat-turn-audit.d.ts +9 -0
- package/dist/agent/channels/chat-turn-audit.d.ts.map +1 -0
- package/dist/agent/channels/chat-turn-audit.js +18 -0
- package/dist/agent/channels/chat-turn-audit.js.map +1 -0
- package/dist/agent/channels/closing-prose-drop.d.ts +34 -0
- package/dist/agent/channels/closing-prose-drop.d.ts.map +1 -0
- package/dist/agent/channels/closing-prose-drop.js +29 -0
- package/dist/agent/channels/closing-prose-drop.js.map +1 -0
- package/dist/agent/channels/command-registration.d.ts +62 -0
- package/dist/agent/channels/command-registration.d.ts.map +1 -0
- package/dist/agent/channels/command-registration.js +128 -0
- package/dist/agent/channels/command-registration.js.map +1 -0
- package/dist/agent/channels/context-render.d.ts +111 -0
- package/dist/agent/channels/context-render.d.ts.map +1 -0
- package/dist/agent/channels/context-render.js +148 -0
- package/dist/agent/channels/context-render.js.map +1 -0
- package/dist/agent/channels/control-mcp.d.ts +3 -0
- package/dist/agent/channels/control-mcp.d.ts.map +1 -0
- package/dist/agent/channels/control-mcp.js +35 -0
- package/dist/agent/channels/control-mcp.js.map +1 -0
- package/dist/agent/channels/control-read.d.ts +3 -0
- package/dist/agent/channels/control-read.d.ts.map +1 -0
- package/dist/agent/channels/control-read.js +21 -0
- package/dist/agent/channels/control-read.js.map +1 -0
- package/dist/agent/channels/credential-intake-page.d.ts +3 -0
- package/dist/agent/channels/credential-intake-page.d.ts.map +1 -0
- package/dist/agent/channels/credential-intake-page.js +11 -0
- package/dist/agent/channels/credential-intake-page.js.map +1 -0
- package/dist/agent/channels/delegated-provenance.d.ts +129 -0
- package/dist/agent/channels/delegated-provenance.d.ts.map +1 -0
- package/dist/agent/channels/delegated-provenance.js +418 -0
- package/dist/agent/channels/delegated-provenance.js.map +1 -0
- package/dist/agent/channels/dm-audience.d.ts +157 -0
- package/dist/agent/channels/dm-audience.d.ts.map +1 -0
- package/dist/agent/channels/dm-audience.js +234 -0
- package/dist/agent/channels/dm-audience.js.map +1 -0
- package/dist/agent/channels/dm-seat.d.ts +68 -0
- package/dist/agent/channels/dm-seat.d.ts.map +1 -0
- package/dist/agent/channels/dm-seat.js +87 -0
- package/dist/agent/channels/dm-seat.js.map +1 -0
- package/dist/agent/channels/domain-fingerprint.d.ts +40 -0
- package/dist/agent/channels/domain-fingerprint.d.ts.map +1 -0
- package/dist/agent/channels/domain-fingerprint.js +94 -0
- package/dist/agent/channels/domain-fingerprint.js.map +1 -0
- package/dist/agent/channels/egress-spoof.d.ts +11 -0
- package/dist/agent/channels/egress-spoof.d.ts.map +1 -0
- package/dist/agent/channels/egress-spoof.js +36 -0
- package/dist/agent/channels/egress-spoof.js.map +1 -0
- package/dist/agent/channels/engaged-wake.d.ts +86 -0
- package/dist/agent/channels/engaged-wake.d.ts.map +1 -0
- package/dist/agent/channels/engaged-wake.js +146 -0
- package/dist/agent/channels/engaged-wake.js.map +1 -0
- package/dist/agent/channels/engagement.d.ts +132 -0
- package/dist/agent/channels/engagement.d.ts.map +1 -0
- package/dist/agent/channels/engagement.js +182 -0
- package/dist/agent/channels/engagement.js.map +1 -0
- package/dist/agent/channels/entity-actions.d.ts +80 -0
- package/dist/agent/channels/entity-actions.d.ts.map +1 -0
- package/dist/agent/channels/entity-actions.js +94 -0
- package/dist/agent/channels/entity-actions.js.map +1 -0
- package/dist/agent/channels/front-queue.d.ts +31 -0
- package/dist/agent/channels/front-queue.d.ts.map +1 -0
- package/dist/agent/channels/front-queue.js +86 -0
- package/dist/agent/channels/front-queue.js.map +1 -0
- package/dist/agent/channels/generation-retirement.d.ts +189 -0
- package/dist/agent/channels/generation-retirement.d.ts.map +1 -0
- package/dist/agent/channels/generation-retirement.js +473 -0
- package/dist/agent/channels/generation-retirement.js.map +1 -0
- package/dist/agent/channels/halt-per-wake.d.ts +53 -0
- package/dist/agent/channels/halt-per-wake.d.ts.map +1 -0
- package/dist/agent/channels/halt-per-wake.js +148 -0
- package/dist/agent/channels/halt-per-wake.js.map +1 -0
- package/dist/agent/channels/memory-claim-guard.d.ts +77 -0
- package/dist/agent/channels/memory-claim-guard.d.ts.map +1 -0
- package/dist/agent/channels/memory-claim-guard.js +389 -0
- package/dist/agent/channels/memory-claim-guard.js.map +1 -0
- package/dist/agent/channels/name-drop-wake-audit.d.ts +93 -0
- package/dist/agent/channels/name-drop-wake-audit.d.ts.map +1 -0
- package/dist/agent/channels/name-drop-wake-audit.js +92 -0
- package/dist/agent/channels/name-drop-wake-audit.js.map +1 -0
- package/dist/agent/channels/native-wake-retry.d.ts +16 -0
- package/dist/agent/channels/native-wake-retry.d.ts.map +1 -0
- package/dist/agent/channels/native-wake-retry.js +44 -0
- package/dist/agent/channels/native-wake-retry.js.map +1 -0
- package/dist/agent/channels/no-reply-signal.d.ts +12 -0
- package/dist/agent/channels/no-reply-signal.d.ts.map +1 -0
- package/dist/agent/channels/no-reply-signal.js +37 -0
- package/dist/agent/channels/no-reply-signal.js.map +1 -0
- package/dist/agent/channels/normalized-wake.d.ts +129 -0
- package/dist/agent/channels/normalized-wake.d.ts.map +1 -0
- package/dist/agent/channels/normalized-wake.js +153 -0
- package/dist/agent/channels/normalized-wake.js.map +1 -0
- package/dist/agent/channels/oe-oauth-callback.d.ts +3 -0
- package/dist/agent/channels/oe-oauth-callback.d.ts.map +1 -0
- package/dist/agent/channels/oe-oauth-callback.js +8 -0
- package/dist/agent/channels/oe-oauth-callback.js.map +1 -0
- package/dist/agent/channels/own-post-ledger.d.ts +35 -0
- package/dist/agent/channels/own-post-ledger.d.ts.map +1 -0
- package/dist/agent/channels/own-post-ledger.js +57 -0
- package/dist/agent/channels/own-post-ledger.js.map +1 -0
- package/dist/agent/channels/platform-failure.d.ts +20 -0
- package/dist/agent/channels/platform-failure.d.ts.map +1 -0
- package/dist/agent/channels/platform-failure.js +42 -0
- package/dist/agent/channels/platform-failure.js.map +1 -0
- package/dist/agent/channels/policy-pages.d.ts +3 -0
- package/dist/agent/channels/policy-pages.d.ts.map +1 -0
- package/dist/agent/channels/policy-pages.js +14 -0
- package/dist/agent/channels/policy-pages.js.map +1 -0
- package/dist/agent/channels/post-arms.d.ts +202 -0
- package/dist/agent/channels/post-arms.d.ts.map +1 -0
- package/dist/agent/channels/post-arms.js +146 -0
- package/dist/agent/channels/post-arms.js.map +1 -0
- package/dist/agent/channels/proactive-dm-manifest.d.ts +28 -0
- package/dist/agent/channels/proactive-dm-manifest.d.ts.map +1 -0
- package/dist/agent/channels/proactive-dm-manifest.js +80 -0
- package/dist/agent/channels/proactive-dm-manifest.js.map +1 -0
- package/dist/agent/channels/propose-scope.d.ts +18 -0
- package/dist/agent/channels/propose-scope.d.ts.map +1 -0
- package/dist/agent/channels/propose-scope.js +91 -0
- package/dist/agent/channels/propose-scope.js.map +1 -0
- package/dist/agent/channels/question-bridge.d.ts +291 -0
- package/dist/agent/channels/question-bridge.d.ts.map +1 -0
- package/dist/agent/channels/question-bridge.js +412 -0
- package/dist/agent/channels/question-bridge.js.map +1 -0
- package/dist/agent/channels/rate-limit-retry.d.ts +157 -0
- package/dist/agent/channels/rate-limit-retry.d.ts.map +1 -0
- package/dist/agent/channels/rate-limit-retry.js +256 -0
- package/dist/agent/channels/rate-limit-retry.js.map +1 -0
- package/dist/agent/channels/react-signal.d.ts +5 -0
- package/dist/agent/channels/react-signal.d.ts.map +1 -0
- package/dist/agent/channels/react-signal.js +25 -0
- package/dist/agent/channels/react-signal.js.map +1 -0
- package/dist/agent/channels/reaction-ingest.d.ts +87 -0
- package/dist/agent/channels/reaction-ingest.d.ts.map +1 -0
- package/dist/agent/channels/reaction-ingest.js +138 -0
- package/dist/agent/channels/reaction-ingest.js.map +1 -0
- package/dist/agent/channels/read-author-trust.d.ts +26 -0
- package/dist/agent/channels/read-author-trust.d.ts.map +1 -0
- package/dist/agent/channels/read-author-trust.js +56 -0
- package/dist/agent/channels/read-author-trust.js.map +1 -0
- package/dist/agent/channels/read-reach.d.ts +156 -0
- package/dist/agent/channels/read-reach.d.ts.map +1 -0
- package/dist/agent/channels/read-reach.js +293 -0
- package/dist/agent/channels/read-reach.js.map +1 -0
- package/dist/agent/channels/read-scope-audit.d.ts +39 -0
- package/dist/agent/channels/read-scope-audit.d.ts.map +1 -0
- package/dist/agent/channels/read-scope-audit.js +88 -0
- package/dist/agent/channels/read-scope-audit.js.map +1 -0
- package/dist/agent/channels/read-scope-error.d.ts +4 -0
- package/dist/agent/channels/read-scope-error.d.ts.map +1 -0
- package/dist/agent/channels/read-scope-error.js +6 -0
- package/dist/agent/channels/read-scope-error.js.map +1 -0
- package/dist/agent/channels/read-spool.d.ts +38 -0
- package/dist/agent/channels/read-spool.d.ts.map +1 -0
- package/dist/agent/channels/read-spool.js +97 -0
- package/dist/agent/channels/read-spool.js.map +1 -0
- package/dist/agent/channels/reply-edit.d.ts +47 -0
- package/dist/agent/channels/reply-edit.d.ts.map +1 -0
- package/dist/agent/channels/reply-edit.js +173 -0
- package/dist/agent/channels/reply-edit.js.map +1 -0
- package/dist/agent/channels/reply-fold.d.ts +186 -0
- package/dist/agent/channels/reply-fold.d.ts.map +1 -0
- package/dist/agent/channels/reply-fold.js +427 -0
- package/dist/agent/channels/reply-fold.js.map +1 -0
- package/dist/agent/channels/reply-freshness.d.ts +69 -0
- package/dist/agent/channels/reply-freshness.d.ts.map +1 -0
- package/dist/agent/channels/reply-freshness.js +208 -0
- package/dist/agent/channels/reply-freshness.js.map +1 -0
- package/dist/agent/channels/reply-post.d.ts +176 -0
- package/dist/agent/channels/reply-post.d.ts.map +1 -0
- package/dist/agent/channels/reply-post.js +407 -0
- package/dist/agent/channels/reply-post.js.map +1 -0
- package/dist/agent/channels/reply-provenance.d.ts +172 -0
- package/dist/agent/channels/reply-provenance.d.ts.map +1 -0
- package/dist/agent/channels/reply-provenance.js +662 -0
- package/dist/agent/channels/reply-provenance.js.map +1 -0
- package/dist/agent/channels/reply-signal.d.ts +141 -0
- package/dist/agent/channels/reply-signal.d.ts.map +1 -0
- package/dist/agent/channels/reply-signal.js +554 -0
- package/dist/agent/channels/reply-signal.js.map +1 -0
- package/dist/agent/channels/request-claim-guard.d.ts +91 -0
- package/dist/agent/channels/request-claim-guard.d.ts.map +1 -0
- package/dist/agent/channels/request-claim-guard.js +457 -0
- package/dist/agent/channels/request-claim-guard.js.map +1 -0
- package/dist/agent/channels/runtime-code-fingerprint.generated.d.ts +2 -0
- package/dist/agent/channels/runtime-code-fingerprint.generated.d.ts.map +1 -0
- package/dist/agent/channels/runtime-code-fingerprint.generated.js +9 -0
- package/dist/agent/channels/runtime-code-fingerprint.generated.js.map +1 -0
- package/dist/agent/channels/runtime-rotation.d.ts +98 -0
- package/dist/agent/channels/runtime-rotation.d.ts.map +1 -0
- package/dist/agent/channels/runtime-rotation.js +178 -0
- package/dist/agent/channels/runtime-rotation.js.map +1 -0
- package/dist/agent/channels/seat-admission.d.ts +61 -0
- package/dist/agent/channels/seat-admission.d.ts.map +1 -0
- package/dist/agent/channels/seat-admission.js +64 -0
- package/dist/agent/channels/seat-admission.js.map +1 -0
- package/dist/agent/channels/seat-catch-up.d.ts +240 -0
- package/dist/agent/channels/seat-catch-up.d.ts.map +1 -0
- package/dist/agent/channels/seat-catch-up.js +353 -0
- package/dist/agent/channels/seat-catch-up.js.map +1 -0
- package/dist/agent/channels/self-dispatch.d.ts +89 -0
- package/dist/agent/channels/self-dispatch.d.ts.map +1 -0
- package/dist/agent/channels/self-dispatch.js +310 -0
- package/dist/agent/channels/self-dispatch.js.map +1 -0
- package/dist/agent/channels/session-park.d.ts +120 -0
- package/dist/agent/channels/session-park.d.ts.map +1 -0
- package/dist/agent/channels/session-park.js +170 -0
- package/dist/agent/channels/session-park.js.map +1 -0
- package/dist/agent/channels/session-resume.d.ts +26 -0
- package/dist/agent/channels/session-resume.d.ts.map +1 -0
- package/dist/agent/channels/session-resume.js +34 -0
- package/dist/agent/channels/session-resume.js.map +1 -0
- package/dist/agent/channels/session-tail-record.d.ts +65 -0
- package/dist/agent/channels/session-tail-record.d.ts.map +1 -0
- package/dist/agent/channels/session-tail-record.js +129 -0
- package/dist/agent/channels/session-tail-record.js.map +1 -0
- package/dist/agent/channels/session-tail.d.ts +90 -0
- package/dist/agent/channels/session-tail.d.ts.map +1 -0
- package/dist/agent/channels/session-tail.js +79 -0
- package/dist/agent/channels/session-tail.js.map +1 -0
- package/dist/agent/channels/slack-bridge.d.ts +56 -0
- package/dist/agent/channels/slack-bridge.d.ts.map +1 -0
- package/dist/agent/channels/slack-bridge.js +80 -0
- package/dist/agent/channels/slack-bridge.js.map +1 -0
- package/dist/agent/channels/stand-down-silence.d.ts +49 -0
- package/dist/agent/channels/stand-down-silence.d.ts.map +1 -0
- package/dist/agent/channels/stand-down-silence.js +101 -0
- package/dist/agent/channels/stand-down-silence.js.map +1 -0
- package/dist/agent/channels/standing-authority.d.ts +69 -0
- package/dist/agent/channels/standing-authority.d.ts.map +1 -0
- package/dist/agent/channels/standing-authority.js +205 -0
- package/dist/agent/channels/standing-authority.js.map +1 -0
- package/dist/agent/channels/stranded-seat.d.ts +73 -0
- package/dist/agent/channels/stranded-seat.d.ts.map +1 -0
- package/dist/agent/channels/stranded-seat.js +107 -0
- package/dist/agent/channels/stranded-seat.js.map +1 -0
- package/dist/agent/channels/supervisor-complete.d.ts +61 -0
- package/dist/agent/channels/supervisor-complete.d.ts.map +1 -0
- package/dist/agent/channels/supervisor-complete.js +86 -0
- package/dist/agent/channels/supervisor-complete.js.map +1 -0
- package/dist/agent/channels/surface-message-ops.d.ts +100 -0
- package/dist/agent/channels/surface-message-ops.d.ts.map +1 -0
- package/dist/agent/channels/surface-message-ops.js +156 -0
- package/dist/agent/channels/surface-message-ops.js.map +1 -0
- package/dist/agent/channels/task-wake.d.ts +116 -0
- package/dist/agent/channels/task-wake.d.ts.map +1 -0
- package/dist/agent/channels/task-wake.js +390 -0
- package/dist/agent/channels/task-wake.js.map +1 -0
- package/dist/agent/channels/teams-bridge.d.ts +55 -0
- package/dist/agent/channels/teams-bridge.d.ts.map +1 -0
- package/dist/agent/channels/teams-bridge.js +25 -0
- package/dist/agent/channels/teams-bridge.js.map +1 -0
- package/dist/agent/channels/test-wake.d.ts +3 -0
- package/dist/agent/channels/test-wake.d.ts.map +1 -0
- package/dist/agent/channels/test-wake.js +11 -0
- package/dist/agent/channels/test-wake.js.map +1 -0
- package/dist/agent/channels/thread-ownership.d.ts +38 -0
- package/dist/agent/channels/thread-ownership.d.ts.map +1 -0
- package/dist/agent/channels/thread-ownership.js +53 -0
- package/dist/agent/channels/thread-ownership.js.map +1 -0
- package/dist/agent/channels/thread-seat-state.d.ts +35 -0
- package/dist/agent/channels/thread-seat-state.d.ts.map +1 -0
- package/dist/agent/channels/thread-seat-state.js +64 -0
- package/dist/agent/channels/thread-seat-state.js.map +1 -0
- package/dist/agent/channels/ticket-create.d.ts +77 -0
- package/dist/agent/channels/ticket-create.d.ts.map +1 -0
- package/dist/agent/channels/ticket-create.js +83 -0
- package/dist/agent/channels/ticket-create.js.map +1 -0
- package/dist/agent/channels/transcript-relay.d.ts +3 -0
- package/dist/agent/channels/transcript-relay.d.ts.map +1 -0
- package/dist/agent/channels/transcript-relay.js +8 -0
- package/dist/agent/channels/transcript-relay.js.map +1 -0
- package/dist/agent/channels/turn-cancel.d.ts +188 -0
- package/dist/agent/channels/turn-cancel.d.ts.map +1 -0
- package/dist/agent/channels/turn-cancel.js +310 -0
- package/dist/agent/channels/turn-cancel.js.map +1 -0
- package/dist/agent/channels/turn-delivery.d.ts +213 -0
- package/dist/agent/channels/turn-delivery.d.ts.map +1 -0
- package/dist/agent/channels/turn-delivery.js +384 -0
- package/dist/agent/channels/turn-delivery.js.map +1 -0
- package/dist/agent/channels/turn-registry.d.ts +47 -0
- package/dist/agent/channels/turn-registry.d.ts.map +1 -0
- package/dist/agent/channels/turn-registry.js +93 -0
- package/dist/agent/channels/turn-registry.js.map +1 -0
- package/dist/agent/channels/turn-terminal-actions.d.ts +22 -0
- package/dist/agent/channels/turn-terminal-actions.d.ts.map +1 -0
- package/dist/agent/channels/turn-terminal-actions.js +128 -0
- package/dist/agent/channels/turn-terminal-actions.js.map +1 -0
- package/dist/agent/channels/unified-redrive.d.ts +74 -0
- package/dist/agent/channels/unified-redrive.d.ts.map +1 -0
- package/dist/agent/channels/unified-redrive.js +141 -0
- package/dist/agent/channels/unified-redrive.js.map +1 -0
- package/dist/agent/channels/unified-reply.d.ts +102 -0
- package/dist/agent/channels/unified-reply.d.ts.map +1 -0
- package/dist/agent/channels/unified-reply.js +247 -0
- package/dist/agent/channels/unified-reply.js.map +1 -0
- package/dist/agent/channels/unified-supervisor.d.ts +100 -0
- package/dist/agent/channels/unified-supervisor.d.ts.map +1 -0
- package/dist/agent/channels/unified-supervisor.js +143 -0
- package/dist/agent/channels/unified-supervisor.js.map +1 -0
- package/dist/agent/channels/unified-window.d.ts +550 -0
- package/dist/agent/channels/unified-window.d.ts.map +1 -0
- package/dist/agent/channels/unified-window.js +731 -0
- package/dist/agent/channels/unified-window.js.map +1 -0
- package/dist/agent/channels/unified.d.ts +251 -0
- package/dist/agent/channels/unified.d.ts.map +1 -0
- package/dist/agent/channels/unified.js +1333 -0
- package/dist/agent/channels/unified.js.map +1 -0
- package/dist/agent/channels/wake-accounting.d.ts +57 -0
- package/dist/agent/channels/wake-accounting.d.ts.map +1 -0
- package/dist/agent/channels/wake-accounting.js +87 -0
- package/dist/agent/channels/wake-accounting.js.map +1 -0
- package/dist/agent/channels/wake-arm.d.ts +80 -0
- package/dist/agent/channels/wake-arm.d.ts.map +1 -0
- package/dist/agent/channels/wake-arm.js +173 -0
- package/dist/agent/channels/wake-arm.js.map +1 -0
- package/dist/agent/channels/wake-container.d.ts +27 -0
- package/dist/agent/channels/wake-container.d.ts.map +1 -0
- package/dist/agent/channels/wake-container.js +33 -0
- package/dist/agent/channels/wake-container.js.map +1 -0
- package/dist/agent/channels/wake-envelope.d.ts +252 -0
- package/dist/agent/channels/wake-envelope.d.ts.map +1 -0
- package/dist/agent/channels/wake-envelope.js +364 -0
- package/dist/agent/channels/wake-envelope.js.map +1 -0
- package/dist/agent/channels/wake-origin-codec.d.ts +77 -0
- package/dist/agent/channels/wake-origin-codec.d.ts.map +1 -0
- package/dist/agent/channels/wake-origin-codec.js +21 -0
- package/dist/agent/channels/wake-origin-codec.js.map +1 -0
- package/dist/agent/channels/wake-origin-codecs.d.ts +2 -0
- package/dist/agent/channels/wake-origin-codecs.d.ts.map +1 -0
- package/dist/agent/channels/wake-origin-codecs.js +4 -0
- package/dist/agent/channels/wake-origin-codecs.js.map +1 -0
- package/dist/agent/channels/wake-timing.d.ts +230 -0
- package/dist/agent/channels/wake-timing.d.ts.map +1 -0
- package/dist/agent/channels/wake-timing.js +256 -0
- package/dist/agent/channels/wake-timing.js.map +1 -0
- package/dist/agent/channels/webhook-reveal-page.d.ts +3 -0
- package/dist/agent/channels/webhook-reveal-page.d.ts.map +1 -0
- package/dist/agent/channels/webhook-reveal-page.js +11 -0
- package/dist/agent/channels/webhook-reveal-page.js.map +1 -0
- package/dist/agent/channels/webhooks.d.ts +5 -0
- package/dist/agent/channels/webhooks.d.ts.map +1 -0
- package/dist/agent/channels/webhooks.js +197 -0
- package/dist/agent/channels/webhooks.js.map +1 -0
- package/dist/agent/channels/window-key.d.ts +187 -0
- package/dist/agent/channels/window-key.d.ts.map +1 -0
- package/dist/agent/channels/window-key.js +379 -0
- package/dist/agent/channels/window-key.js.map +1 -0
- package/dist/agent/channels/window-sources.d.ts +17 -0
- package/dist/agent/channels/window-sources.d.ts.map +1 -0
- package/dist/agent/channels/window-sources.js +86 -0
- package/dist/agent/channels/window-sources.js.map +1 -0
- package/dist/agent/channels/work-destinations.d.ts +8 -0
- package/dist/agent/channels/work-destinations.d.ts.map +1 -0
- package/dist/agent/channels/work-destinations.js +45 -0
- package/dist/agent/channels/work-destinations.js.map +1 -0
- package/dist/agent/channels/work-registry.d.ts +13 -0
- package/dist/agent/channels/work-registry.d.ts.map +1 -0
- package/dist/agent/channels/work-registry.js +23 -0
- package/dist/agent/channels/work-registry.js.map +1 -0
- package/dist/agent/channels/work-search.d.ts +52 -0
- package/dist/agent/channels/work-search.d.ts.map +1 -0
- package/dist/agent/channels/work-search.js +54 -0
- package/dist/agent/channels/work-search.js.map +1 -0
- package/dist/agent/commands/core.d.ts +184 -0
- package/dist/agent/commands/core.d.ts.map +1 -0
- package/dist/agent/commands/core.js +541 -0
- package/dist/agent/commands/core.js.map +1 -0
- package/dist/agent/commands/rate.d.ts +55 -0
- package/dist/agent/commands/rate.d.ts.map +1 -0
- package/dist/agent/commands/rate.js +146 -0
- package/dist/agent/commands/rate.js.map +1 -0
- package/dist/agent/connections/auth-retry-memo.d.ts +28 -0
- package/dist/agent/connections/auth-retry-memo.d.ts.map +1 -0
- package/dist/agent/connections/auth-retry-memo.js +109 -0
- package/dist/agent/connections/auth-retry-memo.js.map +1 -0
- package/dist/agent/connections/aws-exec.d.ts +27 -0
- package/dist/agent/connections/aws-exec.d.ts.map +1 -0
- package/dist/agent/connections/aws-exec.js +22 -0
- package/dist/agent/connections/aws-exec.js.map +1 -0
- package/dist/agent/connections/aws-identity.d.ts +138 -0
- package/dist/agent/connections/aws-identity.d.ts.map +1 -0
- package/dist/agent/connections/aws-identity.js +163 -0
- package/dist/agent/connections/aws-identity.js.map +1 -0
- package/dist/agent/connections/aws-sso-callback.d.ts +33 -0
- package/dist/agent/connections/aws-sso-callback.d.ts.map +1 -0
- package/dist/agent/connections/aws-sso-callback.js +68 -0
- package/dist/agent/connections/aws-sso-callback.js.map +1 -0
- package/dist/agent/connections/aws-sso-identity-binding.d.ts +30 -0
- package/dist/agent/connections/aws-sso-identity-binding.d.ts.map +1 -0
- package/dist/agent/connections/aws-sso-identity-binding.js +95 -0
- package/dist/agent/connections/aws-sso-identity-binding.js.map +1 -0
- package/dist/agent/connections/aws-sso-link.d.ts +18 -0
- package/dist/agent/connections/aws-sso-link.d.ts.map +1 -0
- package/dist/agent/connections/aws-sso-link.js +22 -0
- package/dist/agent/connections/aws-sso-link.js.map +1 -0
- package/dist/agent/connections/connector-auth.d.ts +216 -0
- package/dist/agent/connections/connector-auth.d.ts.map +1 -0
- package/dist/agent/connections/connector-auth.js +745 -0
- package/dist/agent/connections/connector-auth.js.map +1 -0
- package/dist/agent/connections/connector-card.d.ts +61 -0
- package/dist/agent/connections/connector-card.d.ts.map +1 -0
- package/dist/agent/connections/connector-card.js +361 -0
- package/dist/agent/connections/connector-card.js.map +1 -0
- package/dist/agent/connections/connector-flags.d.ts +22 -0
- package/dist/agent/connections/connector-flags.d.ts.map +1 -0
- package/dist/agent/connections/connector-flags.js +40 -0
- package/dist/agent/connections/connector-flags.js.map +1 -0
- package/dist/agent/connections/connector-offer.d.ts +122 -0
- package/dist/agent/connections/connector-offer.d.ts.map +1 -0
- package/dist/agent/connections/connector-offer.js +145 -0
- package/dist/agent/connections/connector-offer.js.map +1 -0
- package/dist/agent/connections/connector-transport.d.ts +55 -0
- package/dist/agent/connections/connector-transport.d.ts.map +1 -0
- package/dist/agent/connections/connector-transport.js +80 -0
- package/dist/agent/connections/connector-transport.js.map +1 -0
- package/dist/agent/connections/consent-resume.d.ts +81 -0
- package/dist/agent/connections/consent-resume.d.ts.map +1 -0
- package/dist/agent/connections/consent-resume.js +142 -0
- package/dist/agent/connections/consent-resume.js.map +1 -0
- package/dist/agent/connections/grant-mcp-borrow.d.ts +116 -0
- package/dist/agent/connections/grant-mcp-borrow.d.ts.map +1 -0
- package/dist/agent/connections/grant-mcp-borrow.js +256 -0
- package/dist/agent/connections/grant-mcp-borrow.js.map +1 -0
- package/dist/agent/connections/grant-mcp-transport.d.ts +13 -0
- package/dist/agent/connections/grant-mcp-transport.d.ts.map +1 -0
- package/dist/agent/connections/grant-mcp-transport.js +50 -0
- package/dist/agent/connections/grant-mcp-transport.js.map +1 -0
- package/dist/agent/connections/notion.d.ts +3 -0
- package/dist/agent/connections/notion.d.ts.map +1 -0
- package/dist/agent/connections/notion.js +35 -0
- package/dist/agent/connections/notion.js.map +1 -0
- package/dist/agent/connections/oe-oauth-callback.d.ts +61 -0
- package/dist/agent/connections/oe-oauth-callback.d.ts.map +1 -0
- package/dist/agent/connections/oe-oauth-callback.js +142 -0
- package/dist/agent/connections/oe-oauth-callback.js.map +1 -0
- package/dist/agent/connections/own-account-ask.d.ts +120 -0
- package/dist/agent/connections/own-account-ask.d.ts.map +1 -0
- package/dist/agent/connections/own-account-ask.js +204 -0
- package/dist/agent/connections/own-account-ask.js.map +1 -0
- package/dist/agent/connections/own-account-carriage.d.ts +33 -0
- package/dist/agent/connections/own-account-carriage.d.ts.map +1 -0
- package/dist/agent/connections/own-account-carriage.js +102 -0
- package/dist/agent/connections/own-account-carriage.js.map +1 -0
- package/dist/agent/connections/own-account-gate.d.ts +105 -0
- package/dist/agent/connections/own-account-gate.d.ts.map +1 -0
- package/dist/agent/connections/own-account-gate.js +305 -0
- package/dist/agent/connections/own-account-gate.js.map +1 -0
- package/dist/agent/connections/own-account-vendors.d.ts +40 -0
- package/dist/agent/connections/own-account-vendors.d.ts.map +1 -0
- package/dist/agent/connections/own-account-vendors.js +106 -0
- package/dist/agent/connections/own-account-vendors.js.map +1 -0
- package/dist/agent/connections/user-auth-flow.d.ts +78 -0
- package/dist/agent/connections/user-auth-flow.d.ts.map +1 -0
- package/dist/agent/connections/user-auth-flow.js +41 -0
- package/dist/agent/connections/user-auth-flow.js.map +1 -0
- package/dist/agent/contributions.d.ts +671 -0
- package/dist/agent/contributions.d.ts.map +1 -0
- package/dist/agent/contributions.js +192 -0
- package/dist/agent/contributions.js.map +1 -0
- package/dist/agent/control/auth.d.ts +291 -0
- package/dist/agent/control/auth.d.ts.map +1 -0
- package/dist/agent/control/auth.js +533 -0
- package/dist/agent/control/auth.js.map +1 -0
- package/dist/agent/control/capture-window-read.d.ts +115 -0
- package/dist/agent/control/capture-window-read.d.ts.map +1 -0
- package/dist/agent/control/capture-window-read.js +302 -0
- package/dist/agent/control/capture-window-read.js.map +1 -0
- package/dist/agent/control/delivery-history.d.ts +163 -0
- package/dist/agent/control/delivery-history.d.ts.map +1 -0
- package/dist/agent/control/delivery-history.js +397 -0
- package/dist/agent/control/delivery-history.js.map +1 -0
- package/dist/agent/control/http.d.ts +13 -0
- package/dist/agent/control/http.d.ts.map +1 -0
- package/dist/agent/control/http.js +131 -0
- package/dist/agent/control/http.js.map +1 -0
- package/dist/agent/control/mcp-route.d.ts +13 -0
- package/dist/agent/control/mcp-route.d.ts.map +1 -0
- package/dist/agent/control/mcp-route.js +100 -0
- package/dist/agent/control/mcp-route.js.map +1 -0
- package/dist/agent/control/oauth-clients.d.ts +145 -0
- package/dist/agent/control/oauth-clients.d.ts.map +1 -0
- package/dist/agent/control/oauth-clients.js +229 -0
- package/dist/agent/control/oauth-clients.js.map +1 -0
- package/dist/agent/control/oauth-resource.d.ts +59 -0
- package/dist/agent/control/oauth-resource.d.ts.map +1 -0
- package/dist/agent/control/oauth-resource.js +168 -0
- package/dist/agent/control/oauth-resource.js.map +1 -0
- package/dist/agent/control/oauth-route.d.ts +50 -0
- package/dist/agent/control/oauth-route.d.ts.map +1 -0
- package/dist/agent/control/oauth-route.js +343 -0
- package/dist/agent/control/oauth-route.js.map +1 -0
- package/dist/agent/control/oauth-tokens.d.ts +88 -0
- package/dist/agent/control/oauth-tokens.d.ts.map +1 -0
- package/dist/agent/control/oauth-tokens.js +171 -0
- package/dist/agent/control/oauth-tokens.js.map +1 -0
- package/dist/agent/control/read-route.d.ts +278 -0
- package/dist/agent/control/read-route.d.ts.map +1 -0
- package/dist/agent/control/read-route.js +761 -0
- package/dist/agent/control/read-route.js.map +1 -0
- package/dist/agent/control/server.d.ts +49 -0
- package/dist/agent/control/server.d.ts.map +1 -0
- package/dist/agent/control/server.js +405 -0
- package/dist/agent/control/server.js.map +1 -0
- package/dist/agent/control/test-route.d.ts +85 -0
- package/dist/agent/control/test-route.d.ts.map +1 -0
- package/dist/agent/control/test-route.js +426 -0
- package/dist/agent/control/test-route.js.map +1 -0
- package/dist/agent/control/transcript-export.d.ts +68 -0
- package/dist/agent/control/transcript-export.d.ts.map +1 -0
- package/dist/agent/control/transcript-export.js +145 -0
- package/dist/agent/control/transcript-export.js.map +1 -0
- package/dist/agent/control/transcript-relay.d.ts +104 -0
- package/dist/agent/control/transcript-relay.d.ts.map +1 -0
- package/dist/agent/control/transcript-relay.js +314 -0
- package/dist/agent/control/transcript-relay.js.map +1 -0
- package/dist/agent/control/transcript-render.d.ts +43 -0
- package/dist/agent/control/transcript-render.d.ts.map +1 -0
- package/dist/agent/control/transcript-render.js +142 -0
- package/dist/agent/control/transcript-render.js.map +1 -0
- package/dist/agent/control/views.d.ts +511 -0
- package/dist/agent/control/views.d.ts.map +1 -0
- package/dist/agent/control/views.js +743 -0
- package/dist/agent/control/views.js.map +1 -0
- package/dist/agent/control/writes.d.ts +15 -0
- package/dist/agent/control/writes.d.ts.map +1 -0
- package/dist/agent/control/writes.js +1309 -0
- package/dist/agent/control/writes.js.map +1 -0
- package/dist/agent/credentials/binding-pr.d.ts +51 -0
- package/dist/agent/credentials/binding-pr.d.ts.map +1 -0
- package/dist/agent/credentials/binding-pr.js +178 -0
- package/dist/agent/credentials/binding-pr.js.map +1 -0
- package/dist/agent/credentials/config-pr-github.d.ts +24 -0
- package/dist/agent/credentials/config-pr-github.d.ts.map +1 -0
- package/dist/agent/credentials/config-pr-github.js +160 -0
- package/dist/agent/credentials/config-pr-github.js.map +1 -0
- package/dist/agent/credentials/config-pr.d.ts +148 -0
- package/dist/agent/credentials/config-pr.d.ts.map +1 -0
- package/dist/agent/credentials/config-pr.js +45 -0
- package/dist/agent/credentials/config-pr.js.map +1 -0
- package/dist/agent/credentials/db-broker.d.ts +82 -0
- package/dist/agent/credentials/db-broker.d.ts.map +1 -0
- package/dist/agent/credentials/db-broker.js +231 -0
- package/dist/agent/credentials/db-broker.js.map +1 -0
- package/dist/agent/credentials/home.d.ts +51 -0
- package/dist/agent/credentials/home.d.ts.map +1 -0
- package/dist/agent/credentials/home.js +43 -0
- package/dist/agent/credentials/home.js.map +1 -0
- package/dist/agent/credentials/intake-page.d.ts +54 -0
- package/dist/agent/credentials/intake-page.d.ts.map +1 -0
- package/dist/agent/credentials/intake-page.js +238 -0
- package/dist/agent/credentials/intake-page.js.map +1 -0
- package/dist/agent/credentials/intake.d.ts +147 -0
- package/dist/agent/credentials/intake.d.ts.map +1 -0
- package/dist/agent/credentials/intake.js +404 -0
- package/dist/agent/credentials/intake.js.map +1 -0
- package/dist/agent/credentials/kv-vault.d.ts +69 -0
- package/dist/agent/credentials/kv-vault.d.ts.map +1 -0
- package/dist/agent/credentials/kv-vault.js +121 -0
- package/dist/agent/credentials/kv-vault.js.map +1 -0
- package/dist/agent/credentials/operator-secrets.d.ts +169 -0
- package/dist/agent/credentials/operator-secrets.d.ts.map +1 -0
- package/dist/agent/credentials/operator-secrets.js +316 -0
- package/dist/agent/credentials/operator-secrets.js.map +1 -0
- package/dist/agent/credentials/page-chrome.d.ts +11 -0
- package/dist/agent/credentials/page-chrome.d.ts.map +1 -0
- package/dist/agent/credentials/page-chrome.js +52 -0
- package/dist/agent/credentials/page-chrome.js.map +1 -0
- package/dist/agent/credentials/page-token.d.ts +73 -0
- package/dist/agent/credentials/page-token.d.ts.map +1 -0
- package/dist/agent/credentials/page-token.js +197 -0
- package/dist/agent/credentials/page-token.js.map +1 -0
- package/dist/agent/credentials/purge.d.ts +54 -0
- package/dist/agent/credentials/purge.d.ts.map +1 -0
- package/dist/agent/credentials/purge.js +82 -0
- package/dist/agent/credentials/purge.js.map +1 -0
- package/dist/agent/credentials/ref.d.ts +72 -0
- package/dist/agent/credentials/ref.d.ts.map +1 -0
- package/dist/agent/credentials/ref.js +110 -0
- package/dist/agent/credentials/ref.js.map +1 -0
- package/dist/agent/credentials/reserved-refs.d.ts +31 -0
- package/dist/agent/credentials/reserved-refs.d.ts.map +1 -0
- package/dist/agent/credentials/reserved-refs.js +70 -0
- package/dist/agent/credentials/reserved-refs.js.map +1 -0
- package/dist/agent/credentials/self-secrets.d.ts +24 -0
- package/dist/agent/credentials/self-secrets.d.ts.map +1 -0
- package/dist/agent/credentials/self-secrets.js +138 -0
- package/dist/agent/credentials/self-secrets.js.map +1 -0
- package/dist/agent/credentials/warm.d.ts +77 -0
- package/dist/agent/credentials/warm.d.ts.map +1 -0
- package/dist/agent/credentials/warm.js +136 -0
- package/dist/agent/credentials/warm.js.map +1 -0
- package/dist/agent/docs/approver-policy.d.ts +70 -0
- package/dist/agent/docs/approver-policy.d.ts.map +1 -0
- package/dist/agent/docs/approver-policy.js +193 -0
- package/dist/agent/docs/approver-policy.js.map +1 -0
- package/dist/agent/docs/capability-map.d.ts +69 -0
- package/dist/agent/docs/capability-map.d.ts.map +1 -0
- package/dist/agent/docs/capability-map.js +142 -0
- package/dist/agent/docs/capability-map.js.map +1 -0
- package/dist/agent/docs/counted-claims.d.ts +61 -0
- package/dist/agent/docs/counted-claims.d.ts.map +1 -0
- package/dist/agent/docs/counted-claims.js +363 -0
- package/dist/agent/docs/counted-claims.js.map +1 -0
- package/dist/agent/docs/registry.d.ts +73 -0
- package/dist/agent/docs/registry.d.ts.map +1 -0
- package/dist/agent/docs/registry.js +157 -0
- package/dist/agent/docs/registry.js.map +1 -0
- package/dist/agent/docs/source-map.d.ts +69 -0
- package/dist/agent/docs/source-map.d.ts.map +1 -0
- package/dist/agent/docs/source-map.js +156 -0
- package/dist/agent/docs/source-map.js.map +1 -0
- package/dist/agent/hooks/approval-raised.d.ts +3 -0
- package/dist/agent/hooks/approval-raised.d.ts.map +1 -0
- package/dist/agent/hooks/approval-raised.js +31 -0
- package/dist/agent/hooks/approval-raised.js.map +1 -0
- package/dist/agent/hooks/approval-settlement.d.ts +5 -0
- package/dist/agent/hooks/approval-settlement.d.ts.map +1 -0
- package/dist/agent/hooks/approval-settlement.js +90 -0
- package/dist/agent/hooks/approval-settlement.js.map +1 -0
- package/dist/agent/hooks/binding-bridge.d.ts +3 -0
- package/dist/agent/hooks/binding-bridge.d.ts.map +1 -0
- package/dist/agent/hooks/binding-bridge.js +63 -0
- package/dist/agent/hooks/binding-bridge.js.map +1 -0
- package/dist/agent/hooks/connector-audit.d.ts +3 -0
- package/dist/agent/hooks/connector-audit.d.ts.map +1 -0
- package/dist/agent/hooks/connector-audit.js +103 -0
- package/dist/agent/hooks/connector-audit.js.map +1 -0
- package/dist/agent/hooks/egress.d.ts +150 -0
- package/dist/agent/hooks/egress.d.ts.map +1 -0
- package/dist/agent/hooks/egress.js +546 -0
- package/dist/agent/hooks/egress.js.map +1 -0
- package/dist/agent/hooks/eve-patch-gate.d.ts +3 -0
- package/dist/agent/hooks/eve-patch-gate.d.ts.map +1 -0
- package/dist/agent/hooks/eve-patch-gate.js +51 -0
- package/dist/agent/hooks/eve-patch-gate.js.map +1 -0
- package/dist/agent/hooks/fire-carriage.d.ts +3 -0
- package/dist/agent/hooks/fire-carriage.d.ts.map +1 -0
- package/dist/agent/hooks/fire-carriage.js +32 -0
- package/dist/agent/hooks/fire-carriage.js.map +1 -0
- package/dist/agent/hooks/fire-toolset.d.ts +48 -0
- package/dist/agent/hooks/fire-toolset.d.ts.map +1 -0
- package/dist/agent/hooks/fire-toolset.js +275 -0
- package/dist/agent/hooks/fire-toolset.js.map +1 -0
- package/dist/agent/hooks/job-posture.d.ts +3 -0
- package/dist/agent/hooks/job-posture.d.ts.map +1 -0
- package/dist/agent/hooks/job-posture.js +82 -0
- package/dist/agent/hooks/job-posture.js.map +1 -0
- package/dist/agent/hooks/lean-seat.d.ts +3 -0
- package/dist/agent/hooks/lean-seat.d.ts.map +1 -0
- package/dist/agent/hooks/lean-seat.js +229 -0
- package/dist/agent/hooks/lean-seat.js.map +1 -0
- package/dist/agent/hooks/learn.d.ts +3 -0
- package/dist/agent/hooks/learn.d.ts.map +1 -0
- package/dist/agent/hooks/learn.js +193 -0
- package/dist/agent/hooks/learn.js.map +1 -0
- package/dist/agent/hooks/link-claim.d.ts +63 -0
- package/dist/agent/hooks/link-claim.d.ts.map +1 -0
- package/dist/agent/hooks/link-claim.js +215 -0
- package/dist/agent/hooks/link-claim.js.map +1 -0
- package/dist/agent/hooks/log-flush.d.ts +3 -0
- package/dist/agent/hooks/log-flush.d.ts.map +1 -0
- package/dist/agent/hooks/log-flush.js +28 -0
- package/dist/agent/hooks/log-flush.js.map +1 -0
- package/dist/agent/hooks/loop-breaker.d.ts +3 -0
- package/dist/agent/hooks/loop-breaker.d.ts.map +1 -0
- package/dist/agent/hooks/loop-breaker.js +16 -0
- package/dist/agent/hooks/loop-breaker.js.map +1 -0
- package/dist/agent/hooks/memory.d.ts +112 -0
- package/dist/agent/hooks/memory.d.ts.map +1 -0
- package/dist/agent/hooks/memory.js +1191 -0
- package/dist/agent/hooks/memory.js.map +1 -0
- package/dist/agent/hooks/native-input-audit.d.ts +7 -0
- package/dist/agent/hooks/native-input-audit.d.ts.map +1 -0
- package/dist/agent/hooks/native-input-audit.js +44 -0
- package/dist/agent/hooks/native-input-audit.js.map +1 -0
- package/dist/agent/hooks/own-account-ask.d.ts +52 -0
- package/dist/agent/hooks/own-account-ask.d.ts.map +1 -0
- package/dist/agent/hooks/own-account-ask.js +162 -0
- package/dist/agent/hooks/own-account-ask.js.map +1 -0
- package/dist/agent/hooks/requester-identity.d.ts +3 -0
- package/dist/agent/hooks/requester-identity.d.ts.map +1 -0
- package/dist/agent/hooks/requester-identity.js +24 -0
- package/dist/agent/hooks/requester-identity.js.map +1 -0
- package/dist/agent/hooks/requester-messages.d.ts +9 -0
- package/dist/agent/hooks/requester-messages.d.ts.map +1 -0
- package/dist/agent/hooks/requester-messages.js +57 -0
- package/dist/agent/hooks/requester-messages.js.map +1 -0
- package/dist/agent/hooks/routine-outcome.d.ts +29 -0
- package/dist/agent/hooks/routine-outcome.d.ts.map +1 -0
- package/dist/agent/hooks/routine-outcome.js +211 -0
- package/dist/agent/hooks/routine-outcome.js.map +1 -0
- package/dist/agent/hooks/routine-silence.d.ts +3 -0
- package/dist/agent/hooks/routine-silence.d.ts.map +1 -0
- package/dist/agent/hooks/routine-silence.js +30 -0
- package/dist/agent/hooks/routine-silence.js.map +1 -0
- package/dist/agent/hooks/session-park.d.ts +3 -0
- package/dist/agent/hooks/session-park.d.ts.map +1 -0
- package/dist/agent/hooks/session-park.js +43 -0
- package/dist/agent/hooks/session-park.js.map +1 -0
- package/dist/agent/hooks/settlement-flush.d.ts +45 -0
- package/dist/agent/hooks/settlement-flush.d.ts.map +1 -0
- package/dist/agent/hooks/settlement-flush.js +146 -0
- package/dist/agent/hooks/settlement-flush.js.map +1 -0
- package/dist/agent/hooks/spawn-taint.d.ts +154 -0
- package/dist/agent/hooks/spawn-taint.d.ts.map +1 -0
- package/dist/agent/hooks/spawn-taint.js +1200 -0
- package/dist/agent/hooks/spawn-taint.js.map +1 -0
- package/dist/agent/hooks/spend.d.ts +92 -0
- package/dist/agent/hooks/spend.d.ts.map +1 -0
- package/dist/agent/hooks/spend.js +343 -0
- package/dist/agent/hooks/spend.js.map +1 -0
- package/dist/agent/hooks/stall-guard.d.ts +3 -0
- package/dist/agent/hooks/stall-guard.d.ts.map +1 -0
- package/dist/agent/hooks/stall-guard.js +22 -0
- package/dist/agent/hooks/stall-guard.js.map +1 -0
- package/dist/agent/hooks/telemetry.d.ts +3 -0
- package/dist/agent/hooks/telemetry.d.ts.map +1 -0
- package/dist/agent/hooks/telemetry.js +93 -0
- package/dist/agent/hooks/telemetry.js.map +1 -0
- package/dist/agent/hooks/turn-anchor.d.ts +35 -0
- package/dist/agent/hooks/turn-anchor.d.ts.map +1 -0
- package/dist/agent/hooks/turn-anchor.js +647 -0
- package/dist/agent/hooks/turn-anchor.js.map +1 -0
- package/dist/agent/hooks/turn-tally.d.ts +32 -0
- package/dist/agent/hooks/turn-tally.d.ts.map +1 -0
- package/dist/agent/hooks/turn-tally.js +69 -0
- package/dist/agent/hooks/turn-tally.js.map +1 -0
- package/dist/agent/hooks/wake-accounting-turn.d.ts +8 -0
- package/dist/agent/hooks/wake-accounting-turn.d.ts.map +1 -0
- package/dist/agent/hooks/wake-accounting-turn.js +88 -0
- package/dist/agent/hooks/wake-accounting-turn.js.map +1 -0
- package/dist/agent/hooks/wake-turn-start.d.ts +3 -0
- package/dist/agent/hooks/wake-turn-start.d.ts.map +1 -0
- package/dist/agent/hooks/wake-turn-start.js +44 -0
- package/dist/agent/hooks/wake-turn-start.js.map +1 -0
- package/dist/agent/hooks/window-routing.d.ts +3 -0
- package/dist/agent/hooks/window-routing.d.ts.map +1 -0
- package/dist/agent/hooks/window-routing.js +52 -0
- package/dist/agent/hooks/window-routing.js.map +1 -0
- package/dist/agent/identity/account-directory.d.ts +52 -0
- package/dist/agent/identity/account-directory.d.ts.map +1 -0
- package/dist/agent/identity/account-directory.js +110 -0
- package/dist/agent/identity/account-directory.js.map +1 -0
- package/dist/agent/identity/account-display-name.d.ts +65 -0
- package/dist/agent/identity/account-display-name.d.ts.map +1 -0
- package/dist/agent/identity/account-display-name.js +156 -0
- package/dist/agent/identity/account-display-name.js.map +1 -0
- package/dist/agent/identity/author-trust.d.ts +106 -0
- package/dist/agent/identity/author-trust.d.ts.map +1 -0
- package/dist/agent/identity/author-trust.js +209 -0
- package/dist/agent/identity/author-trust.js.map +1 -0
- package/dist/agent/identity/binding-bridge.d.ts +26 -0
- package/dist/agent/identity/binding-bridge.d.ts.map +1 -0
- package/dist/agent/identity/binding-bridge.js +75 -0
- package/dist/agent/identity/binding-bridge.js.map +1 -0
- package/dist/agent/identity/binding.d.ts +567 -0
- package/dist/agent/identity/binding.d.ts.map +1 -0
- package/dist/agent/identity/binding.js +1050 -0
- package/dist/agent/identity/binding.js.map +1 -0
- package/dist/agent/identity/bot-display-name.d.ts +19 -0
- package/dist/agent/identity/bot-display-name.d.ts.map +1 -0
- package/dist/agent/identity/bot-display-name.js +47 -0
- package/dist/agent/identity/bot-display-name.js.map +1 -0
- package/dist/agent/identity/bot-name.d.ts +39 -0
- package/dist/agent/identity/bot-name.d.ts.map +1 -0
- package/dist/agent/identity/bot-name.js +77 -0
- package/dist/agent/identity/bot-name.js.map +1 -0
- package/dist/agent/identity/capabilities.d.ts +52 -0
- package/dist/agent/identity/capabilities.d.ts.map +1 -0
- package/dist/agent/identity/capabilities.js +39 -0
- package/dist/agent/identity/capabilities.js.map +1 -0
- package/dist/agent/identity/delegated-binding.d.ts +59 -0
- package/dist/agent/identity/delegated-binding.d.ts.map +1 -0
- package/dist/agent/identity/delegated-binding.js +116 -0
- package/dist/agent/identity/delegated-binding.js.map +1 -0
- package/dist/agent/identity/deployment-identity.d.ts +61 -0
- package/dist/agent/identity/deployment-identity.d.ts.map +1 -0
- package/dist/agent/identity/deployment-identity.js +75 -0
- package/dist/agent/identity/deployment-identity.js.map +1 -0
- package/dist/agent/identity/directory-sync.d.ts +195 -0
- package/dist/agent/identity/directory-sync.d.ts.map +1 -0
- package/dist/agent/identity/directory-sync.js +623 -0
- package/dist/agent/identity/directory-sync.js.map +1 -0
- package/dist/agent/identity/directory.d.ts +73 -0
- package/dist/agent/identity/directory.d.ts.map +1 -0
- package/dist/agent/identity/directory.js +19 -0
- package/dist/agent/identity/directory.js.map +1 -0
- package/dist/agent/identity/display-title.d.ts +12 -0
- package/dist/agent/identity/display-title.d.ts.map +1 -0
- package/dist/agent/identity/display-title.js +14 -0
- package/dist/agent/identity/display-title.js.map +1 -0
- package/dist/agent/identity/frozen-surface-binding.internal.d.ts +8 -0
- package/dist/agent/identity/frozen-surface-binding.internal.d.ts.map +1 -0
- package/dist/agent/identity/frozen-surface-binding.internal.js +90 -0
- package/dist/agent/identity/frozen-surface-binding.internal.js.map +1 -0
- package/dist/agent/identity/group-sync.d.ts +77 -0
- package/dist/agent/identity/group-sync.d.ts.map +1 -0
- package/dist/agent/identity/group-sync.js +128 -0
- package/dist/agent/identity/group-sync.js.map +1 -0
- package/dist/agent/identity/groups-codemod.d.ts +52 -0
- package/dist/agent/identity/groups-codemod.d.ts.map +1 -0
- package/dist/agent/identity/groups-codemod.js +129 -0
- package/dist/agent/identity/groups-codemod.js.map +1 -0
- package/dist/agent/identity/groups-delivery.d.ts +56 -0
- package/dist/agent/identity/groups-delivery.d.ts.map +1 -0
- package/dist/agent/identity/groups-delivery.js +116 -0
- package/dist/agent/identity/groups-delivery.js.map +1 -0
- package/dist/agent/identity/groups.d.ts +74 -0
- package/dist/agent/identity/groups.d.ts.map +1 -0
- package/dist/agent/identity/groups.js +124 -0
- package/dist/agent/identity/groups.js.map +1 -0
- package/dist/agent/identity/link-challenge.d.ts +58 -0
- package/dist/agent/identity/link-challenge.d.ts.map +1 -0
- package/dist/agent/identity/link-challenge.js +136 -0
- package/dist/agent/identity/link-challenge.js.map +1 -0
- package/dist/agent/identity/link-consent.d.ts +79 -0
- package/dist/agent/identity/link-consent.d.ts.map +1 -0
- package/dist/agent/identity/link-consent.js +179 -0
- package/dist/agent/identity/link-consent.js.map +1 -0
- package/dist/agent/identity/link-flow.d.ts +260 -0
- package/dist/agent/identity/link-flow.d.ts.map +1 -0
- package/dist/agent/identity/link-flow.js +327 -0
- package/dist/agent/identity/link-flow.js.map +1 -0
- package/dist/agent/identity/link-initiator.d.ts +16 -0
- package/dist/agent/identity/link-initiator.d.ts.map +1 -0
- package/dist/agent/identity/link-initiator.js +25 -0
- package/dist/agent/identity/link-initiator.js.map +1 -0
- package/dist/agent/identity/link-resolve.d.ts +40 -0
- package/dist/agent/identity/link-resolve.d.ts.map +1 -0
- package/dist/agent/identity/link-resolve.js +195 -0
- package/dist/agent/identity/link-resolve.js.map +1 -0
- package/dist/agent/identity/link-set-ref.d.ts +16 -0
- package/dist/agent/identity/link-set-ref.d.ts.map +1 -0
- package/dist/agent/identity/link-set-ref.js +32 -0
- package/dist/agent/identity/link-set-ref.js.map +1 -0
- package/dist/agent/identity/link-store.d.ts +400 -0
- package/dist/agent/identity/link-store.d.ts.map +1 -0
- package/dist/agent/identity/link-store.js +725 -0
- package/dist/agent/identity/link-store.js.map +1 -0
- package/dist/agent/identity/link-tenant-backfill.d.ts +39 -0
- package/dist/agent/identity/link-tenant-backfill.d.ts.map +1 -0
- package/dist/agent/identity/link-tenant-backfill.js +67 -0
- package/dist/agent/identity/link-tenant-backfill.js.map +1 -0
- package/dist/agent/identity/link-tenant.d.ts +28 -0
- package/dist/agent/identity/link-tenant.d.ts.map +1 -0
- package/dist/agent/identity/link-tenant.js +51 -0
- package/dist/agent/identity/link-tenant.js.map +1 -0
- package/dist/agent/identity/oauth-vault-share.d.ts +29 -0
- package/dist/agent/identity/oauth-vault-share.d.ts.map +1 -0
- package/dist/agent/identity/oauth-vault-share.js +36 -0
- package/dist/agent/identity/oauth-vault-share.js.map +1 -0
- package/dist/agent/identity/platform.d.ts +9 -0
- package/dist/agent/identity/platform.d.ts.map +1 -0
- package/dist/agent/identity/platform.js +48 -0
- package/dist/agent/identity/platform.js.map +1 -0
- package/dist/agent/identity/principal-key-rules.d.ts +23 -0
- package/dist/agent/identity/principal-key-rules.d.ts.map +1 -0
- package/dist/agent/identity/principal-key-rules.js +91 -0
- package/dist/agent/identity/principal-key-rules.js.map +1 -0
- package/dist/agent/identity/principal-key.d.ts +92 -0
- package/dist/agent/identity/principal-key.d.ts.map +1 -0
- package/dist/agent/identity/principal-key.js +197 -0
- package/dist/agent/identity/principal-key.js.map +1 -0
- package/dist/agent/identity/principals.d.ts +145 -0
- package/dist/agent/identity/principals.d.ts.map +1 -0
- package/dist/agent/identity/principals.js +303 -0
- package/dist/agent/identity/principals.js.map +1 -0
- package/dist/agent/identity/surface-key-grammar.d.ts +83 -0
- package/dist/agent/identity/surface-key-grammar.d.ts.map +1 -0
- package/dist/agent/identity/surface-key-grammar.js +138 -0
- package/dist/agent/identity/surface-key-grammar.js.map +1 -0
- package/dist/agent/identity/surface-parity.d.ts +274 -0
- package/dist/agent/identity/surface-parity.d.ts.map +1 -0
- package/dist/agent/identity/surface-parity.js +357 -0
- package/dist/agent/identity/surface-parity.js.map +1 -0
- package/dist/agent/identity/trust-preflight.d.ts +83 -0
- package/dist/agent/identity/trust-preflight.d.ts.map +1 -0
- package/dist/agent/identity/trust-preflight.js +196 -0
- package/dist/agent/identity/trust-preflight.js.map +1 -0
- package/dist/agent/identity/trust.d.ts +217 -0
- package/dist/agent/identity/trust.d.ts.map +1 -0
- package/dist/agent/identity/trust.js +300 -0
- package/dist/agent/identity/trust.js.map +1 -0
- package/dist/agent/identity/wake-trust.d.ts +129 -0
- package/dist/agent/identity/wake-trust.d.ts.map +1 -0
- package/dist/agent/identity/wake-trust.js +159 -0
- package/dist/agent/identity/wake-trust.js.map +1 -0
- package/dist/agent/instructions/access.d.ts +252 -0
- package/dist/agent/instructions/access.d.ts.map +1 -0
- package/dist/agent/instructions/access.js +1200 -0
- package/dist/agent/instructions/access.js.map +1 -0
- package/dist/agent/instructions/seat-prompt.d.ts +354 -0
- package/dist/agent/instructions/seat-prompt.d.ts.map +1 -0
- package/dist/agent/instructions/seat-prompt.js +1143 -0
- package/dist/agent/instructions/seat-prompt.js.map +1 -0
- package/dist/agent/lib/process-registry.d.ts +8 -0
- package/dist/agent/lib/process-registry.d.ts.map +1 -0
- package/dist/agent/lib/process-registry.js +53 -0
- package/dist/agent/lib/process-registry.js.map +1 -0
- package/dist/agent/memory/agents-codemod.d.ts +92 -0
- package/dist/agent/memory/agents-codemod.d.ts.map +1 -0
- package/dist/agent/memory/agents-codemod.js +366 -0
- package/dist/agent/memory/agents-codemod.js.map +1 -0
- package/dist/agent/memory/connector-memory.d.ts +54 -0
- package/dist/agent/memory/connector-memory.d.ts.map +1 -0
- package/dist/agent/memory/connector-memory.js +80 -0
- package/dist/agent/memory/connector-memory.js.map +1 -0
- package/dist/agent/memory/domain.d.ts +384 -0
- package/dist/agent/memory/domain.d.ts.map +1 -0
- package/dist/agent/memory/domain.js +911 -0
- package/dist/agent/memory/domain.js.map +1 -0
- package/dist/agent/memory/dream/candidates.d.ts +35 -0
- package/dist/agent/memory/dream/candidates.d.ts.map +1 -0
- package/dist/agent/memory/dream/candidates.js +149 -0
- package/dist/agent/memory/dream/candidates.js.map +1 -0
- package/dist/agent/memory/dream/correction.d.ts +56 -0
- package/dist/agent/memory/dream/correction.d.ts.map +1 -0
- package/dist/agent/memory/dream/correction.js +109 -0
- package/dist/agent/memory/dream/correction.js.map +1 -0
- package/dist/agent/memory/dream/judge.d.ts +47 -0
- package/dist/agent/memory/dream/judge.d.ts.map +1 -0
- package/dist/agent/memory/dream/judge.js +135 -0
- package/dist/agent/memory/dream/judge.js.map +1 -0
- package/dist/agent/memory/dream/learn.d.ts +79 -0
- package/dist/agent/memory/dream/learn.d.ts.map +1 -0
- package/dist/agent/memory/dream/learn.js +243 -0
- package/dist/agent/memory/dream/learn.js.map +1 -0
- package/dist/agent/memory/dream/mode3-cluster.d.ts +37 -0
- package/dist/agent/memory/dream/mode3-cluster.d.ts.map +1 -0
- package/dist/agent/memory/dream/mode3-cluster.js +123 -0
- package/dist/agent/memory/dream/mode3-cluster.js.map +1 -0
- package/dist/agent/memory/dream/mode3-last-mile.d.ts +134 -0
- package/dist/agent/memory/dream/mode3-last-mile.d.ts.map +1 -0
- package/dist/agent/memory/dream/mode3-last-mile.js +262 -0
- package/dist/agent/memory/dream/mode3-last-mile.js.map +1 -0
- package/dist/agent/memory/dream/mode3.d.ts +82 -0
- package/dist/agent/memory/dream/mode3.d.ts.map +1 -0
- package/dist/agent/memory/dream/mode3.js +236 -0
- package/dist/agent/memory/dream/mode3.js.map +1 -0
- package/dist/agent/memory/dream/ops.d.ts +75 -0
- package/dist/agent/memory/dream/ops.d.ts.map +1 -0
- package/dist/agent/memory/dream/ops.js +302 -0
- package/dist/agent/memory/dream/ops.js.map +1 -0
- package/dist/agent/memory/dream/proposal.d.ts +22 -0
- package/dist/agent/memory/dream/proposal.d.ts.map +1 -0
- package/dist/agent/memory/dream/proposal.js +66 -0
- package/dist/agent/memory/dream/proposal.js.map +1 -0
- package/dist/agent/memory/dream/recurrence.d.ts +38 -0
- package/dist/agent/memory/dream/recurrence.d.ts.map +1 -0
- package/dist/agent/memory/dream/recurrence.js +106 -0
- package/dist/agent/memory/dream/recurrence.js.map +1 -0
- package/dist/agent/memory/dream/salience.d.ts +10 -0
- package/dist/agent/memory/dream/salience.d.ts.map +1 -0
- package/dist/agent/memory/dream/salience.js +16 -0
- package/dist/agent/memory/dream/salience.js.map +1 -0
- package/dist/agent/memory/dream/skill-proposal-pr.d.ts +63 -0
- package/dist/agent/memory/dream/skill-proposal-pr.d.ts.map +1 -0
- package/dist/agent/memory/dream/skill-proposal-pr.js +245 -0
- package/dist/agent/memory/dream/skill-proposal-pr.js.map +1 -0
- package/dist/agent/memory/dream/supersede-apply.d.ts +40 -0
- package/dist/agent/memory/dream/supersede-apply.d.ts.map +1 -0
- package/dist/agent/memory/dream/supersede-apply.js +78 -0
- package/dist/agent/memory/dream/supersede-apply.js.map +1 -0
- package/dist/agent/memory/dream/tidy.d.ts +60 -0
- package/dist/agent/memory/dream/tidy.d.ts.map +1 -0
- package/dist/agent/memory/dream/tidy.js +96 -0
- package/dist/agent/memory/dream/tidy.js.map +1 -0
- package/dist/agent/memory/graph.d.ts +46 -0
- package/dist/agent/memory/graph.d.ts.map +1 -0
- package/dist/agent/memory/graph.js +130 -0
- package/dist/agent/memory/graph.js.map +1 -0
- package/dist/agent/memory/host-owned-files.d.ts +2 -0
- package/dist/agent/memory/host-owned-files.d.ts.map +1 -0
- package/dist/agent/memory/host-owned-files.js +4 -0
- package/dist/agent/memory/host-owned-files.js.map +1 -0
- package/dist/agent/memory/layout.d.ts +8 -0
- package/dist/agent/memory/layout.d.ts.map +1 -0
- package/dist/agent/memory/layout.js +77 -0
- package/dist/agent/memory/layout.js.map +1 -0
- package/dist/agent/memory/listing.d.ts +11 -0
- package/dist/agent/memory/listing.d.ts.map +1 -0
- package/dist/agent/memory/listing.js +169 -0
- package/dist/agent/memory/listing.js.map +1 -0
- package/dist/agent/memory/markdown.d.ts +73 -0
- package/dist/agent/memory/markdown.d.ts.map +1 -0
- package/dist/agent/memory/markdown.js +190 -0
- package/dist/agent/memory/markdown.js.map +1 -0
- package/dist/agent/memory/partition.d.ts +34 -0
- package/dist/agent/memory/partition.d.ts.map +1 -0
- package/dist/agent/memory/partition.js +41 -0
- package/dist/agent/memory/partition.js.map +1 -0
- package/dist/agent/memory/postgres.d.ts +73 -0
- package/dist/agent/memory/postgres.d.ts.map +1 -0
- package/dist/agent/memory/postgres.js +411 -0
- package/dist/agent/memory/postgres.js.map +1 -0
- package/dist/agent/memory/provenance-mark.d.ts +77 -0
- package/dist/agent/memory/provenance-mark.d.ts.map +1 -0
- package/dist/agent/memory/provenance-mark.js +276 -0
- package/dist/agent/memory/provenance-mark.js.map +1 -0
- package/dist/agent/memory/provenance.d.ts +8 -0
- package/dist/agent/memory/provenance.d.ts.map +1 -0
- package/dist/agent/memory/provenance.js +25 -0
- package/dist/agent/memory/provenance.js.map +1 -0
- package/dist/agent/memory/provider.d.ts +76 -0
- package/dist/agent/memory/provider.d.ts.map +1 -0
- package/dist/agent/memory/provider.js +96 -0
- package/dist/agent/memory/provider.js.map +1 -0
- package/dist/agent/memory/purge-redaction.d.ts +29 -0
- package/dist/agent/memory/purge-redaction.d.ts.map +1 -0
- package/dist/agent/memory/purge-redaction.js +65 -0
- package/dist/agent/memory/purge-redaction.js.map +1 -0
- package/dist/agent/memory/readonly.d.ts +25 -0
- package/dist/agent/memory/readonly.d.ts.map +1 -0
- package/dist/agent/memory/readonly.js +46 -0
- package/dist/agent/memory/readonly.js.map +1 -0
- package/dist/agent/memory/resolve.d.ts +49 -0
- package/dist/agent/memory/resolve.d.ts.map +1 -0
- package/dist/agent/memory/resolve.js +136 -0
- package/dist/agent/memory/resolve.js.map +1 -0
- package/dist/agent/memory/root-fence.d.ts +24 -0
- package/dist/agent/memory/root-fence.d.ts.map +1 -0
- package/dist/agent/memory/root-fence.js +46 -0
- package/dist/agent/memory/root-fence.js.map +1 -0
- package/dist/agent/memory/sandbox-sync.d.ts +17 -0
- package/dist/agent/memory/sandbox-sync.d.ts.map +1 -0
- package/dist/agent/memory/sandbox-sync.js +61 -0
- package/dist/agent/memory/sandbox-sync.js.map +1 -0
- package/dist/agent/memory/selection.d.ts +29 -0
- package/dist/agent/memory/selection.d.ts.map +1 -0
- package/dist/agent/memory/selection.js +82 -0
- package/dist/agent/memory/selection.js.map +1 -0
- package/dist/agent/memory/silo.d.ts +39 -0
- package/dist/agent/memory/silo.d.ts.map +1 -0
- package/dist/agent/memory/silo.js +36 -0
- package/dist/agent/memory/silo.js.map +1 -0
- package/dist/agent/memory/sqlite.d.ts +4 -0
- package/dist/agent/memory/sqlite.d.ts.map +1 -0
- package/dist/agent/memory/sqlite.js +196 -0
- package/dist/agent/memory/sqlite.js.map +1 -0
- package/dist/agent/memory/store.d.ts +36 -0
- package/dist/agent/memory/store.d.ts.map +1 -0
- package/dist/agent/memory/store.js +144 -0
- package/dist/agent/memory/store.js.map +1 -0
- package/dist/agent/memory/sync-timing.d.ts +83 -0
- package/dist/agent/memory/sync-timing.d.ts.map +1 -0
- package/dist/agent/memory/sync-timing.js +166 -0
- package/dist/agent/memory/sync-timing.js.map +1 -0
- package/dist/agent/memory/wake-delta.d.ts +96 -0
- package/dist/agent/memory/wake-delta.d.ts.map +1 -0
- package/dist/agent/memory/wake-delta.js +176 -0
- package/dist/agent/memory/wake-delta.js.map +1 -0
- package/dist/agent/memory/write-evidence.d.ts +30 -0
- package/dist/agent/memory/write-evidence.d.ts.map +1 -0
- package/dist/agent/memory/write-evidence.js +137 -0
- package/dist/agent/memory/write-evidence.js.map +1 -0
- package/dist/agent/memory/write-fence.d.ts +30 -0
- package/dist/agent/memory/write-fence.d.ts.map +1 -0
- package/dist/agent/memory/write-fence.js +123 -0
- package/dist/agent/memory/write-fence.js.map +1 -0
- package/dist/agent/memory/write-intent.d.ts +72 -0
- package/dist/agent/memory/write-intent.d.ts.map +1 -0
- package/dist/agent/memory/write-intent.js +197 -0
- package/dist/agent/memory/write-intent.js.map +1 -0
- package/dist/agent/memory/write-road.d.ts +60 -0
- package/dist/agent/memory/write-road.d.ts.map +1 -0
- package/dist/agent/memory/write-road.js +96 -0
- package/dist/agent/memory/write-road.js.map +1 -0
- package/dist/agent/model/ab-test.d.ts +132 -0
- package/dist/agent/model/ab-test.d.ts.map +1 -0
- package/dist/agent/model/ab-test.js +321 -0
- package/dist/agent/model/ab-test.js.map +1 -0
- package/dist/agent/model/call-capture.d.ts +140 -0
- package/dist/agent/model/call-capture.d.ts.map +1 -0
- package/dist/agent/model/call-capture.js +374 -0
- package/dist/agent/model/call-capture.js.map +1 -0
- package/dist/agent/model/default-model.d.ts +13 -0
- package/dist/agent/model/default-model.d.ts.map +1 -0
- package/dist/agent/model/default-model.js +58 -0
- package/dist/agent/model/default-model.js.map +1 -0
- package/dist/agent/model/model-stamp.d.ts +41 -0
- package/dist/agent/model/model-stamp.d.ts.map +1 -0
- package/dist/agent/model/model-stamp.js +160 -0
- package/dist/agent/model/model-stamp.js.map +1 -0
- package/dist/agent/model/policy.d.ts +150 -0
- package/dist/agent/model/policy.d.ts.map +1 -0
- package/dist/agent/model/policy.js +309 -0
- package/dist/agent/model/policy.js.map +1 -0
- package/dist/agent/model/routing.d.ts +210 -0
- package/dist/agent/model/routing.d.ts.map +1 -0
- package/dist/agent/model/routing.js +694 -0
- package/dist/agent/model/routing.js.map +1 -0
- package/dist/agent/model/step-boundary.d.ts +163 -0
- package/dist/agent/model/step-boundary.d.ts.map +1 -0
- package/dist/agent/model/step-boundary.js +491 -0
- package/dist/agent/model/step-boundary.js.map +1 -0
- package/dist/agent/model/stream-drop-retry.d.ts +24 -0
- package/dist/agent/model/stream-drop-retry.d.ts.map +1 -0
- package/dist/agent/model/stream-drop-retry.js +316 -0
- package/dist/agent/model/stream-drop-retry.js.map +1 -0
- package/dist/agent/model/turn-closeout.d.ts +61 -0
- package/dist/agent/model/turn-closeout.d.ts.map +1 -0
- package/dist/agent/model/turn-closeout.js +289 -0
- package/dist/agent/model/turn-closeout.js.map +1 -0
- package/dist/agent/model/turn-state.d.ts +119 -0
- package/dist/agent/model/turn-state.d.ts.map +1 -0
- package/dist/agent/model/turn-state.js +423 -0
- package/dist/agent/model/turn-state.js.map +1 -0
- package/dist/agent/model/vision.d.ts +75 -0
- package/dist/agent/model/vision.d.ts.map +1 -0
- package/dist/agent/model/vision.js +39 -0
- package/dist/agent/model/vision.js.map +1 -0
- package/dist/agent/observability/ship.d.ts +87 -0
- package/dist/agent/observability/ship.d.ts.map +1 -0
- package/dist/agent/observability/ship.js +354 -0
- package/dist/agent/observability/ship.js.map +1 -0
- package/dist/agent/observability/telemetry.d.ts +154 -0
- package/dist/agent/observability/telemetry.d.ts.map +1 -0
- package/dist/agent/observability/telemetry.js +764 -0
- package/dist/agent/observability/telemetry.js.map +1 -0
- package/dist/agent/observability/turn-clock.d.ts +41 -0
- package/dist/agent/observability/turn-clock.d.ts.map +1 -0
- package/dist/agent/observability/turn-clock.js +75 -0
- package/dist/agent/observability/turn-clock.js.map +1 -0
- package/dist/agent/onboarding/onboarding.d.ts +30 -0
- package/dist/agent/onboarding/onboarding.d.ts.map +1 -0
- package/dist/agent/onboarding/onboarding.js +94 -0
- package/dist/agent/onboarding/onboarding.js.map +1 -0
- package/dist/agent/operational/credential-grant-rows.d.ts +626 -0
- package/dist/agent/operational/credential-grant-rows.d.ts.map +1 -0
- package/dist/agent/operational/credential-grant-rows.js +634 -0
- package/dist/agent/operational/credential-grant-rows.js.map +1 -0
- package/dist/agent/operational/pglite-client.d.ts +81 -0
- package/dist/agent/operational/pglite-client.d.ts.map +1 -0
- package/dist/agent/operational/pglite-client.js +255 -0
- package/dist/agent/operational/pglite-client.js.map +1 -0
- package/dist/agent/operational/post-once.d.ts +74 -0
- package/dist/agent/operational/post-once.d.ts.map +1 -0
- package/dist/agent/operational/post-once.js +92 -0
- package/dist/agent/operational/post-once.js.map +1 -0
- package/dist/agent/operational/postgres.d.ts +55 -0
- package/dist/agent/operational/postgres.d.ts.map +1 -0
- package/dist/agent/operational/postgres.js +4052 -0
- package/dist/agent/operational/postgres.js.map +1 -0
- package/dist/agent/operational/provider.d.ts +52 -0
- package/dist/agent/operational/provider.d.ts.map +1 -0
- package/dist/agent/operational/provider.js +166 -0
- package/dist/agent/operational/provider.js.map +1 -0
- package/dist/agent/operational/sqlite.d.ts +21 -0
- package/dist/agent/operational/sqlite.d.ts.map +1 -0
- package/dist/agent/operational/sqlite.js +3170 -0
- package/dist/agent/operational/sqlite.js.map +1 -0
- package/dist/agent/operational/store.d.ts +1953 -0
- package/dist/agent/operational/store.d.ts.map +1 -0
- package/dist/agent/operational/store.js +302 -0
- package/dist/agent/operational/store.js.map +1 -0
- package/dist/agent/ops/census.d.ts +411 -0
- package/dist/agent/ops/census.d.ts.map +1 -0
- package/dist/agent/ops/census.js +701 -0
- package/dist/agent/ops/census.js.map +1 -0
- package/dist/agent/ops/probes.d.ts +20 -0
- package/dist/agent/ops/probes.d.ts.map +1 -0
- package/dist/agent/ops/probes.js +59 -0
- package/dist/agent/ops/probes.js.map +1 -0
- package/dist/agent/ops/quickstart.d.ts +53 -0
- package/dist/agent/ops/quickstart.d.ts.map +1 -0
- package/dist/agent/ops/quickstart.js +247 -0
- package/dist/agent/ops/quickstart.js.map +1 -0
- package/dist/agent/ops/server.d.ts +16 -0
- package/dist/agent/ops/server.d.ts.map +1 -0
- package/dist/agent/ops/server.js +414 -0
- package/dist/agent/ops/server.js.map +1 -0
- package/dist/agent/ops/surface-manifest.d.ts +60 -0
- package/dist/agent/ops/surface-manifest.d.ts.map +1 -0
- package/dist/agent/ops/surface-manifest.js +79 -0
- package/dist/agent/ops/surface-manifest.js.map +1 -0
- package/dist/agent/ops/two-role.d.ts +26 -0
- package/dist/agent/ops/two-role.d.ts.map +1 -0
- package/dist/agent/ops/two-role.js +71 -0
- package/dist/agent/ops/two-role.js.map +1 -0
- package/dist/agent/pages/policy-pages.d.ts +14 -0
- package/dist/agent/pages/policy-pages.d.ts.map +1 -0
- package/dist/agent/pages/policy-pages.js +69 -0
- package/dist/agent/pages/policy-pages.js.map +1 -0
- package/dist/agent/plugins/extract.d.ts +31 -0
- package/dist/agent/plugins/extract.d.ts.map +1 -0
- package/dist/agent/plugins/extract.js +328 -0
- package/dist/agent/plugins/extract.js.map +1 -0
- package/dist/agent/plugins/parse.d.ts +3 -0
- package/dist/agent/plugins/parse.d.ts.map +1 -0
- package/dist/agent/plugins/parse.js +112 -0
- package/dist/agent/plugins/parse.js.map +1 -0
- package/dist/agent/plugins/types.d.ts +105 -0
- package/dist/agent/plugins/types.d.ts.map +1 -0
- package/dist/agent/plugins/types.js +30 -0
- package/dist/agent/plugins/types.js.map +1 -0
- package/dist/agent/publish/eve-patch-pack.d.ts +210 -0
- package/dist/agent/publish/eve-patch-pack.d.ts.map +1 -0
- package/dist/agent/publish/eve-patch-pack.js +377 -0
- package/dist/agent/publish/eve-patch-pack.js.map +1 -0
- package/dist/agent/review/blast-radius.d.ts +83 -0
- package/dist/agent/review/blast-radius.d.ts.map +1 -0
- package/dist/agent/review/blast-radius.js +224 -0
- package/dist/agent/review/blast-radius.js.map +1 -0
- package/dist/agent/review/config-facts.d.ts +69 -0
- package/dist/agent/review/config-facts.d.ts.map +1 -0
- package/dist/agent/review/config-facts.js +155 -0
- package/dist/agent/review/config-facts.js.map +1 -0
- package/dist/agent/review/facts-artifact.d.ts +108 -0
- package/dist/agent/review/facts-artifact.d.ts.map +1 -0
- package/dist/agent/review/facts-artifact.js +288 -0
- package/dist/agent/review/facts-artifact.js.map +1 -0
- package/dist/agent/review/facts-cloud-status.d.ts +90 -0
- package/dist/agent/review/facts-cloud-status.d.ts.map +1 -0
- package/dist/agent/review/facts-cloud-status.js +226 -0
- package/dist/agent/review/facts-cloud-status.js.map +1 -0
- package/dist/agent/review/pr-walkthrough.d.ts +134 -0
- package/dist/agent/review/pr-walkthrough.d.ts.map +1 -0
- package/dist/agent/review/pr-walkthrough.js +641 -0
- package/dist/agent/review/pr-walkthrough.js.map +1 -0
- package/dist/agent/review/zip.d.ts +26 -0
- package/dist/agent/review/zip.d.ts.map +1 -0
- package/dist/agent/review/zip.js +147 -0
- package/dist/agent/review/zip.js.map +1 -0
- package/dist/agent/roles/role.d.ts +95 -0
- package/dist/agent/roles/role.d.ts.map +1 -0
- package/dist/agent/roles/role.js +188 -0
- package/dist/agent/roles/role.js.map +1 -0
- package/dist/agent/routines/bound.d.ts +90 -0
- package/dist/agent/routines/bound.d.ts.map +1 -0
- package/dist/agent/routines/bound.js +233 -0
- package/dist/agent/routines/bound.js.map +1 -0
- package/dist/agent/routines/check-in.d.ts +10 -0
- package/dist/agent/routines/check-in.d.ts.map +1 -0
- package/dist/agent/routines/check-in.js +50 -0
- package/dist/agent/routines/check-in.js.map +1 -0
- package/dist/agent/routines/collector.d.ts +214 -0
- package/dist/agent/routines/collector.d.ts.map +1 -0
- package/dist/agent/routines/collector.js +389 -0
- package/dist/agent/routines/collector.js.map +1 -0
- package/dist/agent/routines/declared-permissions.d.ts +302 -0
- package/dist/agent/routines/declared-permissions.d.ts.map +1 -0
- package/dist/agent/routines/declared-permissions.js +548 -0
- package/dist/agent/routines/declared-permissions.js.map +1 -0
- package/dist/agent/routines/disable-notice.d.ts +75 -0
- package/dist/agent/routines/disable-notice.d.ts.map +1 -0
- package/dist/agent/routines/disable-notice.js +152 -0
- package/dist/agent/routines/disable-notice.js.map +1 -0
- package/dist/agent/routines/entity-read.d.ts +177 -0
- package/dist/agent/routines/entity-read.d.ts.map +1 -0
- package/dist/agent/routines/entity-read.js +178 -0
- package/dist/agent/routines/entity-read.js.map +1 -0
- package/dist/agent/routines/event-authz.d.ts +76 -0
- package/dist/agent/routines/event-authz.d.ts.map +1 -0
- package/dist/agent/routines/event-authz.js +229 -0
- package/dist/agent/routines/event-authz.js.map +1 -0
- package/dist/agent/routines/event-match.d.ts +50 -0
- package/dist/agent/routines/event-match.d.ts.map +1 -0
- package/dist/agent/routines/event-match.js +190 -0
- package/dist/agent/routines/event-match.js.map +1 -0
- package/dist/agent/routines/event-model.d.ts +463 -0
- package/dist/agent/routines/event-model.d.ts.map +1 -0
- package/dist/agent/routines/event-model.js +367 -0
- package/dist/agent/routines/event-model.js.map +1 -0
- package/dist/agent/routines/events.d.ts +85 -0
- package/dist/agent/routines/events.d.ts.map +1 -0
- package/dist/agent/routines/events.js +167 -0
- package/dist/agent/routines/events.js.map +1 -0
- package/dist/agent/routines/fire-audit.d.ts +409 -0
- package/dist/agent/routines/fire-audit.d.ts.map +1 -0
- package/dist/agent/routines/fire-audit.js +571 -0
- package/dist/agent/routines/fire-audit.js.map +1 -0
- package/dist/agent/routines/fire-auth.d.ts +114 -0
- package/dist/agent/routines/fire-auth.d.ts.map +1 -0
- package/dist/agent/routines/fire-auth.js +254 -0
- package/dist/agent/routines/fire-auth.js.map +1 -0
- package/dist/agent/routines/fire-carriage.d.ts +37 -0
- package/dist/agent/routines/fire-carriage.d.ts.map +1 -0
- package/dist/agent/routines/fire-carriage.js +115 -0
- package/dist/agent/routines/fire-carriage.js.map +1 -0
- package/dist/agent/routines/fire-creator.d.ts +26 -0
- package/dist/agent/routines/fire-creator.d.ts.map +1 -0
- package/dist/agent/routines/fire-creator.js +78 -0
- package/dist/agent/routines/fire-creator.js.map +1 -0
- package/dist/agent/routines/fire-disclosure.d.ts +70 -0
- package/dist/agent/routines/fire-disclosure.d.ts.map +1 -0
- package/dist/agent/routines/fire-disclosure.js +193 -0
- package/dist/agent/routines/fire-disclosure.js.map +1 -0
- package/dist/agent/routines/fire-eligibility.d.ts +87 -0
- package/dist/agent/routines/fire-eligibility.d.ts.map +1 -0
- package/dist/agent/routines/fire-eligibility.js +220 -0
- package/dist/agent/routines/fire-eligibility.js.map +1 -0
- package/dist/agent/routines/fire-halt.d.ts +16 -0
- package/dist/agent/routines/fire-halt.d.ts.map +1 -0
- package/dist/agent/routines/fire-halt.js +49 -0
- package/dist/agent/routines/fire-halt.js.map +1 -0
- package/dist/agent/routines/fire-message.d.ts +31 -0
- package/dist/agent/routines/fire-message.d.ts.map +1 -0
- package/dist/agent/routines/fire-message.js +51 -0
- package/dist/agent/routines/fire-message.js.map +1 -0
- package/dist/agent/routines/fire-toolset.d.ts +94 -0
- package/dist/agent/routines/fire-toolset.d.ts.map +1 -0
- package/dist/agent/routines/fire-toolset.js +128 -0
- package/dist/agent/routines/fire-toolset.js.map +1 -0
- package/dist/agent/routines/fire-window.d.ts +230 -0
- package/dist/agent/routines/fire-window.d.ts.map +1 -0
- package/dist/agent/routines/fire-window.js +517 -0
- package/dist/agent/routines/fire-window.js.map +1 -0
- package/dist/agent/routines/follow-ups.d.ts +77 -0
- package/dist/agent/routines/follow-ups.d.ts.map +1 -0
- package/dist/agent/routines/follow-ups.js +134 -0
- package/dist/agent/routines/follow-ups.js.map +1 -0
- package/dist/agent/routines/gate.d.ts +133 -0
- package/dist/agent/routines/gate.d.ts.map +1 -0
- package/dist/agent/routines/gate.js +196 -0
- package/dist/agent/routines/gate.js.map +1 -0
- package/dist/agent/routines/github-entity-read.d.ts +26 -0
- package/dist/agent/routines/github-entity-read.d.ts.map +1 -0
- package/dist/agent/routines/github-entity-read.js +107 -0
- package/dist/agent/routines/github-entity-read.js.map +1 -0
- package/dist/agent/routines/github-fanout.d.ts +23 -0
- package/dist/agent/routines/github-fanout.d.ts.map +1 -0
- package/dist/agent/routines/github-fanout.js +67 -0
- package/dist/agent/routines/github-fanout.js.map +1 -0
- package/dist/agent/routines/github-normalizer.d.ts +20 -0
- package/dist/agent/routines/github-normalizer.d.ts.map +1 -0
- package/dist/agent/routines/github-normalizer.js +253 -0
- package/dist/agent/routines/github-normalizer.js.map +1 -0
- package/dist/agent/routines/ingress.d.ts +128 -0
- package/dist/agent/routines/ingress.d.ts.map +1 -0
- package/dist/agent/routines/ingress.js +703 -0
- package/dist/agent/routines/ingress.js.map +1 -0
- package/dist/agent/routines/job.d.ts +49 -0
- package/dist/agent/routines/job.d.ts.map +1 -0
- package/dist/agent/routines/job.js +122 -0
- package/dist/agent/routines/job.js.map +1 -0
- package/dist/agent/routines/jq-filter.d.ts +94 -0
- package/dist/agent/routines/jq-filter.d.ts.map +1 -0
- package/dist/agent/routines/jq-filter.js +322 -0
- package/dist/agent/routines/jq-filter.js.map +1 -0
- package/dist/agent/routines/lifecycle.d.ts +101 -0
- package/dist/agent/routines/lifecycle.d.ts.map +1 -0
- package/dist/agent/routines/lifecycle.js +231 -0
- package/dist/agent/routines/lifecycle.js.map +1 -0
- package/dist/agent/routines/match-stamp.d.ts +26 -0
- package/dist/agent/routines/match-stamp.d.ts.map +1 -0
- package/dist/agent/routines/match-stamp.js +121 -0
- package/dist/agent/routines/match-stamp.js.map +1 -0
- package/dist/agent/routines/outcome-fold.d.ts +115 -0
- package/dist/agent/routines/outcome-fold.d.ts.map +1 -0
- package/dist/agent/routines/outcome-fold.js +244 -0
- package/dist/agent/routines/outcome-fold.js.map +1 -0
- package/dist/agent/routines/partition.d.ts +5 -0
- package/dist/agent/routines/partition.d.ts.map +1 -0
- package/dist/agent/routines/partition.js +24 -0
- package/dist/agent/routines/partition.js.map +1 -0
- package/dist/agent/routines/permission-card-wait.d.ts +150 -0
- package/dist/agent/routines/permission-card-wait.d.ts.map +1 -0
- package/dist/agent/routines/permission-card-wait.js +213 -0
- package/dist/agent/routines/permission-card-wait.js.map +1 -0
- package/dist/agent/routines/permission-card.d.ts +196 -0
- package/dist/agent/routines/permission-card.d.ts.map +1 -0
- package/dist/agent/routines/permission-card.js +397 -0
- package/dist/agent/routines/permission-card.js.map +1 -0
- package/dist/agent/routines/permission-key.d.ts +25 -0
- package/dist/agent/routines/permission-key.d.ts.map +1 -0
- package/dist/agent/routines/permission-key.js +53 -0
- package/dist/agent/routines/permission-key.js.map +1 -0
- package/dist/agent/routines/permission-review.d.ts +108 -0
- package/dist/agent/routines/permission-review.d.ts.map +1 -0
- package/dist/agent/routines/permission-review.js +215 -0
- package/dist/agent/routines/permission-review.js.map +1 -0
- package/dist/agent/routines/policy.d.ts +146 -0
- package/dist/agent/routines/policy.d.ts.map +1 -0
- package/dist/agent/routines/policy.js +241 -0
- package/dist/agent/routines/policy.js.map +1 -0
- package/dist/agent/routines/pre-fire.d.ts +46 -0
- package/dist/agent/routines/pre-fire.d.ts.map +1 -0
- package/dist/agent/routines/pre-fire.js +111 -0
- package/dist/agent/routines/pre-fire.js.map +1 -0
- package/dist/agent/routines/provider-events.d.ts +115 -0
- package/dist/agent/routines/provider-events.d.ts.map +1 -0
- package/dist/agent/routines/provider-events.js +307 -0
- package/dist/agent/routines/provider-events.js.map +1 -0
- package/dist/agent/routines/report.d.ts +33 -0
- package/dist/agent/routines/report.d.ts.map +1 -0
- package/dist/agent/routines/report.js +122 -0
- package/dist/agent/routines/report.js.map +1 -0
- package/dist/agent/routines/routine.d.ts +774 -0
- package/dist/agent/routines/routine.d.ts.map +1 -0
- package/dist/agent/routines/routine.js +385 -0
- package/dist/agent/routines/routine.js.map +1 -0
- package/dist/agent/routines/schedule.d.ts +70 -0
- package/dist/agent/routines/schedule.d.ts.map +1 -0
- package/dist/agent/routines/schedule.js +187 -0
- package/dist/agent/routines/schedule.js.map +1 -0
- package/dist/agent/routines/scheme-name.d.ts +43 -0
- package/dist/agent/routines/scheme-name.d.ts.map +1 -0
- package/dist/agent/routines/scheme-name.js +73 -0
- package/dist/agent/routines/scheme-name.js.map +1 -0
- package/dist/agent/routines/stall.d.ts +46 -0
- package/dist/agent/routines/stall.d.ts.map +1 -0
- package/dist/agent/routines/stall.js +143 -0
- package/dist/agent/routines/stall.js.map +1 -0
- package/dist/agent/routines/store.d.ts +47 -0
- package/dist/agent/routines/store.d.ts.map +1 -0
- package/dist/agent/routines/store.js +82 -0
- package/dist/agent/routines/store.js.map +1 -0
- package/dist/agent/routines/watch.d.ts +134 -0
- package/dist/agent/routines/watch.d.ts.map +1 -0
- package/dist/agent/routines/watch.js +266 -0
- package/dist/agent/routines/watch.js.map +1 -0
- package/dist/agent/sandbox/backend-select.d.ts +19 -0
- package/dist/agent/sandbox/backend-select.d.ts.map +1 -0
- package/dist/agent/sandbox/backend-select.js +46 -0
- package/dist/agent/sandbox/backend-select.js.map +1 -0
- package/dist/agent/sandbox/vercel-create.d.ts +99 -0
- package/dist/agent/sandbox/vercel-create.d.ts.map +1 -0
- package/dist/agent/sandbox/vercel-create.js +151 -0
- package/dist/agent/sandbox/vercel-create.js.map +1 -0
- package/dist/agent/scaffold/app-root.d.ts +18 -0
- package/dist/agent/scaffold/app-root.d.ts.map +1 -0
- package/dist/agent/scaffold/app-root.js +97 -0
- package/dist/agent/scaffold/app-root.js.map +1 -0
- package/dist/agent/scaffold/roster-config.d.ts +130 -0
- package/dist/agent/scaffold/roster-config.d.ts.map +1 -0
- package/dist/agent/scaffold/roster-config.js +46 -0
- package/dist/agent/scaffold/roster-config.js.map +1 -0
- package/dist/agent/scaffold/roster-fs.d.ts +45 -0
- package/dist/agent/scaffold/roster-fs.d.ts.map +1 -0
- package/dist/agent/scaffold/roster-fs.js +195 -0
- package/dist/agent/scaffold/roster-fs.js.map +1 -0
- package/dist/agent/scaffold/roster-plan.d.ts +167 -0
- package/dist/agent/scaffold/roster-plan.d.ts.map +1 -0
- package/dist/agent/scaffold/roster-plan.js +668 -0
- package/dist/agent/scaffold/roster-plan.js.map +1 -0
- package/dist/agent/scaffold/templates.d.ts +13 -0
- package/dist/agent/scaffold/templates.d.ts.map +1 -0
- package/dist/agent/scaffold/templates.js +73 -0
- package/dist/agent/scaffold/templates.js.map +1 -0
- package/dist/agent/scaffold/tool-roster-read.d.ts +24 -0
- package/dist/agent/scaffold/tool-roster-read.d.ts.map +1 -0
- package/dist/agent/scaffold/tool-roster-read.js +68 -0
- package/dist/agent/scaffold/tool-roster-read.js.map +1 -0
- package/dist/agent/scaffold/tool-roster.d.ts +90 -0
- package/dist/agent/scaffold/tool-roster.d.ts.map +1 -0
- package/dist/agent/scaffold/tool-roster.js +128 -0
- package/dist/agent/scaffold/tool-roster.js.map +1 -0
- package/dist/agent/schedules/directory-sync.d.ts +6 -0
- package/dist/agent/schedules/directory-sync.d.ts.map +1 -0
- package/dist/agent/schedules/directory-sync.js +36 -0
- package/dist/agent/schedules/directory-sync.js.map +1 -0
- package/dist/agent/schedules/dispatch.d.ts +34 -0
- package/dist/agent/schedules/dispatch.d.ts.map +1 -0
- package/dist/agent/schedules/dispatch.js +749 -0
- package/dist/agent/schedules/dispatch.js.map +1 -0
- package/dist/agent/schedules/dream-mode3.d.ts +28 -0
- package/dist/agent/schedules/dream-mode3.d.ts.map +1 -0
- package/dist/agent/schedules/dream-mode3.js +261 -0
- package/dist/agent/schedules/dream-mode3.js.map +1 -0
- package/dist/agent/schedules/routine-dispatch.d.ts +125 -0
- package/dist/agent/schedules/routine-dispatch.d.ts.map +1 -0
- package/dist/agent/schedules/routine-dispatch.js +139 -0
- package/dist/agent/schedules/routine-dispatch.js.map +1 -0
- package/dist/agent/schedules/tidy.d.ts +39 -0
- package/dist/agent/schedules/tidy.d.ts.map +1 -0
- package/dist/agent/schedules/tidy.js +292 -0
- package/dist/agent/schedules/tidy.js.map +1 -0
- package/dist/agent/scm/app.d.ts +55 -0
- package/dist/agent/scm/app.d.ts.map +1 -0
- package/dist/agent/scm/app.js +120 -0
- package/dist/agent/scm/app.js.map +1 -0
- package/dist/agent/scm/broker-audit.d.ts +35 -0
- package/dist/agent/scm/broker-audit.d.ts.map +1 -0
- package/dist/agent/scm/broker-audit.js +94 -0
- package/dist/agent/scm/broker-audit.js.map +1 -0
- package/dist/agent/scm/broker.d.ts +56 -0
- package/dist/agent/scm/broker.d.ts.map +1 -0
- package/dist/agent/scm/broker.js +113 -0
- package/dist/agent/scm/broker.js.map +1 -0
- package/dist/agent/scm/capability-fit.d.ts +59 -0
- package/dist/agent/scm/capability-fit.d.ts.map +1 -0
- package/dist/agent/scm/capability-fit.js +122 -0
- package/dist/agent/scm/capability-fit.js.map +1 -0
- package/dist/agent/scm/config-repo-token.d.ts +3 -0
- package/dist/agent/scm/config-repo-token.d.ts.map +1 -0
- package/dist/agent/scm/config-repo-token.js +43 -0
- package/dist/agent/scm/config-repo-token.js.map +1 -0
- package/dist/agent/scm/config.d.ts +3 -0
- package/dist/agent/scm/config.d.ts.map +1 -0
- package/dist/agent/scm/config.js +36 -0
- package/dist/agent/scm/config.js.map +1 -0
- package/dist/agent/scm/contents.d.ts +54 -0
- package/dist/agent/scm/contents.d.ts.map +1 -0
- package/dist/agent/scm/contents.js +117 -0
- package/dist/agent/scm/contents.js.map +1 -0
- package/dist/agent/scm/git.d.ts +157 -0
- package/dist/agent/scm/git.d.ts.map +1 -0
- package/dist/agent/scm/git.js +318 -0
- package/dist/agent/scm/git.js.map +1 -0
- package/dist/agent/scm/github-acting-identity.d.ts +38 -0
- package/dist/agent/scm/github-acting-identity.d.ts.map +1 -0
- package/dist/agent/scm/github-acting-identity.js +121 -0
- package/dist/agent/scm/github-acting-identity.js.map +1 -0
- package/dist/agent/scm/github-search.d.ts +23 -0
- package/dist/agent/scm/github-search.d.ts.map +1 -0
- package/dist/agent/scm/github-search.js +122 -0
- package/dist/agent/scm/github-search.js.map +1 -0
- package/dist/agent/scm/github-work.d.ts +17 -0
- package/dist/agent/scm/github-work.d.ts.map +1 -0
- package/dist/agent/scm/github-work.js +43 -0
- package/dist/agent/scm/github-work.js.map +1 -0
- package/dist/agent/scm/installations.d.ts +46 -0
- package/dist/agent/scm/installations.d.ts.map +1 -0
- package/dist/agent/scm/installations.js +144 -0
- package/dist/agent/scm/installations.js.map +1 -0
- package/dist/agent/scm/issue-actions.d.ts +41 -0
- package/dist/agent/scm/issue-actions.d.ts.map +1 -0
- package/dist/agent/scm/issue-actions.js +173 -0
- package/dist/agent/scm/issue-actions.js.map +1 -0
- package/dist/agent/scm/mint.d.ts +76 -0
- package/dist/agent/scm/mint.d.ts.map +1 -0
- package/dist/agent/scm/mint.js +253 -0
- package/dist/agent/scm/mint.js.map +1 -0
- package/dist/agent/scm/pr-activity.d.ts +50 -0
- package/dist/agent/scm/pr-activity.d.ts.map +1 -0
- package/dist/agent/scm/pr-activity.js +102 -0
- package/dist/agent/scm/pr-activity.js.map +1 -0
- package/dist/agent/scm/pr-diff.d.ts +61 -0
- package/dist/agent/scm/pr-diff.d.ts.map +1 -0
- package/dist/agent/scm/pr-diff.js +104 -0
- package/dist/agent/scm/pr-diff.js.map +1 -0
- package/dist/agent/scm/pr-feedback.d.ts +87 -0
- package/dist/agent/scm/pr-feedback.d.ts.map +1 -0
- package/dist/agent/scm/pr-feedback.js +230 -0
- package/dist/agent/scm/pr-feedback.js.map +1 -0
- package/dist/agent/scm/pr-status.d.ts +120 -0
- package/dist/agent/scm/pr-status.d.ts.map +1 -0
- package/dist/agent/scm/pr-status.js +199 -0
- package/dist/agent/scm/pr-status.js.map +1 -0
- package/dist/agent/scm/pr-watch.d.ts +26 -0
- package/dist/agent/scm/pr-watch.d.ts.map +1 -0
- package/dist/agent/scm/pr-watch.js +165 -0
- package/dist/agent/scm/pr-watch.js.map +1 -0
- package/dist/agent/scm/pr.d.ts +42 -0
- package/dist/agent/scm/pr.d.ts.map +1 -0
- package/dist/agent/scm/pr.js +73 -0
- package/dist/agent/scm/pr.js.map +1 -0
- package/dist/agent/scm/provider.d.ts +13 -0
- package/dist/agent/scm/provider.d.ts.map +1 -0
- package/dist/agent/scm/provider.js +39 -0
- package/dist/agent/scm/provider.js.map +1 -0
- package/dist/agent/scm/refs.d.ts +65 -0
- package/dist/agent/scm/refs.d.ts.map +1 -0
- package/dist/agent/scm/refs.js +89 -0
- package/dist/agent/scm/refs.js.map +1 -0
- package/dist/agent/scm/repo-skills.d.ts +69 -0
- package/dist/agent/scm/repo-skills.d.ts.map +1 -0
- package/dist/agent/scm/repo-skills.js +170 -0
- package/dist/agent/scm/repo-skills.js.map +1 -0
- package/dist/agent/scm/types.d.ts +40 -0
- package/dist/agent/scm/types.d.ts.map +1 -0
- package/dist/agent/scm/types.js +9 -0
- package/dist/agent/scm/types.js.map +1 -0
- package/dist/agent/scm/write-token.d.ts +10 -0
- package/dist/agent/scm/write-token.d.ts.map +1 -0
- package/dist/agent/scm/write-token.js +40 -0
- package/dist/agent/scm/write-token.js.map +1 -0
- package/dist/agent/settings/settings.d.ts +935 -0
- package/dist/agent/settings/settings.d.ts.map +1 -0
- package/dist/agent/settings/settings.js +1104 -0
- package/dist/agent/settings/settings.js.map +1 -0
- package/dist/agent/skills/domain-skills.d.ts +61 -0
- package/dist/agent/skills/domain-skills.d.ts.map +1 -0
- package/dist/agent/skills/domain-skills.js +174 -0
- package/dist/agent/skills/domain-skills.js.map +1 -0
- package/dist/agent/skills/scoped.d.ts +21 -0
- package/dist/agent/skills/scoped.d.ts.map +1 -0
- package/dist/agent/skills/scoped.js +152 -0
- package/dist/agent/skills/scoped.js.map +1 -0
- package/dist/agent/spend/bypass.d.ts +30 -0
- package/dist/agent/spend/bypass.d.ts.map +1 -0
- package/dist/agent/spend/bypass.js +117 -0
- package/dist/agent/spend/bypass.js.map +1 -0
- package/dist/agent/spend/caps.d.ts +173 -0
- package/dist/agent/spend/caps.d.ts.map +1 -0
- package/dist/agent/spend/caps.js +323 -0
- package/dist/agent/spend/caps.js.map +1 -0
- package/dist/agent/spend/check.d.ts +54 -0
- package/dist/agent/spend/check.d.ts.map +1 -0
- package/dist/agent/spend/check.js +157 -0
- package/dist/agent/spend/check.js.map +1 -0
- package/dist/agent/spend/checkpoint.d.ts +158 -0
- package/dist/agent/spend/checkpoint.d.ts.map +1 -0
- package/dist/agent/spend/checkpoint.js +559 -0
- package/dist/agent/spend/checkpoint.js.map +1 -0
- package/dist/agent/spend/dm-mask.d.ts +61 -0
- package/dist/agent/spend/dm-mask.d.ts.map +1 -0
- package/dist/agent/spend/dm-mask.js +113 -0
- package/dist/agent/spend/dm-mask.js.map +1 -0
- package/dist/agent/spend/ingress-gate.d.ts +143 -0
- package/dist/agent/spend/ingress-gate.d.ts.map +1 -0
- package/dist/agent/spend/ingress-gate.js +217 -0
- package/dist/agent/spend/ingress-gate.js.map +1 -0
- package/dist/agent/spend/pricing.d.ts +251 -0
- package/dist/agent/spend/pricing.d.ts.map +1 -0
- package/dist/agent/spend/pricing.js +454 -0
- package/dist/agent/spend/pricing.js.map +1 -0
- package/dist/agent/spend/reporting.d.ts +313 -0
- package/dist/agent/spend/reporting.d.ts.map +1 -0
- package/dist/agent/spend/reporting.js +674 -0
- package/dist/agent/spend/reporting.js.map +1 -0
- package/dist/agent/spend/sandbox-pricing.d.ts +19 -0
- package/dist/agent/spend/sandbox-pricing.d.ts.map +1 -0
- package/dist/agent/spend/sandbox-pricing.js +50 -0
- package/dist/agent/spend/sandbox-pricing.js.map +1 -0
- package/dist/agent/spend/spend.d.ts +283 -0
- package/dist/agent/spend/spend.d.ts.map +1 -0
- package/dist/agent/spend/spend.js +255 -0
- package/dist/agent/spend/spend.js.map +1 -0
- package/dist/agent/spend/stack-pricing.d.ts +94 -0
- package/dist/agent/spend/stack-pricing.d.ts.map +1 -0
- package/dist/agent/spend/stack-pricing.js +123 -0
- package/dist/agent/spend/stack-pricing.js.map +1 -0
- package/dist/agent/spend/store.d.ts +139 -0
- package/dist/agent/spend/store.d.ts.map +1 -0
- package/dist/agent/spend/store.js +180 -0
- package/dist/agent/spend/store.js.map +1 -0
- package/dist/agent/spend/subagent-runs.d.ts +79 -0
- package/dist/agent/spend/subagent-runs.d.ts.map +1 -0
- package/dist/agent/spend/subagent-runs.js +124 -0
- package/dist/agent/spend/subagent-runs.js.map +1 -0
- package/dist/agent/spend/usage-events.d.ts +79 -0
- package/dist/agent/spend/usage-events.d.ts.map +1 -0
- package/dist/agent/spend/usage-events.js +132 -0
- package/dist/agent/spend/usage-events.js.map +1 -0
- package/dist/agent/stall/bash-hang-guard.d.ts +133 -0
- package/dist/agent/stall/bash-hang-guard.d.ts.map +1 -0
- package/dist/agent/stall/bash-hang-guard.js +303 -0
- package/dist/agent/stall/bash-hang-guard.js.map +1 -0
- package/dist/agent/stall/guard.d.ts +68 -0
- package/dist/agent/stall/guard.d.ts.map +1 -0
- package/dist/agent/stall/guard.js +248 -0
- package/dist/agent/stall/guard.js.map +1 -0
- package/dist/agent/status/status.d.ts +32 -0
- package/dist/agent/status/status.d.ts.map +1 -0
- package/dist/agent/status/status.js +116 -0
- package/dist/agent/status/status.js.map +1 -0
- package/dist/agent/subagents/contracts.d.ts +82 -0
- package/dist/agent/subagents/contracts.d.ts.map +1 -0
- package/dist/agent/subagents/contracts.js +114 -0
- package/dist/agent/subagents/contracts.js.map +1 -0
- package/dist/agent/subagents/declared.d.ts +44 -0
- package/dist/agent/subagents/declared.d.ts.map +1 -0
- package/dist/agent/subagents/declared.js +152 -0
- package/dist/agent/subagents/declared.js.map +1 -0
- package/dist/agent/testing/driver-allowlist.d.ts +103 -0
- package/dist/agent/testing/driver-allowlist.d.ts.map +1 -0
- package/dist/agent/testing/driver-allowlist.js +193 -0
- package/dist/agent/testing/driver-allowlist.js.map +1 -0
- package/dist/agent/tools/add_label.d.ts +52 -0
- package/dist/agent/tools/add_label.d.ts.map +1 -0
- package/dist/agent/tools/add_label.js +63 -0
- package/dist/agent/tools/add_label.js.map +1 -0
- package/dist/agent/tools/add_routine_rule.d.ts +38 -0
- package/dist/agent/tools/add_routine_rule.d.ts.map +1 -0
- package/dist/agent/tools/add_routine_rule.js +182 -0
- package/dist/agent/tools/add_routine_rule.js.map +1 -0
- package/dist/agent/tools/agent_version.d.ts +17 -0
- package/dist/agent/tools/agent_version.d.ts.map +1 -0
- package/dist/agent/tools/agent_version.js +38 -0
- package/dist/agent/tools/agent_version.js.map +1 -0
- package/dist/agent/tools/assign.d.ts +74 -0
- package/dist/agent/tools/assign.d.ts.map +1 -0
- package/dist/agent/tools/assign.js +167 -0
- package/dist/agent/tools/assign.js.map +1 -0
- package/dist/agent/tools/aws.d.ts +33 -0
- package/dist/agent/tools/aws.d.ts.map +1 -0
- package/dist/agent/tools/aws.js +164 -0
- package/dist/agent/tools/aws.js.map +1 -0
- package/dist/agent/tools/browser_tools.d.ts +3 -0
- package/dist/agent/tools/browser_tools.d.ts.map +1 -0
- package/dist/agent/tools/browser_tools.js +21 -0
- package/dist/agent/tools/browser_tools.js.map +1 -0
- package/dist/agent/tools/cancel_routine.d.ts +27 -0
- package/dist/agent/tools/cancel_routine.d.ts.map +1 -0
- package/dist/agent/tools/cancel_routine.js +123 -0
- package/dist/agent/tools/cancel_routine.js.map +1 -0
- package/dist/agent/tools/capture_events.d.ts +17 -0
- package/dist/agent/tools/capture_events.d.ts.map +1 -0
- package/dist/agent/tools/capture_events.js +51 -0
- package/dist/agent/tools/capture_events.js.map +1 -0
- package/dist/agent/tools/check_pr_status.d.ts +52 -0
- package/dist/agent/tools/check_pr_status.d.ts.map +1 -0
- package/dist/agent/tools/check_pr_status.js +66 -0
- package/dist/agent/tools/check_pr_status.js.map +1 -0
- package/dist/agent/tools/checkout_repo.d.ts +3 -0
- package/dist/agent/tools/checkout_repo.d.ts.map +1 -0
- package/dist/agent/tools/checkout_repo.js +158 -0
- package/dist/agent/tools/checkout_repo.js.map +1 -0
- package/dist/agent/tools/clear_connector_override.d.ts +48 -0
- package/dist/agent/tools/clear_connector_override.d.ts.map +1 -0
- package/dist/agent/tools/clear_connector_override.js +134 -0
- package/dist/agent/tools/clear_connector_override.js.map +1 -0
- package/dist/agent/tools/clear_spend_limit.d.ts +51 -0
- package/dist/agent/tools/clear_spend_limit.d.ts.map +1 -0
- package/dist/agent/tools/clear_spend_limit.js +162 -0
- package/dist/agent/tools/clear_spend_limit.js.map +1 -0
- package/dist/agent/tools/complete_job.d.ts +15 -0
- package/dist/agent/tools/complete_job.d.ts.map +1 -0
- package/dist/agent/tools/complete_job.js +59 -0
- package/dist/agent/tools/complete_job.js.map +1 -0
- package/dist/agent/tools/complete_thread.d.ts +8 -0
- package/dist/agent/tools/complete_thread.d.ts.map +1 -0
- package/dist/agent/tools/complete_thread.js +125 -0
- package/dist/agent/tools/complete_thread.js.map +1 -0
- package/dist/agent/tools/confirm_link.d.ts +84 -0
- package/dist/agent/tools/confirm_link.d.ts.map +1 -0
- package/dist/agent/tools/confirm_link.js +437 -0
- package/dist/agent/tools/confirm_link.js.map +1 -0
- package/dist/agent/tools/connector.d.ts +34 -0
- package/dist/agent/tools/connector.d.ts.map +1 -0
- package/dist/agent/tools/connector.js +212 -0
- package/dist/agent/tools/connector.js.map +1 -0
- package/dist/agent/tools/create_agent.d.ts +77 -0
- package/dist/agent/tools/create_agent.d.ts.map +1 -0
- package/dist/agent/tools/create_agent.js +261 -0
- package/dist/agent/tools/create_agent.js.map +1 -0
- package/dist/agent/tools/create_routine.d.ts +95 -0
- package/dist/agent/tools/create_routine.d.ts.map +1 -0
- package/dist/agent/tools/create_routine.js +437 -0
- package/dist/agent/tools/create_routine.js.map +1 -0
- package/dist/agent/tools/create_skill.d.ts +3 -0
- package/dist/agent/tools/create_skill.d.ts.map +1 -0
- package/dist/agent/tools/create_skill.js +157 -0
- package/dist/agent/tools/create_skill.js.map +1 -0
- package/dist/agent/tools/create_ticket.d.ts +70 -0
- package/dist/agent/tools/create_ticket.d.ts.map +1 -0
- package/dist/agent/tools/create_ticket.js +171 -0
- package/dist/agent/tools/create_ticket.js.map +1 -0
- package/dist/agent/tools/declare_webhook.d.ts +70 -0
- package/dist/agent/tools/declare_webhook.d.ts.map +1 -0
- package/dist/agent/tools/declare_webhook.js +321 -0
- package/dist/agent/tools/declare_webhook.js.map +1 -0
- package/dist/agent/tools/delete_skill.d.ts +3 -0
- package/dist/agent/tools/delete_skill.d.ts.map +1 -0
- package/dist/agent/tools/delete_skill.js +125 -0
- package/dist/agent/tools/delete_skill.js.map +1 -0
- package/dist/agent/tools/describe_image.d.ts +72 -0
- package/dist/agent/tools/describe_image.d.ts.map +1 -0
- package/dist/agent/tools/describe_image.js +269 -0
- package/dist/agent/tools/describe_image.js.map +1 -0
- package/dist/agent/tools/dm_person.d.ts +43 -0
- package/dist/agent/tools/dm_person.d.ts.map +1 -0
- package/dist/agent/tools/dm_person.js +190 -0
- package/dist/agent/tools/dm_person.js.map +1 -0
- package/dist/agent/tools/edit_reply.d.ts +56 -0
- package/dist/agent/tools/edit_reply.d.ts.map +1 -0
- package/dist/agent/tools/edit_reply.js +169 -0
- package/dist/agent/tools/edit_reply.js.map +1 -0
- package/dist/agent/tools/edit_routine.d.ts +32 -0
- package/dist/agent/tools/edit_routine.d.ts.map +1 -0
- package/dist/agent/tools/edit_routine.js +143 -0
- package/dist/agent/tools/edit_routine.js.map +1 -0
- package/dist/agent/tools/enable_routine.d.ts +30 -0
- package/dist/agent/tools/enable_routine.d.ts.map +1 -0
- package/dist/agent/tools/enable_routine.js +148 -0
- package/dist/agent/tools/enable_routine.js.map +1 -0
- package/dist/agent/tools/explain_permission.d.ts +27 -0
- package/dist/agent/tools/explain_permission.d.ts.map +1 -0
- package/dist/agent/tools/explain_permission.js +51 -0
- package/dist/agent/tools/explain_permission.js.map +1 -0
- package/dist/agent/tools/get_pr_feedback.d.ts +184 -0
- package/dist/agent/tools/get_pr_feedback.d.ts.map +1 -0
- package/dist/agent/tools/get_pr_feedback.js +77 -0
- package/dist/agent/tools/get_pr_feedback.js.map +1 -0
- package/dist/agent/tools/grant_tools.d.ts +27 -0
- package/dist/agent/tools/grant_tools.d.ts.map +1 -0
- package/dist/agent/tools/grant_tools.js +417 -0
- package/dist/agent/tools/grant_tools.js.map +1 -0
- package/dist/agent/tools/halt.d.ts +71 -0
- package/dist/agent/tools/halt.d.ts.map +1 -0
- package/dist/agent/tools/halt.js +157 -0
- package/dist/agent/tools/halt.js.map +1 -0
- package/dist/agent/tools/link_identity.d.ts +48 -0
- package/dist/agent/tools/link_identity.d.ts.map +1 -0
- package/dist/agent/tools/link_identity.js +283 -0
- package/dist/agent/tools/link_identity.js.map +1 -0
- package/dist/agent/tools/list_recent_events.d.ts +19 -0
- package/dist/agent/tools/list_recent_events.d.ts.map +1 -0
- package/dist/agent/tools/list_recent_events.js +55 -0
- package/dist/agent/tools/list_recent_events.js.map +1 -0
- package/dist/agent/tools/list_repos.d.ts +11 -0
- package/dist/agent/tools/list_repos.d.ts.map +1 -0
- package/dist/agent/tools/list_repos.js +22 -0
- package/dist/agent/tools/list_repos.js.map +1 -0
- package/dist/agent/tools/list_routines.d.ts +88 -0
- package/dist/agent/tools/list_routines.d.ts.map +1 -0
- package/dist/agent/tools/list_routines.js +143 -0
- package/dist/agent/tools/list_routines.js.map +1 -0
- package/dist/agent/tools/list_skills.d.ts +21 -0
- package/dist/agent/tools/list_skills.d.ts.map +1 -0
- package/dist/agent/tools/list_skills.js +34 -0
- package/dist/agent/tools/list_skills.js.map +1 -0
- package/dist/agent/tools/list_webhooks.d.ts +27 -0
- package/dist/agent/tools/list_webhooks.d.ts.map +1 -0
- package/dist/agent/tools/list_webhooks.js +66 -0
- package/dist/agent/tools/list_webhooks.js.map +1 -0
- package/dist/agent/tools/memory_admin_list.d.ts +10 -0
- package/dist/agent/tools/memory_admin_list.d.ts.map +1 -0
- package/dist/agent/tools/memory_admin_list.js +72 -0
- package/dist/agent/tools/memory_admin_list.js.map +1 -0
- package/dist/agent/tools/memory_admin_read.d.ts +17 -0
- package/dist/agent/tools/memory_admin_read.d.ts.map +1 -0
- package/dist/agent/tools/memory_admin_read.js +85 -0
- package/dist/agent/tools/memory_admin_read.js.map +1 -0
- package/dist/agent/tools/message_thread_seat.d.ts +7 -0
- package/dist/agent/tools/message_thread_seat.d.ts.map +1 -0
- package/dist/agent/tools/message_thread_seat.js +133 -0
- package/dist/agent/tools/message_thread_seat.js.map +1 -0
- package/dist/agent/tools/no_reply.d.ts +31 -0
- package/dist/agent/tools/no_reply.d.ts.map +1 -0
- package/dist/agent/tools/no_reply.js +251 -0
- package/dist/agent/tools/no_reply.js.map +1 -0
- package/dist/agent/tools/open_pull_request.d.ts +23 -0
- package/dist/agent/tools/open_pull_request.d.ts.map +1 -0
- package/dist/agent/tools/open_pull_request.js +323 -0
- package/dist/agent/tools/open_pull_request.js.map +1 -0
- package/dist/agent/tools/permission_fit_report.d.ts +63 -0
- package/dist/agent/tools/permission_fit_report.d.ts.map +1 -0
- package/dist/agent/tools/permission_fit_report.js +173 -0
- package/dist/agent/tools/permission_fit_report.js.map +1 -0
- package/dist/agent/tools/post_file.d.ts +7 -0
- package/dist/agent/tools/post_file.d.ts.map +1 -0
- package/dist/agent/tools/post_file.js +372 -0
- package/dist/agent/tools/post_file.js.map +1 -0
- package/dist/agent/tools/post_message.d.ts +32 -0
- package/dist/agent/tools/post_message.d.ts.map +1 -0
- package/dist/agent/tools/post_message.js +158 -0
- package/dist/agent/tools/post_message.js.map +1 -0
- package/dist/agent/tools/post_pr_walkthrough.d.ts +126 -0
- package/dist/agent/tools/post_pr_walkthrough.d.ts.map +1 -0
- package/dist/agent/tools/post_pr_walkthrough.js +200 -0
- package/dist/agent/tools/post_pr_walkthrough.js.map +1 -0
- package/dist/agent/tools/purge_memory.d.ts +105 -0
- package/dist/agent/tools/purge_memory.d.ts.map +1 -0
- package/dist/agent/tools/purge_memory.js +271 -0
- package/dist/agent/tools/purge_memory.js.map +1 -0
- package/dist/agent/tools/query_analytics.d.ts +59 -0
- package/dist/agent/tools/query_analytics.d.ts.map +1 -0
- package/dist/agent/tools/query_analytics.js +80 -0
- package/dist/agent/tools/query_analytics.js.map +1 -0
- package/dist/agent/tools/react.d.ts +23 -0
- package/dist/agent/tools/react.d.ts.map +1 -0
- package/dist/agent/tools/react.js +185 -0
- package/dist/agent/tools/react.js.map +1 -0
- package/dist/agent/tools/read_channel.d.ts +28 -0
- package/dist/agent/tools/read_channel.d.ts.map +1 -0
- package/dist/agent/tools/read_channel.js +118 -0
- package/dist/agent/tools/read_channel.js.map +1 -0
- package/dist/agent/tools/read_docs.d.ts +27 -0
- package/dist/agent/tools/read_docs.d.ts.map +1 -0
- package/dist/agent/tools/read_docs.js +43 -0
- package/dist/agent/tools/read_docs.js.map +1 -0
- package/dist/agent/tools/read_file_upload.d.ts +32 -0
- package/dist/agent/tools/read_file_upload.d.ts.map +1 -0
- package/dist/agent/tools/read_file_upload.js +175 -0
- package/dist/agent/tools/read_file_upload.js.map +1 -0
- package/dist/agent/tools/read_routine_transcript.d.ts +31 -0
- package/dist/agent/tools/read_routine_transcript.d.ts.map +1 -0
- package/dist/agent/tools/read_routine_transcript.js +79 -0
- package/dist/agent/tools/read_routine_transcript.js.map +1 -0
- package/dist/agent/tools/read_thread.d.ts +29 -0
- package/dist/agent/tools/read_thread.d.ts.map +1 -0
- package/dist/agent/tools/read_thread.js +100 -0
- package/dist/agent/tools/read_thread.js.map +1 -0
- package/dist/agent/tools/read_thread_seat.d.ts +7 -0
- package/dist/agent/tools/read_thread_seat.d.ts.map +1 -0
- package/dist/agent/tools/read_thread_seat.js +84 -0
- package/dist/agent/tools/read_thread_seat.js.map +1 -0
- package/dist/agent/tools/read_webhook_history.d.ts +17 -0
- package/dist/agent/tools/read_webhook_history.d.ts.map +1 -0
- package/dist/agent/tools/read_webhook_history.js +45 -0
- package/dist/agent/tools/read_webhook_history.js.map +1 -0
- package/dist/agent/tools/read_work_channel.d.ts +26 -0
- package/dist/agent/tools/read_work_channel.d.ts.map +1 -0
- package/dist/agent/tools/read_work_channel.js +108 -0
- package/dist/agent/tools/read_work_channel.js.map +1 -0
- package/dist/agent/tools/read_work_thread.d.ts +27 -0
- package/dist/agent/tools/read_work_thread.d.ts.map +1 -0
- package/dist/agent/tools/read_work_thread.js +89 -0
- package/dist/agent/tools/read_work_thread.js.map +1 -0
- package/dist/agent/tools/record_follow_up.d.ts +19 -0
- package/dist/agent/tools/record_follow_up.d.ts.map +1 -0
- package/dist/agent/tools/record_follow_up.js +74 -0
- package/dist/agent/tools/record_follow_up.js.map +1 -0
- package/dist/agent/tools/record_job_state.d.ts +15 -0
- package/dist/agent/tools/record_job_state.d.ts.map +1 -0
- package/dist/agent/tools/record_job_state.js +47 -0
- package/dist/agent/tools/record_job_state.js.map +1 -0
- package/dist/agent/tools/record_watch_state.d.ts +15 -0
- package/dist/agent/tools/record_watch_state.d.ts.map +1 -0
- package/dist/agent/tools/record_watch_state.js +45 -0
- package/dist/agent/tools/record_watch_state.js.map +1 -0
- package/dist/agent/tools/remove_routine_rule.d.ts +32 -0
- package/dist/agent/tools/remove_routine_rule.d.ts.map +1 -0
- package/dist/agent/tools/remove_routine_rule.js +142 -0
- package/dist/agent/tools/remove_routine_rule.js.map +1 -0
- package/dist/agent/tools/reply.d.ts +73 -0
- package/dist/agent/tools/reply.d.ts.map +1 -0
- package/dist/agent/tools/reply.js +664 -0
- package/dist/agent/tools/reply.js.map +1 -0
- package/dist/agent/tools/report_run_failed.d.ts +17 -0
- package/dist/agent/tools/report_run_failed.d.ts.map +1 -0
- package/dist/agent/tools/report_run_failed.js +71 -0
- package/dist/agent/tools/report_run_failed.js.map +1 -0
- package/dist/agent/tools/request_access.d.ts +118 -0
- package/dist/agent/tools/request_access.d.ts.map +1 -0
- package/dist/agent/tools/request_access.js +408 -0
- package/dist/agent/tools/request_access.js.map +1 -0
- package/dist/agent/tools/request_credential_grant.d.ts +101 -0
- package/dist/agent/tools/request_credential_grant.d.ts.map +1 -0
- package/dist/agent/tools/request_credential_grant.js +525 -0
- package/dist/agent/tools/request_credential_grant.js.map +1 -0
- package/dist/agent/tools/resume.d.ts +27 -0
- package/dist/agent/tools/resume.d.ts.map +1 -0
- package/dist/agent/tools/resume.js +137 -0
- package/dist/agent/tools/resume.js.map +1 -0
- package/dist/agent/tools/revoke_connector.d.ts +52 -0
- package/dist/agent/tools/revoke_connector.d.ts.map +1 -0
- package/dist/agent/tools/revoke_connector.js +129 -0
- package/dist/agent/tools/revoke_connector.js.map +1 -0
- package/dist/agent/tools/revoke_credential_grant.d.ts +12 -0
- package/dist/agent/tools/revoke_credential_grant.d.ts.map +1 -0
- package/dist/agent/tools/revoke_credential_grant.js +97 -0
- package/dist/agent/tools/revoke_credential_grant.js.map +1 -0
- package/dist/agent/tools/revoke_routine_permissions.d.ts +21 -0
- package/dist/agent/tools/revoke_routine_permissions.d.ts.map +1 -0
- package/dist/agent/tools/revoke_routine_permissions.js +72 -0
- package/dist/agent/tools/revoke_routine_permissions.js.map +1 -0
- package/dist/agent/tools/rotate_webhook.d.ts +37 -0
- package/dist/agent/tools/rotate_webhook.d.ts.map +1 -0
- package/dist/agent/tools/rotate_webhook.js +170 -0
- package/dist/agent/tools/rotate_webhook.js.map +1 -0
- package/dist/agent/tools/run_routine_now.d.ts +23 -0
- package/dist/agent/tools/run_routine_now.d.ts.map +1 -0
- package/dist/agent/tools/run_routine_now.js +106 -0
- package/dist/agent/tools/run_routine_now.js.map +1 -0
- package/dist/agent/tools/sandbox_tools.d.ts +11 -0
- package/dist/agent/tools/sandbox_tools.d.ts.map +1 -0
- package/dist/agent/tools/sandbox_tools.js +75 -0
- package/dist/agent/tools/sandbox_tools.js.map +1 -0
- package/dist/agent/tools/search.d.ts +65 -0
- package/dist/agent/tools/search.d.ts.map +1 -0
- package/dist/agent/tools/search.js +114 -0
- package/dist/agent/tools/search.js.map +1 -0
- package/dist/agent/tools/session_cost.d.ts +39 -0
- package/dist/agent/tools/session_cost.d.ts.map +1 -0
- package/dist/agent/tools/session_cost.js +124 -0
- package/dist/agent/tools/session_cost.js.map +1 -0
- package/dist/agent/tools/set_dm_delivery.d.ts +23 -0
- package/dist/agent/tools/set_dm_delivery.d.ts.map +1 -0
- package/dist/agent/tools/set_dm_delivery.js +106 -0
- package/dist/agent/tools/set_dm_delivery.js.map +1 -0
- package/dist/agent/tools/set_spend_limit.d.ts +156 -0
- package/dist/agent/tools/set_spend_limit.d.ts.map +1 -0
- package/dist/agent/tools/set_spend_limit.js +437 -0
- package/dist/agent/tools/set_spend_limit.js.map +1 -0
- package/dist/agent/tools/set_state.d.ts +74 -0
- package/dist/agent/tools/set_state.d.ts.map +1 -0
- package/dist/agent/tools/set_state.js +166 -0
- package/dist/agent/tools/set_state.js.map +1 -0
- package/dist/agent/tools/spawn_thread_session.d.ts +9 -0
- package/dist/agent/tools/spawn_thread_session.d.ts.map +1 -0
- package/dist/agent/tools/spawn_thread_session.js +204 -0
- package/dist/agent/tools/spawn_thread_session.js.map +1 -0
- package/dist/agent/tools/spend_report.d.ts +180 -0
- package/dist/agent/tools/spend_report.d.ts.map +1 -0
- package/dist/agent/tools/spend_report.js +372 -0
- package/dist/agent/tools/spend_report.js.map +1 -0
- package/dist/agent/tools/stand_down.d.ts +91 -0
- package/dist/agent/tools/stand_down.d.ts.map +1 -0
- package/dist/agent/tools/stand_down.js +245 -0
- package/dist/agent/tools/stand_down.js.map +1 -0
- package/dist/agent/tools/subscribe_pr.d.ts +104 -0
- package/dist/agent/tools/subscribe_pr.d.ts.map +1 -0
- package/dist/agent/tools/subscribe_pr.js +213 -0
- package/dist/agent/tools/subscribe_pr.js.map +1 -0
- package/dist/agent/tools/unlink_identity.d.ts +19 -0
- package/dist/agent/tools/unlink_identity.d.ts.map +1 -0
- package/dist/agent/tools/unlink_identity.js +97 -0
- package/dist/agent/tools/unlink_identity.js.map +1 -0
- package/dist/agent/tools/update_status.d.ts +17 -0
- package/dist/agent/tools/update_status.d.ts.map +1 -0
- package/dist/agent/tools/update_status.js +59 -0
- package/dist/agent/tools/update_status.js.map +1 -0
- package/dist/agent/tools/usage_report.d.ts +59 -0
- package/dist/agent/tools/usage_report.d.ts.map +1 -0
- package/dist/agent/tools/usage_report.js +91 -0
- package/dist/agent/tools/usage_report.js.map +1 -0
- package/dist/agent/tools/walk_pr.d.ts +79 -0
- package/dist/agent/tools/walk_pr.d.ts.map +1 -0
- package/dist/agent/tools/walk_pr.js +133 -0
- package/dist/agent/tools/walk_pr.js.map +1 -0
- package/dist/agent/webhooks/achievability.d.ts +80 -0
- package/dist/agent/webhooks/achievability.d.ts.map +1 -0
- package/dist/agent/webhooks/achievability.js +216 -0
- package/dist/agent/webhooks/achievability.js.map +1 -0
- package/dist/agent/webhooks/capture-window.d.ts +86 -0
- package/dist/agent/webhooks/capture-window.d.ts.map +1 -0
- package/dist/agent/webhooks/capture-window.js +194 -0
- package/dist/agent/webhooks/capture-window.js.map +1 -0
- package/dist/agent/webhooks/config.d.ts +326 -0
- package/dist/agent/webhooks/config.d.ts.map +1 -0
- package/dist/agent/webhooks/config.js +280 -0
- package/dist/agent/webhooks/config.js.map +1 -0
- package/dist/agent/webhooks/dispatch.d.ts +103 -0
- package/dist/agent/webhooks/dispatch.d.ts.map +1 -0
- package/dist/agent/webhooks/dispatch.js +358 -0
- package/dist/agent/webhooks/dispatch.js.map +1 -0
- package/dist/agent/webhooks/gate.d.ts +128 -0
- package/dist/agent/webhooks/gate.d.ts.map +1 -0
- package/dist/agent/webhooks/gate.js +296 -0
- package/dist/agent/webhooks/gate.js.map +1 -0
- package/dist/agent/webhooks/handshake-capture.d.ts +66 -0
- package/dist/agent/webhooks/handshake-capture.d.ts.map +1 -0
- package/dist/agent/webhooks/handshake-capture.js +126 -0
- package/dist/agent/webhooks/handshake-capture.js.map +1 -0
- package/dist/agent/webhooks/hooks-codemod.d.ts +73 -0
- package/dist/agent/webhooks/hooks-codemod.d.ts.map +1 -0
- package/dist/agent/webhooks/hooks-codemod.js +231 -0
- package/dist/agent/webhooks/hooks-codemod.js.map +1 -0
- package/dist/agent/webhooks/oe-standard-webhook.d.ts +153 -0
- package/dist/agent/webhooks/oe-standard-webhook.d.ts.map +1 -0
- package/dist/agent/webhooks/oe-standard-webhook.js +498 -0
- package/dist/agent/webhooks/oe-standard-webhook.js.map +1 -0
- package/dist/agent/webhooks/reject-audit.d.ts +40 -0
- package/dist/agent/webhooks/reject-audit.d.ts.map +1 -0
- package/dist/agent/webhooks/reject-audit.js +99 -0
- package/dist/agent/webhooks/reject-audit.js.map +1 -0
- package/dist/agent/webhooks/replay-dedupe.d.ts +58 -0
- package/dist/agent/webhooks/replay-dedupe.d.ts.map +1 -0
- package/dist/agent/webhooks/replay-dedupe.js +159 -0
- package/dist/agent/webhooks/replay-dedupe.js.map +1 -0
- package/dist/agent/webhooks/reveal-page.d.ts +116 -0
- package/dist/agent/webhooks/reveal-page.d.ts.map +1 -0
- package/dist/agent/webhooks/reveal-page.js +443 -0
- package/dist/agent/webhooks/reveal-page.js.map +1 -0
- package/dist/agent/webhooks/secrets.d.ts +17 -0
- package/dist/agent/webhooks/secrets.d.ts.map +1 -0
- package/dist/agent/webhooks/secrets.js +73 -0
- package/dist/agent/webhooks/secrets.js.map +1 -0
- package/dist/agent/webhooks/source-vocabulary.d.ts +131 -0
- package/dist/agent/webhooks/source-vocabulary.d.ts.map +1 -0
- package/dist/agent/webhooks/source-vocabulary.js +315 -0
- package/dist/agent/webhooks/source-vocabulary.js.map +1 -0
- package/dist/agent/webhooks/verifier.d.ts +251 -0
- package/dist/agent/webhooks/verifier.d.ts.map +1 -0
- package/dist/agent/webhooks/verifier.js +109 -0
- package/dist/agent/webhooks/verifier.js.map +1 -0
- package/dist/scripts/operator-store-connect.d.ts +86 -0
- package/dist/scripts/operator-store-connect.d.ts.map +1 -0
- package/dist/scripts/operator-store-connect.js +218 -0
- package/dist/scripts/operator-store-connect.js.map +1 -0
- package/package.json +3397 -0
- package/patches/eve+0.54.3.patch +129 -0
- package/scripts/eve-framework-tools.ts +367 -0
- package/scripts/oe-cli.ts +293 -0
- package/scripts/oe-secret.ts +278 -0
- package/scripts/oe-wrap-untrusted.ts +63 -0
- package/scripts/operator-store-connect.ts +246 -0
- package/templates/subagents/fresh_eyes_review/agent.ts +37 -0
- package/templates/subagents/fresh_eyes_review/hooks/spend.ts +16 -0
- package/templates/subagents/fresh_eyes_review/instructions.md +52 -0
- package/templates/subagents/fresh_eyes_review/tools/ask_question.ts +13 -0
- package/templates/subagents/fresh_eyes_review/tools/bash.ts +13 -0
- package/templates/subagents/fresh_eyes_review/tools/connection_search.ts +52 -0
- package/templates/subagents/fresh_eyes_review/tools/load_skill.ts +13 -0
- package/templates/subagents/fresh_eyes_review/tools/read_file.ts +13 -0
- package/templates/subagents/fresh_eyes_review/tools/task_cancel.ts +20 -0
- package/templates/subagents/fresh_eyes_review/tools/todo.ts +13 -0
- package/templates/subagents/fresh_eyes_review/tools/web_fetch.ts +13 -0
- package/templates/subagents/fresh_eyes_review/tools/web_search.ts +13 -0
- package/templates/subagents/fresh_eyes_review/tools/write_file.ts +13 -0
- package/tsconfig.build.json +24 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,1575 @@
|
|
|
1
|
+
// unified — the synthetic UNIFIED channel, the single-context cross-surface window's delivery SPINE, with unified-window.ts as its tested core. eve namespaces every continuation token by the receiving channel's slug, so every surface that fans a wake in here through eve's cross-channel send lands under ONE effective token: one durable hook, one workflow run, ONE literal model context window across providers. The RAW token is the unchanged unified-supervisor token, so the whole spend, rotation and model-routing apparatus that reads it works with zero change. WHAT LIVES HERE vs the surfaces: each surface keeps its ENTIRE pre-dispatch pipeline — signature verification, trust gating, mention and ambient classification, domain opt-in, engagement tiers, wake rendering — and this channel only ever receives POST-GATE judged wakes, re-verifies the gate fail-closed as defence in depth, registers the wake's reply target in the durable map, and delivers under the shared token.
|
|
2
|
+
// 🔴 THE REPLY MODEL. A turn that MERGED queued deliveries carries a single auth snapshot, so on a cross-PLATFORM session the per-turn auth cannot address each wake: reply targeting is therefore EXCLUSIVELY map-based. The auth-carrying merge is unreachable on the pinned eve 0.54.3 — eve batches adjacent queued deliveries only when their full auth contexts match, and `stampUnifiedWindowAuth` below writes a fresh per-delivery `oe_delivery_id` into `auth.attributes` — and only the caller-less task COMPLETION COHORT still folds, which carries no `auth` at all. That closes the MERGE road only: the map is not defensive, because every reply — single-wake turns included — resolves its target from it, and the reply fence's same-conversation and pending arms still put two conversations in one turn with no merge (OPE-2042; `scripts/coalesced-delivery-merge-assumption-test.ts` pins the merge road alone). The model echoes the envelope's `wake-id` to the `reply` tool, the host resolves the origin from the map, fail-closed, and the reply arm posts into that exact conversation. The terminal completion NEVER posts — message-tool-only, unconditional here because `reply` is always armed on this channel — so there is no auth-snapshot reply path to be wrong, and judged silence and dropped prose are both audited. FLAG-OFF IS BYTE-IDENTICAL: no surface dispatches here unless the window gates hold, and the `receive` hook re-checks them and refuses anyway, so a session can never open under an un-flagged config.
|
|
3
|
+
|
|
4
|
+
import { defineChannel, GET, POST } from "eve/channels";
|
|
5
|
+
import type { Session, RouteHandlerArgs } from "eve/channels";
|
|
6
|
+
import { SELF_DISPATCH_PATH, handleSelfDispatch, postSelfDispatch, selfDispatchConfigured, type UnifiedDispatchPayload } from "./self-dispatch.js";
|
|
7
|
+
import { appendAudit, auditSilencesEnabled } from "../audit/audit.js";
|
|
8
|
+
import { deploymentOrg, currentWakeId, currentTurnId, currentTurnAddressing, currentTurnAddressed, bindFrom, carriesPlatformIdentity, type BindableContext, type SurfaceBinding } from "../identity/binding.js";
|
|
9
|
+
import { isFrozenSurfaceBinding, OE_FROZEN_SURFACE_BINDING_ATTR } from "../identity/frozen-surface-binding.internal.js";
|
|
10
|
+
import { getConfig } from "../access/config.js";
|
|
11
|
+
// Side effect only: refuses to boot on an eve missing any live patch part (OPE-2182). This channel
|
|
12
|
+
// is one of core's two wake doors, so the refusal lands before a consumer of `@open-everywhere/core`
|
|
13
|
+
// can serve a wake through it.
|
|
14
|
+
import "../access/eve-patch-probe-boot.js";
|
|
15
|
+
import { windowedSupervisorEnabled, domainRoster } from "../memory/domain.js";
|
|
16
|
+
import { getOperationalStore } from "../operational/provider.js";
|
|
17
|
+
import { registerUnifiedWakeTarget, resolveUnifiedWakeAuthority, resolveUnifiedWakeTarget, isUnifiedWakeAuthority, isUnifiedWakeOrigin, mintWakeId, stampUnifiedWindowAuth, proseBlockingRefusal, unifiedThreadRef, unifiedPlacementRef, sameUnifiedContainer, isThreadScopedWakeOrigin, wakeBindingMatchesOrigin, wakeBindingMatchesSurfaceKey, OE_ADDRESSING_ATTR, OE_GRAIN_ATTR, OE_TASK_LABEL_ATTR, type UnifiedWakeAuthority, type UnifiedWakeOrigin, type UnifiedWindowWake } from "./unified-window.js";
|
|
18
|
+
import {
|
|
19
|
+
WAKE_INGRESS_ACTION,
|
|
20
|
+
wakeIngressDetail,
|
|
21
|
+
WAKE_RETRY_ACTION,
|
|
22
|
+
wakeRetryDetail,
|
|
23
|
+
WAKE_DISPATCH_RETRY_POLICY,
|
|
24
|
+
WAKE_DISPATCH_OPERATION,
|
|
25
|
+
} from "./wake-timing.js";
|
|
26
|
+
import { withRetryAfterThrown, isRateLimitThrow, RateLimitExhaustedError } from "./rate-limit-retry.js";
|
|
27
|
+
import { postUnifiedReply, completeUnifiedSessionSilently } from "./unified-reply.js";
|
|
28
|
+
import { canPostUnifiedActions, postArm } from "./post-arms.js";
|
|
29
|
+
import { approvalCardActions, mintApprovalCardTicket, rememberApprovalCardTicket } from "./approval-card.js";
|
|
30
|
+
import { containerAnsweredSince } from "./answered-container-ledger.js";
|
|
31
|
+
// The two pure readers of a rendered wake. `wake-envelope.ts` is a leaf (it imports no channel
|
|
32
|
+
// module), so this adds no cycle — see the option-match note in `resolveInboundAnswer`.
|
|
33
|
+
import { isWakeEnvelopeShaped, triggerMessageBody } from "./wake-envelope.js";
|
|
34
|
+
import {
|
|
35
|
+
detectBridgeableInputRequest,
|
|
36
|
+
bridgeQuestionToSurface,
|
|
37
|
+
forgetBridgedQuestion,
|
|
38
|
+
settleAnsweredWake,
|
|
39
|
+
readBridgedQuestion,
|
|
40
|
+
rememberBridgedQuestion,
|
|
41
|
+
resolveInboundAnswerRouting,
|
|
42
|
+
isAddressedMentionWake,
|
|
43
|
+
approvalOptionIds,
|
|
44
|
+
QUESTION_ANSWERED_AUDIT_ACTION,
|
|
45
|
+
QUESTION_ANSWER_DROPPED_AUDIT_ACTION,
|
|
46
|
+
} from "./question-bridge.js";
|
|
47
|
+
import { admitInputResponse } from "../approvals/input-response-floor.js";
|
|
48
|
+
import { resolvePartition } from "../memory/partition.js";
|
|
49
|
+
import { unifiedDomainFromToken, unifiedDomainSessionKey, isUnifiedSupervisorToken } from "./unified-supervisor.js";
|
|
50
|
+
import { parseWindowToken, isTaskWindowId, isThreadSeatWindowId, isThreadSeatWindowToken, dmAnchorSurfaceForToken, dmSurfaceKeyFromAnchorDomain, bareTokenFromEveContext } from "./window-key.js";
|
|
51
|
+
import { resolveThreadOwner, clearThreadOwner, routeThreadMessage } from "./thread-ownership.js";
|
|
52
|
+
import { drainGenerationRetirements } from "./generation-retirement.js";
|
|
53
|
+
import { oneshotAgentEnabled } from "../access/delegation-flag.js";
|
|
54
|
+
import { INVOKER_POSTURE_ATTR } from "../access/invoker-posture.js";
|
|
55
|
+
import { currentInvokerPosture } from "../access/invoker-posture-state.js";
|
|
56
|
+
import {
|
|
57
|
+
OE_REQUESTER_ATTR,
|
|
58
|
+
OE_REQUESTER_CANDIDATES_ATTR,
|
|
59
|
+
REQUESTER_UNVERIFIED,
|
|
60
|
+
requesterCandidatesStampForDispatch,
|
|
61
|
+
requesterStampForDispatch,
|
|
62
|
+
requesterVerdictFor,
|
|
63
|
+
type RequesterVerdict,
|
|
64
|
+
} from "../access/requester-identity.js";
|
|
65
|
+
import { OE_CHAT_NONMEMBER_ATTR } from "../access/taint-signal.js";
|
|
66
|
+
import { carryRunRefusalsToRedrive, dropCarriedRunRefusals } from "../approvals/card-signal.js";
|
|
67
|
+
import { DELEGATION_PENDING_REFUSAL_REASON } from "../access/pending-delegation-signal.js";
|
|
68
|
+
import { sourcesForWindow, windowSourcesNeedConfig } from "./window-sources.js";
|
|
69
|
+
import { finalMessageActionForTurn, isBareStop, NO_REPLY_SENTINEL_REASON } from "./turn-delivery.js";
|
|
70
|
+
import { auditNoReplySentinelObserved } from "./chat-turn-audit.js";
|
|
71
|
+
import { consumeRepliedThisTurn, repliedWakesThisTurn, declinedWakesThisTurn, refusalsForWakeThisTurn } from "./reply-signal.js";
|
|
72
|
+
import { replyCarriesSubstance } from "./reply-post.js";
|
|
73
|
+
import { consumeReactedThisTurn } from "./react-signal.js";
|
|
74
|
+
import { settleWakeAccounting, UNACCOUNTED_WAKES_AUDIT_ACTION, WAKE_ACCOUNTING_SKIPPED_AUDIT_ACTION, MAX_ACCOUNTING_WAKES } from "./wake-accounting.js";
|
|
75
|
+
import { maybeRedrive, type RedriveReinject } from "./unified-redrive.js";
|
|
76
|
+
import { unresumableAuditDetail } from "./session-resume.js";
|
|
77
|
+
import { healPrunedDeploymentStrand } from "./stranded-seat.js";
|
|
78
|
+
import { admitInboundSurface, providerSelection } from "../access/provider-selection.js";
|
|
79
|
+
import { ingressSpendGate } from "../spend/ingress-gate.js";
|
|
80
|
+
|
|
81
|
+
function ulog(msg: string): void {
|
|
82
|
+
console.log(`[open-everywhere:unified] ${msg}`);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** eve's cross-channel send auth, derived structurally from the primitive because the option type is not re-exported from the channels barrel. */
|
|
86
|
+
type UnifiedSendAuth = Parameters<ReturnType<RouteHandlerArgs["to"]>["send"]>[1]["auth"];
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* eve's session-inbox wire format VALIDATES every hook payload: `auth` must carry an attributes record plus a string authenticator, principal id and principal type — fields OE's host-built wakes never set, and which provider diverts set only partially. A partial bag was once accepted; now the SEND is refused and the wake is stranded. This completes the bag at the send seam: it fills ONLY the absent fields and never overwrites an identity a provider supplied.
|
|
90
|
+
* The fill value is the empty string, this codebase's established "empty means absent" sentinel, so every reader, equality predicate and fall-through behaves exactly as it did when the fields were undefined. It is a wire-shape shim and NOT an identity: naming host wakes is a design decision this helper deliberately does not take.
|
|
91
|
+
*/
|
|
92
|
+
export function completeWakeAuth(
|
|
93
|
+
auth:
|
|
94
|
+
| {
|
|
95
|
+
readonly attributes?: Readonly<Record<string, unknown>>;
|
|
96
|
+
readonly authenticator?: string;
|
|
97
|
+
readonly principalId?: string;
|
|
98
|
+
readonly principalType?: string;
|
|
99
|
+
}
|
|
100
|
+
| null
|
|
101
|
+
| undefined,
|
|
102
|
+
): UnifiedSendAuth {
|
|
103
|
+
return {
|
|
104
|
+
...auth,
|
|
105
|
+
attributes: auth?.attributes ?? {},
|
|
106
|
+
authenticator: auth?.authenticator ?? "",
|
|
107
|
+
principalId: auth?.principalId ?? "",
|
|
108
|
+
principalType: auth?.principalType ?? "",
|
|
109
|
+
} as UnifiedSendAuth;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// AUTO-REDRIVE CROSS-CHANNEL-DISPATCH CAPTURE. The completion handler runs in the WORKFLOW process and, unlike a route or schedule handler, is handed NO cross-channel dispatch primitive, so the auto-redrive cannot re-inject on its own. Every surface's single-window dispatch funnels through {@link divertToUnifiedWindow} with a LIVE one, so the most recent is captured here and the completion handler reuses it; the captured closure targets the deployment-static runtime bundle, so reuse across turns is safe for starting a fresh delivery on a durable session.
|
|
113
|
+
// When the completion runs on a process that never handled a webhook dispatch — the normal case, because the workflow process handles none — the holder is unset and delivery falls back to the SELF-DISPATCH hop, a POST to this deployment's own internal dispatch route, whose eve route handler holds a live primitive. FAIL-SOFT only when NEITHER path exists: the redrive is skipped and the drop stays a final audited drop, exactly as before the redrive existed.
|
|
114
|
+
let rememberedReceive: RouteHandlerArgs["to"] | undefined;
|
|
115
|
+
|
|
116
|
+
/** Array-tolerant read of one host auth attribute. */
|
|
117
|
+
function authString(value: unknown): string | undefined {
|
|
118
|
+
const first = Array.isArray(value) ? value[0] : value;
|
|
119
|
+
return typeof first === "string" && first.length > 0 ? first : undefined;
|
|
120
|
+
}
|
|
121
|
+
function rememberUnifiedReceive(to: RouteHandlerArgs["to"]): void {
|
|
122
|
+
rememberedReceive = to;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// CROSS-PROCESS DISPATCH, the self-dispatch fallback. The capture above is PER-PROCESS, and the tool-execute callers run in eve's separate durable WORKFLOW process, which handles no webhooks, so the capture is structurally NEVER set there — the live-prod root cause of async spawn always throwing "no live cross-surface dispatch". The fallback POSTs the full divert payload to the deployment's OWN internal dispatch route, whose handler holds a live primitive and re-performs the exact same divert. The warm in-process path is kept first: a process that DID handle a webhook dispatches directly, cheaper, no HTTP hop, identical semantics.
|
|
126
|
+
// EVERY caller of this function is an INTERNAL host dispatch — a task spawn, a completion wake, an approval-decision wake, the auto-redrive — which is what makes it the right place to stamp `internalDispatch` ONCE for both of its legs: the warm divert here, and the cold hop whose route handler re-performs the divert under the same stamp. The marker is deliberately NOT a field of the dispatch payload: it never crosses the wire, so no signed body can assert it.
|
|
127
|
+
async function deliverUnifiedDispatch(input: UnifiedDispatchPayload): Promise<void> {
|
|
128
|
+
if (rememberedReceive) return divertToUnifiedWindow(rememberedReceive, { ...input, internalDispatch: true });
|
|
129
|
+
await postSelfDispatch(input); // throws instructively on failure — callers pick loud vs best-effort
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** Can THIS process deliver a unified dispatch at all — a captured in-process `to`, or a
|
|
133
|
+
* configured self-dispatch route to hop through? */
|
|
134
|
+
function crossProcessDispatchAvailable(): boolean {
|
|
135
|
+
return rememberedReceive !== undefined || selfDispatchConfigured();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* A representative window-enabled surface key for a domain — the receive fail-closed gate needs SOME key in the domain, which the original wake already proved window-enabled.
|
|
140
|
+
* It prefers a channel on the origin's own platform, for the closest audit label, else the domain's first channel. Null when the domain or its channels cannot be resolved, which skips the redrive.
|
|
141
|
+
* 🔴 THE SEAT'S OWN WINDOW ID COMES FIRST (OPE-1695). A SOLO seat's windowId IS its fully-qualified surface key, and since seats became universal a seat's domain can be the `org` pseudo-domain, which has NO roster to pick from — so the roster read alone would answer null and silently kill every spawn, redrive and decision wake in an undeclared room. Every caller holds a token or key that names the seat, so each passes it. It is also the MORE exact answer where both work: a solo seat resolves its OWN channel rather than a sibling in the domain.
|
|
142
|
+
* The windowId is used only when it POSITIVELY looks like a surface key on the origin's platform — a group name carries no slash and a task/thread windowId carries a `t/`/`s/` prefix, so neither can pass — and anything else falls through to the roster read, unchanged.
|
|
143
|
+
*/
|
|
144
|
+
function pickRedriveSurfaceKey(domain: string | undefined, platform: string, windowId?: string): string | null {
|
|
145
|
+
if (!domain) return null;
|
|
146
|
+
// DM DELEGATION ANCHOR: a pseudo-domain is not in config at all — it IS a surface key, so the one surface it resolves to is the DM itself.
|
|
147
|
+
// Returned WITHOUT consulting the domain roster, and the reserved prefix is refused as a config domain NAME at load, so this can never shadow or be shadowed by a real domain.
|
|
148
|
+
const dmSurface = dmSurfaceKeyFromAnchorDomain(domain);
|
|
149
|
+
if (dmSurface) return dmSurface;
|
|
150
|
+
if (windowId !== undefined && windowId.startsWith(`${platform}/`) && windowId.split("/").length >= 3) return windowId;
|
|
151
|
+
try {
|
|
152
|
+
const d = getConfig().loadDomains().find((dm) => dm.name === domain && domainRoster(dm).length > 0);
|
|
153
|
+
const roster = d ? domainRoster(d) : [];
|
|
154
|
+
if (roster.length === 0) return null;
|
|
155
|
+
return roster.find((c) => c.startsWith(`${platform}/`)) ?? roster[0]!;
|
|
156
|
+
} catch {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/** The cross-channel receive target every surface's single-window diversion supplies. All fields
|
|
162
|
+
* are HOST-built at dispatch time (post-gate), never model-authored. */
|
|
163
|
+
export interface UnifiedReceiveTarget {
|
|
164
|
+
/** The raw unified-supervisor continuation token (`oe-dom:<domain>:oe-sup:g<n>`) — eve
|
|
165
|
+
* prefixes `unified:` on send, which is the whole single-window mechanism. */
|
|
166
|
+
readonly token: string;
|
|
167
|
+
/** Host-minted wake id — already rendered into the wake envelope by the surface. */
|
|
168
|
+
readonly wakeId: string;
|
|
169
|
+
/** The wake's reply target (surface + conversation ids) for the durable map. */
|
|
170
|
+
readonly origin: UnifiedWakeOrigin;
|
|
171
|
+
/** The originating container's fully-qualified surface key — for the fail-closed flag
|
|
172
|
+
* re-check (the gate is per-channel) and audit labels. */
|
|
173
|
+
readonly surfaceKey: string;
|
|
174
|
+
/** Exact authority of THIS wake, captured before another surface can replace seat auth.
|
|
175
|
+
* Optional only for a target already queued by a pre-upgrade deployment. */
|
|
176
|
+
readonly authority?: UnifiedWakeAuthority;
|
|
177
|
+
/** Side-channel context strings (GenericReceiveInput carries only `message`, so surfaces
|
|
178
|
+
* whose wakes ship context — GitHub's issue-title line — pass it through here). */
|
|
179
|
+
readonly context?: readonly string[];
|
|
180
|
+
/**
|
|
181
|
+
* THE RETURN LEG: this message ANSWERS the window's outstanding bridged question, so `receive` responds to that request id instead of sending an ordinary message.
|
|
182
|
+
* 🔴 HOST-DECIDED, NEVER CARRIED ON THE WIRE. {@link divertToUnifiedWindow} is the only writer, it only writes on an ATTENDED arrival, and it derives the request id from a durable row this deployment wrote — the self-dispatch payload has no such field, so a signed body cannot assert one.
|
|
183
|
+
*/
|
|
184
|
+
readonly answer?: {
|
|
185
|
+
readonly requestId: string;
|
|
186
|
+
/** The audience floor the admission resolved — recorded on the routed row. */
|
|
187
|
+
readonly floor: string;
|
|
188
|
+
/** DERIVED, audit only (channels/question-bridge.ts `taskIdOfBridgedRequestId`). */
|
|
189
|
+
readonly taskId?: string;
|
|
190
|
+
/** THE OPTION eve SETTLES ON, for an APPROVAL only — eve's `resolveApprovalOutcome` reads
|
|
191
|
+
* `optionId` and nothing else, so an approval answered without one resolves `invalid` and
|
|
192
|
+
* denies the tool call (OPE-1056). Host-decided at the same site, from the ids the durable row
|
|
193
|
+
* recorded when the request was bridged; absent for an `ask_question`, whose answer is text. */
|
|
194
|
+
readonly optionId?: string;
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* THIS WAKE CARRIES A MESSAGE FROM THE ROOM — an ATTENDED arrival, as opposed to a wake the deployment minted for itself: a task spawn, a completion wake, an approval-decision wake, the auto-redrive. Stamped onto the durable wake row and read ONLY by the reply freshness gate.
|
|
198
|
+
* 🔴 HOST-DECIDED AT THE SAME SITE, AND FOR THE SAME REASON, AS `answer` above: the divert is the only place that knows an arrival is attended, and the self-dispatch payload has no such field, so a signed body cannot assert one. Absent ⇒ the row is NOT inbound, which costs a missed refusal, never a false one.
|
|
199
|
+
*/
|
|
200
|
+
readonly inbound?: boolean;
|
|
201
|
+
/** {@link UnifiedWindowWake.addressing}, carried through to the wake-target row — see {@link registerUnifiedWakeTarget} for why it is a tolerated extra field on the stored origin and never a new column. Absent ⇒ ambient, the safe default. */
|
|
202
|
+
readonly addressing?: string;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Fail-closed gate re-check: the surfaces only divert here when the grain says single-window, but the channel must not trust its callers' config reads, so a receive under an un-flagged, or no-longer-flagged, config is refused loudly. Any config-load error means OFF.
|
|
207
|
+
* EXPORTED FOR ONE REASON, THE PARITY PIN: this decision is duplicated at the self-dispatch gate, which sits one gate upstream. The two diverged once — the receive gate had the DM carve-in, the HTTP gate did not, and every DM spawn died at the hop — and neither could be exercised directly from a test, because the receive body only runs inside eve's own channel dispatch. A test now asserts the two gates agree row-for-row over a corpus. It is not part of the channel's contract, and nothing outside the tests should call it.
|
|
208
|
+
*/
|
|
209
|
+
export function windowEnabledFor(surfaceKey: string, token: string): boolean {
|
|
210
|
+
// DM ANCHOR — the ONE carve-in, and it is NARROWER than the config gate beside it, not wider. A DM-anchored session rides a window on a pseudo-domain that is itself a surface key, so admission is a self-consistency check on the dispatch rather than a config read: the surface being delivered to must be EXACTLY the surface the token's own anchor names. The arm admits ANY grain on an anchor domain, because the DM SEAT is itself a standing window on one, and a seat that cannot be delivered to is not a seat. THE PRIVACY INVARIANT is untouched and is the whole fence: the match is byte-exact against the token's own anchor surface, so a DM window may only ever be delivered to ITS OWN DM. It still cannot open a shared window, because a pseudo-domain matches no config row, and it still cannot reach another surface. Fail-closed on any mismatch, exactly like the config arm below.
|
|
211
|
+
// 🔴 THIS CARVE-IN IS DUPLICATED AT THE SELF-DISPATCH GATE AND THE TWO MUST MOVE TOGETHER — they diverged once, and every DM spawn died at the hop. Both now read the SAME {@link dmAnchorSurfaceForToken} seam, so the derivation itself can no longer drift; what still has to be kept in step by hand is the DECISION either side of it.
|
|
212
|
+
const dmAnchorSurface = dmAnchorSurfaceForToken(token);
|
|
213
|
+
if (dmAnchorSurface !== undefined) return dmAnchorSurface === surfaceKey;
|
|
214
|
+
try {
|
|
215
|
+
const domains = getConfig().loadDomains();
|
|
216
|
+
// A window is enabled for this surface under EITHER topology — the cross-surface window or a solo per-channel window — and both divert here.
|
|
217
|
+
return windowedSupervisorEnabled(surfaceKey, domains);
|
|
218
|
+
} catch {
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Audit labels for a unified session: the DOMAIN is the human-meaningful workspace, and the synthetic WINDOW registry key doubles as the surface label, matching the channel-session row the spend hook bumps. Both are recovered through the window-key parse seam. `rawToken` is OPTIONAL: an event on a session addressed by durable id carries no token at all, and the parse fail-softs, so an absent token labels the row `workspace: "unknown"` — the same posture a malformed token has always had, and deliberately NOT an exception, because an audit row is worth more than the label it is missing.
|
|
225
|
+
* 🔴 A DM WINDOW IS THE ONE DOMAIN THAT IS NOT A WORKSPACE LABEL. Its domain is a reserved pseudo-domain — a routing identity, not a human-meaningful anchor — and stamping it here would put that routing key in the `workspace` column of every audit row this seam labels, violating the recorded ruling that a reply row's workspace is ALWAYS the PLATFORM workspace. So an anchor domain is mapped back to the platform workspace it was derived from: the pseudo-domain literally CONTAINS the surface key it was built from, whose middle segment IS that workspace — no store read, no config, just the inverse of the mint. Nothing is lost, because the `surface` label keeps the full registry key, so a DM row stays exactly identifiable. Applied at THIS seam rather than at each row's own call site on purpose: every row these labels feed wants the same answer to "which workspace is this?", and one derivation cannot drift from another.
|
|
226
|
+
*/
|
|
227
|
+
export function auditLabels(rawToken: string | undefined): { workspace: string; surface: string | undefined } {
|
|
228
|
+
const key = parseWindowToken(rawToken);
|
|
229
|
+
return {
|
|
230
|
+
workspace: key ? platformWorkspaceForWindowDomain(key.domain) : "unknown",
|
|
231
|
+
surface: key ? unifiedDomainSessionKey(key.windowId) : undefined,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* The audit `workspace` label for a window token's domain: the domain itself for a real config domain, and — for a DM anchor pseudo-domain — the PLATFORM workspace inside the surface key it was minted from. See {@link auditLabels} for the ruling this enforces.
|
|
237
|
+
* FAIL-SOFT to the domain string: a malformed anchor labels as it always did, because an odd label is a better outcome than a thrown audit. Exported for its own test pin, and not part of the channel's contract.
|
|
238
|
+
*/
|
|
239
|
+
export function platformWorkspaceForWindowDomain(domain: string): string {
|
|
240
|
+
const surfaceKey = dmSurfaceKeyFromAnchorDomain(domain);
|
|
241
|
+
if (surfaceKey === undefined) return domain;
|
|
242
|
+
// A surface key is `platform/workspace/surface` (memory/partition.ts domainKeyOf) — segment 1.
|
|
243
|
+
return surfaceKey.split("/")[1] || domain;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* The classification a dropped-prose audit row carries: WHICH addressing kind was dropped, and WHY. Pure and eve-free, so it is unit-testable without a channel context, and the drop branch is its sole caller. It never takes or returns prose text — only the classification, matching every other field that row carries. `rawAddressing` is the turn's own addressing read, which on this channel is only ever the addressed-mention value or absent, and since OPE-1982 an ADDRESSED turn reaches this branch too — the prose bridge that used to claim it first is deleted, so a direct mention's dropped prose is classified here like every other. It stays a parameter rather than a constant, so the row keeps naming what it SAW and a future addressing value is reported honestly with no change here. `addressed` is the BROADER read, true for a surface's own addressed stamp too — a name-drop, an @mention outside the single window — so it is what tells a genuinely unaddressed watch drop apart from an addressed one. `replied` is the branch's own distinction between narration after a real reply-tool post and prose that IS the whole dropped answer, reused as the drop reason.
|
|
248
|
+
* `blockingRefusal` REPLACES the no-reply reason when present: this turn drew a host refusal on the wake it was going to answer, so the refusal is why nothing reached the room, and it reports as `refused:<reason>`, which names WHICH host decision took effect — where the no-reply reason reports the SYMPTOM of that decision as if it were the cause. `replied` still wins over both, because a turn that DID post through the tool and then narrated is benign narration whatever else it drew. The two fields read together: on an addressed turn the pair says "an owed answer was withheld, and here is the decision that withheld it", while on an ambient turn no answer was owed, so the pair says only "this turn also drew that refusal" and the drop is the ordinary message-tool-only drop. That is what keeps the ambient adherence count honest — an ambient drop the HOST refused was never an adherence failure, and it no longer counts as one.
|
|
249
|
+
* `carriesSubstance` is the FOURTH way an addressed turn's prose can fail to reach the room, and it reports as {@link NO_SUBSTANCE_DROP_REASON} (OPE-1911). It is its own reason rather than a shade of `no-reply-call` because the two ask a reader for different things: `no-reply-call` says the model narrated instead of calling `reply`, and the answer is in the dropped text; this one says the turn produced NO answer to deliver, so the dropped text holds nothing to recover and the redrive below is the only road to one. Ship #216 spent three legs undiagnosable for exactly this reason — the rows could not say whether the answer was withheld or was never written. It is the WEAKEST of the four: a refusal, a real reply-tool post, or an UNADDRESSED turn all decide the drop before it, so a substance-free stub reports as the decision that actually took effect. 🔴 THE `addressed` CONJUNCT IS LOAD-BEARING, not tidiness: an ambient watch turn's prose is dropped BY DESIGN and its text is routinely substance-free, so without it this reason would answer "which addressed turns produced no answer" with ordinary ambient chatter — the same dilution that made ship #216 undiagnosable, rebuilt inside the row meant to end it.
|
|
250
|
+
*/
|
|
251
|
+
export function ambientProseDropDetail(
|
|
252
|
+
rawAddressing: string | undefined,
|
|
253
|
+
addressed: boolean,
|
|
254
|
+
replied: boolean,
|
|
255
|
+
blockingRefusal: string | undefined,
|
|
256
|
+
carriesSubstance: boolean,
|
|
257
|
+
): { readonly addressing: string; readonly reason: string } {
|
|
258
|
+
return {
|
|
259
|
+
addressing: rawAddressing ?? (addressed ? "addressed-other" : "ambient"),
|
|
260
|
+
reason: replied
|
|
261
|
+
? "narration-after-reply"
|
|
262
|
+
: blockingRefusal !== undefined
|
|
263
|
+
? `refused:${blockingRefusal}`
|
|
264
|
+
: carriesSubstance || !addressed
|
|
265
|
+
? "no-reply-call"
|
|
266
|
+
: NO_SUBSTANCE_DROP_REASON,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Does a dropped-prose turn owe this wake's open session its ENDING? (OPE-2000.) PURE, and the whole decision in one place, because neither conjunct can be driven from the deterministic tier on its own: the completion handler is reached through eve's adapter, which builds its own channel with no continuation token, so `redriven` is structurally false there and a live drive can never separate the two.
|
|
272
|
+
* BOTH conjuncts are load-bearing and say different things. `answeredThisWake` is the per-WAKE reply record, never the turn-wide one: a coalesced turn that answered a Slack sibling and ended in prose for a Linear @mention still owes THAT session its ending. `redriven` says the one corrective re-drive went out, so a turn is still coming that can answer this wake — closing the session under it would end the conversation one turn before the answer arrives.
|
|
273
|
+
*/
|
|
274
|
+
export function proseDropClosesWakeSession(answeredThisWake: boolean, redriven: boolean): boolean {
|
|
275
|
+
return !answeredThisWake && !redriven;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/** `detail.reason` on the drop row for an addressed turn whose terminal prose carried no answer — see {@link ambientProseDropDetail} and {@link replyCarriesSubstance}. ONE greppable string, so an operator query and the test read the same token. */
|
|
279
|
+
export const NO_SUBSTANCE_DROP_REASON = "no-substance";
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Did THIS turn already answer `origin`'s own CONTAINER, through a SIBLING wake? THE DEFECT THIS ANSWERS: a turn that merged several deliveries holds them all, and each Linear mention or comment-backed follow-up materialises its OWN agent session, so two wakes on ONE issue share a turn whenever the reply fence admits a sibling wake. The model answers one of them; the other reaches the close gate below with nothing delivered through it, and the close used to state that no response was needed on the very issue that had just received a real answer — measured on a soak run, the answer and the denial seconds apart. The auth-carrying MERGE road into this shape is unreachable on eve 0.54.3 (see this module's header), and this gate is still LIVE: the fence's same-conversation and pending arms put two wakes in one turn without any merge, and {@link answeredContainerVia}'s durable arm covers the two-turn shape below (OPE-2042).
|
|
283
|
+
* WHY THE CONTAINER, AND NOT THE TURN: a turn-wide "did we reply anywhere" read is the easy one and it is WRONG, because a turn that answered a Slack sibling and stayed silent on this Linear mention still owes that session a real silence ack. What makes the ack a CONTRADICTION is that the answer is visible IN THE SAME ROOM, so the room is the question this asks. And not the THREAD, because Linear renders every agent activity onto one issue feed, so an answer in a neighbouring thread of the same issue is just as visible: the thread-grain comparator stays where authority is decided, and the copy question is a room question. FAIL-SOFT toward the OLD behaviour — no turn id, no replied wakes, an unresolvable wake row or a store error all answer false, which renders the silence ack exactly as before. The flag only ever REPLACES one fixed host line with another; it never decides whether to close. Exported for its own test, not for any other caller.
|
|
284
|
+
*/
|
|
285
|
+
export async function answeredSameContainerThisTurn(org: string, turnId: string | undefined, wakeId: string | undefined, origin: UnifiedWakeOrigin): Promise<boolean> {
|
|
286
|
+
const replied = repliedWakesThisTurn(turnId).filter((w) => w !== wakeId);
|
|
287
|
+
if (replied.length === 0) return false;
|
|
288
|
+
const store = getOperationalStore();
|
|
289
|
+
for (const w of replied) {
|
|
290
|
+
const other = await resolveUnifiedWakeTarget(store, org, w).catch(() => null);
|
|
291
|
+
if (other && sameUnifiedContainer(other, origin)) return true;
|
|
292
|
+
}
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Has `origin`'s CONTAINER been answered, by THIS turn or by an EARLIER one? It returns which arm found the answer, or `undefined` for "no answer on record", and the close then carries the ordinary silence line.
|
|
298
|
+
* 🔴 THE SECOND ARM IS THE POINT. {@link answeredSameContainerThisTurn} is exact and cheap, and it is blind to the shape that reopened this: eve ran the two Linear wakes as TWO TURNS, so the answering turn's reply record was already gone when the sibling turn asked. The durable arm reads the answered-container ledger, which the reply choke point stamps per container, and asks whether an answer landed AT OR AFTER this wake's own registration stamp — that "at or after" is what keeps the claim honest, because an answer posted BEFORE the member wrote is not an answer to them. FAIL-SOFT throughout: an unresolvable wake row, a store error or a missing stamp all read as "no answer", the pre-fix direction, and nothing here decides WHETHER a session closes. Exported for its own test, not for any other caller.
|
|
299
|
+
*/
|
|
300
|
+
export async function answeredContainerVia(org: string, turnId: string | undefined, wakeId: string | undefined, origin: UnifiedWakeOrigin): Promise<"turn" | "container" | undefined> {
|
|
301
|
+
if (await answeredSameContainerThisTurn(org, turnId, wakeId, origin)) return "turn";
|
|
302
|
+
if (wakeId === undefined) return undefined;
|
|
303
|
+
const record = await getOperationalStore()
|
|
304
|
+
.getUnifiedWakeRecord(org, wakeId)
|
|
305
|
+
.catch(() => null);
|
|
306
|
+
if (!record) return undefined;
|
|
307
|
+
return (await containerAnsweredSince(org, origin, record.createdAt)) ? "container" : undefined;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* THE PER-WAKE ACCOUNTING AUDIT, independent of that turn's own action kind: the question it asks — did the turn account for every wake it was SHOWN, not just the one its own wake stamp names — is orthogonal to what happened with the last coalesced wake. AUDIT-ONLY, ZERO BEHAVIOUR CHANGE: it never throws into the turn, never refuses a tool call and never nudges the model. It writes ONE audit row and ONE horizon stamp, a column no gate's query filters on, so neither the reply-freshness gate nor the answerable-reply fence can see it. See wake-accounting.ts for what a delivered wake id means here and why a wake is reported at most once.
|
|
312
|
+
* 🔴 TWO CALL SITES, ONE FUNCTION. `message.completed` calls this on every non-buffer finish, which is most turns — but a turn whose LAST model step ends on a tool-calls finish, the measured step-ceiling shape, never reaches that branch, so that site alone left WHOLE GENERATIONS with no audit stamp at all. The turn-lifecycle hook is the second call site, firing on turn completion, turn cancellation and session failure, so it runs even when the last completion never got past its buffer early return. Calling this twice for one turn is safe by construction: the first call stamps EVERY candidate it considered, so the second call's read finds nothing left to diff. An unresolved window token, turn id or turn wake leaves nothing to anchor the read on, so it no-ops — but the no-op is COUNTABLE, as a low-volume, reason-tagged skipped row, so "the pass did not run on this turn" is distinguishable from "the pass ran and reported nothing" without adding a row to the common, high-volume path.
|
|
313
|
+
*/
|
|
314
|
+
export async function auditUnaccountedWakesForTurn(
|
|
315
|
+
org: string,
|
|
316
|
+
workspace: string,
|
|
317
|
+
surface: string | undefined,
|
|
318
|
+
windowToken: string | undefined,
|
|
319
|
+
turnId: string | undefined,
|
|
320
|
+
turnWake: string | undefined,
|
|
321
|
+
reacted: boolean,
|
|
322
|
+
): Promise<void> {
|
|
323
|
+
if (!windowToken || !turnId || !turnWake) {
|
|
324
|
+
const reason = !windowToken ? "no-window-token" : !turnId ? "no-turn-id" : "no-turn-wake";
|
|
325
|
+
await appendAudit({
|
|
326
|
+
org,
|
|
327
|
+
platform: "unified",
|
|
328
|
+
workspace,
|
|
329
|
+
surface,
|
|
330
|
+
action: WAKE_ACCOUNTING_SKIPPED_AUDIT_ACTION,
|
|
331
|
+
detail: { reason },
|
|
332
|
+
}).catch(() => undefined);
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
try {
|
|
336
|
+
const accounted = new Set<string>([...repliedWakesThisTurn(turnId), ...declinedWakesThisTurn(turnId)]);
|
|
337
|
+
// A react has NO per-wake record of its own — the react signal is a plain turn-scoped boolean and not a wake set, the same scope limitation the declined mark has — so a react is credited only to this turn's OWN wake.
|
|
338
|
+
// `reacted` is the CALLER's single read of that read-and-reset signal: the bare-stop detector below needs the same fact, and a second consuming read in one turn would leave it false.
|
|
339
|
+
if (reacted) accounted.add(turnWake);
|
|
340
|
+
const unaccounted = await settleWakeAccounting(getOperationalStore(), org, { windowToken, turnWake }, accounted);
|
|
341
|
+
if (unaccounted.length === 0) return;
|
|
342
|
+
const addressedCount = unaccounted.filter((w) => w.addressing === "addressed").length;
|
|
343
|
+
await appendAudit({
|
|
344
|
+
org,
|
|
345
|
+
platform: "unified",
|
|
346
|
+
workspace,
|
|
347
|
+
surface,
|
|
348
|
+
action: UNACCOUNTED_WAKES_AUDIT_ACTION,
|
|
349
|
+
detail: {
|
|
350
|
+
turnId,
|
|
351
|
+
turnWake,
|
|
352
|
+
unaccounted: unaccounted.map((w) => ({ wakeId: w.wakeId, addressing: w.addressing })),
|
|
353
|
+
count: unaccounted.length,
|
|
354
|
+
addressedCount,
|
|
355
|
+
ambientCount: unaccounted.length - addressedCount,
|
|
356
|
+
capped: unaccounted.length >= MAX_ACCOUNTING_WAKES,
|
|
357
|
+
},
|
|
358
|
+
}).catch(() => undefined);
|
|
359
|
+
} catch {
|
|
360
|
+
/* best-effort — a measurement pass must never fail the turn it is measuring */
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* A bounded, redaction-safe diagnostic subset of a failed-turn or failed-session eve event, for the audit detail. Recording only the message left a run of prod delegation failures UNATTRIBUTABLE — a bare "the model did not return a response" with no code, error id or provider.
|
|
366
|
+
* This records the eve error `code` plus the well-known gateway and provider diagnostic keys eve surfaces when it has them: an empty-model-response carries only an id and a name, because it is detected client-side from an empty but successful stream and there is no provider to attribute, whereas a gateway failure carries the status and generation fields that DO name the provider. WHITELISTED keys only, never a blind dump, and each capped, so nothing large or PII-shaped rides into the audit log.
|
|
367
|
+
*/
|
|
368
|
+
function failureDiag(code: string | undefined, details: Record<string, unknown> | undefined): Record<string, string> {
|
|
369
|
+
const out: Record<string, string> = {};
|
|
370
|
+
if (typeof code === "string" && code.length > 0) out.code = code;
|
|
371
|
+
if (details && typeof details === "object") {
|
|
372
|
+
for (const k of ["errorId", "name", "statusCode", "generationId", "gatewayName", "gatewayType", "upstreamType", "upstreamStatusCode", "upstreamMessage"]) {
|
|
373
|
+
const v = details[k];
|
|
374
|
+
if (typeof v === "string" && v.length > 0) out[k] = v.slice(0, 200);
|
|
375
|
+
else if (typeof v === "number" && Number.isFinite(v)) out[k] = String(v);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return out;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* The `sources` vector to stamp on a diverted wake — the platforms whose wakes fan into this window. Derived from the raw window token's own identity plus the domain config: a cross-surface window resolves the domain's distinct channel platforms and a NAMED GROUP window resolves that group's, while a solo or task window derives its single platform straight from the window id, so no config load is needed there.
|
|
383
|
+
* FAIL-CLOSED: any parse or config failure, and any unresolvable identity, falls back to the SINGLE origin platform — never empty, never a wider set. This is the ONE derivation site for the stamp, and the child-inheritance and redrive paths flow back through {@link divertToUnifiedWindow}, so a task child re-derives its own single-source vector.
|
|
384
|
+
*/
|
|
385
|
+
function windowSourcesForDivert(token: string, originPlatform: string): readonly string[] {
|
|
386
|
+
try {
|
|
387
|
+
const key = parseWindowToken(token);
|
|
388
|
+
if (key) {
|
|
389
|
+
// Only the CONFIG-DERIVED window shapes consult the domain config; a solo, task or thread window derives purely from its window id, so the config load and its failure modes are skipped there.
|
|
390
|
+
// {@link windowSourcesNeedConfig} owns that list, next to the derivation it describes — a private copy of it here is how a new window shape silently loses its sources.
|
|
391
|
+
const domains = windowSourcesNeedConfig(key.windowId, key.domain) ? getConfig().loadDomains() : [];
|
|
392
|
+
const s = sourcesForWindow(key.windowId, key.domain, domains);
|
|
393
|
+
if (s.length > 0) return s;
|
|
394
|
+
}
|
|
395
|
+
} catch {
|
|
396
|
+
// parse or config-load failure → fall through to the fail-closed single-origin default.
|
|
397
|
+
}
|
|
398
|
+
return [originPlatform];
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* THE WINDOW SPEND GATE — the cross-surface window's own attended-wake spend decision, at the ONE choke point every single-window wake passes through. WHY HERE AND NOT ONLY ON EACH SURFACE: every surface has a native attended gate, but a surface's SINGLE-WINDOW leg is a different code path from its native one, and on three surfaces it returns BEFORE the native gate can run, handing the wake to this function without ever reaching their own handlers — so on a domain with the flagship topology, attended mentions on those surfaces were UN-CAPPED. Two surfaces happen to gate before their divert, which is a property of where their gate sits and not of the divert, and it is exactly the kind of per-surface accident this gate removes. The refusal posts through the same per-platform arm registry the window's own replies use, which is what makes ONE gate here viable at all: it can speak on every surface in the window, including the AMBIENT legs that have no native post seam of their own. No reply row is written for it — a refusal is not a reply, and the eval scorers join on that action name — so the spend row is the record. A RE-CHECK on the surfaces that already gated is ACCEPTED, not avoided: an over-budget wake never reaches here from them, an under-budget one pays one more cheap check, and the only visible duplication is a second bypass row on an ADMIN BYPASS, where the hourly throttle still posts exactly one warning. Accountability rows are cheap; a second unguarded door is not.
|
|
403
|
+
* ⚠️ ONE KNOWN WART, ON LINEAR ONLY: a declined wake is invisible to the caller, because this returns void and widening it would thread a decision back through every surface's supervisor dispatch. Everywhere else that is harmless, since the caller simply posted nothing — but on Linear the mention leg holds an OPEN native agent session across the divert, and the refusal lands as its TERMINAL response activity, so the human sees the refusal and the session closes cleanly, after which the mention leg's own audit row and its best-effort "working on it" thought no-op or fail against the now-completed session. The spend row is the truthful record of what happened; the row alongside it is not. 🔴 DELIBERATELY NOT APPLIED to an INTERNAL dispatch — a task spawn, a completion wake, the auto-redrive, an approval-decision wake, a routine fire. Those are not attended arrivals: each is either already gated at its own unattended origin or is the delivery of work ALREADY admitted and paid for, where refusing would starve a caller of a result rather than prevent a spend — and refusing a routine fire here would post into the room, which is precisely what the silent-routine carve-out exists to prevent. The flag is opt-OUT, so a future ingress that forgets it is GATED, not un-gated, the fail-closed direction.
|
|
404
|
+
*/
|
|
405
|
+
async function windowSpendGate(input: {
|
|
406
|
+
readonly window: UnifiedWindowWake;
|
|
407
|
+
/** The surface's OWN wake auth. The scope comes from HERE, never from the divert's `surfaceKey`
|
|
408
|
+
* argument: the partition this resolves is the one `recordSpend` writes under, so the cap and the
|
|
409
|
+
* ledger measure the same scope even if a caller labelled the wake differently. */
|
|
410
|
+
readonly auth: { attributes?: Record<string, unknown> };
|
|
411
|
+
}): Promise<"proceed" | "declined"> {
|
|
412
|
+
const platform = input.window.origin.platform;
|
|
413
|
+
// The SAME derivation the session's own auth will use: the surface's verbatim wake auth, read through its OWN registered identity mapper, so the gate scopes the real workspace and surface.
|
|
414
|
+
// That also resolves the real SPEND grain inside the gate — a Discord thread caps against its parent channel.
|
|
415
|
+
const bindable = { channel: { kind: platform }, session: { auth: { current: input.auth } } } as unknown as BindableContext;
|
|
416
|
+
// The ATTRIBUTED principal — the person this turn's spend would be recorded under, and therefore
|
|
417
|
+
// the only person whose admin standing can honestly buy a bypass of their own bill.
|
|
418
|
+
const principalId = bindFrom(bindable).principalId;
|
|
419
|
+
return ingressSpendGate({
|
|
420
|
+
bindable,
|
|
421
|
+
door: "window",
|
|
422
|
+
// No independent mode resolution at this seam — the binding's own dm/mpim/channel verdict is the
|
|
423
|
+
// one the session will run under, which is what the perDomain criteria layer must see.
|
|
424
|
+
...(principalId !== undefined ? { principalId } : {}),
|
|
425
|
+
post: async (text) => {
|
|
426
|
+
// Fails VISIBLE-or-not, never silently changes the decision (the gate's own contract): a
|
|
427
|
+
// throw here is swallowed by the gate and the wake is STILL declined.
|
|
428
|
+
await postUnifiedReply(input.window.origin, text);
|
|
429
|
+
},
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* THE INBOUND-ANSWER DECISION — is this arrival the answer to the window's outstanding bridged question, and may THIS room give it? The pure shape lives in question-bridge.ts; this is the live wiring, the durable row read plus the same admission the three WIDGET arms already run — the same gate over a different transport, and that module's header says why the transport must not be the control. FAIL-SOFT TO AN ORDINARY WAKE: no row, an unreadable store, a message from another room, a refused answerer or a thrown floor all land on the behaviour every message had before this leg existed — the message is delivered, the seat hears it, and the question stays open for someone who may answer it. Nothing here may drop a message and nothing here may throw.
|
|
435
|
+
* 🔴 THE ROOM IS PART OF THE DECISION, not just the person: one window token spans every room and surface on the domain, so the stored row alone cannot say where the question is showing. This passes the inbound wake's container key, and the pure router compares it against the container the question was posted into; a mismatch is an ordinary wake. ⚠️ THE PER-MEMBER LEG OF THE ADMISSION IS NOT PASSED, and that is a decision: it is a POSITIVE per-member verdict, while this seam holds a per-SURFACE trust verdict, and reading one as the other would refuse whole external-trust rooms. Undefined is inert, so the room floor carries this arm alone — and all three WIDGET arms do pass the per-member leg, which makes the two ROOM-MESSAGE arms the places a guest in an ordinary internal channel may still answer. COST: ONE indexed store read per ATTENDED wake, deliberately NOT flag-gated the way the recovery reader beside it is, because this one also serves a question the WINDOW ITSELF raised, which any build can do. An internal dispatch pays nothing, because the decision short-circuits before the read.
|
|
436
|
+
*/
|
|
437
|
+
async function resolveInboundAnswer(
|
|
438
|
+
input: {
|
|
439
|
+
readonly window: UnifiedWindowWake;
|
|
440
|
+
readonly auth: { attributes?: Record<string, unknown> };
|
|
441
|
+
readonly internalDispatch?: true;
|
|
442
|
+
/** The arriving delivery — the RENDERED WAKE, not the person's words (see the answer leg below:
|
|
443
|
+
* "THE ANSWER TEXT IS THE RENDERED WAKE, deliberately"). Read ONLY to select a parked
|
|
444
|
+
* APPROVAL's option id, and only after the trigger BODY is taken out of it; a question's answer
|
|
445
|
+
* is the whole rendered wake and this decision never inspects it.
|
|
446
|
+
* TYPED LOOSELY ON PURPOSE, though every caller passes a `string`: this is also where a future
|
|
447
|
+
* non-text ingress would arrive, and such a delivery names no option, so it must settle no
|
|
448
|
+
* approval. */
|
|
449
|
+
readonly message?: unknown;
|
|
450
|
+
},
|
|
451
|
+
bareToken: string,
|
|
452
|
+
): Promise<UnifiedReceiveTarget["answer"] | undefined> {
|
|
453
|
+
try {
|
|
454
|
+
const org = deploymentOrg();
|
|
455
|
+
// THE ROOM THIS MESSAGE CAME FROM, in the same vocabulary the question was stored under. A
|
|
456
|
+
// derivation that throws leaves it undefined, which never answers — an ordinary wake.
|
|
457
|
+
let containerKey: string | undefined;
|
|
458
|
+
try {
|
|
459
|
+
containerKey = unifiedThreadRef(input.window.origin).channelKey;
|
|
460
|
+
} catch {
|
|
461
|
+
containerKey = undefined;
|
|
462
|
+
}
|
|
463
|
+
// 🔴 THE OPTION IS MATCHED AGAINST THE TRIGGER BODY, NEVER THE DELIVERY (cold review, 2026-09-11).
|
|
464
|
+
// `input.message` here is the RENDERED WAKE — `<wake reason="dm" …><message trigger="true"
|
|
465
|
+
// author-id="…">\n Approve\n </message></wake>` — because only `addressing:"direct"` passes a
|
|
466
|
+
// body verbatim and Slack never emits one (instructions/access.ts records that verification). A
|
|
467
|
+
// raw match would therefore normalise a Slack DM reply to `wake reason=…`, select no option, and
|
|
468
|
+
// leave EVERY approval on the surface S-EVE-CARD drives permanently parked — the OPE-1056 symptom
|
|
469
|
+
// this fix exists to remove, reintroduced one seam earlier.
|
|
470
|
+
// `triggerMessageBody` answers `undefined` for a COALESCED delivery (several envelopes, whose
|
|
471
|
+
// turn auth belongs to the last one), which keeps the approval parked rather than settling it on
|
|
472
|
+
// text somebody else wrote. That is the fail-closed direction and it is the whole reason to use
|
|
473
|
+
// this helper rather than a regex here.
|
|
474
|
+
const roomText =
|
|
475
|
+
typeof input.message !== "string" ? undefined : isWakeEnvelopeShaped(input.message) ? triggerMessageBody(input.message) : input.message;
|
|
476
|
+
const routing = await resolveInboundAnswerRouting(
|
|
477
|
+
{
|
|
478
|
+
internalDispatch: input.internalDispatch === true,
|
|
479
|
+
...(containerKey ? { containerKey } : {}),
|
|
480
|
+
...(roomText !== undefined ? { text: roomText } : {}),
|
|
481
|
+
addressedMention: isAddressedMentionWake(input.window, bareToken),
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
read: () => readBridgedQuestion(getOperationalStore(), org, bareToken),
|
|
485
|
+
admit: async () => {
|
|
486
|
+
// The SAME derivation the spend gate makes, and for the same reason: the room this message was really sent in is the one the floor must judge, and the surface's verbatim wake auth, read through its OWN registered identity mapper, is what names that room.
|
|
487
|
+
// The divert's `surfaceKey` argument is the caller's label; this is the platform's.
|
|
488
|
+
const bindable = {
|
|
489
|
+
channel: { kind: input.window.origin.platform },
|
|
490
|
+
session: { auth: { current: input.auth } },
|
|
491
|
+
} as unknown as BindableContext;
|
|
492
|
+
const p = resolvePartition(bindable);
|
|
493
|
+
return admitInputResponse({
|
|
494
|
+
org: p.org,
|
|
495
|
+
platform: p.platform,
|
|
496
|
+
workspace: p.workspace,
|
|
497
|
+
...(p.surface === undefined ? {} : { surface: p.surface }),
|
|
498
|
+
surfaceKey: p.surfaceKey,
|
|
499
|
+
principalId: bindFrom(bindable).principalId ?? "",
|
|
500
|
+
responses: 1,
|
|
501
|
+
});
|
|
502
|
+
},
|
|
503
|
+
},
|
|
504
|
+
);
|
|
505
|
+
if (routing.kind === "wake") {
|
|
506
|
+
if (routing.reason === "refused") {
|
|
507
|
+
// The refusal row is `input_response.denied`, written by the admission itself — one action
|
|
508
|
+
// name across all five arms, so a reader can count refusals without knowing the transport.
|
|
509
|
+
ulog(`REFUSED an answer to the outstanding question on ${bareToken} — delivering it as an ordinary wake, the question stays open`);
|
|
510
|
+
} else if (routing.reason === "unmatched-option") {
|
|
511
|
+
// The window is parked on an APPROVAL and this message named none of its options. Not a
|
|
512
|
+
// refusal and not an answer: the row is LEFT IN PLACE so the room can still answer, and the
|
|
513
|
+
// message reaches the seat as an ordinary wake. Logged because "the approval is still
|
|
514
|
+
// waiting" is otherwise indistinguishable from "nothing happened".
|
|
515
|
+
ulog(`the outstanding APPROVAL on ${bareToken} was not answered by this message (it names no option) — ordinary wake, the approval stays parked`);
|
|
516
|
+
} else if (routing.reason === "addressed-mention") {
|
|
517
|
+
// Not a refusal and not audited: an @-mention is the seat's wake by ruling (OPE-2116). The
|
|
518
|
+
// question stays open, so a plain reply in its room can still answer the worker.
|
|
519
|
+
ulog(`the outstanding question on ${bareToken} was not answered by this message (it @-mentions the agent) — ordinary wake, the question stays open`);
|
|
520
|
+
} else if (routing.reason === "foreign-room") {
|
|
521
|
+
// Not a refusal and not audited: this person was not answering anything. The window holds an open question in a DIFFERENT room, and this is an ordinary message that happens to share the window token.
|
|
522
|
+
// Logged, because a question that never gets answered is otherwise hard to explain from the outside.
|
|
523
|
+
ulog(`the outstanding question on ${bareToken} is showing in another room — this message is an ordinary wake, the question stays open`);
|
|
524
|
+
}
|
|
525
|
+
return undefined;
|
|
526
|
+
}
|
|
527
|
+
return {
|
|
528
|
+
requestId: routing.requestId,
|
|
529
|
+
floor: routing.floor,
|
|
530
|
+
...(routing.taskId !== undefined ? { taskId: routing.taskId } : {}),
|
|
531
|
+
...(routing.optionId !== undefined ? { optionId: routing.optionId } : {}),
|
|
532
|
+
};
|
|
533
|
+
} catch (err) {
|
|
534
|
+
// An answer we could not decide is an ordinary message. Loud enough to diagnose, never fatal.
|
|
535
|
+
console.warn(`[open-everywhere:unified] inbound-answer decision skipped (${String(err)}) — delivering as an ordinary wake`);
|
|
536
|
+
return undefined;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
const channel = defineChannel<undefined, void, UnifiedReceiveTarget>({
|
|
541
|
+
// The unified channel is not a public HTTP surface — wakes arrive through cross-channel send and replies leave through the reply tool — so the GET is an inert registration anchor, and the POST is the INTERNAL self-dispatch ingress, HMAC-authenticated and a fail-closed not-found without its secret.
|
|
542
|
+
// That route is what lets the workflow-process dispatch legs reach a live cross-channel primitive, because an eve route is the ONE place eve hands one out. The divert is INJECTED, not imported, so the self-dispatch module never imports this one and no cycle exists.
|
|
543
|
+
routes: [
|
|
544
|
+
GET("/eve/v1/unified", async () => new Response("not found", { status: 404 })),
|
|
545
|
+
// `internalDispatch: true` — this route is the COLD leg of the dispatch helper above, and its only clients are that function's internal callers, reaching it over the HMAC-authenticated hop because a tool execute runs in the workflow process, which holds no dispatch primitive.
|
|
546
|
+
// Same class of wake, same skip. The marker is set HERE rather than read off the signed, but still remote, payload, so nothing on the wire can claim it.
|
|
547
|
+
POST(SELF_DISPATCH_PATH, async (req, { to }) => handleSelfDispatch(req, to, (r, i) => divertToUnifiedWindow(r, { ...i, internalDispatch: true }))),
|
|
548
|
+
],
|
|
549
|
+
kindHint: "unified",
|
|
550
|
+
// The window sessions LIVE on this channel, so THIS field is the one that governs a delivery landing while a window turn runs: the turn policy resolves per RECEIVING channel, and without this pin the platform default applies.
|
|
551
|
+
// That default steers, and a mid-turn wake then CANCELS the running turn while eve rolls history back to the last completed model call, silently discarding the interrupted ask — live-proven by two mentions seconds apart, where the first turn was cancelled and the first question never answered. All six vendor channels pin the queueing policy for their own native sessions, and this pin is the one that covers every unified window and DM seat.
|
|
552
|
+
turnPolicy: "queue",
|
|
553
|
+
async receive(input, { from }): Promise<Session> {
|
|
554
|
+
const t = input.target as Partial<UnifiedReceiveTarget> | undefined;
|
|
555
|
+
// Structural validation, fail-loud: every field is host-built by the surface dispatch, so a
|
|
556
|
+
// malformed target is a caller bug (or a receive from something that isn't a surface
|
|
557
|
+
// dispatch) — refuse rather than mint a mis-keyed session.
|
|
558
|
+
if (
|
|
559
|
+
!t ||
|
|
560
|
+
typeof t.token !== "string" ||
|
|
561
|
+
!isUnifiedSupervisorToken(t.token) ||
|
|
562
|
+
typeof t.wakeId !== "string" ||
|
|
563
|
+
t.wakeId.length === 0 ||
|
|
564
|
+
typeof t.surfaceKey !== "string" ||
|
|
565
|
+
(t.authority !== undefined && !isUnifiedWakeAuthority(t.authority)) ||
|
|
566
|
+
!isUnifiedWakeOrigin(t.origin) ||
|
|
567
|
+
// The answer decision follows the same fail-loud rule as the rest: it is host-built or absent, never partly-formed. A shape this cannot read would silently degrade to an ordinary wake and swallow the answer, which is the failure class the whole leg exists to remove.
|
|
568
|
+
(t.answer !== undefined &&
|
|
569
|
+
(typeof t.answer.requestId !== "string" ||
|
|
570
|
+
t.answer.requestId.length === 0 ||
|
|
571
|
+
typeof t.answer.floor !== "string" ||
|
|
572
|
+
// Same fail-loud rule: the option id is host-built or absent, never partly-formed. An empty
|
|
573
|
+
// string would reach eve as an option it never offered and resolve the approval `invalid`,
|
|
574
|
+
// which is the exact failure this field exists to remove.
|
|
575
|
+
(t.answer.optionId !== undefined && (typeof t.answer.optionId !== "string" || t.answer.optionId.length === 0))))
|
|
576
|
+
) {
|
|
577
|
+
throw new Error("unified receive: malformed target (host dispatch bug) — refusing the wake");
|
|
578
|
+
}
|
|
579
|
+
if (!windowEnabledFor(t.surfaceKey, t.token)) {
|
|
580
|
+
// Defense-in-depth (the surface already checked): the standing-window gate no longer holds
|
|
581
|
+
// for this container — refuse, so a stale/raced dispatch can't open a shared window the
|
|
582
|
+
// config doesn't authorize. The surface's waitUntil catch logs the refusal.
|
|
583
|
+
throw new Error(`unified receive: no standing window is enabled for ${t.surfaceKey} — refusing the wake (fail-closed)`);
|
|
584
|
+
}
|
|
585
|
+
// Register the wake's reply target BEFORE the send, so the mapping exists before the model could possibly answer this wake. A store failure here propagates and the wake is NOT delivered: a wake whose reply could never be routed is better re-driven by the platform's webhook retry than answered into a black hole.
|
|
586
|
+
// The row is stamped with the BARE window token this wake is being DISPATCHED to, already structurally validated above. That stamp is the cross-domain fence the answerable-reply predicate checks, and because THIS is the single registration site it covers every wake class automatically: inbound diverts, task-window opening wakes scoped to the TASK's own token so a worker's pending set never leaks into the standing seat's, completion wakes, and redrive re-registers.
|
|
587
|
+
const org = deploymentOrg();
|
|
588
|
+
// 🔴 THE SURFACE KEY RIDES TOO (OPE-1756), and this is the only site that can write it. A
|
|
589
|
+
// propose site derives its scope from the TURN's ctx, which on a MERGED turn names the LAST
|
|
590
|
+
// delivery the merge kept rather than the wake that carried the ask — so the card and the halt
|
|
591
|
+
// address the wrong room. `t.surfaceKey` is the dispatching surface's own fully-qualified key,
|
|
592
|
+
// structurally validated above and never model-authored, so the addressed-wake road below
|
|
593
|
+
// (`proposalScopeKey`) can read the ASKING room back out of the wake it was asked under.
|
|
594
|
+
// The auth-carrying merge is unreachable on eve 0.54.3 — see this module's header — so the
|
|
595
|
+
// frozen key is still LOAD-BEARING: the fence admits sibling wakes with no merge (OPE-2042).
|
|
596
|
+
const store = getOperationalStore();
|
|
597
|
+
const existingAuthority = await resolveUnifiedWakeAuthority(store, org, t.wakeId);
|
|
598
|
+
// The resolver adds routing fields to its return value; persist only the closed authority
|
|
599
|
+
// sub-shape. Passing the enriched object back into the strict codec would make a redrive of a
|
|
600
|
+
// valid row fail because `origin`/`surfaceKey` are deliberately not authority fields.
|
|
601
|
+
const authority = existingAuthority
|
|
602
|
+
? {
|
|
603
|
+
binding: existingAuthority.binding,
|
|
604
|
+
requester: existingAuthority.requester,
|
|
605
|
+
nonMemberWake: existingAuthority.nonMemberWake,
|
|
606
|
+
}
|
|
607
|
+
: t.authority;
|
|
608
|
+
await registerUnifiedWakeTarget(store, org, t.wakeId, t.origin, new Date().toISOString(), t.token, t.inbound === true, t.addressing, t.surfaceKey, authority?.binding, authority);
|
|
609
|
+
ulog(`wake ${t.wakeId} from ${t.surfaceKey} → ${t.token} (origin ${t.origin.platform})`);
|
|
610
|
+
// GENERATION RETIREMENT (OPE-627). A rotation elsewhere in this process noted the OUTGOING generation's token; THIS is the only place that can retire it, because `from` binds a `unified`-local address and every window and DM seat lives on this channel. Retiring it runs eve's own child reaper over the workers that generation parked.
|
|
611
|
+
// Placed BEFORE the two delivery branches so the answer leg's early return cannot skip it, and BEFORE the send so the retirement does not depend on a delivery that may throw. It never throws and it never touches the incoming generation — channels/generation-retirement.ts holds the guards.
|
|
612
|
+
await drainGenerationRetirements(from, { org, incomingToken: t.token }, { labelsFor: auditLabels });
|
|
613
|
+
// THE ANSWER LEG. `respond` is the ONLY primitive that reaches a delegated worker: eve routes an answer to a child solely through response entries whose request id is in the parent session's proxy map, and a plain send falls to the PARENT every time. So this branch is the whole return leg; everything else was already here. THE ANSWER TEXT IS THE RENDERED WAKE, deliberately — byte-exactly what eve consumed as the answer before this branch existed — so what changed is WHERE the message is addressed, not what the model reads, and it keeps the envelope's provenance fence around the human's words, which a stripped body would lose. The residual is stated rather than hidden: the child also sees a `wake-id` it must never answer, and it cannot, because a subagent child has no wake identity at all and its `reply` refuses.
|
|
614
|
+
// NEVER DROP A MESSAGE: a `respond` that throws — a dead address, an empty batch — falls through to the ordinary send with the row LEFT IN PLACE, so the room is still heard and the question is still answerable, and both outcomes are audited. TEXT ONLY: an answer is a string, while a channel delivery may be structured content. Every OE divert renders a string today, so the non-string arm is unreachable — it is written as an AUDITED fall-through rather than a cast, because a future attachment-carrying wake must degrade to an ordinary message and never be flattened into an answer.
|
|
615
|
+
const answerText = typeof input.message === "string" ? input.message : undefined;
|
|
616
|
+
if (t.answer) {
|
|
617
|
+
const bare = bareTokenFromEveContext(t.token) ?? t.token;
|
|
618
|
+
const answerDetail = {
|
|
619
|
+
requestId: t.answer.requestId,
|
|
620
|
+
floor: t.answer.floor,
|
|
621
|
+
wakeId: t.wakeId,
|
|
622
|
+
chars: answerText?.length ?? 0,
|
|
623
|
+
// The ROOM the answer came from. These two rows are partitioned like every other row this channel writes, on the window's own domain, while the REFUSAL row is partitioned on the answering surface by the admission itself.
|
|
624
|
+
// Carrying the surface key in the detail is what lets an operator join the three.
|
|
625
|
+
surfaceKey: t.surfaceKey,
|
|
626
|
+
...(t.answer.taskId !== undefined ? { taskId: t.answer.taskId } : {}),
|
|
627
|
+
// WHICH OPTION SETTLED IT — an eve-minted enum (`approve` / `cancel`), never human prose, so
|
|
628
|
+
// it obeys the redaction rule the answer TEXT does not. It is the only durable trace that an
|
|
629
|
+
// approval was settled through this leg rather than merely delivered.
|
|
630
|
+
...(t.answer.optionId !== undefined ? { optionId: t.answer.optionId } : {}),
|
|
631
|
+
};
|
|
632
|
+
const { workspace: answerWorkspace, surface: answerSurface } = auditLabels(t.token);
|
|
633
|
+
try {
|
|
634
|
+
if (answerText === undefined) throw new Error("the delivery is structured content, not text — an answer must be text");
|
|
635
|
+
// 🔴 THE OPTION ID RIDES THE ANSWER (OPE-1056). eve's `inputResponseSchema` is
|
|
636
|
+
// `{optionId?, requestId, text?}`, and `harness/input-request-resolution.js`
|
|
637
|
+
// `resolveApprovalOutcome` reads `optionId` ALONE: `approve` approves, `cancel`/`deny`
|
|
638
|
+
// denies, and an ABSENT one answers `{approved:false, status:"invalid"}`. Sending only
|
|
639
|
+
// `text` therefore made every bridged approval unapprovable — the room's "Approve" denied
|
|
640
|
+
// the tool call. The TEXT still rides beside it, unchanged, because a question's answer IS
|
|
641
|
+
// the text and an approval's transcript should still carry what the human actually wrote.
|
|
642
|
+
const session = await from(t.token).respond([{ requestId: t.answer.requestId, text: answerText, ...(t.answer.optionId ? { optionId: t.answer.optionId } : {}) }], {
|
|
643
|
+
auth: input.auth,
|
|
644
|
+
// The side-channel context rides the answer for the same reason it rides the send: a
|
|
645
|
+
// surface that ships context (GitHub's issue-title line) must not lose it because the
|
|
646
|
+
// message happened to resolve a question.
|
|
647
|
+
...(t.context && t.context.length > 0 ? { context: [...t.context] } : {}),
|
|
648
|
+
});
|
|
649
|
+
// CONSUME-ONCE, and only after eve accepted the delivery: the row is what makes the NEXT
|
|
650
|
+
// message an ordinary wake again.
|
|
651
|
+
await forgetBridgedQuestion(getOperationalStore(), org, bare);
|
|
652
|
+
// …and the wake it rode is settled, because the seat will never see it (OPE-2116).
|
|
653
|
+
await settleAnsweredWake(getOperationalStore(), org, t.wakeId);
|
|
654
|
+
ulog(`answer ${t.answer.requestId} delivered to ${t.token} (floor ${t.answer.floor})`);
|
|
655
|
+
// Ids/enums/counts only — the answer TEXT is human prose and is never audited, the same
|
|
656
|
+
// redaction rule the question side states.
|
|
657
|
+
await appendAudit({
|
|
658
|
+
org,
|
|
659
|
+
platform: "unified",
|
|
660
|
+
workspace: answerWorkspace,
|
|
661
|
+
surface: answerSurface,
|
|
662
|
+
action: QUESTION_ANSWERED_AUDIT_ACTION,
|
|
663
|
+
detail: answerDetail,
|
|
664
|
+
}).catch(() => undefined);
|
|
665
|
+
return session;
|
|
666
|
+
} catch (err) {
|
|
667
|
+
// 🔴 A RATE-LIMITED ANSWER IS NOT A DROPPED ANSWER (OPE-1871). This hook re-runs on every
|
|
668
|
+
// attempt of the dispatch retry above it, so a 429 caught here would write one
|
|
669
|
+
// `question_answer_dropped` row PER ATTEMPT — each claiming "the question stays open" — for
|
|
670
|
+
// an answer the next attempt then delivers. Rethrow instead: the refusal belongs to the ONE
|
|
671
|
+
// retry loop that owns it, which either delivers this answer or ends in a named failure.
|
|
672
|
+
if (isRateLimitThrow(err)) throw err;
|
|
673
|
+
const error = (err instanceof Error ? err.message : String(err)).slice(0, 300);
|
|
674
|
+
console.warn(`[open-everywhere:unified] answer ${t.answer.requestId} could NOT be delivered (${error}) — falling back to an ordinary wake, the question stays open`);
|
|
675
|
+
await appendAudit({
|
|
676
|
+
org,
|
|
677
|
+
platform: "unified",
|
|
678
|
+
workspace: answerWorkspace,
|
|
679
|
+
surface: answerSurface,
|
|
680
|
+
action: QUESTION_ANSWER_DROPPED_AUDIT_ACTION,
|
|
681
|
+
detail: { ...answerDetail, error },
|
|
682
|
+
}).catch(() => undefined);
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
// The channel-local continuation address binds at `from(...)` time, and the per-send options carry the auth snapshot and the channel `context` strings. Same durable dispatch underneath — same token, same session.
|
|
686
|
+
return from(t.token).send(input.message, {
|
|
687
|
+
auth: completeWakeAuth(input.auth),
|
|
688
|
+
...(t.context && t.context.length > 0 ? { context: [...t.context] } : {}),
|
|
689
|
+
});
|
|
690
|
+
},
|
|
691
|
+
events: {
|
|
692
|
+
// MESSAGE-TOOL-ONLY, unconditional. On this channel the `reply` tool is ALWAYS armed, so a turn's terminal prose is NEVER a reply: a judge that wants to speak calls `reply` with the wake-id it answers. Terminal prose is dropped and AUDITED, and judged silence is audited too.
|
|
693
|
+
// This is also what makes coalesced cross-surface turns safe: there is no "post the completion somewhere" fallback whose somewhere could be the wrong surface.
|
|
694
|
+
async "message.completed"(data, channel, ctx) {
|
|
695
|
+
const sessionId = ctx?.session?.id; // stamped into the terminal audit rows → joins to the transcript
|
|
696
|
+
const action = finalMessageActionForTurn(data.finishReason, data.message);
|
|
697
|
+
if (action.kind === "buffer-tool-status") return;
|
|
698
|
+
// TURN-ID KEYED (OPE-805): consumeRepliedThisTurn only answers true for THIS turn's own mark —
|
|
699
|
+
// see reply-signal.ts's header for why a bare read-and-reset let a stale mark answer a LATER
|
|
700
|
+
// turn's read when this turn's own consuming call never ran.
|
|
701
|
+
const replied = consumeRepliedThisTurn(currentTurnId({ session: ctx.session } as unknown as BindableContext));
|
|
702
|
+
const org = deploymentOrg();
|
|
703
|
+
const { workspace, surface } = auditLabels(channel.continuation?.token);
|
|
704
|
+
// Measurement only — see {@link auditUnaccountedWakesForTurn}. It runs on every action kind reaching this line, before the branches below decide what THIS turn's own wake does.
|
|
705
|
+
// 🔴 NOT the only call site: the turn-lifecycle hook covers the buffer early return just above, where this line is never reached at all.
|
|
706
|
+
const accountingBind = { session: ctx.session } as unknown as BindableContext;
|
|
707
|
+
// ONE read of the react signal per turn: it is read-and-reset, and TWO readers need the answer — the accounting pass, and the bare-stop detector in the silent branch.
|
|
708
|
+
// A second consuming call always reads false, which would report a turn that reacted as a bare stop.
|
|
709
|
+
const reacted = consumeReactedThisTurn();
|
|
710
|
+
await auditUnaccountedWakesForTurn(
|
|
711
|
+
org,
|
|
712
|
+
workspace,
|
|
713
|
+
surface,
|
|
714
|
+
bareTokenFromEveContext(channel.continuation?.token),
|
|
715
|
+
currentTurnId(accountingBind),
|
|
716
|
+
currentWakeId(accountingBind),
|
|
717
|
+
reacted,
|
|
718
|
+
).catch(() => undefined);
|
|
719
|
+
if (action.kind === "silent") {
|
|
720
|
+
// Silent turn, routed GENERICALLY through the post arm: a provider whose surface keeps a session OPEN across the divert must still COMPLETE it on a SILENT turn, or it hangs on a spinner forever. Only Linear has one today, and THE MODEL'S PROSE NEVER POSTS on either side of this branch — what the arm renders is the ARM's own decision, and Linear's is a FIXED HOST ack, because it has no activity that terminates a session invisibly. Every non-Linear silent turn is unchanged: no arm means a no-op, nothing posted and the audit detail untouched, and an ambient origin with no open session is a no-op too.
|
|
721
|
+
// 🔴 A WAKE THIS TURN ANSWERED IS NOT SILENT. The action kind reads the model's FINAL MESSAGE, and the taught discipline is to post through the `reply` tool and then end with `no_reply` — so the ordinary, correct shape of a turn that spoke arrives here as "silent". Closing the session then is wrong twice over: it contradicts a post that already happened, and where the post was a hand-off it DESTROYS the session the answer still has to go to. Measured live: the seat delegated a Linear mention, posted the hand-off note, ended with `no_reply`, and the grounded answer moments later hit "entity not found", leaving the member only the hand-off note. KEYED ON THE WAKE, NOT THE TURN: the turn-wide mark would be the easy read and it is the WRONG one, because a turn that answered a Slack sibling and stayed silent on this Linear mention would stop closing a session nothing is going to answer — a spinner that hangs until the surface times it out. The per-wake record names the wakes `reply` actually posted to, done or not, and it is a NON-consuming read, so it disturbs no other reader. Fail-soft: an unreadable record reads empty and the close runs, the pre-fix behaviour.
|
|
722
|
+
const bind = { session: ctx.session } as unknown as BindableContext;
|
|
723
|
+
const wakeId = currentWakeId(bind);
|
|
724
|
+
const silentTurnId = currentTurnId(bind);
|
|
725
|
+
const answeredThisWake = wakeId !== undefined && repliedWakesThisTurn(silentTurnId).includes(wakeId);
|
|
726
|
+
const silentOrigin = !answeredThisWake && wakeId ? await resolveUnifiedWakeTarget(getOperationalStore(), org, wakeId).catch(() => null) : null;
|
|
727
|
+
// The close still runs; only the LINE it leaves changes. A sibling wake on the SAME container answered this room already, so denying that an answer exists is the contradiction the ack module's own contract forbids.
|
|
728
|
+
// TWO ARMS, AND THE SECOND CATCHES THE MEASURED SHAPE. The in-turn arm joins this turn's own reply record and is EXACT — it names the sibling wake that was answered — and it is blind by construction to a sibling wake eve ran as its OWN turn, which is what the soak run did. The durable arm asks the ledger whether an answer landed in this container AT OR AFTER this wake arrived, which survives the turn boundary. Ordered cheap-first, so the in-turn arm short-circuits and the extra store reads only happen on a turn that answered nothing here.
|
|
729
|
+
const answeredVia = silentOrigin ? await answeredContainerVia(org, silentTurnId, wakeId, silentOrigin) : undefined;
|
|
730
|
+
const answeredContainer = answeredVia !== undefined;
|
|
731
|
+
let linearClosed: boolean | undefined;
|
|
732
|
+
if (silentOrigin) {
|
|
733
|
+
try {
|
|
734
|
+
// Stamp ONLY when a session was actually closed (a MENTION origin whose arm ran); a
|
|
735
|
+
// no-arm / ambient origin returns false and leaves the audit detail unchanged.
|
|
736
|
+
if (await completeUnifiedSessionSilently(silentOrigin, {}, answeredContainer)) {
|
|
737
|
+
linearClosed = true;
|
|
738
|
+
ulog(`silent turn: closed the wake's open ${silentOrigin.platform} session without posting model prose (answered elsewhere in this container: ${answeredContainer})`);
|
|
739
|
+
}
|
|
740
|
+
} catch (err) {
|
|
741
|
+
// A failed close leaves the spinner up until the surface times it out — non-fatal, but log
|
|
742
|
+
// it so a persistent spinner is diagnosable. NOTHING visible was posted (silence held).
|
|
743
|
+
linearClosed = false;
|
|
744
|
+
ulog(`silent turn: FAILED to close the open ${silentOrigin.platform} session (spinner may persist until timeout): ${(err instanceof Error ? err.message : String(err)).slice(0, 200)}`);
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
// ONE exception: the model ended the turn on the bare no-reply SENTINEL. The TOOL route already carries an always-on observed row, which fires on this window too, so only the SENTINEL route was missing an unconditional trace — this is that route's twin, with the same action name, the same route detail and the same best-effort posture.
|
|
748
|
+
// `surface` falls back to "unknown" the same way `workspace` already does, because an audit row is worth more than the label it is missing. The wake id rides along too: this is a STANDING window, so many turns share one session id, and the wake id is what tells them apart.
|
|
749
|
+
if (action.reason === NO_REPLY_SENTINEL_REASON) {
|
|
750
|
+
await auditNoReplySentinelObserved({ org, platform: "unified", workspace, surface: surface ?? "unknown" }, sessionId, wakeId).catch(() => undefined);
|
|
751
|
+
}
|
|
752
|
+
// 🔴 BARE STOP — THE SECOND ALWAYS-ON EXCEPTION. The turn woke, ended with an EMPTY final message, and did nothing: no reply, no react, no `no_reply`, no sentinel. Nothing explains the silence, so it is an ANOMALY — a judgement that went missing — and not a judged silence, which is why the silences gate below must not hide it. Same reasoning, same action name and the same detect-and-log posture as the native Slack channel's own bare-stop arm; nothing is posted, and silence stays silence.
|
|
753
|
+
// THE HOLE THIS CLOSES, MEASURED: the bare-stop row had ONE producer, the NATIVE channel — a road no shipped domain travels, because every shipped surface windows. On this window a bare stop wrote NO row at all on prod's actions-only posture: an edit woke the seat, the wake row was registered a second later, the turn ran to completion and left an observation row on its own delivery, and the run left no reply row, no silence row and no failure row. The wake was never dropped; the TURN was, invisibly.
|
|
754
|
+
if (isBareStop(action, replied || reacted)) {
|
|
755
|
+
ulog(
|
|
756
|
+
`BARE STOP — turn ended with no reply, no react and no no_reply (wake ${wakeId ?? "none"}) — ` +
|
|
757
|
+
`this usually means a judgement went missing, not that one was made.`,
|
|
758
|
+
);
|
|
759
|
+
await appendAudit({
|
|
760
|
+
org,
|
|
761
|
+
platform: "unified",
|
|
762
|
+
workspace,
|
|
763
|
+
surface,
|
|
764
|
+
action: "turn.bare_stop",
|
|
765
|
+
detail: { wakeId: wakeId ?? null, ...(sessionId ? { sessionId } : {}) },
|
|
766
|
+
}).catch(() => undefined);
|
|
767
|
+
}
|
|
768
|
+
// ACTIONS-ONLY: the judged-silence row is GATED behind the silences flag, default OFF, so prod is actions-only. The session COMPLETION above runs UNCONDITIONALLY — it is real work, a terminal activity on an open agent session, and not a silence record — so only the audit write is gated.
|
|
769
|
+
// The eval targets set the flag and score abstention from this exact row. The sentinel route's minimal row above is the one exception, matching every other surface.
|
|
770
|
+
if (auditSilencesEnabled()) {
|
|
771
|
+
await appendAudit({
|
|
772
|
+
org,
|
|
773
|
+
platform: "unified",
|
|
774
|
+
workspace,
|
|
775
|
+
surface,
|
|
776
|
+
action: "unified.no_reply",
|
|
777
|
+
// `answeredContainer` rides ALONGSIDE `linearClosed`, and only when a session was actually closed: together they say WHICH fixed host line the member read, and it is absent on every turn that closed nothing.
|
|
778
|
+
// `answeredVia` names WHICH arm decided it, and rides only when one did — a false reading is one fact, but a true reading from the durable ledger and a true reading from this turn's own reply record are different findings, and the run that reopened this ticket was undiagnosable precisely because the row could not tell them apart.
|
|
779
|
+
detail: { reason: action.reason, replied, wakeId: wakeId ?? null, ...(linearClosed !== undefined ? { linearClosed, answeredContainer, ...(answeredVia ? { answeredVia } : {}) } : {}), ...(sessionId ? { sessionId } : {}) },
|
|
780
|
+
}).catch(() => undefined);
|
|
781
|
+
}
|
|
782
|
+
return;
|
|
783
|
+
}
|
|
784
|
+
// Terminal prose is structurally DROPPED by message-tool-only, on EVERY addressing. There is no second door. The ADDRESSED-MENTION PROSE BRIDGE, which used to deliver a direct mention's closing prose to that turn's wake, is DELETED (OPE-1982 — Tommy ruled on 2026-09-20 that the agent always answers through the `reply` tool). A direct-mention turn that ends in prose with no reply call therefore takes the SAME path an unaddressed turn takes: this drop row, then ONE corrective redrive that tells the seat to answer through the tool. One code path for every addressing, and every `reply.post` this deployment writes is a tool call the model made.
|
|
785
|
+
// 🔴 AND ON A LINEAR @MENTION WINDOW IT COSTS AN OPEN AGENT SESSION, WHICH THIS HANDLER NOW ENDS (OPE-2000). A Linear @MENTION wake holds an OPEN agent session (an AMBIENT Linear origin holds none), and only a `response` Agent Activity ends it. `completeUnifiedSessionSilently` has TWO callers: the silence arm above, and the FINAL PROSE DROP arm at the end of this handler. A prose ending keeps the session open exactly as long as an answer may still arrive — the corrective re-drive's `reply` with `done: true`, or the `thought` a `done: false` correction posts (`linear-post-arm.ts` `activityTypeFor`) when a worker still owes the wake — and once the correction cannot fire, the close arm below leaves the arm's own fixed host line instead of a spinner that hangs until Linear ages the session out.
|
|
786
|
+
// 🔴 WHAT THE DELETION COSTS, stated rather than hidden. A bridged answer used to reach the room whatever the model did next. Now it reaches the room only when the re-driven turn calls `reply`, and a second prose-only ending is audited silence — the loop guard on the redrive below caps the correction at one. Measured share before the deletion (board #225, 08:50–12:00Z): 5 bridged posts against 183 tool posts, 2.7%. The signal that would falsify the trade is a board where `turn.supervisor_prose_dropped` on `addressing=direct-mention` wakes outruns the `reply.post` rows that follow the redrive.
|
|
787
|
+
const bind = { session: ctx.session } as unknown as BindableContext;
|
|
788
|
+
// The host refusals this turn already drew on THIS wake. Nothing delivers here any more, so they stop no post; what they still do is NAME the withholding — an owed answer the host refused is a different event from an ambient drop, and the reason is the only thing that tells them apart — and SUPPRESS the redrive below, because correcting a turn towards the tool the host just refused is the host contradicting itself.
|
|
789
|
+
const blockingRefusal = proseBlockingRefusal(refusalsForWakeThisTurn(currentTurnId(bind), currentWakeId(bind)));
|
|
790
|
+
// Did the closing text carry an ANSWER, or a stub a reader gets nothing out of? `replyCarriesSubstance` is the shared floor (`channels/reply-post.ts`). Here it only LABELS the drop row, so an addressed turn that trailed off on `...` stays countable apart from one that wrote a real answer nobody received.
|
|
791
|
+
const proseCarriesSubstance = replyCarriesSubstance(action.text);
|
|
792
|
+
// Structurally dropped. `replied` distinguishes narration after a real reply-tool post, which is benign and common, from prose with no reply at all, which is the leak the gate exists to stop. Both drop, and the audit row says which.
|
|
793
|
+
// The row fires for every drop on this channel, and it carries WHICH addressing kind was dropped, so a reader can tell a genuinely ambient drop from an addressed one — the distinction the deleted bridge used to make by acting on it, and the only one left now that both take this path. See {@link ambientProseDropDetail} for what the two fields mean and why. A drop a HOST REFUSAL withheld arrives here too, and it is a different event from an ambient drop — the answer was owed, the host refused it, and the reason it refused is the only thing that tells the two apart — so it rides the same row under the same reason key, never a new row family. Ids, enums and counts only, never the prose text, which may hold the undelivered answer.
|
|
794
|
+
const { addressing: addressingKind, reason: dropReason } = ambientProseDropDetail(
|
|
795
|
+
currentTurnAddressing(bind),
|
|
796
|
+
currentTurnAddressed(bind),
|
|
797
|
+
replied,
|
|
798
|
+
blockingRefusal,
|
|
799
|
+
proseCarriesSubstance,
|
|
800
|
+
);
|
|
801
|
+
ulog(`message-tool-only: DROPPED terminal prose (${action.text.length} chars; replied=${replied}; addressing=${addressingKind}; reason=${dropReason}) — replies must come from the reply tool`);
|
|
802
|
+
await appendAudit({
|
|
803
|
+
org,
|
|
804
|
+
platform: "unified",
|
|
805
|
+
workspace,
|
|
806
|
+
surface,
|
|
807
|
+
action: "turn.supervisor_prose_dropped",
|
|
808
|
+
detail: {
|
|
809
|
+
chars: action.text.length,
|
|
810
|
+
replied,
|
|
811
|
+
addressing: addressingKind,
|
|
812
|
+
reason: dropReason,
|
|
813
|
+
wakeId: currentWakeId(bind) ?? null,
|
|
814
|
+
...(sessionId ? { sessionId } : {}),
|
|
815
|
+
},
|
|
816
|
+
}).catch(() => undefined);
|
|
817
|
+
|
|
818
|
+
// AUTO-REDRIVE THE REAL DROP, ON EVERY ADDRESSING: a drop with no reply reached no one, so a corrective SYSTEM wake is re-injected into THIS session for one more turn to deliver through the reply tool. It is the ONLY correction now — a direct mention has no bridge to fall back on — and it fires at most once per wake, so a second prose-only ending is audited silence. Three gates stand here — no reply, because benign narration after a real reply is not a drop; no blocking refusal; and a present continuation token, because that is the address the corrective wake is re-delivered TO. The redrive itself re-checks the reply mark and adds the origin resolve, the loop guard and the fail-soft-on-no-dispatch arm, and the corrective wake carries the ORIGINAL wake's id and origin, so a reply lands in the ORIGINAL conversation.
|
|
819
|
+
// 🔴 THE TOKEN CANNOT FAIL SOFT: an absent one would build a malformed dispatch, a wake to nowhere, which is a brand-new mis-keyed session — so the redrive is SKIPPED instead and the drop stays a final audited drop, exactly the fail-soft arm the redrive already has for "no dispatch path available". 🔴 AND A REFUSAL-WITHHELD DROP IS NOT REDRIVEN: the corrective wake tells the model to deliver this answer through the reply tool, which on a turn the host just refused is the host contradicting itself one turn later, when the refusal message it already read named the move it should make instead. That drop is the refusal taking effect, not a delivery failure to correct.
|
|
820
|
+
// Did the ONE correction actually go out? It is the whole question the session-close below asks, so it is read from the redrive's own outcome rather than re-derived: a turn whose correction fired still has a turn coming that can answer this wake, and closing the session under it would cut that answer off.
|
|
821
|
+
let redriven = false;
|
|
822
|
+
if (!replied && blockingRefusal === undefined && channel.continuation?.token !== undefined) {
|
|
823
|
+
const wakeId = currentWakeId(bind);
|
|
824
|
+
const rawToken = channel.continuation.token;
|
|
825
|
+
const domain = unifiedDomainFromToken(rawToken);
|
|
826
|
+
// The original delivery's auth attributes ride through (identity binding routes the redriven
|
|
827
|
+
// turn to the right domain), with any oe_addressing STRIPPED: the correction is a machine notice
|
|
828
|
+
// about the model's own output, not a person addressing the agent, so it must not claim an
|
|
829
|
+
// address it does not have. The one-shot loop guard, not the addressing, is what caps the
|
|
830
|
+
// correction at one.
|
|
831
|
+
const baseAttrs: Record<string, unknown> = { ...(bind.session?.auth?.current?.attributes ?? {}) };
|
|
832
|
+
delete baseAttrs[OE_ADDRESSING_ATTR];
|
|
833
|
+
// Bind the eve-specific re-injection over the best dispatch path — the captured primitive, else the self-dispatch hop, because this handler runs in the WORKFLOW process, where the capture is typically unset.
|
|
834
|
+
// Null when neither is available, which fail-softs: the redrive is skipped and the drop stays final. A failed delivery throws into the redrive's own failure arm.
|
|
835
|
+
const reinject: RedriveReinject = buildRedriveReinject(domain, rawToken, baseAttrs);
|
|
836
|
+
// 🔴 THE CORRECTION NAMES THE MOVE THAT SUCCEEDS. `delegation-pending` is the one refusal
|
|
837
|
+
// that does NOT withhold a drop, so the nudge fires on a turn whose worker still owes this
|
|
838
|
+
// wake — and `done` defaults to TRUE on the tool, so a nudge that names no `done` draws the
|
|
839
|
+
// same refusal a second time and the one correction is spent. The reason ledger this turn
|
|
840
|
+
// already read is what tells the two apart.
|
|
841
|
+
const owesWorkerReport = refusalsForWakeThisTurn(currentTurnId(bind), wakeId).includes(DELEGATION_PENDING_REFUSAL_REASON);
|
|
842
|
+
// 🔴 CARRY BEFORE THE RE-INJECTION, NOT AFTER IT. `maybeRedrive` AWAITS the re-injection, and
|
|
843
|
+
// on a warm in-process receive the corrective turn can run inside that await. A carry written
|
|
844
|
+
// afterwards would land after that turn's `reply` had already read an unclaimed ledger and
|
|
845
|
+
// nulled it — the block lost in exactly the case this exists for. Carrying first has no cost
|
|
846
|
+
// on the other paths: the `else` arm below drops it again on every outcome but `redriven`.
|
|
847
|
+
if (wakeId) carryRunRefusalsToRedrive(wakeId);
|
|
848
|
+
const outcome = await maybeRedrive(
|
|
849
|
+
{ org, workspace, surface, ...(sessionId ? { sessionId } : {}), wakeId, chars: action.text.length, replied, owesWorkerReport },
|
|
850
|
+
{ store: getOperationalStore(), reinject },
|
|
851
|
+
);
|
|
852
|
+
if (outcome.status === "redriven") {
|
|
853
|
+
// THE LEDGER IS NOW THE CORRECTIVE TURN'S (carried above). The deleted bridge posted
|
|
854
|
+
// `withRunRefusalBlock(prose, consume())` on the fire's OWN turn, so a fire refused a
|
|
855
|
+
// permission and then narrating still told the room what it could not do. The correction
|
|
856
|
+
// is a NEW turn and the ledger is turn-keyed, so without the carry it would be dropped
|
|
857
|
+
// exactly when the fire's report is written. The first `reply` answering this wake
|
|
858
|
+
// consumes it.
|
|
859
|
+
ulog(`auto-redrive: re-injected a corrective wake for wake ${outcome.originalWakeId} (dropped ${action.text.length} chars) — one more turn to reply`);
|
|
860
|
+
} else if (outcome.status !== "skip-replied") {
|
|
861
|
+
// THE CORRECTION IS EXHAUSTED (a spent loop guard, an unresolved origin, no dispatch
|
|
862
|
+
// path). Nothing further will answer this wake, so a ledger carried to it on an earlier
|
|
863
|
+
// drop is dropped rather than left to surface on some later turn that names the same wake.
|
|
864
|
+
if (wakeId) dropCarriedRunRefusals(wakeId);
|
|
865
|
+
ulog(`auto-redrive: NOT fired (${outcome.status}) for wake ${outcome.originalWakeId ?? "none"} — drop is final`);
|
|
866
|
+
}
|
|
867
|
+
redriven = outcome.status === "redriven";
|
|
868
|
+
}
|
|
869
|
+
// 🔴 A FINAL PROSE DROP CLOSES THE WAKE'S OPEN SESSION (OPE-2000). A Linear @MENTION wake holds an OPEN agent session, and only a `response` Agent Activity ends it — Linear has no invisible close, because `stop` is human-to-agent only. The silence arm above already closes such a session; this branch did not, so every prose ending on a Linear-origin window left the member watching a spinner until Linear timed it out. It closes ONLY when nothing is coming: the reply tool posted nothing TO THIS WAKE AND the one corrective re-drive did not fire, which is the same "the correction is exhausted" state the `else` arm above names. A redriven wake keeps its session open on purpose — the corrective turn's `reply` is the answer that session is waiting for.
|
|
870
|
+
// WHAT IT POSTS: the arm's own FIXED HOST ACK, never the model's dropped text (`completeUnifiedSessionSilently` → `post-arms.ts` `closeUnifiedSilently`), so the ruling this drop enforces is not undone by the close. `answeredContainerVia` picks WHICH fixed line, exactly as the silence arm does: a sibling wake that answered this room already must not be told nobody answered.
|
|
871
|
+
// GENERIC BY CONSTRUCTION, not a Linear branch: an origin whose arm registers no `closeUnifiedSilently`, and an AMBIENT origin, both return false and post nothing. The ORIGIN decides, never the turn's own platform stamp — a coalesced window can end a turn stamped with a sibling surface, and gating on that stamp would skip the close on exactly the wake that owns the open session. The cost is the same origin read the silence arm above already pays, on the rarer branch.
|
|
872
|
+
// 🔴 KEYED ON THE WAKE, NOT ON THE TURN, for the reason the silence arm above is (`answeredSameContainerThisTurn`'s own header states it): a turn-wide "did we reply anywhere" read is the easy one and it is WRONG. A coalesced turn that answered a Slack sibling and then ended in prose for a Linear @mention still owes THAT session its ending, and a turn-wide read would skip the close on exactly the wake holding the open session. The re-drive gate above keeps the turn-wide read it has always had — that is its own pre-existing contract, not this ticket's.
|
|
873
|
+
const dropWakeId = currentWakeId(bind);
|
|
874
|
+
const answeredThisWake = dropWakeId !== undefined && repliedWakesThisTurn(currentTurnId(bind)).includes(dropWakeId);
|
|
875
|
+
if (proseDropClosesWakeSession(answeredThisWake, redriven)) {
|
|
876
|
+
// Fail-soft in every direction, like the silence arm: an unresolvable origin closes nothing
|
|
877
|
+
// and a failed close leaves the spinner up until the surface times it out. Neither is worth
|
|
878
|
+
// failing a turn whose prose was already dropped and audited.
|
|
879
|
+
const dropOrigin = dropWakeId ? await resolveUnifiedWakeTarget(getOperationalStore(), org, dropWakeId).catch(() => null) : null;
|
|
880
|
+
// THE REGISTRY IS ASKED BEFORE THE `answered` READ, not instead of it: `completeUnifiedSessionSilently` would answer false for an arm with no member anyway, but the read that picks WHICH fixed line costs two more store round trips, and an ordinary ambient drop — the common case on every surface — must not pay them to learn that nothing can be closed.
|
|
881
|
+
if (dropOrigin && postArm(dropOrigin.platform)?.closeUnifiedSilently) {
|
|
882
|
+
try {
|
|
883
|
+
const answered = (await answeredContainerVia(org, currentTurnId(bind), dropWakeId, dropOrigin)) !== undefined;
|
|
884
|
+
if (await completeUnifiedSessionSilently(dropOrigin, {}, answered)) {
|
|
885
|
+
ulog(`final prose drop: closed the wake's open ${dropOrigin.platform} session with the host ack (answered elsewhere in this container: ${answered})`);
|
|
886
|
+
}
|
|
887
|
+
} catch (err) {
|
|
888
|
+
ulog(`final prose drop: FAILED to close the open ${dropOrigin.platform} session (spinner may persist until timeout): ${(err instanceof Error ? err.message : String(err)).slice(0, 200)}`);
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
},
|
|
893
|
+
// THE QUESTION BRIDGE. `ask_question` on this channel used to be a DEAD AFFORDANCE: eve emits the request, the harness parks the session, and until this handler existed nothing carried the prompt to a surface — no post, no row, no log line. The room saw silence, and its NEXT message was silently eaten as the unseen question's answer. Worse, two shipped prompts steer the model here on injection-shaped content, so the highest-stakes turns were the ones that went quiet. The bridge posts the prompt to THIS turn's wake through the exact route the `reply` tool resolves, and writes no reply row, because a question is not an answer: the wake stays unanswered and the reply tool can still answer it.
|
|
894
|
+
// 🔴 AND IT REMEMBERS, ONLY ON A POSTED QUESTION. The row keyed by this window's token is what turns the room's next message into a response addressed to the request id — the return leg a DELEGATED WORKER's question has no other way to reach, because eve's implicit "the next message is the answer" only ever served a question the window session raised itself, and a proxied child's answer falls to the parent unless a request id addresses it. A DROPPED question writes nothing: nobody was shown anything, so nothing may be consumed as its answer. eve's session-limit PARK is NOT ours and flows on untouched to the park hook, which retires the generation; both sides read the ONE predicate, so neither can claim the other's request.
|
|
895
|
+
async "input.requested"(data, channel, ctx) {
|
|
896
|
+
try {
|
|
897
|
+
const question = detectBridgeableInputRequest((data as { requests?: unknown } | undefined)?.requests);
|
|
898
|
+
if (!question) return; // eve's token-limit park (or an unrecognisable batch) — not ours.
|
|
899
|
+
const org = deploymentOrg();
|
|
900
|
+
const { workspace, surface } = auditLabels(channel.continuation?.token);
|
|
901
|
+
const bind = { session: ctx?.session } as unknown as BindableContext;
|
|
902
|
+
const wakeId = currentWakeId(bind);
|
|
903
|
+
const sessionId = typeof ctx?.session?.id === "string" && ctx.session.id.length > 0 ? ctx.session.id : undefined;
|
|
904
|
+
// THE BARE WINDOW TOKEN, hoisted above the post (OPE-1720). It keys the outstanding-question
|
|
905
|
+
// row below, and the card's click ticket has to be written BEFORE the card is visible — a row
|
|
906
|
+
// written after the post is a row a fast tap can miss. eve reports the token NAMESPACED with
|
|
907
|
+
// the channel name (`unified:oe-dom:…`), so strip it the same way every other reader does.
|
|
908
|
+
const bare = bareTokenFromEveContext(channel.continuation?.token);
|
|
909
|
+
// ONE ticket per posted card, minted before the post and written by it. An approval this host
|
|
910
|
+
// renders no buttons for yields NO actions and the post stays exactly what it was — text.
|
|
911
|
+
const cardTicket = mintApprovalCardTicket();
|
|
912
|
+
let cardActionCount = 0;
|
|
913
|
+
const outcome = await bridgeQuestionToSurface(
|
|
914
|
+
{ org, platform: "unified", workspace, surface, ...(sessionId ? { sessionId } : {}), ...(wakeId ? { wakeId } : {}) },
|
|
915
|
+
question,
|
|
916
|
+
{
|
|
917
|
+
resolveOrigin: async () => (wakeId ? await resolveUnifiedWakeTarget(getOperationalStore(), org, wakeId).catch(() => null) : null),
|
|
918
|
+
// No audit struct ⇒ no `reply.post` row, the same call windowSpendGate's refusal makes.
|
|
919
|
+
post: async (origin, text) => {
|
|
920
|
+
// 🔴 THE CARD IS ONLY POSTED WHERE THE TAP CAN LAND. Three conditions, each of which
|
|
921
|
+
// degrades to the TEXT post rather than to a half-built card: the arm must declare the
|
|
922
|
+
// unified component plane (`canPostUnifiedActions` — the registry's own "presence is
|
|
923
|
+
// the declaration"), the question must yield host-labelled buttons at all
|
|
924
|
+
// (`approvalCardActions` is empty for every non-approval and for an eve vocabulary this
|
|
925
|
+
// host has no label for), and the click ticket must actually be stored. A button whose
|
|
926
|
+
// ticket was never written settles nothing, so the last one is what keeps a store blip
|
|
927
|
+
// from putting a dead Approve button on a governed connector write.
|
|
928
|
+
// 🔴 FOUR CONDITIONS NOW, and the fourth is the tap's own ADDRESS (OPE-1863): the
|
|
929
|
+
// answer is delivered by durable session id, because a continuation token is
|
|
930
|
+
// channel-local and the tap lands on the surface's route rather than on this channel's
|
|
931
|
+
// (see `approval-card.ts` `approvalCardRespondVia`). A turn whose session id this
|
|
932
|
+
// handler cannot read is a card nothing could settle, so it degrades to TEXT.
|
|
933
|
+
const actions = canPostUnifiedActions(origin.platform) ? approvalCardActions(question, cardTicket) : [];
|
|
934
|
+
// LOUD on the one condition no offline tier can drive: the session id is read off the
|
|
935
|
+
// live turn context, so a card that degrades for want of it degrades in silence unless
|
|
936
|
+
// this line says so. The same value is already stamped on the `turn.question_bridged`
|
|
937
|
+
// row, which is where an operator confirms it on a real host.
|
|
938
|
+
if (actions.length > 0 && sessionId === undefined) {
|
|
939
|
+
console.warn(`[open-everywhere:unified] question bridge: the turn names no session id — posting ${question.toolName} as TEXT, because a tap would have nowhere to deliver`);
|
|
940
|
+
}
|
|
941
|
+
if (actions.length === 0 || bare === undefined || sessionId === undefined) return postUnifiedReply(origin, text);
|
|
942
|
+
let cardContainerKey: string | undefined;
|
|
943
|
+
try {
|
|
944
|
+
cardContainerKey = unifiedThreadRef(origin).channelKey;
|
|
945
|
+
} catch {
|
|
946
|
+
cardContainerKey = undefined;
|
|
947
|
+
}
|
|
948
|
+
const stored = await rememberApprovalCardTicket(getOperationalStore(), org, cardTicket, {
|
|
949
|
+
sessionId,
|
|
950
|
+
bareToken: bare,
|
|
951
|
+
...(cardContainerKey ? { containerKey: cardContainerKey } : {}),
|
|
952
|
+
requestId: question.requestId,
|
|
953
|
+
optionIds: approvalOptionIds(question),
|
|
954
|
+
});
|
|
955
|
+
if (!stored) return postUnifiedReply(origin, text);
|
|
956
|
+
cardActionCount = actions.length;
|
|
957
|
+
return postUnifiedReply(origin, text, {}, undefined, undefined, undefined, actions);
|
|
958
|
+
},
|
|
959
|
+
},
|
|
960
|
+
);
|
|
961
|
+
if (outcome.status === "bridged") {
|
|
962
|
+
// WHICH ROOM MAY ANSWER, derived from the origin the post actually used, so the stored key and the posted room cannot disagree. A window token spans every room on the domain, so without this the next message anywhere would be eaten as the answer.
|
|
963
|
+
// A derivation that throws leaves the key ABSENT, and an absent key never answers: the question stays open rather than being answered by a guess.
|
|
964
|
+
let containerKey: string | undefined;
|
|
965
|
+
try {
|
|
966
|
+
containerKey = unifiedThreadRef(outcome.origin).channelKey;
|
|
967
|
+
} catch {
|
|
968
|
+
containerKey = undefined;
|
|
969
|
+
}
|
|
970
|
+
const remembered =
|
|
971
|
+
bare === undefined
|
|
972
|
+
? false
|
|
973
|
+
: await rememberBridgedQuestion(getOperationalStore(), org, bare, {
|
|
974
|
+
requestId: question.requestId,
|
|
975
|
+
...(containerKey ? { containerKey } : {}),
|
|
976
|
+
...(wakeId ? { wakeId } : {}),
|
|
977
|
+
// AN APPROVAL'S OPTION IDS, and nothing for any other kind. The room answers with
|
|
978
|
+
// a word; eve settles on an id; this row is the only place the two can be joined,
|
|
979
|
+
// because the parked request itself is not readable from the answering wake.
|
|
980
|
+
optionIds: approvalOptionIds(question),
|
|
981
|
+
});
|
|
982
|
+
ulog(
|
|
983
|
+
`question bridge: posted ${question.toolName} (${question.kind}) to ${outcome.platform} for wake ${wakeId ?? "none"} — id ${outcome.id}` +
|
|
984
|
+
(cardActionCount > 0 ? ` (card: ${cardActionCount} button(s))` : " (text only)") +
|
|
985
|
+
(remembered && containerKey
|
|
986
|
+
? ` (answerable from ${containerKey}: ${question.requestId})`
|
|
987
|
+
: " (NOT answerable — no outstanding-question row, or no room to bind it to)"),
|
|
988
|
+
);
|
|
989
|
+
} else {
|
|
990
|
+
// LOUD: the turn is parked on a question nobody can see, which is the pre-fix failure —
|
|
991
|
+
// the difference now is that it is a row and a line rather than silence.
|
|
992
|
+
console.warn(
|
|
993
|
+
`[open-everywhere:unified] question bridge: DROPPED ${question.toolName} (${outcome.reason}) for wake ${wakeId ?? "none"} — the session is parked on a question the room cannot see (audited)`,
|
|
994
|
+
);
|
|
995
|
+
}
|
|
996
|
+
} catch (err) {
|
|
997
|
+
// The turn has already parked; a throw here would only break the event dispatch on top of it.
|
|
998
|
+
console.warn(`[open-everywhere:unified] question bridge skipped: ${String(err)}`);
|
|
999
|
+
}
|
|
1000
|
+
},
|
|
1001
|
+
// A failed judge turn must not spam ANY surface (there is no error-post arm here by
|
|
1002
|
+
// construction) — audit + log, reserved posture, same as the per-surface supervisors.
|
|
1003
|
+
async "turn.failed"(data, channel) {
|
|
1004
|
+
const { workspace, surface } = auditLabels(channel.continuation?.token);
|
|
1005
|
+
ulog(`supervisor turn failed on domain ${workspace} (audited, nothing posted): ${data.message}`);
|
|
1006
|
+
await appendAudit({
|
|
1007
|
+
org: deploymentOrg(),
|
|
1008
|
+
platform: "unified",
|
|
1009
|
+
workspace,
|
|
1010
|
+
surface,
|
|
1011
|
+
action: "unified.supervisor_turn_failed",
|
|
1012
|
+
detail: {
|
|
1013
|
+
message: String(data.message).slice(0, 500),
|
|
1014
|
+
...failureDiag(data.code, data.details),
|
|
1015
|
+
...unresumableAuditDetail(data.message, data.code),
|
|
1016
|
+
},
|
|
1017
|
+
}).catch(() => undefined);
|
|
1018
|
+
},
|
|
1019
|
+
async "session.failed"(data, channel) {
|
|
1020
|
+
const { workspace, surface } = auditLabels(channel.continuation?.token);
|
|
1021
|
+
ulog(`supervisor session failed on domain ${workspace} (audited, nothing posted): ${data.message}`);
|
|
1022
|
+
await appendAudit({
|
|
1023
|
+
org: deploymentOrg(),
|
|
1024
|
+
platform: "unified",
|
|
1025
|
+
workspace,
|
|
1026
|
+
surface,
|
|
1027
|
+
action: "unified.supervisor_session_failed",
|
|
1028
|
+
// `unresumable` names the one failure class a retry can never fix — a session whose stamped spec version the current runtime cannot read.
|
|
1029
|
+
// It is a LABEL, not a remedy: the measured mismatch never reaches this handler at all, so nothing here rotates, and the row exists so the class is nameable if it ever arrives.
|
|
1030
|
+
detail: {
|
|
1031
|
+
message: String(data.message).slice(0, 500),
|
|
1032
|
+
...failureDiag(data.code, data.details),
|
|
1033
|
+
...unresumableAuditDetail(data.message, data.code),
|
|
1034
|
+
},
|
|
1035
|
+
}).catch(() => undefined);
|
|
1036
|
+
},
|
|
1037
|
+
},
|
|
1038
|
+
});
|
|
1039
|
+
|
|
1040
|
+
export default channel;
|
|
1041
|
+
|
|
1042
|
+
/**
|
|
1043
|
+
* The ONE diversion helper every surface's single-window wiring calls: stamp the origin platform and wake id into the forwarded auth, which is what the binding's unified hop resolves per-delivery identity from, assemble the typed receive target, and hand the wake to eve's cross-channel send pointing at THIS channel.
|
|
1044
|
+
* That hop is what makes the effective token a unified one, and thereby ONE context window across providers. Shared so the surfaces cannot drift, and so the deterministic proof exercises the REAL wiring with a capture.
|
|
1045
|
+
*/
|
|
1046
|
+
export async function divertToUnifiedWindow(
|
|
1047
|
+
receive: RouteHandlerArgs["to"],
|
|
1048
|
+
input: {
|
|
1049
|
+
readonly message: string;
|
|
1050
|
+
readonly context?: readonly string[];
|
|
1051
|
+
/** The RAW unified-supervisor token (eve prefixes `unified:` on the target channel's send). */
|
|
1052
|
+
readonly token: string;
|
|
1053
|
+
readonly window: UnifiedWindowWake;
|
|
1054
|
+
readonly surfaceKey: string;
|
|
1055
|
+
/** The surface's own wake auth — forwarded verbatim plus the two window stamps. */
|
|
1056
|
+
readonly auth: { attributes?: Record<string, unknown> };
|
|
1057
|
+
/** Exact host-frozen authority for a continuation whose delivery has no platform identity of
|
|
1058
|
+
* its own. Ordinary ingress omits this and derives the binding from its verified auth. */
|
|
1059
|
+
readonly binding?: SurfaceBinding;
|
|
1060
|
+
/**
|
|
1061
|
+
* This wake is an INTERNAL host dispatch and not an attended arrival from a human — a task spawn, a completion wake, the auto-redrive, an approval-decision wake, a routine fire. It skips the attended spend gate; see {@link windowSpendGate} for why refusing one would starve a caller, or break the silent-routine carve-out, rather than prevent a spend.
|
|
1062
|
+
* The flag is opt-OUT, so a forgotten ingress fails CLOSED and is gated. Host-set at the dispatch site, never model-authored, and never carried on a payload the model can shape.
|
|
1063
|
+
*/
|
|
1064
|
+
readonly internalDispatch?: true;
|
|
1065
|
+
},
|
|
1066
|
+
): Promise<void> {
|
|
1067
|
+
// THE INGRESS RECEIPT INSTANT (OPE-1716) — read on the FIRST line, before the gates, the store
|
|
1068
|
+
// reads and the dispatch, so the number means "when this deployment took the wake" and not "when
|
|
1069
|
+
// it finished deciding about it". The row that carries it is written below, after admission.
|
|
1070
|
+
const ingressMs = Date.now();
|
|
1071
|
+
// PROVIDER-SELECTION admission. This is the ONE cross-surface ingress every provider front door funnels through, and the origin platform is the only thing a wake carries that names a provider — so it is where a deployment that did NOT select a provider refuses that provider's inbound traffic, audibly.
|
|
1072
|
+
// Structurally the case should be unreachable, because an unselected bundle has no route at all, but a stored origin, a stale webhook still pointed at a de-selected surface, or a half-pruned fork can all still land here — and a wake delivered for a platform whose registries were all refused would sit in a window it can never reply from, so dropping it AUDITED is the honest outcome. An undeclared selection admits everything, so library mode and tests are unaffected.
|
|
1073
|
+
if (!admitInboundSurface(input.window.origin.platform)) {
|
|
1074
|
+
ulog(`REFUSED inbound wake from unselected provider "${input.window.origin.platform}" (audited, not delivered)`);
|
|
1075
|
+
await appendAudit({
|
|
1076
|
+
org: deploymentOrg(),
|
|
1077
|
+
platform: input.window.origin.platform,
|
|
1078
|
+
workspace: parseWindowToken(input.token.startsWith("unified:") ? input.token.slice("unified:".length) : input.token)?.domain ?? "unknown",
|
|
1079
|
+
surface: input.surfaceKey,
|
|
1080
|
+
action: "provider.unselected_wake_refused",
|
|
1081
|
+
detail: { wakeId: input.window.wakeId, selected: [...(providerSelection() ?? [])] },
|
|
1082
|
+
}).catch(() => undefined);
|
|
1083
|
+
return;
|
|
1084
|
+
}
|
|
1085
|
+
if (input.binding !== undefined) {
|
|
1086
|
+
if (
|
|
1087
|
+
!isFrozenSurfaceBinding(input.binding) ||
|
|
1088
|
+
input.binding.org !== deploymentOrg() ||
|
|
1089
|
+
!wakeBindingMatchesSurfaceKey(input.binding, input.surfaceKey) ||
|
|
1090
|
+
!wakeBindingMatchesOrigin(input.binding, input.window.origin)
|
|
1091
|
+
) {
|
|
1092
|
+
throw new Error("unified continuation binding does not match its durable origin");
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
// SPEND GATE (attended arrivals only — see {@link windowSpendGate}). Placed BEFORE the dispatch
|
|
1096
|
+
// capture, the wake-target registration and the F1 recovery read, so a declined wake costs
|
|
1097
|
+
// nothing beyond the check itself and leaves no map row behind: it is a wake that never happened.
|
|
1098
|
+
if (input.internalDispatch !== true && (await windowSpendGate(input)) === "declined") {
|
|
1099
|
+
ulog(`DECLINED single-window wake ${input.window.wakeId} from ${input.surfaceKey} — over its spend cap (refusal posted, no model turn)`);
|
|
1100
|
+
return;
|
|
1101
|
+
}
|
|
1102
|
+
// Capture this live cross-channel `to` so the completion handler (which eve hands no dispatch
|
|
1103
|
+
// primitive) can fire the auto-redrive from the same process. See rememberUnifiedReceive's note.
|
|
1104
|
+
rememberUnifiedReceive(receive);
|
|
1105
|
+
const sources = windowSourcesForDivert(input.token, input.window.origin.platform);
|
|
1106
|
+
// The BARE dispatched-to token for the window-token stamp — the input is documented RAW, and the prefix is stripped defensively. It is the per-delivery FALLBACK identity channel for a resumed seat whose session-static continuation token is blank at tool-execute time.
|
|
1107
|
+
// Truthful by construction: this IS the token being dispatched to — an owner divert passes the route's token, a task dispatch the task token, never a stale default.
|
|
1108
|
+
const bareToken = input.token.startsWith("unified:") ? input.token.slice("unified:".length) : input.token;
|
|
1109
|
+
// THE ORIGIN'S REPLY ANCHOR — where inside its conversation a post for this wake hangs — rides the
|
|
1110
|
+
// delivery as oe_reply_anchor, so a binding can thread approval cards / post_file / notices under
|
|
1111
|
+
// the message that woke the seat: the native adapter's thread_ts semantic the raw-event auth does
|
|
1112
|
+
// not carry (OE_REPLY_ANCHOR_ATTR).
|
|
1113
|
+
// 🔴 ASKED OF THE CODEC, NEVER OF A PLATFORM NAME (OPE-1826). This line read
|
|
1114
|
+
// `origin.platform === "slack" ? origin.replyAnchorTs : undefined`, which is the whole of the
|
|
1115
|
+
// "the anchor codec is Slack-only" defect in one expression: a second surface with a placement
|
|
1116
|
+
// outside its conversation identity had nowhere to say so, and adding one meant editing core. Each
|
|
1117
|
+
// codec now declares its own placement axis (`placementRef`), and a surface that keeps placement
|
|
1118
|
+
// INSIDE its thread key declares nothing and stamps nothing — the same `undefined` as before.
|
|
1119
|
+
// Only Slack's binding READS the stamp today (`slack-identity.ts`); a surface whose binding does
|
|
1120
|
+
// not read it is unaffected by carrying it.
|
|
1121
|
+
const replyAnchor = unifiedPlacementRef(input.window.origin);
|
|
1122
|
+
// A nonce unique to THIS delivery, minted HERE at the one send in the tree, so every wake class gets one — inbound diverts, task-window opening wakes and completion wakes alike.
|
|
1123
|
+
// The REDRIVE is why it matters: it is the one path that re-stamps an EXISTING wake id, so without the nonce it cannot be told apart from "no delivery at all".
|
|
1124
|
+
const deliveryId = mintWakeId();
|
|
1125
|
+
const authorityAttributes: Record<string, unknown> = { ...(input.auth.attributes ?? {}) };
|
|
1126
|
+
// Provider auth never gets to author this host-only stamp. Delete first on every road, then add
|
|
1127
|
+
// only the explicit binding that passed the origin/surface/org checks above.
|
|
1128
|
+
delete authorityAttributes[OE_FROZEN_SURFACE_BINDING_ATTR];
|
|
1129
|
+
if (input.binding !== undefined) authorityAttributes[OE_FROZEN_SURFACE_BINDING_ATTR] = JSON.stringify(input.binding);
|
|
1130
|
+
const authorityAuth = { ...input.auth, attributes: authorityAttributes };
|
|
1131
|
+
const auth = stampUnifiedWindowAuth(authorityAuth, input.window.origin.platform, input.window.wakeId, input.window.addressing, sources, bareToken, replyAnchor, deliveryId);
|
|
1132
|
+
// Snapshot the binding from THIS wake's stamped auth, before the standing seat can accept another
|
|
1133
|
+
// surface. The durable row copies it into delegated task wakes; delayed workers restore it.
|
|
1134
|
+
const bindingContext: BindableContext = { channel: { kind: "unified" }, session: { auth: { current: auth as never } } };
|
|
1135
|
+
const binding = input.binding ?? (carriesPlatformIdentity(bindingContext) ? bindFrom(bindingContext) : undefined);
|
|
1136
|
+
// THE INGRESS ANCHOR (OPE-1716). One row per ADMITTED ATTENDED wake, written here because this is
|
|
1137
|
+
// the one cross-surface ingress every provider front door funnels through — the same property the
|
|
1138
|
+
// provider-selection gate above relies on — and written AFTER both gates, so a refused or declined
|
|
1139
|
+
// wake leaves no row: it is a wake that never happened, and counting it would inflate the measure.
|
|
1140
|
+
// An INTERNAL dispatch writes nothing: it has no vendor behind it, so it has no vendor→ingress
|
|
1141
|
+
// stretch to record, and rowing task spawns and redrives would bury the arrivals this measures.
|
|
1142
|
+
// Best-effort like every other audit call on this path — an observability row must never fail a wake.
|
|
1143
|
+
// 🔴 AWAITED, AND BEFORE THE SEND, both deliberately. Awaited because a row scheduled "for later"
|
|
1144
|
+
// on this platform may never run (the reality hooks/log-flush.ts records), and a measurement row
|
|
1145
|
+
// that is sometimes missing makes the measure unreadable. Before the send because a wake whose
|
|
1146
|
+
// dispatch THROWS is exactly the one an incident reader needs the ingress instant for. The write
|
|
1147
|
+
// therefore costs the delivery one store round trip; `ingressMs` is read before it, so the row's
|
|
1148
|
+
// own number is unaffected, and what the round trip shifts is the turn-start anchor — which lands
|
|
1149
|
+
// in the pre-turn segment, where it is reported rather than judged.
|
|
1150
|
+
// 🔴 THE WHOLE BLOCK IS INSIDE THE TRY, not just the append. The detail is BUILT from clock
|
|
1151
|
+
// readings, and a build that threw inside `appendAudit(...)`'s argument expression would reject
|
|
1152
|
+
// this function before the `.catch` could ever attach — turning an observability row into a lost
|
|
1153
|
+
// message. The readings are bounded at their source too (wake-timing.ts `usable`); this is the
|
|
1154
|
+
// second of the two, because "an observability row must never fail a wake" has to be enforced
|
|
1155
|
+
// here rather than merely stated.
|
|
1156
|
+
try {
|
|
1157
|
+
if (input.internalDispatch !== true) {
|
|
1158
|
+
await appendAudit({
|
|
1159
|
+
org: deploymentOrg(),
|
|
1160
|
+
platform: input.window.origin.platform,
|
|
1161
|
+
workspace: parseWindowToken(bareToken)?.domain ?? "unknown",
|
|
1162
|
+
surface: input.surfaceKey,
|
|
1163
|
+
action: WAKE_INGRESS_ACTION,
|
|
1164
|
+
// The row's `ts` IS the ingress receipt time, stamped from the same instant the detail carries,
|
|
1165
|
+
// so a reader who joins on `ts` and a reader who joins on `ingressTs` get the same answer.
|
|
1166
|
+
ts: new Date(ingressMs).toISOString(),
|
|
1167
|
+
detail: wakeIngressDetail({
|
|
1168
|
+
wakeId: input.window.wakeId,
|
|
1169
|
+
deliveryId,
|
|
1170
|
+
surfaceKey: input.surfaceKey,
|
|
1171
|
+
...(input.window.vendorTs ? { vendor: input.window.vendorTs } : {}),
|
|
1172
|
+
ingressMs,
|
|
1173
|
+
}),
|
|
1174
|
+
});
|
|
1175
|
+
}
|
|
1176
|
+
} catch {
|
|
1177
|
+
/* observation only — the wake proceeds without its anchor rather than dying with it */
|
|
1178
|
+
}
|
|
1179
|
+
// THE ANSWER DECISION — is this message the answer to a question this window already showed the room? Decided HERE and not in `receive` for one reason: this is the only site that knows an arrival is ATTENDED.
|
|
1180
|
+
// An internal dispatch has no human behind it and must never resolve a question. The verdict rides the target, so nothing on the self-dispatch wire can claim it.
|
|
1181
|
+
const answer = await resolveInboundAnswer(input, bareToken);
|
|
1182
|
+
const target: UnifiedReceiveTarget = {
|
|
1183
|
+
token: input.token,
|
|
1184
|
+
wakeId: input.window.wakeId,
|
|
1185
|
+
origin: input.window.origin,
|
|
1186
|
+
...(binding
|
|
1187
|
+
? {
|
|
1188
|
+
authority: {
|
|
1189
|
+
binding,
|
|
1190
|
+
requester: requesterVerdictFor({
|
|
1191
|
+
text: input.message,
|
|
1192
|
+
seat: input.internalDispatch === true ? "worker" : "room",
|
|
1193
|
+
inherited: authString(authorityAttributes[OE_REQUESTER_ATTR]),
|
|
1194
|
+
inheritedCandidates: authString(authorityAttributes[OE_REQUESTER_CANDIDATES_ATTR]),
|
|
1195
|
+
}),
|
|
1196
|
+
nonMemberWake: authString(authorityAttributes[OE_CHAT_NONMEMBER_ATTR]) === "true",
|
|
1197
|
+
},
|
|
1198
|
+
}
|
|
1199
|
+
: {}),
|
|
1200
|
+
...(answer ? { answer } : {}),
|
|
1201
|
+
surfaceKey: input.surfaceKey,
|
|
1202
|
+
// The same ATTENDED fact the answer decision above turns on, carried to the wake row.
|
|
1203
|
+
inbound: input.internalDispatch !== true,
|
|
1204
|
+
// The accounting audit's addressing signal, carried straight through from the same wake this whole target was built from.
|
|
1205
|
+
...(input.window.addressing ? { addressing: input.window.addressing } : {}),
|
|
1206
|
+
...(input.context && input.context.length > 0 ? { context: input.context } : {}),
|
|
1207
|
+
};
|
|
1208
|
+
const message = input.message;
|
|
1209
|
+
const deliveredAuth = auth;
|
|
1210
|
+
// PRUNED-DEPLOYMENT STRAND. This await is the ONE place OE holds a wake-delivery failure: the run key is fetched while eve DISPATCHES the continuation, before any turn is queued, so a seat pinned to a deleted deployment rejects HERE rather than in the unobservable queue-triggered turn.
|
|
1211
|
+
// Classify it and mark the seat for rotation, then rethrow unchanged — the caller's own failure handling is untouched, and a surface that wants THIS message answered re-delivers after the mark. Every other failure passes through unchanged.
|
|
1212
|
+
//
|
|
1213
|
+
// 🔴 A RATE-LIMITED DISPATCH IS RETRIED, NEVER DROPPED (OPE-1871). This send is the ONE dispatch
|
|
1214
|
+
// every WINDOWED wake takes — on all six surfaces — so wrapping it here puts those six on one road
|
|
1215
|
+
// rather than six roads. The road is `channels/rate-limit-retry.ts` — the same bounded backoff the
|
|
1216
|
+
// six provider write seams already use — reached through its thrown-shape adapter, because eve's
|
|
1217
|
+
// queue client turns the 429 into a `TooManyRequestsError` before OE ever sees a response. What was
|
|
1218
|
+
// measured on ship #213: a Slack seat's wake died on `surface.wake_failed {"message":"Too many
|
|
1219
|
+
// requests — please retry later"}` 14 s after its `wake.ingress` row, with no `wake.turn_start` at
|
|
1220
|
+
// all. The member's mention was lost, and nothing retried it.
|
|
1221
|
+
// The NATIVE per-container send a domain takes when `window.topology` is off never reaches this
|
|
1222
|
+
// function. OPE-1881 wraps the seven launch closures in the five native provider modules through
|
|
1223
|
+
// `channels/native-wake-retry.ts`, using this same primitive and policy. Keeping the two funnels
|
|
1224
|
+
// explicit matters: a windowed retry has a wakeId join; a native dispatch truthfully has only its
|
|
1225
|
+
// per-dispatch deliveryId.
|
|
1226
|
+
// EVERY OTHER FAILURE IS UNTOUCHED, on its first attempt: the adapter rethrows anything that is not
|
|
1227
|
+
// a rate-limit refusal, so the pruned-deployment strand below classifies exactly the errors it did
|
|
1228
|
+
// before. A refusal that outlasts the budget arrives there too, as a `RateLimitExhaustedError` —
|
|
1229
|
+
// not this class, so the heal correctly marks nothing, and the surface's own `wake_failed` row then
|
|
1230
|
+
// carries a message naming the attempts and the time waited.
|
|
1231
|
+
try {
|
|
1232
|
+
await withRetryAfterThrown(() => receive(channel, target).send(message, { auth: completeWakeAuth(deliveredAuth) }), {
|
|
1233
|
+
surface: input.window.origin.platform,
|
|
1234
|
+
operation: WAKE_DISPATCH_OPERATION,
|
|
1235
|
+
...WAKE_DISPATCH_RETRY_POLICY,
|
|
1236
|
+
// ONE ROW PER REFUSAL, awaited before the wait it describes, so a wake that was refused and
|
|
1237
|
+
// then delivered is tellable apart from one that was refused and lost. Best-effort like every
|
|
1238
|
+
// other audit call on this path: an observability row must never fail a wake.
|
|
1239
|
+
onRefusal: (refusal) =>
|
|
1240
|
+
appendAudit({
|
|
1241
|
+
org: deploymentOrg(),
|
|
1242
|
+
platform: input.window.origin.platform,
|
|
1243
|
+
workspace: parseWindowToken(bareToken)?.domain ?? "unknown",
|
|
1244
|
+
surface: input.surfaceKey,
|
|
1245
|
+
action: WAKE_RETRY_ACTION,
|
|
1246
|
+
detail: wakeRetryDetail({
|
|
1247
|
+
wakeId: input.window.wakeId,
|
|
1248
|
+
deliveryId,
|
|
1249
|
+
surfaceKey: input.surfaceKey,
|
|
1250
|
+
attempt: refusal.attempt,
|
|
1251
|
+
delayMs: refusal.delayMs,
|
|
1252
|
+
waitedMs: refusal.waitedMs,
|
|
1253
|
+
outcome: refusal.outcome,
|
|
1254
|
+
refusalStatus: refusal.refusalStatus,
|
|
1255
|
+
}),
|
|
1256
|
+
}).catch(() => undefined),
|
|
1257
|
+
});
|
|
1258
|
+
} catch (err) {
|
|
1259
|
+
await healPrunedDeploymentStrand({
|
|
1260
|
+
token: bareToken,
|
|
1261
|
+
surfaceKey: input.surfaceKey,
|
|
1262
|
+
platform: input.window.origin.platform,
|
|
1263
|
+
atIso: new Date().toISOString(),
|
|
1264
|
+
err,
|
|
1265
|
+
});
|
|
1266
|
+
throw err;
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
/**
|
|
1271
|
+
* INBOUND-ingress variant of {@link divertToUnifiedWindow} — the thread-ownership ROUTING leg, whose pure decision lives in thread-ownership.ts. A spawn records a durable ownership row for its thread, and THIS is the read that makes it live: when an inbound surface message lands in a thread OWNED by a live task worker or thread seat, the wake is dispatched to the OWNER session's token instead of the standing seat's — ownership-versus-awareness routing, where the owner ACTS on the message and the standing seat is not woken by it.
|
|
1272
|
+
* 🔴 WHAT THE STANDING SEAT THEN KNOWS, STATED EXACTLY (OPE-1696). The header used to claim the seat "stays ambiently aware through backscroll on its next wake", and that was FALSE when it was written: a standing wake carried no backscroll at all after its first, so an owned thread's replies reached the seat through nothing. Two mechanisms make the claim true now, and neither is universal, so read the bound with the claim: (1) the SINCE-LAST-WAKE CATCH-UP (OPE-1695 (b)) — on a surface whose adapter fetches container history, the seat's next wake reads the room since the seat last looked, THREAD-ENRICHED, so an owned thread's replies do arrive as context; today that is wired on SLACK only, and on every other surface the seat reads nothing between its own wakes. (2) The HAND-BACK REPORT — `complete_thread` stores the thread seat's closing report and wakes the standing seat with it, on every surface. Where neither reaches, `read_thread_seat` is the seat's own way to ask, and that is the documented path rather than an assumed awareness. Everything else about the delivery is UNCHANGED: same message, same wake registration so the owner's `reply` resolves the same conversation, same surface re-check, same addressing, so a mention in an owned thread keeps its owed-reply treatment. WHO CALLS THIS: a surface's INBOUND single-window divert only. The INTERNAL dispatch legs — a spawn, the auto-redrive, an approval-decision wake — MUST stay on the raw divert, because each already names its exact target token and must never be re-routed by ownership.
|
|
1273
|
+
* FLAG-GATED and FAIL-CLOSED-TO-STANDING at every step, so flag-off, and every unowned thread, is unchanged. The flag off is a straight passthrough, with no store read and no audit. A NON-thread-scoped wake — a container's TOP-LEVEL message — goes standing UNCONDITIONALLY, with NO ownership lookup at all: thread sessions own THREADS, and top-level traffic is the standing seat's domain, full stop. That is the CHANNEL-CAPTURE guard: a top-level wake keys on its container fallback, so an ownership row recorded off a top-level spawn, legacy rows already on disk included, would otherwise match EVERY top-level message in the channel and blind the standing seat until its TTL. Such rows are now simply unreachable from ingress and die by TTL, deliberately NOT reaped here, because reaping would need the very lookup this guard exists to skip. No ownership row, or a store error, means standing. A STALE owner — a rotated generation, a re-homed domain, a non-owner token shape — means standing, and the dead row is lazily reaped and audited. The owner divert itself failing FALLS BACK to the standing divert, because a message is never dropped, and a standing-divert failure then propagates loudly. The routing decision is audited with ids and counts only, NEVER message text, and ONLY when an ownership row existed, because a plain unowned message is not an event.
|
|
1274
|
+
*/
|
|
1275
|
+
export async function divertInboundToUnifiedWindow(
|
|
1276
|
+
receive: RouteHandlerArgs["to"],
|
|
1277
|
+
input: {
|
|
1278
|
+
readonly message: string;
|
|
1279
|
+
readonly context?: readonly string[];
|
|
1280
|
+
/** The RAW standing window token the surface resolved for this container (eve prefixes
|
|
1281
|
+
* `unified:` on the target channel's send) — the DEFAULT wake target, and the source of the
|
|
1282
|
+
* live domain+generation the staleness checks compare against. */
|
|
1283
|
+
readonly token: string;
|
|
1284
|
+
readonly window: UnifiedWindowWake;
|
|
1285
|
+
readonly surfaceKey: string;
|
|
1286
|
+
/** The surface's own wake auth — forwarded verbatim; an owner divert adds only the `oe_grain`
|
|
1287
|
+
* re-stamp (host-set, matching what the owner session booted as). */
|
|
1288
|
+
readonly auth: { attributes?: Record<string, unknown> };
|
|
1289
|
+
},
|
|
1290
|
+
): Promise<void> {
|
|
1291
|
+
// Flag off ⇒ byte-identical passthrough (no store read on the hot path at all).
|
|
1292
|
+
if (!oneshotAgentEnabled()) return divertToUnifiedWindow(receive, input);
|
|
1293
|
+
// Only a STANDING window target can be re-routed (a task/seat-token target would mean the caller
|
|
1294
|
+
// is not an inbound surface divert — defensive, the callers above never do this).
|
|
1295
|
+
const standing = parseWindowToken(input.token);
|
|
1296
|
+
if (!standing || isTaskWindowId(standing.windowId) || isThreadSeatWindowId(standing.windowId)) {
|
|
1297
|
+
return divertToUnifiedWindow(receive, input);
|
|
1298
|
+
}
|
|
1299
|
+
// CHANNEL-CAPTURE guard, see the header: only a wake that POSITIVELY landed inside a thread can be routed by ownership.
|
|
1300
|
+
// A top-level container message goes to the standing seat with NO lookup, because its thread key is the container fallback, which a top-level-spawned ownership row would match channel-wide.
|
|
1301
|
+
if (!isThreadScopedWakeOrigin(input.window.origin)) {
|
|
1302
|
+
return divertToUnifiedWindow(receive, input);
|
|
1303
|
+
}
|
|
1304
|
+
// ONE indexed lookup per inbound THREAD message (the §S2 hot-path budget), keyed by the SAME
|
|
1305
|
+
// unifiedThreadRef derivation the spawn used — so spawn and ingress always agree on identity.
|
|
1306
|
+
const org = deploymentOrg();
|
|
1307
|
+
const store = getOperationalStore();
|
|
1308
|
+
const ref = unifiedThreadRef(input.window.origin);
|
|
1309
|
+
const owner = await resolveThreadOwner(store, org, ref); // fail-closed: store error ⇒ null ⇒ standing
|
|
1310
|
+
const route = routeThreadMessage(owner, standing.generation, standing.domain);
|
|
1311
|
+
// ids/counts ONLY in detail (never the message) — the routing story without the content.
|
|
1312
|
+
const audit = (detail: Record<string, unknown>) =>
|
|
1313
|
+
appendAudit({
|
|
1314
|
+
org,
|
|
1315
|
+
platform: "unified",
|
|
1316
|
+
workspace: standing.domain,
|
|
1317
|
+
action: "thread.ingress_routed",
|
|
1318
|
+
detail: { wakeId: input.window.wakeId, channelKey: ref.channelKey, threadKey: ref.threadKey, surfaceKey: input.surfaceKey, ...detail },
|
|
1319
|
+
}).catch(() => undefined);
|
|
1320
|
+
if (route.kind !== "task") {
|
|
1321
|
+
if (owner !== null) {
|
|
1322
|
+
// A row existed but no longer routes (stale generation / re-homed domain / non-owner shape):
|
|
1323
|
+
// the §S2 lazy reap — clear it so the thread cleanly returns to the standing seat, and
|
|
1324
|
+
// record the decision (this is the one "standing" outcome worth a row; unowned is not).
|
|
1325
|
+
const reaped = await clearThreadOwner(store, org, ref);
|
|
1326
|
+
await audit({ routed: "standing", reason: "stale-owner", ownerId: owner, reaped });
|
|
1327
|
+
}
|
|
1328
|
+
return divertToUnifiedWindow(receive, input);
|
|
1329
|
+
}
|
|
1330
|
+
// OWNED thread ⇒ dispatch to the OWNER session's token. Pre-stamp the grain the owner booted as
|
|
1331
|
+
// (`t/`→task, `s/`→thread — the token-shape read routeThreadMessage did), so stampUnifiedWindowAuth's
|
|
1332
|
+
// `??` preserves it over its "standing" default and windowGrainOf resolves the owner's real hands.
|
|
1333
|
+
const attributes: Record<string, unknown> = { ...(input.auth.attributes ?? {}), [OE_GRAIN_ATTR]: route.grain };
|
|
1334
|
+
try {
|
|
1335
|
+
await divertToUnifiedWindow(receive, { ...input, token: route.token, auth: { ...input.auth, attributes } });
|
|
1336
|
+
} catch (err) {
|
|
1337
|
+
// 🔴 AN EXHAUSTED RETRY IS NOT A FALLBACK CASE (OPE-1871). The owner divert already spent this
|
|
1338
|
+
// wake's whole backoff budget against the queue, and the standing divert would meet the SAME
|
|
1339
|
+
// queue — so falling back here would spend a second full budget, double the sleep, and write a
|
|
1340
|
+
// second `wake.ingress` row for one wake. The fallback exists for a failure the standing path
|
|
1341
|
+
// might not share (a cold-process edge, a raced refusal in the receive gate); a rate limit is
|
|
1342
|
+
// not one. Rethrow to the surface's loud catch, which records it exactly as it records any
|
|
1343
|
+
// other undelivered wake.
|
|
1344
|
+
if (err instanceof RateLimitExhaustedError) {
|
|
1345
|
+
await audit({ routed: "none", reason: "owner-divert-rate-limited", ownerId: route.token, grain: route.grain, attempts: err.attempts, waitedMs: err.waitedMs });
|
|
1346
|
+
throw err;
|
|
1347
|
+
}
|
|
1348
|
+
// NEVER drop a message: an owner divert that fails (a cold-process edge, a raced refusal in the
|
|
1349
|
+
// receive gate) falls back to the standing path — the seat that spawned the owner can still act.
|
|
1350
|
+
// A failure of the standing divert itself then propagates to the surface's loud catch, as today.
|
|
1351
|
+
const errMsg = (err instanceof Error ? err.message : String(err)).slice(0, 300);
|
|
1352
|
+
await audit({ routed: "standing", reason: "owner-divert-failed", ownerId: route.token, grain: route.grain, error: errMsg });
|
|
1353
|
+
return divertToUnifiedWindow(receive, input);
|
|
1354
|
+
}
|
|
1355
|
+
await audit({ routed: "owner", ownerId: route.token, grain: route.grain });
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
/**
|
|
1359
|
+
* Build the auto-redrive's re-injection dependency over the best available dispatch path — the captured in-process primitive when this process has one, else the self-dispatch hop. NULL when neither is available, which fail-softs the redrive without burning the loop guard, exactly the old no-dispatch behaviour.
|
|
1360
|
+
* The corrective wake is AMBIENT, with no addressing, so no addressing stamp rides — it is a machine notice about the model's own output, never a person addressing the agent. Exported, with the availability decision inside, so the unit test drives the offline arms — the warm captured dispatch, and the unavailable one — without a live channel event; the cold signed-HTTP hop is covered by its own test.
|
|
1361
|
+
*/
|
|
1362
|
+
export function buildRedriveReinject(domain: string | undefined, rawToken: string, baseAttrs: Record<string, unknown>): RedriveReinject {
|
|
1363
|
+
if (!crossProcessDispatchAvailable()) return null;
|
|
1364
|
+
// The seat's own windowId, for the solo/pseudo-domain arm of the surface-key pick (see that
|
|
1365
|
+
// function). A token that will not parse simply leaves it undefined and the roster read decides.
|
|
1366
|
+
const seatWindowId = parseWindowToken(rawToken)?.windowId;
|
|
1367
|
+
return async (origin, message, originalWakeId) => {
|
|
1368
|
+
const surfaceKey = pickRedriveSurfaceKey(domain, origin.platform, seatWindowId);
|
|
1369
|
+
if (!surfaceKey) throw new Error(`unified redrive: no crossSurfaceWindow surface key for domain ${domain ?? "?"}`);
|
|
1370
|
+
await deliverUnifiedDispatch({
|
|
1371
|
+
message,
|
|
1372
|
+
token: rawToken,
|
|
1373
|
+
window: { wakeId: originalWakeId, origin }, // ambient (no addressing) ⇒ no oe_addressing stamp
|
|
1374
|
+
surfaceKey,
|
|
1375
|
+
auth: { attributes: baseAttrs },
|
|
1376
|
+
});
|
|
1377
|
+
};
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
/**
|
|
1381
|
+
* Auth attribute marking a TASK session's OPENING wake as spawned from a TAINTED parent turn. HOST-set on the child auth and never model-authored — see unified-window.ts's §AUTH-ATTRIBUTE PROVENANCE for the verified source citation — the same unforgeable channel as the window stamps.
|
|
1382
|
+
* The child's boot-seed reads it to taint turn one, so a consequential write the child makes on that turn gates exactly as if the child had itself read the untrusted content the parent's brief was composed from.
|
|
1383
|
+
*/
|
|
1384
|
+
export const OE_SPAWN_TAINTED_ATTR = "oe_spawn_tainted";
|
|
1385
|
+
|
|
1386
|
+
/**
|
|
1387
|
+
* Async-dispatch a wake to a TASK, thread-grain window — the async spawn primitive's delivery leg. It delivers through the in-process capture when this process holds one, else the self-dispatch hop, because a tool execute runs in eve's WORKFLOW process, which handles no webhooks, so the capture is structurally unset there — the live-prod root cause of async spawn never working.
|
|
1388
|
+
* Either way it is DISPATCH, not join: it hands eve the delivery for a never-before-seen token, so a fresh session opens, and returns — the spawning standing seat's turn NEVER blocks, so it keeps servicing channel messages. The surface key for the fail-closed window-enabled re-check and the audit label is derived from the domain the same way the redrive does, and the domain is already proven window-enabled because the standing seat exists, so any of its window channels satisfies the re-check. FAIL-SOFT-LOUD: with NEITHER path available, or on a failed self-call, it THROWS an instructive error, so the seat falls back to declining rather than dropping silently. `tainted` forwards the parent turn's taint onto the child's opening auth.
|
|
1389
|
+
*/
|
|
1390
|
+
export async function dispatchTaskWindow(input: {
|
|
1391
|
+
/** The task window token (window-key.ts taskWindowId → formatWindowToken), same domain+generation as the parent. */
|
|
1392
|
+
readonly token: string;
|
|
1393
|
+
/** The rendered brief the child boots on (its opening wake body). */
|
|
1394
|
+
readonly message: string;
|
|
1395
|
+
/** A fresh host-minted wakeId for the child's opening delivery (its reply-map key). */
|
|
1396
|
+
readonly wakeId: string;
|
|
1397
|
+
/** The domain the task belongs to — resolves the window-enabled surfaceKey for the re-check. */
|
|
1398
|
+
readonly domain: string;
|
|
1399
|
+
/** The thread the task owns — the SAME origin the standing seat is handling, so the child replies there. */
|
|
1400
|
+
readonly origin: UnifiedWakeOrigin;
|
|
1401
|
+
/** The parent turn's auth attributes, forwarded verbatim — egress policy and capability inheritance. */
|
|
1402
|
+
readonly parentAuthAttributes?: Record<string, unknown>;
|
|
1403
|
+
/** Stamp the child's opening auth tainted iff the parent turn ingested untrusted content (§S1). */
|
|
1404
|
+
readonly tainted: boolean;
|
|
1405
|
+
/** The child's GRAIN (host-stamped `oe_grain`). Default "task" — the async worker (full wide hands).
|
|
1406
|
+
* spawn_thread_session (Stage T2) passes "thread" to mint a CONVERSATIONAL seat (narrow hands). */
|
|
1407
|
+
readonly grain?: "task" | "thread";
|
|
1408
|
+
/**
|
|
1409
|
+
* A short, already-truncated description of the delegated work, stamped onto the opening delivery so the worker's replies can bracket a tier signal.
|
|
1410
|
+
* Omitted ⇒ no stamp, and the reply still brackets on grain alone, with the generic fallback label.
|
|
1411
|
+
*/
|
|
1412
|
+
readonly taskLabel?: string;
|
|
1413
|
+
/** The DISPATCHING turn's eve turn id (identity/binding.ts `currentTurnId`), so the WHO-ASKED
|
|
1414
|
+
* stamp below is read for THIS turn and not for whatever the seat served last. Omitted ⇒ the
|
|
1415
|
+
* unkeyed read, which is what a caller with no context can honestly offer. */
|
|
1416
|
+
readonly turnId?: string;
|
|
1417
|
+
/** The SPAWNING seat's own windowId (window-key.ts `parseWindowToken(...).windowId`) — a solo
|
|
1418
|
+
* seat's IS its surface key, which is the only resolvable answer on a seat whose domain is the
|
|
1419
|
+
* `org` pseudo-domain. Omitted ⇒ the domain-roster pick, unchanged. */
|
|
1420
|
+
readonly seatWindowId?: string;
|
|
1421
|
+
}): Promise<void> {
|
|
1422
|
+
if (!crossProcessDispatchAvailable()) {
|
|
1423
|
+
throw new Error(
|
|
1424
|
+
"dispatchTaskWindow: no live cross-surface dispatch is available on this instance — this process has handled no surface webhook (no captured cross-channel dispatch) and the self-dispatch route is not configured (arm OE_CREDENTIAL_ENCRYPTION_KEY; plus OE_PUBLIC_BASE_URL when the deployment's own URL isn't discoverable). Retry from a message-driven turn.",
|
|
1425
|
+
);
|
|
1426
|
+
}
|
|
1427
|
+
const surfaceKey = pickRedriveSurfaceKey(input.domain, input.origin.platform, input.seatWindowId);
|
|
1428
|
+
if (!surfaceKey) {
|
|
1429
|
+
throw new Error(`dispatchTaskWindow: couldn't resolve a window-enabled surface for domain "${input.domain}" — the task cannot be dispatched.`);
|
|
1430
|
+
}
|
|
1431
|
+
const attributes: Record<string, unknown> = { ...(input.parentAuthAttributes ?? {}) };
|
|
1432
|
+
// GRAIN stamp: host-set and unforgeable — see unified-window.ts's §AUTH-ATTRIBUTE PROVENANCE — and it OVERRIDES any standing grain forwarded verbatim from the parent seat's auth, because the stamp helper preserves it over its own default, so the grain reader resolves the child's real hands.
|
|
1433
|
+
// The default is the full-hands worker grain; a thread seat passes the narrow conversational one.
|
|
1434
|
+
attributes[OE_GRAIN_ATTR] = input.grain ?? "task";
|
|
1435
|
+
// TASK-LABEL stamp, the reply tier signal: host-set from the caller's already-truncated brief, and ONLY when supplied.
|
|
1436
|
+
// A caller that needs no visible label simply omits it, and the worker's reply still brackets on grain alone. It never overwrites a forwarded stamp with a blank one.
|
|
1437
|
+
if (input.taskLabel) attributes[OE_TASK_LABEL_ATTR] = input.taskLabel;
|
|
1438
|
+
// INVOKER-POSTURE stamp, host-set here at the one place the delegation edge is built, so the child's kit is bounded by whoever caused the PARENT's run rather than by its own token shape. It is read off the parent's own per-wake slot, because this function is a plain call inside the parent's turn step, so the classification made at turn start is live.
|
|
1439
|
+
// BELT, NOT BRACES — and it is worth being precise about which is which, because the security property must not rest on this line. A WEBHOOK fire's child already classifies correctly WITHOUT any stamp, because its discriminator is an ATTRIBUTE and the whole bag is forwarded verbatim one line above. What the stamp adds is the class whose raw discriminator does NOT survive the hop: an EVENT-SUBSCRIPTION fire, identified by the auth's principal id, which is not forwarded. It cannot widen anything by construction, because the resolver folds the stamp in with a MINIMUM over the lattice, so a stale, absent or garbage stamp loses to the child's own markers. The NATIVE subagent child needs nothing here at all: eve hands it the parent's auth slot BY REFERENCE, so it reads this same bag through the same markers with no separate plumbing.
|
|
1440
|
+
attributes[INVOKER_POSTURE_ATTR] = currentInvokerPosture();
|
|
1441
|
+
// WHO-ASKED stamp, host-set here at the one place the cross-session delegation edge is built. A dispatched worker is NOT an eve-native child — no session parent, its own token, the synthetic channel — so it was never covered by the child fence, and its opening message is a RAW interpolation of the parent MODEL's brief. Without a stamp the worker read that brief, and a forged wake frame inside it minted an admin requester at a gate that hands out the widest tools.
|
|
1442
|
+
// UNCONDITIONAL, and that is the security property: an ABSENT stamp is what lets a worker read its own text, so a turn that cannot name its asker must stamp the unverified value OUT LOUD rather than stay silent. It also OVERWRITES any value forwarded from the parent, so a stale asker from an earlier delivery on the seat cannot ride the hop.
|
|
1443
|
+
attributes[OE_REQUESTER_ATTR] = requesterStampForDispatch(input.turnId);
|
|
1444
|
+
// THE CANDIDATE SET beside it — the evidence the all-candidates admin-standing rule needs. The measured escalation ran in a WORKER, so the set has to survive THIS hop; a rule that reached only the eve-native child would not close it.
|
|
1445
|
+
// SET-OR-DELETE, for the same reason the stamp above is unconditional: the attribute bag starts as the parent seat's whole bag, so a list a PREVIOUS delivery left there names some other turn's askers, and writing only on a value would let it ride the hop and serve a worker under a stale set.
|
|
1446
|
+
const requesterCandidates = requesterCandidatesStampForDispatch(input.turnId);
|
|
1447
|
+
if (requesterCandidates !== undefined) attributes[OE_REQUESTER_CANDIDATES_ATTR] = requesterCandidates;
|
|
1448
|
+
else delete attributes[OE_REQUESTER_CANDIDATES_ATTR];
|
|
1449
|
+
if (input.tainted) attributes[OE_SPAWN_TAINTED_ATTR] = "true";
|
|
1450
|
+
// addressing:"direct-mention" — a task IS owed a reply, so its wake renders as addressed and the
|
|
1451
|
+
// child is told it owes an answer (the same owed-reply treatment a mention gets). There is no prose
|
|
1452
|
+
// fallback behind that: a child that ends in prose without calling `reply` is dropped and re-driven
|
|
1453
|
+
// like any other turn (OPE-1982).
|
|
1454
|
+
// A failed delivery (in-process or self-call) propagates LOUDLY — the seat declines and says so.
|
|
1455
|
+
await deliverUnifiedDispatch({
|
|
1456
|
+
message: input.message,
|
|
1457
|
+
token: input.token,
|
|
1458
|
+
window: { wakeId: input.wakeId, origin: input.origin, addressing: "direct-mention" },
|
|
1459
|
+
surfaceKey,
|
|
1460
|
+
auth: { attributes },
|
|
1461
|
+
});
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1464
|
+
/**
|
|
1465
|
+
* Wake an EXISTING standing WINDOW seat with an AMBIENT system notice that a pending approval it was waiting on has just been DECIDED, or has EXPIRED through the click path. A sibling of {@link dispatchTaskWindow}, but deliberately AMBIENT with NO addressed stamp, because the decide handler already posted the human-facing decision NOTICE into the anchor thread: this delivery only updates the SESSION's own belief, so it stops answering fresh asks from a stale "still pending" memory. The decision render is silence-biased, and the ambient wake's turn-final prose is DROPPED by message-tool-only, so the model must consciously `reply`, naming the wake id, if a follow-up is genuinely warranted — its default is silence.
|
|
1466
|
+
* It delivers through the same dispatch helper, so it works from either process; the decide handler runs in the webhook process, unlike a tool execute. BEST-EFFORT: it returns a boolean and NEVER throws, because the in-thread notice is the human-facing source of truth, so a lost session wake only means the belief updates on the session's NEXT human wake through backscroll. LOOP-SAFE: this is a message delivery that re-enters NO approval code, and a decision wake is emitted ONLY from the decide path and never from a session turn, so a wake can never trigger another wake. The notice carries no buttons, so the woken session cannot decide anything.
|
|
1467
|
+
*/
|
|
1468
|
+
export async function dispatchApprovalDecisionWake(input: {
|
|
1469
|
+
/** The CURRENT window token of the proposing session (read off its channel_session registry row). */
|
|
1470
|
+
readonly token: string;
|
|
1471
|
+
/** The proposing session's reply target — the anchor thread the card lived in. */
|
|
1472
|
+
readonly origin: UnifiedWakeOrigin;
|
|
1473
|
+
/** Host-minted wakeId for this delivery (the caller mints it + rendered it into the message). */
|
|
1474
|
+
readonly wakeId: string;
|
|
1475
|
+
/** The pre-rendered ambient decision notice (approvals/decision-wake.ts). */
|
|
1476
|
+
readonly message: string;
|
|
1477
|
+
/** The proposing session's domain — resolves the window-enabled surfaceKey for the fail-closed re-check. */
|
|
1478
|
+
readonly domain: string;
|
|
1479
|
+
/** The proposal wake's exact host-validated authority. Present for newly minted approvals; legacy
|
|
1480
|
+
* rows omit it and get no session wake; their in-thread decision notice remains the truth. */
|
|
1481
|
+
readonly binding?: SurfaceBinding;
|
|
1482
|
+
/** The authenticated requester frozen on the proposal turn. The later decision actor is not the
|
|
1483
|
+
* requester of any work the resumed seat delegates. */
|
|
1484
|
+
readonly requester?: RequesterVerdict;
|
|
1485
|
+
readonly nonMemberWake?: boolean;
|
|
1486
|
+
/**
|
|
1487
|
+
* Auth to resume under. Empty, the default, means the stamp helper defaults the grain to standing — the ambient supervisor's own narrow-hands posture, which is exactly right for an informational notice.
|
|
1488
|
+
* The delivery carries no clicker's platform identity. Newly minted rows instead restore the exact
|
|
1489
|
+
* proposal binding through the separate host-frozen field above; legacy rows carry neither and can
|
|
1490
|
+
* update belief but cannot lend ambient/env authority to later work.
|
|
1491
|
+
*/
|
|
1492
|
+
readonly authAttributes?: Record<string, unknown>;
|
|
1493
|
+
}): Promise<boolean> {
|
|
1494
|
+
// No exact proposal authority means no internal session delivery. The human-facing decision
|
|
1495
|
+
// notice already landed beside the card; falling through here would let the standing seat's
|
|
1496
|
+
// ambient bridge or env stand-in choose a different surface for later work.
|
|
1497
|
+
if (input.binding === undefined || input.requester === undefined) return false;
|
|
1498
|
+
const attributes: Record<string, unknown> = { ...(input.authAttributes ?? {}) };
|
|
1499
|
+
if (input.requester !== undefined) {
|
|
1500
|
+
attributes[OE_REQUESTER_ATTR] = input.requester.kind === "requester" ? input.requester.principalId : REQUESTER_UNVERIFIED;
|
|
1501
|
+
if (input.requester.kind === "unverified" && input.requester.candidates !== undefined) {
|
|
1502
|
+
attributes[OE_REQUESTER_CANDIDATES_ATTR] = JSON.stringify(input.requester.candidates);
|
|
1503
|
+
} else {
|
|
1504
|
+
delete attributes[OE_REQUESTER_CANDIDATES_ATTR];
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
if (input.nonMemberWake === true) attributes[OE_CHAT_NONMEMBER_ATTR] = "true";
|
|
1508
|
+
else delete attributes[OE_CHAT_NONMEMBER_ATTR];
|
|
1509
|
+
return dispatchAmbientSeatWake({ ...input, authAttributes: attributes });
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1512
|
+
/**
|
|
1513
|
+
* Wake an EXISTING seat — standing or thread — with an AMBIENT delivery. The shared body behind {@link dispatchApprovalDecisionWake} and the two seat-to-seat deliveries OPE-1696 adds: a `message_thread_seat` steer, and a thread seat's hand-back REPORT to the parent that spawned it.
|
|
1514
|
+
* 🔴 AMBIENT IS THE WHOLE SAFETY PROPERTY OF THIS SHAPE. There is no addressed stamp, so the woken turn's terminal prose is DROPPED by message-tool-only: a seat that wants to put words in the room must consciously call `reply` with a wake id it holds, and its default is silence. That is what lets one seat message another without the message becoming a post in somebody's room.
|
|
1515
|
+
* BEST-EFFORT: returns a boolean and NEVER throws. A caller whose delivery is the ONLY copy of the information says so in its own doc; every current caller has a durable record behind it (the decision notice in the thread, the stored report row), so a lost wake costs awareness, never the fact.
|
|
1516
|
+
*/
|
|
1517
|
+
async function dispatchAmbientSeatWake(input: {
|
|
1518
|
+
readonly token: string;
|
|
1519
|
+
readonly origin: UnifiedWakeOrigin;
|
|
1520
|
+
readonly wakeId: string;
|
|
1521
|
+
readonly message: string;
|
|
1522
|
+
readonly domain: string;
|
|
1523
|
+
readonly binding?: SurfaceBinding;
|
|
1524
|
+
readonly authAttributes?: Record<string, unknown>;
|
|
1525
|
+
}): Promise<boolean> {
|
|
1526
|
+
if (!crossProcessDispatchAvailable()) return false; // no path at all → skip (the durable record is the truth)
|
|
1527
|
+
// The woken seat's own token names its window, which is the resolvable surface key on a solo
|
|
1528
|
+
// seat and the only one on a seat whose domain is the `org` pseudo-domain (pickRedriveSurfaceKey).
|
|
1529
|
+
// 🔴 THE DOMAIN GRAIN, `domainSurface ?? surface`. `windowEnabledFor` asks which domain's reach
|
|
1530
|
+
// lists this key, and an operator declares a CHANNEL, never a thread id or a Teams `;messageid=`
|
|
1531
|
+
// conversation. The conversational grain therefore resolves no domain, the receive gate refuses
|
|
1532
|
+
// fail-closed, and this function's own catch swallows it — the seat never resumes after the
|
|
1533
|
+
// click. The ingress divert passes the same grain (`domainKeyOf`, discord-gateway.ts), so the
|
|
1534
|
+
// decision wake and the wake it answers now name ONE key. A binding with no `domainSurface` —
|
|
1535
|
+
// every DM, and every surface whose two grains are one string — is byte-identical to before.
|
|
1536
|
+
const surfaceKey = input.binding
|
|
1537
|
+
? `${input.binding.platform}/${input.binding.workspace}/${input.binding.domainSurface ?? input.binding.surface}`
|
|
1538
|
+
: pickRedriveSurfaceKey(input.domain, input.origin.platform, parseWindowToken(input.token)?.windowId);
|
|
1539
|
+
if (!surfaceKey) return false;
|
|
1540
|
+
try {
|
|
1541
|
+
await deliverUnifiedDispatch({
|
|
1542
|
+
message: input.message,
|
|
1543
|
+
token: input.token,
|
|
1544
|
+
// AMBIENT: no `addressing` — see the header for why that is the property, not an omission.
|
|
1545
|
+
window: { wakeId: input.wakeId, origin: input.origin },
|
|
1546
|
+
surfaceKey,
|
|
1547
|
+
auth: { attributes: input.authAttributes ?? {} },
|
|
1548
|
+
...(input.binding ? { binding: input.binding } : {}),
|
|
1549
|
+
});
|
|
1550
|
+
return true;
|
|
1551
|
+
} catch {
|
|
1552
|
+
return false; // best-effort — every caller holds a durable record of what this wake carried
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1556
|
+
/**
|
|
1557
|
+
* THE SEAT-TO-SEAT DELIVERY (OPE-1696): wake one seat with another seat's words. It is {@link dispatchAmbientSeatWake} under a name that says what it is for, so the two tools and the hand-back report all read as one mechanism.
|
|
1558
|
+
* WHAT IT IS NOT: a reply, a post, or an instruction with authority. The woken seat reads the text as an ambient delivery from its own deployment and decides what to do; the sender's hands never reach into the receiver's turn. A steer the humans should also see is MIRRORED into the room by the caller, as a separate, ordinary post — the wire and the audit trail stay two different things.
|
|
1559
|
+
*/
|
|
1560
|
+
export async function dispatchSeatMessage(input: {
|
|
1561
|
+
/** The RECEIVING seat's window token (a thread seat's `s/…`, or a standing seat's own). */
|
|
1562
|
+
readonly token: string;
|
|
1563
|
+
/** The thread this message is about — the receiving seat's own reply target. */
|
|
1564
|
+
readonly origin: UnifiedWakeOrigin;
|
|
1565
|
+
/** Host-minted wakeId for this delivery. */
|
|
1566
|
+
readonly wakeId: string;
|
|
1567
|
+
/** The rendered delivery (the caller states who it is from and what it is for). */
|
|
1568
|
+
readonly message: string;
|
|
1569
|
+
/** The receiving seat's domain — resolves the window-enabled surfaceKey for the fail-closed re-check. */
|
|
1570
|
+
readonly domain: string;
|
|
1571
|
+
/** Auth to resume under; empty means the standing grain, the narrow-hands posture. */
|
|
1572
|
+
readonly authAttributes?: Record<string, unknown>;
|
|
1573
|
+
}): Promise<boolean> {
|
|
1574
|
+
return dispatchAmbientSeatWake(input);
|
|
1575
|
+
}
|