@fitchmultz/pi-subagents 0.49.0 → 0.50.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 +29 -1
- package/README.md +88 -94
- package/dist/agent/contracts.js +122 -0
- package/dist/agent/cwd.js +51 -0
- package/dist/agent/host.js +82 -0
- package/dist/agent/index.js +422 -0
- package/dist/agent/journal-tail.js +183 -0
- package/dist/agent/launch.js +87 -0
- package/dist/agent/legacy.js +141 -0
- package/dist/agent/notifications.js +119 -0
- package/dist/agent/observe-screen.js +132 -0
- package/dist/agent/observe.js +234 -0
- package/dist/agent/process.js +173 -0
- package/dist/agent/receipts.js +75 -0
- package/dist/agent/runner.js +372 -0
- package/dist/agent/saved.js +195 -0
- package/dist/agent/shell.js +43 -0
- package/dist/agent/storage.js +113 -0
- package/dist/agent/typebox.js +20 -0
- package/dist/agent/usage.js +232 -0
- package/dist/agent/view.js +164 -0
- package/dist/build-info.js +1 -0
- package/dist/index.js +8 -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 +2 -96
- package/dist/pi-intercom/bridge.js +12 -35
- package/dist/pi-intercom/broker/broker.js +33 -38
- package/dist/pi-intercom/broker/client-last.js +48 -0
- package/dist/pi-intercom/broker/client.js +41 -1
- package/dist/pi-intercom/broker/connection.js +5 -18
- package/dist/pi-intercom/broker/last.js +173 -0
- package/dist/pi-intercom/broker/paths.js +28 -9
- package/dist/pi-intercom/broker/server-connection.js +18 -0
- package/dist/pi-intercom/broker/spawn.js +32 -16
- package/dist/pi-intercom/broker/targets.js +24 -0
- package/dist/pi-intercom/config.js +0 -23
- package/dist/pi-intercom/connection.js +30 -70
- package/dist/pi-intercom/identity.js +14 -44
- package/dist/pi-intercom/inbound-delivery.js +8 -69
- package/dist/pi-intercom/inbound-journal.js +3 -68
- package/dist/pi-intercom/inbound-record.js +2 -48
- package/dist/pi-intercom/inbound.js +6 -53
- package/dist/pi-intercom/index.js +8 -47
- package/dist/pi-intercom/last-message.js +58 -0
- package/dist/pi-intercom/lifecycle.js +8 -33
- package/dist/pi-intercom/message-format.js +1 -32
- package/dist/pi-intercom/outbound.js +9 -1
- package/dist/pi-intercom/reply-tracker.js +2 -12
- package/dist/pi-intercom/reply-wait.js +16 -107
- package/dist/pi-intercom/runtime-types.js +0 -1
- package/dist/pi-intercom/session-events.js +5 -21
- package/dist/pi-intercom/tool-arguments.js +4 -0
- package/dist/pi-intercom/tool-registration.js +5 -86
- package/dist/pi-intercom/tool-schemas.js +12 -52
- package/dist/pi-intercom/tools.js +55 -29
- package/dist/pi-intercom/types.js +10 -3
- package/dist/pi-intercom/ui/session-format.js +3 -3
- package/dist/shared/journal-projections.js +0 -31
- package/dist/shared/types.js +0 -195
- package/docs/code-quality.md +4 -3
- package/docs/development.md +57 -95
- package/docs/intercom-bridge.md +206 -415
- package/docs/intercom.md +142 -593
- package/docs/performance.md +109 -192
- package/docs/reference.md +139 -1452
- package/package.json +12 -19
- package/scripts/build.mjs +1 -1
- 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 +267 -109
- package/scripts/package-smoke.mjs +120 -363
- package/scripts/real-pi-processes.mjs +6 -38
- package/scripts/real-pi-smoke.mjs +153 -144
- package/scripts/run-tests.mjs +4 -3
- package/skills/pi-intercom/SKILL.md +53 -107
- package/skills/pi-subagents/SKILL.md +45 -59
- package/src/agent/contracts.ts +144 -0
- package/src/agent/cwd.ts +69 -0
- package/src/agent/host.ts +82 -0
- package/src/agent/index.ts +486 -0
- package/src/agent/journal-tail.ts +184 -0
- package/src/agent/launch.ts +112 -0
- package/src/agent/legacy.ts +167 -0
- package/src/agent/notifications.ts +131 -0
- package/src/agent/observe-screen.ts +167 -0
- package/src/agent/observe.ts +240 -0
- package/src/agent/process.ts +179 -0
- package/src/agent/receipts.ts +88 -0
- package/src/agent/runner.ts +417 -0
- package/src/agent/saved.ts +220 -0
- package/src/agent/shell.ts +56 -0
- package/src/agent/storage.ts +123 -0
- package/src/agent/typebox.ts +17 -0
- package/src/agent/usage.ts +263 -0
- package/src/agent/view.ts +246 -0
- package/src/index.ts +10 -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 +3 -114
- package/src/pi-intercom/bridge.ts +12 -35
- package/src/pi-intercom/broker/broker.ts +39 -54
- package/src/pi-intercom/broker/client-last.ts +65 -0
- package/src/pi-intercom/broker/client.ts +45 -3
- package/src/pi-intercom/broker/connection.ts +5 -17
- package/src/pi-intercom/broker/last.ts +222 -0
- package/src/pi-intercom/broker/paths.ts +31 -9
- package/src/pi-intercom/broker/server-connection.ts +38 -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 +41 -84
- package/src/pi-intercom/identity.ts +21 -49
- package/src/pi-intercom/inbound-delivery.ts +10 -93
- package/src/pi-intercom/inbound-journal.ts +4 -81
- package/src/pi-intercom/inbound-record.ts +2 -61
- package/src/pi-intercom/inbound.ts +7 -69
- package/src/pi-intercom/index.ts +10 -49
- package/src/pi-intercom/last-message.ts +73 -0
- package/src/pi-intercom/lifecycle.ts +14 -41
- package/src/pi-intercom/message-format.ts +1 -34
- package/src/pi-intercom/outbound.ts +16 -1
- package/src/pi-intercom/reply-tracker.ts +2 -19
- package/src/pi-intercom/reply-wait.ts +21 -128
- package/src/pi-intercom/runtime-types.ts +5 -58
- 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 +9 -109
- package/src/pi-intercom/tool-schemas.ts +17 -80
- package/src/pi-intercom/tools.ts +58 -44
- package/src/pi-intercom/transport.ts +1 -0
- package/src/pi-intercom/types.ts +45 -6
- package/src/pi-intercom/ui/session-format.ts +3 -3
- package/src/shared/journal-projections.ts +0 -35
- package/src/shared/post-exit-stdio-guard.ts +7 -1
- package/src/shared/types.ts +0 -257
- 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/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,356 +0,0 @@
|
|
|
1
|
-
import { acceptanceFailureMessage, evaluateAcceptance } from "./acceptance-evaluation.js";
|
|
2
|
-
import { acceptanceSelfReviewConfig, formatEvidenceReportFieldMapping, formatAcceptanceRequirements, shouldRunAcceptanceFinalization, } from "./acceptance-contract.js";
|
|
3
|
-
export { resolveExecutionOutcome } from "./acceptance-outcome.js";
|
|
4
|
-
import { formatAcceptanceReportExample, parseAcceptanceReport, stripAcceptanceReport, } from "./acceptance-reports.js";
|
|
5
|
-
import { reportAuditOutput } from "./acceptance-submission.js";
|
|
6
|
-
export { createFinalizationReportRuntime, readFinalizationReport, } from "./acceptance-submission.js";
|
|
7
|
-
export function formatUnconfirmedFinalizationOutput(output) {
|
|
8
|
-
return `UNCONFIRMED task report — retained for audit only; finalization did not deliver a current complete report.\n\n${stripAcceptanceReport(output)}`;
|
|
9
|
-
}
|
|
10
|
-
export function resolveFinalizationOutput(rawOutput, previousOutput) {
|
|
11
|
-
const prose = stripAcceptanceReport(rawOutput);
|
|
12
|
-
if (prose.trim().length > 0) {
|
|
13
|
-
return prose;
|
|
14
|
-
}
|
|
15
|
-
const report = parseAcceptanceReport(rawOutput).report;
|
|
16
|
-
const summary = report?.diffSummary?.trim() ?? "";
|
|
17
|
-
if (summary.length > 0) {
|
|
18
|
-
return summary;
|
|
19
|
-
}
|
|
20
|
-
const notes = report?.notes?.trim() ?? "";
|
|
21
|
-
return notes.length > 0 ? notes : previousOutput;
|
|
22
|
-
}
|
|
23
|
-
function skipSelfReview(input, ledger) {
|
|
24
|
-
return (ledger.status === "blocked" ||
|
|
25
|
-
!shouldRunAcceptanceFinalization(input.acceptance) ||
|
|
26
|
-
input.initial.exitCode !== 0 ||
|
|
27
|
-
(input.initial.error ?? "").length > 0 ||
|
|
28
|
-
input.initial.interrupted === true ||
|
|
29
|
-
(input.signal?.aborted === true && (input.recordedTurns ?? 0) === 0));
|
|
30
|
-
}
|
|
31
|
-
/** Owns ordered continuation, cumulative audit evidence, and the authoritative current ledger. */
|
|
32
|
-
class AcceptanceReview {
|
|
33
|
-
input;
|
|
34
|
-
initialLedger;
|
|
35
|
-
selfReview;
|
|
36
|
-
turns = [];
|
|
37
|
-
authoritativeLedger;
|
|
38
|
-
previousFailure;
|
|
39
|
-
auditOutput;
|
|
40
|
-
constructor(input, initialLedger, selfReview) {
|
|
41
|
-
this.input = input;
|
|
42
|
-
this.initialLedger = initialLedger;
|
|
43
|
-
this.selfReview = selfReview;
|
|
44
|
-
this.authoritativeLedger = initialLedger;
|
|
45
|
-
this.previousFailure = acceptanceFailureMessage(initialLedger);
|
|
46
|
-
this.auditOutput = reportAuditOutput({
|
|
47
|
-
output: input.initialOutput,
|
|
48
|
-
report: input.initialReport,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
finish(status) {
|
|
52
|
-
return attachFinalizationToLedger({
|
|
53
|
-
initialLedger: this.initialLedger,
|
|
54
|
-
authoritativeLedger: this.authoritativeLedger,
|
|
55
|
-
turns: this.turns,
|
|
56
|
-
status,
|
|
57
|
-
maxTurns: this.input.acceptance.finalization.maxTurns,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
processFailure(result, turn, prompt) {
|
|
61
|
-
if (result.error === undefined || result.error.length === 0) {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
this.turns.push({
|
|
65
|
-
...createFinalizationProcessFailureTurn({
|
|
66
|
-
turn,
|
|
67
|
-
prompt,
|
|
68
|
-
rawOutput: result.output,
|
|
69
|
-
message: result.error,
|
|
70
|
-
}),
|
|
71
|
-
...(this.input.nativeReport === true ? { unconfirmedOutput: this.auditOutput } : {}),
|
|
72
|
-
});
|
|
73
|
-
const ledger = buildFinalizationProcessFailureLedger({
|
|
74
|
-
initialLedger: this.initialLedger,
|
|
75
|
-
turns: this.turns,
|
|
76
|
-
maxTurns: this.input.acceptance.finalization.maxTurns,
|
|
77
|
-
message: result.error,
|
|
78
|
-
});
|
|
79
|
-
return this.input.nativeReport === true
|
|
80
|
-
? {
|
|
81
|
-
...ledger,
|
|
82
|
-
childReport: undefined,
|
|
83
|
-
childReportParseError: result.reportSubmissionError,
|
|
84
|
-
unconfirmedOutput: this.auditOutput,
|
|
85
|
-
}
|
|
86
|
-
: ledger;
|
|
87
|
-
}
|
|
88
|
-
async evaluateTurn(result) {
|
|
89
|
-
const submissionError = result.reportSubmissionError;
|
|
90
|
-
const rejectedSubmission = submissionError !== undefined && submissionError.length > 0;
|
|
91
|
-
// Replay the native boundary's checks, not the workspace left by a later repair.
|
|
92
|
-
let ledger = !rejectedSubmission && result.acceptance
|
|
93
|
-
? result.acceptance
|
|
94
|
-
: await evaluateAcceptance({
|
|
95
|
-
acceptance: this.selfReview,
|
|
96
|
-
governing: this.input.acceptance,
|
|
97
|
-
output: rejectedSubmission ? "" : result.output,
|
|
98
|
-
report: rejectedSubmission ? undefined : result.report,
|
|
99
|
-
cwd: this.input.cwd,
|
|
100
|
-
signal: this.input.signal,
|
|
101
|
-
});
|
|
102
|
-
if (rejectedSubmission) {
|
|
103
|
-
ledger = {
|
|
104
|
-
...ledger,
|
|
105
|
-
childReportParseError: submissionError,
|
|
106
|
-
runtimeChecks: [{ id: "finalization-report", status: "failed", message: submissionError }],
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
if (this.input.nativeReport === true && (ledger.childReportParseError ?? "").length > 0) {
|
|
110
|
-
ledger = { ...ledger, unconfirmedOutput: this.auditOutput };
|
|
111
|
-
}
|
|
112
|
-
return ledger;
|
|
113
|
-
}
|
|
114
|
-
async completeReview(result) {
|
|
115
|
-
if (result.acceptance || this.selfReview !== this.input.acceptance) {
|
|
116
|
-
this.authoritativeLedger = await evaluateAcceptance({
|
|
117
|
-
acceptance: this.input.acceptance,
|
|
118
|
-
output: result.output,
|
|
119
|
-
report: result.report,
|
|
120
|
-
cwd: this.input.cwd,
|
|
121
|
-
signal: this.input.signal,
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
return this.finish(this.input.signal?.aborted === true ? "failed" : "completed");
|
|
125
|
-
}
|
|
126
|
-
runTurn(turn, prompt) {
|
|
127
|
-
if (this.input.signal?.aborted === true && turn > (this.input.recordedTurns ?? 0)) {
|
|
128
|
-
return Promise.resolve({ output: "", error: "Acceptance finalization cancelled." });
|
|
129
|
-
}
|
|
130
|
-
return this.input.runTurn(prompt, turn, this.input.sessionFile);
|
|
131
|
-
}
|
|
132
|
-
retainAudit(result) {
|
|
133
|
-
const retained = result.unconfirmedOutput ?? reportAuditOutput(result);
|
|
134
|
-
if (this.input.nativeReport === true && parseAcceptanceReport(retained).report) {
|
|
135
|
-
this.auditOutput = retained;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
async performTurn(turn) {
|
|
139
|
-
const prompt = formatAcceptanceFinalizationPrompt({
|
|
140
|
-
acceptance: this.input.acceptance,
|
|
141
|
-
initialOutput: this.input.initialOutput,
|
|
142
|
-
initialLedger: this.initialLedger,
|
|
143
|
-
turn,
|
|
144
|
-
maxTurns: this.input.acceptance.finalization.maxTurns,
|
|
145
|
-
previousFailure: this.previousFailure,
|
|
146
|
-
nativeReport: this.input.nativeReport,
|
|
147
|
-
outputSchema: this.input.outputSchema,
|
|
148
|
-
});
|
|
149
|
-
const result = await this.runTurn(turn, prompt);
|
|
150
|
-
this.retainAudit(result);
|
|
151
|
-
const processFailure = this.processFailure(result, turn, prompt);
|
|
152
|
-
if (processFailure) {
|
|
153
|
-
return processFailure;
|
|
154
|
-
}
|
|
155
|
-
this.authoritativeLedger = await this.evaluateTurn(result);
|
|
156
|
-
this.turns.push(createFinalizationTurn({
|
|
157
|
-
turn,
|
|
158
|
-
prompt,
|
|
159
|
-
rawOutput: result.output,
|
|
160
|
-
ledger: this.authoritativeLedger,
|
|
161
|
-
}));
|
|
162
|
-
if (this.authoritativeLedger.status === "blocked") {
|
|
163
|
-
return this.finish("blocked");
|
|
164
|
-
}
|
|
165
|
-
const failure = acceptanceFailureMessage(this.authoritativeLedger);
|
|
166
|
-
if (failure === undefined && this.input.signal?.aborted !== true) {
|
|
167
|
-
return this.completeReview(result);
|
|
168
|
-
}
|
|
169
|
-
if (this.input.signal?.aborted === true) {
|
|
170
|
-
return this.finish("failed");
|
|
171
|
-
}
|
|
172
|
-
this.previousFailure = failure;
|
|
173
|
-
return undefined;
|
|
174
|
-
}
|
|
175
|
-
async run() {
|
|
176
|
-
for (let turn = 1; turn <= this.input.acceptance.finalization.maxTurns; turn++) {
|
|
177
|
-
// Each repair resumes the same session and consumes the preceding turn's authoritative outcome.
|
|
178
|
-
// oxlint-disable-next-line no-await-in-loop
|
|
179
|
-
const finished = await this.performTurn(turn);
|
|
180
|
-
if (finished) {
|
|
181
|
-
return finished;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
return this.finish("failed");
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
export async function evaluateRunAcceptance(input) {
|
|
188
|
-
const review = shouldRunAcceptanceFinalization(input.acceptance);
|
|
189
|
-
const selfReview = review ? acceptanceSelfReviewConfig(input.acceptance) : input.acceptance;
|
|
190
|
-
const initialLedger = input.initialAcceptance ??
|
|
191
|
-
(await evaluateAcceptance({
|
|
192
|
-
acceptance: selfReview,
|
|
193
|
-
governing: input.acceptance,
|
|
194
|
-
output: input.initialOutput,
|
|
195
|
-
report: input.initialReport,
|
|
196
|
-
cwd: input.cwd,
|
|
197
|
-
signal: input.signal,
|
|
198
|
-
}));
|
|
199
|
-
if (skipSelfReview(input, initialLedger)) {
|
|
200
|
-
return initialLedger;
|
|
201
|
-
}
|
|
202
|
-
if (input.sessionFile === undefined || input.sessionFile.length === 0) {
|
|
203
|
-
const message = "Acceptance finalization requires a session file for same-session continuation.";
|
|
204
|
-
const turns = [createFinalizationProcessFailureTurn({ turn: 1, prompt: "", message })];
|
|
205
|
-
return buildFinalizationProcessFailureLedger({
|
|
206
|
-
initialLedger,
|
|
207
|
-
turns,
|
|
208
|
-
maxTurns: input.acceptance.finalization.maxTurns,
|
|
209
|
-
message,
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
return new AcceptanceReview({ ...input, sessionFile: input.sessionFile }, initialLedger, selfReview).run();
|
|
213
|
-
}
|
|
214
|
-
const INITIAL_OUTPUT_LIMIT = 8_000;
|
|
215
|
-
function truncateForPrompt(value) {
|
|
216
|
-
const trimmed = stripAcceptanceReport(value).trim();
|
|
217
|
-
if (trimmed.length <= INITIAL_OUTPUT_LIMIT) {
|
|
218
|
-
return trimmed.length > 0
|
|
219
|
-
? trimmed
|
|
220
|
-
: "(initial output was empty after removing acceptance-report)";
|
|
221
|
-
}
|
|
222
|
-
return `${trimmed.slice(0, INITIAL_OUTPUT_LIMIT)}\n...[truncated]`;
|
|
223
|
-
}
|
|
224
|
-
function formatReportForPrompt(ledger) {
|
|
225
|
-
if (ledger.childReport) {
|
|
226
|
-
return JSON.stringify(ledger.childReport, null, 2);
|
|
227
|
-
}
|
|
228
|
-
return `Missing or malformed acceptance report: ${ledger.childReportParseError ?? "no parse detail"}`;
|
|
229
|
-
}
|
|
230
|
-
function initialReviewEvidence(output, ledger, previousFailure) {
|
|
231
|
-
const lines = [
|
|
232
|
-
"",
|
|
233
|
-
"Initial visible output:",
|
|
234
|
-
truncateForPrompt(output),
|
|
235
|
-
"",
|
|
236
|
-
"Initial acceptance report:",
|
|
237
|
-
formatReportForPrompt(ledger),
|
|
238
|
-
];
|
|
239
|
-
if (previousFailure !== undefined && previousFailure.length > 0) {
|
|
240
|
-
lines.push("", "Previous finalization failure to address:", previousFailure);
|
|
241
|
-
}
|
|
242
|
-
return lines;
|
|
243
|
-
}
|
|
244
|
-
function finalizationInstructions(nativeReport, schema) {
|
|
245
|
-
if (schema) {
|
|
246
|
-
const action = nativeReport
|
|
247
|
-
? "Your final action must be a sole `structured_output` tool call with {value:{answer,report}}."
|
|
248
|
-
: "Return the schema-constrained JSON object {answer,report}.";
|
|
249
|
-
return [
|
|
250
|
-
`${action} answer must be the complete current public payload matching outputSchema below, including all repairs; do not embed it in a prose string. report is the private typed acceptance object. This submission replaces the initial payload. If more activity follows submission, resubmit the complete current answer and report.\noutputSchema: ${JSON.stringify(schema)}`,
|
|
251
|
-
];
|
|
252
|
-
}
|
|
253
|
-
const action = nativeReport
|
|
254
|
-
? "Now do the self-check. Your final action must be a sole `structured_output` tool call with {value:{answer,report}}. answer must contain the complete standalone final answer with the current result and every requested handoff detail (including paths, identifiers, findings, and evidence), repairs or remaining blockers. report is a typed object matching the schema, never JSON embedded in a string. This answer replaces the initial answer; do not replace useful details with only a statement that you rechecked them. If additional messages prompt more activity after submission, resubmit the complete current answer and report as your final action; a prose-only reply does not finalize the task."
|
|
255
|
-
: "Now do the self-check. Return a standalone final answer with the current result and every requested handoff detail (including paths, identifiers, findings, and evidence). This answer replaces the initial answer; do not replace useful details with only a statement that you rechecked them. Include repairs or remaining blockers, then finish with exactly one fenced JSON block tagged `acceptance-report`.";
|
|
256
|
-
return [action, formatAcceptanceReportExample(nativeReport)];
|
|
257
|
-
}
|
|
258
|
-
export function formatAcceptanceFinalizationPrompt(input) {
|
|
259
|
-
const evidence = [
|
|
260
|
-
...new Set([
|
|
261
|
-
...input.acceptance.evidence,
|
|
262
|
-
...input.acceptance.criteria.flatMap((criterion) => criterion.evidence),
|
|
263
|
-
]),
|
|
264
|
-
];
|
|
265
|
-
const lines = [
|
|
266
|
-
"## Acceptance Finalization",
|
|
267
|
-
"You are continuing the same subagent session. Before this run can be accepted, compare the current work to the acceptance contract and the evidence below.",
|
|
268
|
-
`This is finalization turn ${input.turn} of ${input.maxTurns}. The run will be rejected if the contract is still not satisfied after turn ${input.maxTurns}.`,
|
|
269
|
-
"",
|
|
270
|
-
"If a criterion is incomplete and fixable in this session, keep working now before returning the final report.",
|
|
271
|
-
"Only an observed human-only boundary, such as Touch ID or an unavailable MFA code, may use criterion status blocked with concrete evidence and a nonempty humanAction describing the exact action needed. Preserve completed criteria/evidence; blocked acceptance is incomplete and stops further review and verification until explicit Continue. Ordinary errors, missing evidence, or fixable work remain not-satisfied, not blocked; explain the blocker in residualRisks.",
|
|
272
|
-
"Do not claim a criterion is satisfied unless the current work has concrete evidence from files, commands, validation output, or other inspectable artifacts.",
|
|
273
|
-
"Report cumulative evidence for the whole delegated task, not just this finalization turn. Retain still-valid changed files, tests, commands, and other evidence from the initial report; correct or remove evidence only when the final state invalidates it. No new edits during review does not mean changedFiles is empty.",
|
|
274
|
-
"",
|
|
275
|
-
"## Acceptance Contract",
|
|
276
|
-
...formatAcceptanceRequirements(input.acceptance.criteria, evidence, "- No explicit criteria were configured; satisfy the requested task and required evidence/checks."),
|
|
277
|
-
];
|
|
278
|
-
if (evidence.length > 0) {
|
|
279
|
-
lines.push("", `Structured evidence must be present in the ${input.nativeReport === true || input.outputSchema ? "typed report object" : "final `acceptance-report` JSON fields"}. Markdown sections in the visible answer do not satisfy required evidence by themselves. If the previous visible output already included the evidence, copy or summarize it into the matching JSON field.`, "Evidence field mapping:", ...formatEvidenceReportFieldMapping(evidence));
|
|
280
|
-
}
|
|
281
|
-
if (input.acceptance.verify.length > 0) {
|
|
282
|
-
lines.push("", "Runtime verification commands that must pass:", ...input.acceptance.verify.map((command) => `- ${command.id}: ${command.command}`));
|
|
283
|
-
}
|
|
284
|
-
if (input.acceptance.stopRules.length > 0) {
|
|
285
|
-
lines.push("", "Stop rules are hard constraints while deciding whether to continue, stop as blocked, or report success:", ...input.acceptance.stopRules.map((rule) => `- ${rule}`));
|
|
286
|
-
}
|
|
287
|
-
lines.push(...initialReviewEvidence(input.initialOutput, input.initialLedger, input.previousFailure), "", ...finalizationInstructions(input.nativeReport === true, input.outputSchema));
|
|
288
|
-
return lines.join("\n");
|
|
289
|
-
}
|
|
290
|
-
function createFinalizationTurn(input) {
|
|
291
|
-
const failureMessage = acceptanceFailureMessage(input.ledger);
|
|
292
|
-
return {
|
|
293
|
-
turn: input.turn,
|
|
294
|
-
prompt: input.prompt,
|
|
295
|
-
status: input.ledger.status,
|
|
296
|
-
rawOutput: input.rawOutput,
|
|
297
|
-
...(input.ledger.unconfirmedOutput !== undefined
|
|
298
|
-
? { unconfirmedOutput: input.ledger.unconfirmedOutput }
|
|
299
|
-
: {}),
|
|
300
|
-
...(input.ledger.childReport ? { report: input.ledger.childReport } : {}),
|
|
301
|
-
...(input.ledger.childReportParseError !== undefined &&
|
|
302
|
-
input.ledger.childReportParseError.length > 0
|
|
303
|
-
? { parseError: input.ledger.childReportParseError }
|
|
304
|
-
: {}),
|
|
305
|
-
runtimeChecks: input.ledger.runtimeChecks,
|
|
306
|
-
verifyRuns: input.ledger.verifyRuns,
|
|
307
|
-
...(failureMessage !== undefined && failureMessage.length > 0 ? { failureMessage } : {}),
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
export function createFinalizationProcessFailureTurn(input) {
|
|
311
|
-
return {
|
|
312
|
-
turn: input.turn,
|
|
313
|
-
prompt: input.prompt,
|
|
314
|
-
status: "rejected",
|
|
315
|
-
...(input.rawOutput !== undefined && input.rawOutput.length > 0
|
|
316
|
-
? { rawOutput: input.rawOutput }
|
|
317
|
-
: {}),
|
|
318
|
-
runtimeChecks: [{ id: "finalization-process", status: "failed", message: input.message }],
|
|
319
|
-
verifyRuns: [],
|
|
320
|
-
failureMessage: `Acceptance rejected: ${input.message}`,
|
|
321
|
-
};
|
|
322
|
-
}
|
|
323
|
-
function attachFinalizationToLedger(input) {
|
|
324
|
-
return {
|
|
325
|
-
...input.authoritativeLedger,
|
|
326
|
-
...(input.initialLedger.childReport
|
|
327
|
-
? { initialChildReport: input.initialLedger.childReport }
|
|
328
|
-
: {}),
|
|
329
|
-
...(input.initialLedger.childReportParseError !== undefined &&
|
|
330
|
-
input.initialLedger.childReportParseError.length > 0
|
|
331
|
-
? { initialChildReportParseError: input.initialLedger.childReportParseError }
|
|
332
|
-
: {}),
|
|
333
|
-
finalization: {
|
|
334
|
-
mode: "self-review-loop",
|
|
335
|
-
status: input.status,
|
|
336
|
-
maxTurns: input.maxTurns,
|
|
337
|
-
turns: input.turns,
|
|
338
|
-
},
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
export function buildFinalizationProcessFailureLedger(input) {
|
|
342
|
-
return attachFinalizationToLedger({
|
|
343
|
-
initialLedger: input.initialLedger,
|
|
344
|
-
authoritativeLedger: {
|
|
345
|
-
...input.initialLedger,
|
|
346
|
-
status: "rejected",
|
|
347
|
-
runtimeChecks: [
|
|
348
|
-
...input.initialLedger.runtimeChecks,
|
|
349
|
-
{ id: "finalization-process", status: "failed", message: input.message },
|
|
350
|
-
],
|
|
351
|
-
},
|
|
352
|
-
turns: input.turns,
|
|
353
|
-
status: "failed",
|
|
354
|
-
maxTurns: input.maxTurns,
|
|
355
|
-
});
|
|
356
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { acceptanceFailureMessage } from "./acceptance-evaluation.js";
|
|
2
|
-
import { isFailFastAbort } from "./parallel-utils.js";
|
|
3
|
-
function cancellationOutcome(input) {
|
|
4
|
-
const { signal, result } = input;
|
|
5
|
-
if (signal?.aborted === true) {
|
|
6
|
-
const reason = signal.reason;
|
|
7
|
-
if (reason instanceof Error && reason.name === "TimeoutError") {
|
|
8
|
-
return {
|
|
9
|
-
...result,
|
|
10
|
-
exitCode: 124,
|
|
11
|
-
timedOut: true,
|
|
12
|
-
interrupted: false,
|
|
13
|
-
error: reason.message.length > 0 ? reason.message : "Subagent timed out.",
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
return { ...result, exitCode: 1, interrupted: false, error: "Subagent cancelled." };
|
|
17
|
-
}
|
|
18
|
-
if (isFailFastAbort(input.interruptSignal)) {
|
|
19
|
-
return { ...result, exitCode: -1, interrupted: false, error: "Interrupted due to fail-fast" };
|
|
20
|
-
}
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
function executionStopOutcome(input) {
|
|
24
|
-
const { result } = input;
|
|
25
|
-
if (result.timedOut === true || result.resourceLimitExceeded) {
|
|
26
|
-
return {
|
|
27
|
-
...result,
|
|
28
|
-
exitCode: result.timedOut === true ? 124 : 1,
|
|
29
|
-
interrupted: result.interrupted === undefined ? undefined : false,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
if (input.interruptSignal?.aborted === true || result.interrupted === true) {
|
|
33
|
-
return { ...result, exitCode: 0, interrupted: true, error: undefined };
|
|
34
|
-
}
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
function configuredAcceptanceFailure(acceptance) {
|
|
38
|
-
return acceptance?.explicit === true ? acceptanceFailureMessage(acceptance) : undefined;
|
|
39
|
-
}
|
|
40
|
-
/** Cancellation and resource limits outrank interruption; acceptance only rejects successful execution. */
|
|
41
|
-
export function resolveExecutionOutcome(input) {
|
|
42
|
-
const stopped = cancellationOutcome(input) ?? executionStopOutcome(input);
|
|
43
|
-
if (stopped) {
|
|
44
|
-
return stopped;
|
|
45
|
-
}
|
|
46
|
-
const { result } = input;
|
|
47
|
-
const failure = configuredAcceptanceFailure(input.acceptance);
|
|
48
|
-
if (failure !== undefined && failure.length > 0 && result.exitCode === 0) {
|
|
49
|
-
const error = (result.error ?? "").length > 0 ? `${result.error ?? ""}\n${failure}` : failure;
|
|
50
|
-
return { ...result, exitCode: 1, error };
|
|
51
|
-
}
|
|
52
|
-
return result;
|
|
53
|
-
}
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
import { isRecord, isUnknownArray, errorMessage } from "../../shared/unknown.js";
|
|
2
|
-
// Open finding objects are intentional: native strict conversion must fall back,
|
|
3
|
-
// rather than discarding caller-defined review evidence.
|
|
4
|
-
export const ACCEPTANCE_REPORT_SCHEMA = {
|
|
5
|
-
type: "object",
|
|
6
|
-
properties: {
|
|
7
|
-
criteriaSatisfied: {
|
|
8
|
-
type: "array",
|
|
9
|
-
items: {
|
|
10
|
-
type: "object",
|
|
11
|
-
properties: {
|
|
12
|
-
id: { type: "string" },
|
|
13
|
-
status: {
|
|
14
|
-
type: "string",
|
|
15
|
-
enum: ["satisfied", "not-satisfied", "not-applicable", "blocked"],
|
|
16
|
-
},
|
|
17
|
-
evidence: { type: "string", pattern: "\\S" },
|
|
18
|
-
humanAction: { type: "string" },
|
|
19
|
-
},
|
|
20
|
-
required: ["status", "evidence"],
|
|
21
|
-
if: { properties: { status: { const: "blocked" } } },
|
|
22
|
-
// JSON Schema's conditional vocabulary is noncallable data, not a Promise thenable.
|
|
23
|
-
// oxlint-disable-next-line unicorn/no-thenable
|
|
24
|
-
then: { required: ["humanAction"], properties: { humanAction: { pattern: "\\S" } } },
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
changedFiles: { type: "array", items: { type: "string" } },
|
|
28
|
-
testsAddedOrUpdated: { type: "array", items: { type: "string" } },
|
|
29
|
-
commandsRun: {
|
|
30
|
-
type: "array",
|
|
31
|
-
items: {
|
|
32
|
-
type: "object",
|
|
33
|
-
properties: {
|
|
34
|
-
command: { type: "string" },
|
|
35
|
-
result: { type: "string", enum: ["passed", "failed", "not-run"] },
|
|
36
|
-
summary: { type: "string" },
|
|
37
|
-
},
|
|
38
|
-
required: ["command", "result", "summary"],
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
validationOutput: { type: "array", items: { type: "string" } },
|
|
42
|
-
residualRisks: { type: "array", items: { type: "string" } },
|
|
43
|
-
noStagedFiles: { type: "boolean" },
|
|
44
|
-
diffSummary: { type: "string" },
|
|
45
|
-
reviewFindings: {
|
|
46
|
-
type: "array",
|
|
47
|
-
items: {
|
|
48
|
-
anyOf: [
|
|
49
|
-
{ type: "string" },
|
|
50
|
-
{ type: "object", minProperties: 1, additionalProperties: true },
|
|
51
|
-
],
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
manualNotes: { type: "string" },
|
|
55
|
-
notes: { type: "string" },
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
export function formatAcceptanceReportExample(nativeReport = false) {
|
|
59
|
-
const report = {
|
|
60
|
-
criteriaSatisfied: [
|
|
61
|
-
{ id: "criterion-1", status: "satisfied", evidence: "specific proof from the final state" },
|
|
62
|
-
],
|
|
63
|
-
changedFiles: [],
|
|
64
|
-
testsAddedOrUpdated: [],
|
|
65
|
-
commandsRun: [{ command: "command", result: "passed", summary: "short result" }],
|
|
66
|
-
validationOutput: [],
|
|
67
|
-
residualRisks: [],
|
|
68
|
-
noStagedFiles: true,
|
|
69
|
-
diffSummary: "concise summary of changed behavior and important files",
|
|
70
|
-
reviewFindings: [],
|
|
71
|
-
manualNotes: "manual notes or external evidence, if any",
|
|
72
|
-
notes: "self-review summary and remaining work",
|
|
73
|
-
};
|
|
74
|
-
return `\`\`\`${nativeReport ? "json" : "acceptance-report"}\n${JSON.stringify(nativeReport ? { value: { answer: "Complete standalone final answer with all requested handoff details", report } } : report, null, 2)}\n\`\`\``;
|
|
75
|
-
}
|
|
76
|
-
export function parseAcceptanceReport(output) {
|
|
77
|
-
const fenced = [...output.matchAll(/```acceptance-report\s*\n([\s\S]*?)```/gi)]
|
|
78
|
-
.map((match) => match[1]?.trim())
|
|
79
|
-
.filter((value) => typeof value === "string" && value.length > 0);
|
|
80
|
-
const parseErrors = [];
|
|
81
|
-
for (const body of fenced) {
|
|
82
|
-
try {
|
|
83
|
-
const parsed = JSON.parse(body);
|
|
84
|
-
const report = parsed !== null && typeof parsed === "object" && "acceptance" in parsed
|
|
85
|
-
? parsed.acceptance
|
|
86
|
-
: parsed;
|
|
87
|
-
const shapeError = validateAcceptanceReportShape(report);
|
|
88
|
-
if (isAcceptanceReport(report)) {
|
|
89
|
-
return { report };
|
|
90
|
-
}
|
|
91
|
-
parseErrors.push(`acceptance-report block is invalid: ${shapeError ?? "unrecognized report"}`);
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
parseErrors.push(errorMessage(error));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (parseErrors.length > 0) {
|
|
98
|
-
return { error: `Failed to parse acceptance-report: ${parseErrors.join("; ")}` };
|
|
99
|
-
}
|
|
100
|
-
return { error: "Structured acceptance report not found." };
|
|
101
|
-
}
|
|
102
|
-
export function stripAcceptanceReport(output) {
|
|
103
|
-
return output.replace(/\n?```acceptance-report\s*\n[\s\S]*?```\s*$/i, "").trimEnd();
|
|
104
|
-
}
|
|
105
|
-
function isStringArray(value) {
|
|
106
|
-
return isUnknownArray(value) && value.every((item) => typeof item === "string");
|
|
107
|
-
}
|
|
108
|
-
function isCriterionReport(value) {
|
|
109
|
-
if (!isRecord(value)) {
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
const criterion = value;
|
|
113
|
-
if (criterion.id !== undefined && typeof criterion.id !== "string") {
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
if (typeof criterion.status !== "string" ||
|
|
117
|
-
!["satisfied", "not-satisfied", "not-applicable", "blocked"].includes(criterion.status)) {
|
|
118
|
-
return false;
|
|
119
|
-
}
|
|
120
|
-
if (criterion.status === "blocked" &&
|
|
121
|
-
(typeof criterion.humanAction !== "string" || criterion.humanAction.trim().length === 0)) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
return typeof criterion.evidence === "string" && criterion.evidence.trim().length > 0;
|
|
125
|
-
}
|
|
126
|
-
function isCommandReport(value) {
|
|
127
|
-
if (!isRecord(value)) {
|
|
128
|
-
return false;
|
|
129
|
-
}
|
|
130
|
-
const command = value;
|
|
131
|
-
return (typeof command.command === "string" &&
|
|
132
|
-
(command.result === "passed" || command.result === "failed" || command.result === "not-run") &&
|
|
133
|
-
typeof command.summary === "string");
|
|
134
|
-
}
|
|
135
|
-
function isReviewFinding(value) {
|
|
136
|
-
if (typeof value === "string") {
|
|
137
|
-
return true;
|
|
138
|
-
}
|
|
139
|
-
if (!isRecord(value)) {
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
const values = Object.values(value);
|
|
143
|
-
return values.some((item) => typeof item === "string" && item.trim().length > 0);
|
|
144
|
-
}
|
|
145
|
-
export function isAcceptanceReport(value) {
|
|
146
|
-
return validateAcceptanceReportShape(value) === undefined;
|
|
147
|
-
}
|
|
148
|
-
function everyArrayItem(value, valid) {
|
|
149
|
-
return isUnknownArray(value) && value.every(valid);
|
|
150
|
-
}
|
|
151
|
-
const REPORT_FIELDS = [
|
|
152
|
-
{
|
|
153
|
-
key: "criteriaSatisfied",
|
|
154
|
-
valid: (value) => everyArrayItem(value, isCriterionReport),
|
|
155
|
-
error: "criteriaSatisfied must be an array of {id?, status, evidence} objects",
|
|
156
|
-
},
|
|
157
|
-
{ key: "changedFiles", valid: isStringArray, error: "changedFiles must be an array of strings" },
|
|
158
|
-
{
|
|
159
|
-
key: "testsAddedOrUpdated",
|
|
160
|
-
valid: isStringArray,
|
|
161
|
-
error: "testsAddedOrUpdated must be an array of strings",
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
key: "commandsRun",
|
|
165
|
-
valid: (value) => everyArrayItem(value, isCommandReport),
|
|
166
|
-
error: "commandsRun must be an array of {command, result, summary} objects with result passed, failed, or not-run",
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
key: "validationOutput",
|
|
170
|
-
valid: isStringArray,
|
|
171
|
-
error: "validationOutput must be an array of strings",
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
key: "residualRisks",
|
|
175
|
-
valid: isStringArray,
|
|
176
|
-
error: "residualRisks must be an array of strings",
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
key: "noStagedFiles",
|
|
180
|
-
valid: (value) => typeof value === "boolean",
|
|
181
|
-
error: "noStagedFiles must be a boolean",
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
key: "diffSummary",
|
|
185
|
-
valid: (value) => typeof value === "string",
|
|
186
|
-
error: "diffSummary must be a string",
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
key: "reviewFindings",
|
|
190
|
-
valid: (value) => everyArrayItem(value, isReviewFinding),
|
|
191
|
-
error: "reviewFindings must be an array of strings or non-empty objects with at least one string value",
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
key: "manualNotes",
|
|
195
|
-
valid: (value) => typeof value === "string",
|
|
196
|
-
error: "manualNotes must be a string",
|
|
197
|
-
},
|
|
198
|
-
{ key: "notes", valid: (value) => typeof value === "string", error: "notes must be a string" },
|
|
199
|
-
];
|
|
200
|
-
export function validateAcceptanceReportShape(value) {
|
|
201
|
-
if (!isRecord(value)) {
|
|
202
|
-
return "acceptance report must be a JSON object";
|
|
203
|
-
}
|
|
204
|
-
for (const field of REPORT_FIELDS) {
|
|
205
|
-
const entry = value[field.key];
|
|
206
|
-
if (entry !== undefined && !field.valid(entry)) {
|
|
207
|
-
return field.error;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
const hasReportField = REPORT_FIELDS.some((field) => field.key !== "notes" && value[field.key] !== undefined);
|
|
211
|
-
return hasReportField ? undefined : "acceptance report must include at least one report field";
|
|
212
|
-
}
|