pi-crew 0.9.50 → 0.9.52
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 +150 -0
- package/README.md +216 -20
- package/dist/build-meta.json +2222 -1761
- package/dist/index.mjs +18636 -17603
- package/docs/actions-reference.md +431 -1
- package/package.json +19 -9
- package/schema.json +41 -0
- package/scripts/check-bundle-size.mjs +38 -0
- package/scripts/test-runner.mjs +11 -1
- package/skills/distill-software/SKILL.md +24 -1
- package/dist/index.mjs.map +0 -7
- package/docs/FEATURE_INTAKE.md +0 -126
- package/docs/HARNESS.md +0 -87
- package/docs/HARNESS_BACKLOG.md +0 -89
- package/docs/PROJECT_REVIEW.md +0 -270
- package/docs/PROJECT_REVIEW_FIXES.md +0 -342
- package/docs/PROJECT_REVIEW_ROUND4.md +0 -156
- package/docs/PROJECT_REVIEW_ROUND5.md +0 -86
- package/docs/REVIEW-FINDINGS-2026-06 +0 -357
- package/docs/REVIEW-FINDINGS-2026-07-CORE.md +0 -139
- package/docs/REVIEW-FINDINGS-2026-07.md +0 -125
- package/docs/TEST_MATRIX.md +0 -51
- package/docs/archive/README.md +0 -91
- package/docs/archive/followup-review-round3-2026-05-12.md +0 -342
- package/docs/archive/followup-review-round4-2026-05-13.md +0 -107
- package/docs/archive/pi-crew-bugs.md +0 -961
- package/docs/archive/pi-crew-test-final.md +0 -120
- package/docs/archive/pi-crew-test-results.md +0 -260
- package/docs/archive/pi-crew-test-round2.md +0 -136
- package/docs/archive/pi-crew-test-round4.md +0 -100
- package/docs/archive/pi-crew-test-round5.md +0 -70
- package/docs/archive/pi-crew-test-round6.md +0 -110
- package/docs/archive/pi-crew-v0.5.10-audit-fix-plan.md +0 -60
- package/docs/archive/pi-crew-v0.5.11-audit-fix-plan.md +0 -92
- package/docs/archive/pi-crew-v0.5.12-audit-fix-plan.md +0 -76
- package/docs/archive/pi-crew-v0.5.13-audit-fix-plan.md +0 -75
- package/docs/archive/pi-crew-v0.5.14-audit-fix-plan.md +0 -75
- package/docs/archive/pi-crew-v0.5.16-audit-fix-plan.md +0 -35
- package/docs/archive/pi-crew-v0.5.17-audit-fix-plan.md +0 -80
- package/docs/archive/pi-crew-v0.5.5-audit-fix-plan.md +0 -133
- package/docs/archive/pi-crew-v0.5.9-audit-fix-plan.md +0 -88
- package/docs/archive/pi-mono-opportunities.md +0 -969
- package/docs/archive/pi-mono-review.md +0 -291
- package/docs/archive/pi-subagent4-comparison.md +0 -261
- package/docs/archive/pi-subagents3-deep-analysis.md +0 -508
- package/docs/bugs/bug-021-notification-badge-counter-misleading.md +0 -293
- package/docs/bugs/bug-023-chain-windows-path-resolution.md +0 -106
- package/docs/bugs/bug-quota-display-truncation.md +0 -223
- package/docs/bugs/cross-session-notification-leakage.md +0 -82
- package/docs/code-review-2026-05-11.md +0 -592
- package/docs/coding-agent-optimization.md +0 -268
- package/docs/comparison-pi-subagents-vs-pi-crew.md +0 -303
- package/docs/decisions/0001-durable-state.md +0 -41
- package/docs/decisions/0002-child-process-for-async.md +0 -42
- package/docs/decisions/0003-depth-guard.md +0 -36
- package/docs/decisions/0004-execfile-over-exec.md +0 -34
- package/docs/decisions/0005-no-parameter-properties.md +0 -49
- package/docs/decisions/0006-publish-bundled-esm.md +0 -63
- package/docs/decisions/0007-active-run-binary-index.md +0 -54
- package/docs/decisions/0008-child-pi-warm-pool.md +0 -61
- package/docs/decisions/2026-07-21-broker-phase4-default-on.md +0 -77
- package/docs/decisions/2026-07-21-broker-windows-perms.md +0 -91
- package/docs/decisions/2026-07-22-broker-phase4-gated-on.md +0 -99
- package/docs/decisions/2026-07-24-oidc-trusted-publishing.md +0 -112
- package/docs/decisions/README.md +0 -26
- package/docs/deep-review-report.md +0 -384
- package/docs/distillation/cybersecurity-patterns.md +0 -294
- package/docs/feature-analysis-subagent4.md +0 -305
- package/docs/fix-plan-disabletools-exit-null.md +0 -219
- package/docs/fixes/BATCH_A_H1_H2.md +0 -86
- package/docs/fixes/bug-006-foreground-cancel-concurrent.md +0 -78
- package/docs/fixes/bug-007-async-notifier-stale-ctx.md +0 -112
- package/docs/fixes/bug-008-child-process-silent-timeout.md +0 -100
- package/docs/fixes/bug-009-executor-yield-limit-needs-attention.md +0 -75
- package/docs/fixes/bug-010-child-process-api-key-filtered.md +0 -109
- package/docs/fixes/bug-011-spawn-pi-enoent.md +0 -92
- package/docs/fixes/bug-012-essential-env-stripped.md +0 -89
- package/docs/fixes/bug-013-background-runner-death.md +0 -84
- package/docs/fixes/bug-014-infinite-retry-loop-needs-attention.md +0 -82
- package/docs/fixes/bug-015-background-runner-sigterm.md +0 -65
- package/docs/fixes/bug-017-background-runner-session-shutdown.md +0 -66
- package/docs/fixes/bug-017-background-runner-sigkill-double-fork.md +0 -28
- package/docs/fixes/bug-018-child-pi-worker-stdin-hang.md +0 -61
- package/docs/fixes/bug-019-phantom-runs-temp-workspace.md +0 -52
- package/docs/fixes/bug-020-infinite-retry-loop-needs-attention.md +0 -47
- package/docs/fixes/v0.9.10/locks-fix-verify.md +0 -3
- package/docs/fixes/v0.9.10/smoke-test.md +0 -12
- package/docs/followup-plan-2026-05-12.md +0 -463
- package/docs/followup-review-2026-05-12.md +0 -297
- package/docs/goals.md +0 -59
- package/docs/implementation-plan-top3.md +0 -333
- package/docs/issue-29-analysis.md +0 -189
- package/docs/live-mailbox-runtime.md +0 -36
- package/docs/migration/atomic-write-v2-migration.md +0 -299
- package/docs/next-upgrade-roadmap.md +0 -808
- package/docs/oh-my-pi-research.md +0 -509
- package/docs/optimization-plan-2026-07.md +0 -366
- package/docs/optimization-plan.md +0 -644
- package/docs/patterns/command-agent-skill.md +0 -71
- package/docs/perf/baseline-2026-05.md +0 -113
- package/docs/perf/final-report-2026-05.md +0 -206
- package/docs/perf/optimization-plan-2026-07-verified.md +0 -396
- package/docs/perf/performance-audit-report-2026-07.md +0 -948
- package/docs/perf/performance-review-2026-07.md +0 -287
- package/docs/perf/sprint-1-report.md +0 -71
- package/docs/perf/sprint-2-report.md +0 -81
- package/docs/perf/sprint-2.5-report.md +0 -53
- package/docs/perf/sprint-3-report.md +0 -36
- package/docs/perf/sprint-4-report.md +0 -47
- package/docs/perf/sprint-5-report.md +0 -51
- package/docs/perf/sprint-6-report.md +0 -94
- package/docs/perf/sprint-7-report.md +0 -74
- package/docs/perf/upgrade-plan-2026-05.md +0 -147
- package/docs/performance-optimization-execution-plan.md +0 -520
- package/docs/phase4-triage.md +0 -58
- package/docs/pi-crew-investigation-report.md +0 -411
- package/docs/product/README.md +0 -31
- package/docs/product/platform.md +0 -27
- package/docs/product/runtime-safety.md +0 -37
- package/docs/product/team-run.md +0 -39
- package/docs/product/team-tool.md +0 -37
- package/docs/runtime-analysis-child-vs-live.md +0 -171
- package/docs/runtime-migration-in-process-analysis.md +0 -250
- package/docs/skills/REFERENCE.md +0 -138
- package/docs/stories/README.md +0 -32
- package/docs/stories/US-DEPS-major-upgrade.md +0 -62
- package/docs/stories/backlog.md +0 -36
- package/docs/superpowers/plans/2026-06-09-fallow-patterns-adoption.md +0 -1270
- package/docs/templates/decision.md +0 -27
- package/docs/templates/story.md +0 -44
- package/docs/templates/validation-report.md +0 -32
- package/docs/ui-optimization-plan.md +0 -447
- package/src/adapters/claude-adapter.ts +0 -23
- package/src/adapters/codex-adapter.ts +0 -21
- package/src/adapters/cursor-adapter.ts +0 -17
- package/src/adapters/export-util.ts +0 -143
- package/src/adapters/index.ts +0 -15
- package/src/adapters/registry.ts +0 -18
- package/src/adapters/types.ts +0 -23
- package/src/agents/agent-config.ts +0 -194
- package/src/agents/agent-search.ts +0 -98
- package/src/agents/agent-serializer.ts +0 -38
- package/src/agents/discover-agents.ts +0 -623
- package/src/benchmark/benchmark-runner.ts +0 -313
- package/src/benchmark/feedback-loop.ts +0 -73
- package/src/config/config.ts +0 -1269
- package/src/config/defaults.ts +0 -193
- package/src/config/drift-detector.ts +0 -290
- package/src/config/markers.ts +0 -330
- package/src/config/resilient-parser.ts +0 -117
- package/src/config/role-tools.ts +0 -118
- package/src/config/suggestions.ts +0 -75
- package/src/config/types.ts +0 -278
- package/src/errors.ts +0 -194
- package/src/extension/action-suggestions.ts +0 -117
- package/src/extension/async-notifier.ts +0 -179
- package/src/extension/autonomous-policy.ts +0 -209
- package/src/extension/command-completions.ts +0 -120
- package/src/extension/context-status-injection.ts +0 -185
- package/src/extension/crew-autocomplete.ts +0 -131
- package/src/extension/crew-cleanup.ts +0 -168
- package/src/extension/crew-input-router.ts +0 -93
- package/src/extension/crew-shortcuts.ts +0 -87
- package/src/extension/crew-vibes/cat-frames.ts +0 -18
- package/src/extension/crew-vibes/config.ts +0 -195
- package/src/extension/crew-vibes/figures.ts +0 -101
- package/src/extension/crew-vibes/font-detect.ts +0 -71
- package/src/extension/crew-vibes/footer.ts +0 -292
- package/src/extension/crew-vibes/index.ts +0 -432
- package/src/extension/crew-vibes/provider-usage.ts +0 -396
- package/src/extension/crew-vibes/render.ts +0 -206
- package/src/extension/crew-vibes/speed.ts +0 -286
- package/src/extension/cross-extension-rpc.ts +0 -350
- package/src/extension/help.ts +0 -62
- package/src/extension/import-index.ts +0 -74
- package/src/extension/knowledge-injection.ts +0 -402
- package/src/extension/management.ts +0 -571
- package/src/extension/message-renderers.ts +0 -108
- package/src/extension/notification-router.ts +0 -152
- package/src/extension/notification-sink.ts +0 -54
- package/src/extension/pi-api.ts +0 -56
- package/src/extension/plan-orchestrate.ts +0 -302
- package/src/extension/project-init.ts +0 -170
- package/src/extension/register.ts +0 -113
- package/src/extension/registration/artifact-cleanup.ts +0 -20
- package/src/extension/registration/command-registration.ts +0 -58
- package/src/extension/registration/command-utils.ts +0 -58
- package/src/extension/registration/commands.ts +0 -1228
- package/src/extension/registration/compaction-guard.ts +0 -333
- package/src/extension/registration/context-builder.ts +0 -135
- package/src/extension/registration/crash-recovery-cache.ts +0 -54
- package/src/extension/registration/foreground-run-controller.ts +0 -238
- package/src/extension/registration/hook-registration.ts +0 -119
- package/src/extension/registration/lazy-configurers.ts +0 -124
- package/src/extension/registration/lifecycle-handlers.ts +0 -923
- package/src/extension/registration/lifecycle.ts +0 -259
- package/src/extension/registration/observability.ts +0 -322
- package/src/extension/registration/registration-types.ts +0 -158
- package/src/extension/registration/runtime-cleanup.ts +0 -230
- package/src/extension/registration/subagent-helpers.ts +0 -125
- package/src/extension/registration/subagent-manager-setup.ts +0 -330
- package/src/extension/registration/subagent-tools.ts +0 -456
- package/src/extension/registration/team-tool.ts +0 -220
- package/src/extension/registration/tool-registration.ts +0 -50
- package/src/extension/registration/ui.ts +0 -172
- package/src/extension/registration/viewers.ts +0 -121
- package/src/extension/registration/wire-cross-extension.ts +0 -37
- package/src/extension/result-watcher.ts +0 -139
- package/src/extension/rpc-hmac.ts +0 -256
- package/src/extension/run-bundle-schema.ts +0 -104
- package/src/extension/run-export.ts +0 -97
- package/src/extension/run-import.ts +0 -168
- package/src/extension/run-index.ts +0 -131
- package/src/extension/run-maintenance.ts +0 -190
- package/src/extension/session-summary.ts +0 -18
- package/src/extension/team-manager-command.ts +0 -153
- package/src/extension/team-onboard.ts +0 -177
- package/src/extension/team-recommendation.ts +0 -288
- package/src/extension/team-tool/anchor.ts +0 -172
- package/src/extension/team-tool/api.ts +0 -1244
- package/src/extension/team-tool/auto-summarize.ts +0 -142
- package/src/extension/team-tool/cache-control.ts +0 -19
- package/src/extension/team-tool/cancel.ts +0 -337
- package/src/extension/team-tool/chain-dispatch.ts +0 -95
- package/src/extension/team-tool/chain-executor.ts +0 -379
- package/src/extension/team-tool/config-patch.ts +0 -50
- package/src/extension/team-tool/context.ts +0 -149
- package/src/extension/team-tool/destructive-gate.ts +0 -52
- package/src/extension/team-tool/doctor.ts +0 -431
- package/src/extension/team-tool/explain.ts +0 -282
- package/src/extension/team-tool/failure-patterns.ts +0 -118
- package/src/extension/team-tool/goal-wrap.ts +0 -330
- package/src/extension/team-tool/goal.ts +0 -556
- package/src/extension/team-tool/handle-schedule.ts +0 -332
- package/src/extension/team-tool/handle-settings.ts +0 -520
- package/src/extension/team-tool/health-monitor.ts +0 -481
- package/src/extension/team-tool/inspect.ts +0 -88
- package/src/extension/team-tool/intent-policy.ts +0 -45
- package/src/extension/team-tool/lifecycle-actions.ts +0 -615
- package/src/extension/team-tool/orchestrate.ts +0 -98
- package/src/extension/team-tool/parallel-dispatch.ts +0 -183
- package/src/extension/team-tool/plan.ts +0 -50
- package/src/extension/team-tool/respond.ts +0 -150
- package/src/extension/team-tool/run-not-found.ts +0 -49
- package/src/extension/team-tool/run.ts +0 -1035
- package/src/extension/team-tool/status.ts +0 -260
- package/src/extension/team-tool/workflow-manage.ts +0 -261
- package/src/extension/team-tool-types.ts +0 -26
- package/src/extension/team-tool.ts +0 -1116
- package/src/extension/tool-result.ts +0 -16
- package/src/extension/validate-resources.ts +0 -108
- package/src/hooks/registry.ts +0 -200
- package/src/hooks/types.ts +0 -69
- package/src/i18n.ts +0 -212
- package/src/observability/correlation.ts +0 -50
- package/src/observability/event-bus.ts +0 -86
- package/src/observability/event-to-metric.ts +0 -170
- package/src/observability/exporters/adapter.ts +0 -27
- package/src/observability/exporters/otlp-exporter.ts +0 -356
- package/src/observability/exporters/prometheus-exporter.ts +0 -54
- package/src/observability/metric-registry.ts +0 -100
- package/src/observability/metric-retention.ts +0 -64
- package/src/observability/metric-sink.ts +0 -99
- package/src/observability/metrics-primitives.ts +0 -219
- package/src/plugins/plugin-define.ts +0 -6
- package/src/plugins/plugin-registry.ts +0 -32
- package/src/plugins/plugins/index.ts +0 -3
- package/src/plugins/plugins/nextjs.ts +0 -19
- package/src/plugins/plugins/vite.ts +0 -10
- package/src/plugins/plugins/vitest.ts +0 -9
- package/src/prompt/prompt-runtime.ts +0 -380
- package/src/runtime/adaptive-plan.ts +0 -563
- package/src/runtime/agent-control.ts +0 -215
- package/src/runtime/agent-memory.ts +0 -81
- package/src/runtime/agent-observability.ts +0 -122
- package/src/runtime/anchor-manager.ts +0 -475
- package/src/runtime/async-marker.ts +0 -32
- package/src/runtime/async-runner.ts +0 -381
- package/src/runtime/attention-events.ts +0 -28
- package/src/runtime/auto-summarize.ts +0 -344
- package/src/runtime/background-runner.ts +0 -837
- package/src/runtime/batch-barrier.ts +0 -147
- package/src/runtime/broker-issuer.ts +0 -37
- package/src/runtime/cancellation-token.ts +0 -99
- package/src/runtime/cancellation.ts +0 -99
- package/src/runtime/capability-inventory.ts +0 -137
- package/src/runtime/chain-parser.ts +0 -237
- package/src/runtime/chain-runner.ts +0 -606
- package/src/runtime/checkpoint.ts +0 -291
- package/src/runtime/child-pi-constants.ts +0 -42
- package/src/runtime/child-pi-kill.ts +0 -180
- package/src/runtime/child-pi-pool.ts +0 -68
- package/src/runtime/child-pi-spawn.ts +0 -287
- package/src/runtime/child-pi-steering.ts +0 -128
- package/src/runtime/child-pi-streams.ts +0 -296
- package/src/runtime/child-pi-transcript.ts +0 -169
- package/src/runtime/child-pi.ts +0 -1105
- package/src/runtime/coalesce-tasks.ts +0 -268
- package/src/runtime/code-summary.ts +0 -292
- package/src/runtime/command-trace.ts +0 -105
- package/src/runtime/compact-pipeline.ts +0 -56
- package/src/runtime/compact-stages/ansi-strip-stage.ts +0 -25
- package/src/runtime/compact-stages/blank-collapse-stage.ts +0 -31
- package/src/runtime/compact-stages/deduplicate-stage.ts +0 -34
- package/src/runtime/compact-stages/head-snap-stage.ts +0 -57
- package/src/runtime/compact-stages/index.ts +0 -23
- package/src/runtime/compact-stages/tail-capture-stage.ts +0 -77
- package/src/runtime/compact-stages/truncation-stage.ts +0 -74
- package/src/runtime/compaction-summary.ts +0 -278
- package/src/runtime/completion-guard.ts +0 -207
- package/src/runtime/concurrency.ts +0 -58
- package/src/runtime/crash-classification.ts +0 -229
- package/src/runtime/crash-recovery.ts +0 -577
- package/src/runtime/crew-agent-records.ts +0 -593
- package/src/runtime/crew-agent-runtime.ts +0 -62
- package/src/runtime/crew-broker-child.ts +0 -88
- package/src/runtime/crew-broker-client.ts +0 -673
- package/src/runtime/crew-broker-tokens.ts +0 -84
- package/src/runtime/crew-broker.ts +0 -1276
- package/src/runtime/crew-hooks.ts +0 -227
- package/src/runtime/cross-extension-rpc.ts +0 -143
- package/src/runtime/custom-tools/irc-tool.ts +0 -282
- package/src/runtime/custom-tools/submit-result-tool.ts +0 -102
- package/src/runtime/deadletter.ts +0 -47
- package/src/runtime/delivery-coordinator.ts +0 -211
- package/src/runtime/delta-conflict.ts +0 -348
- package/src/runtime/deterministic-ast.ts +0 -161
- package/src/runtime/diagnostic-export.ts +0 -171
- package/src/runtime/direct-run.ts +0 -45
- package/src/runtime/dwf-state-store.ts +0 -102
- package/src/runtime/dynamic-workflow-context.ts +0 -1016
- package/src/runtime/dynamic-workflow-runner.ts +0 -310
- package/src/runtime/effectiveness.ts +0 -90
- package/src/runtime/errors/crew-errors.ts +0 -162
- package/src/runtime/event-stream-bridge.ts +0 -98
- package/src/runtime/foreground-control.ts +0 -193
- package/src/runtime/foreground-watchdog.ts +0 -132
- package/src/runtime/global-worker-cap.ts +0 -96
- package/src/runtime/goal-achievement.ts +0 -148
- package/src/runtime/goal-evaluator.ts +0 -361
- package/src/runtime/goal-loop-runner.ts +0 -828
- package/src/runtime/goal-state-store.ts +0 -219
- package/src/runtime/green-contract.ts +0 -55
- package/src/runtime/group-join.ts +0 -267
- package/src/runtime/handoff-manager.ts +0 -598
- package/src/runtime/heartbeat-gradient.ts +0 -36
- package/src/runtime/heartbeat-watcher.ts +0 -239
- package/src/runtime/hidden-handoff.ts +0 -407
- package/src/runtime/important-line-classifier.ts +0 -140
- package/src/runtime/intercom-bridge.ts +0 -187
- package/src/runtime/iteration-hooks.ts +0 -305
- package/src/runtime/live-agent-control.ts +0 -136
- package/src/runtime/live-agent-manager.ts +0 -704
- package/src/runtime/live-control-realtime.ts +0 -56
- package/src/runtime/live-extension-bridge.ts +0 -148
- package/src/runtime/live-irc.ts +0 -97
- package/src/runtime/live-session-health.ts +0 -108
- package/src/runtime/live-session-runtime.ts +0 -1139
- package/src/runtime/loop-gates.ts +0 -128
- package/src/runtime/manifest-cache.ts +0 -375
- package/src/runtime/mcp-proxy.ts +0 -105
- package/src/runtime/metric-parser.ts +0 -36
- package/src/runtime/model-fallback.ts +0 -409
- package/src/runtime/model-resolver.ts +0 -126
- package/src/runtime/model-scope.ts +0 -158
- package/src/runtime/orphan-worker-registry.ts +0 -465
- package/src/runtime/output-validator.ts +0 -202
- package/src/runtime/overflow-recovery.ts +0 -206
- package/src/runtime/parallel-research.ts +0 -68
- package/src/runtime/parallel-utils.ts +0 -160
- package/src/runtime/parent-guard.ts +0 -134
- package/src/runtime/path-overlap.ts +0 -150
- package/src/runtime/peer-dep.ts +0 -292
- package/src/runtime/per-write-validator.ts +0 -181
- package/src/runtime/phase-progress.ts +0 -217
- package/src/runtime/phase-tracker.ts +0 -385
- package/src/runtime/pi-args.ts +0 -655
- package/src/runtime/pi-json-output.ts +0 -170
- package/src/runtime/pi-spawn.ts +0 -273
- package/src/runtime/pipeline-runner.ts +0 -523
- package/src/runtime/plan-templates.ts +0 -201
- package/src/runtime/policy-engine.ts +0 -115
- package/src/runtime/post-checks.ts +0 -142
- package/src/runtime/post-exit-stdio-guard.ts +0 -104
- package/src/runtime/process-lifecycle.ts +0 -491
- package/src/runtime/process-status.ts +0 -154
- package/src/runtime/progress-event-coalescer.ts +0 -44
- package/src/runtime/progress-tracker.ts +0 -124
- package/src/runtime/prose-compressor.ts +0 -162
- package/src/runtime/recovery-recipes.ts +0 -203
- package/src/runtime/replace.ts +0 -570
- package/src/runtime/resilient-edit.ts +0 -153
- package/src/runtime/result-extractor.ts +0 -213
- package/src/runtime/retry-executor.ts +0 -100
- package/src/runtime/retry-runner.ts +0 -336
- package/src/runtime/role-permission.ts +0 -59
- package/src/runtime/run-coalesced-task-group.ts +0 -308
- package/src/runtime/run-drift.ts +0 -219
- package/src/runtime/run-tracker.ts +0 -116
- package/src/runtime/runtime-policy.ts +0 -29
- package/src/runtime/runtime-resolver.ts +0 -172
- package/src/runtime/runtime-warmup.ts +0 -160
- package/src/runtime/scheduler.ts +0 -353
- package/src/runtime/semaphore.ts +0 -141
- package/src/runtime/sensitive-paths.ts +0 -93
- package/src/runtime/session-resources.ts +0 -25
- package/src/runtime/session-snapshot.ts +0 -59
- package/src/runtime/session-usage.ts +0 -79
- package/src/runtime/settings-store.ts +0 -155
- package/src/runtime/sidechain-output.ts +0 -35
- package/src/runtime/single-agent-compose.ts +0 -84
- package/src/runtime/skill-effectiveness.ts +0 -524
- package/src/runtime/skill-instructions.ts +0 -391
- package/src/runtime/stale-reconciler.ts +0 -680
- package/src/runtime/stream-preview.ts +0 -184
- package/src/runtime/streaming-output.ts +0 -50
- package/src/runtime/subagent-manager.ts +0 -561
- package/src/runtime/subprocess-tool-registry.ts +0 -70
- package/src/runtime/supervisor-contact.ts +0 -64
- package/src/runtime/task-display.ts +0 -52
- package/src/runtime/task-graph-scheduler.ts +0 -227
- package/src/runtime/task-graph.ts +0 -290
- package/src/runtime/task-health.ts +0 -83
- package/src/runtime/task-id.ts +0 -161
- package/src/runtime/task-output-context.ts +0 -602
- package/src/runtime/task-packet.ts +0 -268
- package/src/runtime/task-quality.ts +0 -199
- package/src/runtime/task-runner/capabilities.ts +0 -78
- package/src/runtime/task-runner/context-retrieval.ts +0 -163
- package/src/runtime/task-runner/live-executor.ts +0 -227
- package/src/runtime/task-runner/output-splitter.ts +0 -152
- package/src/runtime/task-runner/progress.ts +0 -157
- package/src/runtime/task-runner/prompt-builder.ts +0 -278
- package/src/runtime/task-runner/prompt-pipeline.ts +0 -88
- package/src/runtime/task-runner/result-utils.ts +0 -16
- package/src/runtime/task-runner/retrieval-orchestrator.ts +0 -310
- package/src/runtime/task-runner/run-projection.ts +0 -125
- package/src/runtime/task-runner/state-helpers.ts +0 -176
- package/src/runtime/task-runner/tail-read.ts +0 -34
- package/src/runtime/task-runner.ts +0 -1420
- package/src/runtime/team-runner-artifacts.ts +0 -13
- package/src/runtime/team-runner.ts +0 -1993
- package/src/runtime/tool-output-pruner.ts +0 -333
- package/src/runtime/tool-progress.ts +0 -278
- package/src/runtime/usage-tracker.ts +0 -73
- package/src/runtime/verification-gates.ts +0 -571
- package/src/runtime/verification-integrity.ts +0 -105
- package/src/runtime/verification-worktree.ts +0 -186
- package/src/runtime/worker-heartbeat.ts +0 -25
- package/src/runtime/worker-startup.ts +0 -83
- package/src/runtime/workflow-state.ts +0 -195
- package/src/runtime/workspace-lock.ts +0 -443
- package/src/runtime/workspace-tree.ts +0 -312
- package/src/runtime/yield-handler.ts +0 -224
- package/src/runtime/zombie-scanner.ts +0 -298
- package/src/schema/config-schema.ts +0 -327
- package/src/schema/team-tool-schema.ts +0 -415
- package/src/schema/validation-types.ts +0 -159
- package/src/skills/discover-skills.ts +0 -197
- package/src/skills/skill-templates.ts +0 -456
- package/src/skills/validate.ts +0 -285
- package/src/state/active-run-registry.ts +0 -439
- package/src/state/artifact-store.ts +0 -176
- package/src/state/atomic-write.ts +0 -903
- package/src/state/blob-store.ts +0 -308
- package/src/state/contracts.ts +0 -158
- package/src/state/crew-init.ts +0 -269
- package/src/state/decision-ledger.ts +0 -345
- package/src/state/event-log-rotation.ts +0 -342
- package/src/state/event-log.ts +0 -1311
- package/src/state/event-reconstructor.ts +0 -229
- package/src/state/gitignore-manager.ts +0 -46
- package/src/state/health-store.ts +0 -79
- package/src/state/hook-instinct-bridge.ts +0 -94
- package/src/state/hook-integrations.ts +0 -51
- package/src/state/instinct-store.ts +0 -275
- package/src/state/jsonl-writer.ts +0 -107
- package/src/state/locks.ts +0 -562
- package/src/state/mailbox.ts +0 -916
- package/src/state/observation-store.ts +0 -176
- package/src/state/run-cache.ts +0 -193
- package/src/state/run-graph.ts +0 -183
- package/src/state/run-metrics.ts +0 -165
- package/src/state/schedule.ts +0 -166
- package/src/state/session-state-map.ts +0 -51
- package/src/state/state-store.ts +0 -958
- package/src/state/task-claims.ts +0 -61
- package/src/state/tiered-eval.ts +0 -480
- package/src/state/types-eval.ts +0 -58
- package/src/state/types.ts +0 -440
- package/src/state/usage.ts +0 -138
- package/src/state/worker-atomic-writer.ts +0 -194
- package/src/subagents/async-entry.ts +0 -1
- package/src/subagents/index.ts +0 -3
- package/src/subagents/live/control.ts +0 -1
- package/src/subagents/live/manager.ts +0 -1
- package/src/subagents/live/realtime.ts +0 -1
- package/src/subagents/live/session-runtime.ts +0 -1
- package/src/subagents/manager.ts +0 -1
- package/src/subagents/spawn.ts +0 -1
- package/src/teams/discover-teams.ts +0 -187
- package/src/teams/team-config.ts +0 -27
- package/src/teams/team-serializer.ts +0 -38
- package/src/tools/safe-bash-extension.ts +0 -54
- package/src/tools/safe-bash.ts +0 -505
- package/src/types/diff.d.ts +0 -18
- package/src/types/new-api-types.ts +0 -35
- package/src/ui/agent-management-overlay.ts +0 -160
- package/src/ui/card-colors.ts +0 -139
- package/src/ui/crew-footer.ts +0 -102
- package/src/ui/crew-select-list.ts +0 -111
- package/src/ui/dashboard-panes/agents-pane.ts +0 -164
- package/src/ui/dashboard-panes/cancellation-pane.ts +0 -66
- package/src/ui/dashboard-panes/capability-pane.ts +0 -77
- package/src/ui/dashboard-panes/health-pane.ts +0 -31
- package/src/ui/dashboard-panes/mailbox-pane.ts +0 -35
- package/src/ui/dashboard-panes/metrics-pane.ts +0 -37
- package/src/ui/dashboard-panes/progress-pane.ts +0 -38
- package/src/ui/dashboard-panes/transcript-pane.ts +0 -10
- package/src/ui/deploy-bundled-themes.ts +0 -71
- package/src/ui/dwf-phase-display.ts +0 -151
- package/src/ui/dynamic-border.ts +0 -35
- package/src/ui/heartbeat-aggregator.ts +0 -74
- package/src/ui/key-utils.ts +0 -42
- package/src/ui/keybinding-map.ts +0 -248
- package/src/ui/layout-primitives.ts +0 -106
- package/src/ui/live-conversation-overlay.ts +0 -183
- package/src/ui/live-duration.ts +0 -55
- package/src/ui/live-run-sidebar.ts +0 -301
- package/src/ui/loaders.ts +0 -176
- package/src/ui/mascot.ts +0 -436
- package/src/ui/overlays/agent-picker-overlay.ts +0 -65
- package/src/ui/overlays/confirm-overlay.ts +0 -60
- package/src/ui/overlays/help-overlay.ts +0 -177
- package/src/ui/overlays/mailbox-compose-overlay.ts +0 -181
- package/src/ui/overlays/mailbox-compose-preview.ts +0 -78
- package/src/ui/overlays/mailbox-detail-overlay.ts +0 -154
- package/src/ui/pi-ui-compat.ts +0 -68
- package/src/ui/powerbar-publisher.ts +0 -459
- package/src/ui/render-coalescer.ts +0 -101
- package/src/ui/render-diff.ts +0 -160
- package/src/ui/render-scheduler.ts +0 -224
- package/src/ui/run-action-dispatcher.ts +0 -182
- package/src/ui/run-dashboard.ts +0 -913
- package/src/ui/run-event-bus.ts +0 -381
- package/src/ui/run-snapshot-cache.ts +0 -1057
- package/src/ui/settings-overlay.ts +0 -1067
- package/src/ui/snapshot-types.ts +0 -90
- package/src/ui/spinner.ts +0 -17
- package/src/ui/status-colors.ts +0 -143
- package/src/ui/syntax-highlight.ts +0 -136
- package/src/ui/terminal-status.ts +0 -269
- package/src/ui/theme-adapter.ts +0 -271
- package/src/ui/theme-discovery.ts +0 -199
- package/src/ui/tool-progress-formatter.ts +0 -93
- package/src/ui/tool-render.ts +0 -453
- package/src/ui/tool-renderers/brief-mode.ts +0 -225
- package/src/ui/tool-renderers/index.ts +0 -726
- package/src/ui/transcript-cache.ts +0 -128
- package/src/ui/transcript-entries.ts +0 -256
- package/src/ui/transcript-viewer.ts +0 -424
- package/src/ui/widget/index.ts +0 -357
- package/src/ui/widget/widget-formatters.ts +0 -182
- package/src/ui/widget/widget-model.ts +0 -110
- package/src/ui/widget/widget-renderer.ts +0 -182
- package/src/ui/widget/widget-types.ts +0 -36
- package/src/utils/bm25-search.ts +0 -235
- package/src/utils/completion-dedupe.ts +0 -63
- package/src/utils/conflict-detect.ts +0 -668
- package/src/utils/env-allowlist.ts +0 -30
- package/src/utils/env-filter.ts +0 -155
- package/src/utils/file-coalescer.ts +0 -98
- package/src/utils/fingerprint.ts +0 -180
- package/src/utils/frontmatter.ts +0 -70
- package/src/utils/fs-watch.ts +0 -37
- package/src/utils/gh-protocol.ts +0 -556
- package/src/utils/git.ts +0 -260
- package/src/utils/guards.ts +0 -107
- package/src/utils/ids.ts +0 -24
- package/src/utils/incremental-reader.ts +0 -220
- package/src/utils/internal-error.ts +0 -10
- package/src/utils/names.ts +0 -36
- package/src/utils/ndjson.ts +0 -115
- package/src/utils/paths.ts +0 -227
- package/src/utils/project-detector.ts +0 -160
- package/src/utils/redaction.ts +0 -347
- package/src/utils/resolve-shell.ts +0 -36
- package/src/utils/run-watcher-registry.ts +0 -152
- package/src/utils/safe-paths.ts +0 -383
- package/src/utils/scan-cache.ts +0 -144
- package/src/utils/session-utils.ts +0 -110
- package/src/utils/sleep.ts +0 -54
- package/src/utils/socket-path.ts +0 -127
- package/src/utils/sse-parser.ts +0 -129
- package/src/utils/task-name-generator.ts +0 -337
- package/src/utils/timings.ts +0 -33
- package/src/utils/token-counter.ts +0 -200
- package/src/utils/visual.ts +0 -207
- package/src/workflows/cost-estimator.ts +0 -34
- package/src/workflows/discover-workflows.ts +0 -290
- package/src/workflows/intermediate-store.ts +0 -166
- package/src/workflows/preflight-validator.ts +0 -168
- package/src/workflows/topology-analyzer.ts +0 -203
- package/src/workflows/validate-workflow.ts +0 -50
- package/src/workflows/workflow-config.ts +0 -70
- package/src/workflows/workflow-serializer.ts +0 -32
- package/src/worktree/branch-freshness.ts +0 -112
- package/src/worktree/cleanup.ts +0 -341
- package/src/worktree/worktree-manager.ts +0 -1200
package/src/config/types.ts
DELETED
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
// 2.9 — config interface types extracted from src/config/config.ts.
|
|
2
|
-
//
|
|
3
|
-
// All public surface types live here so that hot-path callers (loadConfig,
|
|
4
|
-
// merging helpers, schema validators) can import just the types without
|
|
5
|
-
// pulling in the parser graph. config.ts re-exports every name from this
|
|
6
|
-
// file for backwards compat — existing `import { CrewUiConfig } from "../config/config.ts"`
|
|
7
|
-
// continues to work.
|
|
8
|
-
|
|
9
|
-
export type PiTeamsAutonomyProfile = "manual" | "suggested" | "assisted" | "aggressive";
|
|
10
|
-
|
|
11
|
-
export interface PiTeamsAutonomousConfig {
|
|
12
|
-
profile?: PiTeamsAutonomyProfile;
|
|
13
|
-
enabled?: boolean;
|
|
14
|
-
injectPolicy?: boolean;
|
|
15
|
-
preferAsyncForLongTasks?: boolean;
|
|
16
|
-
allowWorktreeSuggestion?: boolean;
|
|
17
|
-
magicKeywords?: Record<string, string[]>;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface CrewLimitsConfig {
|
|
21
|
-
maxConcurrentWorkers?: number;
|
|
22
|
-
allowUnboundedConcurrency?: boolean;
|
|
23
|
-
maxTaskDepth?: number;
|
|
24
|
-
maxChildrenPerTask?: number;
|
|
25
|
-
maxRunMinutes?: number;
|
|
26
|
-
maxRetriesPerTask?: number;
|
|
27
|
-
maxTasksPerRun?: number;
|
|
28
|
-
heartbeatStaleMs?: number;
|
|
29
|
-
/** Round 25 (M5): serialize on write-path overlap. Default false (off).
|
|
30
|
-
* When true, the scheduler skips ready tasks whose declared `step.output`
|
|
31
|
-
* overlaps with already-picked tasks, so two workers never write the same
|
|
32
|
-
* file in parallel. See src/runtime/path-overlap.ts. */
|
|
33
|
-
serializeOnPathOverlap?: boolean;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export type CrewRuntimeMode = "auto" | "scaffold" | "child-process" | "live-session";
|
|
37
|
-
|
|
38
|
-
export type CompletionMutationGuardMode = "off" | "warn" | "fail";
|
|
39
|
-
export type EffectivenessGuardMode = "off" | "warn" | "block" | "fail";
|
|
40
|
-
|
|
41
|
-
export interface CrewRuntimeConfig {
|
|
42
|
-
mode?: CrewRuntimeMode;
|
|
43
|
-
preferLiveSession?: boolean;
|
|
44
|
-
allowChildProcessFallback?: boolean;
|
|
45
|
-
maxTurns?: number;
|
|
46
|
-
graceTurns?: number;
|
|
47
|
-
/**
|
|
48
|
-
* W2 fix — wall-clock timeout per task in milliseconds. When the task
|
|
49
|
-
* exceeds this limit, input.signal is aborted which triggers the existing
|
|
50
|
-
* SIGTERM → SIGKILL escalation in child-pi.ts. Default 0 (no timeout).
|
|
51
|
-
* Prevents runaway agent loops (e.g. 11_build in oh-my-pi distill run that
|
|
52
|
-
* re-verified completed files 14+ times).
|
|
53
|
-
*/
|
|
54
|
-
taskTimeoutMs?: number;
|
|
55
|
-
inheritContext?: boolean;
|
|
56
|
-
promptMode?: "replace" | "append";
|
|
57
|
-
groupJoin?: "off" | "group" | "smart";
|
|
58
|
-
groupJoinAckTimeoutMs?: number;
|
|
59
|
-
requirePlanApproval?: boolean;
|
|
60
|
-
completionMutationGuard?: CompletionMutationGuardMode;
|
|
61
|
-
effectivenessGuard?: EffectivenessGuardMode;
|
|
62
|
-
yield?: {
|
|
63
|
-
enabled?: boolean;
|
|
64
|
-
maxReminders?: number;
|
|
65
|
-
reminderPrompt?: string;
|
|
66
|
-
};
|
|
67
|
-
/** Policy for per-role runtime selection. Not sensitive — safe to keep in project config. */
|
|
68
|
-
isolationPolicy?: {
|
|
69
|
-
/** Roles that should use child-process for crash isolation. Default: no roles. */
|
|
70
|
-
isolatedRoles?: string[];
|
|
71
|
-
/** Default runtime for roles not in isolatedRoles. Default: "live-session" (uses live-session). */
|
|
72
|
-
defaultRuntime?: "live-session" | "child-process";
|
|
73
|
-
};
|
|
74
|
-
/** Mark certain bash commands as excludeFromContext to reduce context tokens. Default: false */
|
|
75
|
-
excludeContextBash?: boolean;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export interface CrewControlConfig {
|
|
79
|
-
enabled?: boolean;
|
|
80
|
-
needsAttentionAfterMs?: number;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export interface CrewWorktreeConfig {
|
|
84
|
-
setupHook?: string;
|
|
85
|
-
setupHookTimeoutMs?: number;
|
|
86
|
-
linkNodeModules?: boolean;
|
|
87
|
-
seedPaths?: string[];
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/** Goal-wrap config (RFC v0.5 vision: apply `goal` completion-guarantee to builtin workflows). */
|
|
91
|
-
export interface GoalWrapWorkflowConfig {
|
|
92
|
-
enabled?: boolean;
|
|
93
|
-
maxTurns?: number;
|
|
94
|
-
evaluatorModel?: string;
|
|
95
|
-
verification?: { commands: string[]; mode?: "text-only" };
|
|
96
|
-
budgetTotal?: number;
|
|
97
|
-
budgetUnlimited?: boolean;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export interface CrewUiConfig {
|
|
101
|
-
widgetPlacement?: "aboveEditor" | "belowEditor";
|
|
102
|
-
widgetMaxLines?: number;
|
|
103
|
-
powerbar?: boolean;
|
|
104
|
-
dashboardPlacement?: "center" | "right";
|
|
105
|
-
dashboardWidth?: number;
|
|
106
|
-
dashboardLiveRefreshMs?: number;
|
|
107
|
-
autoOpenDashboard?: boolean;
|
|
108
|
-
autoOpenDashboardForForegroundRuns?: boolean;
|
|
109
|
-
autoCloseDashboardMs?: number;
|
|
110
|
-
showModel?: boolean;
|
|
111
|
-
showTokens?: boolean;
|
|
112
|
-
showTools?: boolean;
|
|
113
|
-
transcriptTailBytes?: number;
|
|
114
|
-
mascotStyle?: "cat" | "armin";
|
|
115
|
-
mascotEffect?: "random" | "none" | "typewriter" | "scanline" | "rain" | "fade" | "crt" | "glitch" | "dissolve";
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export interface AgentOverrideConfig {
|
|
119
|
-
disabled?: boolean;
|
|
120
|
-
model?: string | false;
|
|
121
|
-
fallbackModels?: string[] | false;
|
|
122
|
-
thinking?: string | false;
|
|
123
|
-
tools?: string[] | false;
|
|
124
|
-
skills?: string[] | false;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export interface CrewAgentsConfig {
|
|
128
|
-
disableBuiltins?: boolean;
|
|
129
|
-
overrides?: Record<string, AgentOverrideConfig>;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export interface CrewToolsConfig {
|
|
133
|
-
enableClaudeStyleAliases?: boolean;
|
|
134
|
-
enableSteer?: boolean;
|
|
135
|
-
terminateOnForeground?: boolean;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
export interface CrewTelemetryConfig {
|
|
139
|
-
enabled?: boolean;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export interface CrewPolicyConfig {
|
|
143
|
-
requireIntentForDestructiveActions?: boolean;
|
|
144
|
-
disabledCapabilities?: string[];
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
export type CrewNotificationSeverity = "info" | "warning" | "error" | "critical";
|
|
148
|
-
|
|
149
|
-
export interface CrewNotificationsConfig {
|
|
150
|
-
enabled?: boolean;
|
|
151
|
-
severityFilter?: CrewNotificationSeverity[];
|
|
152
|
-
dedupWindowMs?: number;
|
|
153
|
-
batchWindowMs?: number;
|
|
154
|
-
quietHours?: string;
|
|
155
|
-
sinkRetentionDays?: number;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export interface CrewObservabilityConfig {
|
|
159
|
-
enabled?: boolean;
|
|
160
|
-
pollIntervalMs?: number;
|
|
161
|
-
metricRetentionDays?: number;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export interface CrewRetryPolicyConfig {
|
|
165
|
-
maxAttempts?: number;
|
|
166
|
-
backoffMs?: number;
|
|
167
|
-
jitterRatio?: number;
|
|
168
|
-
exponentialFactor?: number;
|
|
169
|
-
retryableErrors?: string[];
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
export interface CrewReliabilityConfig {
|
|
173
|
-
autoRetry?: boolean;
|
|
174
|
-
retryPolicy?: CrewRetryPolicyConfig;
|
|
175
|
-
autoRecover?: boolean;
|
|
176
|
-
deadletterThreshold?: number;
|
|
177
|
-
/** Interval (ms) for periodic stale-run auto-repair. Default 60_000 (60s). Set to 0 to disable. */
|
|
178
|
-
autoRepairIntervalMs?: number;
|
|
179
|
-
/** Remove /tmp/pi-crew-* directories after their orphaned runs are reconciled. Default: true. */
|
|
180
|
-
cleanupOrphanedTempDirs?: boolean;
|
|
181
|
-
/** Bypass the preflight topology validator (workflow threshold rule, .crew/knowledge.md
|
|
182
|
-
* 'pi-crew USAGE THRESHOLD RULE'). When true, runs that would be BLOCKED or WARNED
|
|
183
|
-
* proceed without intervention. Audit-trail the override via events.jsonl.
|
|
184
|
-
* Default: false (enforce). Use only for legitimate audit/debug sessions. */
|
|
185
|
-
forcePreflight?: boolean;
|
|
186
|
-
/** Inject a compact ambient crew-status note into the agent's context on every LLM call while crew runs are in-flight, so the agent stays continuously aware of active runs without calling the `team` tool. No-op when no runs are active. Default: true. */
|
|
187
|
-
ambientStatusInjection?: boolean;
|
|
188
|
-
/**
|
|
189
|
-
* Per-write validation (T5). On every `write`/`edit` tool result, run a
|
|
190
|
-
* zero-cost synchronous validator for the file type and append a `🔴`
|
|
191
|
-
* blocker to the tool result on failure (e.g. malformed JSON). v1 ships
|
|
192
|
-
* JSON only (`JSON.parse` — instant, no process spawn); process-spawning
|
|
193
|
-
* validators (.js/.sh/.py) are a future opt-in. Default: true (opt-out).
|
|
194
|
-
* Set to `false` to disable.
|
|
195
|
-
*/
|
|
196
|
-
perWriteValidation?: boolean;
|
|
197
|
-
/**
|
|
198
|
-
* Opt-in model scope enforcement (F7). When true, subagent model choices
|
|
199
|
-
* that fall outside the user's pi `enabledModels` allowlist are flagged:
|
|
200
|
-
* caller-supplied out-of-scope → hard error before spawn; frontmatter-
|
|
201
|
-
* pinned out-of-scope → warning + runs anyway. Default: false (no
|
|
202
|
-
* enforcement, fully back-compat).
|
|
203
|
-
*/
|
|
204
|
-
scopeModels?: boolean;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
export interface CrewOtlpConfig {
|
|
208
|
-
enabled?: boolean;
|
|
209
|
-
endpoint?: string;
|
|
210
|
-
headers?: Record<string, string>;
|
|
211
|
-
intervalMs?: number;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
export interface PiTeamsConfig {
|
|
215
|
-
asyncByDefault?: boolean;
|
|
216
|
-
executeWorkers?: boolean;
|
|
217
|
-
notifierIntervalMs?: number;
|
|
218
|
-
requireCleanWorktreeLeader?: boolean;
|
|
219
|
-
ignoreMethod?: "gitignore" | "exclude";
|
|
220
|
-
autonomous?: PiTeamsAutonomousConfig;
|
|
221
|
-
limits?: CrewLimitsConfig;
|
|
222
|
-
runtime?: CrewRuntimeConfig;
|
|
223
|
-
control?: CrewControlConfig;
|
|
224
|
-
worktree?: CrewWorktreeConfig;
|
|
225
|
-
goalWrap?: Record<string, GoalWrapWorkflowConfig>;
|
|
226
|
-
agents?: CrewAgentsConfig;
|
|
227
|
-
tools?: CrewToolsConfig;
|
|
228
|
-
telemetry?: CrewTelemetryConfig;
|
|
229
|
-
policy?: CrewPolicyConfig;
|
|
230
|
-
notifications?: CrewNotificationsConfig;
|
|
231
|
-
observability?: CrewObservabilityConfig;
|
|
232
|
-
reliability?: CrewReliabilityConfig;
|
|
233
|
-
otlp?: CrewOtlpConfig;
|
|
234
|
-
ui?: CrewUiConfig;
|
|
235
|
-
/**
|
|
236
|
-
* Inter-pi broker (Phase 0). Local-only socket transport between parent
|
|
237
|
-
* and child pi workers. Default is OFF (`enabled:false`) — keep it that
|
|
238
|
-
* way until Phase 4 soak completes. Numeric limits are bounded by the
|
|
239
|
-
* schema (`src/schema/config-schema.ts`).
|
|
240
|
-
*/
|
|
241
|
-
broker?: CrewBrokerConfig;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
/** CrewBroker config (Phase 0 inter-pi broker). */
|
|
245
|
-
export interface CrewBrokerConfig {
|
|
246
|
-
/** Master switch. `false` keeps the broker fully dormant. */
|
|
247
|
-
enabled?: boolean;
|
|
248
|
-
/** Length of the SHA-256 hex prefix used in the socket filename. 4..32. */
|
|
249
|
-
pathHashLen?: number;
|
|
250
|
-
/** Maximum NDJSON frame size in UTF-8 bytes (default 262144 = 256 KiB). 1024..1048576. */
|
|
251
|
-
maxFrameBytes?: number;
|
|
252
|
-
/** Per-connection outbound queue cap. 32..4096 (default 256). */
|
|
253
|
-
outboundQueueCap?: number;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
export interface LoadedPiTeamsConfig {
|
|
257
|
-
config: PiTeamsConfig;
|
|
258
|
-
path: string;
|
|
259
|
-
paths: string[];
|
|
260
|
-
error?: string;
|
|
261
|
-
warnings?: string[];
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
export interface ConfigValidationResult {
|
|
265
|
-
config: PiTeamsConfig;
|
|
266
|
-
warnings: string[];
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
export interface SavedPiTeamsConfig {
|
|
270
|
-
config: PiTeamsConfig;
|
|
271
|
-
path: string;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
export interface UpdateConfigOptions {
|
|
275
|
-
cwd?: string;
|
|
276
|
-
scope?: "user" | "project";
|
|
277
|
-
unsetPaths?: string[];
|
|
278
|
-
}
|
package/src/errors.ts
DELETED
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
// pi-crew structured error module — taxonomy mapping E001–E006.
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview Error types and structured error handling for pi-crew.
|
|
4
|
-
*
|
|
5
|
-
* This module defines pi-crew's error taxonomy, mapping to semantic categories
|
|
6
|
-
* matching fallow's E001-E004 pattern. It exports three main constructs:
|
|
7
|
-
*
|
|
8
|
-
* - {@link ErrorCode} — a `const` object and string-literal union type alias
|
|
9
|
-
* enumerating machine-readable error codes (E001–E006). Implemented as a
|
|
10
|
-
* `const` object rather than a TypeScript `enum` so that Node's
|
|
11
|
-
* `--experimental-strip-types` can load this module (enum syntax is not
|
|
12
|
-
* supported in strip-only mode).
|
|
13
|
-
*
|
|
14
|
-
* - {@link CrewError} — a structured `Error` subclass that carries an
|
|
15
|
-
* {@link ErrorCode}, an optional human-readable `help` hint, and an optional
|
|
16
|
-
* `context` string. Its `toString()` renders the display format:
|
|
17
|
-
* `error[E001]: Failed to read manifest.json: not found`.
|
|
18
|
-
*
|
|
19
|
-
* - {@link errors} — a factory object exposing convenience constructors
|
|
20
|
-
* (e.g. `errors.fileRead`, `errors.taskNotFound`) that build `CrewError`
|
|
21
|
-
* instances with sensible defaults and pre-attached context.
|
|
22
|
-
*/
|
|
23
|
-
// Implemented as const object + type alias (not `enum`) so that Node's
|
|
24
|
-
// `--experimental-strip-types` can load this module. TypeScript `enum`
|
|
25
|
-
// syntax is not supported in strip-only mode.
|
|
26
|
-
export const ErrorCode = {
|
|
27
|
-
FileReadError: "E001", // Cannot read a file
|
|
28
|
-
FileWriteError: "E002", // Cannot write a file
|
|
29
|
-
TaskNotFound: "E003", // Referenced task ID does not exist
|
|
30
|
-
InvalidStatusTransition: "E004", // Run/task status cannot legally transition
|
|
31
|
-
ConfigError: "E005", // Malformed config or missing required field
|
|
32
|
-
ResourceNotFound: "E006", // Agent/team/workflow not found in discovery paths
|
|
33
|
-
// E1 (Round 15): runtime failure categories that previously threw raw Error
|
|
34
|
-
// with no code, no help hint, and no context. Surfaces actionable guidance.
|
|
35
|
-
ChildTimeout: "E007", // Child Pi worker became unresponsive and was killed
|
|
36
|
-
ModelExhausted: "E008", // All model candidates in the fallback chain failed
|
|
37
|
-
PreStepFailed: "E009", // A pre-step hook script returned a non-zero exit
|
|
38
|
-
EventLogLockTimeout: "E010", // Could not acquire the event-log file lock
|
|
39
|
-
DepthLimitExceeded: "E011", // Pipeline/chain recursion depth limit hit (circular dep)
|
|
40
|
-
RunStale: "E012", // Run reconciled as stale/zombie (heartbeat expired)
|
|
41
|
-
ModelOutOfScope: "E013", // Caller-supplied model is not in pi's enabledModels allowlist (F7 scope gate)
|
|
42
|
-
} as const;
|
|
43
|
-
|
|
44
|
-
export type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];
|
|
45
|
-
|
|
46
|
-
const DEFAULT_HELP: Record<ErrorCode, string | undefined> = {
|
|
47
|
-
[ErrorCode.FileReadError]: "Check that the file exists and that the process has read permission.",
|
|
48
|
-
[ErrorCode.FileWriteError]: "Check that the disk is not full and that the process has write permission.",
|
|
49
|
-
[ErrorCode.TaskNotFound]: "The task may have been removed or the run may be in an inconsistent state. Use `team status` to verify.",
|
|
50
|
-
[ErrorCode.InvalidStatusTransition]: "Verify the run status using `team status` before retrying.",
|
|
51
|
-
[ErrorCode.ConfigError]: "Check the configuration file for syntax errors or missing required fields.",
|
|
52
|
-
[ErrorCode.ResourceNotFound]: "Use `team list` to see available agents, teams, and workflows.",
|
|
53
|
-
// E1 (Round 15): help hints for the new runtime categories.
|
|
54
|
-
[ErrorCode.ChildTimeout]:
|
|
55
|
-
"The child Pi worker produced no output for too long and was terminated. Re-run the team; if it recurs, raise the response timeout in config or reduce the task scope.",
|
|
56
|
-
[ErrorCode.ModelExhausted]:
|
|
57
|
-
"Every model in the fallback chain failed. Check your API key/quota and the per-attempt errors, then retry or swap the model in config.",
|
|
58
|
-
[ErrorCode.PreStepFailed]:
|
|
59
|
-
"The pre-step hook script exited non-zero. Inspect its stderr, or mark it optional in the workflow step (preStepOptional).",
|
|
60
|
-
[ErrorCode.EventLogLockTimeout]:
|
|
61
|
-
"Another process holds the event-log lock. Check for orphaned `.lock` files or stale pi-crew processes, then retry.",
|
|
62
|
-
[ErrorCode.DepthLimitExceeded]:
|
|
63
|
-
"A pipeline/chain exceeded the recursion depth limit, which usually indicates a circular stage dependency. Review step `dependsOn` chains.",
|
|
64
|
-
[ErrorCode.RunStale]:
|
|
65
|
-
"The worker stopped heartbeating and was treated as a zombie. Re-run the team (resume or fresh); if it recurs, check `runtime.executeWorkers` / system load.",
|
|
66
|
-
[ErrorCode.ModelOutOfScope]:
|
|
67
|
-
"The requested model is not in your pi `enabledModels` allowlist. Either pick a model listed in `enabledModels` (settings.json) or extend the allowlist. The scope gate is opt-in — disable `runtime.reliability.scopeModels` to allow any model.",
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Structured error type for pi-crew.
|
|
72
|
-
* Display format:
|
|
73
|
-
* error[E001]: Failed to read manifest.json: not found
|
|
74
|
-
* context: while loading run state
|
|
75
|
-
* help: Check that the file exists and that the process has read permission.
|
|
76
|
-
*/
|
|
77
|
-
export class CrewError extends Error {
|
|
78
|
-
readonly code: ErrorCode;
|
|
79
|
-
help?: string;
|
|
80
|
-
private _context?: string;
|
|
81
|
-
|
|
82
|
-
constructor(code: ErrorCode, message: string, help?: string) {
|
|
83
|
-
super(message);
|
|
84
|
-
this.name = "CrewError";
|
|
85
|
-
this.code = code;
|
|
86
|
-
this.help = help ?? DEFAULT_HELP[code];
|
|
87
|
-
Object.defineProperty(this, "message", { enumerable: true });
|
|
88
|
-
Object.defineProperty(this, "code", { enumerable: true });
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
withContext(context: string): this {
|
|
92
|
-
this._context = context;
|
|
93
|
-
return this;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
withHelp(help: string): this {
|
|
97
|
-
this.help = help;
|
|
98
|
-
return this;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
toString(): string {
|
|
102
|
-
let out = `error[${this.code}]: ${this.message}`;
|
|
103
|
-
if (this._context) out += `\n context: ${this._context}`;
|
|
104
|
-
if (this.help) out += `\n help: ${this.help}`;
|
|
105
|
-
return out;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export const errors = {
|
|
110
|
-
fileRead(path: string, source: NodeJS.ErrnoException): CrewError {
|
|
111
|
-
return new CrewError(ErrorCode.FileReadError, `Failed to read ${path}: ${source.code?.toLowerCase() ?? "unknown"}`).withContext(
|
|
112
|
-
"file system read operation",
|
|
113
|
-
);
|
|
114
|
-
},
|
|
115
|
-
|
|
116
|
-
fileWrite(path: string, source: NodeJS.ErrnoException): CrewError {
|
|
117
|
-
return new CrewError(ErrorCode.FileWriteError, `Failed to write ${path}: ${source.code?.toLowerCase() ?? "unknown"}`).withContext(
|
|
118
|
-
"file system write operation",
|
|
119
|
-
);
|
|
120
|
-
},
|
|
121
|
-
|
|
122
|
-
taskNotFound(taskId: string, runId?: string): CrewError {
|
|
123
|
-
const msg = runId ? `Task '${taskId}' not found in run '${runId}'` : `Task '${taskId}' not found`;
|
|
124
|
-
return new CrewError(ErrorCode.TaskNotFound, msg);
|
|
125
|
-
},
|
|
126
|
-
|
|
127
|
-
invalidStatusTransition(from: string, to: string): CrewError {
|
|
128
|
-
return new CrewError(ErrorCode.InvalidStatusTransition, `Invalid run status transition: ${from} -> ${to}`);
|
|
129
|
-
},
|
|
130
|
-
|
|
131
|
-
config(message: string): CrewError {
|
|
132
|
-
return new CrewError(ErrorCode.ConfigError, message).withContext("configuration loading");
|
|
133
|
-
},
|
|
134
|
-
|
|
135
|
-
resourceNotFound(type: string, name: string): CrewError {
|
|
136
|
-
return new CrewError(ErrorCode.ResourceNotFound, `${type} '${name}' not found in any discovery path`);
|
|
137
|
-
},
|
|
138
|
-
|
|
139
|
-
// E1 (Round 15): runtime failure constructors. These wrap the raw-throw
|
|
140
|
-
// sites identified in the Round 15 error-experience audit so failures carry
|
|
141
|
-
// a machine-readable code, a help hint, and structured context.
|
|
142
|
-
childTimeout(detail: { timeoutMs?: number; taskId?: string; stderr?: string }): CrewError {
|
|
143
|
-
const tail = detail.stderr ? ` Stderr tail: ${detail.stderr.slice(-400)}` : "";
|
|
144
|
-
const dur = detail.timeoutMs ? ` after ${detail.timeoutMs}ms of no output` : "";
|
|
145
|
-
return new CrewError(ErrorCode.ChildTimeout, `Child Pi worker became unresponsive${dur} and was terminated.${tail}`).withContext(
|
|
146
|
-
`worker execution${detail.taskId ? ` (task ${detail.taskId})` : ""}`,
|
|
147
|
-
);
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
modelExhausted(chain: string[], lastFailure?: string): CrewError {
|
|
151
|
-
const tried = chain.join(" → ");
|
|
152
|
-
const last = lastFailure ? ` Last failure: ${lastFailure}` : "";
|
|
153
|
-
return new CrewError(
|
|
154
|
-
ErrorCode.ModelExhausted,
|
|
155
|
-
`All ${chain.length} model candidates exhausted (tried: ${tried}).${last}`,
|
|
156
|
-
).withContext("model fallback chain");
|
|
157
|
-
},
|
|
158
|
-
|
|
159
|
-
preStepFailed(script: string, exitCode: number | undefined, stderr?: string): CrewError {
|
|
160
|
-
const tail = stderr ? ` Stderr: ${stderr.slice(-400)}` : "";
|
|
161
|
-
return new CrewError(ErrorCode.PreStepFailed, `preStepScript '${script}' exited ${exitCode ?? "non-zero"}.${tail}`).withContext(
|
|
162
|
-
"pre-step hook execution",
|
|
163
|
-
);
|
|
164
|
-
},
|
|
165
|
-
|
|
166
|
-
eventLogLockTimeout(eventsPath: string, timeoutMs: number): CrewError {
|
|
167
|
-
return new CrewError(
|
|
168
|
-
ErrorCode.EventLogLockTimeout,
|
|
169
|
-
`Event log lock timeout for ${eventsPath}: could not acquire lock within ${timeoutMs}ms`,
|
|
170
|
-
).withContext("event-log append");
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
depthLimitExceeded(depth: number, kind = "pipeline"): CrewError {
|
|
174
|
-
return new CrewError(
|
|
175
|
-
ErrorCode.DepthLimitExceeded,
|
|
176
|
-
`${kind[0].toUpperCase() + kind.slice(1)} recursion depth limit exceeded (${depth}). Possible circular dependency.`,
|
|
177
|
-
).withContext(`${kind} execution`);
|
|
178
|
-
},
|
|
179
|
-
|
|
180
|
-
runStale(reason: string, heartbeatAgeSeconds?: number): CrewError {
|
|
181
|
-
const age = heartbeatAgeSeconds !== undefined ? ` Last heartbeat was ${heartbeatAgeSeconds}s ago.` : "";
|
|
182
|
-
return new CrewError(
|
|
183
|
-
ErrorCode.RunStale,
|
|
184
|
-
`Stale run reconciled (reason=${reason}).${age} The worker stopped heartbeating and was treated as dead/zombie.`,
|
|
185
|
-
).withContext("stale-run reconciliation");
|
|
186
|
-
},
|
|
187
|
-
|
|
188
|
-
modelOutOfScope(model: string, patterns: string[]): CrewError {
|
|
189
|
-
return new CrewError(
|
|
190
|
-
ErrorCode.ModelOutOfScope,
|
|
191
|
-
`Requested model "${model}" is not in enabledModels scope (allowlist: [${patterns.join(", ")}])`,
|
|
192
|
-
).withContext("F7 model scope gate — caller override rejected");
|
|
193
|
-
},
|
|
194
|
-
} as const;
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* action-suggestions.ts — "Did you mean?" suggestions for team actions (DX: F1).
|
|
3
|
-
*
|
|
4
|
-
* Round 16 DX audit found that a typo'd action (`action: 'stat'`,
|
|
5
|
-
* `action: 'summery'`) hits a dead-end "Unknown action: stat" with no path
|
|
6
|
-
* forward. pi-crew already ships a Levenshtein fuzzy-matcher
|
|
7
|
-
* (`src/config/suggestions.ts → suggestConfigKey`); this module applies it to
|
|
8
|
-
* the known set of team actions.
|
|
9
|
-
*
|
|
10
|
-
* The known-action list mirrors the `action` enum in
|
|
11
|
-
* `src/schema/team-tool-schema.ts`. Kept as a hand-maintained constant (not
|
|
12
|
-
* derived from the TypeBox schema at runtime) so it is trivially testable and
|
|
13
|
-
* avoids pulling the schema into low-level error paths.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import { findClosestKey } from "../config/suggestions.ts";
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* The complete set of valid top-level `team` actions (mirrors the action enum
|
|
20
|
-
* in `src/schema/team-tool-schema.ts`). Exported so callers and tests can use
|
|
21
|
-
* the single source of truth.
|
|
22
|
-
*/
|
|
23
|
-
export const KNOWN_TEAM_ACTIONS = [
|
|
24
|
-
"run",
|
|
25
|
-
"parallel",
|
|
26
|
-
"plan",
|
|
27
|
-
"status",
|
|
28
|
-
"wait",
|
|
29
|
-
"list",
|
|
30
|
-
"get",
|
|
31
|
-
"cancel",
|
|
32
|
-
"retry",
|
|
33
|
-
"resume",
|
|
34
|
-
"respond",
|
|
35
|
-
"create",
|
|
36
|
-
"update",
|
|
37
|
-
"delete",
|
|
38
|
-
"doctor",
|
|
39
|
-
"cleanup",
|
|
40
|
-
"events",
|
|
41
|
-
"artifacts",
|
|
42
|
-
"worktrees",
|
|
43
|
-
"forget",
|
|
44
|
-
"summary",
|
|
45
|
-
"prune",
|
|
46
|
-
"export",
|
|
47
|
-
"import",
|
|
48
|
-
"imports",
|
|
49
|
-
"help",
|
|
50
|
-
"validate",
|
|
51
|
-
"config",
|
|
52
|
-
"init",
|
|
53
|
-
"recommend",
|
|
54
|
-
"autonomy",
|
|
55
|
-
"api",
|
|
56
|
-
"settings",
|
|
57
|
-
"steer",
|
|
58
|
-
"invalidate",
|
|
59
|
-
"health",
|
|
60
|
-
"graph",
|
|
61
|
-
"onboard",
|
|
62
|
-
"explain",
|
|
63
|
-
"cache",
|
|
64
|
-
"checkpoint",
|
|
65
|
-
"search",
|
|
66
|
-
"orchestrate",
|
|
67
|
-
"schedule",
|
|
68
|
-
"scheduled",
|
|
69
|
-
"anchor",
|
|
70
|
-
"auto-summarize",
|
|
71
|
-
"auto_boomerang",
|
|
72
|
-
"goal",
|
|
73
|
-
"workflow-create",
|
|
74
|
-
"workflow-get",
|
|
75
|
-
"workflow-list",
|
|
76
|
-
"workflow-save",
|
|
77
|
-
"workflow-delete",
|
|
78
|
-
] as const;
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Suggest the closest known team action for a (likely typo'd) input.
|
|
82
|
-
* Returns `null` when no action is close enough — callers should then omit
|
|
83
|
-
* the "Did you mean …?" hint rather than suggesting a poor match.
|
|
84
|
-
*
|
|
85
|
-
* Uses a tighter edit-distance budget than the generic config-key suggester
|
|
86
|
-
* (2 instead of 3): team actions are short command words, so distance-3
|
|
87
|
-
* matches against a short input (e.g. "" → "run") produce low-quality hints.
|
|
88
|
-
* Empty/whitespace input always returns null.
|
|
89
|
-
*
|
|
90
|
-
* Exported for unit testing.
|
|
91
|
-
*/
|
|
92
|
-
export function suggestAction(input: string): string | null {
|
|
93
|
-
const trimmed = input.trim();
|
|
94
|
-
if (!trimmed) return null;
|
|
95
|
-
// Defense-in-depth (Round 18 security F1): levenshtein is O(n×m). A hostile
|
|
96
|
-
// very-long input would waste cycles. The action is enum-validated upstream
|
|
97
|
-
// so this is unreachable in practice, but cap input length cheaply.
|
|
98
|
-
if (trimmed.length > 64) return null;
|
|
99
|
-
return findClosestKey(trimmed, KNOWN_TEAM_ACTIONS, 2);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Build a "Did you mean?" suffix for an unknown-action error message.
|
|
104
|
-
* Returns "" when there is no good suggestion (so the caller can just append
|
|
105
|
-
* it unconditionally). Keeps error formatting centralized.
|
|
106
|
-
*
|
|
107
|
-
* Exported for unit testing + use in the dispatch default-case.
|
|
108
|
-
*
|
|
109
|
-
* Example:
|
|
110
|
-
* formatActionSuggestion("stat") // "\n\nDid you mean 'status'? Use action='status'."
|
|
111
|
-
* formatActionSuggestion("xyzzy") // ""
|
|
112
|
-
*/
|
|
113
|
-
export function formatActionSuggestion(input: string): string {
|
|
114
|
-
const suggestion = suggestAction(input);
|
|
115
|
-
if (!suggestion || suggestion === input) return "";
|
|
116
|
-
return `\n\nDid you mean '${suggestion}'? Use action='${suggestion}'. Run action='help' to see all actions.`;
|
|
117
|
-
}
|