pi-crew 0.1.51 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/CHANGELOG.md +56 -1
  2. package/README.md +176 -781
  3. package/agents/analyst.md +11 -11
  4. package/agents/critic.md +11 -11
  5. package/agents/executor.md +11 -11
  6. package/agents/explorer.md +11 -11
  7. package/agents/planner.md +11 -11
  8. package/agents/reviewer.md +11 -11
  9. package/agents/security-reviewer.md +11 -11
  10. package/agents/test-engineer.md +11 -11
  11. package/agents/verifier.md +70 -11
  12. package/agents/writer.md +11 -11
  13. package/docs/actions-reference.md +595 -0
  14. package/docs/commands-reference.md +347 -0
  15. package/docs/runtime-flow.md +148 -148
  16. package/index.ts +6 -6
  17. package/package.json +99 -99
  18. package/skills/async-worker-recovery/SKILL.md +42 -42
  19. package/skills/context-artifact-hygiene/SKILL.md +52 -52
  20. package/skills/delegation-patterns/SKILL.md +54 -54
  21. package/skills/mailbox-interactive/SKILL.md +40 -40
  22. package/skills/model-routing-context/SKILL.md +39 -39
  23. package/skills/multi-perspective-review/SKILL.md +58 -58
  24. package/skills/observability-reliability/SKILL.md +41 -41
  25. package/skills/orchestration/SKILL.md +157 -157
  26. package/skills/ownership-session-security/SKILL.md +41 -41
  27. package/skills/pi-extension-lifecycle/SKILL.md +39 -39
  28. package/skills/requirements-to-task-packet/SKILL.md +63 -63
  29. package/skills/resource-discovery-config/SKILL.md +41 -41
  30. package/skills/runtime-state-reader/SKILL.md +44 -44
  31. package/skills/secure-agent-orchestration-review/SKILL.md +45 -45
  32. package/skills/state-mutation-locking/SKILL.md +42 -42
  33. package/skills/systematic-debugging/SKILL.md +67 -67
  34. package/skills/ui-render-performance/SKILL.md +39 -39
  35. package/skills/verification-before-done/SKILL.md +57 -57
  36. package/skills/worktree-isolation/SKILL.md +39 -39
  37. package/src/adapters/claude-adapter.ts +25 -0
  38. package/src/adapters/codex-adapter.ts +21 -0
  39. package/src/adapters/cursor-adapter.ts +17 -0
  40. package/src/adapters/export-util.ts +137 -0
  41. package/src/adapters/index.ts +15 -0
  42. package/src/adapters/registry.ts +18 -0
  43. package/src/adapters/types.ts +23 -0
  44. package/src/agents/agent-config.ts +2 -0
  45. package/src/agents/agent-search.ts +98 -98
  46. package/src/agents/discover-agents.ts +2 -1
  47. package/src/config/config.ts +13 -1
  48. package/src/config/drift-detector.ts +211 -0
  49. package/src/config/markers.ts +327 -0
  50. package/src/config/resilient-parser.ts +108 -0
  51. package/src/config/suggestions.ts +74 -0
  52. package/src/extension/cross-extension-rpc.ts +103 -94
  53. package/src/extension/project-init.ts +21 -1
  54. package/src/extension/register.ts +45 -14
  55. package/src/extension/registration/commands.ts +77 -8
  56. package/src/extension/registration/subagent-tools.ts +10 -1
  57. package/src/extension/registration/team-tool.ts +10 -1
  58. package/src/extension/registration/viewers.ts +48 -34
  59. package/src/extension/run-bundle-schema.ts +89 -89
  60. package/src/extension/run-import.ts +25 -1
  61. package/src/extension/run-index.ts +5 -1
  62. package/src/extension/run-maintenance.ts +142 -68
  63. package/src/extension/team-manager-command.ts +10 -1
  64. package/src/extension/team-tool/doctor.ts +28 -3
  65. package/src/extension/team-tool/handle-settings.ts +195 -188
  66. package/src/extension/team-tool/inspect.ts +41 -41
  67. package/src/extension/team-tool/intent-policy.ts +42 -42
  68. package/src/extension/team-tool/lifecycle-actions.ts +27 -8
  69. package/src/extension/team-tool/plan.ts +19 -19
  70. package/src/extension/team-tool/run.ts +12 -1
  71. package/src/extension/team-tool.ts +11 -1
  72. package/src/i18n.ts +184 -184
  73. package/src/observability/exporters/otlp-exporter.ts +92 -77
  74. package/src/prompt/prompt-runtime.ts +72 -72
  75. package/src/runtime/agent-memory.ts +72 -72
  76. package/src/runtime/agent-observability.ts +114 -114
  77. package/src/runtime/async-marker.ts +26 -26
  78. package/src/runtime/attention-events.ts +28 -28
  79. package/src/runtime/auto-resume.ts +100 -0
  80. package/src/runtime/background-runner.ts +11 -1
  81. package/src/runtime/cancellation-token.ts +89 -89
  82. package/src/runtime/cancellation.ts +61 -61
  83. package/src/runtime/capability-inventory.ts +116 -116
  84. package/src/runtime/child-pi.ts +7 -2
  85. package/src/runtime/compaction-summary.ts +271 -0
  86. package/src/runtime/completion-guard.ts +190 -190
  87. package/src/runtime/crash-recovery.ts +33 -0
  88. package/src/runtime/delta-conflict.ts +360 -0
  89. package/src/runtime/direct-run.ts +35 -35
  90. package/src/runtime/foreground-control.ts +82 -82
  91. package/src/runtime/green-contract.ts +46 -46
  92. package/src/runtime/group-join.ts +106 -106
  93. package/src/runtime/heartbeat-gradient.ts +28 -28
  94. package/src/runtime/heartbeat-watcher.ts +124 -124
  95. package/src/runtime/iteration-hooks.ts +262 -0
  96. package/src/runtime/live-agent-control.ts +88 -88
  97. package/src/runtime/live-control-realtime.ts +36 -36
  98. package/src/runtime/live-extension-bridge.ts +150 -150
  99. package/src/runtime/live-irc.ts +92 -92
  100. package/src/runtime/live-session-health.ts +100 -100
  101. package/src/runtime/loop-gates.ts +129 -0
  102. package/src/runtime/metric-parser.ts +40 -0
  103. package/src/runtime/notebook-helpers.ts +90 -90
  104. package/src/runtime/orphan-sentinel.ts +7 -7
  105. package/src/runtime/parallel-research.ts +44 -44
  106. package/src/runtime/phase-progress.ts +217 -0
  107. package/src/runtime/pi-args.ts +38 -11
  108. package/src/runtime/pi-json-output.ts +111 -111
  109. package/src/runtime/pi-spawn.ts +57 -7
  110. package/src/runtime/policy-engine.ts +79 -79
  111. package/src/runtime/post-checks.ts +122 -0
  112. package/src/runtime/progress-event-coalescer.ts +43 -43
  113. package/src/runtime/prose-compressor.ts +164 -164
  114. package/src/runtime/recovery-recipes.ts +74 -74
  115. package/src/runtime/result-extractor.ts +121 -121
  116. package/src/runtime/role-permission.ts +39 -39
  117. package/src/runtime/sensitive-paths.ts +2 -2
  118. package/src/runtime/session-resources.ts +25 -25
  119. package/src/runtime/session-snapshot.ts +59 -59
  120. package/src/runtime/session-usage.ts +79 -79
  121. package/src/runtime/sidechain-output.ts +29 -29
  122. package/src/runtime/stream-preview.ts +177 -177
  123. package/src/runtime/supervisor-contact.ts +59 -59
  124. package/src/runtime/task-display.ts +38 -38
  125. package/src/runtime/task-graph.ts +207 -0
  126. package/src/runtime/task-quality.ts +207 -0
  127. package/src/runtime/task-runner/capabilities.ts +78 -78
  128. package/src/runtime/task-runner/live-executor.ts +7 -1
  129. package/src/runtime/task-runner/progress.ts +119 -119
  130. package/src/runtime/task-runner/prompt-pipeline.ts +64 -64
  131. package/src/runtime/task-runner/result-utils.ts +14 -14
  132. package/src/runtime/task-runner/run-projection.ts +103 -103
  133. package/src/runtime/task-runner/state-helpers.ts +22 -22
  134. package/src/runtime/team-runner.ts +117 -7
  135. package/src/runtime/worker-heartbeat.ts +21 -21
  136. package/src/runtime/worker-startup.ts +57 -57
  137. package/src/runtime/workflow-state.ts +187 -0
  138. package/src/runtime/workspace-tree.ts +298 -298
  139. package/src/schema/config-schema.ts +11 -0
  140. package/src/schema/validation-types.ts +148 -0
  141. package/src/skills/skill-templates.ts +374 -0
  142. package/src/state/active-run-registry.ts +35 -11
  143. package/src/state/atomic-write.ts +33 -26
  144. package/src/state/contracts.ts +1 -0
  145. package/src/state/event-reconstructor.ts +217 -0
  146. package/src/state/locks.ts +2 -13
  147. package/src/state/mailbox.ts +4 -3
  148. package/src/state/state-store.ts +32 -14
  149. package/src/state/task-claims.ts +44 -44
  150. package/src/state/types.ts +9 -0
  151. package/src/state/usage.ts +29 -29
  152. package/src/subagents/async-entry.ts +1 -1
  153. package/src/subagents/index.ts +3 -3
  154. package/src/subagents/live/control.ts +1 -1
  155. package/src/subagents/live/manager.ts +1 -1
  156. package/src/subagents/live/realtime.ts +1 -1
  157. package/src/subagents/live/session-runtime.ts +1 -1
  158. package/src/subagents/manager.ts +1 -1
  159. package/src/subagents/spawn.ts +1 -1
  160. package/src/teams/team-serializer.ts +38 -38
  161. package/src/types/diff.d.ts +18 -18
  162. package/src/ui/crew-footer.ts +101 -101
  163. package/src/ui/crew-select-list.ts +111 -111
  164. package/src/ui/crew-widget.ts +5 -2
  165. package/src/ui/dashboard-panes/cancellation-pane.ts +42 -42
  166. package/src/ui/dashboard-panes/capability-pane.ts +59 -59
  167. package/src/ui/dashboard-panes/mailbox-pane.ts +35 -35
  168. package/src/ui/dashboard-panes/metrics-pane.ts +34 -34
  169. package/src/ui/dashboard-panes/progress-pane.ts +11 -0
  170. package/src/ui/dynamic-border.ts +25 -25
  171. package/src/ui/layout-primitives.ts +106 -106
  172. package/src/ui/loaders.ts +158 -158
  173. package/src/ui/render-coalescer.ts +51 -51
  174. package/src/ui/render-diff.ts +119 -119
  175. package/src/ui/render-scheduler.ts +143 -143
  176. package/src/ui/run-action-dispatcher.ts +10 -1
  177. package/src/ui/spinner.ts +17 -17
  178. package/src/ui/status-colors.ts +58 -58
  179. package/src/ui/syntax-highlight.ts +116 -116
  180. package/src/ui/transcript-entries.ts +258 -258
  181. package/src/utils/completion-dedupe.ts +63 -63
  182. package/src/utils/frontmatter.ts +68 -68
  183. package/src/utils/git.ts +262 -262
  184. package/src/utils/ids.ts +17 -17
  185. package/src/utils/incremental-reader.ts +104 -104
  186. package/src/utils/names.ts +27 -27
  187. package/src/utils/redaction.ts +44 -44
  188. package/src/utils/safe-paths.ts +47 -47
  189. package/src/utils/scan-cache.ts +136 -136
  190. package/src/utils/sleep.ts +40 -26
  191. package/src/utils/task-name-generator.ts +337 -337
  192. package/src/workflows/validate-workflow.ts +40 -40
  193. package/src/worktree/branch-freshness.ts +45 -45
  194. package/teams/default.team.md +12 -12
  195. package/teams/fast-fix.team.md +11 -11
  196. package/teams/implementation.team.md +18 -18
  197. package/teams/parallel-research.team.md +14 -14
  198. package/teams/research.team.md +11 -11
  199. package/teams/review.team.md +12 -12
  200. package/workflows/default.workflow.md +30 -29
  201. package/workflows/fast-fix.workflow.md +23 -22
  202. package/workflows/implementation.workflow.md +43 -43
  203. package/workflows/parallel-research.workflow.md +46 -46
  204. package/workflows/research.workflow.md +22 -22
  205. package/workflows/review.workflow.md +30 -30
  206. package/docs/refactor-tasks-phase3.md +0 -394
  207. package/docs/refactor-tasks-phase4.md +0 -564
  208. package/docs/refactor-tasks-phase5.md +0 -402
  209. package/docs/refactor-tasks-phase6.md +0 -662
  210. package/docs/refactor-tasks.md +0 -1484
  211. package/docs/research/AGENT-EXECUTION-ARCHITECTURE.md +0 -261
  212. package/docs/research/AGENT-LIFECYCLE-COMPARISON.md +0 -111
  213. package/docs/research/AUDIT_OH_MY_PI.md +0 -261
  214. package/docs/research/AUDIT_PI_CREW.md +0 -457
  215. package/docs/research/CAVEMAN-DEEP-RESEARCH.md +0 -281
  216. package/docs/research/COMPARISON_OH_MY_PI_VS_PI_CREW.md +0 -264
  217. package/docs/research/DEEP-RESEARCH-PI-POWERBAR.md +0 -343
  218. package/docs/research/DEEP_RESEARCH_SUBAGENT_ARCHITECTURE.md +0 -480
  219. package/docs/research/GAP_CLOSURE_IMPLEMENTATION_PLAN.md +0 -354
  220. package/docs/research/IMPLEMENTATION_PLAN.md +0 -385
  221. package/docs/research/LIVE-SESSION-PRODUCTION-READY-PLAN.md +0 -502
  222. package/docs/research/OH-MY-PI-DEEP-RESEARCH-v14.7.6.md +0 -266
  223. package/docs/research/REMAINING-GAPS-PLAN.md +0 -363
  224. package/docs/research/SESSION-SUMMARY-2026-05-08.md +0 -146
  225. package/docs/research/UI-RESPONSIVENESS-AUDIT.md +0 -173
  226. package/docs/research-awesome-agent-skills-distillation.md +0 -100
  227. package/docs/research-extension-examples.md +0 -297
  228. package/docs/research-extension-system.md +0 -324
  229. package/docs/research-oh-my-pi-distillation.md +0 -369
  230. package/docs/research-optimization-plan.md +0 -548
  231. package/docs/research-phase10-distillation.md +0 -199
  232. package/docs/research-phase11-distillation.md +0 -201
  233. package/docs/research-phase8-operator-experience-plan.md +0 -819
  234. package/docs/research-phase9-observability-reliability-plan.md +0 -1190
  235. package/docs/research-pi-coding-agent.md +0 -357
  236. package/docs/research-source-pi-crew-reference.md +0 -174
  237. package/docs/research-ui-optimization-plan.md +0 -480
  238. package/docs/source-runtime-refactor-map.md +0 -107
  239. package/src/utils/atomic-write.ts +0 -33
