@fitchmultz/pi-subagents 0.44.7 → 0.45.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 +258 -7
- package/LICENSE +1 -0
- package/README.md +58 -1483
- package/agents/context-builder.md +19 -1
- package/agents/debugger.md +10 -3
- package/agents/delegate.md +1 -0
- package/agents/fixer.md +4 -1
- package/agents/oracle.md +13 -2
- package/agents/planner.md +14 -3
- package/agents/researcher.md +11 -2
- package/agents/reviewer-claude.md +11 -2
- package/agents/reviewer-gpt.md +12 -2
- package/agents/reviewer-ponytail.md +11 -1
- package/agents/reviewer-security.md +13 -2
- package/agents/reviewer.md +12 -3
- package/agents/scout.md +12 -1
- package/agents/ui-designer.md +10 -3
- package/agents/watcher.md +1 -0
- package/agents/worker.md +8 -2
- package/agents/writer.md +6 -3
- package/dist/agents/agent-defaults.js +9 -0
- package/dist/agents/agent-definition.js +196 -0
- package/dist/agents/agent-management.js +64 -905
- package/dist/agents/agent-scope.js +4 -2
- package/dist/agents/agent-selection.js +10 -5
- package/dist/agents/agent-serializer.js +55 -67
- package/dist/agents/agents.js +75 -716
- package/dist/agents/builtin-overrides.js +218 -0
- package/dist/agents/chain-serializer.js +3 -367
- package/dist/agents/config-values.js +52 -0
- package/dist/agents/discovery-paths.js +91 -0
- package/dist/agents/frontmatter.js +15 -5
- package/dist/agents/identity.js +25 -8
- package/dist/agents/json-chain.js +254 -0
- package/dist/agents/management-config.js +332 -0
- package/dist/agents/management-format.js +231 -0
- package/dist/agents/management-persistence.js +287 -0
- package/dist/agents/management-targets.js +136 -0
- package/dist/agents/management-warnings.js +81 -0
- package/dist/agents/markdown-chain.js +210 -0
- package/dist/agents/package-agents.js +154 -0
- package/dist/agents/skill-files.js +157 -0
- package/dist/agents/skill-search-paths.js +246 -0
- package/dist/agents/skill-types.js +1 -0
- package/dist/agents/skills.js +54 -499
- package/dist/extension/acceptance-schema.js +55 -0
- package/dist/extension/build-info.js +1 -1
- package/dist/extension/chain-schema.js +196 -0
- package/dist/extension/child-runtime.js +237 -0
- package/dist/extension/compact-tools.js +122 -51
- package/dist/extension/config-schema.js +29 -0
- package/dist/extension/config.js +27 -11
- package/dist/extension/control-notice-schema.js +37 -0
- package/dist/extension/control-notices.js +13 -6
- package/dist/extension/delegation-bridges.js +43 -0
- package/dist/extension/doctor.js +48 -25
- package/dist/extension/everyday-schemas.js +207 -0
- package/dist/extension/fanout-child.js +18 -319
- package/dist/extension/index.js +8 -563
- package/dist/extension/message-renderers.js +225 -0
- package/dist/extension/nested-control-inbox.js +154 -0
- package/dist/extension/parent-runtime.js +339 -0
- package/dist/extension/primary-tool.js +69 -0
- package/dist/extension/result-snapshot.js +22 -0
- package/dist/extension/runtime-reload.js +62 -0
- package/dist/extension/runtime-storage.js +43 -0
- package/dist/extension/schema-overrides.js +75 -0
- package/dist/extension/schemas.js +265 -336
- package/dist/extension/tool-input.js +27 -12
- package/dist/extension/tool-result.js +19 -4
- package/dist/history/answer-texts.js +57 -0
- package/dist/history/canonical-result.js +76 -43
- package/dist/history/canonical-selection.js +40 -0
- package/dist/history/database-generation.js +82 -0
- package/dist/history/database.js +57 -33
- package/dist/history/entry-ingestion.js +61 -0
- package/dist/history/index.js +242 -97
- package/dist/history/ingest.js +168 -331
- package/dist/history/output-digests.js +40 -0
- package/dist/history/preview.js +210 -0
- package/dist/history/prune.js +33 -0
- package/dist/history/queries.js +60 -349
- package/dist/history/query-scope.js +190 -0
- package/dist/history/rows.js +77 -0
- package/dist/history/run-projection.js +137 -0
- package/dist/history/run-queries.js +153 -0
- package/dist/history/schema.js +31 -0
- package/dist/history/search-queries.js +163 -0
- package/dist/history/selected-record.js +108 -0
- package/dist/history/source-file.js +45 -0
- package/dist/history/source-watches.js +141 -0
- package/dist/history/store.js +164 -153
- package/dist/history/text-chunks.js +169 -0
- package/dist/history/text.js +35 -0
- package/dist/history/transcript-queries.js +177 -0
- package/dist/history/types.js +5 -1
- package/dist/history/values.js +36 -0
- package/dist/history/wire-inputs.js +122 -0
- package/dist/history/wire-models.js +38 -0
- package/dist/history/worker-runtime.js +441 -0
- package/dist/history/worker.js +66 -462
- package/dist/intercom/intercom-bridge.js +48 -20
- package/dist/intercom/live-intercom.js +80 -23
- package/dist/intercom/nested-result-tree.js +163 -0
- package/dist/intercom/result-delivery.js +40 -0
- package/dist/intercom/result-intercom.js +178 -261
- package/dist/pi-intercom/agent-dir.js +7 -3
- package/dist/pi-intercom/async.js +27 -0
- package/dist/pi-intercom/bridge-ask.js +57 -0
- package/dist/pi-intercom/bridge-config.js +79 -0
- package/dist/pi-intercom/bridge-http.js +86 -0
- package/dist/pi-intercom/bridge-protocol.js +106 -0
- package/dist/pi-intercom/bridge-routes.js +64 -0
- package/dist/pi-intercom/bridge-session.js +416 -0
- package/dist/pi-intercom/bridge.js +182 -603
- package/dist/pi-intercom/broker/broker.js +236 -244
- package/dist/pi-intercom/broker/client.js +189 -304
- package/dist/pi-intercom/broker/connection.js +165 -0
- package/dist/pi-intercom/broker/framing.js +5 -3
- package/dist/pi-intercom/broker/paths.js +4 -1
- package/dist/pi-intercom/broker/pid.js +53 -25
- package/dist/pi-intercom/broker/snapshot-reader.js +78 -0
- package/dist/pi-intercom/broker/snapshots.js +188 -0
- package/dist/pi-intercom/broker/spawn.js +36 -25
- package/dist/pi-intercom/config.js +85 -71
- package/dist/pi-intercom/connection.js +297 -0
- package/dist/pi-intercom/identity.js +58 -0
- package/dist/pi-intercom/inbound-delivery.js +356 -0
- package/dist/pi-intercom/inbound-journal.js +303 -0
- package/dist/pi-intercom/inbound-record.js +113 -0
- package/dist/pi-intercom/inbound.js +179 -0
- package/dist/pi-intercom/index.js +79 -2933
- package/dist/pi-intercom/inspection.js +62 -0
- package/dist/pi-intercom/interview.js +236 -0
- package/dist/pi-intercom/lifecycle.js +168 -0
- package/dist/pi-intercom/message-format.js +69 -0
- package/dist/pi-intercom/outbound.js +304 -0
- package/dist/pi-intercom/peer-awareness.js +66 -0
- package/dist/pi-intercom/reply-tracker.js +62 -43
- package/dist/pi-intercom/reply-wait.js +201 -0
- package/dist/pi-intercom/runtime-types.js +3 -0
- package/dist/pi-intercom/session-events.js +180 -0
- package/dist/pi-intercom/session-targets.js +42 -34
- package/dist/pi-intercom/subagent-events.js +238 -0
- package/dist/pi-intercom/subagent-live-events.js +129 -86
- package/dist/pi-intercom/supervisor.js +282 -0
- package/dist/pi-intercom/tool-arguments.js +74 -0
- package/dist/pi-intercom/tool-registration.js +95 -0
- package/dist/pi-intercom/tool-results.js +38 -0
- package/dist/pi-intercom/tool-schemas.js +82 -0
- package/dist/pi-intercom/tools.js +51 -0
- package/dist/pi-intercom/topic-actions.js +177 -0
- package/dist/pi-intercom/topics.js +177 -92
- package/dist/pi-intercom/transport.js +1 -0
- package/dist/pi-intercom/types.js +151 -114
- package/dist/pi-intercom/ui/compose-paste.js +93 -0
- package/dist/pi-intercom/ui/compose.js +121 -143
- package/dist/pi-intercom/ui/inline-message.js +59 -59
- package/dist/pi-intercom/ui/message-renderers.js +147 -0
- package/dist/pi-intercom/ui/overlay.js +181 -0
- package/dist/pi-intercom/ui/session-format.js +124 -0
- package/dist/pi-intercom/ui/session-list.js +76 -43
- package/dist/pi-intercom/ui/tool-renderers.js +110 -0
- package/dist/pi-intercom/ui/topic-view.js +88 -0
- package/dist/pi-intercom/validation.js +59 -0
- package/dist/runs/background/async-chain-plan.js +265 -0
- package/dist/runs/background/async-control.js +134 -58
- package/dist/runs/background/async-execution.js +136 -633
- package/dist/runs/background/async-job-admission.js +40 -0
- package/dist/runs/background/async-job-projection.js +169 -0
- package/dist/runs/background/async-job-tracker.js +297 -327
- package/dist/runs/background/async-launch.js +216 -0
- package/dist/runs/background/async-plan.js +116 -0
- package/dist/runs/background/async-result-file.js +47 -23
- package/dist/runs/background/async-resume.js +195 -253
- package/dist/runs/background/async-run-discovery.js +213 -0
- package/dist/runs/background/async-run-location.js +135 -0
- package/dist/runs/background/async-run-record.js +1 -0
- package/dist/runs/background/async-run-repair.js +223 -0
- package/dist/runs/background/async-run-summary.js +1 -0
- package/dist/runs/background/async-single-plan.js +105 -0
- package/dist/runs/background/async-status-projection.js +155 -0
- package/dist/runs/background/async-status-render.js +117 -0
- package/dist/runs/background/async-status-validation.js +181 -0
- package/dist/runs/background/async-status.js +3 -442
- package/dist/runs/background/async-value.js +21 -0
- package/dist/runs/background/completion-dedupe.js +36 -12
- package/dist/runs/background/completion-delivery.js +211 -205
- package/dist/runs/background/completion-receipts.js +237 -0
- package/dist/runs/background/legacy-status-acceptance.js +34 -0
- package/dist/runs/background/notify.js +96 -48
- package/dist/runs/background/parallel-groups.js +36 -19
- package/dist/runs/background/result-payload.js +178 -0
- package/dist/runs/background/result-watcher.js +348 -339
- package/dist/runs/background/run-id-resolver.js +53 -33
- package/dist/runs/background/run-schemas.js +189 -0
- package/dist/runs/background/run-status-contracts.js +14 -0
- package/dist/runs/background/run-status-render.js +270 -0
- package/dist/runs/background/run-status.js +231 -339
- package/dist/runs/background/runner-attempt-output.js +155 -0
- package/dist/runs/background/runner-attempt.js +263 -0
- package/dist/runs/background/runner-child-executor.js +166 -0
- package/dist/runs/background/runner-child-observer.js +192 -0
- package/dist/runs/background/runner-completion-summary.js +71 -0
- package/dist/runs/background/runner-completion.js +211 -0
- package/dist/runs/background/runner-config.js +1 -0
- package/dist/runs/background/runner-contract.js +1 -0
- package/dist/runs/background/runner-dynamic.js +121 -0
- package/dist/runs/background/runner-finalization.js +149 -0
- package/dist/runs/background/runner-graph.js +68 -0
- package/dist/runs/background/runner-initial-status.js +60 -0
- package/dist/runs/background/runner-lifecycle.js +142 -0
- package/dist/runs/background/runner-monitor.js +309 -0
- package/dist/runs/background/runner-parallel.js +204 -0
- package/dist/runs/background/runner-prepare-step.js +86 -0
- package/dist/runs/background/runner-reporting.js +153 -0
- package/dist/runs/background/runner-status.js +148 -0
- package/dist/runs/background/runner-step-output.js +92 -0
- package/dist/runs/background/runner-step-record.js +45 -0
- package/dist/runs/background/runner-step.js +112 -0
- package/dist/runs/background/runner-streaming.js +173 -0
- package/dist/runs/background/runner-workflow.js +213 -0
- package/dist/runs/background/stale-run-reconciler.js +155 -292
- package/dist/runs/background/subagent-runner-launcher.js +33 -13
- package/dist/runs/background/subagent-runner.js +51 -1842
- package/dist/runs/background/top-level-async.js +2 -1
- package/dist/runs/foreground/chain-clarify.js +293 -1017
- package/dist/runs/foreground/clarification-draft.js +87 -0
- package/dist/runs/foreground/clarify-contracts.js +1 -0
- package/dist/runs/foreground/clarify-invocation.js +129 -38
- package/dist/runs/foreground/clarify-text-editor.js +210 -0
- package/dist/runs/foreground/clarify-view.js +167 -0
- package/dist/runs/foreground/execution-input.js +226 -353
- package/dist/runs/foreground/execution-routing.js +33 -0
- package/dist/runs/foreground/execution-timeout.js +81 -0
- package/dist/runs/foreground/foreground-control.js +222 -763
- package/dist/runs/foreground/foreground-memory.js +99 -0
- package/dist/runs/foreground/invocation-context.js +55 -0
- package/dist/runs/foreground/invocation-execution.js +331 -0
- package/dist/runs/foreground/invocation-expansion.js +48 -0
- package/dist/runs/foreground/management-actions.js +295 -0
- package/dist/runs/foreground/nested-control.js +179 -0
- package/dist/runs/foreground/question-continuation.js +78 -0
- package/dist/runs/foreground/question-control.js +155 -50
- package/dist/runs/foreground/resume-target.js +221 -0
- package/dist/runs/foreground/revival-launch-policy.js +58 -0
- package/dist/runs/foreground/run-async-path.js +190 -178
- package/dist/runs/foreground/run-interrupt.js +164 -0
- package/dist/runs/foreground/run-nudge.js +278 -0
- package/dist/runs/foreground/saved-revival.js +251 -0
- package/dist/runs/foreground/subagent-executor.js +135 -424
- package/dist/runs/foreground/subagent-params.js +67 -30
- package/dist/runs/foreground/wait-observation.js +104 -0
- package/dist/runs/foreground/wait-registration.js +17 -0
- package/dist/runs/foreground/wait-run.js +283 -123
- package/dist/runs/shared/acceptance-contract.js +193 -99
- package/dist/runs/shared/acceptance-defaults.js +1 -0
- package/dist/runs/shared/acceptance-evaluation.js +201 -181
- package/dist/runs/shared/acceptance-finalization.js +256 -180
- package/dist/runs/shared/acceptance-outcome.js +53 -0
- package/dist/runs/shared/acceptance-reports.js +137 -72
- package/dist/runs/shared/acceptance-submission.js +167 -0
- package/dist/runs/shared/acceptance-verification.js +100 -0
- package/dist/runs/shared/chain-outputs.js +80 -52
- package/dist/runs/shared/child-attempt-types.js +1 -0
- package/dist/runs/shared/child-attempt.js +314 -667
- package/dist/runs/shared/child-boundaries.js +173 -0
- package/dist/runs/shared/child-context-filter.js +44 -0
- package/dist/runs/shared/child-event-observer.js +390 -0
- package/dist/runs/shared/child-execution-cwd.js +73 -43
- package/dist/runs/shared/child-execution-outcome.js +72 -0
- package/dist/runs/shared/child-invocation.js +54 -0
- package/dist/runs/shared/child-message-validation.js +215 -0
- package/dist/runs/shared/child-native-accounting.js +106 -0
- package/dist/runs/shared/child-native-observation.js +69 -0
- package/dist/runs/shared/child-observation-spool.js +164 -0
- package/dist/runs/shared/child-observations.js +157 -76
- package/dist/runs/shared/child-presence.js +3 -0
- package/dist/runs/shared/child-route-env.js +119 -0
- package/dist/runs/shared/child-stream-observer.js +221 -0
- package/dist/runs/shared/child-stream-projection.js +137 -0
- package/dist/runs/shared/child-structured-tool.js +27 -0
- package/dist/runs/shared/claude-code.js +121 -158
- package/dist/runs/shared/claude-model.js +42 -0
- package/dist/runs/shared/claude-session.js +83 -0
- package/dist/runs/shared/claude-types.js +1 -0
- package/dist/runs/shared/completion-guard.js +18 -18
- package/dist/runs/shared/control-event-policy.js +8 -0
- package/dist/runs/shared/control-notification-owner.js +13 -0
- package/dist/runs/shared/dynamic-fanout.js +188 -173
- package/dist/runs/shared/dynamic-item.js +102 -0
- package/dist/runs/shared/history-index.js +62 -36
- package/dist/runs/shared/legacy-async-recovery.js +114 -0
- package/dist/runs/shared/legacy-output-recovery.js +148 -0
- package/dist/runs/shared/mcp-config-schema.js +36 -0
- package/dist/runs/shared/mcp-direct-tool-allowlist.js +147 -116
- package/dist/runs/shared/model-fallback.js +97 -38
- package/dist/runs/shared/mutating-tool-guard.js +128 -88
- package/dist/runs/shared/native-finalization-types.js +1 -0
- package/dist/runs/shared/native-finalization.js +155 -76
- package/dist/runs/shared/native-usage.js +238 -98
- package/dist/runs/shared/nested-control-records.js +128 -0
- package/dist/runs/shared/nested-events.js +8 -700
- package/dist/runs/shared/nested-path.js +32 -28
- package/dist/runs/shared/nested-projection.js +155 -0
- package/dist/runs/shared/nested-protocol.js +18 -0
- package/dist/runs/shared/nested-registry.js +191 -0
- package/dist/runs/shared/nested-render.js +106 -58
- package/dist/runs/shared/nested-route.js +220 -0
- package/dist/runs/shared/nested-validation.js +216 -0
- package/dist/runs/shared/owned-child-evidence.js +125 -0
- package/dist/runs/shared/owned-run-list.js +146 -0
- package/dist/runs/shared/owned-run-observation.js +267 -0
- package/dist/runs/shared/owned-run-progress.js +109 -0
- package/dist/runs/shared/owned-run-read-state.js +1 -0
- package/dist/runs/shared/owned-run-results.js +202 -0
- package/dist/runs/shared/owned-run-status.js +180 -0
- package/dist/runs/shared/owned-run-view.js +51 -0
- package/dist/runs/shared/owned-workflow-details.js +17 -0
- package/dist/runs/shared/owner-output.js +43 -0
- package/dist/runs/shared/parallel-utils.js +36 -28
- package/dist/runs/shared/parent-receipts.js +90 -32
- package/dist/runs/shared/parent-usage.js +169 -57
- package/dist/runs/shared/pi-args.js +108 -201
- package/dist/runs/shared/pi-launch-input.js +1 -0
- package/dist/runs/shared/pi-session-launch.js +86 -0
- package/dist/runs/shared/pi-spawn.js +35 -21
- package/dist/runs/shared/run-history-queries.js +126 -35
- package/dist/runs/shared/run-history.js +101 -35
- package/dist/runs/shared/run-metadata-paths.js +14 -0
- package/dist/runs/shared/run-metadata.js +158 -0
- package/dist/runs/shared/run-persistence.js +131 -0
- package/dist/runs/shared/run-records.js +9 -679
- package/dist/runs/shared/run-restoration.js +338 -0
- package/dist/runs/shared/run-state-owner.js +26 -0
- package/dist/runs/shared/session-cwd-preload.js +27 -18
- package/dist/runs/shared/single-output.js +148 -70
- package/dist/runs/shared/stable-value.js +15 -0
- package/dist/runs/shared/streaming-text.js +23 -12
- package/dist/runs/shared/structured-output.js +25 -13
- package/dist/runs/shared/subagent-control.js +167 -100
- package/dist/runs/shared/subagent-prompt-runtime.js +27 -130
- package/dist/runs/shared/subagent-tool-loop-guard.js +81 -52
- package/dist/runs/shared/supervisor-question-state.js +145 -0
- package/dist/runs/shared/supervisor-questions.js +185 -254
- package/dist/runs/shared/workflow-graph.js +259 -167
- package/dist/runs/shared/workflow-policy.js +120 -48
- package/dist/runs/shared/worktree-contract.js +1 -0
- package/dist/runs/shared/worktree-hook.js +138 -0
- package/dist/runs/shared/worktree-location.js +47 -0
- package/dist/runs/shared/worktree-preservation.js +8 -0
- package/dist/runs/shared/worktree-process.js +107 -0
- package/dist/runs/shared/worktree.js +183 -322
- package/dist/shared/agent-context-policy.js +34 -44
- package/dist/shared/agent-dir.js +14 -0
- package/dist/shared/artifacts.js +30 -12
- package/dist/shared/atomic-json.js +4 -1
- package/dist/shared/chain-files.js +72 -0
- package/dist/shared/concurrency.js +18 -0
- package/dist/shared/content-preview.js +115 -0
- package/dist/shared/cooperative.js +5 -2
- package/dist/shared/execution-cwd.js +13 -5
- package/dist/shared/file-coalescer.js +2 -1
- package/dist/shared/fork-context.js +10 -12
- package/dist/shared/formatters.js +45 -19
- package/dist/shared/journal-frames.js +164 -0
- package/dist/shared/journal-projections.js +121 -0
- package/dist/shared/journal-reader.js +6 -407
- package/dist/shared/json-projection.js +191 -0
- package/dist/shared/lazy-tools.js +19 -8
- package/dist/shared/message-output.js +116 -0
- package/dist/shared/model-info.js +31 -14
- package/dist/shared/native-import.js +20 -0
- package/dist/shared/native-journal.js +140 -0
- package/dist/shared/native-session.js +5 -2
- package/dist/shared/native-tui.js +7 -2
- package/dist/shared/native-typebox.js +15 -3
- package/dist/shared/output-page.js +63 -0
- package/dist/shared/post-exit-stdio-guard.js +128 -88
- package/dist/shared/prompt-sections.js +2 -0
- package/dist/shared/session-entries.js +70 -35
- package/dist/shared/session-identity.js +5 -3
- package/dist/shared/settings.js +62 -192
- package/dist/shared/status-format.js +97 -37
- package/dist/shared/task-file-policy.js +24 -0
- package/dist/shared/temp-root.js +44 -15
- package/dist/shared/types/acceptance.js +1 -0
- package/dist/shared/types/async.js +1 -0
- package/dist/shared/types/config.js +1 -0
- package/dist/shared/types/details.js +1 -0
- package/dist/shared/types/history.js +1 -0
- package/dist/shared/types/inputs.js +1 -0
- package/dist/shared/types/intercom.js +1 -0
- package/dist/shared/types/launch.js +1 -0
- package/dist/shared/types/messages.js +1 -0
- package/dist/shared/types/nested.js +1 -0
- package/dist/shared/types/owned-runs.js +1 -0
- package/dist/shared/types/progress.js +1 -0
- package/dist/shared/types/questions.js +1 -0
- package/dist/shared/types/results.js +1 -0
- package/dist/shared/types/state.js +1 -0
- package/dist/shared/types/usage.js +1 -0
- package/dist/shared/types/workflow.js +1 -0
- package/dist/shared/types.js +75 -30
- package/dist/shared/unknown.js +52 -0
- package/dist/shared/utils.js +54 -260
- package/dist/slash/command-discovery.js +82 -0
- package/dist/slash/command-input.js +190 -0
- package/dist/slash/prompt-template-bridge.js +94 -270
- package/dist/slash/prompt-template-contract.js +77 -0
- package/dist/slash/prompt-template-results.js +125 -0
- package/dist/slash/request-protocol.js +68 -0
- package/dist/slash/result-delivery.js +237 -0
- package/dist/slash/saved-chain.js +78 -0
- package/dist/slash/slash-bridge.js +123 -89
- package/dist/slash/slash-commands.js +101 -572
- package/dist/slash/slash-live-state.js +68 -47
- package/dist/tui/action-hints.js +50 -22
- package/dist/tui/activity-lines.js +32 -0
- package/dist/tui/agent-browser.js +290 -0
- package/dist/tui/agent-controls.js +289 -0
- package/dist/tui/agent-conversation.js +444 -0
- package/dist/tui/agent-dock.js +171 -0
- package/dist/tui/agent-history.js +50 -183
- package/dist/tui/agent-model.js +62 -0
- package/dist/tui/agent-picker.js +262 -0
- package/dist/tui/agent-view.js +232 -1564
- package/dist/tui/compact-results.js +193 -0
- package/dist/tui/conversation-details.js +190 -0
- package/dist/tui/conversation-frame.js +135 -0
- package/dist/tui/conversation-history.js +201 -0
- package/dist/tui/conversation-menu.js +78 -0
- package/dist/tui/conversation-notices.js +79 -0
- package/dist/tui/conversation-selection.js +58 -0
- package/dist/tui/conversation-viewport.js +129 -0
- package/dist/tui/direction-message.js +27 -0
- package/dist/tui/display.js +282 -0
- package/dist/tui/editor-viewport.js +18 -0
- package/dist/tui/expanded-content.js +87 -0
- package/dist/tui/expanded-multi.js +170 -0
- package/dist/tui/expanded-single.js +65 -0
- package/dist/tui/history-cards.js +216 -0
- package/dist/tui/history-display.js +238 -0
- package/dist/tui/history-json.js +16 -0
- package/dist/tui/history-metadata.js +152 -0
- package/dist/tui/history-record.js +251 -0
- package/dist/tui/history-text.js +34 -0
- package/dist/tui/indexed-history.js +116 -0
- package/dist/tui/nested-widget.js +120 -0
- package/dist/tui/picker-page.js +59 -0
- package/dist/tui/render.js +58 -1501
- package/dist/tui/result-facts.js +64 -0
- package/dist/tui/task-observation.js +59 -0
- package/dist/tui/task-store.js +366 -0
- package/dist/tui/text-values.js +16 -0
- package/dist/tui/view-connections.js +47 -0
- package/dist/tui/view-model.js +94 -0
- package/dist/tui/view-persistence.js +51 -0
- package/dist/tui/view-ports.js +1 -0
- package/dist/tui/view-session.js +37 -0
- package/dist/tui/widget-details.js +144 -0
- package/dist/tui/widget-status.js +245 -0
- package/dist/tui/widget.js +145 -0
- package/dist/tui/workflow-labels.js +223 -0
- package/dist/tui/workflow-outcomes.js +124 -0
- package/docs/code-quality.md +38 -0
- package/docs/development.md +99 -0
- package/docs/intercom-bridge.md +22 -17
- package/docs/intercom.md +132 -106
- package/docs/performance.md +19 -17
- package/docs/reference.md +1472 -0
- package/generated/RunValidators.d.ts +28 -0
- package/generated/RunValidators.js +2 -0
- package/package.json +27 -6
- package/prompts/parallel-cleanup.md +3 -0
- package/prompts/parallel-context-build.md +3 -0
- package/prompts/parallel-handoff-plan.md +6 -0
- package/prompts/parallel-research.md +4 -0
- package/prompts/parallel-review.md +2 -0
- package/prompts/review-loop.md +2 -0
- package/scripts/build.mjs +129 -85
- package/scripts/check-compat.mjs +48 -11
- package/scripts/compat-host.mjs +35 -7
- package/scripts/generate-run-schemas.mjs +210 -0
- package/scripts/intercom-bridge-credentials.mjs +155 -28
- package/scripts/intercom-remote.mjs +175 -50
- package/scripts/local-install-smoke.mjs +47 -37
- package/scripts/native-package-smoke.mjs +135 -25
- package/scripts/package-smoke.mjs +360 -140
- package/scripts/prepare.mjs +54 -34
- package/scripts/real-pi-processes.mjs +261 -0
- package/scripts/real-pi-smoke.mjs +432 -351
- package/scripts/run-tests.mjs +29 -15
- package/skills/pi-intercom/SKILL.md +11 -11
- package/skills/pi-intercom/references/peer-sessions.md +7 -2
- package/skills/pi-subagents/SKILL.md +1 -1
- package/skills/pi-subagents/references/full-orchestration-guide.md +254 -112
- package/src/agents/agent-defaults.ts +13 -0
- package/src/agents/agent-definition.ts +253 -0
- package/src/agents/agent-management.ts +111 -808
- package/src/agents/agent-scope.ts +7 -3
- package/src/agents/agent-selection.ts +26 -16
- package/src/agents/agent-serializer.ts +84 -93
- package/src/agents/agents.ts +199 -906
- package/src/agents/builtin-overrides.ts +297 -0
- package/src/agents/chain-serializer.ts +3 -329
- package/src/agents/config-values.ts +57 -0
- package/src/agents/discovery-paths.ts +134 -0
- package/src/agents/frontmatter.ts +35 -17
- package/src/agents/identity.ts +49 -18
- package/src/agents/json-chain.ts +305 -0
- package/src/agents/management-config.ts +342 -0
- package/src/agents/management-format.ts +243 -0
- package/src/agents/management-persistence.ts +408 -0
- package/src/agents/management-targets.ts +260 -0
- package/src/agents/management-warnings.ts +115 -0
- package/src/agents/markdown-chain.ts +237 -0
- package/src/agents/package-agents.ts +231 -0
- package/src/agents/skill-files.ts +182 -0
- package/src/agents/skill-search-paths.ts +289 -0
- package/src/agents/skill-types.ts +31 -0
- package/src/agents/skills.ts +152 -610
- package/src/extension/acceptance-schema.ts +88 -0
- package/src/extension/chain-schema.ts +276 -0
- package/src/extension/child-runtime.ts +302 -0
- package/src/extension/compact-tools.ts +259 -102
- package/src/extension/config-schema.ts +59 -0
- package/src/extension/config.ts +39 -17
- package/src/extension/control-notice-schema.ts +55 -0
- package/src/extension/control-notices.ts +57 -33
- package/src/extension/delegation-bridges.ts +59 -0
- package/src/extension/doctor.ts +171 -135
- package/src/extension/everyday-schemas.ts +252 -0
- package/src/extension/fanout-child.ts +29 -308
- package/src/extension/index.ts +17 -642
- package/src/extension/message-renderers.ts +334 -0
- package/src/extension/nested-control-inbox.ts +196 -0
- package/src/extension/parent-runtime.ts +405 -0
- package/src/extension/primary-tool.ts +130 -0
- package/src/extension/result-snapshot.ts +35 -0
- package/src/extension/runtime-reload.ts +72 -0
- package/src/extension/runtime-storage.ts +49 -0
- package/src/extension/schema-overrides.ts +114 -0
- package/src/extension/schemas.ts +451 -418
- package/src/extension/tool-input.ts +40 -13
- package/src/extension/tool-result.ts +45 -14
- package/src/history/answer-texts.ts +74 -0
- package/src/history/canonical-result.ts +127 -51
- package/src/history/canonical-selection.ts +54 -0
- package/src/history/database-generation.ts +86 -0
- package/src/history/database.ts +86 -48
- package/src/history/entry-ingestion.ts +129 -0
- package/src/history/index.ts +426 -148
- package/src/history/ingest.ts +372 -342
- package/src/history/output-digests.ts +41 -0
- package/src/history/preview.ts +235 -0
- package/src/history/prune.ts +48 -0
- package/src/history/queries.ts +122 -256
- package/src/history/query-scope.ts +278 -0
- package/src/history/rows.ts +118 -0
- package/src/history/run-projection.ts +164 -0
- package/src/history/run-queries.ts +199 -0
- package/src/history/schema.ts +34 -0
- package/src/history/search-queries.ts +216 -0
- package/src/history/selected-record.ts +140 -0
- package/src/history/source-file.ts +51 -0
- package/src/history/source-watches.ts +156 -0
- package/src/history/store.ts +310 -197
- package/src/history/text-chunks.ts +181 -0
- package/src/history/text.ts +43 -0
- package/src/history/transcript-queries.ts +251 -0
- package/src/history/types.ts +27 -164
- package/src/history/values.ts +36 -0
- package/src/history/wire-inputs.ts +141 -0
- package/src/history/wire-models.ts +51 -0
- package/src/history/worker-runtime.ts +502 -0
- package/src/history/worker.ts +94 -336
- package/src/intercom/intercom-bridge.ts +136 -69
- package/src/intercom/live-intercom.ts +197 -92
- package/src/intercom/nested-result-tree.ts +213 -0
- package/src/intercom/result-delivery.ts +56 -0
- package/src/intercom/result-intercom.ts +364 -382
- package/src/pi-intercom/agent-dir.ts +9 -3
- package/src/pi-intercom/async.ts +33 -0
- package/src/pi-intercom/bridge-ask.ts +64 -0
- package/src/pi-intercom/bridge-config.ts +101 -0
- package/src/pi-intercom/bridge-http.ts +97 -0
- package/src/pi-intercom/bridge-protocol.ts +123 -0
- package/src/pi-intercom/bridge-routes.ts +90 -0
- package/src/pi-intercom/bridge-session.ts +506 -0
- package/src/pi-intercom/bridge.ts +258 -547
- package/src/pi-intercom/broker/broker.ts +326 -263
- package/src/pi-intercom/broker/client.ts +273 -354
- package/src/pi-intercom/broker/connection.ts +192 -0
- package/src/pi-intercom/broker/framing.ts +11 -6
- package/src/pi-intercom/broker/paths.ts +28 -25
- package/src/pi-intercom/broker/pid.ts +68 -24
- package/src/pi-intercom/broker/snapshot-reader.ts +91 -0
- package/src/pi-intercom/broker/snapshots.ts +241 -0
- package/src/pi-intercom/broker/spawn.ts +58 -34
- package/src/pi-intercom/config.ts +113 -108
- package/src/pi-intercom/connection.ts +346 -0
- package/src/pi-intercom/identity.ts +71 -0
- package/src/pi-intercom/inbound-delivery.ts +450 -0
- package/src/pi-intercom/inbound-journal.ts +350 -0
- package/src/pi-intercom/inbound-record.ts +141 -0
- package/src/pi-intercom/inbound.ts +237 -0
- package/src/pi-intercom/index.ts +86 -2923
- package/src/pi-intercom/inspection.ts +82 -0
- package/src/pi-intercom/interview.ts +295 -0
- package/src/pi-intercom/lifecycle.ts +183 -0
- package/src/pi-intercom/message-format.ts +77 -0
- package/src/pi-intercom/outbound.ts +418 -0
- package/src/pi-intercom/peer-awareness.ts +84 -0
- package/src/pi-intercom/reply-tracker.ts +121 -59
- package/src/pi-intercom/reply-wait.ts +247 -0
- package/src/pi-intercom/runtime-types.ts +97 -0
- package/src/pi-intercom/session-events.ts +247 -0
- package/src/pi-intercom/session-targets.ts +124 -72
- package/src/pi-intercom/subagent-events.ts +299 -0
- package/src/pi-intercom/subagent-live-events.ts +212 -109
- package/src/pi-intercom/supervisor.ts +362 -0
- package/src/pi-intercom/tool-arguments.ts +120 -0
- package/src/pi-intercom/tool-registration.ts +121 -0
- package/src/pi-intercom/tool-results.ts +54 -0
- package/src/pi-intercom/tool-schemas.ts +134 -0
- package/src/pi-intercom/tools.ts +80 -0
- package/src/pi-intercom/topic-actions.ts +243 -0
- package/src/pi-intercom/topics.ts +267 -121
- package/src/pi-intercom/transport.ts +14 -0
- package/src/pi-intercom/types.ts +288 -190
- package/src/pi-intercom/ui/compose-paste.ts +109 -0
- package/src/pi-intercom/ui/compose.ts +173 -157
- package/src/pi-intercom/ui/inline-message.ts +80 -62
- package/src/pi-intercom/ui/message-renderers.ts +182 -0
- package/src/pi-intercom/ui/overlay.ts +238 -0
- package/src/pi-intercom/ui/session-format.ts +146 -0
- package/src/pi-intercom/ui/session-list.ts +145 -62
- package/src/pi-intercom/ui/tool-renderers.ts +148 -0
- package/src/pi-intercom/ui/topic-view.ts +107 -0
- package/src/pi-intercom/validation.ts +69 -0
- package/src/runs/background/async-chain-plan.ts +451 -0
- package/src/runs/background/async-control.ts +201 -71
- package/src/runs/background/async-execution.ts +206 -829
- package/src/runs/background/async-job-admission.ts +54 -0
- package/src/runs/background/async-job-projection.ts +225 -0
- package/src/runs/background/async-job-tracker.ts +416 -360
- package/src/runs/background/async-launch.ts +319 -0
- package/src/runs/background/async-plan.ts +285 -0
- package/src/runs/background/async-result-file.ts +79 -37
- package/src/runs/background/async-resume.ts +338 -285
- package/src/runs/background/async-run-discovery.ts +270 -0
- package/src/runs/background/async-run-location.ts +194 -0
- package/src/runs/background/async-run-record.ts +14 -0
- package/src/runs/background/async-run-repair.ts +307 -0
- package/src/runs/background/async-run-summary.ts +71 -0
- package/src/runs/background/async-single-plan.ts +168 -0
- package/src/runs/background/async-status-projection.ts +188 -0
- package/src/runs/background/async-status-render.ts +164 -0
- package/src/runs/background/async-status-validation.ts +238 -0
- package/src/runs/background/async-status.ts +9 -481
- package/src/runs/background/async-value.ts +29 -0
- package/src/runs/background/completion-dedupe.ts +103 -54
- package/src/runs/background/completion-delivery.ts +313 -187
- package/src/runs/background/completion-receipts.ts +309 -0
- package/src/runs/background/legacy-status-acceptance.ts +38 -0
- package/src/runs/background/notify.ts +167 -106
- package/src/runs/background/parallel-groups.ts +95 -46
- package/src/runs/background/result-payload.ts +268 -0
- package/src/runs/background/result-watcher.ts +484 -387
- package/src/runs/background/run-id-resolver.ts +126 -57
- package/src/runs/background/run-schemas.ts +240 -0
- package/src/runs/background/run-status-contracts.ts +46 -0
- package/src/runs/background/run-status-render.ts +364 -0
- package/src/runs/background/run-status.ts +338 -356
- package/src/runs/background/runner-attempt-output.ts +281 -0
- package/src/runs/background/runner-attempt.ts +354 -0
- package/src/runs/background/runner-child-executor.ts +232 -0
- package/src/runs/background/runner-child-observer.ts +270 -0
- package/src/runs/background/runner-completion-summary.ts +106 -0
- package/src/runs/background/runner-completion.ts +274 -0
- package/src/runs/background/runner-config.ts +52 -0
- package/src/runs/background/runner-contract.ts +51 -0
- package/src/runs/background/runner-dynamic.ts +185 -0
- package/src/runs/background/runner-finalization.ts +203 -0
- package/src/runs/background/runner-graph.ts +91 -0
- package/src/runs/background/runner-initial-status.ts +72 -0
- package/src/runs/background/runner-lifecycle.ts +159 -0
- package/src/runs/background/runner-monitor.ts +399 -0
- package/src/runs/background/runner-parallel.ts +280 -0
- package/src/runs/background/runner-prepare-step.ts +128 -0
- package/src/runs/background/runner-reporting.ts +192 -0
- package/src/runs/background/runner-status.ts +220 -0
- package/src/runs/background/runner-step-output.ts +158 -0
- package/src/runs/background/runner-step-record.ts +76 -0
- package/src/runs/background/runner-step.ts +150 -0
- package/src/runs/background/runner-streaming.ts +220 -0
- package/src/runs/background/runner-workflow.ts +284 -0
- package/src/runs/background/stale-run-reconciler.ts +279 -336
- package/src/runs/background/subagent-runner-launcher.ts +67 -35
- package/src/runs/background/subagent-runner.ts +80 -2048
- package/src/runs/background/top-level-async.ts +9 -7
- package/src/runs/foreground/chain-clarify.ts +499 -1334
- package/src/runs/foreground/clarification-draft.ts +92 -0
- package/src/runs/foreground/clarify-contracts.ts +33 -0
- package/src/runs/foreground/clarify-invocation.ts +192 -65
- package/src/runs/foreground/clarify-text-editor.ts +229 -0
- package/src/runs/foreground/clarify-view.ts +222 -0
- package/src/runs/foreground/execution-input.ts +358 -424
- package/src/runs/foreground/execution-routing.ts +41 -0
- package/src/runs/foreground/execution-timeout.ts +92 -0
- package/src/runs/foreground/foreground-control.ts +333 -812
- package/src/runs/foreground/foreground-memory.ts +132 -0
- package/src/runs/foreground/invocation-context.ts +88 -0
- package/src/runs/foreground/invocation-execution.ts +465 -0
- package/src/runs/foreground/invocation-expansion.ts +58 -0
- package/src/runs/foreground/management-actions.ts +360 -0
- package/src/runs/foreground/nested-control.ts +248 -0
- package/src/runs/foreground/question-continuation.ts +112 -0
- package/src/runs/foreground/question-control.ts +297 -70
- package/src/runs/foreground/resume-target.ts +330 -0
- package/src/runs/foreground/revival-launch-policy.ts +112 -0
- package/src/runs/foreground/run-async-path.ts +307 -223
- package/src/runs/foreground/run-interrupt.ts +202 -0
- package/src/runs/foreground/run-nudge.ts +355 -0
- package/src/runs/foreground/saved-revival.ts +356 -0
- package/src/runs/foreground/subagent-executor.ts +195 -493
- package/src/runs/foreground/subagent-params.ts +314 -242
- package/src/runs/foreground/wait-observation.ts +160 -0
- package/src/runs/foreground/wait-registration.ts +18 -0
- package/src/runs/foreground/wait-run.ts +361 -119
- package/src/runs/shared/acceptance-contract.ts +410 -209
- package/src/runs/shared/acceptance-defaults.ts +1 -0
- package/src/runs/shared/acceptance-evaluation.ts +314 -240
- package/src/runs/shared/acceptance-finalization.ts +447 -305
- package/src/runs/shared/acceptance-outcome.ts +69 -0
- package/src/runs/shared/acceptance-reports.ts +220 -126
- package/src/runs/shared/acceptance-submission.ts +251 -0
- package/src/runs/shared/acceptance-verification.ts +118 -0
- package/src/runs/shared/acceptance.ts +25 -25
- package/src/runs/shared/chain-outputs.ts +190 -98
- package/src/runs/shared/child-attempt-types.ts +118 -0
- package/src/runs/shared/child-attempt.ts +372 -608
- package/src/runs/shared/child-boundaries.ts +217 -0
- package/src/runs/shared/child-context-filter.ts +53 -0
- package/src/runs/shared/child-event-observer.ts +496 -0
- package/src/runs/shared/child-execution-cwd.ts +139 -68
- package/src/runs/shared/child-execution-outcome.ts +103 -0
- package/src/runs/shared/child-invocation.ts +74 -0
- package/src/runs/shared/child-message-validation.ts +233 -0
- package/src/runs/shared/child-native-accounting.ts +154 -0
- package/src/runs/shared/child-native-observation.ts +79 -0
- package/src/runs/shared/child-observation-spool.ts +188 -0
- package/src/runs/shared/child-observations.ts +219 -89
- package/src/runs/shared/child-presence.ts +6 -0
- package/src/runs/shared/child-route-env.ts +142 -0
- package/src/runs/shared/child-stream-observer.ts +302 -0
- package/src/runs/shared/child-stream-projection.ts +160 -0
- package/src/runs/shared/child-structured-tool.ts +38 -0
- package/src/runs/shared/claude-code.ts +201 -228
- package/src/runs/shared/claude-model.ts +67 -0
- package/src/runs/shared/claude-session.ts +124 -0
- package/src/runs/shared/claude-types.ts +31 -0
- package/src/runs/shared/completion-guard.ts +35 -26
- package/src/runs/shared/control-event-policy.ts +15 -0
- package/src/runs/shared/control-notification-owner.ts +20 -0
- package/src/runs/shared/dynamic-fanout.ts +402 -238
- package/src/runs/shared/dynamic-item.ts +114 -0
- package/src/runs/shared/history-index.ts +112 -51
- package/src/runs/shared/legacy-async-recovery.ts +153 -0
- package/src/runs/shared/legacy-output-recovery.ts +214 -0
- package/src/runs/shared/mcp-config-schema.ts +46 -0
- package/src/runs/shared/mcp-direct-tool-allowlist.ts +396 -307
- package/src/runs/shared/model-fallback.ts +302 -180
- package/src/runs/shared/mutating-tool-guard.ts +259 -158
- package/src/runs/shared/native-finalization-types.ts +29 -0
- package/src/runs/shared/native-finalization.ts +233 -109
- package/src/runs/shared/native-usage.ts +379 -96
- package/src/runs/shared/nested-control-records.ts +178 -0
- package/src/runs/shared/nested-events.ts +45 -752
- package/src/runs/shared/nested-path.ts +47 -34
- package/src/runs/shared/nested-projection.ts +230 -0
- package/src/runs/shared/nested-protocol.ts +67 -0
- package/src/runs/shared/nested-registry.ts +273 -0
- package/src/runs/shared/nested-render.ts +198 -100
- package/src/runs/shared/nested-route.ts +292 -0
- package/src/runs/shared/nested-validation.ts +291 -0
- package/src/runs/shared/owned-child-evidence.ts +184 -0
- package/src/runs/shared/owned-run-list.ts +187 -0
- package/src/runs/shared/owned-run-observation.ts +368 -0
- package/src/runs/shared/owned-run-progress.ts +172 -0
- package/src/runs/shared/owned-run-read-state.ts +7 -0
- package/src/runs/shared/owned-run-results.ts +289 -0
- package/src/runs/shared/owned-run-status.ts +239 -0
- package/src/runs/shared/owned-run-view.ts +65 -0
- package/src/runs/shared/owned-workflow-details.ts +24 -0
- package/src/runs/shared/owner-output.ts +73 -0
- package/src/runs/shared/parallel-utils.ts +93 -129
- package/src/runs/shared/parent-receipts.ts +177 -50
- package/src/runs/shared/parent-usage.ts +314 -91
- package/src/runs/shared/pi-args.ts +241 -311
- package/src/runs/shared/pi-launch-input.ts +48 -0
- package/src/runs/shared/pi-session-launch.ts +94 -0
- package/src/runs/shared/pi-spawn.ts +57 -33
- package/src/runs/shared/run-history-queries.ts +189 -38
- package/src/runs/shared/run-history.ts +197 -76
- package/src/runs/shared/run-id-ambiguity.ts +7 -3
- package/src/runs/shared/run-metadata-paths.ts +17 -0
- package/src/runs/shared/run-metadata.ts +240 -0
- package/src/runs/shared/run-persistence.ts +181 -0
- package/src/runs/shared/run-records.ts +19 -607
- package/src/runs/shared/run-restoration.ts +455 -0
- package/src/runs/shared/run-state-owner.ts +31 -0
- package/src/runs/shared/session-cwd-preload.ts +39 -19
- package/src/runs/shared/single-output.ts +358 -205
- package/src/runs/shared/stable-value.ts +15 -0
- package/src/runs/shared/streaming-text.ts +39 -12
- package/src/runs/shared/structured-output.ts +76 -46
- package/src/runs/shared/subagent-control.ts +330 -197
- package/src/runs/shared/subagent-prompt-runtime.ts +92 -174
- package/src/runs/shared/subagent-tool-loop-guard.ts +118 -68
- package/src/runs/shared/supervisor-question-state.ts +221 -0
- package/src/runs/shared/supervisor-questions.ts +396 -401
- package/src/runs/shared/workflow-graph.ts +400 -198
- package/src/runs/shared/workflow-policy.ts +245 -110
- package/src/runs/shared/worktree-contract.ts +29 -0
- package/src/runs/shared/worktree-hook.ts +181 -0
- package/src/runs/shared/worktree-location.ts +61 -0
- package/src/runs/shared/worktree-preservation.ts +10 -0
- package/src/runs/shared/worktree-process.ts +132 -0
- package/src/runs/shared/worktree.ts +459 -587
- package/src/shared/agent-context-policy.ts +176 -145
- package/src/shared/agent-dir.ts +15 -0
- package/src/shared/artifacts.ts +99 -68
- package/src/shared/atomic-json.ts +14 -11
- package/src/shared/chain-files.ts +72 -0
- package/src/shared/concurrency.ts +27 -0
- package/src/shared/content-preview.ts +117 -0
- package/src/shared/cooperative.ts +17 -13
- package/src/shared/execution-cwd.ts +34 -9
- package/src/shared/file-coalescer.ts +24 -22
- package/src/shared/fork-context.ts +52 -48
- package/src/shared/formatters.ts +88 -47
- package/src/shared/journal-frames.ts +197 -0
- package/src/shared/journal-projections.ts +133 -0
- package/src/shared/journal-reader.ts +18 -333
- package/src/shared/json-projection.ts +224 -0
- package/src/shared/lazy-tools.ts +76 -27
- package/src/shared/message-output.ts +146 -0
- package/src/shared/model-info.ts +94 -58
- package/src/shared/native-import.ts +25 -0
- package/src/shared/native-journal.ts +172 -0
- package/src/shared/native-session.ts +8 -3
- package/src/shared/native-tui.ts +13 -3
- package/src/shared/native-typebox.ts +18 -3
- package/src/shared/output-page.ts +76 -0
- package/src/shared/post-exit-stdio-guard.ts +232 -172
- package/src/shared/prompt-sections.ts +13 -7
- package/src/shared/session-entries.ts +103 -44
- package/src/shared/session-identity.ts +17 -10
- package/src/shared/settings.ts +182 -367
- package/src/shared/status-format.ts +207 -98
- package/src/shared/stream-json.d.ts +10 -0
- package/src/shared/task-file-policy.ts +35 -0
- package/src/shared/temp-root.ts +122 -71
- package/src/shared/types/acceptance.ts +149 -0
- package/src/shared/types/async.ts +247 -0
- package/src/shared/types/config.ts +139 -0
- package/src/shared/types/details.ts +104 -0
- package/src/shared/types/history.ts +217 -0
- package/src/shared/types/inputs.ts +4 -0
- package/src/shared/types/intercom.ts +57 -0
- package/src/shared/types/launch.ts +39 -0
- package/src/shared/types/messages.ts +104 -0
- package/src/shared/types/nested.ts +153 -0
- package/src/shared/types/owned-runs.ts +148 -0
- package/src/shared/types/progress.ts +106 -0
- package/src/shared/types/questions.ts +103 -0
- package/src/shared/types/results.ts +119 -0
- package/src/shared/types/state.ts +56 -0
- package/src/shared/types/usage.ts +36 -0
- package/src/shared/types/workflow.ts +187 -0
- package/src/shared/types.ts +222 -1161
- package/src/shared/ui-mode.ts +1 -1
- package/src/shared/unknown.ts +59 -0
- package/src/shared/utils.ts +111 -305
- package/src/slash/command-discovery.ts +109 -0
- package/src/slash/command-input.ts +232 -0
- package/src/slash/prompt-template-bridge.ts +153 -400
- package/src/slash/prompt-template-contract.ts +152 -0
- package/src/slash/prompt-template-results.ts +189 -0
- package/src/slash/request-protocol.ts +87 -0
- package/src/slash/result-delivery.ts +312 -0
- package/src/slash/saved-chain.ts +115 -0
- package/src/slash/slash-bridge.ts +202 -156
- package/src/slash/slash-commands.ts +176 -598
- package/src/slash/slash-live-state.ts +287 -229
- package/src/tui/action-hints.ts +147 -61
- package/src/tui/activity-lines.ts +40 -0
- package/src/tui/agent-browser.ts +354 -0
- package/src/tui/agent-controls.ts +355 -0
- package/src/tui/agent-conversation.ts +514 -0
- package/src/tui/agent-dock.ts +250 -0
- package/src/tui/agent-history.ts +78 -203
- package/src/tui/agent-model.ts +78 -0
- package/src/tui/agent-picker.ts +325 -0
- package/src/tui/agent-view.ts +391 -1333
- package/src/tui/compact-results.ts +342 -0
- package/src/tui/conversation-details.ts +206 -0
- package/src/tui/conversation-frame.ts +184 -0
- package/src/tui/conversation-history.ts +246 -0
- package/src/tui/conversation-menu.ts +119 -0
- package/src/tui/conversation-notices.ts +116 -0
- package/src/tui/conversation-selection.ts +66 -0
- package/src/tui/conversation-viewport.ts +169 -0
- package/src/tui/direction-message.ts +35 -0
- package/src/tui/display.ts +409 -0
- package/src/tui/editor-viewport.ts +19 -0
- package/src/tui/expanded-content.ts +134 -0
- package/src/tui/expanded-multi.ts +264 -0
- package/src/tui/expanded-single.ts +92 -0
- package/src/tui/history-cards.ts +316 -0
- package/src/tui/history-display.ts +334 -0
- package/src/tui/history-json.ts +17 -0
- package/src/tui/history-metadata.ts +177 -0
- package/src/tui/history-record.ts +321 -0
- package/src/tui/history-text.ts +34 -0
- package/src/tui/indexed-history.ts +149 -0
- package/src/tui/nested-widget.ts +192 -0
- package/src/tui/picker-page.ts +80 -0
- package/src/tui/render.ts +100 -1546
- package/src/tui/result-facts.ts +99 -0
- package/src/tui/task-observation.ts +96 -0
- package/src/tui/task-store.ts +432 -0
- package/src/tui/text-values.ts +20 -0
- package/src/tui/view-connections.ts +64 -0
- package/src/tui/view-model.ts +181 -0
- package/src/tui/view-persistence.ts +57 -0
- package/src/tui/view-ports.ts +55 -0
- package/src/tui/view-session.ts +42 -0
- package/src/tui/widget-details.ts +220 -0
- package/src/tui/widget-status.ts +331 -0
- package/src/tui/widget.ts +208 -0
- package/src/tui/workflow-labels.ts +340 -0
- package/src/tui/workflow-outcomes.ts +150 -0
- package/tsconfig.build.json +11 -10
- package/tsconfig.json +30 -17
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import type { WritableDeep } from "type-fest";
|
|
2
|
+
import type { ResolvedAcceptanceConfig } from "./acceptance.ts";
|
|
3
|
+
import type { ReadonlyInput } from "./inputs.ts";
|
|
4
|
+
import type { SavedLaunchConfig } from "./launch.ts";
|
|
5
|
+
import type { ReadonlyAgentProgress, SubagentResultStatus, SubagentRunMode } from "./progress.ts";
|
|
6
|
+
import type { ArtifactPaths, ReadonlySingleResult } from "./results.ts";
|
|
7
|
+
|
|
8
|
+
export type ManagementRunState = "live" | "completed" | "paused" | "blocked" | "failed" | "unknown";
|
|
9
|
+
export type ManagementAction = "status" | "nudge" | "resume" | "interrupt" | "extend" | "review";
|
|
10
|
+
|
|
11
|
+
export interface ParentRunReview {
|
|
12
|
+
readonly decision: "accepted" | "needs_changes";
|
|
13
|
+
readonly message?: string;
|
|
14
|
+
readonly reviewedAt: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Persisted ownership record; mutation belongs to the live tracker, not readers of this snapshot. */
|
|
18
|
+
export interface OwnedRun {
|
|
19
|
+
readonly recoveryError?: string;
|
|
20
|
+
readonly runId: string;
|
|
21
|
+
readonly ownerSessionId: string;
|
|
22
|
+
readonly source: "foreground" | "async";
|
|
23
|
+
readonly mode: SubagentRunMode;
|
|
24
|
+
readonly cwd: string;
|
|
25
|
+
readonly task: string;
|
|
26
|
+
readonly startedAt: number;
|
|
27
|
+
readonly rootRunId: string;
|
|
28
|
+
readonly predecessorRunId?: string;
|
|
29
|
+
readonly predecessorIndex?: number;
|
|
30
|
+
readonly asyncDir?: string;
|
|
31
|
+
readonly pid?: number;
|
|
32
|
+
readonly children: readonly {
|
|
33
|
+
readonly agent: string;
|
|
34
|
+
readonly index: number;
|
|
35
|
+
readonly workflowNodeId?: string;
|
|
36
|
+
readonly task?: string;
|
|
37
|
+
readonly label?: string;
|
|
38
|
+
readonly sessionFile?: string;
|
|
39
|
+
}[];
|
|
40
|
+
readonly review?: ParentRunReview;
|
|
41
|
+
readonly completion?: {
|
|
42
|
+
readonly id: string;
|
|
43
|
+
readonly state: "pending" | "queued" | "dropped" | "journaled";
|
|
44
|
+
readonly channel?: "notification" | "intercom";
|
|
45
|
+
readonly queuedAt?: number;
|
|
46
|
+
readonly entryId?: string;
|
|
47
|
+
};
|
|
48
|
+
readonly accounting?: {
|
|
49
|
+
readonly state: "pending" | "complete" | "incomplete";
|
|
50
|
+
readonly error?: string;
|
|
51
|
+
};
|
|
52
|
+
readonly delivery?: {
|
|
53
|
+
readonly notifiedAt: number;
|
|
54
|
+
readonly intercomDelivered: boolean;
|
|
55
|
+
readonly completionId?: string;
|
|
56
|
+
readonly entryId?: string;
|
|
57
|
+
};
|
|
58
|
+
readonly legacy?: boolean;
|
|
59
|
+
readonly error?: string;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Mutable tracker ownership is deliberately separate from persisted run inputs. */
|
|
63
|
+
export type TrackedOwnedRun = WritableDeep<OwnedRun>;
|
|
64
|
+
|
|
65
|
+
export interface OwnedRunView extends OwnedRun {
|
|
66
|
+
readonly state: ManagementRunState;
|
|
67
|
+
readonly updatedAt: number;
|
|
68
|
+
readonly attention: readonly string[];
|
|
69
|
+
readonly children: readonly (OwnedRun["children"][number] & {
|
|
70
|
+
readonly state: ManagementRunState;
|
|
71
|
+
readonly result?: Omit<ReadonlySingleResult, "artifactPaths"> & {
|
|
72
|
+
readonly artifactPaths?: Partial<ArtifactPaths>;
|
|
73
|
+
};
|
|
74
|
+
readonly launch?: SavedLaunchConfig;
|
|
75
|
+
readonly configuration: "saved" | "legacy-partial";
|
|
76
|
+
readonly missingSession?: boolean;
|
|
77
|
+
readonly identityUnavailable?: boolean;
|
|
78
|
+
readonly modelSelection?: Pick<ReadonlyAgentProgress, "model" | "thinking" | "modelStartedAt">;
|
|
79
|
+
readonly activity?: Partial<
|
|
80
|
+
Pick<
|
|
81
|
+
ReadonlyAgentProgress,
|
|
82
|
+
| "status"
|
|
83
|
+
| "currentTool"
|
|
84
|
+
| "currentToolArgs"
|
|
85
|
+
| "currentPath"
|
|
86
|
+
| "recentOutput"
|
|
87
|
+
| "lastActivityAt"
|
|
88
|
+
| "streamingText"
|
|
89
|
+
>
|
|
90
|
+
>;
|
|
91
|
+
})[];
|
|
92
|
+
readonly continuations: readonly {
|
|
93
|
+
readonly runId: string;
|
|
94
|
+
readonly predecessorRunId: string;
|
|
95
|
+
readonly predecessorIndex?: number;
|
|
96
|
+
}[];
|
|
97
|
+
readonly resultPath?: string;
|
|
98
|
+
readonly canInterrupt: boolean;
|
|
99
|
+
readonly diagnosis?: string;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface ManagementControl {
|
|
103
|
+
readonly state: ManagementRunState;
|
|
104
|
+
readonly runId: string;
|
|
105
|
+
readonly capabilities: readonly ManagementAction[];
|
|
106
|
+
readonly nextActions: readonly {
|
|
107
|
+
readonly action: ManagementAction;
|
|
108
|
+
readonly runId: string;
|
|
109
|
+
readonly index?: number;
|
|
110
|
+
readonly intercomTarget?: string;
|
|
111
|
+
}[];
|
|
112
|
+
readonly unavailableActions?: Readonly<Partial<Record<ManagementAction, string>>>;
|
|
113
|
+
readonly revivedFromRunId?: string;
|
|
114
|
+
readonly pendingReplyContextValid?: boolean;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/** Live continuation owner, retained after foreground detachment. */
|
|
118
|
+
export interface ForegroundResumeChild {
|
|
119
|
+
agent: string;
|
|
120
|
+
index: number;
|
|
121
|
+
sessionFile?: string;
|
|
122
|
+
status: SubagentResultStatus;
|
|
123
|
+
summary?: string;
|
|
124
|
+
artifactPath?: string;
|
|
125
|
+
effectiveAcceptance?: ResolvedAcceptanceConfig;
|
|
126
|
+
result?: ReadonlySingleResult;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export interface ForegroundResumeRun {
|
|
130
|
+
runId: string;
|
|
131
|
+
mode: SubagentRunMode;
|
|
132
|
+
cwd: string;
|
|
133
|
+
updatedAt: number;
|
|
134
|
+
error?: string;
|
|
135
|
+
/** Logical work left after detachment, independent of child success. */
|
|
136
|
+
pausedReason?: string;
|
|
137
|
+
children: ForegroundResumeChild[];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export type ReadonlyForegroundResumeRun = ReadonlyInput<ForegroundResumeRun>;
|
|
141
|
+
|
|
142
|
+
export interface TimeoutExtensionResult {
|
|
143
|
+
readonly ok: boolean;
|
|
144
|
+
readonly timeoutAt?: number;
|
|
145
|
+
readonly message: string;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export type TimeoutExtensionCallback = (additionalMs: number) => TimeoutExtensionResult;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { ActivityState, ControlEventType } from "./config.ts";
|
|
2
|
+
import type { ReadonlyInput } from "./inputs.ts";
|
|
3
|
+
|
|
4
|
+
export type SubagentResultStatus =
|
|
5
|
+
| "completed"
|
|
6
|
+
| "failed"
|
|
7
|
+
| "blocked"
|
|
8
|
+
| "paused"
|
|
9
|
+
| "detached"
|
|
10
|
+
| "timed-out";
|
|
11
|
+
export type SubagentRunMode = "single" | "parallel" | "chain";
|
|
12
|
+
|
|
13
|
+
export interface ControlEvent {
|
|
14
|
+
readonly type: ControlEventType;
|
|
15
|
+
readonly from?: ActivityState;
|
|
16
|
+
readonly to: ActivityState;
|
|
17
|
+
readonly ts: number;
|
|
18
|
+
readonly agent: string;
|
|
19
|
+
readonly index?: number;
|
|
20
|
+
readonly runId: string;
|
|
21
|
+
readonly message: string;
|
|
22
|
+
readonly reason?: "idle" | "completion_guard" | "tool_failures";
|
|
23
|
+
readonly turns?: number;
|
|
24
|
+
readonly tokens?: number;
|
|
25
|
+
readonly toolCount?: number;
|
|
26
|
+
readonly currentTool?: string;
|
|
27
|
+
readonly currentToolDurationMs?: number;
|
|
28
|
+
readonly currentPath?: string;
|
|
29
|
+
readonly elapsedMs?: number;
|
|
30
|
+
readonly recentFailureSummary?: string;
|
|
31
|
+
readonly supervisorQuestion?: {
|
|
32
|
+
readonly questionId: string;
|
|
33
|
+
readonly state: "awaiting_input" | "answer_pending";
|
|
34
|
+
readonly answer?: string;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Live progress owner: streaming and tool events update fields and bounded buffers in place. */
|
|
39
|
+
export interface AgentProgress {
|
|
40
|
+
index: number;
|
|
41
|
+
agent: string;
|
|
42
|
+
status:
|
|
43
|
+
| "pending"
|
|
44
|
+
| "running"
|
|
45
|
+
| "completed"
|
|
46
|
+
| "complete"
|
|
47
|
+
| "failed"
|
|
48
|
+
| "blocked"
|
|
49
|
+
| "paused"
|
|
50
|
+
| "detached"
|
|
51
|
+
| "timed-out";
|
|
52
|
+
model?: string;
|
|
53
|
+
thinking?: string;
|
|
54
|
+
/** Display boundary: earlier native history belongs to a previous attempt. */
|
|
55
|
+
modelStartedAt?: number;
|
|
56
|
+
activityState?: ActivityState;
|
|
57
|
+
task: string;
|
|
58
|
+
skills?: readonly string[];
|
|
59
|
+
lastActivityAt?: number;
|
|
60
|
+
currentTool?: string;
|
|
61
|
+
currentToolArgs?: string;
|
|
62
|
+
currentToolStartedAt?: number;
|
|
63
|
+
currentPath?: string;
|
|
64
|
+
streamingText?: string;
|
|
65
|
+
recentTools: Array<{ tool: string; args: string; endMs: number }>;
|
|
66
|
+
recentOutput: string[];
|
|
67
|
+
toolCount: number;
|
|
68
|
+
turnCount?: number;
|
|
69
|
+
tokens: number;
|
|
70
|
+
durationMs: number;
|
|
71
|
+
error?: string;
|
|
72
|
+
failedTool?: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export type ReadonlyAgentProgress = ReadonlyInput<AgentProgress>;
|
|
76
|
+
|
|
77
|
+
export interface ToolCallSummary {
|
|
78
|
+
readonly text: string;
|
|
79
|
+
readonly expandedText: string;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface ProgressSummary extends Partial<
|
|
83
|
+
Pick<
|
|
84
|
+
ReadonlyAgentProgress,
|
|
85
|
+
| "index"
|
|
86
|
+
| "agent"
|
|
87
|
+
| "status"
|
|
88
|
+
| "activityState"
|
|
89
|
+
| "task"
|
|
90
|
+
| "skills"
|
|
91
|
+
| "lastActivityAt"
|
|
92
|
+
| "currentTool"
|
|
93
|
+
| "currentToolArgs"
|
|
94
|
+
| "currentToolStartedAt"
|
|
95
|
+
| "currentPath"
|
|
96
|
+
| "recentTools"
|
|
97
|
+
| "recentOutput"
|
|
98
|
+
| "turnCount"
|
|
99
|
+
| "error"
|
|
100
|
+
| "failedTool"
|
|
101
|
+
>
|
|
102
|
+
> {
|
|
103
|
+
readonly toolCount: number;
|
|
104
|
+
readonly tokens: number;
|
|
105
|
+
readonly durationMs: number;
|
|
106
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { ResolvedAcceptanceConfig } from "./acceptance.ts";
|
|
2
|
+
import type { JsonSchemaObject, OutputMode } from "./config.ts";
|
|
3
|
+
import type { SavedLaunchConfig } from "./launch.ts";
|
|
4
|
+
import type { ReadonlyAgentProgress } from "./progress.ts";
|
|
5
|
+
import type { ReadonlySingleResult } from "./results.ts";
|
|
6
|
+
|
|
7
|
+
export interface SupervisorRunContract {
|
|
8
|
+
readonly legacySource?: string;
|
|
9
|
+
/** Readers migrate v1/v2 owner records; all new publications use v3. */
|
|
10
|
+
readonly recordVersion?: 1 | 2 | 3;
|
|
11
|
+
readonly nativeSessionId?: string;
|
|
12
|
+
readonly terminalLeafId?: string | null;
|
|
13
|
+
readonly terminalEntryId?: string;
|
|
14
|
+
readonly attemptBaseline?: readonly string[];
|
|
15
|
+
readonly baselineSource?: "native-migration";
|
|
16
|
+
readonly effectiveConfiguration?: {
|
|
17
|
+
readonly model?: string;
|
|
18
|
+
readonly thinking?: string;
|
|
19
|
+
readonly modelRecordedAt?: number;
|
|
20
|
+
};
|
|
21
|
+
readonly accounting?: { readonly state: "complete" | "incomplete"; readonly error?: string };
|
|
22
|
+
readonly auditPath?: string;
|
|
23
|
+
readonly task?: string;
|
|
24
|
+
readonly label?: string;
|
|
25
|
+
readonly result?: ReadonlySingleResult;
|
|
26
|
+
readonly effectiveAcceptance?: ResolvedAcceptanceConfig;
|
|
27
|
+
readonly output?: string | false;
|
|
28
|
+
readonly outputMode?: OutputMode;
|
|
29
|
+
readonly outputSchema?: JsonSchemaObject;
|
|
30
|
+
readonly launch?: SavedLaunchConfig;
|
|
31
|
+
/** Retained independently of progress after detachment. */
|
|
32
|
+
readonly modelSelection?: Pick<ReadonlyAgentProgress, "model" | "thinking" | "modelStartedAt">;
|
|
33
|
+
readonly sessionFile?: string;
|
|
34
|
+
readonly pid?: number;
|
|
35
|
+
readonly processIdentity?: string;
|
|
36
|
+
readonly updatedAt?: number;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface SupervisorQuestion extends SupervisorRunContract {
|
|
40
|
+
readonly questionId: string;
|
|
41
|
+
readonly runId: string;
|
|
42
|
+
readonly ownerSessionId: string;
|
|
43
|
+
readonly ownerTarget: string;
|
|
44
|
+
readonly agent: string;
|
|
45
|
+
readonly index: number;
|
|
46
|
+
readonly childSessionId: string;
|
|
47
|
+
readonly childTarget: string;
|
|
48
|
+
readonly sessionFile: string;
|
|
49
|
+
readonly cwd: string;
|
|
50
|
+
readonly pid: number;
|
|
51
|
+
readonly createdAt: number;
|
|
52
|
+
readonly reason: "need_decision" | "interview_request";
|
|
53
|
+
readonly message: string;
|
|
54
|
+
readonly interview?: unknown;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface QuestionAnswer {
|
|
58
|
+
readonly message: string;
|
|
59
|
+
readonly answeredAt: number;
|
|
60
|
+
readonly origin?: "human";
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface QuestionDelivery {
|
|
64
|
+
readonly kind: "live" | "revive";
|
|
65
|
+
readonly runId: string;
|
|
66
|
+
readonly deliveredAt: number;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface SupervisorQuestionView extends SupervisorQuestion {
|
|
70
|
+
readonly state: "awaiting_input" | "answer_pending" | "answered" | "cancelled";
|
|
71
|
+
readonly answer?: QuestionAnswer;
|
|
72
|
+
readonly delivery?: QuestionDelivery;
|
|
73
|
+
readonly revival?: { readonly runId: string; readonly pid: number; readonly startedAt: number };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface SupervisorQuestionSummary extends Pick<
|
|
77
|
+
SupervisorQuestionView,
|
|
78
|
+
| "questionId"
|
|
79
|
+
| "runId"
|
|
80
|
+
| "ownerSessionId"
|
|
81
|
+
| "ownerTarget"
|
|
82
|
+
| "agent"
|
|
83
|
+
| "index"
|
|
84
|
+
| "childSessionId"
|
|
85
|
+
| "childTarget"
|
|
86
|
+
| "sessionFile"
|
|
87
|
+
| "cwd"
|
|
88
|
+
| "pid"
|
|
89
|
+
| "processIdentity"
|
|
90
|
+
| "createdAt"
|
|
91
|
+
| "reason"
|
|
92
|
+
| "message"
|
|
93
|
+
| "state"
|
|
94
|
+
| "answer"
|
|
95
|
+
| "delivery"
|
|
96
|
+
| "revival"
|
|
97
|
+
> {
|
|
98
|
+
readonly questionPath: string;
|
|
99
|
+
readonly answerPath?: string;
|
|
100
|
+
readonly messageTruncated?: boolean;
|
|
101
|
+
readonly answerTruncated?: boolean;
|
|
102
|
+
readonly hasInterview?: boolean;
|
|
103
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { AcceptanceLedger } from "./acceptance.ts";
|
|
2
|
+
import type { OutputMode } from "./config.ts";
|
|
3
|
+
import type { ReadonlyInput } from "./inputs.ts";
|
|
4
|
+
import type { ObservedMessage } from "./messages.ts";
|
|
5
|
+
import type { AgentProgress, ControlEvent, ProgressSummary, ToolCallSummary } from "./progress.ts";
|
|
6
|
+
import type { Usage } from "./usage.ts";
|
|
7
|
+
|
|
8
|
+
export interface SavedOutputReference {
|
|
9
|
+
readonly path: string;
|
|
10
|
+
readonly bytes: number;
|
|
11
|
+
readonly lines: number;
|
|
12
|
+
readonly message: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface TruncationResult {
|
|
16
|
+
readonly text: string;
|
|
17
|
+
readonly truncated: boolean;
|
|
18
|
+
readonly originalBytes?: number;
|
|
19
|
+
readonly originalLines?: number;
|
|
20
|
+
readonly artifactPath?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface ModelAttempt {
|
|
24
|
+
readonly accounting?: { readonly state: "complete" | "incomplete"; readonly error?: string };
|
|
25
|
+
readonly model: string;
|
|
26
|
+
readonly success: boolean;
|
|
27
|
+
readonly exitCode?: number | null;
|
|
28
|
+
readonly error?: string;
|
|
29
|
+
readonly usage?: Usage;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface ResourceLimitExceeded {
|
|
33
|
+
readonly kind: "maxExecutionTimeMs" | "maxTokens";
|
|
34
|
+
readonly limit: number;
|
|
35
|
+
readonly observed?: number;
|
|
36
|
+
readonly message: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface AgentProcessExit {
|
|
40
|
+
readonly pid?: number;
|
|
41
|
+
readonly code: number | null;
|
|
42
|
+
readonly signal: NodeJS.Signals | null;
|
|
43
|
+
readonly at: number;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface ArtifactPaths {
|
|
47
|
+
readonly inputPath: string;
|
|
48
|
+
readonly outputPath: string;
|
|
49
|
+
readonly metadataPath: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** Execution owns the result while collecting output, accounting and acceptance evidence. */
|
|
53
|
+
export interface SingleResult {
|
|
54
|
+
accounting?: { readonly state: "complete" | "incomplete"; readonly error?: string };
|
|
55
|
+
nativeSessionId?: string;
|
|
56
|
+
terminalLeafId?: string | null;
|
|
57
|
+
terminalEntryId?: string;
|
|
58
|
+
auditPath?: string;
|
|
59
|
+
fullOutputPath?: string;
|
|
60
|
+
initialOutputPath?: string;
|
|
61
|
+
auditSaveError?: string;
|
|
62
|
+
agent: string;
|
|
63
|
+
agentProcessExit?: AgentProcessExit;
|
|
64
|
+
task: string;
|
|
65
|
+
exitCode: number;
|
|
66
|
+
detached?: boolean;
|
|
67
|
+
detachedReason?: string;
|
|
68
|
+
interrupted?: boolean;
|
|
69
|
+
timedOut?: boolean;
|
|
70
|
+
resourceLimitExceeded?: ResourceLimitExceeded;
|
|
71
|
+
messages?: readonly ObservedMessage[];
|
|
72
|
+
usage: Usage;
|
|
73
|
+
model?: string;
|
|
74
|
+
attemptedModels?: readonly string[];
|
|
75
|
+
modelAttempts?: readonly ModelAttempt[];
|
|
76
|
+
controlEvents?: readonly ControlEvent[];
|
|
77
|
+
error?: string;
|
|
78
|
+
sessionFile?: string;
|
|
79
|
+
skills?: readonly string[];
|
|
80
|
+
skillsWarning?: string;
|
|
81
|
+
progress?: AgentProgress;
|
|
82
|
+
progressSummary?: ProgressSummary;
|
|
83
|
+
toolCalls?: readonly ToolCallSummary[];
|
|
84
|
+
artifactPaths?: ArtifactPaths;
|
|
85
|
+
truncation?: TruncationResult;
|
|
86
|
+
finalOutput?: string;
|
|
87
|
+
initialOutput?: string;
|
|
88
|
+
outputMode?: OutputMode;
|
|
89
|
+
savedOutputPath?: string;
|
|
90
|
+
outputReference?: SavedOutputReference;
|
|
91
|
+
outputSaveError?: string;
|
|
92
|
+
outputCleanup?: {
|
|
93
|
+
readonly path: string;
|
|
94
|
+
readonly action: "deleted" | "already-missing" | "skipped";
|
|
95
|
+
readonly reason?: string;
|
|
96
|
+
readonly error?: string;
|
|
97
|
+
};
|
|
98
|
+
structuredOutput?: unknown;
|
|
99
|
+
structuredOutputPath?: string;
|
|
100
|
+
structuredOutputSchemaPath?: string;
|
|
101
|
+
acceptance?: AcceptanceLedger;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export type ReadonlySingleResult = ReadonlyInput<SingleResult>;
|
|
105
|
+
|
|
106
|
+
export type DisplayItem =
|
|
107
|
+
| { readonly type: "text"; readonly text: string }
|
|
108
|
+
| {
|
|
109
|
+
readonly type: "tool";
|
|
110
|
+
readonly name: string;
|
|
111
|
+
readonly args: Readonly<Record<string, unknown>>;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export interface ErrorInfo {
|
|
115
|
+
readonly hasError: boolean;
|
|
116
|
+
readonly exitCode?: number;
|
|
117
|
+
readonly errorType?: string;
|
|
118
|
+
readonly details?: string;
|
|
119
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FSWatcher } from "node:fs";
|
|
2
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
3
|
+
import type { AsyncJobState, ReadonlyAsyncJobState } from "./async.ts";
|
|
4
|
+
import type { HistoryIndexHandle } from "./history.ts";
|
|
5
|
+
import type {
|
|
6
|
+
ForegroundResumeRun,
|
|
7
|
+
OwnedRun,
|
|
8
|
+
ReadonlyForegroundResumeRun,
|
|
9
|
+
TrackedOwnedRun,
|
|
10
|
+
} from "./owned-runs.ts";
|
|
11
|
+
|
|
12
|
+
/** Session lifecycle owner. Only owner boundaries may update maps, timers, handles and projections. */
|
|
13
|
+
export interface SubagentState {
|
|
14
|
+
baseCwd: string;
|
|
15
|
+
currentSessionId: string | null;
|
|
16
|
+
asyncJobs: Map<string, AsyncJobState>;
|
|
17
|
+
waitingRuns?: Map<string, number>;
|
|
18
|
+
isRunResultConsumed?: (runId: string) => boolean;
|
|
19
|
+
foregroundRuns?: Map<string, ForegroundResumeRun>;
|
|
20
|
+
ownedRuns?: Map<string, TrackedOwnedRun>;
|
|
21
|
+
historyIndex?: HistoryIndexHandle;
|
|
22
|
+
historyReady?: Promise<void>;
|
|
23
|
+
historyClosing?: Promise<void>;
|
|
24
|
+
persistOwnedRun?: (run: OwnedRun) => void;
|
|
25
|
+
onRunsChanged?: () => void;
|
|
26
|
+
cleanupTimers: Map<string, ReturnType<typeof setTimeout>>;
|
|
27
|
+
lastUiContext: ExtensionContext | null;
|
|
28
|
+
poller: NodeJS.Timeout | null;
|
|
29
|
+
completionSeen: Map<string, number>;
|
|
30
|
+
watcher: FSWatcher | null;
|
|
31
|
+
watcherRestartTimer: ReturnType<typeof setTimeout> | null;
|
|
32
|
+
resultFileCoalescer: {
|
|
33
|
+
readonly schedule: (file: string, delayMs?: number) => boolean;
|
|
34
|
+
readonly clear: () => void;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Read-only application state around genuine native handles, which retain their SDK contracts. */
|
|
39
|
+
export type ReadonlySubagentState = Readonly<
|
|
40
|
+
Omit<
|
|
41
|
+
SubagentState,
|
|
42
|
+
| "asyncJobs"
|
|
43
|
+
| "waitingRuns"
|
|
44
|
+
| "foregroundRuns"
|
|
45
|
+
| "ownedRuns"
|
|
46
|
+
| "cleanupTimers"
|
|
47
|
+
| "completionSeen"
|
|
48
|
+
>
|
|
49
|
+
> & {
|
|
50
|
+
readonly asyncJobs: Readonly<ReadonlyMap<string, ReadonlyAsyncJobState>>;
|
|
51
|
+
readonly waitingRuns?: Readonly<ReadonlyMap<string, number>>;
|
|
52
|
+
readonly foregroundRuns?: Readonly<ReadonlyMap<string, ReadonlyForegroundResumeRun>>;
|
|
53
|
+
readonly ownedRuns?: Readonly<ReadonlyMap<string, OwnedRun>>;
|
|
54
|
+
readonly cleanupTimers: Readonly<ReadonlyMap<string, ReturnType<typeof setTimeout>>>;
|
|
55
|
+
readonly completionSeen: Readonly<ReadonlyMap<string, number>>;
|
|
56
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ObservedUsage } from "./messages.ts";
|
|
2
|
+
|
|
3
|
+
export interface UsageContribution {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
/** Native tool and summary usage may not carry model attribution. */
|
|
6
|
+
readonly provider?: string;
|
|
7
|
+
readonly model?: string;
|
|
8
|
+
readonly usage: ObservedUsage;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface Usage {
|
|
12
|
+
readonly contributions?: readonly UsageContribution[];
|
|
13
|
+
readonly input: number;
|
|
14
|
+
readonly output: number;
|
|
15
|
+
readonly cacheRead: number;
|
|
16
|
+
readonly cacheWrite: number;
|
|
17
|
+
readonly cost: number;
|
|
18
|
+
readonly turns: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** The billing reducer owns these counters and appends immutable contribution snapshots. */
|
|
22
|
+
export interface UsageAccumulator {
|
|
23
|
+
contributions?: UsageContribution[];
|
|
24
|
+
input: number;
|
|
25
|
+
output: number;
|
|
26
|
+
cacheRead: number;
|
|
27
|
+
cacheWrite: number;
|
|
28
|
+
cost: number;
|
|
29
|
+
turns: number;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface TokenUsage {
|
|
33
|
+
readonly input: number;
|
|
34
|
+
readonly output: number;
|
|
35
|
+
readonly total: number;
|
|
36
|
+
}
|