@namzu/sdk 49.0.0 → 50.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/CHANGELOG.md +541 -0
- package/README.md +137 -125
- package/dist/agents/QueryAgent.d.ts.map +1 -1
- package/dist/agents/QueryAgent.js +1 -0
- package/dist/agents/QueryAgent.js.map +1 -1
- package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/examples/SupervisorAgent.js +1 -0
- package/dist/agents/examples/SupervisorAgent.js.map +1 -1
- package/dist/agents/runAgent.d.ts +2 -0
- package/dist/agents/runAgent.d.ts.map +1 -1
- package/dist/agents/runAgent.js +1 -0
- package/dist/agents/runAgent.js.map +1 -1
- package/dist/authorization/shell-lexer.d.ts.map +1 -1
- package/dist/authorization/shell-lexer.js +16 -1
- package/dist/authorization/shell-lexer.js.map +1 -1
- package/dist/bridge/acp/permission.d.ts +8 -2
- package/dist/bridge/acp/permission.d.ts.map +1 -1
- package/dist/bridge/acp/permission.js +1 -0
- package/dist/bridge/acp/permission.js.map +1 -1
- package/dist/bridge/acp/server.d.ts +25 -1
- package/dist/bridge/acp/server.d.ts.map +1 -1
- package/dist/bridge/acp/server.js +205 -21
- package/dist/bridge/acp/server.js.map +1 -1
- package/dist/bridge/acp/tasks.d.ts +5 -0
- package/dist/bridge/acp/tasks.d.ts.map +1 -0
- package/dist/bridge/acp/tasks.js +19 -0
- package/dist/bridge/acp/tasks.js.map +1 -0
- package/dist/bridge/acp/update.d.ts.map +1 -1
- package/dist/bridge/acp/update.js +148 -13
- package/dist/bridge/acp/update.js.map +1 -1
- package/dist/config/runtime.d.ts +31 -31
- package/dist/connector/mcp/adapter.d.ts.map +1 -1
- package/dist/connector/mcp/adapter.js +11 -4
- package/dist/connector/mcp/adapter.js.map +1 -1
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +6 -3
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/constants/acp/index.d.ts +3 -0
- package/dist/constants/acp/index.d.ts.map +1 -1
- package/dist/constants/acp/index.js +3 -0
- package/dist/constants/acp/index.js.map +1 -1
- package/dist/contracts/a2a.d.ts +80 -80
- package/dist/contracts/schemas.d.ts +2 -2
- package/dist/contracts/session/schemas.d.ts +10 -10
- package/dist/manager/agent/lifecycle.d.ts +11 -0
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +178 -3
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/plan/lifecycle.d.ts +7 -8
- package/dist/manager/plan/lifecycle.d.ts.map +1 -1
- package/dist/manager/plan/lifecycle.js +7 -8
- package/dist/manager/plan/lifecycle.js.map +1 -1
- package/dist/manager/resident/consumption.d.ts +8 -8
- package/dist/manager/resident/learning-cycle.d.ts +2 -2
- package/dist/manager/resident/learning-observation.d.ts +12 -12
- package/dist/manager/resident/learning.d.ts +82 -82
- package/dist/manager/resident/outbox.d.ts +8 -8
- package/dist/manager/resident/proposal.d.ts +2 -2
- package/dist/manager/resident/store.d.ts +10 -10
- package/dist/manager/session/attribution.d.ts +1 -0
- package/dist/manager/session/attribution.d.ts.map +1 -1
- package/dist/manager/session/attribution.js +9 -1
- package/dist/manager/session/attribution.js.map +1 -1
- package/dist/manager/session/streamed-message-identity.d.ts +6 -0
- package/dist/manager/session/streamed-message-identity.d.ts.map +1 -0
- package/dist/manager/session/streamed-message-identity.js +14 -0
- package/dist/manager/session/streamed-message-identity.js.map +1 -0
- package/dist/manager/session/turn-recorder.d.ts.map +1 -1
- package/dist/manager/session/turn-recorder.js +4 -3
- package/dist/manager/session/turn-recorder.js.map +1 -1
- package/dist/pals/activity/causality.d.ts +23 -0
- package/dist/pals/activity/causality.d.ts.map +1 -0
- package/dist/pals/activity/causality.js +205 -0
- package/dist/pals/activity/causality.js.map +1 -0
- package/dist/pals/activity/projection.d.ts +5 -0
- package/dist/pals/activity/projection.d.ts.map +1 -0
- package/dist/pals/activity/projection.js +79 -0
- package/dist/pals/activity/projection.js.map +1 -0
- package/dist/pals/activity/source.d.ts +16 -0
- package/dist/pals/activity/source.d.ts.map +1 -0
- package/dist/pals/activity/source.js +235 -0
- package/dist/pals/activity/source.js.map +1 -0
- package/dist/pals/activity/subscription-policy.d.ts +38 -0
- package/dist/pals/activity/subscription-policy.d.ts.map +1 -0
- package/dist/pals/activity/subscription-policy.js +183 -0
- package/dist/pals/activity/subscription-policy.js.map +1 -0
- package/dist/pals/activity/subscription-schema.d.ts +353 -0
- package/dist/pals/activity/subscription-schema.d.ts.map +1 -0
- package/dist/pals/activity/subscription-schema.js +24 -0
- package/dist/pals/activity/subscription-schema.js.map +1 -0
- package/dist/pals/activity/subscription-store.d.ts +25 -0
- package/dist/pals/activity/subscription-store.d.ts.map +1 -0
- package/dist/pals/activity/subscription-store.js +152 -0
- package/dist/pals/activity/subscription-store.js.map +1 -0
- package/dist/pals/activity/subscription-types.d.ts +42 -0
- package/dist/pals/activity/subscription-types.d.ts.map +1 -0
- package/dist/pals/activity/subscription-types.js +2 -0
- package/dist/pals/activity/subscription-types.js.map +1 -0
- package/dist/pals/activity/subscriptions.d.ts +32 -0
- package/dist/pals/activity/subscriptions.d.ts.map +1 -0
- package/dist/pals/activity/subscriptions.js +151 -0
- package/dist/pals/activity/subscriptions.js.map +1 -0
- package/dist/pals/activity/types.d.ts +77 -0
- package/dist/pals/activity/types.d.ts.map +1 -0
- package/dist/pals/activity/types.js +2 -0
- package/dist/pals/activity/types.js.map +1 -0
- package/dist/pals/channels/ingress.d.ts +9 -0
- package/dist/pals/channels/ingress.d.ts.map +1 -0
- package/dist/pals/channels/ingress.js +131 -0
- package/dist/pals/channels/ingress.js.map +1 -0
- package/dist/pals/channels/routes.d.ts +20 -0
- package/dist/pals/channels/routes.d.ts.map +1 -0
- package/dist/pals/channels/routes.js +111 -0
- package/dist/pals/channels/routes.js.map +1 -0
- package/dist/pals/channels/routing.d.ts +37 -0
- package/dist/pals/channels/routing.d.ts.map +1 -0
- package/dist/pals/channels/routing.js +150 -0
- package/dist/pals/channels/routing.js.map +1 -0
- package/dist/pals/channels/schema.d.ts +234 -0
- package/dist/pals/channels/schema.d.ts.map +1 -0
- package/dist/pals/channels/schema.js +94 -0
- package/dist/pals/channels/schema.js.map +1 -0
- package/dist/pals/channels/types.d.ts +115 -0
- package/dist/pals/channels/types.d.ts.map +1 -0
- package/dist/pals/channels/types.js +2 -0
- package/dist/pals/channels/types.js.map +1 -0
- package/dist/pals/communication/broker.d.ts +8 -0
- package/dist/pals/communication/broker.d.ts.map +1 -0
- package/dist/pals/communication/broker.js +121 -0
- package/dist/pals/communication/broker.js.map +1 -0
- package/dist/pals/communication/dispatch.d.ts +4 -0
- package/dist/pals/communication/dispatch.d.ts.map +1 -0
- package/dist/pals/communication/dispatch.js +57 -0
- package/dist/pals/communication/dispatch.js.map +1 -0
- package/dist/pals/communication/inbound.d.ts +9 -0
- package/dist/pals/communication/inbound.d.ts.map +1 -0
- package/dist/pals/communication/inbound.js +155 -0
- package/dist/pals/communication/inbound.js.map +1 -0
- package/dist/pals/communication/ingress-dispatch.d.ts +5 -0
- package/dist/pals/communication/ingress-dispatch.d.ts.map +1 -0
- package/dist/pals/communication/ingress-dispatch.js +51 -0
- package/dist/pals/communication/ingress-dispatch.js.map +1 -0
- package/dist/pals/communication/ingress-inbound.d.ts +9 -0
- package/dist/pals/communication/ingress-inbound.d.ts.map +1 -0
- package/dist/pals/communication/ingress-inbound.js +222 -0
- package/dist/pals/communication/ingress-inbound.js.map +1 -0
- package/dist/pals/communication/ingress-schema.d.ts +7829 -0
- package/dist/pals/communication/ingress-schema.d.ts.map +1 -0
- package/dist/pals/communication/ingress-schema.js +479 -0
- package/dist/pals/communication/ingress-schema.js.map +1 -0
- package/dist/pals/communication/ingress-types.d.ts +187 -0
- package/dist/pals/communication/ingress-types.d.ts.map +1 -0
- package/dist/pals/communication/ingress-types.js +73 -0
- package/dist/pals/communication/ingress-types.js.map +1 -0
- package/dist/pals/communication/operator.d.ts +75 -0
- package/dist/pals/communication/operator.d.ts.map +1 -0
- package/dist/pals/communication/operator.js +217 -0
- package/dist/pals/communication/operator.js.map +1 -0
- package/dist/pals/communication/policy.d.ts +41 -0
- package/dist/pals/communication/policy.d.ts.map +1 -0
- package/dist/pals/communication/policy.js +138 -0
- package/dist/pals/communication/policy.js.map +1 -0
- package/dist/pals/communication/schema.d.ts +2000 -0
- package/dist/pals/communication/schema.d.ts.map +1 -0
- package/dist/pals/communication/schema.js +170 -0
- package/dist/pals/communication/schema.js.map +1 -0
- package/dist/pals/communication/store.d.ts +61 -0
- package/dist/pals/communication/store.d.ts.map +1 -0
- package/dist/pals/communication/store.js +450 -0
- package/dist/pals/communication/store.js.map +1 -0
- package/dist/pals/communication/tools.d.ts +23 -0
- package/dist/pals/communication/tools.d.ts.map +1 -0
- package/dist/pals/communication/tools.js +107 -0
- package/dist/pals/communication/tools.js.map +1 -0
- package/dist/pals/communication/types.d.ts +168 -0
- package/dist/pals/communication/types.d.ts.map +1 -0
- package/dist/pals/communication/types.js +24 -0
- package/dist/pals/communication/types.js.map +1 -0
- package/dist/pals/communication/verify.d.ts +22 -0
- package/dist/pals/communication/verify.d.ts.map +1 -0
- package/dist/pals/communication/verify.js +142 -0
- package/dist/pals/communication/verify.js.map +1 -0
- package/dist/pals/lifecycle.d.ts +37 -0
- package/dist/pals/lifecycle.d.ts.map +1 -0
- package/dist/pals/lifecycle.js +22 -0
- package/dist/pals/lifecycle.js.map +1 -0
- package/dist/pals/prompt.d.ts +30 -0
- package/dist/pals/prompt.d.ts.map +1 -0
- package/dist/pals/prompt.js +65 -0
- package/dist/pals/prompt.js.map +1 -0
- package/dist/pals/reference-images.d.ts +44 -0
- package/dist/pals/reference-images.d.ts.map +1 -0
- package/dist/pals/reference-images.js +248 -0
- package/dist/pals/reference-images.js.map +1 -0
- package/dist/pals/runtime.d.ts +46 -0
- package/dist/pals/runtime.d.ts.map +1 -0
- package/dist/pals/runtime.js +624 -0
- package/dist/pals/runtime.js.map +1 -0
- package/dist/pals/store.d.ts +26 -0
- package/dist/pals/store.d.ts.map +1 -0
- package/dist/pals/store.js +334 -0
- package/dist/pals/store.js.map +1 -0
- package/dist/pals/types.d.ts +145 -0
- package/dist/pals/types.d.ts.map +1 -0
- package/dist/pals/types.js +2 -0
- package/dist/pals/types.js.map +1 -0
- package/dist/peers/envelope.js +1 -1
- package/dist/peers/envelope.js.map +1 -1
- package/dist/peers/protocol.d.ts +83 -83
- package/dist/peers/record.d.ts +10 -10
- package/dist/plugin/shell-hook.d.ts.map +1 -1
- package/dist/plugin/shell-hook.js +7 -2
- package/dist/plugin/shell-hook.js.map +1 -1
- package/dist/process/kill-tree.d.ts.map +1 -1
- package/dist/process/kill-tree.js +9 -1
- package/dist/process/kill-tree.js.map +1 -1
- package/dist/provider/errors.d.ts +19 -0
- package/dist/provider/errors.d.ts.map +1 -1
- package/dist/provider/errors.js +123 -2
- package/dist/provider/errors.js.map +1 -1
- package/dist/provider/strict-schema.d.ts +28 -0
- package/dist/provider/strict-schema.d.ts.map +1 -1
- package/dist/provider/strict-schema.js +86 -0
- package/dist/provider/strict-schema.js.map +1 -1
- package/dist/public-runtime.d.ts +42 -14
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +36 -8
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +8 -3
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +8 -3
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +27 -7
- package/dist/public-types.d.ts.map +1 -1
- package/dist/registry/tool/presentation.d.ts +1 -0
- package/dist/registry/tool/presentation.d.ts.map +1 -1
- package/dist/registry/tool/presentation.js +9 -7
- package/dist/registry/tool/presentation.js.map +1 -1
- package/dist/runtime/harness-session/index.d.ts +5 -0
- package/dist/runtime/harness-session/index.d.ts.map +1 -0
- package/dist/runtime/harness-session/index.js +928 -0
- package/dist/runtime/harness-session/index.js.map +1 -0
- package/dist/runtime/harness-session/journal.d.ts +37 -0
- package/dist/runtime/harness-session/journal.d.ts.map +1 -0
- package/dist/runtime/harness-session/journal.js +177 -0
- package/dist/runtime/harness-session/journal.js.map +1 -0
- package/dist/runtime/harness-session/saved-view.d.ts +8 -0
- package/dist/runtime/harness-session/saved-view.d.ts.map +1 -0
- package/dist/runtime/harness-session/saved-view.js +112 -0
- package/dist/runtime/harness-session/saved-view.js.map +1 -0
- package/dist/runtime/jobs/awaited-jobs.d.ts +2 -1
- package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -1
- package/dist/runtime/jobs/awaited-jobs.js +2 -1
- package/dist/runtime/jobs/awaited-jobs.js.map +1 -1
- package/dist/runtime/jobs/registry.d.ts +56 -1
- package/dist/runtime/jobs/registry.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.js +351 -34
- package/dist/runtime/jobs/registry.js.map +1 -1
- package/dist/runtime/query/abandon-turn.d.ts +12 -1
- package/dist/runtime/query/abandon-turn.d.ts.map +1 -1
- package/dist/runtime/query/abandon-turn.js +3 -1
- package/dist/runtime/query/abandon-turn.js.map +1 -1
- package/dist/runtime/query/checkpoint.d.ts +4 -0
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +10 -0
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/durable-inbound.d.ts +5 -0
- package/dist/runtime/query/durable-inbound.d.ts.map +1 -0
- package/dist/runtime/query/durable-inbound.js +89 -0
- package/dist/runtime/query/durable-inbound.js.map +1 -0
- package/dist/runtime/query/events.d.ts +4 -0
- package/dist/runtime/query/events.d.ts.map +1 -1
- package/dist/runtime/query/events.js +22 -5
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts +5 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.js +85 -13
- package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +41 -18
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +227 -114
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/index.d.ts +3 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +21 -4
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +18 -6
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +144 -67
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/outstanding-work.d.ts +9 -5
- package/dist/runtime/query/iteration/outstanding-work.d.ts.map +1 -1
- package/dist/runtime/query/iteration/outstanding-work.js +61 -6
- package/dist/runtime/query/iteration/outstanding-work.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +4 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +99 -16
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/observation-context.d.ts +2 -2
- package/dist/runtime/query/observation-context.d.ts.map +1 -1
- package/dist/runtime/query/observation-context.js +20 -13
- package/dist/runtime/query/observation-context.js.map +1 -1
- package/dist/runtime/query/prepare-turn.js +2 -2
- package/dist/runtime/query/prepare-turn.js.map +1 -1
- package/dist/runtime/query/prompt-cache.d.ts +1 -0
- package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
- package/dist/runtime/query/prompt-cache.js +2 -0
- package/dist/runtime/query/prompt-cache.js.map +1 -1
- package/dist/runtime/query/prompt.d.ts +2 -0
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/prompt.js +23 -1
- package/dist/runtime/query/prompt.js.map +1 -1
- package/dist/runtime/query/repeat-call.d.ts +12 -3
- package/dist/runtime/query/repeat-call.d.ts.map +1 -1
- package/dist/runtime/query/repeat-call.js +33 -10
- package/dist/runtime/query/repeat-call.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts +5 -6
- package/dist/runtime/query/resume-pending.d.ts.map +1 -1
- package/dist/runtime/query/resume-pending.js +30 -3
- package/dist/runtime/query/resume-pending.js.map +1 -1
- package/dist/runtime/query/resume-session.js +1 -1
- package/dist/runtime/query/resume-session.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +8 -1
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +6 -0
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/saved-presentation.d.ts +13 -0
- package/dist/runtime/query/saved-presentation.d.ts.map +1 -0
- package/dist/runtime/query/saved-presentation.js +63 -0
- package/dist/runtime/query/saved-presentation.js.map +1 -0
- package/dist/runtime/query/steering.d.ts +6 -9
- package/dist/runtime/query/steering.d.ts.map +1 -1
- package/dist/runtime/query/steering.js.map +1 -1
- package/dist/runtime/query/tool-executions.d.ts +7 -3
- package/dist/runtime/query/tool-executions.d.ts.map +1 -1
- package/dist/runtime/query/tool-executions.js +89 -9
- package/dist/runtime/query/tool-executions.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +3 -1
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +3 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/scheduler/completion-inbox.d.ts +25 -1
- package/dist/scheduler/completion-inbox.d.ts.map +1 -1
- package/dist/scheduler/completion-inbox.js +102 -8
- package/dist/scheduler/completion-inbox.js.map +1 -1
- package/dist/scheduler/delegating.d.ts.map +1 -1
- package/dist/scheduler/delegating.js +5 -0
- package/dist/scheduler/delegating.js.map +1 -1
- package/dist/scheduler/local.d.ts.map +1 -1
- package/dist/scheduler/local.js +2 -0
- package/dist/scheduler/local.js.map +1 -1
- package/dist/session/summary/materialize.d.ts +10 -6
- package/dist/session/summary/materialize.d.ts.map +1 -1
- package/dist/session/summary/materialize.js +41 -8
- package/dist/session/summary/materialize.js.map +1 -1
- package/dist/store/budget/ledger.d.ts +9 -0
- package/dist/store/budget/ledger.d.ts.map +1 -1
- package/dist/store/budget/ledger.js +58 -6
- package/dist/store/budget/ledger.js.map +1 -1
- package/dist/store/evidence/index-page.d.ts +12 -12
- package/dist/store/evidence/source-text.d.ts +4 -4
- package/dist/store/session/disk.d.ts +9 -4
- package/dist/store/session/disk.d.ts.map +1 -1
- package/dist/store/session/disk.js +57 -11
- package/dist/store/session/disk.js.map +1 -1
- package/dist/store/session/memory.d.ts +5 -3
- package/dist/store/session/memory.d.ts.map +1 -1
- package/dist/store/session/memory.js +24 -7
- package/dist/store/session/memory.js.map +1 -1
- package/dist/store/session-log/core.d.ts +26 -6
- package/dist/store/session-log/core.d.ts.map +1 -1
- package/dist/store/session-log/core.js +61 -8
- package/dist/store/session-log/core.js.map +1 -1
- package/dist/store/session-log/disk.d.ts +2 -2
- package/dist/store/session-log/disk.d.ts.map +1 -1
- package/dist/store/session-log/disk.js +1 -0
- package/dist/store/session-log/disk.js.map +1 -1
- package/dist/store/session-log/fold.d.ts +7 -0
- package/dist/store/session-log/fold.d.ts.map +1 -1
- package/dist/store/session-log/fold.js +21 -0
- package/dist/store/session-log/fold.js.map +1 -1
- package/dist/store/session-log/index.d.ts +5 -3
- package/dist/store/session-log/index.d.ts.map +1 -1
- package/dist/store/session-log/index.js +3 -1
- package/dist/store/session-log/index.js.map +1 -1
- package/dist/store/session-log/memory.d.ts +1 -1
- package/dist/store/session-log/memory.d.ts.map +1 -1
- package/dist/store/session-log/memory.js +1 -0
- package/dist/store/session-log/memory.js.map +1 -1
- package/dist/store/session-log/spill.d.ts +10 -3
- package/dist/store/session-log/spill.d.ts.map +1 -1
- package/dist/store/session-log/spill.js +70 -5
- package/dist/store/session-log/spill.js.map +1 -1
- package/dist/store/session-log/structured-result.d.ts +21 -0
- package/dist/store/session-log/structured-result.d.ts.map +1 -0
- package/dist/store/session-log/structured-result.js +67 -0
- package/dist/store/session-log/structured-result.js.map +1 -0
- package/dist/store/task/disk.d.ts +11 -0
- package/dist/store/task/disk.d.ts.map +1 -1
- package/dist/store/task/disk.js +41 -2
- package/dist/store/task/disk.js.map +1 -1
- package/dist/store/task/memory.d.ts.map +1 -1
- package/dist/store/task/memory.js +15 -3
- package/dist/store/task/memory.js.map +1 -1
- package/dist/tools/admit-facts.d.ts +13 -0
- package/dist/tools/admit-facts.d.ts.map +1 -0
- package/dist/tools/admit-facts.js +142 -0
- package/dist/tools/admit-facts.js.map +1 -0
- package/dist/tools/builtins/bash.d.ts +4 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +108 -22
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/browser.d.ts +10 -10
- package/dist/tools/builtins/computer-use.d.ts +90 -90
- package/dist/tools/builtins/edit.d.ts +17 -0
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +46 -1
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/file-write-result.d.ts.map +1 -1
- package/dist/tools/builtins/file-write-result.js +13 -0
- package/dist/tools/builtins/file-write-result.js.map +1 -1
- package/dist/tools/builtins/glob.d.ts.map +1 -1
- package/dist/tools/builtins/glob.js +12 -0
- package/dist/tools/builtins/glob.js.map +1 -1
- package/dist/tools/builtins/grep.d.ts.map +1 -1
- package/dist/tools/builtins/grep.js +14 -0
- package/dist/tools/builtins/grep.js.map +1 -1
- package/dist/tools/builtins/index.d.ts +2 -0
- package/dist/tools/builtins/index.d.ts.map +1 -1
- package/dist/tools/builtins/index.js +1 -0
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/job.d.ts.map +1 -1
- package/dist/tools/builtins/job.js +4 -1
- package/dist/tools/builtins/job.js.map +1 -1
- package/dist/tools/builtins/lsp.d.ts +2 -2
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +49 -0
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/view-image.d.ts +24 -0
- package/dist/tools/builtins/view-image.d.ts.map +1 -0
- package/dist/tools/builtins/view-image.js +385 -0
- package/dist/tools/builtins/view-image.js.map +1 -0
- package/dist/tools/builtins/wait-for-job-bounds.d.ts +2 -0
- package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -1
- package/dist/tools/builtins/wait-for-job-bounds.js +1 -0
- package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -1
- package/dist/tools/builtins/wait-for-job.d.ts +2 -0
- package/dist/tools/builtins/wait-for-job.d.ts.map +1 -1
- package/dist/tools/builtins/wait-for-job.js +104 -6
- package/dist/tools/builtins/wait-for-job.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +1 -0
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/command-shell.d.ts +37 -2
- package/dist/tools/command-shell.d.ts.map +1 -1
- package/dist/tools/command-shell.js +100 -3
- package/dist/tools/command-shell.js.map +1 -1
- package/dist/tools/coordinator/agent.d.ts +9 -19
- package/dist/tools/coordinator/agent.d.ts.map +1 -1
- package/dist/tools/coordinator/agent.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +127 -67
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.d.ts +2 -0
- package/dist/tools/coordinator/wait-with-idle-bound.d.ts.map +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.js +1 -1
- package/dist/tools/coordinator/wait-with-idle-bound.js.map +1 -1
- package/dist/tools/defineTool.d.ts.map +1 -1
- package/dist/tools/defineTool.js +4 -0
- package/dist/tools/defineTool.js.map +1 -1
- package/dist/tools/failure-facts.d.ts +8 -0
- package/dist/tools/failure-facts.d.ts.map +1 -0
- package/dist/tools/failure-facts.js +24 -0
- package/dist/tools/failure-facts.js.map +1 -0
- package/dist/tools/host-output.d.ts +24 -0
- package/dist/tools/host-output.d.ts.map +1 -0
- package/dist/tools/host-output.js +117 -0
- package/dist/tools/host-output.js.map +1 -0
- package/dist/tools/oem-code-pages.d.ts +8 -0
- package/dist/tools/oem-code-pages.d.ts.map +1 -0
- package/dist/tools/oem-code-pages.js +23 -0
- package/dist/tools/oem-code-pages.js.map +1 -0
- package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
- package/dist/tools/schedules/schedule-tool.js +35 -6
- package/dist/tools/schedules/schedule-tool.js.map +1 -1
- package/dist/tools/schedules/types.d.ts +23 -3
- package/dist/tools/schedules/types.d.ts.map +1 -1
- package/dist/tools/task/list.d.ts.map +1 -1
- package/dist/tools/task/list.js +14 -6
- package/dist/tools/task/list.js.map +1 -1
- package/dist/tools/task/present.d.ts.map +1 -1
- package/dist/tools/task/present.js +26 -6
- package/dist/tools/task/present.js.map +1 -1
- package/dist/tools/task/update.d.ts.map +1 -1
- package/dist/tools/task/update.js +12 -5
- package/dist/tools/task/update.js.map +1 -1
- package/dist/tools/text-window.d.ts +19 -0
- package/dist/tools/text-window.d.ts.map +1 -0
- package/dist/tools/text-window.js +83 -0
- package/dist/tools/text-window.js.map +1 -0
- package/dist/toolsets/manager.d.ts +11 -0
- package/dist/toolsets/manager.d.ts.map +1 -1
- package/dist/toolsets/manager.js +45 -1
- package/dist/toolsets/manager.js.map +1 -1
- package/dist/types/acp/index.d.ts +137 -1
- package/dist/types/acp/index.d.ts.map +1 -1
- package/dist/types/agent/base.d.ts +3 -0
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/manager.d.ts +8 -23
- package/dist/types/agent/manager.d.ts.map +1 -1
- package/dist/types/agent/scheduler.d.ts +10 -1
- package/dist/types/agent/scheduler.d.ts.map +1 -1
- package/dist/types/agent/task.d.ts +4 -0
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/authorization/index.d.ts +30 -30
- package/dist/types/connector/mcp.d.ts +7 -0
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/errors/catalog.d.ts.map +1 -1
- package/dist/types/errors/catalog.js +4 -2
- package/dist/types/errors/catalog.js.map +1 -1
- package/dist/types/harness/schema.d.ts +354 -0
- package/dist/types/harness/schema.d.ts.map +1 -0
- package/dist/types/harness/schema.js +203 -0
- package/dist/types/harness/schema.js.map +1 -0
- package/dist/types/harness/session.d.ts +278 -0
- package/dist/types/harness/session.d.ts.map +1 -0
- package/dist/types/harness/session.js +2 -0
- package/dist/types/harness/session.js.map +1 -0
- package/dist/types/hitl/index.d.ts +12 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/job/index.d.ts +47 -0
- package/dist/types/job/index.d.ts.map +1 -0
- package/dist/types/job/index.js +2 -0
- package/dist/types/job/index.js.map +1 -0
- package/dist/types/message/inbound-delivery.d.ts +44 -0
- package/dist/types/message/inbound-delivery.d.ts.map +1 -0
- package/dist/types/message/inbound-delivery.js +14 -0
- package/dist/types/message/inbound-delivery.js.map +1 -0
- package/dist/types/message/index.d.ts +4 -1
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +5 -1
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/plugin/index.d.ts +6 -6
- package/dist/types/sandbox/index.d.ts +39 -2
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/session/checkpoint.d.ts +24 -17
- package/dist/types/session/checkpoint.d.ts.map +1 -1
- package/dist/types/session/checkpoint.js +1 -0
- package/dist/types/session/checkpoint.js.map +1 -1
- package/dist/types/session/events.d.ts +23 -1
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/events.js.map +1 -1
- package/dist/types/session/records.d.ts +1514 -565
- package/dist/types/session/records.d.ts.map +1 -1
- package/dist/types/session/records.js +89 -1
- package/dist/types/session/records.js.map +1 -1
- package/dist/types/session/step.d.ts +2 -0
- package/dist/types/session/step.d.ts.map +1 -1
- package/dist/types/session/step.js.map +1 -1
- package/dist/types/session/store.d.ts +19 -10
- package/dist/types/session/store.d.ts.map +1 -1
- package/dist/types/session/tool-execution.d.ts +6 -0
- package/dist/types/session/tool-execution.d.ts.map +1 -1
- package/dist/types/structured-output/index.d.ts +12 -2
- package/dist/types/structured-output/index.d.ts.map +1 -1
- package/dist/types/summary/ref.d.ts +3 -1
- package/dist/types/summary/ref.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +32 -4
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/types/tool/presentation.d.ts +106 -0
- package/dist/types/tool/presentation.d.ts.map +1 -1
- package/dist/utils/json-snapshot.d.ts +6 -2
- package/dist/utils/json-snapshot.d.ts.map +1 -1
- package/dist/utils/json-snapshot.js +19 -9
- package/dist/utils/json-snapshot.js.map +1 -1
- package/dist/utils/structured-result-json.d.ts +5 -0
- package/dist/utils/structured-result-json.d.ts.map +1 -0
- package/dist/utils/structured-result-json.js +10 -0
- package/dist/utils/structured-result-json.js.map +1 -0
- package/package.json +1 -1
- package/src/agents/QueryAgent.ts +1 -0
- package/src/agents/examples/SupervisorAgent.ts +1 -0
- package/src/agents/runAgent.ts +3 -0
- package/src/authorization/shell-lexer.ts +16 -1
- package/src/bridge/acp/permission.ts +17 -3
- package/src/bridge/acp/server.ts +271 -25
- package/src/bridge/acp/tasks.ts +23 -0
- package/src/bridge/acp/update.ts +167 -13
- package/src/connector/mcp/adapter.ts +16 -4
- package/src/connector/mcp/client.ts +6 -2
- package/src/constants/acp/index.ts +4 -0
- package/src/manager/agent/lifecycle.ts +230 -3
- package/src/manager/plan/lifecycle.ts +11 -9
- package/src/manager/session/attribution.ts +12 -2
- package/src/manager/session/streamed-message-identity.ts +21 -0
- package/src/manager/session/turn-recorder.ts +4 -3
- package/src/pals/activity/causality.ts +261 -0
- package/src/pals/activity/projection.ts +89 -0
- package/src/pals/activity/source.ts +240 -0
- package/src/pals/activity/subscription-policy.ts +230 -0
- package/src/pals/activity/subscription-schema.ts +27 -0
- package/src/pals/activity/subscription-store.ts +172 -0
- package/src/pals/activity/subscription-types.ts +48 -0
- package/src/pals/activity/subscriptions.ts +209 -0
- package/src/pals/activity/types.ts +108 -0
- package/src/pals/channels/ingress.ts +153 -0
- package/src/pals/channels/routes.ts +118 -0
- package/src/pals/channels/routing.ts +197 -0
- package/src/pals/channels/schema.ts +108 -0
- package/src/pals/channels/types.ts +156 -0
- package/src/pals/communication/broker.ts +131 -0
- package/src/pals/communication/dispatch.ts +66 -0
- package/src/pals/communication/inbound.ts +193 -0
- package/src/pals/communication/ingress-dispatch.ts +63 -0
- package/src/pals/communication/ingress-inbound.ts +269 -0
- package/src/pals/communication/ingress-schema.ts +526 -0
- package/src/pals/communication/ingress-types.ts +336 -0
- package/src/pals/communication/operator.ts +315 -0
- package/src/pals/communication/policy.ts +174 -0
- package/src/pals/communication/schema.ts +173 -0
- package/src/pals/communication/store.ts +577 -0
- package/src/pals/communication/tools.ts +139 -0
- package/src/pals/communication/types.ts +227 -0
- package/src/pals/communication/verify.ts +220 -0
- package/src/pals/lifecycle.ts +54 -0
- package/src/pals/prompt.ts +101 -0
- package/src/pals/reference-images.ts +322 -0
- package/src/pals/runtime.ts +670 -0
- package/src/pals/store.ts +369 -0
- package/src/pals/types.ts +157 -0
- package/src/peers/envelope.ts +1 -1
- package/src/plugin/shell-hook.ts +8 -2
- package/src/process/kill-tree.ts +10 -1
- package/src/provider/errors.ts +135 -2
- package/src/provider/strict-schema.ts +90 -0
- package/src/public-runtime.ts +118 -12
- package/src/public-tools.ts +13 -1
- package/src/public-types.ts +69 -7
- package/src/registry/tool/presentation.ts +9 -4
- package/src/runtime/harness-session/index.ts +1125 -0
- package/src/runtime/harness-session/journal.ts +209 -0
- package/src/runtime/harness-session/saved-view.ts +122 -0
- package/src/runtime/jobs/awaited-jobs.ts +2 -1
- package/src/runtime/jobs/registry.ts +397 -41
- package/src/runtime/query/abandon-turn.ts +18 -2
- package/src/runtime/query/checkpoint.ts +11 -0
- package/src/runtime/query/durable-inbound.ts +101 -0
- package/src/runtime/query/events.ts +22 -5
- package/src/runtime/query/executor/tool-call-admission.ts +125 -32
- package/src/runtime/query/executor.ts +316 -130
- package/src/runtime/query/index.ts +24 -4
- package/src/runtime/query/iteration/index.ts +218 -104
- package/src/runtime/query/iteration/outstanding-work.ts +55 -7
- package/src/runtime/query/iteration/phases/context.ts +4 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +118 -21
- package/src/runtime/query/observation-context.ts +22 -16
- package/src/runtime/query/prepare-turn.ts +2 -2
- package/src/runtime/query/prompt-cache.ts +3 -0
- package/src/runtime/query/prompt.ts +32 -1
- package/src/runtime/query/repeat-call.ts +40 -10
- package/src/runtime/query/resume-pending.ts +60 -7
- package/src/runtime/query/resume-session.ts +1 -1
- package/src/runtime/query/review-policy.ts +23 -2
- package/src/runtime/query/saved-presentation.ts +70 -0
- package/src/runtime/query/steering.ts +6 -9
- package/src/runtime/query/tool-executions.ts +108 -9
- package/src/runtime/query/tooling.ts +6 -1
- package/src/scheduler/completion-inbox.ts +108 -7
- package/src/scheduler/delegating.ts +5 -0
- package/src/scheduler/local.ts +2 -0
- package/src/session/summary/materialize.ts +51 -9
- package/src/store/budget/ledger.ts +60 -5
- package/src/store/session/disk.ts +77 -10
- package/src/store/session/memory.ts +32 -7
- package/src/store/session-log/core.ts +118 -11
- package/src/store/session-log/disk.ts +9 -2
- package/src/store/session-log/fold.ts +22 -0
- package/src/store/session-log/index.ts +5 -0
- package/src/store/session-log/memory.ts +2 -1
- package/src/store/session-log/spill.ts +89 -6
- package/src/store/session-log/structured-result.ts +96 -0
- package/src/store/task/disk.ts +46 -2
- package/src/store/task/memory.ts +13 -3
- package/src/tools/admit-facts.ts +145 -0
- package/src/tools/builtins/bash.ts +132 -24
- package/src/tools/builtins/edit.ts +54 -1
- package/src/tools/builtins/file-write-result.ts +14 -0
- package/src/tools/builtins/glob.ts +12 -0
- package/src/tools/builtins/grep.ts +14 -0
- package/src/tools/builtins/index.ts +2 -0
- package/src/tools/builtins/job.ts +4 -1
- package/src/tools/builtins/read-file.ts +57 -0
- package/src/tools/builtins/view-image.ts +409 -0
- package/src/tools/builtins/wait-for-job-bounds.ts +3 -0
- package/src/tools/builtins/wait-for-job.ts +141 -32
- package/src/tools/builtins/write-file.ts +4 -2
- package/src/tools/command-shell.ts +132 -5
- package/src/tools/coordinator/agent.ts +9 -19
- package/src/tools/coordinator/index.ts +150 -75
- package/src/tools/coordinator/wait-with-idle-bound.ts +3 -1
- package/src/tools/defineTool.ts +4 -0
- package/src/tools/failure-facts.ts +24 -0
- package/src/tools/host-output.ts +136 -0
- package/src/tools/oem-code-pages.ts +22 -0
- package/src/tools/schedules/schedule-tool.ts +38 -5
- package/src/tools/schedules/types.ts +23 -3
- package/src/tools/task/list.ts +15 -7
- package/src/tools/task/present.ts +37 -7
- package/src/tools/task/update.ts +12 -5
- package/src/tools/text-window.ts +87 -0
- package/src/toolsets/manager.ts +58 -1
- package/src/types/acp/index.ts +150 -4
- package/src/types/agent/base.ts +3 -0
- package/src/types/agent/manager.ts +8 -23
- package/src/types/agent/scheduler.ts +10 -1
- package/src/types/agent/task.ts +4 -0
- package/src/types/connector/mcp.ts +7 -0
- package/src/types/errors/catalog.ts +4 -2
- package/src/types/harness/schema.ts +203 -0
- package/src/types/harness/session.ts +306 -0
- package/src/types/hitl/index.ts +17 -1
- package/src/types/job/index.ts +42 -0
- package/src/types/message/inbound-delivery.ts +63 -0
- package/src/types/message/index.ts +8 -1
- package/src/types/sandbox/index.ts +46 -0
- package/src/types/session/checkpoint.ts +4 -1
- package/src/types/session/events.ts +23 -1
- package/src/types/session/records.ts +114 -2
- package/src/types/session/step.ts +2 -0
- package/src/types/session/store.ts +23 -9
- package/src/types/session/tool-execution.ts +6 -0
- package/src/types/structured-output/index.ts +13 -2
- package/src/types/summary/ref.ts +3 -1
- package/src/types/tool/index.ts +39 -5
- package/src/types/tool/presentation.ts +121 -0
- package/src/utils/json-snapshot.ts +26 -9
- package/src/utils/structured-result-json.ts +10 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import type { SessionId, TurnId } from '../../types/ids/index.js';
|
|
2
|
+
import type { DurableInboundSource, InboundDeliveryReceipt, InboundDeliveryRef } from '../../types/message/inbound-delivery.js';
|
|
3
|
+
import type { PalActivityFact, PalActivityScope } from '../activity/types.js';
|
|
4
|
+
import type { PalDefinition, PalStore } from '../types.js';
|
|
5
|
+
import { type PalAddress, type PalAuthorizationRequest, type PalConversationAccess, type PalDeliveryClaim, type PalInboxMessage, type PalMessageAuthorization, type PalMessageGrant, type PalMessageIntent, type PalMessageReceipt, type PalRouteKey } from './types.js';
|
|
6
|
+
export interface PalObservationRouteKey {
|
|
7
|
+
readonly v: 1;
|
|
8
|
+
readonly kind: 'observation';
|
|
9
|
+
readonly recipient: PalAddress;
|
|
10
|
+
readonly subscriptionId: string;
|
|
11
|
+
readonly scope: PalActivityScope;
|
|
12
|
+
}
|
|
13
|
+
/** Native identity from a trusted connection verifier; no credential is stored. */
|
|
14
|
+
export interface PalChannelIdentity {
|
|
15
|
+
readonly provider: string;
|
|
16
|
+
readonly connectionId: string;
|
|
17
|
+
readonly externalTenantId: string;
|
|
18
|
+
readonly nativeConversationId: string;
|
|
19
|
+
readonly nativeChannelId: string | null;
|
|
20
|
+
readonly nativeThreadId: string | null;
|
|
21
|
+
}
|
|
22
|
+
export interface PalChannelRouteKey extends PalChannelIdentity {
|
|
23
|
+
readonly v: 1;
|
|
24
|
+
readonly kind: 'channel';
|
|
25
|
+
readonly recipient: PalAddress;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Route key for the operator's own ordinary conversation addressing one Pal. One
|
|
29
|
+
* operator conversation opens one distinct Pal conversation; it never reuses a
|
|
30
|
+
* Pal-to-Pal route and carries no Pal sender address.
|
|
31
|
+
*/
|
|
32
|
+
export interface PalOperatorRouteKey {
|
|
33
|
+
readonly v: 1;
|
|
34
|
+
readonly kind: 'operator';
|
|
35
|
+
readonly recipient: PalAddress;
|
|
36
|
+
readonly conversationId: SessionId;
|
|
37
|
+
}
|
|
38
|
+
export interface PalObservationSource {
|
|
39
|
+
readonly kind: 'host-observation';
|
|
40
|
+
readonly subscriptionId: string;
|
|
41
|
+
readonly scope: PalActivityScope;
|
|
42
|
+
}
|
|
43
|
+
/** Actor is captured per event, independently from conversation routing. */
|
|
44
|
+
export interface PalChannelSource extends PalChannelIdentity {
|
|
45
|
+
readonly kind: 'channel';
|
|
46
|
+
readonly tenantId: PalAddress['tenantId'];
|
|
47
|
+
readonly actorId: string;
|
|
48
|
+
readonly eventId: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The host-captured identity of the owner's ordinary (non-Pal) conversation.
|
|
52
|
+
* It is not a Pal address and cannot impersonate one; the model never selects it.
|
|
53
|
+
*/
|
|
54
|
+
export interface PalOperatorSource {
|
|
55
|
+
readonly kind: 'operator-conversation';
|
|
56
|
+
readonly tenantId: PalAddress['tenantId'];
|
|
57
|
+
readonly sessionId: SessionId;
|
|
58
|
+
}
|
|
59
|
+
export interface PalIngressIntentBase {
|
|
60
|
+
readonly id: string;
|
|
61
|
+
readonly digest: string;
|
|
62
|
+
readonly operationId: string;
|
|
63
|
+
readonly recipient: PalAddress;
|
|
64
|
+
readonly grant: PalMessageGrant;
|
|
65
|
+
readonly createdAt: number;
|
|
66
|
+
readonly replyTo: null;
|
|
67
|
+
}
|
|
68
|
+
export interface PalObservationIntent extends PalIngressIntentBase {
|
|
69
|
+
readonly kind: 'observation';
|
|
70
|
+
readonly source: PalObservationSource;
|
|
71
|
+
readonly routeKey: PalObservationRouteKey;
|
|
72
|
+
readonly fact: PalActivityFact;
|
|
73
|
+
/** Host-resolved original delivery causality, containing this publishing subscription once. */
|
|
74
|
+
readonly subscriptionTrail: readonly string[];
|
|
75
|
+
}
|
|
76
|
+
export interface PalChannelIntent extends PalIngressIntentBase {
|
|
77
|
+
readonly kind: 'channel';
|
|
78
|
+
readonly source: PalChannelSource;
|
|
79
|
+
readonly routeKey: PalChannelRouteKey;
|
|
80
|
+
readonly body: string;
|
|
81
|
+
}
|
|
82
|
+
/** A message the owner sent from an ordinary conversation, after approving it there. */
|
|
83
|
+
export interface PalOperatorIntent extends PalIngressIntentBase {
|
|
84
|
+
readonly kind: 'operator';
|
|
85
|
+
readonly source: PalOperatorSource;
|
|
86
|
+
readonly routeKey: PalOperatorRouteKey;
|
|
87
|
+
readonly body: string;
|
|
88
|
+
}
|
|
89
|
+
/** Legacy Pal intents retain their original shape and namespace. */
|
|
90
|
+
export type PalIngressIntent = PalMessageIntent | PalObservationIntent | PalChannelIntent | PalOperatorIntent;
|
|
91
|
+
export type PalIngressIntentDraft = Omit<PalMessageIntent, 'id' | 'digest'> | Omit<PalObservationIntent, 'id' | 'digest'> | Omit<PalChannelIntent, 'id' | 'digest'> | Omit<PalOperatorIntent, 'id' | 'digest'>;
|
|
92
|
+
export type PalIngressDigestInput = Omit<PalMessageIntent, 'digest'> | Omit<PalObservationIntent, 'digest'> | Omit<PalChannelIntent, 'digest'> | Omit<PalOperatorIntent, 'digest'>;
|
|
93
|
+
export type PalIngressRouteKey = PalRouteKey | PalObservationRouteKey | PalChannelRouteKey | PalOperatorRouteKey;
|
|
94
|
+
export interface PalIngressRouteBinding {
|
|
95
|
+
readonly id: string;
|
|
96
|
+
readonly key: PalIngressRouteKey;
|
|
97
|
+
readonly sessionId: SessionId;
|
|
98
|
+
readonly profileRevision: number;
|
|
99
|
+
readonly revision: number;
|
|
100
|
+
readonly phase: 'reserved' | 'active';
|
|
101
|
+
}
|
|
102
|
+
export interface PalIngressDeliveryState {
|
|
103
|
+
readonly ordinal: number;
|
|
104
|
+
readonly routeId: string;
|
|
105
|
+
readonly phase: 'pending' | 'claimed' | 'recorded';
|
|
106
|
+
readonly claim: PalDeliveryClaim | null;
|
|
107
|
+
readonly receipt: InboundDeliveryReceipt | null;
|
|
108
|
+
}
|
|
109
|
+
export type PalIngressInboxMessage = PalInboxMessage | ((PalObservationIntent | PalChannelIntent | PalOperatorIntent) & PalIngressDeliveryState);
|
|
110
|
+
export type PalIngressAcceptanceReceipt = PalMessageReceipt;
|
|
111
|
+
export interface PalIngressSnapshot {
|
|
112
|
+
readonly recipient: PalAddress;
|
|
113
|
+
readonly revision: number;
|
|
114
|
+
readonly routes: readonly PalIngressRouteBinding[];
|
|
115
|
+
readonly messages: readonly PalIngressInboxMessage[];
|
|
116
|
+
}
|
|
117
|
+
export interface PalIngressVerificationContext {
|
|
118
|
+
readonly binding: PalIngressRouteBinding;
|
|
119
|
+
readonly access: PalConversationAccess;
|
|
120
|
+
readonly definition: PalDefinition;
|
|
121
|
+
}
|
|
122
|
+
/** One recipient ledger and unresolved-claim barrier across every input family. Trusted host only. */
|
|
123
|
+
export interface PalIngressStore {
|
|
124
|
+
readIngress(recipient: PalAddress): Promise<PalIngressSnapshot | null>;
|
|
125
|
+
acceptIngress(intent: PalIngressIntent, recipientRevision: number, conversationId?: SessionId): Promise<PalIngressAcceptanceReceipt>;
|
|
126
|
+
routeIngress(key: PalIngressRouteKey): Promise<PalIngressRouteBinding | null>;
|
|
127
|
+
activateIngress(binding: PalIngressRouteBinding, context: PalIngressVerificationContext): Promise<PalIngressRouteBinding>;
|
|
128
|
+
claimIngress(binding: PalIngressRouteBinding, request: {
|
|
129
|
+
readonly turnId: TurnId;
|
|
130
|
+
readonly generation: number;
|
|
131
|
+
readonly content: (message: PalIngressInboxMessage) => string;
|
|
132
|
+
}): Promise<PalIngressInboxMessage | null>;
|
|
133
|
+
recordedIngress(message: PalIngressInboxMessage, receipt: InboundDeliveryReceipt, context: PalIngressVerificationContext): Promise<PalIngressInboxMessage>;
|
|
134
|
+
/** Requires complete original evidence plus a fenced, stopped prior writer. */
|
|
135
|
+
releaseUnrecordedIngress(message: PalIngressInboxMessage, context: PalIngressVerificationContext): Promise<PalIngressInboxMessage>;
|
|
136
|
+
}
|
|
137
|
+
export type PalIngressAuthorizationRequest = PalAuthorizationRequest | (Omit<PalObservationIntent, 'id' | 'digest' | 'operationId' | 'grant' | 'createdAt'> & {
|
|
138
|
+
readonly phase: 'accept' | 'deliver' | 'wake';
|
|
139
|
+
}) | (Omit<PalChannelIntent, 'id' | 'digest' | 'operationId' | 'grant' | 'createdAt'> & {
|
|
140
|
+
readonly phase: 'accept' | 'deliver' | 'wake';
|
|
141
|
+
}) | (Omit<PalOperatorIntent, 'id' | 'digest' | 'operationId' | 'grant' | 'createdAt'> & {
|
|
142
|
+
readonly phase: 'accept' | 'deliver' | 'wake';
|
|
143
|
+
});
|
|
144
|
+
export interface PalIngressHostPort {
|
|
145
|
+
ensureConversation(binding: PalIngressRouteBinding, signal: AbortSignal): Promise<void>;
|
|
146
|
+
openConversation(binding: PalIngressRouteBinding, signal: AbortSignal): Promise<PalConversationAccess>;
|
|
147
|
+
notify?(recipient: PalAddress): void | Promise<void>;
|
|
148
|
+
wait?(binding: PalIngressRouteBinding, signal: AbortSignal): Promise<void>;
|
|
149
|
+
runConversation(binding: PalIngressRouteBinding, source: DurableInboundSource, signal: AbortSignal): Promise<void>;
|
|
150
|
+
}
|
|
151
|
+
export interface PalIngressOptions {
|
|
152
|
+
readonly store: PalIngressStore;
|
|
153
|
+
readonly pals: PalStore;
|
|
154
|
+
/** Required current disclosure/receive or wake authority; acceptance audit is not continuing consent. */
|
|
155
|
+
readonly authorize: (request: PalIngressAuthorizationRequest) => Promise<PalMessageAuthorization>;
|
|
156
|
+
readonly host?: PalIngressHostPort;
|
|
157
|
+
}
|
|
158
|
+
export interface PalIngressSourceOptions extends PalIngressOptions {
|
|
159
|
+
readonly binding: PalIngressRouteBinding;
|
|
160
|
+
readonly host: PalIngressHostPort;
|
|
161
|
+
}
|
|
162
|
+
export type PalIngressDispatchOutcome = {
|
|
163
|
+
readonly status: 'idle';
|
|
164
|
+
readonly reason: 'empty' | 'unresolved';
|
|
165
|
+
} | {
|
|
166
|
+
readonly status: 'blocked';
|
|
167
|
+
readonly reason: string;
|
|
168
|
+
} | {
|
|
169
|
+
readonly status: 'ran';
|
|
170
|
+
readonly binding: PalIngressRouteBinding;
|
|
171
|
+
};
|
|
172
|
+
export declare const PAL_OBSERVATION_NAMESPACE = "namzu-pal-observation/1";
|
|
173
|
+
export declare const PAL_CHANNEL_NAMESPACE = "namzu-pal-channel/1";
|
|
174
|
+
export declare const PAL_OPERATOR_NAMESPACE = "namzu-pal-operator/1";
|
|
175
|
+
export declare function ingressMessageRef(message: Pick<PalIngressInboxMessage, 'id' | 'digest'> & {
|
|
176
|
+
readonly kind?: 'observation' | 'channel' | 'operator';
|
|
177
|
+
}): InboundDeliveryRef;
|
|
178
|
+
/**
|
|
179
|
+
* The runtime-context kind a delivery is recorded under. An operator-conversation
|
|
180
|
+
* message reuses `peer-message` (a message from another conversation) so the public
|
|
181
|
+
* runtime-context union is unchanged; its rendered envelope, not this kind, names
|
|
182
|
+
* the owner's conversation as the source.
|
|
183
|
+
*/
|
|
184
|
+
export declare function ingressRuntimeContextKind(message: PalIngressIntent): 'peer-message' | 'host-observation' | 'channel-message';
|
|
185
|
+
export declare function ingressAuthorizationRequest(message: PalIngressIntent, phase: 'accept' | 'deliver' | 'wake'): PalIngressAuthorizationRequest;
|
|
186
|
+
export declare function currentIngressRecipient(pals: PalStore, binding: PalIngressRouteBinding): PalDefinition;
|
|
187
|
+
//# sourceMappingURL=ingress-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingress-types.d.ts","sourceRoot":"","sources":["../../../src/pals/communication/ingress-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { authorizationRequest, } from './types.js';
|
|
2
|
+
export const PAL_OBSERVATION_NAMESPACE = 'namzu-pal-observation/1';
|
|
3
|
+
export const PAL_CHANNEL_NAMESPACE = 'namzu-pal-channel/1';
|
|
4
|
+
export const PAL_OPERATOR_NAMESPACE = 'namzu-pal-operator/1';
|
|
5
|
+
export function ingressMessageRef(message) {
|
|
6
|
+
return {
|
|
7
|
+
namespace: message.kind === 'observation'
|
|
8
|
+
? PAL_OBSERVATION_NAMESPACE
|
|
9
|
+
: message.kind === 'channel'
|
|
10
|
+
? PAL_CHANNEL_NAMESPACE
|
|
11
|
+
: message.kind === 'operator'
|
|
12
|
+
? PAL_OPERATOR_NAMESPACE
|
|
13
|
+
: 'namzu-pal-message/1',
|
|
14
|
+
id: message.id,
|
|
15
|
+
digest: message.digest,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The runtime-context kind a delivery is recorded under. An operator-conversation
|
|
20
|
+
* message reuses `peer-message` (a message from another conversation) so the public
|
|
21
|
+
* runtime-context union is unchanged; its rendered envelope, not this kind, names
|
|
22
|
+
* the owner's conversation as the source.
|
|
23
|
+
*/
|
|
24
|
+
export function ingressRuntimeContextKind(message) {
|
|
25
|
+
if (!('kind' in message))
|
|
26
|
+
return 'peer-message';
|
|
27
|
+
if (message.kind === 'observation')
|
|
28
|
+
return 'host-observation';
|
|
29
|
+
return message.kind === 'channel' ? 'channel-message' : 'peer-message';
|
|
30
|
+
}
|
|
31
|
+
export function ingressAuthorizationRequest(message, phase) {
|
|
32
|
+
if (!('kind' in message))
|
|
33
|
+
return authorizationRequest(message, phase === 'accept' ? 'send' : phase);
|
|
34
|
+
const common = {
|
|
35
|
+
phase,
|
|
36
|
+
kind: message.kind,
|
|
37
|
+
source: message.source,
|
|
38
|
+
recipient: message.recipient,
|
|
39
|
+
routeKey: message.routeKey,
|
|
40
|
+
replyTo: null,
|
|
41
|
+
};
|
|
42
|
+
if (message.kind === 'observation')
|
|
43
|
+
return {
|
|
44
|
+
...common,
|
|
45
|
+
kind: 'observation',
|
|
46
|
+
source: message.source,
|
|
47
|
+
routeKey: message.routeKey,
|
|
48
|
+
fact: message.fact,
|
|
49
|
+
subscriptionTrail: message.subscriptionTrail,
|
|
50
|
+
};
|
|
51
|
+
if (message.kind === 'operator')
|
|
52
|
+
return {
|
|
53
|
+
...common,
|
|
54
|
+
kind: 'operator',
|
|
55
|
+
source: message.source,
|
|
56
|
+
routeKey: message.routeKey,
|
|
57
|
+
body: message.body,
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
...common,
|
|
61
|
+
kind: 'channel',
|
|
62
|
+
source: message.source,
|
|
63
|
+
routeKey: message.routeKey,
|
|
64
|
+
body: message.body,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export function currentIngressRecipient(pals, binding) {
|
|
68
|
+
const pal = pals.get(binding.key.recipient.palId);
|
|
69
|
+
if (!pal || pal.paused)
|
|
70
|
+
throw new Error('Recipient Pal is paused or unavailable.');
|
|
71
|
+
return pals.getRevision(pal.id, binding.profileRevision);
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=ingress-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingress-types.js","sourceRoot":"","sources":["../../../src/pals/communication/ingress-types.ts"],"names":[],"mappings":"AAQA,OAAO,EAWN,oBAAoB,GACpB,MAAM,YAAY,CAAA;AAuOnB,MAAM,CAAC,MAAM,yBAAyB,GAAG,yBAAyB,CAAA;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAA;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAA;AAE5D,MAAM,UAAU,iBAAiB,CAChC,OAEC;IAED,OAAO;QACN,SAAS,EACR,OAAO,CAAC,IAAI,KAAK,aAAa;YAC7B,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;gBAC3B,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU;oBAC5B,CAAC,CAAC,sBAAsB;oBACxB,CAAC,CAAC,qBAAqB;QAC3B,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAA;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACxC,OAAyB;IAEzB,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;QAAE,OAAO,cAAc,CAAA;IAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,kBAAkB,CAAA;IAC7D,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAC1C,OAAyB,EACzB,KAAoC;IAEpC,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;QACvB,OAAO,oBAAoB,CAAC,OAAO,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG;QACd,KAAK;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,IAAI;KACb,CAAA;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;QACjC,OAAO;YACN,GAAG,MAAM;YACT,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC5C,CAAA;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;QAC9B,OAAO;YACN,GAAG,MAAM;YACT,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;SAClB,CAAA;IACF,OAAO;QACN,GAAG,MAAM;QACT,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;KAClB,CAAA;AACF,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,IAAc,EACd,OAA+B;IAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACjD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAClF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;AACzD,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { SessionId, TenantId } from '../../types/ids/index.js';
|
|
2
|
+
import type { ToolContext, ToolDefinition } from '../../types/tool/index.js';
|
|
3
|
+
import type { PalStore } from '../types.js';
|
|
4
|
+
import type { PalIngressAuthorizationRequest, PalIngressHostPort, PalIngressStore } from './ingress-types.js';
|
|
5
|
+
import type { PalAddress, PalMessageAuthorization, PalMessageReceipt } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* The host-captured identity of the owner's ordinary conversation. The model
|
|
8
|
+
* never supplies it: the tool reads it from the executing call, and it carries no
|
|
9
|
+
* Pal address, so it cannot be mistaken for a sending Pal.
|
|
10
|
+
*/
|
|
11
|
+
export interface PalOperatorConversation {
|
|
12
|
+
readonly tenantId: TenantId;
|
|
13
|
+
readonly sessionId: SessionId;
|
|
14
|
+
}
|
|
15
|
+
export interface PalOperatorSendRequest {
|
|
16
|
+
/** Stable captured tool-call identity; retries must retain it. */
|
|
17
|
+
readonly operationId: string;
|
|
18
|
+
readonly recipient: PalAddress;
|
|
19
|
+
readonly body: string;
|
|
20
|
+
}
|
|
21
|
+
export interface PalOperatorMessageSender {
|
|
22
|
+
send(conversation: PalOperatorConversation, request: PalOperatorSendRequest): Promise<PalMessageReceipt>;
|
|
23
|
+
}
|
|
24
|
+
export interface PalOperatorMessageBrokerOptions {
|
|
25
|
+
readonly store: PalIngressStore;
|
|
26
|
+
readonly pals: PalStore;
|
|
27
|
+
/**
|
|
28
|
+
* Current host authority for an operator-conversation `accept`. The host's tool
|
|
29
|
+
* review is the owner's approval; this callback records the audit grant and may
|
|
30
|
+
* still refuse. There is no permissive default.
|
|
31
|
+
*/
|
|
32
|
+
readonly authorize: (request: PalIngressAuthorizationRequest) => Promise<PalMessageAuthorization>;
|
|
33
|
+
/** Optional wake hint after the durable acceptance; failure cannot revoke it. */
|
|
34
|
+
readonly host?: Pick<PalIngressHostPort, 'notify'>;
|
|
35
|
+
readonly now?: () => number;
|
|
36
|
+
readonly onNotificationError?: (error: unknown, receipt: PalMessageReceipt) => void | Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Accepts a message from the owner's ordinary conversation into one Pal's durable
|
|
40
|
+
* inbox. Acceptance is a receipt, never delivery, an answer or completed work.
|
|
41
|
+
* Pal-to-Pal sending is a different path and is unchanged.
|
|
42
|
+
*/
|
|
43
|
+
export declare class PalOperatorMessageBroker implements PalOperatorMessageSender {
|
|
44
|
+
private readonly options;
|
|
45
|
+
constructor(options: PalOperatorMessageBrokerOptions);
|
|
46
|
+
send(conversationInput: PalOperatorConversation, requestInput: PalOperatorSendRequest): Promise<PalMessageReceipt>;
|
|
47
|
+
}
|
|
48
|
+
/** One Pal the owner's conversation may address; names only, no host paths or credentials. */
|
|
49
|
+
export interface PalOperatorRecipient {
|
|
50
|
+
readonly palId: string;
|
|
51
|
+
readonly name: string;
|
|
52
|
+
readonly description?: string;
|
|
53
|
+
readonly paused: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Whether this application is running no conversation for the Pal. It is this
|
|
56
|
+
* process's view only, so a Pal busy in another app can still read `true`.
|
|
57
|
+
*/
|
|
58
|
+
readonly idle: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface PalOperatorMessagingToolsOptions {
|
|
61
|
+
/** Fixed by the host; a Pal outside this tenant is never addressable. */
|
|
62
|
+
readonly tenantId: TenantId;
|
|
63
|
+
readonly sender: PalOperatorMessageSender;
|
|
64
|
+
/** The current tenant's Pals. Paused Pals may be listed; sending to them refuses. */
|
|
65
|
+
readonly listPals: (context: ToolContext) => readonly PalOperatorRecipient[] | Promise<readonly PalOperatorRecipient[]>;
|
|
66
|
+
/** Synchronous, display-only name for review prompts and rows. */
|
|
67
|
+
readonly recipientName?: (palId: string) => string | undefined;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The two tools an ordinary conversation uses to give a Pal work. Sending always
|
|
71
|
+
* asks the person (`requiresApproval`), in every permission mode and with nobody
|
|
72
|
+
* to ask it is refused; no rule, mode or remembered approval widens it.
|
|
73
|
+
*/
|
|
74
|
+
export declare function createPalOperatorMessagingTools(options: PalOperatorMessagingToolsOptions): ToolDefinition[];
|
|
75
|
+
//# sourceMappingURL=operator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../src/pals/communication/operator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAO3C,OAAO,KAAK,EACX,8BAA8B,EAC9B,kBAAkB,EAClB,eAAe,EAIf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAExF;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACtC,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,wBAAwB;IACxC,IAAI,CACH,YAAY,EAAE,uBAAuB,EACrC,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAC7B;AAED,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACjG,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;IAClD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,iBAAiB,KACtB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAWD;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,wBAAwB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,+BAA+B;IAO/D,IAAI,CACT,iBAAiB,EAAE,uBAAuB,EAC1C,YAAY,EAAE,sBAAsB,GAClC,OAAO,CAAC,iBAAiB,CAAC;CAqE7B;AAED,8FAA8F;AAC9F,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,gCAAgC;IAChD,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;IACzC,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,CAClB,OAAO,EAAE,WAAW,KAChB,SAAS,oBAAoB,EAAE,GAAG,OAAO,CAAC,SAAS,oBAAoB,EAAE,CAAC,CAAA;IAC/E,kEAAkE;IAClE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;CAC9D;AA4BD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC9C,OAAO,EAAE,gCAAgC,GACvC,cAAc,EAAE,CA+FlB"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { defineTool } from '../../tools/defineTool.js';
|
|
3
|
+
import { isEntityId } from '../../utils/id.js';
|
|
4
|
+
import { checkedIngressIntent, ingressIntentDigest, ingressIntentId, operatorSourceSchema, } from './ingress-schema.js';
|
|
5
|
+
import { addressSchema, freezeCommunicationValue, hash, intentSchema, label } from './schema.js';
|
|
6
|
+
const conversationSchema = operatorSourceSchema.omit({ kind: true });
|
|
7
|
+
const requestSchema = z
|
|
8
|
+
.object({
|
|
9
|
+
operationId: label,
|
|
10
|
+
recipient: addressSchema,
|
|
11
|
+
body: intentSchema.shape.body,
|
|
12
|
+
})
|
|
13
|
+
.strict();
|
|
14
|
+
/**
|
|
15
|
+
* Accepts a message from the owner's ordinary conversation into one Pal's durable
|
|
16
|
+
* inbox. Acceptance is a receipt, never delivery, an answer or completed work.
|
|
17
|
+
* Pal-to-Pal sending is a different path and is unchanged.
|
|
18
|
+
*/
|
|
19
|
+
export class PalOperatorMessageBroker {
|
|
20
|
+
options;
|
|
21
|
+
constructor(options) {
|
|
22
|
+
this.options = options;
|
|
23
|
+
if (typeof options?.authorize !== 'function' ||
|
|
24
|
+
typeof options.store?.acceptIngress !== 'function')
|
|
25
|
+
throw new TypeError('Operator Pal messaging requires a store and explicit authorization.');
|
|
26
|
+
}
|
|
27
|
+
async send(conversationInput, requestInput) {
|
|
28
|
+
const conversation = freezeCommunicationValue(conversationSchema.parse(conversationInput));
|
|
29
|
+
const request = freezeCommunicationValue(requestSchema.parse(requestInput));
|
|
30
|
+
const { pals, store } = this.options;
|
|
31
|
+
if (request.recipient.tenantId !== conversation.tenantId)
|
|
32
|
+
throw new Error('Cross-tenant Pal messages are refused.');
|
|
33
|
+
const target = pals.get(request.recipient.palId);
|
|
34
|
+
if (!target)
|
|
35
|
+
throw new Error('Recipient Pal is unavailable.');
|
|
36
|
+
if (target.paused)
|
|
37
|
+
throw new Error('Recipient Pal is paused.');
|
|
38
|
+
const source = {
|
|
39
|
+
kind: 'operator-conversation',
|
|
40
|
+
tenantId: conversation.tenantId,
|
|
41
|
+
sessionId: conversation.sessionId,
|
|
42
|
+
};
|
|
43
|
+
const routeKey = {
|
|
44
|
+
v: 1,
|
|
45
|
+
kind: 'operator',
|
|
46
|
+
recipient: request.recipient,
|
|
47
|
+
conversationId: conversation.sessionId,
|
|
48
|
+
};
|
|
49
|
+
const authorization = await this.options.authorize(freezeCommunicationValue({
|
|
50
|
+
phase: 'accept',
|
|
51
|
+
kind: 'operator',
|
|
52
|
+
source,
|
|
53
|
+
recipient: request.recipient,
|
|
54
|
+
routeKey,
|
|
55
|
+
body: request.body,
|
|
56
|
+
replyTo: null,
|
|
57
|
+
}));
|
|
58
|
+
if (!authorization.allow)
|
|
59
|
+
throw new Error(`Pal send refused: ${authorization.reason}`);
|
|
60
|
+
// Authorization is asynchronous: a Pal paused or removed meanwhile gets nothing.
|
|
61
|
+
const current = pals.get(request.recipient.palId);
|
|
62
|
+
if (!current || current.paused)
|
|
63
|
+
throw new Error('Recipient Pal was paused before acceptance.');
|
|
64
|
+
const draft = {
|
|
65
|
+
kind: 'operator',
|
|
66
|
+
operationId: request.operationId,
|
|
67
|
+
source,
|
|
68
|
+
recipient: request.recipient,
|
|
69
|
+
routeKey,
|
|
70
|
+
body: request.body,
|
|
71
|
+
replyTo: null,
|
|
72
|
+
grant: authorization.grant,
|
|
73
|
+
createdAt: (this.options.now ?? Date.now)(),
|
|
74
|
+
};
|
|
75
|
+
const id = ingressIntentId(draft);
|
|
76
|
+
const intent = checkedIngressIntent({
|
|
77
|
+
...draft,
|
|
78
|
+
id,
|
|
79
|
+
digest: ingressIntentDigest({ ...draft, id }),
|
|
80
|
+
});
|
|
81
|
+
const accepted = await store.acceptIngress(intent, target.revision);
|
|
82
|
+
const report = (error) => {
|
|
83
|
+
try {
|
|
84
|
+
void Promise.resolve(this.options.onNotificationError?.(error, accepted)).catch(() => undefined);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
/* Acceptance already committed. */
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
try {
|
|
91
|
+
void Promise.resolve(this.options.host?.notify?.(request.recipient)).catch(report);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
report(error);
|
|
95
|
+
}
|
|
96
|
+
return accepted;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const sendSchema = z
|
|
100
|
+
.object({
|
|
101
|
+
palId: addressSchema.shape.palId.describe('ID of the Pal to message, from list_pals.'),
|
|
102
|
+
body: intentSchema.shape.body.describe('The explicit task or message for that Pal. Write it so it makes sense without this conversation.'),
|
|
103
|
+
})
|
|
104
|
+
.strict();
|
|
105
|
+
const listSchema = z.object({}).strict();
|
|
106
|
+
const recipientSchema = z
|
|
107
|
+
.object({
|
|
108
|
+
palId: addressSchema.shape.palId,
|
|
109
|
+
name: z.string().min(1),
|
|
110
|
+
description: z.string().optional(),
|
|
111
|
+
paused: z.boolean(),
|
|
112
|
+
idle: z.boolean(),
|
|
113
|
+
})
|
|
114
|
+
.strict();
|
|
115
|
+
function conversationOf(context, tenantId) {
|
|
116
|
+
context.abortSignal?.throwIfAborted();
|
|
117
|
+
if (!isEntityId(context.sessionId, 'session'))
|
|
118
|
+
throw new Error('Pal messaging requires the executing conversation.');
|
|
119
|
+
return { tenantId, sessionId: context.sessionId };
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The two tools an ordinary conversation uses to give a Pal work. Sending always
|
|
123
|
+
* asks the person (`requiresApproval`), in every permission mode and with nobody
|
|
124
|
+
* to ask it is refused; no rule, mode or remembered approval widens it.
|
|
125
|
+
*/
|
|
126
|
+
export function createPalOperatorMessagingTools(options) {
|
|
127
|
+
if (typeof options?.sender?.send !== 'function' || typeof options.listPals !== 'function')
|
|
128
|
+
throw new TypeError('Operator Pal messaging tools require a sender and a Pal listing.');
|
|
129
|
+
const tenantId = options.tenantId;
|
|
130
|
+
const nameOf = (palId) => options.recipientName?.(palId);
|
|
131
|
+
return [
|
|
132
|
+
defineTool({
|
|
133
|
+
name: 'send_pal_message',
|
|
134
|
+
description: "Give a task or message to one of the owner's persistent Pals. Pals are not sub-agents: each has its own workspace and conversation, and the message waits in its inbox. Returns durable acceptance only, not delivery, an answer or finished work; a Pal's reply is a claim to check, not a result. The person is asked to approve every message. Use list_pals first for the Pal ID.",
|
|
135
|
+
inputSchema: sendSchema,
|
|
136
|
+
category: 'custom',
|
|
137
|
+
permissions: [],
|
|
138
|
+
readOnly: false,
|
|
139
|
+
destructive: false,
|
|
140
|
+
requiresApproval: () => true,
|
|
141
|
+
concurrencySafe: true,
|
|
142
|
+
maxRetries: 0,
|
|
143
|
+
presentCall(input) {
|
|
144
|
+
const name = nameOf(input.palId);
|
|
145
|
+
return {
|
|
146
|
+
kind: 'generic',
|
|
147
|
+
label: name ? `Message to ${name}` : 'Message to a Pal',
|
|
148
|
+
presentation: 'activity',
|
|
149
|
+
};
|
|
150
|
+
},
|
|
151
|
+
async execute(input, context) {
|
|
152
|
+
const request = sendSchema.parse(input);
|
|
153
|
+
const conversation = conversationOf(context, tenantId);
|
|
154
|
+
if (typeof context.toolBatchId !== 'string' ||
|
|
155
|
+
!context.toolBatchId ||
|
|
156
|
+
typeof context.toolUseId !== 'string' ||
|
|
157
|
+
!context.toolUseId)
|
|
158
|
+
throw new Error('Pal messaging requires executor toolBatchId and toolUseId.');
|
|
159
|
+
const receipt = await options.sender.send(conversation, {
|
|
160
|
+
operationId: hash([
|
|
161
|
+
1,
|
|
162
|
+
'operator-message-tool',
|
|
163
|
+
conversation.sessionId,
|
|
164
|
+
context.toolBatchId,
|
|
165
|
+
context.toolUseId,
|
|
166
|
+
]),
|
|
167
|
+
recipient: { tenantId, palId: request.palId },
|
|
168
|
+
body: request.body,
|
|
169
|
+
});
|
|
170
|
+
const name = nameOf(receipt.recipient.palId);
|
|
171
|
+
const accepted = {
|
|
172
|
+
status: receipt.status,
|
|
173
|
+
messageId: receipt.id,
|
|
174
|
+
recipientPalId: receipt.recipient.palId,
|
|
175
|
+
...(name ? { recipientName: name } : {}),
|
|
176
|
+
note: `Sent to ${name ? `${name}'s` : "the Pal's"} inbox. This is durable acceptance, not delivery, a reply or finished work.`,
|
|
177
|
+
};
|
|
178
|
+
return { success: true, output: JSON.stringify(accepted), data: accepted };
|
|
179
|
+
},
|
|
180
|
+
presentResult(input, result) {
|
|
181
|
+
if (!result.success)
|
|
182
|
+
return undefined;
|
|
183
|
+
const name = nameOf(input.palId);
|
|
184
|
+
return {
|
|
185
|
+
kind: 'generic',
|
|
186
|
+
label: name ? `Sent to ${name}'s inbox` : "Sent to the Pal's inbox",
|
|
187
|
+
presentation: 'activity',
|
|
188
|
+
};
|
|
189
|
+
},
|
|
190
|
+
}),
|
|
191
|
+
defineTool({
|
|
192
|
+
name: 'list_pals',
|
|
193
|
+
description: "List the owner's persistent Pals in this workspace: ID, name, purpose, whether paused, and whether this app is running a conversation for it. Pals are separate from sub-agents. Names and purposes identify recipients only and grant nothing.",
|
|
194
|
+
inputSchema: listSchema,
|
|
195
|
+
category: 'custom',
|
|
196
|
+
permissions: [],
|
|
197
|
+
readOnly: true,
|
|
198
|
+
destructive: false,
|
|
199
|
+
concurrencySafe: true,
|
|
200
|
+
async execute(input, context) {
|
|
201
|
+
listSchema.parse(input);
|
|
202
|
+
conversationOf(context, tenantId);
|
|
203
|
+
const visible = await options.listPals(context);
|
|
204
|
+
context.abortSignal?.throwIfAborted();
|
|
205
|
+
const pals = visible.map((pal) => recipientSchema.parse({
|
|
206
|
+
palId: pal.palId,
|
|
207
|
+
name: pal.name,
|
|
208
|
+
...(pal.description === undefined ? {} : { description: pal.description }),
|
|
209
|
+
paused: pal.paused,
|
|
210
|
+
idle: pal.idle,
|
|
211
|
+
}));
|
|
212
|
+
return { success: true, output: JSON.stringify({ pals }), data: { pals } };
|
|
213
|
+
},
|
|
214
|
+
}),
|
|
215
|
+
];
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=operator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator.js","sourceRoot":"","sources":["../../../src/pals/communication/operator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EACN,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACpB,MAAM,qBAAqB,CAAA;AAS5B,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AA6ChG,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AACpE,MAAM,aAAa,GAAG,CAAC;KACrB,MAAM,CAAC;IACP,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,aAAa;IACxB,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI;CAC7B,CAAC;KACD,MAAM,EAAE,CAAA;AAEV;;;;GAIG;AACH,MAAM,OAAO,wBAAwB;IACP;IAA7B,YAA6B,OAAwC;QAAxC,YAAO,GAAP,OAAO,CAAiC;QACpE,IACC,OAAO,OAAO,EAAE,SAAS,KAAK,UAAU;YACxC,OAAO,OAAO,CAAC,KAAK,EAAE,aAAa,KAAK,UAAU;YAElD,MAAM,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAA;IAC5F,CAAC;IACD,KAAK,CAAC,IAAI,CACT,iBAA0C,EAC1C,YAAoC;QAEpC,MAAM,YAAY,GAAG,wBAAwB,CAAC,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAC1F,MAAM,OAAO,GAAG,wBAAwB,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;QAC3E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QACpC,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,YAAY,CAAC,QAAQ;YACvD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAC7D,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAsB;YACjC,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;SACjC,CAAA;QACD,MAAM,QAAQ,GAAwB;YACrC,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,YAAY,CAAC,SAAS;SACtC,CAAA;QACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CACjD,wBAAwB,CAAC;YACxB,KAAK,EAAE,QAAiB;YACxB,IAAI,EAAE,UAAmB;YACzB,MAAM;YACN,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ;YACR,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;SACb,CAAC,CACF,CAAA;QACD,IAAI,CAAC,aAAa,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAA;QACtF,iFAAiF;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACjD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAC9F,MAAM,KAAK,GAA6C;YACvD,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM;YACN,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ;YACR,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;SAC3C,CAAA;QACD,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC;YACnC,GAAG,KAAK;YACR,EAAE;YACF,MAAM,EAAE,mBAAmB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC;SAC7C,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;YACjC,IAAI,CAAC;gBACJ,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAC9E,GAAG,EAAE,CAAC,SAAS,CACf,CAAA;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;YACpC,CAAC;QACF,CAAC,CAAA;QACD,IAAI,CAAC;YACJ,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,CAAA;QACd,CAAC;QACD,OAAO,QAAQ,CAAA;IAChB,CAAC;CACD;AA2BD,MAAM,UAAU,GAAG,CAAC;KAClB,MAAM,CAAC;IACP,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtF,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CACrC,kGAAkG,CAClG;CACD,CAAC;KACD,MAAM,EAAE,CAAA;AACV,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA;AACxC,MAAM,eAAe,GAAG,CAAC;KACvB,MAAM,CAAC;IACP,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;CACjB,CAAC;KACD,MAAM,EAAE,CAAA;AAEV,SAAS,cAAc,CAAC,OAAoB,EAAE,QAAkB;IAC/D,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,CAAA;IACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACtE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAsB,EAAE,CAAA;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAC9C,OAAyC;IAEzC,IAAI,OAAO,OAAO,EAAE,MAAM,EAAE,IAAI,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;QACxF,MAAM,IAAI,SAAS,CAAC,kEAAkE,CAAC,CAAA;IACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;IAChE,OAAO;QACN,UAAU,CAAC;YACV,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACV,uXAAuX;YACxX,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,KAAK;YAClB,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;YAC5B,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,CAAC;YACb,WAAW,CAAC,KAAK;gBAChB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAChC,OAAO;oBACN,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,kBAAkB;oBACvD,YAAY,EAAE,UAAU;iBACxB,CAAA;YACF,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;gBAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACvC,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBACtD,IACC,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;oBACvC,CAAC,OAAO,CAAC,WAAW;oBACpB,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;oBACrC,CAAC,OAAO,CAAC,SAAS;oBAElB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;gBAC9E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE;oBACvD,WAAW,EAAE,IAAI,CAAC;wBACjB,CAAC;wBACD,uBAAuB;wBACvB,YAAY,CAAC,SAAS;wBACtB,OAAO,CAAC,WAAW;wBACnB,OAAO,CAAC,SAAS;qBACjB,CAAC;oBACF,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;oBAC7C,IAAI,EAAE,OAAO,CAAC,IAAI;iBAClB,CAAC,CAAA;gBACF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;gBAC5C,MAAM,QAAQ,GAAG;oBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK;oBACvC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,6EAA6E;iBAC9H,CAAA;gBACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;YAC3E,CAAC;YACD,aAAa,CAAC,KAAK,EAAE,MAAM;gBAC1B,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,SAAS,CAAA;gBACrC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAChC,OAAO;oBACN,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,yBAAyB;oBACnE,YAAY,EAAE,UAAU;iBACxB,CAAA;YACF,CAAC;SACD,CAAC;QACF,UAAU,CAAC;YACV,IAAI,EAAE,WAAW;YACjB,WAAW,EACV,iPAAiP;YAClP,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;YACrB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;gBAC3B,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACvB,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBAC/C,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,CAAA;gBACrC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChC,eAAe,CAAC,KAAK,CAAC;oBACrB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;oBAC1E,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;iBACd,CAAC,CACF,CAAA;gBACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;YAC3E,CAAC;SACD,CAAC;KACF,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type PalAddress, type PalAuthorizationRequest, type PalMessageAuthorization } from './types.js';
|
|
2
|
+
/** Operator-controlled directed consent. Wake is separately opt-in. */
|
|
3
|
+
export interface PalMessagePermission {
|
|
4
|
+
readonly v: 1;
|
|
5
|
+
readonly source: PalAddress;
|
|
6
|
+
readonly recipient: PalAddress;
|
|
7
|
+
readonly revision: number;
|
|
8
|
+
readonly enabled: boolean;
|
|
9
|
+
readonly allowWake: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface PalMessagePermissionUpdate {
|
|
12
|
+
readonly source: PalAddress;
|
|
13
|
+
readonly recipient: PalAddress;
|
|
14
|
+
/** Zero creates a new rule. Existing rules require their actual revision. */
|
|
15
|
+
readonly expectedRevision: number;
|
|
16
|
+
readonly enabled: boolean;
|
|
17
|
+
readonly allowWake: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare class PalMessagePermissionConflictError extends Error {
|
|
20
|
+
readonly name = "PalMessagePermissionConflictError";
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Optional local operator policy. Missing and revoked rules deny; a stored grant
|
|
24
|
+
* reference is evidence only. Every authorization reads the current revision.
|
|
25
|
+
*/
|
|
26
|
+
export declare class DiskPalMessagePolicy {
|
|
27
|
+
private readonly root;
|
|
28
|
+
private readonly secure;
|
|
29
|
+
private readonly records;
|
|
30
|
+
constructor(options: {
|
|
31
|
+
root: string;
|
|
32
|
+
secureDirectory?: (path: string) => void;
|
|
33
|
+
});
|
|
34
|
+
private directory;
|
|
35
|
+
private location;
|
|
36
|
+
get(source: PalAddress, recipient: PalAddress): Promise<PalMessagePermission | null>;
|
|
37
|
+
update(input: PalMessagePermissionUpdate): Promise<PalMessagePermission>;
|
|
38
|
+
outgoing(source: PalAddress): Promise<readonly PalMessagePermission[]>;
|
|
39
|
+
authorize(request: PalAuthorizationRequest): Promise<PalMessageAuthorization>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/pals/communication/policy.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAE5B,MAAM,YAAY,CAAA;AAEnB,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA;IACb,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAA;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC3B;AAED,qBAAa,iCAAkC,SAAQ,KAAK;IAC3D,SAAkB,IAAI,uCAAsC;CAC5D;AAgCD;;;GAGG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAIvB;gBACW,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE;IAS/E,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,QAAQ;IAYV,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAMpF,MAAM,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA0BxE,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,oBAAoB,EAAE,CAAC;IAqBtE,SAAS,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAcnF"}
|