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,294 +0,0 @@
|
|
|
1
|
-
# Anthropic Cybersecurity Skills — pi-crew Security Patterns Distillation
|
|
2
|
-
|
|
3
|
-
**Source:** `source/Anthropic-Cybersecurity-Skills/` (754 skills)
|
|
4
|
-
**Date:** 2026-05-28
|
|
5
|
-
**Purpose:** Extract actionable security patterns for pi-crew multi-agent orchestration
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Executive Summary
|
|
10
|
-
|
|
11
|
-
pi-crew's `security-reviewer` role already has foundational skills in place:
|
|
12
|
-
- ✅ `secure-agent-orchestration-review` — delegation, tool access, path containment
|
|
13
|
-
- ✅ `ownership-session-security` — cross-session safety, ownership boundaries
|
|
14
|
-
|
|
15
|
-
This distillation identifies **20 high-value patterns** from the Anthropic library that enhance pi-crew's security posture, focusing on:
|
|
16
|
-
1. **Agent-specific threats** (prompt injection, context poisoning)
|
|
17
|
-
2. **Supply chain security** (dependencies, npm packages)
|
|
18
|
-
3. **Runtime hardening** (auth patterns, secret detection)
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 1. Security-Reviewer Role Architecture (pi-crew)
|
|
23
|
-
|
|
24
|
-
| Component | Location | Purpose |
|
|
25
|
-
|-----------|----------|---------|
|
|
26
|
-
| Role definition | `runtime/skill-instructions.ts:34` | Maps `security-reviewer` → 2 skills |
|
|
27
|
-
| Output contract | `runtime/live-session-runtime.ts:211-218` | `<path>:<line>: <emoji> <severity>` pattern |
|
|
28
|
-
| Team routing | `extension/team-recommendation.ts:48` | Triggers: security, vulnerability, auth, owasp |
|
|
29
|
-
| Permission model | `runtime/role-permission.ts:5` | READ_ONLY_ROLES includes security-reviewer |
|
|
30
|
-
| Autonomous policy | `extension/autonomous-policy.ts:9,91` | Routes high-risk tasks to review team |
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## 2. Anthropic Cybersecurity Skills — Top 20 for pi-crew
|
|
35
|
-
|
|
36
|
-
### 2.1 Agent Security (MITRE ATLAS v5.4)
|
|
37
|
-
|
|
38
|
-
| # | Skill | ATLAS | NIST AI RMF | Pattern |
|
|
39
|
-
|---|-------|-------|-------------|---------|
|
|
40
|
-
| 1 | `detecting-ai-model-prompt-injection-attacks` | AML.T0051, T0054, T0056, T0067, T0068 | GOVERN-1.1, MEASURE-2.7 | Multi-layer detector: regex (25+ patterns) + DeBERTa classifier + heuristic scoring |
|
|
41
|
-
| 2 | `detecting-context-poisoning-in-agent-loops` | AML.T0051 | GOVERN-1.1 | Session context integrity, injection markers |
|
|
42
|
-
| 3 | `detecting-tool-invocation-abuse` | AML.T0051, T0054 | MEASURE-2.5 | Tool call rate limiting, anomaly detection |
|
|
43
|
-
| 4 | `detecting-malicious-skill-loading` | AML.T0062 | GOVERN-5.2 | Skill path traversal, untrusted skill sources |
|
|
44
|
-
| 5 | `detecting-agent-privilege-escalation` | AML.T0054 | GOVERN-1.1 | Role permission boundary violations |
|
|
45
|
-
|
|
46
|
-
### 2.2 Supply Chain Security
|
|
47
|
-
|
|
48
|
-
| # | Skill | ATLAS | NIST AI RMF | Pattern |
|
|
49
|
-
|---|-------|-------|-------------|---------|
|
|
50
|
-
| 6 | `detecting-supply-chain-attacks-in-ci-cd` | AML.T0010, T0104 | GOVERN-5.2, MAP-1.6 | Dependency injection, build pipeline integrity |
|
|
51
|
-
| 7 | `detecting-typosquatting-packages-in-npm-pypi` | — | — | Package name similarity, registry anomalies |
|
|
52
|
-
| 8 | `detecting-malicious-npm-packages` | — | — | Package manifest analysis, install hooks |
|
|
53
|
-
| 9 | `detecting-dependency-confusion-attacks` | — | — | Package resolution, version pinning |
|
|
54
|
-
|
|
55
|
-
### 2.3 Authentication & Authorization
|
|
56
|
-
|
|
57
|
-
| # | Skill | ATLAS | NIST AI RMF | Pattern |
|
|
58
|
-
|---|-------|-------|-------------|---------|
|
|
59
|
-
| 10 | `detecting-anomalous-authentication-patterns` | AML.T0043, T0018 | MEASURE-2.7, PR.AA-01 | Auth failure patterns, session anomalies |
|
|
60
|
-
| 11 | `detecting-token-hijacking` | AML.T0018 | PR.AA-01 | Token reuse, timing anomalies |
|
|
61
|
-
| 12 | `detecting-session-fixation` | AML.T0018 | PR.AA-01 | Session ID predictability, fixation attempts |
|
|
62
|
-
|
|
63
|
-
### 2.4 Secrets & Data Security
|
|
64
|
-
|
|
65
|
-
| # | Skill | ATLAS | NIST AI RMF | Pattern |
|
|
66
|
-
|---|-------|-------|-------------|---------|
|
|
67
|
-
| 13 | `detecting-sensitive-data-exposure` | AML.T0067 | GOVERN-1.1 | Secrets in code, logs, artifacts |
|
|
68
|
-
| 14 | `detecting-credential-leakage-in-logs` | — | — | Log sanitization, redaction patterns |
|
|
69
|
-
| 15 | `detecting-data-exfiltration-indicators` | AML.T0067 | GOVERN-1.1 | Outbound traffic anomalies, artifact size |
|
|
70
|
-
|
|
71
|
-
### 2.5 Runtime & Infrastructure
|
|
72
|
-
|
|
73
|
-
| # | Skill | ATLAS | NIST AI RMF | Pattern |
|
|
74
|
-
|---|-------|-------|-------------|---------|
|
|
75
|
-
| 16 | `detecting-path-traversal` | — | — | File system access control, path normalization |
|
|
76
|
-
| 17 | `detecting-command-injection` | — | — | Shell command execution safety |
|
|
77
|
-
| 18 | `detecting-serverless-function-injection` | — | — | MCP/serverless input validation |
|
|
78
|
-
| 19 | `detecting-race-condition-vulnerabilities` | AML.T0054 | GOVERN-1.1 | Timing attacks, state mutation races |
|
|
79
|
-
| 20 | `detecting-race-condition-in-file-operations` | AML.T0054 | GOVERN-1.1 | TOCTOU vulnerabilities |
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## 3. pi-crew Specific Patterns
|
|
84
|
-
|
|
85
|
-
### 3.1 Trust Boundary Model
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
89
|
-
│ PARENT PI (pi-crew) │
|
|
90
|
-
│ ┌──────────────┐ ┌──────────────┐ ┌────────────────────────┐ │
|
|
91
|
-
│ │ User prompt │→ │ Task packet │→ │ Child Pi (untrusted) │ │
|
|
92
|
-
│ └──────────────┘ └──────────────┘ └────────────────────────┘ │
|
|
93
|
-
│ ↓ ↓ ↓ │
|
|
94
|
-
│ Trust: USER Trust: SANITIZED Trust: NONE (untrusted) │
|
|
95
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**Key boundaries:**
|
|
99
|
-
1. **parent↔child**: Child Pi spawned via `child-pi.ts` — env sanitized, cwd contained
|
|
100
|
-
2. **user↔task packet**: Task packets sanitized via `sanitizeTaskPacket()` in `task-packet.ts`
|
|
101
|
-
3. **project↔package skills**: Project skills in `skills/` are untrusted, package skills in `node_modules/` are trusted
|
|
102
|
-
4. **artifacts↔prompts**: Artifacts written by child, read back into context — potential injection vector
|
|
103
|
-
|
|
104
|
-
### 3.2 pi-crew Security Checklist
|
|
105
|
-
|
|
106
|
-
Based on `multi-perspective-review` security pass and Anthropic patterns:
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
[ ] PATH TRAVERSAL
|
|
110
|
-
[ ] assertSafePathId() called for all file paths
|
|
111
|
-
[ ] resolveContainedPath() used instead of raw paths
|
|
112
|
-
[ ] symlink escape prevention via fstatSync after open
|
|
113
|
-
[ ] cwd override blocked (no path outside run directory)
|
|
114
|
-
|
|
115
|
-
[ ] PROMPT INJECTION
|
|
116
|
-
[ ] Untrusted artifacts sanitized before context injection
|
|
117
|
-
[ ] Skill metadata not trusted as instruction
|
|
118
|
-
[ ] parentContext passed through sanitization
|
|
119
|
-
|
|
120
|
-
[ ] SECRETS
|
|
121
|
-
[ ] Env vars sanitized via sanitizeEnvSecrets()
|
|
122
|
-
[ ] Event log redaction via redactEvent()
|
|
123
|
-
[ ] Artifact writes don't expose *** values
|
|
124
|
-
[ ] Team tool output filtered for credentials
|
|
125
|
-
|
|
126
|
-
[ ] DESTRUCTIVE COMMANDS
|
|
127
|
-
[ ] delete/prune/reset/force-push require explicit confirmation
|
|
128
|
-
[ ] --force flags blocked unless user explicitly approved
|
|
129
|
-
[ ] Dangerous operations logged to event-log
|
|
130
|
-
|
|
131
|
-
[ ] OWNERSHIP & RACE CONDITIONS
|
|
132
|
-
[ ] Cancel/respond/steer ownership verified
|
|
133
|
-
[ ] Mailbox appendFileSync not interleaved
|
|
134
|
-
[ ] Atomic writes use O_EXCL|O_CREAT|O_NOFOLLOW
|
|
135
|
-
|
|
136
|
-
[ ] SUPPLY CHAIN
|
|
137
|
-
[ ] Package manifest reviewed for suspicious install hooks
|
|
138
|
-
[ ] npm install from untrusted sources requires confirmation
|
|
139
|
-
[ ] CI/CD pipeline integrity checks in place
|
|
140
|
-
|
|
141
|
-
[ ] AGENT-SPECIFIC
|
|
142
|
-
[ ] Tool call rate limiting configured
|
|
143
|
-
[ ] Session context integrity markers present
|
|
144
|
-
[ ] Malicious skill path blocked before loading
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
## 4. MITRE ATLAS v5.4 Coverage for pi-crew
|
|
150
|
-
|
|
151
|
-
### 4.1 AI/ML Threat Techniques (Relevant to Agent Orchestration)
|
|
152
|
-
|
|
153
|
-
| ATLAS Technique | Description | pi-crew Relevance | Detection Pattern |
|
|
154
|
-
|-----------------|-------------|-------------------|-------------------|
|
|
155
|
-
| AML.T0051 | LLM Prompt Injection | ⭐⭐⭐ High | User prompt → task packet injection |
|
|
156
|
-
| AML.T0054 | LLM Jailbreak | ⭐⭐ High | Role permission escalation |
|
|
157
|
-
| AML.T0056 | Extract LLM System Prompt | ⭐⭐ High | Skill loading, system prompt leakage |
|
|
158
|
-
| AML.T0067 | Exfiltrate Training Data | ⭐ Medium | Artifact exfiltration |
|
|
159
|
-
| AML.T0068 | Corruption of Model Weights | ⭐ Low | Workspace file corruption |
|
|
160
|
-
| AML.T0057 | Infer Sensitive Attributes | ⭐ Medium | Observable model outputs |
|
|
161
|
-
| AML.T0047 | ML Training Attacks | ⭐ Low | TBD |
|
|
162
|
-
| AML.T0010 | Supply Chain Attack | ⭐⭐⭐ High | npm packages, dependencies |
|
|
163
|
-
| AML.T0104 | Software Supply Chain | ⭐⭐ High | Build pipeline, CI/CD |
|
|
164
|
-
| AML.T0043 | Brute Force Auth | ⭐ Medium | Session auth patterns |
|
|
165
|
-
| AML.T0018 | Steal Authentication Tokens | ⭐⭐ High | Token reuse, hijacking |
|
|
166
|
-
|
|
167
|
-
### 4.2 Defensive Countermeasures (D3FEND)
|
|
168
|
-
|
|
169
|
-
| D3FEND Technique | pi-crew Implementation |
|
|
170
|
-
|------------------|------------------------|
|
|
171
|
-
| AUTHENTICATION-HEURISTICS | `role-permission.ts`, `sanitizeEnvSecrets()` |
|
|
172
|
-
| BUFFER-FORMAT-OPERATIONS | `safe-paths.ts` path normalization |
|
|
173
|
-
| FILE-ANALYSIS | Artifact scan, patch extraction |
|
|
174
|
-
| EXECUTABLE-REGISTER-ANALYSIS | Skill registration validation |
|
|
175
|
-
| INTEGRITY-VERIFICATION | `atomic-write.ts` atomic writes |
|
|
176
|
-
| LOGICAL-ACCESS-CONTROL | `ownerSessionId` ownership checks |
|
|
177
|
-
| USER-ACTIVITY-ANALYTICS | `run-tracker.ts` lifecycle tracking |
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
## 5. Implementation Recommendations
|
|
182
|
-
|
|
183
|
-
### 5.1 Short-term (v0.5.x)
|
|
184
|
-
|
|
185
|
-
1. **Extend `secure-agent-orchestration-review`** with ATLAS coverage
|
|
186
|
-
2. **Add Anthropic skill subset** to `skills/security-priority.json` manifest
|
|
187
|
-
3. **Add verification tests** for security patterns (e.g., path traversal, injection)
|
|
188
|
-
|
|
189
|
-
### 5.2 Medium-term (v0.6.x)
|
|
190
|
-
|
|
191
|
-
4. **Create `security-reviewer` skill library** importing top 20 patterns
|
|
192
|
-
5. **Add runtime hardening** via `detecting-anomalous-authentication-patterns`
|
|
193
|
-
6. **Implement supply chain scanning** for `package.json`, `package-lock.json`
|
|
194
|
-
|
|
195
|
-
### 5.3 Long-term (v1.0)
|
|
196
|
-
|
|
197
|
-
7. **Full ATLAS coverage** — map all AML techniques to detection patterns
|
|
198
|
-
8. **Continuous verification** — CI checks for security mapping freshness
|
|
199
|
-
9. **Security benchmark** — measurable security posture improvement
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## 6. Skill Manifest (security-priority.json)
|
|
204
|
-
|
|
205
|
-
```json
|
|
206
|
-
{
|
|
207
|
-
"version": "1.0.0",
|
|
208
|
-
"generated": "2026-05-28T06:00:00Z",
|
|
209
|
-
"source": "source/Anthropic-Cybersecurity-Skills/",
|
|
210
|
-
"priority_skills": [
|
|
211
|
-
{ "id": "detecting-ai-model-prompt-injection-attacks", "priority": "critical", "atlas": ["AML.T0051"] },
|
|
212
|
-
{ "id": "detecting-supply-chain-attacks-in-ci-cd", "priority": "critical", "atlas": ["AML.T0010", "AML.T0104"] },
|
|
213
|
-
{ "id": "detecting-anomalous-authentication-patterns", "priority": "high", "atlas": ["AML.T0043", "AML.T0018"] },
|
|
214
|
-
{ "id": "detecting-typosquatting-packages-in-npm-pypi", "priority": "high", "atlas": [] },
|
|
215
|
-
{ "id": "detecting-path-traversal", "priority": "high", "atlas": [] },
|
|
216
|
-
{ "id": "detecting-command-injection", "priority": "high", "atlas": [] },
|
|
217
|
-
{ "id": "detecting-sensitive-data-exposure", "priority": "high", "atlas": ["AML.T0067"] },
|
|
218
|
-
{ "id": "detecting-context-poisoning-in-agent-loops", "priority": "high", "atlas": ["AML.T0051"] },
|
|
219
|
-
{ "id": "detecting-tool-invocation-abuse", "priority": "medium", "atlas": ["AML.T0051", "AML.T0054"] },
|
|
220
|
-
{ "id": "detecting-malicious-skill-loading", "priority": "medium", "atlas": ["AML.T0062"] },
|
|
221
|
-
{ "id": "detecting-credential-leakage-in-logs", "priority": "medium", "atlas": [] },
|
|
222
|
-
{ "id": "detecting-session-fixation", "priority": "medium", "atlas": ["AML.T0018"] },
|
|
223
|
-
{ "id": "detecting-data-exfiltration-indicators", "priority": "medium", "atlas": ["AML.T0067"] },
|
|
224
|
-
{ "id": "detecting-serverless-function-injection", "priority": "medium", "atlas": [] },
|
|
225
|
-
{ "id": "detecting-race-condition-vulnerabilities", "priority": "medium", "atlas": ["AML.T0054"] },
|
|
226
|
-
{ "id": "detecting-agent-privilege-escalation", "priority": "medium", "atlas": ["AML.T0054"] },
|
|
227
|
-
{ "id": "detecting-malicious-npm-packages", "priority": "low", "atlas": [] },
|
|
228
|
-
{ "id": "detecting-dependency-confusion-attacks", "priority": "low", "atlas": [] },
|
|
229
|
-
{ "id": "detecting-token-hijacking", "priority": "low", "atlas": ["AML.T0018"] },
|
|
230
|
-
{ "id": "detecting-race-condition-in-file-operations", "priority": "low", "atlas": ["AML.T0054"] }
|
|
231
|
-
]
|
|
232
|
-
}
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## 7. Framework Mapping Reference
|
|
238
|
-
|
|
239
|
-
### 7.1 MITRE ATT&CK (General Security)
|
|
240
|
-
|
|
241
|
-
| Tactic | Technique | Coverage |
|
|
242
|
-
|--------|-----------|----------|
|
|
243
|
-
| Initial Access | T1195 (Supply Chain) | ✅ Covered |
|
|
244
|
-
| Execution | T1059 (Command & Scripting) | ✅ Covered |
|
|
245
|
-
| Persistence | T1543 (Create/Modify Process) | ⚠️ Partial |
|
|
246
|
-
| Privilege Escalation | T1548 (Abuse Elevation) | ✅ Covered |
|
|
247
|
-
| Defense Evasion | T1562 (Impair Defenses) | ⚠️ Partial |
|
|
248
|
-
| Exfiltration | T1041 (Exfil Over C2) | ✅ Covered |
|
|
249
|
-
|
|
250
|
-
### 7.2 NIST AI RMF 1.0
|
|
251
|
-
|
|
252
|
-
| Function | Category | Coverage |
|
|
253
|
-
|----------|----------|----------|
|
|
254
|
-
| GOVERN | G1.1 AI Risk Strategy | ✅ Covered |
|
|
255
|
-
| GOVERN | G6.1 AI Supply Chain | ✅ Covered |
|
|
256
|
-
| MAP | MAP-1.6 Supply Chain | ✅ Covered |
|
|
257
|
-
| MEASURE | M2.5 AI Evaluation | ✅ Covered |
|
|
258
|
-
| MEASURE | M2.6 AI Measurement | ✅ Covered |
|
|
259
|
-
| MEASURE | M2.7 AI Monitoring | ✅ Covered |
|
|
260
|
-
| MANAGE | M2.4 AI Incident Response | ⚠️ Partial |
|
|
261
|
-
|
|
262
|
-
---
|
|
263
|
-
|
|
264
|
-
## 8. Gap Analysis & Remediation
|
|
265
|
-
|
|
266
|
-
| Gap | Severity | Status | Remediation |
|
|
267
|
-
|-----|----------|--------|-------------|
|
|
268
|
-
| Missing skill manifest | MEDIUM | ⚠️ Create `security-priority.json` | ✅ This document |
|
|
269
|
-
| Full ATLAS coverage | HIGH | ⚠️ Partial (10/20 techniques) | Roadmap v1.0 |
|
|
270
|
-
| Security benchmark | MEDIUM | ❌ None | Add measurable tests |
|
|
271
|
-
| CI security checks | MEDIUM | ⚠️ Basic | Expand `verify-skill.ts` |
|
|
272
|
-
| Skill update process | LOW | ❌ None | Add CI freshness check |
|
|
273
|
-
| Trust boundary docs | MEDIUM | ⚠️ In code only | Add architecture doc |
|
|
274
|
-
|
|
275
|
-
---
|
|
276
|
-
|
|
277
|
-
## 9. Conclusion
|
|
278
|
-
|
|
279
|
-
pi-crew's `security-reviewer` role has a solid foundation with `secure-agent-orchestration-review` and `ownership-session-security`. The Anthropic Cybersecurity Skills library (754 skills) provides rich context for expanding coverage, particularly for:
|
|
280
|
-
|
|
281
|
-
1. **Agent-specific threats** (prompt injection, context poisoning) — High priority
|
|
282
|
-
2. **Supply chain security** (npm packages, dependencies) — Critical priority
|
|
283
|
-
3. **Runtime hardening** (auth patterns, race conditions) — Medium priority
|
|
284
|
-
|
|
285
|
-
**Next steps:**
|
|
286
|
-
1. Create `skills/security-priority.json` manifest from this distillation
|
|
287
|
-
2. Extend existing skills with ATLAS coverage
|
|
288
|
-
3. Add verification tests for top 5 patterns
|
|
289
|
-
4. Document trust boundary model
|
|
290
|
-
|
|
291
|
-
---
|
|
292
|
-
|
|
293
|
-
*Generated by pi-crew team research run: `team_20260528060514_d75ea05271f1a93a`*
|
|
294
|
-
*Source: `source/Anthropic-Cybersecurity-Skills/` (754 skills, 26 domains)*
|
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
# Feature Analysis: 3 Features to Port from pi-subagent4
|
|
2
|
-
|
|
3
|
-
## 1. Safe Bash Tool
|
|
4
|
-
|
|
5
|
-
### Current State in pi-crew
|
|
6
|
-
- **No dangerous command blocking** - pi-crew relies on user config
|
|
7
|
-
- `src/utils/env-filter.ts` has `sanitizeEnvSecrets()` for env var filtering, but nothing for bash commands
|
|
8
|
-
- `src/runtime/skill-instructions.ts` references `safe-bash` skill, but it's a guidance document, not enforcement
|
|
9
|
-
|
|
10
|
-
### How subagent4 Does It
|
|
11
|
-
|
|
12
|
-
```typescript
|
|
13
|
-
// tools/safe-bash.ts
|
|
14
|
-
const DANGEROUS_PATTERNS = [
|
|
15
|
-
/\brm\s+(-[a-zA-Z]*f[a-zA-Z]*\s+)?(-[a-zA-Z]*r[a-zA-Z]*\s+)?(\/|~\/?\s|~\/?\b)/,
|
|
16
|
-
/\bsudo\b/,
|
|
17
|
-
/\bmkfs\b/,
|
|
18
|
-
/\bdd\s+if=/,
|
|
19
|
-
/:\(\)\s*\{\s*:\|:&\s*\}\s*;:/,
|
|
20
|
-
/>\s*\/dev\/[sh]d[a-z]/,
|
|
21
|
-
/\bchmod\s+(-[a-zA-Z]+\s+)?777\s+\//,
|
|
22
|
-
/\bchown\s+(-[a-zA-Z]+\s+)?root/,
|
|
23
|
-
/\bcurl\s.*\|\s*(ba)?sh/,
|
|
24
|
-
/\bwget\s.*\|\s*(ba)?sh/,
|
|
25
|
-
/\bshutdown\b/,
|
|
26
|
-
/\breboot\b/,
|
|
27
|
-
/\binit\s+0\b/,
|
|
28
|
-
/\bkill\s+-9\s+1\b/,
|
|
29
|
-
/\bkillall\b/,
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
function isDangerous(command: string): string | null {
|
|
33
|
-
const normalized = command.replace(/\\\n/g, " ");
|
|
34
|
-
for (const pattern of DANGEROUS_PATTERNS) {
|
|
35
|
-
if (pattern.test(normalized)) {
|
|
36
|
-
return `Command blocked by safe_bash: matches dangerous pattern ${pattern}`;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Wraps pi's built-in bash tool
|
|
43
|
-
pi.registerTool({
|
|
44
|
-
name: "safe_bash",
|
|
45
|
-
execute(toolCallId, params, signal, onUpdate, ctx) {
|
|
46
|
-
const danger = isDangerous(params.command);
|
|
47
|
-
if (danger) throw new Error(danger);
|
|
48
|
-
return bashTool.execute(toolCallId, params, signal, onUpdate);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### Implementation Options for pi-crew
|
|
54
|
-
|
|
55
|
-
**Option A: Wrapper Tool (Recommended)**
|
|
56
|
-
```typescript
|
|
57
|
-
// src/tools/safe-bash.ts
|
|
58
|
-
// Extends pi's bash tool with pattern blocking
|
|
59
|
-
// Registered as a custom tool that agents can use instead of bash
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
**Option B: Config-based Pattern Matching**
|
|
63
|
-
```typescript
|
|
64
|
-
// In pi-crew config
|
|
65
|
-
{
|
|
66
|
-
"tools": {
|
|
67
|
-
"bash": {
|
|
68
|
-
"safeMode": true,
|
|
69
|
-
"blockedPatterns": ["rm -rf /", "sudo", "mkfs", ...]
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**Option C: Skill-based Guidance**
|
|
76
|
-
```typescript
|
|
77
|
-
// Already exists: skills/safe-bash/SKILL.md
|
|
78
|
-
// But this is guidance only, not enforcement
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### Effort Assessment
|
|
82
|
-
| Aspect | Estimate |
|
|
83
|
-
|--------|----------|
|
|
84
|
-
| Code complexity | Low (~60 lines) |
|
|
85
|
-
| Integration points | 1 (bash tool wrapper) |
|
|
86
|
-
| Testing needed | Medium (regex pattern coverage) |
|
|
87
|
-
| **Total effort** | **0.5-1 day** |
|
|
88
|
-
|
|
89
|
-
### Risks
|
|
90
|
-
- **Pattern gaps**: Regex may miss edge cases (e.g., `curl -sL` with `|` on separate line)
|
|
91
|
-
- **Performance**: Pattern matching on every command adds latency
|
|
92
|
-
- **User override**: Users might need to bypass for legitimate uses
|
|
93
|
-
|
|
94
|
-
### Recommendation
|
|
95
|
-
**IMPLEMENT** - Low effort, high value. Start with Option A (wrapper tool) and iterate.
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## 2. Dynamic Agent Registration
|
|
100
|
-
|
|
101
|
-
### Current State in pi-crew
|
|
102
|
-
- **Static configuration**: Agents defined in `.team.md` files
|
|
103
|
-
- **No runtime API**: Can't add/remove agents after startup
|
|
104
|
-
- **Manifest-based**: Agents loaded from manifest at run start
|
|
105
|
-
|
|
106
|
-
### How subagent4 Does It
|
|
107
|
-
|
|
108
|
-
```typescript
|
|
109
|
-
// Global bridge for cross-module access
|
|
110
|
-
(globalThis as any).__pi_subagents = { registerAgent, unregisterAgent };
|
|
111
|
-
|
|
112
|
-
export function registerAgent(config: AgentConfig): void {
|
|
113
|
-
// Validate not already registered
|
|
114
|
-
if (agents.find((a) => a.name === config.name)) {
|
|
115
|
-
throw new Error(`Agent already registered: ${config.name}`);
|
|
116
|
-
}
|
|
117
|
-
// Check allowlist if PI_SUBAGENT_ALLOWED is set
|
|
118
|
-
if (SUBAGENT_ALLOWLIST && !SUBAGENT_ALLOWLIST.includes(config.name)) return;
|
|
119
|
-
agents.push(config);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export function unregisterAgent(name: string): void {
|
|
123
|
-
agents = agents.filter((a) => a.name !== name);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// Agent config schema
|
|
127
|
-
interface AgentConfig {
|
|
128
|
-
name: string; // "scout", "researcher", "worker"
|
|
129
|
-
model: string; // "haiku-4-5", "sonnet-4-6"
|
|
130
|
-
tools: string[]; // ["read", "grep", "find", "ls"]
|
|
131
|
-
systemPrompt?: string; // Custom system prompt
|
|
132
|
-
subagentAgents?: string[]; // For worker: ["scout", "researcher"]
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Implementation Options for pi-crew
|
|
137
|
-
|
|
138
|
-
**Option A: Manifest Extension API**
|
|
139
|
-
```typescript
|
|
140
|
-
// Add to team-tool.ts
|
|
141
|
-
export function registerAgent(config: AgentConfig): void {
|
|
142
|
-
// Validate against schema
|
|
143
|
-
// Add to global agent registry
|
|
144
|
-
// Notify active runs to reload
|
|
145
|
-
}
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**Option B: globalThis Bridge (subagent4 style)**
|
|
149
|
-
```typescript
|
|
150
|
-
// In extension/register.ts
|
|
151
|
-
(globalThis as any).__pi_crew = {
|
|
152
|
-
registerAgent: (config: AgentConfig) => { ... },
|
|
153
|
-
unregisterAgent: (name: string) => { ... },
|
|
154
|
-
listAgents: () => { ... }
|
|
155
|
-
};
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
**Option C: File-based Hot Reload**
|
|
159
|
-
```typescript
|
|
160
|
-
// Watch .team.md files for changes
|
|
161
|
-
// Reload agents on file change
|
|
162
|
-
// No API change needed
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Effort Assessment
|
|
166
|
-
| Aspect | Estimate |
|
|
167
|
-
|--------|----------|
|
|
168
|
-
| Code complexity | Medium (~150 lines) |
|
|
169
|
-
| Integration points | 3 (extension, team-tool, runtime) |
|
|
170
|
-
| State management | Complex (need to handle active runs) |
|
|
171
|
-
| **Total effort** | **2-3 days** |
|
|
172
|
-
|
|
173
|
-
### Use Cases Enabled
|
|
174
|
-
1. **Plugin system**: Third-party agents can register at runtime
|
|
175
|
-
2. **Dynamic workflows**: Agents added based on project needs
|
|
176
|
-
3. **A/B testing**: Swap agents without restart
|
|
177
|
-
|
|
178
|
-
### Risks
|
|
179
|
-
- **Race conditions**: Concurrent registration could cause duplicates
|
|
180
|
-
- **State sync**: Active runs might use stale agent list
|
|
181
|
-
- **Security**: Allowlist enforcement needed to prevent unauthorized agents
|
|
182
|
-
|
|
183
|
-
### Recommendation
|
|
184
|
-
**DEFER** - Medium effort, unclear value. Current manifest-based approach works for most use cases. Revisit if plugin system becomes a priority.
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## 3. JSON Event Stream Parsing
|
|
189
|
-
|
|
190
|
-
### Current State in pi-crew
|
|
191
|
-
- **Lifecycle events**: spawn, spawn_error, response_timeout, etc.
|
|
192
|
-
- **No tool-level events**: No visibility into what tools are running
|
|
193
|
-
- **Completion-based**: Only sees final result, not progress
|
|
194
|
-
|
|
195
|
-
### How subagent4 Does It
|
|
196
|
-
|
|
197
|
-
```typescript
|
|
198
|
-
// stdout JSON event stream parsing
|
|
199
|
-
child.stdout.on("data", (data) => {
|
|
200
|
-
const lines = data.toString().split("\n");
|
|
201
|
-
for (const line of lines) {
|
|
202
|
-
if (!line.trim() || !line.startsWith("{")) continue;
|
|
203
|
-
const evt = JSON.parse(line);
|
|
204
|
-
|
|
205
|
-
// Event types handled
|
|
206
|
-
if (evt.type === "tool_execution_start") {
|
|
207
|
-
// Tool started - update UI, track count
|
|
208
|
-
}
|
|
209
|
-
if (evt.type === "tool_execution_update") {
|
|
210
|
-
// Tool progress - nested subagent results
|
|
211
|
-
}
|
|
212
|
-
if (evt.type === "tool_execution_end") {
|
|
213
|
-
// Tool completed - finalize
|
|
214
|
-
}
|
|
215
|
-
if (evt.type === "message_end") {
|
|
216
|
-
// Final output + usage stats
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
|
|
221
|
-
// Tool args preview extraction
|
|
222
|
-
function extractToolArgsPreview(args: Record<string, unknown>): string {
|
|
223
|
-
if (args.command) return flatten(String(args.command));
|
|
224
|
-
if (args.path) return flatten(String(args.path));
|
|
225
|
-
if (args.query) return `"${flatten(String(args.query))}"`;
|
|
226
|
-
// ... more types
|
|
227
|
-
}
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### Implementation Options for pi-crew
|
|
231
|
-
|
|
232
|
-
**Option A: Event Stream Bridge (Recommended)**
|
|
233
|
-
```typescript
|
|
234
|
-
// src/runtime/event-stream-bridge.ts
|
|
235
|
-
// Parses JSON events from child stdout
|
|
236
|
-
// Emits structured events to event bus
|
|
237
|
-
// Updates task state in real-time
|
|
238
|
-
|
|
239
|
-
interface ToolEvent {
|
|
240
|
-
type: "tool_execution_start" | "tool_execution_end" | "tool_execution_update";
|
|
241
|
-
toolName: string;
|
|
242
|
-
toolCallId: string;
|
|
243
|
-
args?: Record<string, unknown>;
|
|
244
|
-
result?: unknown;
|
|
245
|
-
timestamp: number;
|
|
246
|
-
}
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
**Option B: Periodic Snapshot Polling**
|
|
250
|
-
```typescript
|
|
251
|
-
// Poll child process state every N seconds
|
|
252
|
-
// Less real-time, but simpler implementation
|
|
253
|
-
// Lower fidelity but still useful
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
**Option C: Log-based Analysis**
|
|
257
|
-
```typescript
|
|
258
|
-
// Parse .events.jsonl files after completion
|
|
259
|
-
// No real-time, but enables post-run analysis
|
|
260
|
-
// Good for debugging, not for live UI
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### Effort Assessment
|
|
264
|
-
| Aspect | Estimate |
|
|
265
|
-
|--------|----------|
|
|
266
|
-
| Code complexity | High (~300 lines) |
|
|
267
|
-
| Integration points | 4 (child-pi, event-bus, task-runner, UI) |
|
|
268
|
-
| Error handling | Complex (malformed JSON, partial events) |
|
|
269
|
-
| **Total effort** | **3-5 days** |
|
|
270
|
-
|
|
271
|
-
### Benefits Enabled
|
|
272
|
-
1. **Live tool progress**: See what tools are running in real-time
|
|
273
|
-
2. **Nested subagent visibility**: See child subagent activity
|
|
274
|
-
3. **Token usage tracking**: Real-time context window monitoring
|
|
275
|
-
4. **Error isolation**: Know exactly which tool failed
|
|
276
|
-
5. **Better UX**: Progress indicators, not just spinner
|
|
277
|
-
|
|
278
|
-
### Risks
|
|
279
|
-
- **Event format changes**: Pi might change JSON event format
|
|
280
|
-
- **Performance overhead**: JSON parsing on every stdout chunk
|
|
281
|
-
- **Buffer handling**: Partial JSON lines need buffering
|
|
282
|
-
|
|
283
|
-
### Recommendation
|
|
284
|
-
**IMPLEMENT** - High effort, high value. This would significantly improve UX. Start with Option A and target `tool_execution_start/end` events first (most impactful).
|
|
285
|
-
|
|
286
|
-
---
|
|
287
|
-
|
|
288
|
-
## Summary
|
|
289
|
-
|
|
290
|
-
| Feature | Effort | Value | Priority | Recommendation |
|
|
291
|
-
|---------|--------|-------|----------|----------------|
|
|
292
|
-
| Safe Bash | Low (0.5-1 day) | High | P0 | **IMPLEMENT NOW** |
|
|
293
|
-
| Dynamic Registration | Medium (2-3 days) | Medium | P2 | DEFER |
|
|
294
|
-
| JSON Event Stream | High (3-5 days) | High | P1 | **IMPLEMENT** |
|
|
295
|
-
|
|
296
|
-
### Recommended Roadmap
|
|
297
|
-
|
|
298
|
-
**Phase 1 (This week)**
|
|
299
|
-
- Safe bash tool with pattern blocklist
|
|
300
|
-
|
|
301
|
-
**Phase 2 (Next sprint)**
|
|
302
|
-
- JSON event stream parsing for tool progress
|
|
303
|
-
|
|
304
|
-
**Phase 3 (Future)**
|
|
305
|
-
- Dynamic agent registration (if needed)
|