@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,149 @@
|
|
|
1
|
+
/** Acceptance configuration and recorded evidence, independent of execution and verification code. */
|
|
2
|
+
export type AcceptanceProvenanceLevel = "none" | "attested" | "checked" | "verified";
|
|
3
|
+
|
|
4
|
+
export type AcceptanceEvidenceKind =
|
|
5
|
+
| "changed-files"
|
|
6
|
+
| "tests-added"
|
|
7
|
+
| "commands-run"
|
|
8
|
+
| "validation-output"
|
|
9
|
+
| "residual-risks"
|
|
10
|
+
| "no-staged-files"
|
|
11
|
+
| "diff-summary"
|
|
12
|
+
| "review-findings"
|
|
13
|
+
| "manual-notes";
|
|
14
|
+
|
|
15
|
+
export interface AcceptanceGate {
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly must: string;
|
|
18
|
+
readonly evidence?: readonly AcceptanceEvidenceKind[];
|
|
19
|
+
readonly severity?: "required" | "recommended";
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface AcceptanceVerifyCommand {
|
|
23
|
+
readonly id: string;
|
|
24
|
+
readonly command: string;
|
|
25
|
+
readonly timeoutMs?: number;
|
|
26
|
+
readonly cwd?: string;
|
|
27
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
28
|
+
readonly allowFailure?: boolean;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface AcceptanceConfig {
|
|
32
|
+
readonly criteria?: readonly (string | AcceptanceGate)[];
|
|
33
|
+
readonly evidence?: readonly AcceptanceEvidenceKind[];
|
|
34
|
+
readonly verify?: readonly AcceptanceVerifyCommand[];
|
|
35
|
+
readonly stopRules?: readonly string[];
|
|
36
|
+
readonly maxFinalizationTurns?: number;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export type AcceptanceInput = AcceptanceConfig;
|
|
40
|
+
|
|
41
|
+
export interface ResolvedAcceptanceGate extends AcceptanceGate {
|
|
42
|
+
readonly id: string;
|
|
43
|
+
readonly must: string;
|
|
44
|
+
readonly evidence: readonly AcceptanceEvidenceKind[];
|
|
45
|
+
readonly severity: "required" | "recommended";
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface ResolvedAcceptanceConfig {
|
|
49
|
+
readonly level: AcceptanceProvenanceLevel;
|
|
50
|
+
readonly explicit: boolean;
|
|
51
|
+
readonly inferredReason: readonly string[];
|
|
52
|
+
readonly criteria: readonly ResolvedAcceptanceGate[];
|
|
53
|
+
readonly evidence: readonly AcceptanceEvidenceKind[];
|
|
54
|
+
readonly verify: readonly AcceptanceVerifyCommand[];
|
|
55
|
+
readonly stopRules: readonly string[];
|
|
56
|
+
readonly finalization: {
|
|
57
|
+
readonly mode: "none" | "self-review-loop";
|
|
58
|
+
readonly maxTurns: number;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface AcceptanceReport {
|
|
63
|
+
readonly criteriaSatisfied?: readonly {
|
|
64
|
+
readonly id?: string;
|
|
65
|
+
readonly status: "satisfied" | "not-satisfied" | "not-applicable" | "blocked";
|
|
66
|
+
readonly evidence: string;
|
|
67
|
+
readonly humanAction?: string;
|
|
68
|
+
}[];
|
|
69
|
+
readonly changedFiles?: readonly string[];
|
|
70
|
+
readonly testsAddedOrUpdated?: readonly string[];
|
|
71
|
+
readonly commandsRun?: readonly {
|
|
72
|
+
readonly command: string;
|
|
73
|
+
readonly result: "passed" | "failed" | "not-run";
|
|
74
|
+
readonly summary: string;
|
|
75
|
+
}[];
|
|
76
|
+
readonly validationOutput?: readonly string[];
|
|
77
|
+
readonly residualRisks?: readonly string[];
|
|
78
|
+
readonly noStagedFiles?: boolean;
|
|
79
|
+
readonly diffSummary?: string;
|
|
80
|
+
readonly reviewFindings?: readonly (string | Readonly<Record<string, unknown>>)[];
|
|
81
|
+
readonly manualNotes?: string;
|
|
82
|
+
readonly notes?: string;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export type AcceptanceRuntimeCheckStatus = "passed" | "failed" | "blocked" | "not-applicable";
|
|
86
|
+
|
|
87
|
+
export interface AcceptanceRuntimeCheck {
|
|
88
|
+
readonly id: string;
|
|
89
|
+
readonly status: AcceptanceRuntimeCheckStatus;
|
|
90
|
+
readonly message: string;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface AcceptanceVerifyResult {
|
|
94
|
+
readonly id: string;
|
|
95
|
+
readonly command: string;
|
|
96
|
+
readonly cwd?: string;
|
|
97
|
+
readonly exitCode: number | null;
|
|
98
|
+
readonly status: "passed" | "failed" | "timed-out" | "allowed-failure";
|
|
99
|
+
readonly stdout?: string;
|
|
100
|
+
readonly stderr?: string;
|
|
101
|
+
readonly durationMs: number;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export type AcceptanceLedgerStatus =
|
|
105
|
+
| "not-required"
|
|
106
|
+
| "claimed"
|
|
107
|
+
| "attested"
|
|
108
|
+
| "checked"
|
|
109
|
+
| "verified"
|
|
110
|
+
| "accepted"
|
|
111
|
+
| "blocked"
|
|
112
|
+
| "rejected";
|
|
113
|
+
|
|
114
|
+
export interface AcceptanceFinalizationTurn {
|
|
115
|
+
readonly turn: number;
|
|
116
|
+
readonly prompt: string;
|
|
117
|
+
readonly status: AcceptanceLedgerStatus;
|
|
118
|
+
readonly rawOutput?: string;
|
|
119
|
+
readonly unconfirmedOutput?: string;
|
|
120
|
+
readonly report?: AcceptanceReport;
|
|
121
|
+
readonly parseError?: string;
|
|
122
|
+
readonly runtimeChecks: readonly AcceptanceRuntimeCheck[];
|
|
123
|
+
readonly verifyRuns: readonly AcceptanceVerifyResult[];
|
|
124
|
+
readonly failureMessage?: string;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface AcceptanceFinalizationLedger {
|
|
128
|
+
readonly mode: "self-review-loop";
|
|
129
|
+
readonly status: "not-run" | "completed" | "blocked" | "failed";
|
|
130
|
+
readonly maxTurns: number;
|
|
131
|
+
readonly turns: readonly AcceptanceFinalizationTurn[];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export interface AcceptanceLedger {
|
|
135
|
+
readonly status: AcceptanceLedgerStatus;
|
|
136
|
+
readonly explicit: boolean;
|
|
137
|
+
readonly effectiveAcceptance: ResolvedAcceptanceConfig;
|
|
138
|
+
readonly inferredReason: readonly string[];
|
|
139
|
+
readonly criteria: readonly ResolvedAcceptanceGate[];
|
|
140
|
+
readonly childReport?: AcceptanceReport;
|
|
141
|
+
readonly childReportParseError?: string;
|
|
142
|
+
readonly initialChildReport?: AcceptanceReport;
|
|
143
|
+
readonly initialChildReportParseError?: string;
|
|
144
|
+
/** Prior full report retained as audit evidence, never as current acceptance. */
|
|
145
|
+
readonly unconfirmedOutput?: string;
|
|
146
|
+
readonly runtimeChecks: readonly AcceptanceRuntimeCheck[];
|
|
147
|
+
readonly verifyRuns: readonly AcceptanceVerifyResult[];
|
|
148
|
+
readonly finalization?: AcceptanceFinalizationLedger;
|
|
149
|
+
}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import type { AcceptanceLedger } from "./acceptance.ts";
|
|
2
|
+
import type { ActivityState, MaxOutputConfig } from "./config.ts";
|
|
3
|
+
import type { ReadonlyInput } from "./inputs.ts";
|
|
4
|
+
import type { AsyncParallelGroupStatus, NestedRouteInfo, NestedRunSummary } from "./nested.ts";
|
|
5
|
+
import type { SubagentRunMode } from "./progress.ts";
|
|
6
|
+
import type {
|
|
7
|
+
AgentProcessExit,
|
|
8
|
+
ArtifactPaths,
|
|
9
|
+
ModelAttempt,
|
|
10
|
+
ResourceLimitExceeded,
|
|
11
|
+
SingleResult,
|
|
12
|
+
} from "./results.ts";
|
|
13
|
+
import type { TokenUsage, Usage } from "./usage.ts";
|
|
14
|
+
import type { ChainOutputMap, WorkflowGraphSnapshot } from "./workflow.ts";
|
|
15
|
+
|
|
16
|
+
export type AsyncResultTerminalState = "complete" | "failed" | "blocked" | "paused";
|
|
17
|
+
|
|
18
|
+
export interface AsyncResultChild extends Partial<
|
|
19
|
+
Pick<
|
|
20
|
+
SingleResult,
|
|
21
|
+
| "task"
|
|
22
|
+
| "finalOutput"
|
|
23
|
+
| "initialOutput"
|
|
24
|
+
| "outputMode"
|
|
25
|
+
| "savedOutputPath"
|
|
26
|
+
| "outputReference"
|
|
27
|
+
| "outputSaveError"
|
|
28
|
+
| "outputCleanup"
|
|
29
|
+
| "toolCalls"
|
|
30
|
+
| "progressSummary"
|
|
31
|
+
| "truncation"
|
|
32
|
+
| "skills"
|
|
33
|
+
| "skillsWarning"
|
|
34
|
+
| "accounting"
|
|
35
|
+
| "nativeSessionId"
|
|
36
|
+
| "terminalLeafId"
|
|
37
|
+
| "terminalEntryId"
|
|
38
|
+
| "auditPath"
|
|
39
|
+
| "auditSaveError"
|
|
40
|
+
| "fullOutputPath"
|
|
41
|
+
| "initialOutputPath"
|
|
42
|
+
>
|
|
43
|
+
> {
|
|
44
|
+
usage?: Usage;
|
|
45
|
+
timedOut?: boolean;
|
|
46
|
+
agent?: string;
|
|
47
|
+
agentProcessExit?: AgentProcessExit;
|
|
48
|
+
exitCode?: number | null;
|
|
49
|
+
output?: string;
|
|
50
|
+
error?: string;
|
|
51
|
+
success?: boolean;
|
|
52
|
+
skipped?: boolean;
|
|
53
|
+
sessionFile?: string;
|
|
54
|
+
intercomTarget?: string;
|
|
55
|
+
model?: string;
|
|
56
|
+
attemptedModels?: readonly string[];
|
|
57
|
+
modelAttempts?: readonly ModelAttempt[];
|
|
58
|
+
artifactPaths?: Partial<ArtifactPaths>;
|
|
59
|
+
truncated?: boolean;
|
|
60
|
+
structuredOutput?: unknown;
|
|
61
|
+
structuredOutputPath?: string;
|
|
62
|
+
structuredOutputSchemaPath?: string;
|
|
63
|
+
acceptance?: AcceptanceLedger;
|
|
64
|
+
resourceLimitExceeded?: ResourceLimitExceeded;
|
|
65
|
+
interrupted?: boolean;
|
|
66
|
+
children?: unknown;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface AsyncResultFile {
|
|
70
|
+
legacySource?: string;
|
|
71
|
+
/** Saved legacy results remain readable until their v3 publication replaces them. */
|
|
72
|
+
recordVersion?: 1 | 2 | 3;
|
|
73
|
+
completionId?: string;
|
|
74
|
+
maxOutput?: MaxOutputConfig;
|
|
75
|
+
error?: string;
|
|
76
|
+
runtimeVersion?: 2;
|
|
77
|
+
timedOut?: boolean;
|
|
78
|
+
id?: string;
|
|
79
|
+
runId?: string;
|
|
80
|
+
agent?: string;
|
|
81
|
+
mode?: SubagentRunMode;
|
|
82
|
+
success?: boolean;
|
|
83
|
+
state?: string;
|
|
84
|
+
summary?: string;
|
|
85
|
+
results?: AsyncResultChild[];
|
|
86
|
+
outputs?: ChainOutputMap;
|
|
87
|
+
workflowGraph?: WorkflowGraphSnapshot;
|
|
88
|
+
exitCode?: number;
|
|
89
|
+
timestamp?: number;
|
|
90
|
+
durationMs?: number;
|
|
91
|
+
truncated?: boolean;
|
|
92
|
+
artifactsDir?: string;
|
|
93
|
+
cwd?: string;
|
|
94
|
+
asyncDir?: string;
|
|
95
|
+
sessionId?: string;
|
|
96
|
+
sessionFile?: string;
|
|
97
|
+
intercomTarget?: string;
|
|
98
|
+
shareUrl?: string;
|
|
99
|
+
gistUrl?: string;
|
|
100
|
+
shareError?: string;
|
|
101
|
+
taskIndex?: number;
|
|
102
|
+
totalTasks?: number;
|
|
103
|
+
nestedChildren?: unknown;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export interface AsyncStartedEvent {
|
|
107
|
+
readonly id?: string;
|
|
108
|
+
readonly asyncDir?: string;
|
|
109
|
+
readonly pid?: number;
|
|
110
|
+
readonly sessionId?: string;
|
|
111
|
+
readonly mode?: SubagentRunMode;
|
|
112
|
+
readonly agent?: string;
|
|
113
|
+
readonly agents?: readonly string[];
|
|
114
|
+
readonly chain?: readonly string[];
|
|
115
|
+
readonly chainStepCount?: number;
|
|
116
|
+
readonly parallelGroups?: readonly AsyncParallelGroupStatus[];
|
|
117
|
+
readonly workflowGraph?: WorkflowGraphSnapshot;
|
|
118
|
+
readonly nestedRoute?: NestedRouteInfo;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** Mutable producer-side status projection. Readers consume ReadonlyAsyncStatus. */
|
|
122
|
+
export interface AsyncStatus {
|
|
123
|
+
runtimeVersion?: 2;
|
|
124
|
+
error?: string;
|
|
125
|
+
timeoutAt?: number;
|
|
126
|
+
timedOut?: boolean;
|
|
127
|
+
runId: string;
|
|
128
|
+
indexedControl?: boolean;
|
|
129
|
+
controlRequestFiles?: boolean;
|
|
130
|
+
sessionId?: string;
|
|
131
|
+
mode: SubagentRunMode;
|
|
132
|
+
state: "queued" | "running" | "complete" | "failed" | "blocked" | "paused";
|
|
133
|
+
activityState?: ActivityState;
|
|
134
|
+
lastActivityAt?: number;
|
|
135
|
+
currentTool?: string;
|
|
136
|
+
currentToolStartedAt?: number;
|
|
137
|
+
currentPath?: string;
|
|
138
|
+
turnCount?: number;
|
|
139
|
+
toolCount?: number;
|
|
140
|
+
startedAt: number;
|
|
141
|
+
endedAt?: number;
|
|
142
|
+
lastUpdate?: number;
|
|
143
|
+
pid?: number;
|
|
144
|
+
cwd?: string;
|
|
145
|
+
currentStep?: number;
|
|
146
|
+
chainStepCount?: number;
|
|
147
|
+
parallelGroups?: readonly AsyncParallelGroupStatus[];
|
|
148
|
+
workflowGraph?: WorkflowGraphSnapshot;
|
|
149
|
+
steps?: Array<{
|
|
150
|
+
agent: string;
|
|
151
|
+
phase?: string;
|
|
152
|
+
label?: string;
|
|
153
|
+
outputName?: string;
|
|
154
|
+
structured?: boolean;
|
|
155
|
+
status:
|
|
156
|
+
| "pending"
|
|
157
|
+
| "running"
|
|
158
|
+
| "complete"
|
|
159
|
+
| "completed"
|
|
160
|
+
| "failed"
|
|
161
|
+
| "blocked"
|
|
162
|
+
| "paused"
|
|
163
|
+
| "timed-out";
|
|
164
|
+
children?: readonly NestedRunSummary[];
|
|
165
|
+
sessionFile?: string;
|
|
166
|
+
activityState?: ActivityState;
|
|
167
|
+
lastActivityAt?: number;
|
|
168
|
+
currentTool?: string;
|
|
169
|
+
currentToolArgs?: string;
|
|
170
|
+
streamingText?: string;
|
|
171
|
+
currentToolStartedAt?: number;
|
|
172
|
+
currentPath?: string;
|
|
173
|
+
recentTools?: readonly {
|
|
174
|
+
readonly tool: string;
|
|
175
|
+
readonly args: string;
|
|
176
|
+
readonly endMs: number;
|
|
177
|
+
}[];
|
|
178
|
+
recentOutput?: readonly string[];
|
|
179
|
+
turnCount?: number;
|
|
180
|
+
toolCount?: number;
|
|
181
|
+
startedAt?: number;
|
|
182
|
+
endedAt?: number;
|
|
183
|
+
durationMs?: number;
|
|
184
|
+
exitCode?: number | null;
|
|
185
|
+
agentProcessExit?: AgentProcessExit;
|
|
186
|
+
tokens?: TokenUsage;
|
|
187
|
+
skills?: readonly string[];
|
|
188
|
+
model?: string;
|
|
189
|
+
thinking?: string;
|
|
190
|
+
modelStartedAt?: number;
|
|
191
|
+
attemptedModels?: readonly string[];
|
|
192
|
+
modelAttempts?: readonly ModelAttempt[];
|
|
193
|
+
error?: string;
|
|
194
|
+
structuredOutput?: unknown;
|
|
195
|
+
structuredOutputPath?: string;
|
|
196
|
+
structuredOutputSchemaPath?: string;
|
|
197
|
+
acceptance?: AcceptanceLedger;
|
|
198
|
+
resourceLimitExceeded?: ResourceLimitExceeded;
|
|
199
|
+
}>;
|
|
200
|
+
sessionDir?: string;
|
|
201
|
+
outputFile?: string;
|
|
202
|
+
totalTokens?: TokenUsage;
|
|
203
|
+
sessionFile?: string;
|
|
204
|
+
outputs?: ChainOutputMap;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export type AsyncJobStep = NonNullable<AsyncStatus["steps"]>[number] & { index?: number };
|
|
208
|
+
|
|
209
|
+
/** The async tracker owns the current job projection and its mutable step collection. */
|
|
210
|
+
export interface AsyncJobState {
|
|
211
|
+
asyncId: string;
|
|
212
|
+
asyncDir: string;
|
|
213
|
+
status: "queued" | "running" | "complete" | "failed" | "blocked" | "paused";
|
|
214
|
+
pid?: number;
|
|
215
|
+
sessionId?: string;
|
|
216
|
+
activityState?: ActivityState;
|
|
217
|
+
lastActivityAt?: number;
|
|
218
|
+
currentTool?: string;
|
|
219
|
+
currentToolStartedAt?: number;
|
|
220
|
+
currentPath?: string;
|
|
221
|
+
turnCount?: number;
|
|
222
|
+
toolCount?: number;
|
|
223
|
+
mode?: SubagentRunMode;
|
|
224
|
+
agents?: readonly string[];
|
|
225
|
+
currentStep?: number;
|
|
226
|
+
chainStepCount?: number;
|
|
227
|
+
parallelGroups?: readonly AsyncParallelGroupStatus[];
|
|
228
|
+
steps?: AsyncJobStep[];
|
|
229
|
+
stepsTotal?: number;
|
|
230
|
+
runningSteps?: number;
|
|
231
|
+
completedSteps?: number;
|
|
232
|
+
activeParallelGroup?: boolean;
|
|
233
|
+
startedAt?: number;
|
|
234
|
+
updatedAt?: number;
|
|
235
|
+
totalTokens?: TokenUsage;
|
|
236
|
+
sessionFile?: string;
|
|
237
|
+
controlEventCursor?: number;
|
|
238
|
+
controlEventIdentity?: string;
|
|
239
|
+
controlEventSince?: number;
|
|
240
|
+
nestedRoute?: NestedRouteInfo;
|
|
241
|
+
nestedChildren?: readonly NestedRunSummary[];
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export type ReadonlyAsyncResultChild = ReadonlyInput<AsyncResultChild>;
|
|
245
|
+
export type ReadonlyAsyncResultFile = ReadonlyInput<AsyncResultFile>;
|
|
246
|
+
export type ReadonlyAsyncStatus = ReadonlyInput<AsyncStatus>;
|
|
247
|
+
export type ReadonlyAsyncJobState = ReadonlyInput<AsyncJobState>;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/** Configuration data is caller-owned. Resolution constructs new values rather than mutating inputs. */
|
|
2
|
+
import type { AcceptanceInput } from "./acceptance.ts";
|
|
3
|
+
|
|
4
|
+
export interface MaxOutputConfig {
|
|
5
|
+
readonly bytes?: number;
|
|
6
|
+
readonly lines?: number;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export type OutputMode = "inline" | "file-only";
|
|
10
|
+
export type JsonSchemaObject = Readonly<Record<string, unknown>>;
|
|
11
|
+
export type ChildProjectTrustPolicy = "inherit" | "approve" | "no-approve";
|
|
12
|
+
export type ActivityState = "needs_attention";
|
|
13
|
+
export type ControlEventType = "needs_attention";
|
|
14
|
+
export type ControlNotificationChannel = "event" | "async" | "intercom";
|
|
15
|
+
|
|
16
|
+
export interface ControlConfig {
|
|
17
|
+
readonly enabled?: boolean;
|
|
18
|
+
readonly needsAttentionAfterMs?: number;
|
|
19
|
+
readonly failedToolAttemptsBeforeAttention?: number;
|
|
20
|
+
readonly notifyOn?: readonly ControlEventType[];
|
|
21
|
+
readonly notifyChannels?: readonly ControlNotificationChannel[];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface ResolvedControlConfig {
|
|
25
|
+
readonly enabled: boolean;
|
|
26
|
+
readonly needsAttentionAfterMs: number;
|
|
27
|
+
readonly failedToolAttemptsBeforeAttention: number;
|
|
28
|
+
readonly notifyOn: readonly ControlEventType[];
|
|
29
|
+
readonly notifyChannels: readonly ControlNotificationChannel[];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface ProjectTrustConfig {
|
|
33
|
+
readonly childRuns?: ChildProjectTrustPolicy;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface TopLevelParallelConfig {
|
|
37
|
+
readonly maxTasks?: number;
|
|
38
|
+
readonly concurrency?: number;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
interface ExtensionChainConfig {
|
|
42
|
+
readonly dynamicFanout?: { readonly maxItems?: number };
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface ExtensionConfig {
|
|
46
|
+
/** Start authorized children with everyday tools; false restores the full subagent-only surface. */
|
|
47
|
+
readonly compactChildTools?: boolean;
|
|
48
|
+
readonly asyncByDefault?: boolean;
|
|
49
|
+
readonly forceTopLevelAsync?: boolean;
|
|
50
|
+
readonly defaultSessionDir?: string;
|
|
51
|
+
readonly maxSubagentDepth?: number;
|
|
52
|
+
readonly control?: ControlConfig;
|
|
53
|
+
readonly parallel?: TopLevelParallelConfig;
|
|
54
|
+
readonly chain?: ExtensionChainConfig;
|
|
55
|
+
readonly worktreeSetupHook?: string;
|
|
56
|
+
readonly worktreeSetupHookTimeoutMs?: number;
|
|
57
|
+
readonly projectTrust?: ChildProjectTrustPolicy | ProjectTrustConfig;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export type AgentScope = "user" | "project" | "both";
|
|
61
|
+
export type AgentSource = "builtin" | "package" | "user" | "project";
|
|
62
|
+
export type SystemPromptMode = "append" | "replace";
|
|
63
|
+
export type AgentDefaultContext = "fresh" | "fork";
|
|
64
|
+
|
|
65
|
+
export interface AgentConfig {
|
|
66
|
+
readonly name: string;
|
|
67
|
+
readonly localName?: string;
|
|
68
|
+
readonly packageName?: string;
|
|
69
|
+
readonly description: string;
|
|
70
|
+
readonly tools?: readonly string[];
|
|
71
|
+
readonly mcpDirectTools?: readonly string[];
|
|
72
|
+
readonly allowSubagents?: boolean;
|
|
73
|
+
readonly model?: string;
|
|
74
|
+
readonly fallbackModels?: readonly string[];
|
|
75
|
+
readonly thinking?: string;
|
|
76
|
+
readonly systemPromptMode: SystemPromptMode;
|
|
77
|
+
readonly inheritProjectContext: boolean;
|
|
78
|
+
readonly inheritSkills: boolean;
|
|
79
|
+
readonly defaultContext?: AgentDefaultContext;
|
|
80
|
+
readonly systemPrompt: string;
|
|
81
|
+
readonly source: AgentSource;
|
|
82
|
+
readonly filePath: string;
|
|
83
|
+
readonly skills?: readonly string[];
|
|
84
|
+
readonly extensions?: readonly string[];
|
|
85
|
+
readonly output?: string;
|
|
86
|
+
readonly defaultReads?: readonly string[];
|
|
87
|
+
readonly defaultProgress?: boolean;
|
|
88
|
+
readonly interactive?: boolean;
|
|
89
|
+
readonly maxSubagentDepth?: number;
|
|
90
|
+
readonly maxExecutionTimeMs?: number;
|
|
91
|
+
readonly maxTokens?: number;
|
|
92
|
+
readonly completionGuard?: boolean;
|
|
93
|
+
readonly disabled?: boolean;
|
|
94
|
+
readonly extraFields?: Readonly<Record<string, string>>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface ChainStepConfig {
|
|
98
|
+
readonly agent?: string;
|
|
99
|
+
readonly task?: string;
|
|
100
|
+
readonly phase?: string;
|
|
101
|
+
readonly label?: string;
|
|
102
|
+
readonly as?: string;
|
|
103
|
+
readonly outputSchema?: string | JsonSchemaObject;
|
|
104
|
+
readonly output?: string | false;
|
|
105
|
+
readonly outputMode?: OutputMode;
|
|
106
|
+
readonly reads?: readonly string[] | false;
|
|
107
|
+
readonly model?: string;
|
|
108
|
+
readonly skills?: readonly string[] | false;
|
|
109
|
+
readonly progress?: boolean;
|
|
110
|
+
readonly parallel?: unknown;
|
|
111
|
+
readonly expand?: unknown;
|
|
112
|
+
readonly collect?: unknown;
|
|
113
|
+
readonly concurrency?: number;
|
|
114
|
+
readonly failFast?: boolean;
|
|
115
|
+
readonly worktree?: boolean;
|
|
116
|
+
readonly acceptance?: AcceptanceInput;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export interface ChainConfig {
|
|
120
|
+
readonly name: string;
|
|
121
|
+
readonly localName?: string;
|
|
122
|
+
readonly packageName?: string;
|
|
123
|
+
readonly description: string;
|
|
124
|
+
readonly source: AgentSource;
|
|
125
|
+
readonly filePath: string;
|
|
126
|
+
readonly steps: readonly ChainStepConfig[];
|
|
127
|
+
readonly extraFields?: Readonly<Record<string, string>>;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export type ThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
131
|
+
export type ThinkingLevelMap = Readonly<Partial<Record<ThinkingLevel, string | null>>>;
|
|
132
|
+
|
|
133
|
+
export interface ModelInfo {
|
|
134
|
+
readonly provider: string;
|
|
135
|
+
readonly id: string;
|
|
136
|
+
readonly fullId: string;
|
|
137
|
+
readonly reasoning?: boolean;
|
|
138
|
+
readonly thinkingLevelMap?: ThinkingLevelMap;
|
|
139
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { AgentToolResult, AgentToolUpdateCallback } from "@earendil-works/pi-agent-core";
|
|
2
|
+
import type { HistoryFreshness, HistoryPage, HistorySearchPage } from "./history.ts";
|
|
3
|
+
import type { ReadonlyInput } from "./inputs.ts";
|
|
4
|
+
import type { ManagementControl, OwnedRunView } from "./owned-runs.ts";
|
|
5
|
+
import type {
|
|
6
|
+
AgentProgress,
|
|
7
|
+
ControlEvent,
|
|
8
|
+
ProgressSummary,
|
|
9
|
+
SubagentResultStatus,
|
|
10
|
+
SubagentRunMode,
|
|
11
|
+
} from "./progress.ts";
|
|
12
|
+
import type { SupervisorQuestionSummary } from "./questions.ts";
|
|
13
|
+
import type { ArtifactPaths, SingleResult } from "./results.ts";
|
|
14
|
+
import type { UsageContribution } from "./usage.ts";
|
|
15
|
+
import type { ChainOutputMap, WorkflowGraphSnapshot } from "./workflow.ts";
|
|
16
|
+
|
|
17
|
+
/** Mutable assembly owner. Publish a ReadonlyDetails view without copying live progress sources. */
|
|
18
|
+
export interface Details {
|
|
19
|
+
accounting?: { readonly state: "incomplete"; readonly error: string };
|
|
20
|
+
mode: SubagentRunMode | "management";
|
|
21
|
+
/** Receipt only on native tool result with matching top-level usage. */
|
|
22
|
+
parentUsage?: { readonly contributions: readonly UsageContribution[] };
|
|
23
|
+
runId?: string;
|
|
24
|
+
context?: "fresh" | "fork";
|
|
25
|
+
results: SingleResult[];
|
|
26
|
+
controlEvents?: readonly ControlEvent[];
|
|
27
|
+
asyncId?: string;
|
|
28
|
+
asyncDir?: string;
|
|
29
|
+
asyncPid?: number;
|
|
30
|
+
shareUrl?: string;
|
|
31
|
+
gistUrl?: string;
|
|
32
|
+
shareError?: string;
|
|
33
|
+
progress?: AgentProgress[];
|
|
34
|
+
progressSummary?: ProgressSummary;
|
|
35
|
+
intercomTargets?: readonly string[];
|
|
36
|
+
managementControl?: ManagementControl;
|
|
37
|
+
managementControls?: readonly ManagementControl[];
|
|
38
|
+
questions?: readonly SupervisorQuestionSummary[];
|
|
39
|
+
questionList?: {
|
|
40
|
+
readonly total: number;
|
|
41
|
+
readonly offset: number;
|
|
42
|
+
readonly limit: number;
|
|
43
|
+
readonly nextOffset?: number;
|
|
44
|
+
};
|
|
45
|
+
wait?: {
|
|
46
|
+
readonly runId: string;
|
|
47
|
+
readonly completionId?: string;
|
|
48
|
+
readonly index?: number;
|
|
49
|
+
readonly status: "completed" | "cancelled" | "yielded" | "awaiting_input" | "unavailable";
|
|
50
|
+
};
|
|
51
|
+
run?: OwnedRunView;
|
|
52
|
+
runs?: readonly (Pick<
|
|
53
|
+
OwnedRunView,
|
|
54
|
+
| "runId"
|
|
55
|
+
| "source"
|
|
56
|
+
| "mode"
|
|
57
|
+
| "cwd"
|
|
58
|
+
| "task"
|
|
59
|
+
| "state"
|
|
60
|
+
| "updatedAt"
|
|
61
|
+
| "attention"
|
|
62
|
+
| "review"
|
|
63
|
+
| "rootRunId"
|
|
64
|
+
| "predecessorRunId"
|
|
65
|
+
| "predecessorIndex"
|
|
66
|
+
> & { readonly summary?: string; readonly continuations?: readonly string[] })[];
|
|
67
|
+
runList?: {
|
|
68
|
+
readonly total: number;
|
|
69
|
+
readonly offset: number;
|
|
70
|
+
readonly limit: number;
|
|
71
|
+
readonly nextOffset?: number;
|
|
72
|
+
readonly nextCursor?: string;
|
|
73
|
+
readonly version: number;
|
|
74
|
+
readonly freshness: HistoryFreshness;
|
|
75
|
+
};
|
|
76
|
+
history?: HistoryPage;
|
|
77
|
+
historySearch?: HistorySearchPage;
|
|
78
|
+
intercomDelivery?: {
|
|
79
|
+
readonly delivered: boolean;
|
|
80
|
+
readonly to: string;
|
|
81
|
+
readonly status: SubagentResultStatus;
|
|
82
|
+
readonly summary: string;
|
|
83
|
+
};
|
|
84
|
+
artifacts?: { readonly dir: string; readonly files: readonly ArtifactPaths[] };
|
|
85
|
+
truncation?: {
|
|
86
|
+
readonly truncated: boolean;
|
|
87
|
+
readonly originalBytes?: number;
|
|
88
|
+
readonly originalLines?: number;
|
|
89
|
+
readonly artifactPath?: string;
|
|
90
|
+
};
|
|
91
|
+
chainAgents?: readonly string[];
|
|
92
|
+
totalSteps?: number;
|
|
93
|
+
currentStepIndex?: number;
|
|
94
|
+
workflowGraph?: WorkflowGraphSnapshot;
|
|
95
|
+
outputs?: ChainOutputMap;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export type ReadonlyDetails = ReadonlyInput<Details>;
|
|
99
|
+
|
|
100
|
+
/** Native result envelope with an application-owned readonly details snapshot. */
|
|
101
|
+
export type SubagentExecutionResult = AgentToolResult<ReadonlyDetails>;
|
|
102
|
+
|
|
103
|
+
/** Native streaming callback; its supplied result has the same published details contract. */
|
|
104
|
+
export type SubagentExecutionUpdateCallback = AgentToolUpdateCallback<ReadonlyDetails>;
|