@@ -1,116 +1,116 @@
1
- import { supportsLanguage, highlight } from "cli-highlight";
2
- import type { CrewTheme } from "./theme-adapter.ts";
3
- import { asCrewTheme } from "./theme-adapter.ts";
4
-
5
- function buildCliTheme(theme: CrewTheme): Record<string, (text: string) => string> {
6
- return {
7
- keyword: (text) => theme.fg("syntaxKeyword", text),
8
- built_in: (text) => theme.fg("syntaxType", text),
9
- literal: (text) => theme.fg("syntaxNumber", text),
10
- number: (text) => theme.fg("syntaxNumber", text),
11
- string: (text) => theme.fg("syntaxString", text),
12
- comment: (text) => theme.fg("syntaxComment", text),
13
- function: (text) => theme.fg("syntaxFunction", text),
14
- title: (text) => theme.fg("syntaxFunction", text),
15
- class: (text) => theme.fg("syntaxType", text),
16
- type: (text) => theme.fg("syntaxType", text),
17
- attr: (text) => theme.fg("syntaxVariable", text),
18
- variable: (text) => theme.fg("syntaxVariable", text),
19
- params: (text) => theme.fg("syntaxVariable", text),
20
- operator: (text) => theme.fg("syntaxOperator", text),
21
- punctuation: (text) => theme.fg("syntaxPunctuation", text),
22
- };
23
- }
24
-
25
- export function detectLanguageFromPath(filePath: string): string | undefined {
26
- const ext = filePath.split(".").pop()?.toLowerCase();
27
- if (!ext) return undefined;
28
- return languageMap[ext];
29
- }
30
-
31
- export const languageMap: Record<string, string> = {
32
- ts: "typescript",
33
- tsx: "typescript",
34
- js: "javascript",
35
- jsx: "javascript",
36
- mjs: "javascript",
37
- cjs: "javascript",
38
- py: "python",
39
- md: "markdown",
40
- markdown: "markdown",
41
- json: "json",
42
- yml: "yaml",
43
- yaml: "yaml",
44
- toml: "yaml",
45
- html: "html",
46
- htm: "html",
47
- css: "css",
48
- scss: "scss",
49
- sass: "sass",
50
- bash: "bash",
51
- sh: "bash",
52
- zsh: "bash",
53
- fish: "bash",
54
- ps1: "powershell",
55
- sql: "sql",
56
- rust: "rust",
57
- rb: "ruby",
58
- go: "go",
59
- java: "java",
60
- kt: "kotlin",
61
- cpp: "cpp",
62
- cc: "cpp",
63
- cxx: "cpp",
64
- hpp: "cpp",
65
- c: "c",
66
- h: "c",
67
- cs: "csharp",
68
- php: "php",
69
- };
70
-
71
- export function highlightCode(code: string, language: string | undefined, themeLike: unknown = undefined): string {
72
- const theme = asCrewTheme(themeLike);
73
- const validLanguage = language && supportsLanguage(language) ? language : undefined;
74
- if (!validLanguage) {
75
- return code
76
- .split("\n")
77
- .map((line) => theme.fg("mdCodeBlock", line))
78
- .join("\n");
79
- }
80
- try {
81
- return highlight(code, {
82
- language: validLanguage,
83
- ignoreIllegals: true,
84
- theme: buildCliTheme(theme),
85
- }).trimEnd();
86
- } catch {
87
- return code
88
- .split("\n")
89
- .map((line) => theme.fg("mdCodeBlock", line))
90
- .join("\n");
91
- }
92
- }
93
-
94
- export function highlightJson(payload: string, themeLike: unknown = undefined): string {
95
- const theme = asCrewTheme(themeLike);
96
- try {
97
- return highlight(payload, {
98
- language: "json",
99
- ignoreIllegals: true,
100
- theme: buildCliTheme(theme),
101
- }).trimEnd();
102
- } catch {
103
- try {
104
- const parsed = JSON.parse(payload);
105
- return JSON.stringify(parsed, null, 2)
106
- .split("\n")
107
- .map((line) => theme.fg("mdCodeBlock", line))
108
- .join("\n");
109
- } catch {
110
- return payload
111
- .split("\n")
112
- .map((line) => theme.fg("mdCodeBlock", line))
113
- .join("\n");
114
- }
115
- }
116
- }
1
+ import { supportsLanguage, highlight } from "cli-highlight";
2
+ import type { CrewTheme } from "./theme-adapter.ts";
3
+ import { asCrewTheme } from "./theme-adapter.ts";
4
+
5
+ function buildCliTheme(theme: CrewTheme): Record<string, (text: string) => string> {
6
+ return {
7
+ keyword: (text) => theme.fg("syntaxKeyword", text),
8
+ built_in: (text) => theme.fg("syntaxType", text),
9
+ literal: (text) => theme.fg("syntaxNumber", text),
10
+ number: (text) => theme.fg("syntaxNumber", text),
11
+ string: (text) => theme.fg("syntaxString", text),
12
+ comment: (text) => theme.fg("syntaxComment", text),
13
+ function: (text) => theme.fg("syntaxFunction", text),
14
+ title: (text) => theme.fg("syntaxFunction", text),
15
+ class: (text) => theme.fg("syntaxType", text),
16
+ type: (text) => theme.fg("syntaxType", text),
17
+ attr: (text) => theme.fg("syntaxVariable", text),
18
+ variable: (text) => theme.fg("syntaxVariable", text),
19
+ params: (text) => theme.fg("syntaxVariable", text),
20
+ operator: (text) => theme.fg("syntaxOperator", text),
21
+ punctuation: (text) => theme.fg("syntaxPunctuation", text),
22
+ };
23
+ }
24
+
25
+ export function detectLanguageFromPath(filePath: string): string | undefined {
26
+ const ext = filePath.split(".").pop()?.toLowerCase();
27
+ if (!ext) return undefined;
28
+ return languageMap[ext];
29
+ }
30
+
31
+ export const languageMap: Record<string, string> = {
32
+ ts: "typescript",
33
+ tsx: "typescript",
34
+ js: "javascript",
35
+ jsx: "javascript",
36
+ mjs: "javascript",
37
+ cjs: "javascript",
38
+ py: "python",
39
+ md: "markdown",
40
+ markdown: "markdown",
41
+ json: "json",
42
+ yml: "yaml",
43
+ yaml: "yaml",
44
+ toml: "yaml",
45
+ html: "html",
46
+ htm: "html",
47
+ css: "css",
48
+ scss: "scss",
49
+ sass: "sass",
50
+ bash: "bash",
51
+ sh: "bash",
52
+ zsh: "bash",
53
+ fish: "bash",
54
+ ps1: "powershell",
55
+ sql: "sql",
56
+ rust: "rust",
57
+ rb: "ruby",
58
+ go: "go",
59
+ java: "java",
60
+ kt: "kotlin",
61
+ cpp: "cpp",
62
+ cc: "cpp",
63
+ cxx: "cpp",
64
+ hpp: "cpp",
65
+ c: "c",
66
+ h: "c",
67
+ cs: "csharp",
68
+ php: "php",
69
+ };
70
+
71
+ export function highlightCode(code: string, language: string | undefined, themeLike: unknown = undefined): string {
72
+ const theme = asCrewTheme(themeLike);
73
+ const validLanguage = language && supportsLanguage(language) ? language : undefined;
74
+ if (!validLanguage) {
75
+ return code
76
+ .split("\n")
77
+ .map((line) => theme.fg("mdCodeBlock", line))
78
+ .join("\n");
79
+ }
80
+ try {
81
+ return highlight(code, {
82
+ language: validLanguage,
83
+ ignoreIllegals: true,
84
+ theme: buildCliTheme(theme),
85
+ }).trimEnd();
86
+ } catch {
87
+ return code
88
+ .split("\n")
89
+ .map((line) => theme.fg("mdCodeBlock", line))
90
+ .join("\n");
91
+ }
92
+ }
93
+
94
+ export function highlightJson(payload: string, themeLike: unknown = undefined): string {
95
+ const theme = asCrewTheme(themeLike);
96
+ try {
97
+ return highlight(payload, {
98
+ language: "json",
99
+ ignoreIllegals: true,
100
+ theme: buildCliTheme(theme),
101
+ }).trimEnd();
102
+ } catch {
103
+ try {
104
+ const parsed = JSON.parse(payload);
105
+ return JSON.stringify(parsed, null, 2)
106
+ .split("\n")
107
+ .map((line) => theme.fg("mdCodeBlock", line))
108
+ .join("\n");
109
+ } catch {
110
+ return payload
111
+ .split("\n")
112
+ .map((line) => theme.fg("mdCodeBlock", line))
113
+ .join("\n");
114
+ }
115
+ }
116
+ }