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
|
@@ -1,509 +0,0 @@
|
|
|
1
|
-
# Research: oh-my-pi v15.0.0 — Features Applicable to pi-crew
|
|
2
|
-
|
|
3
|
-
> Date: 2026-05-13
|
|
4
|
-
> Source: `D:/my/my_project/source/oh-my-pi` (v15.0.0)
|
|
5
|
-
> Purpose: Find features that can be ported into pi-crew
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 1. Feature: Hashline Engine (`hashline/`)
|
|
10
|
-
|
|
11
|
-
### Purpose
|
|
12
|
-
Fully replace the old hashline with a new engine supporting:
|
|
13
|
-
- Line-level content addressing (hash each line)
|
|
14
|
-
- Semantic anchors (not just line numbers but content hashes)
|
|
15
|
-
- Recovery mode (recover from crash state)
|
|
16
|
-
- Conflict resolution (3-way merge)
|
|
17
|
-
- Streaming diff output
|
|
18
|
-
|
|
19
|
-
### How it works
|
|
20
|
-
|
|
21
|
-
**Core types** (`hashline/types.ts`):
|
|
22
|
-
```typescript
|
|
23
|
-
export type Anchor = { line: number; hash: string; contentHint?: string };
|
|
24
|
-
export type HashlineCursor =
|
|
25
|
-
| { kind: "bof" }
|
|
26
|
-
| { kind: "eof" }
|
|
27
|
-
| { kind: "before_anchor"; anchor: Anchor }
|
|
28
|
-
| { kind: "after_anchor"; anchor: Anchor };
|
|
29
|
-
export type HashlineEdit =
|
|
30
|
-
| { kind: "insert"; cursor: HashlineCursor; text: string; lineNum: number; index: number }
|
|
31
|
-
| { kind: "delete"; anchor: Anchor; lineNum: number; index: number; oldAssertion?: string };
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**Key modules:**
|
|
35
|
-
- `hash.ts` (694→) — Line hashing with bigram index
|
|
36
|
-
- `parser.ts` (192 lines) — Parse hashline input
|
|
37
|
-
- `apply.ts` (716 lines) — Apply edits with validation
|
|
38
|
-
- `recovery.ts` (72 lines) — Recovery from crash state
|
|
39
|
-
- `execute.ts` (267 lines) — Execute hashline commands
|
|
40
|
-
- `diff.ts` / `diff-preview.ts` — Streaming diff
|
|
41
|
-
|
|
42
|
-
### Potential application to pi-crew
|
|
43
|
-
|
|
44
|
-
**Option A — Use directly (if oh-my-pi splits hashline into a separate package):**
|
|
45
|
-
- pi-crew needs to edit files in worktrees
|
|
46
|
-
- The hashline engine could help detect conflicts when multiple agents edit the same file
|
|
47
|
-
|
|
48
|
-
**Option B — Conflict detection (already have `conflict-detect.ts`):**
|
|
49
|
-
- See the next feature
|
|
50
|
-
|
|
51
|
-
**Effort: HIGH** — hashline is strongly coupled to oh-my-pi internals (ToolSession, LSP batch request, etc.)
|
|
52
|
-
|
|
53
|
-
### Risk/Dependency
|
|
54
|
-
- Requires the oh-my-pi package or a fork
|
|
55
|
-
- Strong dependency on oh-my-pi's tool execution model
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## 2. Feature: Conflict Detection & Resolution (`conflict-detect.ts`)
|
|
60
|
-
|
|
61
|
-
### Purpose
|
|
62
|
-
Detect git merge conflicts (<<<<<<, =======, >>>>>>>) in file content without extra I/O. Each conflict block is assigned a stable id; the agent can resolve it by writing to `conflict://<id>`.
|
|
63
|
-
|
|
64
|
-
### How it works
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
export interface ConflictBlock {
|
|
68
|
-
startLine: number; // 1-indexed line of <<<<<<<
|
|
69
|
-
separatorLine: number; // 1-indexed line of =======
|
|
70
|
-
endLine: number; // 1-indexed line of >>>>>>>
|
|
71
|
-
baseLine?: number; // 1-indexed line of ||||||| (diff3 only)
|
|
72
|
-
oursLabel?: string;
|
|
73
|
-
baseLabel?: string;
|
|
74
|
-
theirsLabel?: string;
|
|
75
|
-
oursLines: string[];
|
|
76
|
-
baseLines?: string[];
|
|
77
|
-
theirsLines: string[];
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// scanConflictLines: scan array of lines (no extra I/O)
|
|
81
|
-
// registerConflict: assign stable id via ConflictHistory
|
|
82
|
-
// resolveConflict: write chosen content via conflict://<id>
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
**Workflow:**
|
|
86
|
-
1. `read` collects lines from disk
|
|
87
|
-
2. `scanConflictLines` inspects for `<<<<<<<` / `=======` / `>>>>>>>` markers
|
|
88
|
-
3. Each completed block → `ConflictHistory` (stable id)
|
|
89
|
-
4. Read output returns with a footer containing conflict ids
|
|
90
|
-
5. Agent calls `write({ path: "conflict://<id>", content })` to resolve
|
|
91
|
-
|
|
92
|
-
**Key insight:** Marker shape must be strict — column-0, exact prefix length, followed by EOL or a single space + label.
|
|
93
|
-
|
|
94
|
-
### Potential application to pi-crew
|
|
95
|
-
|
|
96
|
-
**HIGH VALUE for pi-crew:**
|
|
97
|
-
- When multiple agents edit the same file in a worktree, conflicts can occur
|
|
98
|
-
- Conflict detection lets the agent recognize and resolve them automatically
|
|
99
|
-
|
|
100
|
-
**Implementation approach:**
|
|
101
|
-
1. Fork `conflict-detect.ts` (license OK — MIT)
|
|
102
|
-
2. Integrate into pi-crew's file read path
|
|
103
|
-
3. Register conflicts into `LiveAgentHandle.activity` or the artifact store
|
|
104
|
-
4. Provide a `conflict://` protocol in the write tool
|
|
105
|
-
5. Add a `detect-conflicts` tool for agents
|
|
106
|
-
|
|
107
|
-
**Effort: MEDIUM** — standalone module, can be copied + adapted
|
|
108
|
-
|
|
109
|
-
### Risk/Dependency
|
|
110
|
-
- Need to handle the `conflict://` protocol in the write tool
|
|
111
|
-
- Need to update the read tool to detect and report conflicts
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## 3. Feature: ACP Client Bridge (`acp-client-bridge.ts`)
|
|
116
|
-
|
|
117
|
-
### Purpose
|
|
118
|
-
A bridge between oh-my-pi's internal ClientBridge interface and the ACP (Agent Client Protocol) SDK. Allows tools (read/write/bash/edit) to route through the client when the client has the capabilities.
|
|
119
|
-
|
|
120
|
-
### How it works
|
|
121
|
-
|
|
122
|
-
```typescript
|
|
123
|
-
export interface ClientBridgeCapabilities {
|
|
124
|
-
readTextFile: boolean;
|
|
125
|
-
writeTextFile: boolean;
|
|
126
|
-
terminal: boolean;
|
|
127
|
-
requestPermission: boolean;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
export interface ClientBridge {
|
|
131
|
-
capabilities: ClientBridgeCapabilities;
|
|
132
|
-
readTextFile?: (params: { path: string; line?: number; limit?: number }) => Promise<string>;
|
|
133
|
-
writeTextFile?: (params: { path: string; content: string }) => Promise<void>;
|
|
134
|
-
terminal?: (params: ClientBridgeCreateTerminalParams) => Promise<ClientBridgeTerminalHandle>;
|
|
135
|
-
requestPermission?: (params: ClientBridgePermissionToolCall) => Promise<ClientBridgePermissionOutcome>;
|
|
136
|
-
}
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**Pattern:** Feature detection → conditional implementation. If the client lacks a capability, fall back to the default implementation.
|
|
140
|
-
|
|
141
|
-
### Potential application to pi-crew
|
|
142
|
-
|
|
143
|
-
**LOW-MEDIUM VALUE:**
|
|
144
|
-
|
|
145
|
-
pi-crew already has `LiveExtensionBridge` and `LiveAgentControl` — doesn't need an ACP bridge. However, this pattern is useful for:
|
|
146
|
-
|
|
147
|
-
1. **pi-crew tool permission system** — Could use this pattern to check permission before allowing tool execution
|
|
148
|
-
2. **Cross-extension communication** — The `ClientBridge` pattern could be adapted for `CrossExtensionRPC`
|
|
149
|
-
|
|
150
|
-
**Effort: LOW** — just learn the pattern, no need to port code
|
|
151
|
-
|
|
152
|
-
### Risk/Dependency
|
|
153
|
-
- ACP SDK is proprietary (`@agentclientprotocol/sdk`)
|
|
154
|
-
- The pattern can be applied without the SDK
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## 4. Feature: Todo Helper (`todo.ts`)
|
|
159
|
-
|
|
160
|
-
### Purpose
|
|
161
|
-
A slash command helper that lets agents manage a todo list within a project. Supports subcommands: `done`, `drop`, `rm`, and parses markdown todo format.
|
|
162
|
-
|
|
163
|
-
### How it works
|
|
164
|
-
|
|
165
|
-
**Tokenize approach:**
|
|
166
|
-
```typescript
|
|
167
|
-
// Handle escape sequences, quoted strings, whitespace
|
|
168
|
-
function tokenize(input: string): string[] {
|
|
169
|
-
let current = "";
|
|
170
|
-
let inQuote = false;
|
|
171
|
-
// ... parsing logic
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// Subcommands:
|
|
175
|
-
// /todo done <phase> <task> — mark task done
|
|
176
|
-
// /todo drop <phase> <task> — remove task
|
|
177
|
-
// /todo rm <phase> <task> — alias for drop
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
**Markdown ↔ Phases conversion:**
|
|
181
|
-
- `markdownToPhases` — Parse markdown todo format
|
|
182
|
-
- `phasesToMarkdown` — Convert back to markdown
|
|
183
|
-
- `getLatestTodoPhasesFromEntries` — Get latest version
|
|
184
|
-
|
|
185
|
-
**Tokenize features:**
|
|
186
|
-
- Quoted strings: `"task with spaces"`
|
|
187
|
-
- Escape sequences: `\<char>`
|
|
188
|
-
- Whitespace splitting
|
|
189
|
-
|
|
190
|
-
### Potential application to pi-crew
|
|
191
|
-
|
|
192
|
-
**HIGH VALUE for pi-crew:**
|
|
193
|
-
|
|
194
|
-
pi-crew has `YieldReminder` and `TaskRunner` — can integrate todo management:
|
|
195
|
-
|
|
196
|
-
1. **Team task tracking** — Workflow tasks can be represented as todos
|
|
197
|
-
2. **Yield + Todo integration** — When an agent yields with a todo request, can parse and update the todo list
|
|
198
|
-
3. **Slash command `/crew todo`** — Management interface for team tasks
|
|
199
|
-
|
|
200
|
-
**Implementation approach:**
|
|
201
|
-
1. Fork the `todo.ts` helper (279 lines)
|
|
202
|
-
2. Integrate into `CrewTaskRunner` or `YieldHandler`
|
|
203
|
-
3. Add a `/crew todo` slash command
|
|
204
|
-
4. Wire into the `TaskDisplay` component
|
|
205
|
-
|
|
206
|
-
**Effort: MEDIUM** — can copy the module, needs integration with the existing task system
|
|
207
|
-
|
|
208
|
-
### Risk/Dependency
|
|
209
|
-
- Dependency on `todo-write.ts` tool
|
|
210
|
-
- Needs to sync with actual task state in the manifest
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## 5. Feature: Compaction Error Types (`compaction/errors.ts`)
|
|
215
|
-
|
|
216
|
-
### Purpose
|
|
217
|
-
Typed error sentinels for compaction operations. Uses `instanceof` discrimination instead of string matching.
|
|
218
|
-
|
|
219
|
-
### How it works
|
|
220
|
-
|
|
221
|
-
```typescript
|
|
222
|
-
export class CompactionCancelledError extends Error {
|
|
223
|
-
readonly name = "CompactionCancelledError" as const;
|
|
224
|
-
constructor(message = "Compaction cancelled") { super(message); }
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
export type CompactionOutcome = "ok" | "cancelled" | "failed";
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
**Pattern:**
|
|
231
|
-
- Sentinel class with a readonly `name` property
|
|
232
|
-
- Downstream callers use `instanceof CompactionCancelledError`
|
|
233
|
-
- Source-agnostic: Esc, extension hook, programmatic abort all share the same type
|
|
234
|
-
|
|
235
|
-
### Potential application to pi-crew
|
|
236
|
-
|
|
237
|
-
**MEDIUM VALUE for pi-crew:**
|
|
238
|
-
|
|
239
|
-
pi-crew has `YieldResult` and compaction tracking — can use this pattern:
|
|
240
|
-
|
|
241
|
-
1. **Typed cancellation errors** — `CrewCancelledError`, `CrewTimeoutError`, `CrewDeadletterError`
|
|
242
|
-
2. **Better error discrimination** — Instead of string matching, use `instanceof`
|
|
243
|
-
3. **Error outcome tracking** — `CrewRunOutcome = "ok" | "cancelled" | "failed" | "deadletter"`
|
|
244
|
-
|
|
245
|
-
**Implementation approach:**
|
|
246
|
-
```typescript
|
|
247
|
-
// src/errors/crew-errors.ts
|
|
248
|
-
export class CrewCancelledError extends Error {
|
|
249
|
-
readonly name = "CrewCancelledError" as const;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
export class CrewTimeoutError extends Error {
|
|
253
|
-
readonly name = "CrewTimeoutError" as const;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
export class CrewDeadletterError extends Error {
|
|
257
|
-
readonly name = "CrewDeadletterError" as const;
|
|
258
|
-
constructor(public readonly agentId: string, public readonly reason: string) {
|
|
259
|
-
super(`Agent ${agentId} deadlettered: ${reason}`);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
**Effort: LOW** — just create the error classes and replace `instanceof Error` checks
|
|
265
|
-
|
|
266
|
-
### Risk/Dependency
|
|
267
|
-
- None — pure TypeScript, can copy the pattern
|
|
268
|
-
- Need to audit existing error handling to update
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
## 6. Feature: ACP Agent Session (`acp-agent.ts`)
|
|
273
|
-
|
|
274
|
-
### Purpose
|
|
275
|
-
ACP protocol handler in oh-my-pi. Extends from `agent-session.ts` with:
|
|
276
|
-
- Fork sessions (clone session state)
|
|
277
|
-
- Session list/load/resume
|
|
278
|
-
- Model state management
|
|
279
|
-
- MCP server discovery
|
|
280
|
-
|
|
281
|
-
### How it works
|
|
282
|
-
|
|
283
|
-
**ACP Protocol types:**
|
|
284
|
-
```typescript
|
|
285
|
-
type NewSessionRequest, ForkSessionRequest, LoadSessionRequest, ResumeSessionRequest
|
|
286
|
-
type SetSessionModelRequest, SetSessionModeRequest
|
|
287
|
-
type SessionInfo, SessionModelState, SessionModeState
|
|
288
|
-
type ClientCapabilities (fs, terminal, permission)
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
**Key capabilities:**
|
|
292
|
-
- `forkSession` — Clone a session with the same conversation history
|
|
293
|
-
- `listSessions` — Enumerate active sessions
|
|
294
|
-
- `loadSession` / `resumeSession` — Restore a previous session
|
|
295
|
-
- `setSessionModel` — Change model mid-session
|
|
296
|
-
|
|
297
|
-
### Potential application to pi-crew
|
|
298
|
-
|
|
299
|
-
**HIGH VALUE for pi-crew:**
|
|
300
|
-
|
|
301
|
-
1. **Fork session** — In workflow orchestration, could fork an agent session to run parallel experiments
|
|
302
|
-
2. **Session resume** — Resume a previous run from manifest/events
|
|
303
|
-
3. **Model switching** — Change model for specific tasks (e.g. cheap model for exploration, expensive model for final generation)
|
|
304
|
-
|
|
305
|
-
**Current pi-crew state:**
|
|
306
|
-
- pi-crew already has `ResumeSession` for team runs (re-spawn child Pi)
|
|
307
|
-
- But no in-process session fork
|
|
308
|
-
|
|
309
|
-
**Implementation approach:**
|
|
310
|
-
- `forkLiveAgentSession()` — Clone `LiveAgentHandle` with the same conversation
|
|
311
|
-
- Store forked sessions in `live-agent-manager.ts`
|
|
312
|
-
- Add a `fork-session` operation to the `team-tool api`
|
|
313
|
-
|
|
314
|
-
**Effort: HIGH** — needs deep understanding of `LiveSessionHandle` and session state
|
|
315
|
-
|
|
316
|
-
### Risk/Dependency
|
|
317
|
-
- Requires oh-my-pi internals (AgentSession, ToolSession)
|
|
318
|
-
- pi-crew uses a child Pi process — fork may not be compatible
|
|
319
|
-
|
|
320
|
-
---
|
|
321
|
-
|
|
322
|
-
## 7. Feature: User Metrics (`stats/src/user-metrics.ts`)
|
|
323
|
-
|
|
324
|
-
### Purpose
|
|
325
|
-
Tracking and aggregation of user behavior metrics: edits, tool usage, model selection, cost, session quality.
|
|
326
|
-
|
|
327
|
-
### How it works
|
|
328
|
-
|
|
329
|
-
**Database schema:**
|
|
330
|
-
- Sessions table: session_id, start_time, end_time, model, cost
|
|
331
|
-
- Tool usage: session_id, tool_name, count, duration
|
|
332
|
-
- Edit patterns: session_id, lines_added, lines_removed, files_changed
|
|
333
|
-
- Behavior models: quality score, efficiency score
|
|
334
|
-
|
|
335
|
-
**Analytics:**
|
|
336
|
-
- Behavior chart: edits over time, tool usage distribution
|
|
337
|
-
- Model comparison: cost vs quality per model
|
|
338
|
-
- Session summary: duration, token usage, task completion rate
|
|
339
|
-
|
|
340
|
-
### Potential application to pi-crew
|
|
341
|
-
|
|
342
|
-
**MEDIUM VALUE:**
|
|
343
|
-
|
|
344
|
-
pi-crew already has `UsageTracker` and `MetricsRegistry` — can learn from:
|
|
345
|
-
|
|
346
|
-
1. **Team metrics** — Track team run performance (workflow duration, agent utilization, cost)
|
|
347
|
-
2. **Agent quality scoring** — Rate agent output quality
|
|
348
|
-
3. **Cost tracking** — Per-agent, per-task, per-team cost
|
|
349
|
-
|
|
350
|
-
**Effort: MEDIUM** — Need to design a database schema and API
|
|
351
|
-
|
|
352
|
-
### Risk/Dependency
|
|
353
|
-
- SQLite or a separate database
|
|
354
|
-
- Privacy implications (storing user behavior data)
|
|
355
|
-
|
|
356
|
-
---
|
|
357
|
-
|
|
358
|
-
## 8. Feature: Shell Minimizer (`crates/pi-shell/src/minimizer/`)
|
|
359
|
-
|
|
360
|
-
### Purpose
|
|
361
|
-
Automatically minimize command output (remove noise like progress bars, ANSI codes) so the LLM can read cleaner results.
|
|
362
|
-
|
|
363
|
-
### How it works
|
|
364
|
-
|
|
365
|
-
**100+ TOML config files:**
|
|
366
|
-
- `cargo.toml` — Filter cargo progress output
|
|
367
|
-
- `npm-install.toml` — Filter npm package output
|
|
368
|
-
- `terraform-plan.toml` — Simplify terraform plans
|
|
369
|
-
- etc.
|
|
370
|
-
|
|
371
|
-
**Engine:**
|
|
372
|
-
```rust
|
|
373
|
-
// minimizer/engine.rs
|
|
374
|
-
pub struct Minimizer {
|
|
375
|
-
filters: Vec<Box<dyn Filter>>,
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
// Filter types: line removal, replacement, truncation
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
### Potential application to pi-crew
|
|
382
|
-
|
|
383
|
-
**HIGH VALUE for pi-crew:**
|
|
384
|
-
|
|
385
|
-
pi-crew agents run bash commands — the output can be very noisy. The minimizer helps:
|
|
386
|
-
- Agents read clean output
|
|
387
|
-
- Reduces context usage
|
|
388
|
-
- Focuses on important information
|
|
389
|
-
|
|
390
|
-
**Implementation approach:**
|
|
391
|
-
1. Fork the minimizer engine (Rust) or port to TypeScript
|
|
392
|
-
2. Integrate into `TaskRunner` bash execution
|
|
393
|
-
3. Auto-detect command type and apply the appropriate filter
|
|
394
|
-
|
|
395
|
-
**Effort: HIGH** — Rust code needs rewriting or integration via FFI
|
|
396
|
-
|
|
397
|
-
### Risk/Dependency
|
|
398
|
-
- Rust dependency
|
|
399
|
-
- May not be necessary if oh-my-pi splits it into a standalone tool
|
|
400
|
-
|
|
401
|
-
---
|
|
402
|
-
|
|
403
|
-
## 9. Feature: MCP Helper (`slash-commands/helpers/mcp.ts`)
|
|
404
|
-
|
|
405
|
-
### Purpose
|
|
406
|
-
Helper for MCP (Model Context Protocol) slash commands. Manages MCP server configuration and tool invocation.
|
|
407
|
-
|
|
408
|
-
### How it works
|
|
409
|
-
|
|
410
|
-
532 lines of TypeScript. **Key functions:**
|
|
411
|
-
- `resolveMcpServer` — Resolve MCP server config
|
|
412
|
-
- `invokeMcpTool` — Call an MCP tool
|
|
413
|
-
- `listMcpResources` — List available resources
|
|
414
|
-
- `mcpServerStatus` — Check server health
|
|
415
|
-
|
|
416
|
-
### Potential application to pi-crew
|
|
417
|
-
|
|
418
|
-
**MEDIUM VALUE:**
|
|
419
|
-
|
|
420
|
-
pi-crew already has `McpProxy` in `live-extension-bridge.ts` — can learn more:
|
|
421
|
-
1. **MCP server lifecycle** — Start/stop MCP servers per team
|
|
422
|
-
2. **MCP tool routing** — Route MCP calls through the team session
|
|
423
|
-
|
|
424
|
-
**Effort: LOW** — just learn the pattern, no need to port code
|
|
425
|
-
|
|
426
|
-
### Risk/Dependency
|
|
427
|
-
- MCP protocol knowledge required
|
|
428
|
-
- Can reuse the existing `buildMcpProxyFromSession`
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
## 10. Feature: Issue-PR Protocol (`internal-urls/issue-pr-protocol.ts`)
|
|
433
|
-
|
|
434
|
-
### Purpose
|
|
435
|
-
Protocol handler for `issue://` and `pr://` internal URLs. Lets agents interact with GitHub/GitLab issues and PRs through a unified interface.
|
|
436
|
-
|
|
437
|
-
### How it works
|
|
438
|
-
|
|
439
|
-
```typescript
|
|
440
|
-
// Handle URLs like:
|
|
441
|
-
// issue://github.com/owner/repo/123
|
|
442
|
-
// pr://github.com/owner/repo/456
|
|
443
|
-
// issue://gitlab.com/owner/repo/789
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
**Operations:**
|
|
447
|
-
- `read` — Get issue/PR content
|
|
448
|
-
- `search` — Search issues/PRs
|
|
449
|
-
- `comment` — Add comment
|
|
450
|
-
- `close` / `reopen` — State transitions
|
|
451
|
-
|
|
452
|
-
### Potential application to pi-crew
|
|
453
|
-
|
|
454
|
-
**HIGH VALUE for pi-crew:**
|
|
455
|
-
|
|
456
|
-
pi-crew workflow agents can benefit from issue/PR integration:
|
|
457
|
-
1. **Task creation** — Create an issue from a failed task
|
|
458
|
-
2. **PR review** — Use the `pr://` protocol in the review workflow
|
|
459
|
-
3. **Task linking** — Link workflow tasks to issues
|
|
460
|
-
|
|
461
|
-
**Effort: MEDIUM** — Need to port `issue-pr-protocol.ts` (577 lines)
|
|
462
|
-
|
|
463
|
-
### Risk/Dependency
|
|
464
|
-
- GitHub API authentication
|
|
465
|
-
- Complex state machine (open/close/reopen/merge)
|
|
466
|
-
|
|
467
|
-
---
|
|
468
|
-
|
|
469
|
-
## Summary: Recommendations
|
|
470
|
-
|
|
471
|
-
### Tier 1 — High Value, Medium Effort (High priority)
|
|
472
|
-
|
|
473
|
-
| Feature | Why | Effort | Notes |
|
|
474
|
-
|---|---|---|---|
|
|
475
|
-
| **Conflict Detection** | Prevents data loss when multiple agents edit the same file | MEDIUM | Fork `conflict-detect.ts`, add `conflict://` protocol |
|
|
476
|
-
| **Typed Crew Errors** | Better error handling, cleaner code | LOW | Create `CrewCancelledError`, `CrewTimeoutError`, `CrewDeadletterError` |
|
|
477
|
-
| **Todo Integration** | Task tracking for team workflows | MEDIUM | Fork `todo.ts`, integrate with `TaskRunner` |
|
|
478
|
-
| **Issue-PR Protocol** | Link team tasks to GitHub issues | MEDIUM | Port `issue-pr-protocol.ts` |
|
|
479
|
-
|
|
480
|
-
### Tier 2 — High Value, High Effort (Lower priority)
|
|
481
|
-
|
|
482
|
-
| Feature | Why | Effort | Notes |
|
|
483
|
-
|---|---|---|---|
|
|
484
|
-
| **Shell Minimizer** | Clean command output for agents | HIGH | Rust → TypeScript port or FFI |
|
|
485
|
-
| **ACP Fork Session** | Parallel agent experiments | HIGH | Needs deep `LiveSessionHandle` understanding |
|
|
486
|
-
| **User Metrics** | Team performance analytics | MEDIUM | Design DB schema, build API |
|
|
487
|
-
|
|
488
|
-
### Tier 3 — Low Value (Not prioritized)
|
|
489
|
-
|
|
490
|
-
| Feature | Why | Effort |
|
|
491
|
-
|---|---|---|
|
|
492
|
-
| Hashline Engine | Strongly coupled to oh-my-pi | HIGH |
|
|
493
|
-
| ACP Client Bridge | pi-crew already has `LiveExtensionBridge` | LOW |
|
|
494
|
-
| MCP Helper | pi-crew already has `McpProxy` | LOW |
|
|
495
|
-
|
|
496
|
-
---
|
|
497
|
-
|
|
498
|
-
## Next Steps
|
|
499
|
-
|
|
500
|
-
1. **Conflict Detection** — Start with porting `conflict-detect.ts` because it's standalone and high-value
|
|
501
|
-
2. **Typed Errors** — Quick win, just create the error classes
|
|
502
|
-
3. **Todo Integration** — Long-term, needs integration with the workflow engine
|
|
503
|
-
|
|
504
|
-
## Files to read further
|
|
505
|
-
|
|
506
|
-
- `packages/coding-agent/src/tools/conflict-detect.ts` (entire file)
|
|
507
|
-
- `packages/coding-agent/src/tools/todo-write.ts` (dependency of todo.ts)
|
|
508
|
-
- `packages/coding-agent/src/session/agent-session.ts` (the fork/resume session part)
|
|
509
|
-
- `crates/pi-shell/src/minimizer/engine.rs` (if you want to port the shell minimizer)
|