@fitchmultz/pi-subagents 0.49.1 → 0.51.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 +72 -1
- package/README.md +119 -94
- package/dist/agent/contracts.js +104 -0
- package/dist/agent/cwd.js +51 -0
- package/dist/agent/host.js +69 -0
- package/dist/agent/index.js +456 -0
- package/dist/agent/journal-tail.js +142 -0
- package/dist/agent/launch.js +99 -0
- package/dist/agent/legacy.js +183 -0
- package/dist/agent/notifications.js +210 -0
- package/dist/agent/observation-state.js +246 -0
- package/dist/agent/observation-view.js +258 -0
- package/dist/agent/observation.js +346 -0
- package/dist/agent/observe-card.js +243 -0
- package/dist/agent/observe-chrome.js +85 -0
- package/dist/agent/observe-client.js +285 -0
- package/dist/agent/observe-layout.js +65 -0
- package/dist/agent/observe-reading.js +84 -0
- package/dist/agent/observe-screen.js +436 -0
- package/dist/agent/observe-transcript.js +382 -0
- package/dist/agent/observe.js +441 -0
- package/dist/agent/process.js +346 -0
- package/dist/agent/receipts.js +147 -0
- package/dist/agent/runner.js +477 -0
- package/dist/agent/saved.js +195 -0
- package/dist/agent/shell.js +44 -0
- package/dist/agent/storage.js +130 -0
- package/dist/agent/tool-schemas.js +20 -0
- package/dist/agent/typebox.js +25 -0
- package/dist/agent/usage.js +117 -0
- package/dist/agent/view.js +194 -0
- package/dist/agent/wake.js +99 -0
- package/dist/build-info.js +1 -0
- package/dist/index.js +8 -0
- package/dist/intercom-client.d.ts +26 -0
- package/dist/intercom-client.js +45 -0
- package/dist/pi-intercom/agent-dir.d.ts +1 -0
- package/dist/pi-intercom/bridge-config.js +12 -19
- package/dist/pi-intercom/bridge-http.js +1 -2
- package/dist/pi-intercom/bridge-mailbox.js +2 -7
- package/dist/pi-intercom/bridge-protocol.js +3 -10
- package/dist/pi-intercom/bridge-routes.js +15 -186
- package/dist/pi-intercom/bridge-session.js +4 -97
- package/dist/pi-intercom/bridge.js +12 -35
- package/dist/pi-intercom/broker/broker.js +57 -56
- package/dist/pi-intercom/broker/client-last.d.ts +13 -0
- package/dist/pi-intercom/broker/client-last.js +60 -0
- package/dist/pi-intercom/broker/client.d.ts +60 -0
- package/dist/pi-intercom/broker/client.js +75 -4
- package/dist/pi-intercom/broker/connection.d.ts +29 -0
- package/dist/pi-intercom/broker/connection.js +5 -18
- package/dist/pi-intercom/broker/framing.d.ts +17 -0
- package/dist/pi-intercom/broker/framing.js +10 -7
- package/dist/pi-intercom/broker/guard.js +23 -0
- package/dist/pi-intercom/broker/last.d.ts +26 -0
- package/dist/pi-intercom/broker/last.js +198 -0
- package/dist/pi-intercom/broker/paths.d.ts +13 -0
- package/dist/pi-intercom/broker/paths.js +58 -16
- package/dist/pi-intercom/broker/pid.js +5 -1
- package/dist/pi-intercom/broker/server-connection.js +37 -0
- package/dist/pi-intercom/broker/snapshot-reader.d.ts +9 -0
- package/dist/pi-intercom/broker/snapshots.d.ts +29 -0
- package/dist/pi-intercom/broker/spawn.js +32 -16
- package/dist/pi-intercom/broker/targets.d.ts +9 -0
- package/dist/pi-intercom/broker/targets.js +24 -0
- package/dist/pi-intercom/config.js +0 -23
- package/dist/pi-intercom/connection.js +40 -72
- package/dist/pi-intercom/identity.js +15 -44
- package/dist/pi-intercom/inbound-delivery.js +20 -125
- package/dist/pi-intercom/inbound-journal.js +85 -73
- package/dist/pi-intercom/inbound-record.js +20 -49
- package/dist/pi-intercom/inbound.js +17 -90
- package/dist/pi-intercom/index.js +11 -47
- package/dist/pi-intercom/last-message.js +46 -0
- package/dist/pi-intercom/lifecycle.js +96 -36
- package/dist/pi-intercom/message-format.js +1 -32
- package/dist/pi-intercom/outbound.js +14 -16
- package/dist/pi-intercom/reply-tracker.js +9 -18
- package/dist/pi-intercom/reply-wait.js +17 -108
- package/dist/pi-intercom/runtime-types.js +0 -1
- package/dist/pi-intercom/session-events.js +5 -21
- package/dist/pi-intercom/session-targets.d.ts +24 -0
- package/dist/pi-intercom/tool-arguments.js +4 -0
- package/dist/pi-intercom/tool-registration.js +8 -86
- package/dist/pi-intercom/tool-results.js +5 -7
- package/dist/pi-intercom/tool-schemas.js +13 -67
- package/dist/pi-intercom/tools.js +55 -29
- package/dist/pi-intercom/types.d.ts +212 -0
- package/dist/pi-intercom/types.js +62 -4
- package/dist/pi-intercom/ui/session-format.js +3 -3
- package/dist/pi-intercom/validation.d.ts +12 -0
- package/dist/pi-intercom/validation.js +3 -0
- package/dist/shared/bounded-json.js +151 -0
- package/dist/shared/compact-cards.js +66 -0
- package/dist/shared/journal-frames.js +3 -6
- package/dist/shared/journal-projections.js +0 -31
- package/dist/shared/json-projection.js +267 -129
- package/dist/shared/native-journal.js +123 -56
- package/dist/shared/post-exit-stdio-guard.js +120 -7
- package/dist/shared/tui-action.js +29 -0
- package/dist/shared/types.js +0 -195
- package/dist/shared/unknown.d.ts +9 -0
- package/docs/code-quality.md +6 -3
- package/docs/development.md +93 -92
- package/docs/intercom-bridge.md +211 -415
- package/docs/intercom.md +362 -593
- package/docs/performance.md +185 -192
- package/docs/reference.md +282 -1458
- package/docs/retired-history-maintenance.md +252 -0
- package/package.json +33 -27
- package/scripts/archive-retired-history.mjs +464 -0
- package/scripts/build.mjs +49 -29
- package/scripts/intercom-bridge-credentials.mjs +1 -1
- package/scripts/intercom-remote.mjs +55 -272
- package/scripts/local-install-smoke.mjs +3 -1
- package/scripts/measure-size.mjs +64 -0
- package/scripts/native-package-smoke.mjs +409 -110
- package/scripts/package-smoke.mjs +184 -358
- package/scripts/prepare.mjs +2 -2
- package/scripts/real-pi-live.mjs +377 -0
- package/scripts/real-pi-processes.mjs +12 -39
- package/scripts/real-pi-smoke.mjs +39 -306
- package/scripts/run-tests.mjs +5 -2
- package/scripts/typescript.mjs +35 -0
- package/skills/pi-intercom/SKILL.md +54 -107
- package/skills/pi-subagents/SKILL.md +76 -72
- package/src/agent/contracts.ts +118 -0
- package/src/agent/cwd.ts +69 -0
- package/src/agent/host.ts +81 -0
- package/src/agent/index.ts +520 -0
- package/src/agent/journal-tail.ts +172 -0
- package/src/agent/launch.ts +136 -0
- package/src/agent/legacy.ts +221 -0
- package/src/agent/notifications.ts +256 -0
- package/src/agent/observation-state.ts +277 -0
- package/src/agent/observation-view.ts +267 -0
- package/src/agent/observation.ts +405 -0
- package/src/agent/observe-card.ts +304 -0
- package/src/agent/observe-chrome.ts +170 -0
- package/src/agent/observe-client.ts +318 -0
- package/src/agent/observe-layout.ts +79 -0
- package/src/agent/observe-reading.ts +97 -0
- package/src/agent/observe-screen.ts +481 -0
- package/src/agent/observe-transcript.ts +434 -0
- package/src/agent/observe.ts +473 -0
- package/src/agent/process.ts +385 -0
- package/src/agent/receipts.ts +178 -0
- package/src/agent/runner.ts +515 -0
- package/src/agent/saved.ts +220 -0
- package/src/agent/shell.ts +57 -0
- package/src/agent/storage.ts +139 -0
- package/src/agent/tool-schemas.ts +33 -0
- package/src/agent/typebox.ts +22 -0
- package/src/agent/usage.ts +133 -0
- package/src/agent/view.ts +296 -0
- package/src/agent/wake.ts +107 -0
- package/src/index.ts +10 -0
- package/src/intercom-client.ts +108 -0
- package/src/pi-intercom/bridge-config.ts +13 -24
- package/src/pi-intercom/bridge-http.ts +1 -2
- package/src/pi-intercom/bridge-mailbox.ts +8 -8
- package/src/pi-intercom/bridge-protocol.ts +7 -11
- package/src/pi-intercom/bridge-routes.ts +29 -277
- package/src/pi-intercom/bridge-session.ts +5 -116
- package/src/pi-intercom/bridge.ts +12 -35
- package/src/pi-intercom/broker/broker.ts +63 -74
- package/src/pi-intercom/broker/client-last.ts +78 -0
- package/src/pi-intercom/broker/client.ts +87 -23
- package/src/pi-intercom/broker/connection.ts +5 -17
- package/src/pi-intercom/broker/framing.ts +11 -8
- package/src/pi-intercom/broker/guard.ts +33 -0
- package/src/pi-intercom/broker/last.ts +275 -0
- package/src/pi-intercom/broker/paths.ts +65 -16
- package/src/pi-intercom/broker/pid.ts +6 -1
- package/src/pi-intercom/broker/server-connection.ts +63 -0
- package/src/pi-intercom/broker/spawn.ts +44 -16
- package/src/pi-intercom/broker/targets.ts +42 -0
- package/src/pi-intercom/config.ts +0 -27
- package/src/pi-intercom/connection.ts +60 -92
- package/src/pi-intercom/identity.ts +24 -49
- package/src/pi-intercom/inbound-delivery.ts +25 -154
- package/src/pi-intercom/inbound-journal.ts +105 -86
- package/src/pi-intercom/inbound-record.ts +23 -65
- package/src/pi-intercom/inbound.ts +24 -117
- package/src/pi-intercom/index.ts +13 -49
- package/src/pi-intercom/last-message.ts +64 -0
- package/src/pi-intercom/lifecycle.ts +126 -50
- package/src/pi-intercom/message-format.ts +1 -34
- package/src/pi-intercom/outbound.ts +23 -17
- package/src/pi-intercom/reply-tracker.ts +10 -25
- package/src/pi-intercom/reply-wait.ts +23 -129
- package/src/pi-intercom/runtime-types.ts +5 -59
- package/src/pi-intercom/session-events.ts +7 -35
- package/src/pi-intercom/tool-arguments.ts +6 -0
- package/src/pi-intercom/tool-registration.ts +12 -109
- package/src/pi-intercom/tool-results.ts +10 -9
- package/src/pi-intercom/tool-schemas.ts +13 -108
- package/src/pi-intercom/tools.ts +58 -44
- package/src/pi-intercom/transport.ts +1 -0
- package/src/pi-intercom/types.ts +156 -6
- package/src/pi-intercom/ui/session-format.ts +3 -3
- package/src/pi-intercom/validation.ts +4 -0
- package/src/shared/bounded-json.ts +162 -0
- package/src/shared/compact-cards.ts +118 -0
- package/src/shared/journal-frames.ts +3 -19
- package/src/shared/journal-projections.ts +0 -35
- package/src/shared/json-projection.ts +267 -147
- package/src/shared/native-journal.ts +157 -75
- package/src/shared/post-exit-stdio-guard.ts +172 -8
- package/src/shared/tui-action.ts +39 -0
- package/src/shared/types.ts +0 -257
- package/tsconfig.client.json +8 -0
- package/tsconfig.json +1 -0
- package/agents/context-builder.md +0 -115
- package/agents/debugger.md +0 -58
- package/agents/delegate.md +0 -14
- package/agents/fixer.md +0 -40
- package/agents/oracle.md +0 -82
- package/agents/planner.md +0 -83
- package/agents/researcher.md +0 -60
- package/agents/reviewer-claude.md +0 -78
- package/agents/reviewer-gpt.md +0 -78
- package/agents/reviewer-ponytail.md +0 -92
- package/agents/reviewer-security.md +0 -92
- package/agents/reviewer.md +0 -78
- package/agents/scout.md +0 -77
- package/agents/ui-designer.md +0 -58
- package/agents/watcher.md +0 -27
- package/agents/worker.md +0 -52
- package/agents/writer.md +0 -39
- package/dist/agents/agent-defaults.js +0 -9
- package/dist/agents/agent-definition.js +0 -196
- package/dist/agents/agent-management.js +0 -88
- package/dist/agents/agent-scope.js +0 -9
- package/dist/agents/agent-selection.js +0 -13
- package/dist/agents/agent-serializer.js +0 -88
- package/dist/agents/agents.js +0 -111
- package/dist/agents/builtin-overrides.js +0 -218
- package/dist/agents/chain-serializer.js +0 -3
- package/dist/agents/config-values.js +0 -52
- package/dist/agents/discovery-paths.js +0 -91
- package/dist/agents/frontmatter.js +0 -31
- package/dist/agents/identity.js +0 -46
- package/dist/agents/json-chain.js +0 -254
- package/dist/agents/management-config.js +0 -332
- package/dist/agents/management-format.js +0 -231
- package/dist/agents/management-persistence.js +0 -287
- package/dist/agents/management-targets.js +0 -136
- package/dist/agents/management-warnings.js +0 -81
- package/dist/agents/markdown-chain.js +0 -210
- package/dist/agents/package-agents.js +0 -154
- package/dist/agents/skill-files.js +0 -157
- package/dist/agents/skill-search-paths.js +0 -246
- package/dist/agents/skill-types.js +0 -1
- package/dist/agents/skills.js +0 -125
- package/dist/extension/acceptance-schema.js +0 -55
- package/dist/extension/build-info.js +0 -1
- package/dist/extension/chain-schema.js +0 -196
- package/dist/extension/child-runtime.js +0 -237
- package/dist/extension/compact-tools.js +0 -183
- package/dist/extension/config-schema.js +0 -29
- package/dist/extension/config.js +0 -38
- package/dist/extension/control-notice-schema.js +0 -37
- package/dist/extension/control-notices.js +0 -36
- package/dist/extension/delegation-bridges.js +0 -43
- package/dist/extension/doctor.js +0 -166
- package/dist/extension/everyday-schemas.js +0 -207
- package/dist/extension/fanout-child.js +0 -25
- package/dist/extension/index.js +0 -28
- package/dist/extension/message-renderers.js +0 -225
- package/dist/extension/nested-control-inbox.js +0 -154
- package/dist/extension/parent-runtime.js +0 -339
- package/dist/extension/primary-tool.js +0 -69
- package/dist/extension/result-snapshot.js +0 -4
- package/dist/extension/runtime-reload.js +0 -62
- package/dist/extension/runtime-storage.js +0 -43
- package/dist/extension/schema-overrides.js +0 -75
- package/dist/extension/schemas.js +0 -345
- package/dist/extension/tool-input.js +0 -35
- package/dist/extension/tool-result.js +0 -29
- package/dist/history/answer-texts.js +0 -57
- package/dist/history/canonical-result.js +0 -114
- package/dist/history/canonical-selection.js +0 -40
- package/dist/history/database-generation.js +0 -82
- package/dist/history/database.js +0 -96
- package/dist/history/entry-ingestion.js +0 -61
- package/dist/history/index.js +0 -344
- package/dist/history/ingest.js +0 -314
- package/dist/history/output-digests.js +0 -40
- package/dist/history/preview.js +0 -210
- package/dist/history/prune.js +0 -33
- package/dist/history/queries.js +0 -81
- package/dist/history/query-scope.js +0 -190
- package/dist/history/rows.js +0 -77
- package/dist/history/run-projection.js +0 -136
- package/dist/history/run-queries.js +0 -153
- package/dist/history/schema.js +0 -31
- package/dist/history/search-queries.js +0 -169
- package/dist/history/selected-record.js +0 -108
- package/dist/history/source-file.js +0 -45
- package/dist/history/source-watches.js +0 -141
- package/dist/history/store.js +0 -243
- package/dist/history/text-chunks.js +0 -168
- package/dist/history/text.js +0 -35
- package/dist/history/transcript-queries.js +0 -183
- package/dist/history/types.js +0 -8
- package/dist/history/values.js +0 -36
- package/dist/history/wire-inputs.js +0 -122
- package/dist/history/wire-models.js +0 -38
- package/dist/history/worker-runtime.js +0 -441
- package/dist/history/worker.js +0 -91
- package/dist/intercom/intercom-bridge.js +0 -140
- package/dist/intercom/live-intercom.js +0 -151
- package/dist/intercom/nested-result-tree.js +0 -163
- package/dist/intercom/result-delivery.js +0 -40
- package/dist/intercom/result-intercom.js +0 -216
- package/dist/pi-intercom/bridge-ask.js +0 -57
- package/dist/pi-intercom/bridge-broadcast.js +0 -60
- package/dist/pi-intercom/bridge-catalog.js +0 -372
- package/dist/pi-intercom/bridge-control.js +0 -104
- package/dist/pi-intercom/bridge-groups.js +0 -135
- package/dist/pi-intercom/bridge-launch-journal.js +0 -84
- package/dist/pi-intercom/bridge-launch-policy.js +0 -154
- package/dist/pi-intercom/bridge-launch.js +0 -327
- package/dist/pi-intercom/bridge-operations.js +0 -127
- package/dist/pi-intercom/bridge-rpc-process.js +0 -292
- package/dist/pi-intercom/interview.js +0 -236
- package/dist/pi-intercom/native-control-auth.js +0 -80
- package/dist/pi-intercom/native-control-protocol.js +0 -111
- package/dist/pi-intercom/native-control.js +0 -130
- package/dist/pi-intercom/peer-awareness.js +0 -66
- package/dist/pi-intercom/saved-transcript.js +0 -135
- package/dist/pi-intercom/subagent-events.js +0 -238
- package/dist/pi-intercom/subagent-live-events.js +0 -175
- package/dist/pi-intercom/supervisor.js +0 -282
- package/dist/pi-intercom/topic-actions.js +0 -177
- package/dist/pi-intercom/topics.js +0 -242
- package/dist/pi-intercom/transcript.js +0 -175
- package/dist/pi-intercom/ui/compose-paste.js +0 -93
- package/dist/pi-intercom/ui/compose.js +0 -247
- package/dist/pi-intercom/ui/inline-message.js +0 -80
- package/dist/pi-intercom/ui/message-renderers.js +0 -147
- package/dist/pi-intercom/ui/overlay.js +0 -181
- package/dist/pi-intercom/ui/session-list.js +0 -157
- package/dist/pi-intercom/ui/tool-renderers.js +0 -110
- package/dist/pi-intercom/ui/topic-view.js +0 -88
- package/dist/runs/background/async-chain-plan.js +0 -265
- package/dist/runs/background/async-control.js +0 -171
- package/dist/runs/background/async-execution.js +0 -179
- package/dist/runs/background/async-job-admission.js +0 -40
- package/dist/runs/background/async-job-projection.js +0 -169
- package/dist/runs/background/async-job-tracker.js +0 -353
- package/dist/runs/background/async-launch.js +0 -216
- package/dist/runs/background/async-plan.js +0 -116
- package/dist/runs/background/async-result-file.js +0 -82
- package/dist/runs/background/async-resume.js +0 -247
- package/dist/runs/background/async-run-discovery.js +0 -211
- package/dist/runs/background/async-run-location.js +0 -135
- package/dist/runs/background/async-run-record.js +0 -1
- package/dist/runs/background/async-run-repair.js +0 -223
- package/dist/runs/background/async-run-summary.js +0 -1
- package/dist/runs/background/async-single-plan.js +0 -105
- package/dist/runs/background/async-status-projection.js +0 -155
- package/dist/runs/background/async-status-render.js +0 -117
- package/dist/runs/background/async-status-validation.js +0 -181
- package/dist/runs/background/async-status.js +0 -3
- package/dist/runs/background/async-value.js +0 -21
- package/dist/runs/background/completion-dedupe.js +0 -42
- package/dist/runs/background/completion-delivery.js +0 -251
- package/dist/runs/background/completion-receipts.js +0 -237
- package/dist/runs/background/legacy-status-acceptance.js +0 -34
- package/dist/runs/background/notify.js +0 -111
- package/dist/runs/background/parallel-groups.js +0 -72
- package/dist/runs/background/result-payload.js +0 -178
- package/dist/runs/background/result-watcher.js +0 -435
- package/dist/runs/background/run-id-resolver.js +0 -84
- package/dist/runs/background/run-schemas.js +0 -189
- package/dist/runs/background/run-status-contracts.js +0 -14
- package/dist/runs/background/run-status-render.js +0 -270
- package/dist/runs/background/run-status.js +0 -274
- package/dist/runs/background/runner-attempt-output.js +0 -155
- package/dist/runs/background/runner-attempt.js +0 -263
- package/dist/runs/background/runner-child-executor.js +0 -166
- package/dist/runs/background/runner-child-observer.js +0 -197
- package/dist/runs/background/runner-completion-summary.js +0 -71
- package/dist/runs/background/runner-completion.js +0 -211
- package/dist/runs/background/runner-config.js +0 -1
- package/dist/runs/background/runner-contract.js +0 -1
- package/dist/runs/background/runner-dynamic.js +0 -121
- package/dist/runs/background/runner-finalization.js +0 -149
- package/dist/runs/background/runner-graph.js +0 -68
- package/dist/runs/background/runner-initial-status.js +0 -60
- package/dist/runs/background/runner-lifecycle.js +0 -142
- package/dist/runs/background/runner-monitor.js +0 -311
- package/dist/runs/background/runner-parallel.js +0 -203
- package/dist/runs/background/runner-prepare-step.js +0 -86
- package/dist/runs/background/runner-reporting.js +0 -153
- package/dist/runs/background/runner-status.js +0 -148
- package/dist/runs/background/runner-step-output.js +0 -90
- package/dist/runs/background/runner-step-record.js +0 -45
- package/dist/runs/background/runner-step.js +0 -112
- package/dist/runs/background/runner-streaming.js +0 -173
- package/dist/runs/background/runner-workflow.js +0 -213
- package/dist/runs/background/stale-run-reconciler.js +0 -198
- package/dist/runs/background/subagent-runner-launcher.js +0 -75
- package/dist/runs/background/subagent-runner.js +0 -81
- package/dist/runs/background/top-level-async.js +0 -6
- package/dist/runs/foreground/chain-clarify.js +0 -428
- package/dist/runs/foreground/clarification-draft.js +0 -87
- package/dist/runs/foreground/clarify-contracts.js +0 -1
- package/dist/runs/foreground/clarify-invocation.js +0 -163
- package/dist/runs/foreground/clarify-text-editor.js +0 -210
- package/dist/runs/foreground/clarify-view.js +0 -167
- package/dist/runs/foreground/execution-input.js +0 -296
- package/dist/runs/foreground/execution-routing.js +0 -33
- package/dist/runs/foreground/execution-timeout.js +0 -81
- package/dist/runs/foreground/foreground-control.js +0 -276
- package/dist/runs/foreground/foreground-memory.js +0 -99
- package/dist/runs/foreground/invocation-context.js +0 -55
- package/dist/runs/foreground/invocation-execution.js +0 -331
- package/dist/runs/foreground/invocation-expansion.js +0 -48
- package/dist/runs/foreground/management-actions.js +0 -295
- package/dist/runs/foreground/nested-control.js +0 -179
- package/dist/runs/foreground/question-continuation.js +0 -78
- package/dist/runs/foreground/question-control.js +0 -193
- package/dist/runs/foreground/resume-target.js +0 -221
- package/dist/runs/foreground/revival-launch-policy.js +0 -58
- package/dist/runs/foreground/run-async-path.js +0 -217
- package/dist/runs/foreground/run-interrupt.js +0 -164
- package/dist/runs/foreground/run-nudge.js +0 -278
- package/dist/runs/foreground/saved-revival.js +0 -251
- package/dist/runs/foreground/subagent-executor.js +0 -153
- package/dist/runs/foreground/subagent-params.js +0 -202
- package/dist/runs/foreground/wait-observation.js +0 -104
- package/dist/runs/foreground/wait-registration.js +0 -17
- package/dist/runs/foreground/wait-run.js +0 -301
- package/dist/runs/shared/acceptance-contract.js +0 -347
- package/dist/runs/shared/acceptance-defaults.js +0 -1
- package/dist/runs/shared/acceptance-evaluation.js +0 -276
- package/dist/runs/shared/acceptance-finalization.js +0 -356
- package/dist/runs/shared/acceptance-outcome.js +0 -53
- package/dist/runs/shared/acceptance-reports.js +0 -212
- package/dist/runs/shared/acceptance-submission.js +0 -167
- package/dist/runs/shared/acceptance-verification.js +0 -100
- package/dist/runs/shared/acceptance.js +0 -4
- package/dist/runs/shared/chain-outputs.js +0 -138
- package/dist/runs/shared/child-attempt-types.js +0 -1
- package/dist/runs/shared/child-attempt.js +0 -340
- package/dist/runs/shared/child-boundaries.js +0 -173
- package/dist/runs/shared/child-context-filter.js +0 -44
- package/dist/runs/shared/child-event-observer.js +0 -390
- package/dist/runs/shared/child-execution-cwd.js +0 -126
- package/dist/runs/shared/child-execution-outcome.js +0 -72
- package/dist/runs/shared/child-invocation.js +0 -54
- package/dist/runs/shared/child-message-validation.js +0 -215
- package/dist/runs/shared/child-native-accounting.js +0 -106
- package/dist/runs/shared/child-native-observation.js +0 -69
- package/dist/runs/shared/child-observation-spool.js +0 -169
- package/dist/runs/shared/child-observations.js +0 -195
- package/dist/runs/shared/child-presence.js +0 -3
- package/dist/runs/shared/child-route-env.js +0 -119
- package/dist/runs/shared/child-stream-observer.js +0 -221
- package/dist/runs/shared/child-stream-projection.js +0 -137
- package/dist/runs/shared/child-structured-tool.js +0 -27
- package/dist/runs/shared/claude-code.js +0 -162
- package/dist/runs/shared/claude-model.js +0 -42
- package/dist/runs/shared/claude-session.js +0 -83
- package/dist/runs/shared/claude-types.js +0 -1
- package/dist/runs/shared/completion-guard.js +0 -31
- package/dist/runs/shared/control-event-policy.js +0 -8
- package/dist/runs/shared/control-notification-owner.js +0 -13
- package/dist/runs/shared/dynamic-fanout.js +0 -289
- package/dist/runs/shared/dynamic-item.js +0 -102
- package/dist/runs/shared/history-index.js +0 -98
- package/dist/runs/shared/legacy-async-recovery.js +0 -114
- package/dist/runs/shared/legacy-output-recovery.js +0 -148
- package/dist/runs/shared/mcp-config-schema.js +0 -36
- package/dist/runs/shared/mcp-direct-tool-allowlist.js +0 -365
- package/dist/runs/shared/model-fallback.js +0 -247
- package/dist/runs/shared/mutating-tool-guard.js +0 -210
- package/dist/runs/shared/native-finalization-types.js +0 -1
- package/dist/runs/shared/native-finalization.js +0 -180
- package/dist/runs/shared/native-usage.js +0 -293
- package/dist/runs/shared/nested-control-records.js +0 -128
- package/dist/runs/shared/nested-events.js +0 -8
- package/dist/runs/shared/nested-path.js +0 -52
- package/dist/runs/shared/nested-projection.js +0 -155
- package/dist/runs/shared/nested-protocol.js +0 -18
- package/dist/runs/shared/nested-registry.js +0 -191
- package/dist/runs/shared/nested-render.js +0 -156
- package/dist/runs/shared/nested-route.js +0 -220
- package/dist/runs/shared/nested-validation.js +0 -216
- package/dist/runs/shared/owned-child-evidence.js +0 -125
- package/dist/runs/shared/owned-run-list.js +0 -146
- package/dist/runs/shared/owned-run-observation.js +0 -267
- package/dist/runs/shared/owned-run-progress.js +0 -109
- package/dist/runs/shared/owned-run-read-state.js +0 -1
- package/dist/runs/shared/owned-run-results.js +0 -202
- package/dist/runs/shared/owned-run-status.js +0 -180
- package/dist/runs/shared/owned-run-view.js +0 -51
- package/dist/runs/shared/owned-workflow-details.js +0 -17
- package/dist/runs/shared/owner-output.js +0 -43
- package/dist/runs/shared/parallel-utils.js +0 -49
- package/dist/runs/shared/parent-receipts.js +0 -126
- package/dist/runs/shared/parent-usage.js +0 -233
- package/dist/runs/shared/pi-args.js +0 -217
- package/dist/runs/shared/pi-launch-input.js +0 -1
- package/dist/runs/shared/pi-session-launch.js +0 -86
- package/dist/runs/shared/pi-spawn.js +0 -66
- package/dist/runs/shared/run-history-queries.js +0 -136
- package/dist/runs/shared/run-history.js +0 -176
- package/dist/runs/shared/run-id-ambiguity.js +0 -4
- package/dist/runs/shared/run-metadata-paths.js +0 -14
- package/dist/runs/shared/run-metadata.js +0 -158
- package/dist/runs/shared/run-persistence.js +0 -131
- package/dist/runs/shared/run-records.js +0 -9
- package/dist/runs/shared/run-restoration.js +0 -337
- package/dist/runs/shared/run-state-owner.js +0 -26
- package/dist/runs/shared/session-cwd-preload.js +0 -42
- package/dist/runs/shared/single-output.js +0 -297
- package/dist/runs/shared/stable-value.js +0 -15
- package/dist/runs/shared/streaming-text.js +0 -26
- package/dist/runs/shared/structured-output.js +0 -67
- package/dist/runs/shared/subagent-control.js +0 -246
- package/dist/runs/shared/subagent-prompt-runtime.js +0 -94
- package/dist/runs/shared/subagent-tool-loop-guard.js +0 -95
- package/dist/runs/shared/supervisor-question-state.js +0 -145
- package/dist/runs/shared/supervisor-questions.js +0 -284
- package/dist/runs/shared/workflow-graph.js +0 -306
- package/dist/runs/shared/workflow-policy.js +0 -157
- package/dist/runs/shared/worktree-contract.js +0 -1
- package/dist/runs/shared/worktree-hook.js +0 -138
- package/dist/runs/shared/worktree-location.js +0 -47
- package/dist/runs/shared/worktree-preservation.js +0 -8
- package/dist/runs/shared/worktree-process.js +0 -107
- package/dist/runs/shared/worktree.js +0 -386
- package/dist/shared/agent-context-policy.js +0 -116
- package/dist/shared/agent-dir.js +0 -14
- package/dist/shared/artifacts.js +0 -114
- package/dist/shared/atomic-json.js +0 -16
- package/dist/shared/chain-files.js +0 -72
- package/dist/shared/concurrency.js +0 -18
- package/dist/shared/content-preview.js +0 -115
- package/dist/shared/execution-cwd.js +0 -22
- package/dist/shared/file-coalescer.js +0 -22
- package/dist/shared/fork-context.js +0 -47
- package/dist/shared/formatters.js +0 -111
- package/dist/shared/journal-reader.js +0 -6
- package/dist/shared/lazy-tools.js +0 -43
- package/dist/shared/message-output.js +0 -116
- package/dist/shared/model-info.js +0 -85
- package/dist/shared/native-import.js +0 -20
- package/dist/shared/native-session-loader.js +0 -17
- package/dist/shared/native-session.js +0 -4
- package/dist/shared/native-tui.js +0 -23
- package/dist/shared/native-typebox.js +0 -32
- package/dist/shared/prompt-sections.js +0 -10
- package/dist/shared/session-entries.js +0 -87
- package/dist/shared/session-identity.js +0 -16
- package/dist/shared/settings.js +0 -121
- package/dist/shared/status-format.js +0 -171
- package/dist/shared/task-file-policy.js +0 -24
- package/dist/shared/temp-root.js +0 -143
- package/dist/shared/types/acceptance.js +0 -1
- package/dist/shared/types/async.js +0 -1
- package/dist/shared/types/config.js +0 -1
- package/dist/shared/types/details.js +0 -1
- package/dist/shared/types/history.js +0 -1
- package/dist/shared/types/inputs.js +0 -1
- package/dist/shared/types/intercom.js +0 -1
- package/dist/shared/types/launch.js +0 -1
- package/dist/shared/types/messages.js +0 -1
- package/dist/shared/types/nested.js +0 -1
- package/dist/shared/types/owned-runs.js +0 -1
- package/dist/shared/types/progress.js +0 -1
- package/dist/shared/types/questions.js +0 -1
- package/dist/shared/types/results.js +0 -1
- package/dist/shared/types/state.js +0 -1
- package/dist/shared/types/usage.js +0 -1
- package/dist/shared/types/workflow.js +0 -1
- package/dist/shared/ui-mode.js +0 -3
- package/dist/shared/utils.js +0 -128
- package/dist/slash/command-discovery.js +0 -83
- package/dist/slash/command-input.js +0 -190
- package/dist/slash/prompt-template-bridge.js +0 -122
- package/dist/slash/prompt-template-contract.js +0 -77
- package/dist/slash/prompt-template-results.js +0 -125
- package/dist/slash/request-protocol.js +0 -68
- package/dist/slash/result-delivery.js +0 -237
- package/dist/slash/saved-chain.js +0 -78
- package/dist/slash/slash-bridge.js +0 -150
- package/dist/slash/slash-commands.js +0 -136
- package/dist/slash/slash-live-state.js +0 -267
- package/dist/tui/action-hints.js +0 -103
- package/dist/tui/activity-lines.js +0 -32
- package/dist/tui/agent-browser.js +0 -290
- package/dist/tui/agent-controls.js +0 -289
- package/dist/tui/agent-conversation.js +0 -444
- package/dist/tui/agent-dock.js +0 -171
- package/dist/tui/agent-history.js +0 -50
- package/dist/tui/agent-model.js +0 -62
- package/dist/tui/agent-picker.js +0 -262
- package/dist/tui/agent-view.js +0 -350
- package/dist/tui/compact-results.js +0 -193
- package/dist/tui/conversation-details.js +0 -190
- package/dist/tui/conversation-frame.js +0 -135
- package/dist/tui/conversation-history.js +0 -210
- package/dist/tui/conversation-menu.js +0 -78
- package/dist/tui/conversation-notices.js +0 -79
- package/dist/tui/conversation-selection.js +0 -58
- package/dist/tui/conversation-viewport.js +0 -129
- package/dist/tui/direction-message.js +0 -27
- package/dist/tui/display.js +0 -282
- package/dist/tui/editor-viewport.js +0 -18
- package/dist/tui/expanded-content.js +0 -87
- package/dist/tui/expanded-multi.js +0 -170
- package/dist/tui/expanded-single.js +0 -65
- package/dist/tui/history-cards.js +0 -202
- package/dist/tui/history-display.js +0 -238
- package/dist/tui/history-json.js +0 -16
- package/dist/tui/history-metadata.js +0 -152
- package/dist/tui/history-record.js +0 -251
- package/dist/tui/history-text.js +0 -34
- package/dist/tui/indexed-history.js +0 -116
- package/dist/tui/nested-widget.js +0 -120
- package/dist/tui/picker-page.js +0 -59
- package/dist/tui/render.js +0 -72
- package/dist/tui/result-facts.js +0 -64
- package/dist/tui/task-observation.js +0 -59
- package/dist/tui/task-store.js +0 -366
- package/dist/tui/text-values.js +0 -16
- package/dist/tui/view-connections.js +0 -47
- package/dist/tui/view-model.js +0 -94
- package/dist/tui/view-persistence.js +0 -51
- package/dist/tui/view-ports.js +0 -1
- package/dist/tui/view-session.js +0 -37
- package/dist/tui/widget-details.js +0 -144
- package/dist/tui/widget-status.js +0 -245
- package/dist/tui/widget.js +0 -145
- package/dist/tui/workflow-labels.js +0 -223
- package/dist/tui/workflow-outcomes.js +0 -124
- package/generated/RunValidators.d.ts +0 -28
- package/generated/RunValidators.js +0 -2
- package/prompts/gather-context-and-clarify.md +0 -14
- package/prompts/parallel-cleanup.md +0 -65
- package/prompts/parallel-context-build.md +0 -59
- package/prompts/parallel-handoff-plan.md +0 -68
- package/prompts/parallel-research.md +0 -55
- package/prompts/parallel-review.md +0 -61
- package/prompts/review-loop.md +0 -44
- package/scripts/generate-run-schemas.mjs +0 -210
- package/skills/pi-intercom/evals/evals.json +0 -29
- package/skills/pi-intercom/evals/trigger-evals.json +0 -47
- package/skills/pi-intercom/references/peer-sessions.md +0 -74
- package/skills/pi-subagents/evals/evals.json +0 -29
- package/skills/pi-subagents/evals/trigger-evals.json +0 -42
- package/skills/pi-subagents/references/full-orchestration-guide.md +0 -1005
- package/src/agents/agent-defaults.ts +0 -13
- package/src/agents/agent-definition.ts +0 -253
- package/src/agents/agent-management.ts +0 -120
- package/src/agents/agent-scope.ts +0 -11
- package/src/agents/agent-selection.ts +0 -22
- package/src/agents/agent-serializer.ts +0 -90
- package/src/agents/agents.ts +0 -214
- package/src/agents/builtin-overrides.ts +0 -297
- package/src/agents/chain-serializer.ts +0 -3
- package/src/agents/config-values.ts +0 -57
- package/src/agents/discovery-paths.ts +0 -134
- package/src/agents/frontmatter.ts +0 -39
- package/src/agents/identity.ts +0 -61
- package/src/agents/json-chain.ts +0 -305
- package/src/agents/management-config.ts +0 -342
- package/src/agents/management-format.ts +0 -243
- package/src/agents/management-persistence.ts +0 -408
- package/src/agents/management-targets.ts +0 -260
- package/src/agents/management-warnings.ts +0 -115
- package/src/agents/markdown-chain.ts +0 -237
- package/src/agents/package-agents.ts +0 -231
- package/src/agents/skill-files.ts +0 -182
- package/src/agents/skill-search-paths.ts +0 -289
- package/src/agents/skill-types.ts +0 -31
- package/src/agents/skills.ts +0 -179
- package/src/extension/acceptance-schema.ts +0 -88
- package/src/extension/build-info.ts +0 -2
- package/src/extension/chain-schema.ts +0 -276
- package/src/extension/child-runtime.ts +0 -302
- package/src/extension/compact-tools.ts +0 -271
- package/src/extension/config-schema.ts +0 -59
- package/src/extension/config.ts +0 -45
- package/src/extension/control-notice-schema.ts +0 -55
- package/src/extension/control-notices.ts +0 -71
- package/src/extension/delegation-bridges.ts +0 -59
- package/src/extension/doctor.ts +0 -207
- package/src/extension/everyday-schemas.ts +0 -252
- package/src/extension/fanout-child.ts +0 -33
- package/src/extension/index.ts +0 -31
- package/src/extension/message-renderers.ts +0 -334
- package/src/extension/nested-control-inbox.ts +0 -196
- package/src/extension/parent-runtime.ts +0 -405
- package/src/extension/primary-tool.ts +0 -130
- package/src/extension/result-snapshot.ts +0 -9
- package/src/extension/runtime-reload.ts +0 -72
- package/src/extension/runtime-storage.ts +0 -49
- package/src/extension/schema-overrides.ts +0 -114
- package/src/extension/schemas.ts +0 -477
- package/src/extension/tool-input.ts +0 -46
- package/src/extension/tool-result.ts +0 -47
- package/src/history/answer-texts.ts +0 -74
- package/src/history/canonical-result.ts +0 -138
- package/src/history/canonical-selection.ts +0 -54
- package/src/history/database-generation.ts +0 -86
- package/src/history/database.ts +0 -97
- package/src/history/entry-ingestion.ts +0 -129
- package/src/history/index.ts +0 -434
- package/src/history/ingest.ts +0 -387
- package/src/history/output-digests.ts +0 -41
- package/src/history/preview.ts +0 -235
- package/src/history/prune.ts +0 -48
- package/src/history/queries.ts +0 -125
- package/src/history/query-scope.ts +0 -278
- package/src/history/rows.ts +0 -118
- package/src/history/run-projection.ts +0 -162
- package/src/history/run-queries.ts +0 -199
- package/src/history/schema.ts +0 -34
- package/src/history/search-queries.ts +0 -223
- package/src/history/selected-record.ts +0 -140
- package/src/history/source-file.ts +0 -51
- package/src/history/source-watches.ts +0 -156
- package/src/history/store.ts +0 -332
- package/src/history/text-chunks.ts +0 -186
- package/src/history/text.ts +0 -43
- package/src/history/transcript-queries.ts +0 -257
- package/src/history/types.ts +0 -29
- package/src/history/values.ts +0 -36
- package/src/history/wire-inputs.ts +0 -141
- package/src/history/wire-models.ts +0 -51
- package/src/history/worker-runtime.ts +0 -502
- package/src/history/worker.ts +0 -99
- package/src/intercom/intercom-bridge.ts +0 -190
- package/src/intercom/live-intercom.ts +0 -209
- package/src/intercom/nested-result-tree.ts +0 -213
- package/src/intercom/result-delivery.ts +0 -56
- package/src/intercom/result-intercom.ts +0 -308
- package/src/pi-intercom/bridge-ask.ts +0 -64
- package/src/pi-intercom/bridge-broadcast.ts +0 -70
- package/src/pi-intercom/bridge-catalog.ts +0 -489
- package/src/pi-intercom/bridge-control.ts +0 -179
- package/src/pi-intercom/bridge-groups.ts +0 -169
- package/src/pi-intercom/bridge-launch-journal.ts +0 -122
- package/src/pi-intercom/bridge-launch-policy.ts +0 -190
- package/src/pi-intercom/bridge-launch.ts +0 -506
- package/src/pi-intercom/bridge-operations.ts +0 -169
- package/src/pi-intercom/bridge-rpc-process.ts +0 -330
- package/src/pi-intercom/interview.ts +0 -295
- package/src/pi-intercom/native-control-auth.ts +0 -89
- package/src/pi-intercom/native-control-protocol.ts +0 -180
- package/src/pi-intercom/native-control.ts +0 -160
- package/src/pi-intercom/peer-awareness.ts +0 -84
- package/src/pi-intercom/saved-transcript.ts +0 -175
- package/src/pi-intercom/subagent-events.ts +0 -299
- package/src/pi-intercom/subagent-live-events.ts +0 -236
- package/src/pi-intercom/supervisor.ts +0 -362
- package/src/pi-intercom/topic-actions.ts +0 -243
- package/src/pi-intercom/topics.ts +0 -271
- package/src/pi-intercom/transcript.ts +0 -226
- package/src/pi-intercom/ui/compose-paste.ts +0 -109
- package/src/pi-intercom/ui/compose.ts +0 -305
- package/src/pi-intercom/ui/inline-message.ts +0 -110
- package/src/pi-intercom/ui/message-renderers.ts +0 -182
- package/src/pi-intercom/ui/overlay.ts +0 -238
- package/src/pi-intercom/ui/session-list.ts +0 -222
- package/src/pi-intercom/ui/tool-renderers.ts +0 -148
- package/src/pi-intercom/ui/topic-view.ts +0 -107
- package/src/runs/background/async-chain-plan.ts +0 -451
- package/src/runs/background/async-control.ts +0 -219
- package/src/runs/background/async-execution.ts +0 -227
- package/src/runs/background/async-job-admission.ts +0 -54
- package/src/runs/background/async-job-projection.ts +0 -225
- package/src/runs/background/async-job-tracker.ts +0 -441
- package/src/runs/background/async-launch.ts +0 -319
- package/src/runs/background/async-plan.ts +0 -285
- package/src/runs/background/async-result-file.ts +0 -104
- package/src/runs/background/async-resume.ts +0 -386
- package/src/runs/background/async-run-discovery.ts +0 -264
- package/src/runs/background/async-run-location.ts +0 -194
- package/src/runs/background/async-run-record.ts +0 -14
- package/src/runs/background/async-run-repair.ts +0 -307
- package/src/runs/background/async-run-summary.ts +0 -71
- package/src/runs/background/async-single-plan.ts +0 -168
- package/src/runs/background/async-status-projection.ts +0 -188
- package/src/runs/background/async-status-render.ts +0 -164
- package/src/runs/background/async-status-validation.ts +0 -238
- package/src/runs/background/async-status.ts +0 -9
- package/src/runs/background/async-value.ts +0 -29
- package/src/runs/background/completion-dedupe.ts +0 -65
- package/src/runs/background/completion-delivery.ts +0 -321
- package/src/runs/background/completion-receipts.ts +0 -309
- package/src/runs/background/legacy-status-acceptance.ts +0 -38
- package/src/runs/background/notify.ts +0 -174
- package/src/runs/background/parallel-groups.ts +0 -102
- package/src/runs/background/result-payload.ts +0 -268
- package/src/runs/background/result-watcher.ts +0 -520
- package/src/runs/background/run-id-resolver.ts +0 -138
- package/src/runs/background/run-schemas.ts +0 -240
- package/src/runs/background/run-status-contracts.ts +0 -46
- package/src/runs/background/run-status-render.ts +0 -364
- package/src/runs/background/run-status.ts +0 -366
- package/src/runs/background/runner-attempt-output.ts +0 -281
- package/src/runs/background/runner-attempt.ts +0 -354
- package/src/runs/background/runner-child-executor.ts +0 -232
- package/src/runs/background/runner-child-observer.ts +0 -278
- package/src/runs/background/runner-completion-summary.ts +0 -106
- package/src/runs/background/runner-completion.ts +0 -274
- package/src/runs/background/runner-config.ts +0 -52
- package/src/runs/background/runner-contract.ts +0 -51
- package/src/runs/background/runner-dynamic.ts +0 -185
- package/src/runs/background/runner-finalization.ts +0 -203
- package/src/runs/background/runner-graph.ts +0 -91
- package/src/runs/background/runner-initial-status.ts +0 -72
- package/src/runs/background/runner-lifecycle.ts +0 -159
- package/src/runs/background/runner-monitor.ts +0 -401
- package/src/runs/background/runner-parallel.ts +0 -279
- package/src/runs/background/runner-prepare-step.ts +0 -128
- package/src/runs/background/runner-reporting.ts +0 -192
- package/src/runs/background/runner-status.ts +0 -220
- package/src/runs/background/runner-step-output.ts +0 -156
- package/src/runs/background/runner-step-record.ts +0 -76
- package/src/runs/background/runner-step.ts +0 -150
- package/src/runs/background/runner-streaming.ts +0 -220
- package/src/runs/background/runner-workflow.ts +0 -284
- package/src/runs/background/stale-run-reconciler.ts +0 -312
- package/src/runs/background/subagent-runner-launcher.ts +0 -88
- package/src/runs/background/subagent-runner.ts +0 -85
- package/src/runs/background/top-level-async.ts +0 -15
- package/src/runs/foreground/chain-clarify.ts +0 -505
- package/src/runs/foreground/clarification-draft.ts +0 -92
- package/src/runs/foreground/clarify-contracts.ts +0 -33
- package/src/runs/foreground/clarify-invocation.ts +0 -204
- package/src/runs/foreground/clarify-text-editor.ts +0 -229
- package/src/runs/foreground/clarify-view.ts +0 -222
- package/src/runs/foreground/execution-input.ts +0 -401
- package/src/runs/foreground/execution-routing.ts +0 -41
- package/src/runs/foreground/execution-timeout.ts +0 -92
- package/src/runs/foreground/foreground-control.ts +0 -342
- package/src/runs/foreground/foreground-memory.ts +0 -132
- package/src/runs/foreground/invocation-context.ts +0 -88
- package/src/runs/foreground/invocation-execution.ts +0 -465
- package/src/runs/foreground/invocation-expansion.ts +0 -58
- package/src/runs/foreground/management-actions.ts +0 -360
- package/src/runs/foreground/nested-control.ts +0 -248
- package/src/runs/foreground/question-continuation.ts +0 -112
- package/src/runs/foreground/question-control.ts +0 -309
- package/src/runs/foreground/resume-target.ts +0 -330
- package/src/runs/foreground/revival-launch-policy.ts +0 -112
- package/src/runs/foreground/run-async-path.ts +0 -327
- package/src/runs/foreground/run-interrupt.ts +0 -202
- package/src/runs/foreground/run-nudge.ts +0 -355
- package/src/runs/foreground/saved-revival.ts +0 -356
- package/src/runs/foreground/subagent-executor.ts +0 -203
- package/src/runs/foreground/subagent-params.ts +0 -392
- package/src/runs/foreground/wait-observation.ts +0 -160
- package/src/runs/foreground/wait-registration.ts +0 -18
- package/src/runs/foreground/wait-run.ts +0 -366
- package/src/runs/shared/acceptance-contract.ts +0 -458
- package/src/runs/shared/acceptance-defaults.ts +0 -1
- package/src/runs/shared/acceptance-evaluation.ts +0 -349
- package/src/runs/shared/acceptance-finalization.ts +0 -495
- package/src/runs/shared/acceptance-outcome.ts +0 -69
- package/src/runs/shared/acceptance-reports.ts +0 -246
- package/src/runs/shared/acceptance-submission.ts +0 -251
- package/src/runs/shared/acceptance-verification.ts +0 -118
- package/src/runs/shared/acceptance.ts +0 -31
- package/src/runs/shared/chain-outputs.ts +0 -206
- package/src/runs/shared/child-attempt-types.ts +0 -118
- package/src/runs/shared/child-attempt.ts +0 -387
- package/src/runs/shared/child-boundaries.ts +0 -217
- package/src/runs/shared/child-context-filter.ts +0 -53
- package/src/runs/shared/child-event-observer.ts +0 -496
- package/src/runs/shared/child-execution-cwd.ts +0 -162
- package/src/runs/shared/child-execution-outcome.ts +0 -103
- package/src/runs/shared/child-invocation.ts +0 -74
- package/src/runs/shared/child-message-validation.ts +0 -233
- package/src/runs/shared/child-native-accounting.ts +0 -154
- package/src/runs/shared/child-native-observation.ts +0 -79
- package/src/runs/shared/child-observation-spool.ts +0 -193
- package/src/runs/shared/child-observations.ts +0 -229
- package/src/runs/shared/child-presence.ts +0 -6
- package/src/runs/shared/child-route-env.ts +0 -142
- package/src/runs/shared/child-stream-observer.ts +0 -302
- package/src/runs/shared/child-stream-projection.ts +0 -160
- package/src/runs/shared/child-structured-tool.ts +0 -38
- package/src/runs/shared/claude-code.ts +0 -216
- package/src/runs/shared/claude-model.ts +0 -67
- package/src/runs/shared/claude-session.ts +0 -124
- package/src/runs/shared/claude-types.ts +0 -31
- package/src/runs/shared/completion-guard.ts +0 -44
- package/src/runs/shared/control-event-policy.ts +0 -15
- package/src/runs/shared/control-notification-owner.ts +0 -20
- package/src/runs/shared/dynamic-fanout.ts +0 -459
- package/src/runs/shared/dynamic-item.ts +0 -114
- package/src/runs/shared/history-index.ts +0 -130
- package/src/runs/shared/legacy-async-recovery.ts +0 -153
- package/src/runs/shared/legacy-output-recovery.ts +0 -214
- package/src/runs/shared/mcp-config-schema.ts +0 -46
- package/src/runs/shared/mcp-direct-tool-allowlist.ts +0 -465
- package/src/runs/shared/model-fallback.ts +0 -344
- package/src/runs/shared/mutating-tool-guard.ts +0 -295
- package/src/runs/shared/native-finalization-types.ts +0 -29
- package/src/runs/shared/native-finalization.ts +0 -252
- package/src/runs/shared/native-usage.ts +0 -396
- package/src/runs/shared/nested-control-records.ts +0 -178
- package/src/runs/shared/nested-events.ts +0 -45
- package/src/runs/shared/nested-path.ts +0 -65
- package/src/runs/shared/nested-projection.ts +0 -230
- package/src/runs/shared/nested-protocol.ts +0 -67
- package/src/runs/shared/nested-registry.ts +0 -273
- package/src/runs/shared/nested-render.ts +0 -217
- package/src/runs/shared/nested-route.ts +0 -292
- package/src/runs/shared/nested-validation.ts +0 -291
- package/src/runs/shared/owned-child-evidence.ts +0 -184
- package/src/runs/shared/owned-run-list.ts +0 -187
- package/src/runs/shared/owned-run-observation.ts +0 -368
- package/src/runs/shared/owned-run-progress.ts +0 -172
- package/src/runs/shared/owned-run-read-state.ts +0 -7
- package/src/runs/shared/owned-run-results.ts +0 -289
- package/src/runs/shared/owned-run-status.ts +0 -239
- package/src/runs/shared/owned-run-view.ts +0 -65
- package/src/runs/shared/owned-workflow-details.ts +0 -24
- package/src/runs/shared/owner-output.ts +0 -73
- package/src/runs/shared/parallel-utils.ts +0 -93
- package/src/runs/shared/parent-receipts.ts +0 -186
- package/src/runs/shared/parent-usage.ts +0 -344
- package/src/runs/shared/pi-args.ts +0 -280
- package/src/runs/shared/pi-launch-input.ts +0 -48
- package/src/runs/shared/pi-session-launch.ts +0 -94
- package/src/runs/shared/pi-spawn.ts +0 -76
- package/src/runs/shared/run-history-queries.ts +0 -195
- package/src/runs/shared/run-history.ts +0 -221
- package/src/runs/shared/run-id-ambiguity.ts +0 -8
- package/src/runs/shared/run-metadata-paths.ts +0 -17
- package/src/runs/shared/run-metadata.ts +0 -240
- package/src/runs/shared/run-persistence.ts +0 -181
- package/src/runs/shared/run-records.ts +0 -19
- package/src/runs/shared/run-restoration.ts +0 -455
- package/src/runs/shared/run-state-owner.ts +0 -31
- package/src/runs/shared/session-cwd-preload.ts +0 -47
- package/src/runs/shared/single-output.ts +0 -416
- package/src/runs/shared/stable-value.ts +0 -15
- package/src/runs/shared/streaming-text.ts +0 -45
- package/src/runs/shared/structured-output.ts +0 -98
- package/src/runs/shared/subagent-control.ts +0 -352
- package/src/runs/shared/subagent-prompt-runtime.ts +0 -119
- package/src/runs/shared/subagent-tool-loop-guard.ts +0 -139
- package/src/runs/shared/supervisor-question-state.ts +0 -221
- package/src/runs/shared/supervisor-questions.ts +0 -410
- package/src/runs/shared/workflow-graph.ts +0 -422
- package/src/runs/shared/workflow-policy.ts +0 -260
- package/src/runs/shared/worktree-contract.ts +0 -29
- package/src/runs/shared/worktree-hook.ts +0 -181
- package/src/runs/shared/worktree-location.ts +0 -61
- package/src/runs/shared/worktree-preservation.ts +0 -10
- package/src/runs/shared/worktree-process.ts +0 -132
- package/src/runs/shared/worktree.ts +0 -507
- package/src/shared/agent-context-policy.ts +0 -215
- package/src/shared/agent-dir.ts +0 -15
- package/src/shared/artifacts.ts +0 -126
- package/src/shared/atomic-json.ts +0 -19
- package/src/shared/chain-files.ts +0 -72
- package/src/shared/concurrency.ts +0 -27
- package/src/shared/content-preview.ts +0 -117
- package/src/shared/execution-cwd.ts +0 -39
- package/src/shared/file-coalescer.ts +0 -31
- package/src/shared/fork-context.ts +0 -72
- package/src/shared/formatters.ts +0 -125
- package/src/shared/journal-reader.ts +0 -18
- package/src/shared/lazy-tools.ts +0 -85
- package/src/shared/message-output.ts +0 -146
- package/src/shared/model-info.ts +0 -117
- package/src/shared/native-import.ts +0 -25
- package/src/shared/native-session-loader.ts +0 -13
- package/src/shared/native-session.ts +0 -6
- package/src/shared/native-tui.ts +0 -20
- package/src/shared/native-typebox.ts +0 -29
- package/src/shared/prompt-sections.ts +0 -16
- package/src/shared/session-entries.ts +0 -108
- package/src/shared/session-identity.ts +0 -25
- package/src/shared/settings.ts +0 -196
- package/src/shared/status-format.ts +0 -232
- package/src/shared/stream-json.d.ts +0 -10
- package/src/shared/task-file-policy.ts +0 -35
- package/src/shared/temp-root.ts +0 -158
- package/src/shared/types/acceptance.ts +0 -149
- package/src/shared/types/async.ts +0 -247
- package/src/shared/types/config.ts +0 -139
- package/src/shared/types/details.ts +0 -104
- package/src/shared/types/history.ts +0 -217
- package/src/shared/types/inputs.ts +0 -4
- package/src/shared/types/intercom.ts +0 -57
- package/src/shared/types/launch.ts +0 -39
- package/src/shared/types/messages.ts +0 -104
- package/src/shared/types/nested.ts +0 -153
- package/src/shared/types/owned-runs.ts +0 -148
- package/src/shared/types/progress.ts +0 -106
- package/src/shared/types/questions.ts +0 -103
- package/src/shared/types/results.ts +0 -119
- package/src/shared/types/state.ts +0 -56
- package/src/shared/types/usage.ts +0 -36
- package/src/shared/types/workflow.ts +0 -187
- package/src/shared/ui-mode.ts +0 -5
- package/src/shared/utils.ts +0 -148
- package/src/slash/command-discovery.ts +0 -110
- package/src/slash/command-input.ts +0 -232
- package/src/slash/prompt-template-bridge.ts +0 -161
- package/src/slash/prompt-template-contract.ts +0 -152
- package/src/slash/prompt-template-results.ts +0 -189
- package/src/slash/request-protocol.ts +0 -87
- package/src/slash/result-delivery.ts +0 -312
- package/src/slash/saved-chain.ts +0 -115
- package/src/slash/slash-bridge.ts +0 -224
- package/src/slash/slash-commands.ts +0 -195
- package/src/slash/slash-live-state.ts +0 -350
- package/src/tui/action-hints.ts +0 -155
- package/src/tui/activity-lines.ts +0 -40
- package/src/tui/agent-browser.ts +0 -354
- package/src/tui/agent-controls.ts +0 -355
- package/src/tui/agent-conversation.ts +0 -514
- package/src/tui/agent-dock.ts +0 -250
- package/src/tui/agent-history.ts +0 -68
- package/src/tui/agent-model.ts +0 -78
- package/src/tui/agent-picker.ts +0 -325
- package/src/tui/agent-view.ts +0 -403
- package/src/tui/compact-results.ts +0 -342
- package/src/tui/conversation-details.ts +0 -206
- package/src/tui/conversation-frame.ts +0 -184
- package/src/tui/conversation-history.ts +0 -260
- package/src/tui/conversation-menu.ts +0 -119
- package/src/tui/conversation-notices.ts +0 -116
- package/src/tui/conversation-selection.ts +0 -66
- package/src/tui/conversation-viewport.ts +0 -169
- package/src/tui/direction-message.ts +0 -35
- package/src/tui/display.ts +0 -409
- package/src/tui/editor-viewport.ts +0 -19
- package/src/tui/expanded-content.ts +0 -134
- package/src/tui/expanded-multi.ts +0 -264
- package/src/tui/expanded-single.ts +0 -92
- package/src/tui/history-cards.ts +0 -298
- package/src/tui/history-display.ts +0 -334
- package/src/tui/history-json.ts +0 -17
- package/src/tui/history-metadata.ts +0 -177
- package/src/tui/history-record.ts +0 -321
- package/src/tui/history-text.ts +0 -34
- package/src/tui/indexed-history.ts +0 -149
- package/src/tui/nested-widget.ts +0 -192
- package/src/tui/picker-page.ts +0 -80
- package/src/tui/render.ts +0 -104
- package/src/tui/result-facts.ts +0 -99
- package/src/tui/task-observation.ts +0 -96
- package/src/tui/task-store.ts +0 -432
- package/src/tui/text-values.ts +0 -20
- package/src/tui/view-connections.ts +0 -64
- package/src/tui/view-model.ts +0 -181
- package/src/tui/view-persistence.ts +0 -57
- package/src/tui/view-ports.ts +0 -55
- package/src/tui/view-session.ts +0 -42
- package/src/tui/widget-details.ts +0 -220
- package/src/tui/widget-status.ts +0 -331
- package/src/tui/widget.ts +0 -208
- package/src/tui/workflow-labels.ts +0 -340
- package/src/tui/workflow-outcomes.ts +0 -150
|
@@ -1,24 +1,71 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveConnectedTarget } from "./connection.js";
|
|
2
|
+
import { validateIntercomArguments, toolError } from "./tool-arguments.js";
|
|
2
3
|
import { errorMessage } from "./validation.js";
|
|
4
|
+
function lastPage(result) {
|
|
5
|
+
const identity = `${result.session.name ?? result.session.id} (${result.session.id})`;
|
|
6
|
+
const page = result.entryId === null
|
|
7
|
+
? "No completed assistant response."
|
|
8
|
+
: `Entry: ${result.entryId}\nCharacters (UTF-16): ${result.offset}–${result.offset + result.text.length} of ${result.totalLength}`;
|
|
9
|
+
const next = result.nextOffset === undefined
|
|
10
|
+
? ""
|
|
11
|
+
: `\nNext page: intercom(${JSON.stringify({ action: "last", to: result.session.id, entryId: result.entryId, offset: result.nextOffset })})`;
|
|
12
|
+
return {
|
|
13
|
+
content: [
|
|
14
|
+
{ type: "text", text: result.text },
|
|
15
|
+
{
|
|
16
|
+
type: "text",
|
|
17
|
+
text: `Session: ${identity}\nStatus: ${result.session.status ?? "unknown"}\n${page}${next}`,
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
details: { ...result },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
3
23
|
export class IntercomTools {
|
|
4
24
|
owners;
|
|
5
25
|
constructor(owners) {
|
|
6
26
|
this.owners = owners;
|
|
7
27
|
}
|
|
8
|
-
async
|
|
9
|
-
const
|
|
28
|
+
async execute(params, signal, ctx) {
|
|
29
|
+
const invalid = validateIntercomArguments(params);
|
|
30
|
+
if (invalid) {
|
|
31
|
+
return invalid;
|
|
32
|
+
}
|
|
33
|
+
let active;
|
|
34
|
+
try {
|
|
35
|
+
active = await this.owners.connection.ensure();
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
return toolError(`Intercom not connected: ${errorMessage(error)}`);
|
|
39
|
+
}
|
|
40
|
+
this.owners.connection.syncIdentity(ctx.sessionManager.getSessionId());
|
|
41
|
+
const scope = params.scope ?? "all";
|
|
10
42
|
switch (params.action) {
|
|
11
|
-
case "subscribe":
|
|
12
|
-
case "unsubscribe":
|
|
13
|
-
case "publish":
|
|
14
|
-
case "topics":
|
|
15
|
-
return await this.owners.topicActions.execute(active, params, ctx);
|
|
16
43
|
case "list":
|
|
17
44
|
return await this.owners.inspection.list(active, scope);
|
|
18
45
|
case "status":
|
|
19
46
|
return await this.owners.inspection.status(active, scope, ctx);
|
|
20
47
|
case "pending":
|
|
21
48
|
return this.owners.inspection.pending();
|
|
49
|
+
case "last": {
|
|
50
|
+
if (params.to === undefined || params.to === "") {
|
|
51
|
+
return toolError("Missing 'to' parameter");
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const target = (await resolveConnectedTarget(active, params.to)) ?? params.to;
|
|
55
|
+
const result = await active.last(target, {
|
|
56
|
+
entryId: params.entryId,
|
|
57
|
+
offset: params.offset,
|
|
58
|
+
limit: params.limit,
|
|
59
|
+
});
|
|
60
|
+
if ("error" in result) {
|
|
61
|
+
return toolError(result.error);
|
|
62
|
+
}
|
|
63
|
+
return lastPage(result);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
return toolError(`Failed to read last response: ${errorMessage(error)}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
22
69
|
case "send":
|
|
23
70
|
return await this.owners.outbound.send(active, params, ctx);
|
|
24
71
|
case "ask":
|
|
@@ -27,25 +74,4 @@ export class IntercomTools {
|
|
|
27
74
|
return await this.owners.outbound.reply(active, params);
|
|
28
75
|
}
|
|
29
76
|
}
|
|
30
|
-
async execute(params, signal, ctx) {
|
|
31
|
-
let active;
|
|
32
|
-
try {
|
|
33
|
-
active = await this.owners.connection.ensure("tool");
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
if (params.action === "topics") {
|
|
37
|
-
this.owners.topics.disconnected();
|
|
38
|
-
return toolText(`Broker unavailable; last saved records follow.\n${this.owners.topics.inspect(params.topic)}`, { connection: "disconnected" });
|
|
39
|
-
}
|
|
40
|
-
return toolError(`Intercom not connected: ${errorMessage(error)}`);
|
|
41
|
-
}
|
|
42
|
-
this.owners.connection.syncIdentity(ctx.sessionManager.getSessionId());
|
|
43
|
-
if (!["subscribe", "unsubscribe", "publish", "topics"].includes(params.action)) {
|
|
44
|
-
const invalid = validateIntercomArguments(params);
|
|
45
|
-
if (invalid) {
|
|
46
|
-
return invalid;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return await this.dispatch(active, params, signal, ctx);
|
|
50
|
-
}
|
|
51
77
|
}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
export interface SessionInfo {
|
|
2
|
+
readonly id: string;
|
|
3
|
+
readonly name?: string;
|
|
4
|
+
readonly cwd: string;
|
|
5
|
+
readonly model: string;
|
|
6
|
+
/** Opaque same-repository/worktree identity used for ambient peer awareness. */
|
|
7
|
+
readonly projectId?: string;
|
|
8
|
+
readonly rootSessionId?: string;
|
|
9
|
+
readonly parentSessionId?: string;
|
|
10
|
+
readonly incarnation?: string;
|
|
11
|
+
readonly guardedDelivery?: 1;
|
|
12
|
+
readonly applicationGuard?: string;
|
|
13
|
+
readonly status?: string;
|
|
14
|
+
readonly lastSeen?: number;
|
|
15
|
+
readonly lastIntercomActivity?: number;
|
|
16
|
+
readonly pendingAsks?: number;
|
|
17
|
+
readonly acceptsAsks?: boolean;
|
|
18
|
+
readonly subscriptions?: readonly TopicSubscription[];
|
|
19
|
+
readonly topics?: readonly TopicUpdate[];
|
|
20
|
+
}
|
|
21
|
+
export interface TopicSubscription {
|
|
22
|
+
readonly topic: string;
|
|
23
|
+
readonly awaitRelease?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface TopicUpdate {
|
|
26
|
+
readonly topic: string;
|
|
27
|
+
readonly text: string;
|
|
28
|
+
readonly event: "update" | "blocker" | "decision" | "release";
|
|
29
|
+
readonly resource?: string;
|
|
30
|
+
readonly ownership?: "held" | "released";
|
|
31
|
+
readonly revision: number;
|
|
32
|
+
readonly updatedAt: number;
|
|
33
|
+
}
|
|
34
|
+
export declare function isTopicSubscription(value: unknown): value is TopicSubscription;
|
|
35
|
+
export declare function isTopicUpdate(value: unknown): value is TopicUpdate;
|
|
36
|
+
export type MessageDelivery = "queue" | "steer" | "passive";
|
|
37
|
+
export type QueueMode = "stack" | "replace";
|
|
38
|
+
export interface ContextTarget {
|
|
39
|
+
readonly rootSessionId: string;
|
|
40
|
+
readonly peerId: string;
|
|
41
|
+
readonly incarnation: string;
|
|
42
|
+
}
|
|
43
|
+
export interface DeliveryGuard extends ContextTarget {
|
|
44
|
+
readonly applicationGuard: string;
|
|
45
|
+
}
|
|
46
|
+
export interface PublicationReplyHint {
|
|
47
|
+
readonly tool: string;
|
|
48
|
+
readonly commandId: string;
|
|
49
|
+
readonly commandFingerprint?: string;
|
|
50
|
+
}
|
|
51
|
+
export type SendOptions = Omit<Message, "id" | "timestamp" | "content"> & Message["content"] & {
|
|
52
|
+
readonly messageId?: string;
|
|
53
|
+
};
|
|
54
|
+
export declare function isContextTarget(value: unknown): value is ContextTarget;
|
|
55
|
+
export declare function isDeliveryGuard(value: unknown): value is DeliveryGuard;
|
|
56
|
+
export declare function isPublicationReplyHint(value: unknown): value is PublicationReplyHint;
|
|
57
|
+
export interface HumanMessageOrigin {
|
|
58
|
+
readonly ownerSessionId: string;
|
|
59
|
+
readonly runId: string;
|
|
60
|
+
readonly index: number;
|
|
61
|
+
}
|
|
62
|
+
export declare function isHumanMessageOrigin(value: unknown): value is HumanMessageOrigin;
|
|
63
|
+
export interface Message {
|
|
64
|
+
readonly id: string;
|
|
65
|
+
readonly timestamp: number;
|
|
66
|
+
readonly replyTo?: string;
|
|
67
|
+
readonly expectsReply?: boolean;
|
|
68
|
+
/** Recipients verify parent ownership before elevating human origin. */
|
|
69
|
+
readonly human?: HumanMessageOrigin;
|
|
70
|
+
readonly topic?: TopicUpdate;
|
|
71
|
+
readonly delivery?: MessageDelivery;
|
|
72
|
+
readonly queueMode?: QueueMode;
|
|
73
|
+
readonly threadId?: string;
|
|
74
|
+
readonly passive?: boolean;
|
|
75
|
+
readonly guard?: DeliveryGuard;
|
|
76
|
+
readonly replyHint?: PublicationReplyHint;
|
|
77
|
+
readonly content: {
|
|
78
|
+
readonly text: string;
|
|
79
|
+
readonly attachments?: readonly Attachment[];
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export interface Attachment {
|
|
83
|
+
readonly type: "file" | "snippet" | "context";
|
|
84
|
+
readonly name: string;
|
|
85
|
+
readonly content: string;
|
|
86
|
+
readonly language?: string;
|
|
87
|
+
}
|
|
88
|
+
export declare function isAttachment(value: unknown): value is Attachment;
|
|
89
|
+
export declare function isMessage(value: unknown): value is Message;
|
|
90
|
+
export declare function isSessionRegistration(value: unknown): value is Omit<SessionInfo, "id">;
|
|
91
|
+
export declare function normalizeSessionInfo(value: unknown): SessionInfo | null;
|
|
92
|
+
export interface SendResult {
|
|
93
|
+
readonly id: string;
|
|
94
|
+
readonly accepted: boolean;
|
|
95
|
+
readonly delivered: boolean;
|
|
96
|
+
readonly queued?: boolean;
|
|
97
|
+
readonly reason?: string;
|
|
98
|
+
}
|
|
99
|
+
export type TopicChange = {
|
|
100
|
+
readonly action: "publish" | "restore";
|
|
101
|
+
readonly topic: TopicUpdate;
|
|
102
|
+
} | {
|
|
103
|
+
readonly action: "subscribe" | "restore";
|
|
104
|
+
readonly subscription: TopicSubscription;
|
|
105
|
+
} | {
|
|
106
|
+
readonly action: "unsubscribe";
|
|
107
|
+
readonly topic: string;
|
|
108
|
+
};
|
|
109
|
+
export interface SessionSnapshot {
|
|
110
|
+
readonly sessions: readonly SessionInfo[];
|
|
111
|
+
readonly receipts: readonly (SendResult & {
|
|
112
|
+
readonly to: string;
|
|
113
|
+
})[];
|
|
114
|
+
}
|
|
115
|
+
type CompactTopicMessage = Omit<Message, "topic"> & {
|
|
116
|
+
readonly topic?: Omit<TopicUpdate, "text"> & {
|
|
117
|
+
readonly text?: string;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
/** Topic text and the standard coalescing key need only one copy on the wire. */
|
|
121
|
+
export declare function compactTopicMessage(message: Message): CompactTopicMessage;
|
|
122
|
+
export declare function normalizeMessage(value: unknown): Message | null;
|
|
123
|
+
export interface LastMessageQuery {
|
|
124
|
+
readonly entryId?: string;
|
|
125
|
+
readonly offset?: number;
|
|
126
|
+
readonly limit?: number;
|
|
127
|
+
}
|
|
128
|
+
export declare const LAST_MESSAGE_PAGE_LIMIT = 16384;
|
|
129
|
+
export declare function isLastMessageQuery(value: unknown): value is LastMessageQuery;
|
|
130
|
+
export type LastMessageResult = {
|
|
131
|
+
readonly session: SessionInfo;
|
|
132
|
+
readonly entryId: string | null;
|
|
133
|
+
readonly text: string;
|
|
134
|
+
readonly offset: number;
|
|
135
|
+
readonly totalLength: number;
|
|
136
|
+
readonly nextOffset?: number;
|
|
137
|
+
} | {
|
|
138
|
+
readonly error: string;
|
|
139
|
+
};
|
|
140
|
+
export interface ReceiptQuery {
|
|
141
|
+
readonly rootSessionId: string;
|
|
142
|
+
readonly messageId: string;
|
|
143
|
+
}
|
|
144
|
+
export declare function isReceiptQuery(value: unknown): value is ReceiptQuery;
|
|
145
|
+
export interface NativeReceipt extends ReceiptQuery {
|
|
146
|
+
readonly version: 1;
|
|
147
|
+
readonly sender: {
|
|
148
|
+
readonly peerId: string;
|
|
149
|
+
readonly rootSessionId?: string;
|
|
150
|
+
readonly incarnation?: string;
|
|
151
|
+
};
|
|
152
|
+
readonly textSha256: string;
|
|
153
|
+
readonly delivery: MessageDelivery;
|
|
154
|
+
readonly guard?: DeliveryGuard;
|
|
155
|
+
readonly replyHint?: PublicationReplyHint;
|
|
156
|
+
readonly checkpointEntryId: string;
|
|
157
|
+
readonly receivedAt: number;
|
|
158
|
+
/** Historical observations, not a promise that an input is still queued. */
|
|
159
|
+
readonly queued: boolean;
|
|
160
|
+
readonly nativeHandoff: boolean;
|
|
161
|
+
readonly placementEntryId: string | null;
|
|
162
|
+
readonly discarded: boolean;
|
|
163
|
+
}
|
|
164
|
+
export type ReceiptResult = {
|
|
165
|
+
readonly receipt: NativeReceipt;
|
|
166
|
+
} | {
|
|
167
|
+
readonly error: string;
|
|
168
|
+
};
|
|
169
|
+
export type BrokerMessage = {
|
|
170
|
+
readonly type: "registered";
|
|
171
|
+
readonly sessionId: string;
|
|
172
|
+
readonly topicsSupported?: true;
|
|
173
|
+
readonly topicFrames?: true;
|
|
174
|
+
readonly lastMessages?: true;
|
|
175
|
+
readonly receiptReads?: 1;
|
|
176
|
+
readonly guardedDelivery?: 1;
|
|
177
|
+
} | {
|
|
178
|
+
readonly type: "sessions";
|
|
179
|
+
readonly requestId: string;
|
|
180
|
+
readonly sessions: readonly (Partial<SessionInfo> & Pick<SessionInfo, "id">)[];
|
|
181
|
+
readonly more?: boolean;
|
|
182
|
+
readonly receipts?: SessionSnapshot["receipts"];
|
|
183
|
+
readonly error?: string;
|
|
184
|
+
} | {
|
|
185
|
+
readonly type: "message";
|
|
186
|
+
readonly from: SessionInfo;
|
|
187
|
+
readonly message: Message | CompactTopicMessage;
|
|
188
|
+
} | {
|
|
189
|
+
readonly type: "last_request";
|
|
190
|
+
readonly requestId: string;
|
|
191
|
+
readonly from: SessionInfo;
|
|
192
|
+
readonly query: LastMessageQuery | ReceiptQuery;
|
|
193
|
+
} | {
|
|
194
|
+
readonly type: "last_response";
|
|
195
|
+
readonly requestId: string;
|
|
196
|
+
readonly result: LastMessageResult | ReceiptResult;
|
|
197
|
+
} | {
|
|
198
|
+
readonly type: "session_left";
|
|
199
|
+
readonly sessionId: string;
|
|
200
|
+
} | {
|
|
201
|
+
readonly type: "delivered";
|
|
202
|
+
readonly messageId: string;
|
|
203
|
+
} | {
|
|
204
|
+
readonly type: "delivery_queued";
|
|
205
|
+
readonly messageId: string;
|
|
206
|
+
readonly reason: string;
|
|
207
|
+
} | {
|
|
208
|
+
readonly type: "delivery_failed";
|
|
209
|
+
readonly messageId: string;
|
|
210
|
+
readonly reason: string;
|
|
211
|
+
};
|
|
212
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { finiteNumber, isRecord, isUnknownArray, optionalBoolean, optionalFiniteNumber, optionalLabel, safeLabel, safeText, } from "./validation.js";
|
|
1
|
+
import { finiteNumber, isRecord, isUnknownArray, nonNegativeInteger, optionalBoolean, optionalFiniteNumber, optionalLabel, safeLabel, safeText, } from "./validation.js";
|
|
2
2
|
export function isTopicSubscription(value) {
|
|
3
3
|
return (isRecord(value) &&
|
|
4
4
|
typeof value.topic === "string" &&
|
|
@@ -30,6 +30,23 @@ export function isTopicUpdate(value) {
|
|
|
30
30
|
finiteNumber(value.updatedAt) &&
|
|
31
31
|
validTopicOwnership(value));
|
|
32
32
|
}
|
|
33
|
+
export function isContextTarget(value) {
|
|
34
|
+
return (isRecord(value) &&
|
|
35
|
+
["rootSessionId", "peerId", "incarnation"].every((key) => safeLabel(value[key])));
|
|
36
|
+
}
|
|
37
|
+
export function isDeliveryGuard(value) {
|
|
38
|
+
return isContextTarget(value) && "applicationGuard" in value && safeLabel(value.applicationGuard);
|
|
39
|
+
}
|
|
40
|
+
export function isPublicationReplyHint(value) {
|
|
41
|
+
return (isRecord(value) &&
|
|
42
|
+
typeof value.tool === "string" &&
|
|
43
|
+
/^[a-zA-Z_][a-zA-Z0-9_]{0,79}$/.test(value.tool) &&
|
|
44
|
+
typeof value.commandId === "string" &&
|
|
45
|
+
/^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/.test(value.commandId) &&
|
|
46
|
+
(value.commandFingerprint === undefined ||
|
|
47
|
+
(typeof value.commandFingerprint === "string" &&
|
|
48
|
+
/^[a-f0-9]{64}$/.test(value.commandFingerprint))));
|
|
49
|
+
}
|
|
33
50
|
export function isHumanMessageOrigin(value) {
|
|
34
51
|
if (!isRecord(value)) {
|
|
35
52
|
return false;
|
|
@@ -50,6 +67,9 @@ export function isAttachment(value) {
|
|
|
50
67
|
return (validType && safeLabel(value.name) && safeText(value.content) && optionalLabel(value.language));
|
|
51
68
|
}
|
|
52
69
|
function validMessageOrigin(message) {
|
|
70
|
+
if (!validMessageGuard(message)) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
53
73
|
if (message.human !== undefined && !isHumanMessageOrigin(message.human)) {
|
|
54
74
|
return false;
|
|
55
75
|
}
|
|
@@ -61,6 +81,17 @@ function validMessageOrigin(message) {
|
|
|
61
81
|
(message.expectsReply === undefined || message.expectsReply === false) &&
|
|
62
82
|
message.replyTo === undefined);
|
|
63
83
|
}
|
|
84
|
+
function validMessageGuard(message) {
|
|
85
|
+
if (message.guard === undefined) {
|
|
86
|
+
return message.replyHint === undefined;
|
|
87
|
+
}
|
|
88
|
+
return (isDeliveryGuard(message.guard) &&
|
|
89
|
+
message.expectsReply === false &&
|
|
90
|
+
message.replyTo === undefined &&
|
|
91
|
+
message.human === undefined &&
|
|
92
|
+
message.topic === undefined &&
|
|
93
|
+
(message.replyHint === undefined || isPublicationReplyHint(message.replyHint)));
|
|
94
|
+
}
|
|
64
95
|
function validDelivery(message) {
|
|
65
96
|
if (message.delivery !== undefined &&
|
|
66
97
|
message.delivery !== "queue" &&
|
|
@@ -135,15 +166,25 @@ function validSessionTopics(session) {
|
|
|
135
166
|
(session.topics === undefined ||
|
|
136
167
|
(isUnknownArray(session.topics) && session.topics.every(isTopicUpdate))));
|
|
137
168
|
}
|
|
169
|
+
function validSessionLineage(value) {
|
|
170
|
+
return (["rootSessionId", "parentSessionId", "incarnation", "applicationGuard"].every((key) => optionalLabel(value[key])) &&
|
|
171
|
+
(value.guardedDelivery === undefined ||
|
|
172
|
+
(value.guardedDelivery === 1 &&
|
|
173
|
+
safeLabel(value.incarnation) &&
|
|
174
|
+
safeLabel(value.rootSessionId))) &&
|
|
175
|
+
(value.parentSessionId === undefined || value.rootSessionId === value.parentSessionId));
|
|
176
|
+
}
|
|
177
|
+
function validSessionProject(value) {
|
|
178
|
+
return value === undefined || (typeof value === "string" && /^[a-f0-9]{64}$/.test(value));
|
|
179
|
+
}
|
|
138
180
|
export function isSessionRegistration(value) {
|
|
139
181
|
if (!isRecord(value) || !safeLabel(value.cwd) || !safeLabel(value.model)) {
|
|
140
182
|
return false;
|
|
141
183
|
}
|
|
142
|
-
const validProject = value.projectId === undefined ||
|
|
143
|
-
(typeof value.projectId === "string" && /^[a-f0-9]{64}$/.test(value.projectId));
|
|
144
184
|
return (optionalLabel(value.name) &&
|
|
145
185
|
optionalLabel(value.status) &&
|
|
146
|
-
|
|
186
|
+
validSessionLineage(value) &&
|
|
187
|
+
validSessionProject(value.projectId) &&
|
|
147
188
|
validSessionHealth(value) &&
|
|
148
189
|
validSessionTopics(value));
|
|
149
190
|
}
|
|
@@ -198,3 +239,20 @@ export function normalizeMessage(value) {
|
|
|
198
239
|
};
|
|
199
240
|
return isMessage(restored) ? restored : null;
|
|
200
241
|
}
|
|
242
|
+
export const LAST_MESSAGE_PAGE_LIMIT = 16384;
|
|
243
|
+
function optionalEntryId(value) {
|
|
244
|
+
return value === undefined || (typeof value === "string" && value.length > 0);
|
|
245
|
+
}
|
|
246
|
+
export function isLastMessageQuery(value) {
|
|
247
|
+
return (isRecord(value) &&
|
|
248
|
+
value.messageId === undefined &&
|
|
249
|
+
optionalEntryId(value.entryId) &&
|
|
250
|
+
(value.offset === undefined || nonNegativeInteger(value.offset)) &&
|
|
251
|
+
(value.limit === undefined ||
|
|
252
|
+
(nonNegativeInteger(value.limit) &&
|
|
253
|
+
value.limit > 0 &&
|
|
254
|
+
value.limit <= LAST_MESSAGE_PAGE_LIMIT)));
|
|
255
|
+
}
|
|
256
|
+
export function isReceiptQuery(value) {
|
|
257
|
+
return isRecord(value) && [value.rootSessionId, value.messageId].every(safeLabel);
|
|
258
|
+
}
|
|
@@ -6,7 +6,7 @@ function shellQuote(value) {
|
|
|
6
6
|
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
7
7
|
}
|
|
8
8
|
function localForkStartCommand() {
|
|
9
|
-
return `pi --name worker --extension ${shellQuote(path.join(PACKAGE_ROOT, "src", "
|
|
9
|
+
return `pi --name worker --extension ${shellQuote(path.join(PACKAGE_ROOT, "src", "index.ts"))}`;
|
|
10
10
|
}
|
|
11
11
|
function duplicateNames(sessions) {
|
|
12
12
|
const names = sessions
|
|
@@ -101,7 +101,7 @@ function noPeers(hidden) {
|
|
|
101
101
|
}
|
|
102
102
|
return `No other sessions connected. Start another intercom-enabled session with \`pi --name worker\`, then run \`intercom({ action: "list" })\` again. If you are dogfooding this local fork without installing it, start the peer with \`${localForkStartCommand()}\`.`;
|
|
103
103
|
}
|
|
104
|
-
export function formatSessionListSections(allSessions, id, scope = "
|
|
104
|
+
export function formatSessionListSections(allSessions, id, scope = "all") {
|
|
105
105
|
const current = allSessions.find((session) => session.id === id);
|
|
106
106
|
if (!current) {
|
|
107
107
|
throw new Error("Current session is missing from intercom session list.");
|
|
@@ -118,7 +118,7 @@ export function formatSessionListSections(allSessions, id, scope = "project") {
|
|
|
118
118
|
const currentSection = `**Current session:**\n${row(current, { ...options, self: true })}`;
|
|
119
119
|
const otherSection = `**Other sessions:**\n${others.length === 0 ? noPeers(hidden) : others.map((session) => row(session, { ...options, self: false })).join("\n")}`;
|
|
120
120
|
const hint = hidden > 0
|
|
121
|
-
? `\n\n${hidden} session${hidden === 1 ? "" : "s"} in other projects hidden. Use \`intercom({ action: "list", scope: "all" })\` to show every
|
|
121
|
+
? `\n\n${hidden} session${hidden === 1 ? "" : "s"} in other projects hidden. Use \`intercom({ action: "list", scope: "all" })\` to show every reachable session.`
|
|
122
122
|
: "";
|
|
123
123
|
return `${currentSection}\n\n${otherSection}${hint}`;
|
|
124
124
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** JSON objects are untrusted at the broker and journal boundaries. */
|
|
2
|
+
export declare function isRecord(value: unknown): value is Readonly<Record<string, unknown>>;
|
|
3
|
+
export declare function isUnknownArray(value: unknown): value is readonly unknown[];
|
|
4
|
+
export declare function errorMessage(error: unknown): string;
|
|
5
|
+
export declare function asError(error: unknown): Error;
|
|
6
|
+
export declare function safeText(value: unknown): boolean;
|
|
7
|
+
export declare function safeLabel(value: unknown): boolean;
|
|
8
|
+
export declare function optionalLabel(value: unknown): boolean;
|
|
9
|
+
export declare function optionalBoolean(value: unknown): boolean;
|
|
10
|
+
export declare function finiteNumber(value: unknown): value is number;
|
|
11
|
+
export declare function nonNegativeInteger(value: unknown): value is number;
|
|
12
|
+
export declare function optionalFiniteNumber(value: unknown): boolean;
|
|
@@ -54,6 +54,9 @@ export function optionalBoolean(value) {
|
|
|
54
54
|
export function finiteNumber(value) {
|
|
55
55
|
return typeof value === "number" && Number.isFinite(value);
|
|
56
56
|
}
|
|
57
|
+
export function nonNegativeInteger(value) {
|
|
58
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
|
|
59
|
+
}
|
|
57
60
|
export function optionalFiniteNumber(value) {
|
|
58
61
|
return value === undefined || finiteNumber(value);
|
|
59
62
|
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { types } from "node:util";
|
|
2
|
+
class Limit extends Error {
|
|
3
|
+
reason;
|
|
4
|
+
constructor(reason) {
|
|
5
|
+
super(reason);
|
|
6
|
+
this.reason = reason;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Proxies, accessors and custom serializers would run arbitrary code inside the actor; binary
|
|
11
|
+
* values allocate their full representation. None of them is read.
|
|
12
|
+
*/
|
|
13
|
+
function opaque(value) {
|
|
14
|
+
return (types.isProxy(value) ||
|
|
15
|
+
ArrayBuffer.isView(value) ||
|
|
16
|
+
types.isAnyArrayBuffer(value) ||
|
|
17
|
+
"toJSON" in value);
|
|
18
|
+
}
|
|
19
|
+
/** An own data property's value, without invoking a getter. */
|
|
20
|
+
function data(value, key) {
|
|
21
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
22
|
+
if (descriptor !== undefined && !("value" in descriptor)) {
|
|
23
|
+
throw new Limit("unsupported");
|
|
24
|
+
}
|
|
25
|
+
return descriptor?.value;
|
|
26
|
+
}
|
|
27
|
+
/** Serialize like JSON.stringify within byte, node and depth limits, without first cloning. */
|
|
28
|
+
class Writer {
|
|
29
|
+
parts = [];
|
|
30
|
+
bytes = 0;
|
|
31
|
+
nodes = 0;
|
|
32
|
+
ancestors = new Set();
|
|
33
|
+
budget;
|
|
34
|
+
constructor(budget) {
|
|
35
|
+
this.budget = budget;
|
|
36
|
+
}
|
|
37
|
+
text() {
|
|
38
|
+
return this.parts.join("");
|
|
39
|
+
}
|
|
40
|
+
add(text, bytes = text.length) {
|
|
41
|
+
this.bytes += bytes;
|
|
42
|
+
if (this.bytes > this.budget.bytes) {
|
|
43
|
+
throw new Limit("oversize");
|
|
44
|
+
}
|
|
45
|
+
this.parts.push(text);
|
|
46
|
+
}
|
|
47
|
+
string(value) {
|
|
48
|
+
// A string never encodes to fewer bytes than code units; refuse before copying it.
|
|
49
|
+
if (value.length > this.budget.bytes - this.bytes) {
|
|
50
|
+
throw new Limit("oversize");
|
|
51
|
+
}
|
|
52
|
+
const json = JSON.stringify(value);
|
|
53
|
+
this.add(json, Buffer.byteLength(json));
|
|
54
|
+
}
|
|
55
|
+
/** Returns false for values JSON omits from objects and nulls in arrays. */
|
|
56
|
+
value(value, depth) {
|
|
57
|
+
if (++this.nodes > this.budget.nodes) {
|
|
58
|
+
throw new Limit("oversize");
|
|
59
|
+
}
|
|
60
|
+
switch (typeof value) {
|
|
61
|
+
case "string":
|
|
62
|
+
this.string(value);
|
|
63
|
+
return true;
|
|
64
|
+
case "number":
|
|
65
|
+
this.add(Number.isFinite(value) ? String(value) : "null");
|
|
66
|
+
return true;
|
|
67
|
+
case "boolean":
|
|
68
|
+
this.add(String(value));
|
|
69
|
+
return true;
|
|
70
|
+
case "bigint":
|
|
71
|
+
throw new Limit("unsupported");
|
|
72
|
+
case "object":
|
|
73
|
+
this.object(value, depth);
|
|
74
|
+
return true;
|
|
75
|
+
case "undefined":
|
|
76
|
+
case "function":
|
|
77
|
+
case "symbol":
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
object(value, depth) {
|
|
82
|
+
if (value === null) {
|
|
83
|
+
this.add("null");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (depth >= this.budget.depth) {
|
|
87
|
+
throw new Limit("oversize");
|
|
88
|
+
}
|
|
89
|
+
if (this.ancestors.has(value)) {
|
|
90
|
+
throw new Limit("cyclic");
|
|
91
|
+
}
|
|
92
|
+
if (types.isDate(value) && !types.isProxy(value)) {
|
|
93
|
+
const time = Date.prototype.getTime.call(value);
|
|
94
|
+
this.add(Number.isNaN(time) ? "null" : JSON.stringify(new Date(time).toISOString()));
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (opaque(value)) {
|
|
98
|
+
throw new Limit("unsupported");
|
|
99
|
+
}
|
|
100
|
+
this.ancestors.add(value);
|
|
101
|
+
if (Array.isArray(value)) {
|
|
102
|
+
this.array(value, depth + 1);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.record(value, depth + 1);
|
|
106
|
+
}
|
|
107
|
+
this.ancestors.delete(value);
|
|
108
|
+
}
|
|
109
|
+
array(value, depth) {
|
|
110
|
+
this.add("[");
|
|
111
|
+
for (let index = 0; index < value.length; index++) {
|
|
112
|
+
if (index > 0) {
|
|
113
|
+
this.add(",");
|
|
114
|
+
}
|
|
115
|
+
if (!this.value(data(value, String(index)), depth)) {
|
|
116
|
+
this.add("null");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
this.add("]");
|
|
120
|
+
}
|
|
121
|
+
record(value, depth) {
|
|
122
|
+
this.add("{");
|
|
123
|
+
let first = true;
|
|
124
|
+
for (const key of Object.keys(value)) {
|
|
125
|
+
const mark = { parts: this.parts.length, bytes: this.bytes };
|
|
126
|
+
if (!first) {
|
|
127
|
+
this.add(",");
|
|
128
|
+
}
|
|
129
|
+
this.string(key);
|
|
130
|
+
this.add(":");
|
|
131
|
+
if (this.value(data(value, key), depth)) {
|
|
132
|
+
first = false;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.parts.length = mark.parts;
|
|
136
|
+
this.bytes = mark.bytes;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
this.add("}");
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
export function boundedJson(value, budget) {
|
|
143
|
+
const writer = new Writer(budget);
|
|
144
|
+
try {
|
|
145
|
+
return writer.value(value, 0) ? { json: writer.text() } : { unavailable: "unsupported" };
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
// Getters, proxies and revoked proxies are untrusted tool data, not observer failures.
|
|
149
|
+
return { unavailable: error instanceof Limit ? error.reason : "unreadable" };
|
|
150
|
+
}
|
|
151
|
+
}
|