@selesai/code 0.9.9 → 0.9.11

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 (306) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/cli/args.js +13 -2
  3. package/dist/cli/args.test.js +8 -0
  4. package/dist/cli/credential-print.js +4 -4
  5. package/dist/cli.js +0 -0
  6. package/dist/core/agent-session-auto-handoff.test.js +24 -1
  7. package/dist/core/agent-session.d.ts +11 -4
  8. package/dist/core/agent-session.js +99 -39
  9. package/dist/core/compaction/branch-summarization.js +30 -30
  10. package/dist/core/compaction/compaction.js +81 -81
  11. package/dist/core/compaction/utils.js +2 -2
  12. package/dist/core/defaults.d.ts +1 -0
  13. package/dist/core/defaults.js +9 -0
  14. package/dist/core/export-html/template.css +1066 -1066
  15. package/dist/core/export-html/template.html +55 -55
  16. package/dist/core/export-html/template.js +1864 -1864
  17. package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
  18. package/dist/core/export-html/vendor/marked.min.js +78 -78
  19. package/dist/core/extensions/loader.js +108 -35
  20. package/dist/core/extensions/loader.test.d.ts +1 -0
  21. package/dist/core/extensions/loader.test.js +21 -0
  22. package/dist/core/extensions/types.d.ts +12 -2
  23. package/dist/core/keybindings.d.ts +2 -2
  24. package/dist/core/messages.js +7 -7
  25. package/dist/core/model-resolver.d.ts +1 -0
  26. package/dist/core/model-resolver.js +10 -4
  27. package/dist/core/package-manager.js +4 -4
  28. package/dist/core/sdk.d.ts +5 -5
  29. package/dist/core/sdk.js +16 -4
  30. package/dist/core/settings-manager.d.ts +6 -0
  31. package/dist/core/settings-manager.js +22 -0
  32. package/dist/core/tools/bash.d.ts +18 -1
  33. package/dist/core/tools/bash.js +41 -23
  34. package/dist/core/tools/index.d.ts +4 -1
  35. package/dist/core/tools/index.js +9 -1
  36. package/dist/core/tools/powershell.d.ts +15 -0
  37. package/dist/core/tools/powershell.js +38 -0
  38. package/dist/core/tools/powershell.test.d.ts +1 -0
  39. package/dist/core/tools/powershell.test.js +20 -0
  40. package/dist/extensions/context-compaction-reminder.test.ts +82 -82
  41. package/dist/extensions/context-compaction-reminder.ts +28 -28
  42. package/dist/extensions/copy-turn.test.ts +24 -1
  43. package/dist/extensions/copy-turn.ts +6 -1
  44. package/dist/extensions/handoff-new.test.ts +15 -2
  45. package/dist/extensions/handoff-new.ts +44 -30
  46. package/dist/extensions/pi-intercom/LICENSE +21 -21
  47. package/dist/extensions/pi-intercom/broker/client.test.ts +83 -83
  48. package/dist/extensions/pi-intercom/broker/extension.test.ts +387 -387
  49. package/dist/extensions/pi-intercom/broker/framing.test.ts +114 -114
  50. package/dist/extensions/pi-intercom/broker/paths.test.ts +153 -153
  51. package/dist/extensions/pi-intercom/broker/paths.ts +134 -134
  52. package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +34 -34
  53. package/dist/extensions/pi-intercom/broker/runtime-claim.ts +21 -21
  54. package/dist/extensions/pi-intercom/cwd.test.ts +40 -40
  55. package/dist/extensions/pi-intercom/cwd.ts +31 -31
  56. package/dist/extensions/pi-intercom/extension-api.ts +44 -44
  57. package/dist/extensions/pi-intercom/format-context.test.ts +31 -31
  58. package/dist/extensions/pi-intercom/format-context.ts +32 -32
  59. package/dist/extensions/pi-intercom/test/overlay-width.test.ts +66 -66
  60. package/dist/extensions/pi-intercom/ui/compose.ts +143 -143
  61. package/dist/extensions/pi-intercom/ui/session-list.ts +166 -166
  62. package/dist/extensions/pi-powerline-footer/bash-mode/shell-session.ts +286 -286
  63. package/dist/extensions/pi-powerline-footer/bash-mode/transcript.ts +108 -108
  64. package/dist/extensions/pi-powerline-footer/separators.ts +57 -57
  65. package/dist/extensions/pi-powerline-footer/tests/session-usage.test.ts +47 -47
  66. package/dist/extensions/pi-powerline-footer/tests/tps.test.ts +39 -39
  67. package/dist/extensions/pi-powerline-footer/theme.example.json +24 -24
  68. package/dist/extensions/pi-powerline-footer/theme.json +12 -12
  69. package/dist/extensions/pi-powerline-footer/tps.ts +345 -345
  70. package/dist/extensions/pi-rewind-hook/README.md +245 -245
  71. package/dist/extensions/pi-rewind-hook/index.ts +1445 -1445
  72. package/dist/extensions/pi-rewind-hook/package.json +29 -29
  73. package/dist/extensions/pi-subagents/install.mjs +0 -0
  74. package/dist/extensions/pi-web-agent/package.json +31 -31
  75. package/dist/extensions/pi-web-agent/src/backends/config.ts +205 -205
  76. package/dist/extensions/pi-web-agent/src/backends/doctor.ts +136 -136
  77. package/dist/extensions/pi-web-agent/src/backends/factory.ts +152 -152
  78. package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +25 -25
  79. package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +28 -28
  80. package/dist/extensions/pi-web-agent/src/changelog-notice.ts +136 -136
  81. package/dist/extensions/pi-web-agent/src/commands/web-agent-config.ts +946 -946
  82. package/dist/extensions/pi-web-agent/src/extension.ts +126 -126
  83. package/dist/extensions/pi-web-agent/src/extract/readability.ts +118 -118
  84. package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +199 -199
  85. package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +100 -100
  86. package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +117 -117
  87. package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +67 -67
  88. package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +60 -60
  89. package/dist/extensions/pi-web-agent/src/orchestration/candidate-selector.ts +50 -50
  90. package/dist/extensions/pi-web-agent/src/orchestration/direct-url.ts +52 -52
  91. package/dist/extensions/pi-web-agent/src/orchestration/evidence-quality.ts +105 -105
  92. package/dist/extensions/pi-web-agent/src/orchestration/evidence-ranker.ts +45 -45
  93. package/dist/extensions/pi-web-agent/src/orchestration/index.ts +28 -28
  94. package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +47 -47
  95. package/dist/extensions/pi-web-agent/src/orchestration/research-orchestrator.ts +376 -376
  96. package/dist/extensions/pi-web-agent/src/orchestration/research-types.ts +64 -64
  97. package/dist/extensions/pi-web-agent/src/orchestration/research-worker.ts +181 -181
  98. package/dist/extensions/pi-web-agent/src/orchestration/source-profile.ts +101 -101
  99. package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +81 -81
  100. package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +210 -210
  101. package/dist/extensions/pi-web-agent/src/presentation/config.ts +75 -75
  102. package/dist/extensions/pi-web-agent/src/presentation/explore-presentation.ts +61 -61
  103. package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +54 -54
  104. package/dist/extensions/pi-web-agent/src/presentation/search-presentation.ts +41 -41
  105. package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +20 -20
  106. package/dist/extensions/pi-web-agent/src/presentation/types.ts +63 -63
  107. package/dist/extensions/pi-web-agent/src/search/brave.ts +114 -114
  108. package/dist/extensions/pi-web-agent/src/search/duckduckgo.ts +72 -72
  109. package/dist/extensions/pi-web-agent/src/search/searxng.ts +96 -96
  110. package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +71 -71
  111. package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +31 -31
  112. package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +31 -31
  113. package/dist/extensions/pi-web-agent/src/tools/web-search.ts +157 -157
  114. package/dist/extensions/pi-web-agent/src/types.ts +88 -88
  115. package/dist/extensions/ponytail/package.json +8 -8
  116. package/dist/extensions/question/batch.ts +103 -103
  117. package/dist/extensions/question/constants.ts +30 -30
  118. package/dist/extensions/question/helpers.ts +58 -58
  119. package/dist/extensions/question/navigation.ts +14 -14
  120. package/dist/extensions/question/package.json +19 -19
  121. package/dist/extensions/question/schemas.ts +43 -43
  122. package/dist/extensions/question/selection-mode.ts +46 -46
  123. package/dist/extensions/question/shortcuts.ts +44 -44
  124. package/dist/extensions/question/types.ts +132 -132
  125. package/dist/extensions/test-resolve-hook-impl.mjs +6 -6
  126. package/dist/extensions/test-resolve-hook.mjs +6 -6
  127. package/dist/extensions/web-agent-onboarding.ts +222 -222
  128. package/dist/extensions/workflow/package.json +17 -17
  129. package/dist/package-manager-cli.js +71 -71
  130. package/dist/rpc-entry.js +0 -0
  131. package/dist/skills/agent-browser/SKILL.md +52 -52
  132. package/dist/skills/batch-grill-me/SKILL.md +19 -19
  133. package/dist/skills/grill-me/SKILL.md +10 -10
  134. package/dist/skills/handoff/SKILL.md +16 -16
  135. package/dist/skills/handoff-text/SKILL.md +14 -14
  136. package/dist/skills/implanger/SKILL.md +69 -69
  137. package/dist/skills/improve-codebase/REFERENCE.md +78 -78
  138. package/dist/skills/improve-codebase/SKILL.md +178 -178
  139. package/dist/skills/planger/SKILL.md +166 -166
  140. package/dist/skills/ponytail/SKILL.md +116 -116
  141. package/dist/skills/ponytail-audit/SKILL.md +42 -42
  142. package/dist/skills/ponytail-debt/SKILL.md +45 -45
  143. package/dist/skills/ponytail-gain/SKILL.md +51 -51
  144. package/dist/skills/ponytail-help/SKILL.md +70 -70
  145. package/dist/skills/ponytail-review/SKILL.md +58 -58
  146. package/dist/skills/selesai-handoff/SKILL.md +20 -20
  147. package/dist/skills/workflow-creation/SKILL.md +73 -73
  148. package/dist/themes/powerline-footer/theme.json +33 -33
  149. package/dist/utils/shell.d.ts +3 -0
  150. package/dist/utils/shell.js +17 -5
  151. package/docs/compaction.md +396 -396
  152. package/docs/containerization.md +111 -111
  153. package/docs/development.md +71 -71
  154. package/docs/docs.json +164 -164
  155. package/docs/environment-variables.md +86 -86
  156. package/docs/index.md +83 -83
  157. package/docs/json.md +82 -82
  158. package/docs/models.md +502 -502
  159. package/docs/packages.md +227 -227
  160. package/docs/plans/subagent-delegation/phase-0-correctness.md +264 -264
  161. package/docs/plans/subagent-delegation/phase-1-behavioral-contract.md +485 -485
  162. package/docs/plans/subagent-delegation/phase-2-context-controls.md +281 -281
  163. package/docs/plans/subagent-delegation/phase-3-advisory-routing.md +361 -361
  164. package/docs/plans/subagent-delegation/phase-4-optional-enforcement.md +380 -380
  165. package/docs/prompt-templates.md +95 -95
  166. package/docs/providers.md +293 -293
  167. package/docs/sdk.md +1144 -1143
  168. package/docs/security.md +59 -59
  169. package/docs/session-format.md +414 -414
  170. package/docs/sessions.md +145 -145
  171. package/docs/shared-host-extensions.md +109 -109
  172. package/docs/shell-aliases.md +13 -13
  173. package/docs/skills.md +231 -231
  174. package/docs/terminal-setup.md +142 -142
  175. package/docs/termux.md +127 -127
  176. package/docs/themes.md +295 -295
  177. package/docs/tmux.md +63 -63
  178. package/docs/tui.md +927 -927
  179. package/docs/windows.md +17 -17
  180. package/examples/README.md +25 -25
  181. package/examples/extensions/README.md +211 -211
  182. package/examples/extensions/auto-commit-on-exit.ts +49 -49
  183. package/examples/extensions/bash-spawn-hook.ts +30 -30
  184. package/examples/extensions/bookmark.ts +50 -50
  185. package/examples/extensions/border-status-editor.ts +150 -150
  186. package/examples/extensions/built-in-tool-renderer.ts +249 -249
  187. package/examples/extensions/claude-rules.ts +86 -86
  188. package/examples/extensions/commands.ts +72 -72
  189. package/examples/extensions/confirm-destructive.ts +59 -59
  190. package/examples/extensions/custom-compaction.ts +130 -130
  191. package/examples/extensions/custom-footer.ts +64 -64
  192. package/examples/extensions/custom-header.ts +73 -73
  193. package/examples/extensions/custom-provider-anthropic/index.ts +610 -610
  194. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
  195. package/examples/extensions/custom-provider-anthropic/package.json +19 -19
  196. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -404
  197. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
  198. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -82
  199. package/examples/extensions/dirty-repo-guard.ts +56 -56
  200. package/examples/extensions/doom-overlay/README.md +46 -46
  201. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
  202. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  203. package/examples/extensions/doom-overlay/doom/build.sh +152 -152
  204. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
  205. package/examples/extensions/doom-overlay/doom-component.ts +132 -132
  206. package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
  207. package/examples/extensions/doom-overlay/doom-keys.ts +104 -104
  208. package/examples/extensions/doom-overlay/index.ts +74 -74
  209. package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
  210. package/examples/extensions/dynamic-resources/SKILL.md +8 -8
  211. package/examples/extensions/dynamic-resources/dynamic.json +79 -79
  212. package/examples/extensions/dynamic-resources/dynamic.md +5 -5
  213. package/examples/extensions/dynamic-resources/index.ts +15 -15
  214. package/examples/extensions/dynamic-tools.ts +74 -74
  215. package/examples/extensions/event-bus.ts +43 -43
  216. package/examples/extensions/file-trigger.ts +41 -41
  217. package/examples/extensions/git-checkpoint.ts +53 -53
  218. package/examples/extensions/git-merge-and-resolve.ts +115 -115
  219. package/examples/extensions/github-issue-autocomplete.ts +185 -185
  220. package/examples/extensions/gondolin/index.ts +531 -531
  221. package/examples/extensions/gondolin/package-lock.json +185 -185
  222. package/examples/extensions/gondolin/package.json +19 -19
  223. package/examples/extensions/handoff.ts +199 -199
  224. package/examples/extensions/hello.ts +26 -26
  225. package/examples/extensions/hidden-thinking-label.ts +53 -53
  226. package/examples/extensions/inline-bash.ts +94 -94
  227. package/examples/extensions/input-transform-streaming.ts +39 -39
  228. package/examples/extensions/input-transform.ts +43 -43
  229. package/examples/extensions/interactive-shell.ts +196 -196
  230. package/examples/extensions/mac-system-theme.ts +47 -47
  231. package/examples/extensions/message-renderer.ts +59 -59
  232. package/examples/extensions/minimal-mode.ts +426 -426
  233. package/examples/extensions/modal-editor.ts +85 -85
  234. package/examples/extensions/model-status.ts +31 -31
  235. package/examples/extensions/notify.ts +55 -55
  236. package/examples/extensions/overlay-qa-tests.ts +1450 -1450
  237. package/examples/extensions/overlay-test.ts +153 -153
  238. package/examples/extensions/permission-gate.ts +34 -34
  239. package/examples/extensions/pirate.ts +47 -47
  240. package/examples/extensions/plan-mode/README.md +66 -66
  241. package/examples/extensions/plan-mode/index.ts +390 -390
  242. package/examples/extensions/plan-mode/utils.ts +168 -168
  243. package/examples/extensions/preset.ts +436 -436
  244. package/examples/extensions/project-trust.ts +64 -64
  245. package/examples/extensions/prompt-customizer.ts +97 -97
  246. package/examples/extensions/protected-paths.ts +30 -30
  247. package/examples/extensions/provider-payload.ts +18 -18
  248. package/examples/extensions/qna.ts +122 -122
  249. package/examples/extensions/question.ts +285 -285
  250. package/examples/extensions/questionnaire.ts +448 -448
  251. package/examples/extensions/rainbow-editor.ts +88 -88
  252. package/examples/extensions/reload-runtime.ts +37 -37
  253. package/examples/extensions/rpc-demo.ts +118 -118
  254. package/examples/extensions/sandbox/index.ts +321 -321
  255. package/examples/extensions/sandbox/package-lock.json +92 -92
  256. package/examples/extensions/sandbox/package.json +19 -19
  257. package/examples/extensions/send-user-message.ts +97 -97
  258. package/examples/extensions/session-name.ts +27 -27
  259. package/examples/extensions/shutdown-command.ts +63 -63
  260. package/examples/extensions/snake.ts +343 -343
  261. package/examples/extensions/space-invaders.ts +560 -560
  262. package/examples/extensions/ssh.ts +220 -220
  263. package/examples/extensions/status-line.ts +32 -32
  264. package/examples/extensions/structured-output.ts +65 -65
  265. package/examples/extensions/subagent/README.md +175 -175
  266. package/examples/extensions/subagent/agents/planner.md +37 -37
  267. package/examples/extensions/subagent/agents/reviewer.md +35 -35
  268. package/examples/extensions/subagent/agents/scout.md +50 -50
  269. package/examples/extensions/subagent/agents/worker.md +24 -24
  270. package/examples/extensions/subagent/agents.ts +126 -126
  271. package/examples/extensions/subagent/index.ts +1015 -1015
  272. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
  273. package/examples/extensions/subagent/prompts/implement.md +10 -10
  274. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
  275. package/examples/extensions/summarize.ts +209 -209
  276. package/examples/extensions/system-prompt-header.ts +17 -17
  277. package/examples/extensions/tic-tac-toe.ts +1008 -1008
  278. package/examples/extensions/timed-confirm.ts +70 -70
  279. package/examples/extensions/titlebar-spinner.ts +58 -58
  280. package/examples/extensions/todo.ts +297 -297
  281. package/examples/extensions/tool-override.ts +144 -144
  282. package/examples/extensions/tools.ts +146 -146
  283. package/examples/extensions/trigger-compact.ts +50 -50
  284. package/examples/extensions/truncated-tool.ts +195 -195
  285. package/examples/extensions/widget-placement.ts +9 -9
  286. package/examples/extensions/with-deps/index.ts +32 -32
  287. package/examples/extensions/with-deps/package-lock.json +31 -31
  288. package/examples/extensions/with-deps/package.json +22 -22
  289. package/examples/extensions/working-indicator.ts +123 -123
  290. package/examples/extensions/working-message-test.ts +25 -25
  291. package/examples/rpc-extension-ui.ts +632 -632
  292. package/examples/sdk/01-minimal.ts +26 -26
  293. package/examples/sdk/02-custom-model.ts +53 -53
  294. package/examples/sdk/03-custom-prompt.ts +75 -75
  295. package/examples/sdk/04-skills.ts +55 -55
  296. package/examples/sdk/05-tools.ts +48 -48
  297. package/examples/sdk/06-extensions.ts +99 -99
  298. package/examples/sdk/07-context-files.ts +47 -47
  299. package/examples/sdk/08-prompt-templates.ts +51 -51
  300. package/examples/sdk/09-api-keys-and-oauth.ts +52 -52
  301. package/examples/sdk/10-settings.ts +53 -53
  302. package/examples/sdk/11-sessions.ts +52 -52
  303. package/examples/sdk/12-full-control.ts +79 -79
  304. package/examples/sdk/13-session-runtime.ts +67 -67
  305. package/examples/sdk/README.md +144 -144
  306. package/package.json +4 -4
@@ -1,175 +1,175 @@
1
- # Subagent Example
2
-
3
- Delegate tasks to specialized subagents with isolated context windows.
4
-
5
- ## Features
6
-
7
- - **Isolated context**: Each subagent runs in a separate `pi` process
8
- - **Streaming output**: See tool calls and progress as they happen
9
- - **Parallel streaming**: All parallel tasks stream updates simultaneously
10
- - **Markdown rendering**: Final output rendered with proper formatting (expanded view)
11
- - **Usage tracking**: Shows turns, tokens, cost, and context usage per agent
12
- - **Abort support**: Ctrl+C propagates to kill subagent processes
13
-
14
- ## Structure
15
-
16
- ```
17
- subagent/
18
- ├── README.md # This file
19
- ├── index.ts # The extension (entry point)
20
- ├── agents.ts # Agent discovery logic
21
- ├── agents/ # Sample agent definitions
22
- │ ├── scout.md # Fast recon, returns compressed context
23
- │ ├── planner.md # Creates implementation plans
24
- │ ├── reviewer.md # Code review
25
- │ └── worker.md # General-purpose (full capabilities)
26
- └── prompts/ # Workflow presets (prompt templates)
27
- ├── implement.md # scout -> planner -> worker
28
- ├── scout-and-plan.md # scout -> planner (no implementation)
29
- └── implement-and-review.md # worker -> reviewer -> worker
30
- ```
31
-
32
- ## Installation
33
-
34
- From the repository root, symlink the files:
35
-
36
- ```bash
37
- # Symlink the extension (must be in a subdirectory with index.ts)
38
- mkdir -p ~/.pi/agent/extensions/subagent
39
- ln -sf "$(pwd)/packages/coding-agent/examples/extensions/subagent/index.ts" ~/.pi/agent/extensions/subagent/index.ts
40
- ln -sf "$(pwd)/packages/coding-agent/examples/extensions/subagent/agents.ts" ~/.pi/agent/extensions/subagent/agents.ts
41
-
42
- # Symlink agents
43
- mkdir -p ~/.pi/agent/agents
44
- for f in packages/coding-agent/examples/extensions/subagent/agents/*.md; do
45
- ln -sf "$(pwd)/$f" ~/.pi/agent/agents/$(basename "$f")
46
- done
47
-
48
- # Symlink workflow prompts
49
- mkdir -p ~/.pi/agent/prompts
50
- for f in packages/coding-agent/examples/extensions/subagent/prompts/*.md; do
51
- ln -sf "$(pwd)/$f" ~/.pi/agent/prompts/$(basename "$f")
52
- done
53
- ```
54
-
55
- ## Security Model
56
-
57
- This tool executes a separate `pi` subprocess with a delegated system prompt and tool/model configuration.
58
-
59
- **Project-local agents** (`.pi/agents/*.md`) are repo-controlled prompts that can instruct the model to read files, run bash commands, etc.
60
-
61
- **Default behavior:** Only loads **user-level agents** from `~/.pi/agent/agents`.
62
-
63
- To enable project-local agents, pass `agentScope: "both"` (or `"project"`). Only do this for repositories you trust.
64
-
65
- When running interactively, the tool prompts for confirmation before running project-local agents. Set `confirmProjectAgents: false` to disable.
66
-
67
- ## Usage
68
-
69
- ### Single agent
70
- ```
71
- Use scout to find all authentication code
72
- ```
73
-
74
- ### Parallel execution
75
- ```
76
- Run 2 scouts in parallel: one to find models, one to find providers
77
- ```
78
-
79
- ### Chained workflow
80
- ```
81
- Use a chain: first have scout find the read tool, then have planner suggest improvements
82
- ```
83
-
84
- ### Workflow prompts
85
- ```
86
- /implement add Redis caching to the session store
87
- /scout-and-plan refactor auth to support OAuth
88
- /implement-and-review add input validation to API endpoints
89
- ```
90
-
91
- ## Tool Modes
92
-
93
- | Mode | Parameter | Description |
94
- |------|-----------|-------------|
95
- | Single | `{ agent, task }` | One agent, one task |
96
- | Parallel | `{ tasks: [...] }` | Multiple agents run concurrently (max 8, 4 concurrent) |
97
- | Chain | `{ chain: [...] }` | Sequential with `{previous}` placeholder |
98
-
99
- ## Output Display
100
-
101
- **Collapsed view** (default):
102
- - Status icon (✓/✗/⏳) and agent name
103
- - Last 5-10 items (tool calls and text)
104
- - Usage stats: `3 turns ↑input ↓output RcacheRead WcacheWrite $cost ctx:contextTokens model`
105
-
106
- **Expanded view** (Ctrl+O):
107
- - Full task text
108
- - All tool calls with formatted arguments
109
- - Final output rendered as Markdown
110
- - Per-task usage (for chain/parallel)
111
-
112
- **Parallel mode streaming**:
113
- - Shows all tasks with live status (⏳ running, ✓ done, ✗ failed)
114
- - Updates as each task makes progress
115
- - Shows "2/3 done, 1 running" status
116
- - Returns each completed task's final output to the parent model, capped at 50 KB per task
117
- - Returns failure diagnostics from stderr/error messages when a child exits before producing output
118
-
119
- **Tool call formatting** (mimics built-in tools):
120
- - `$ command` for bash
121
- - `read ~/path:1-10` for read
122
- - `grep /pattern/ in ~/path` for grep
123
- - etc.
124
-
125
- ## Agent Definitions
126
-
127
- Agents are markdown files with YAML frontmatter:
128
-
129
- ```markdown
130
- ---
131
- name: my-agent
132
- description: What this agent does
133
- tools: read, grep, find, ls
134
- model: claude-haiku-4-5
135
- ---
136
-
137
- System prompt for the agent goes here.
138
- ```
139
-
140
- **Locations:**
141
- - `~/.pi/agent/agents/*.md` - User-level (always loaded)
142
- - `.pi/agents/*.md` - Project-level (only with `agentScope: "project"` or `"both"`)
143
-
144
- Project agents override user agents with the same name when `agentScope: "both"`.
145
-
146
- ## Sample Agents
147
-
148
- | Agent | Purpose | Model | Tools |
149
- |-------|---------|-------|-------|
150
- | `scout` | Fast codebase recon | Haiku | read, grep, find, ls, bash |
151
- | `planner` | Implementation plans | Sonnet | read, grep, find, ls |
152
- | `reviewer` | Code review | Sonnet | read, grep, find, ls, bash |
153
- | `worker` | General-purpose | Sonnet | (all default) |
154
-
155
- ## Workflow Prompts
156
-
157
- | Prompt | Flow |
158
- |--------|------|
159
- | `/implement <query>` | scout → planner → worker |
160
- | `/scout-and-plan <query>` | scout → planner |
161
- | `/implement-and-review <query>` | worker → reviewer → worker |
162
-
163
- ## Error Handling
164
-
165
- - **Exit code != 0**: Tool returns error with stderr/output
166
- - **stopReason "error"**: LLM error propagated with error message
167
- - **stopReason "aborted"**: User abort (Ctrl+C) kills subprocess, throws error
168
- - **Chain mode**: Stops at first failing step, reports which step failed
169
-
170
- ## Limitations
171
-
172
- - Output truncated to last 10 items in collapsed view (expand to see all)
173
- - Parallel model-visible output is capped at 50 KB per task; full results remain in tool details
174
- - Agents discovered fresh on each invocation (allows editing mid-session)
175
- - Parallel mode limited to 8 tasks, 4 concurrent
1
+ # Subagent Example
2
+
3
+ Delegate tasks to specialized subagents with isolated context windows.
4
+
5
+ ## Features
6
+
7
+ - **Isolated context**: Each subagent runs in a separate `pi` process
8
+ - **Streaming output**: See tool calls and progress as they happen
9
+ - **Parallel streaming**: All parallel tasks stream updates simultaneously
10
+ - **Markdown rendering**: Final output rendered with proper formatting (expanded view)
11
+ - **Usage tracking**: Shows turns, tokens, cost, and context usage per agent
12
+ - **Abort support**: Ctrl+C propagates to kill subagent processes
13
+
14
+ ## Structure
15
+
16
+ ```
17
+ subagent/
18
+ ├── README.md # This file
19
+ ├── index.ts # The extension (entry point)
20
+ ├── agents.ts # Agent discovery logic
21
+ ├── agents/ # Sample agent definitions
22
+ │ ├── scout.md # Fast recon, returns compressed context
23
+ │ ├── planner.md # Creates implementation plans
24
+ │ ├── reviewer.md # Code review
25
+ │ └── worker.md # General-purpose (full capabilities)
26
+ └── prompts/ # Workflow presets (prompt templates)
27
+ ├── implement.md # scout -> planner -> worker
28
+ ├── scout-and-plan.md # scout -> planner (no implementation)
29
+ └── implement-and-review.md # worker -> reviewer -> worker
30
+ ```
31
+
32
+ ## Installation
33
+
34
+ From the repository root, symlink the files:
35
+
36
+ ```bash
37
+ # Symlink the extension (must be in a subdirectory with index.ts)
38
+ mkdir -p ~/.pi/agent/extensions/subagent
39
+ ln -sf "$(pwd)/packages/coding-agent/examples/extensions/subagent/index.ts" ~/.pi/agent/extensions/subagent/index.ts
40
+ ln -sf "$(pwd)/packages/coding-agent/examples/extensions/subagent/agents.ts" ~/.pi/agent/extensions/subagent/agents.ts
41
+
42
+ # Symlink agents
43
+ mkdir -p ~/.pi/agent/agents
44
+ for f in packages/coding-agent/examples/extensions/subagent/agents/*.md; do
45
+ ln -sf "$(pwd)/$f" ~/.pi/agent/agents/$(basename "$f")
46
+ done
47
+
48
+ # Symlink workflow prompts
49
+ mkdir -p ~/.pi/agent/prompts
50
+ for f in packages/coding-agent/examples/extensions/subagent/prompts/*.md; do
51
+ ln -sf "$(pwd)/$f" ~/.pi/agent/prompts/$(basename "$f")
52
+ done
53
+ ```
54
+
55
+ ## Security Model
56
+
57
+ This tool executes a separate `pi` subprocess with a delegated system prompt and tool/model configuration.
58
+
59
+ **Project-local agents** (`.pi/agents/*.md`) are repo-controlled prompts that can instruct the model to read files, run bash commands, etc.
60
+
61
+ **Default behavior:** Only loads **user-level agents** from `~/.pi/agent/agents`.
62
+
63
+ To enable project-local agents, pass `agentScope: "both"` (or `"project"`). Only do this for repositories you trust.
64
+
65
+ When running interactively, the tool prompts for confirmation before running project-local agents. Set `confirmProjectAgents: false` to disable.
66
+
67
+ ## Usage
68
+
69
+ ### Single agent
70
+ ```
71
+ Use scout to find all authentication code
72
+ ```
73
+
74
+ ### Parallel execution
75
+ ```
76
+ Run 2 scouts in parallel: one to find models, one to find providers
77
+ ```
78
+
79
+ ### Chained workflow
80
+ ```
81
+ Use a chain: first have scout find the read tool, then have planner suggest improvements
82
+ ```
83
+
84
+ ### Workflow prompts
85
+ ```
86
+ /implement add Redis caching to the session store
87
+ /scout-and-plan refactor auth to support OAuth
88
+ /implement-and-review add input validation to API endpoints
89
+ ```
90
+
91
+ ## Tool Modes
92
+
93
+ | Mode | Parameter | Description |
94
+ |------|-----------|-------------|
95
+ | Single | `{ agent, task }` | One agent, one task |
96
+ | Parallel | `{ tasks: [...] }` | Multiple agents run concurrently (max 8, 4 concurrent) |
97
+ | Chain | `{ chain: [...] }` | Sequential with `{previous}` placeholder |
98
+
99
+ ## Output Display
100
+
101
+ **Collapsed view** (default):
102
+ - Status icon (✓/✗/⏳) and agent name
103
+ - Last 5-10 items (tool calls and text)
104
+ - Usage stats: `3 turns ↑input ↓output RcacheRead WcacheWrite $cost ctx:contextTokens model`
105
+
106
+ **Expanded view** (Ctrl+O):
107
+ - Full task text
108
+ - All tool calls with formatted arguments
109
+ - Final output rendered as Markdown
110
+ - Per-task usage (for chain/parallel)
111
+
112
+ **Parallel mode streaming**:
113
+ - Shows all tasks with live status (⏳ running, ✓ done, ✗ failed)
114
+ - Updates as each task makes progress
115
+ - Shows "2/3 done, 1 running" status
116
+ - Returns each completed task's final output to the parent model, capped at 50 KB per task
117
+ - Returns failure diagnostics from stderr/error messages when a child exits before producing output
118
+
119
+ **Tool call formatting** (mimics built-in tools):
120
+ - `$ command` for bash
121
+ - `read ~/path:1-10` for read
122
+ - `grep /pattern/ in ~/path` for grep
123
+ - etc.
124
+
125
+ ## Agent Definitions
126
+
127
+ Agents are markdown files with YAML frontmatter:
128
+
129
+ ```markdown
130
+ ---
131
+ name: my-agent
132
+ description: What this agent does
133
+ tools: read, grep, find, ls
134
+ model: claude-haiku-4-5
135
+ ---
136
+
137
+ System prompt for the agent goes here.
138
+ ```
139
+
140
+ **Locations:**
141
+ - `~/.pi/agent/agents/*.md` - User-level (always loaded)
142
+ - `.pi/agents/*.md` - Project-level (only with `agentScope: "project"` or `"both"`)
143
+
144
+ Project agents override user agents with the same name when `agentScope: "both"`.
145
+
146
+ ## Sample Agents
147
+
148
+ | Agent | Purpose | Model | Tools |
149
+ |-------|---------|-------|-------|
150
+ | `scout` | Fast codebase recon | Haiku | read, grep, find, ls, bash |
151
+ | `planner` | Implementation plans | Sonnet | read, grep, find, ls |
152
+ | `reviewer` | Code review | Sonnet | read, grep, find, ls, bash |
153
+ | `worker` | General-purpose | Sonnet | (all default) |
154
+
155
+ ## Workflow Prompts
156
+
157
+ | Prompt | Flow |
158
+ |--------|------|
159
+ | `/implement <query>` | scout → planner → worker |
160
+ | `/scout-and-plan <query>` | scout → planner |
161
+ | `/implement-and-review <query>` | worker → reviewer → worker |
162
+
163
+ ## Error Handling
164
+
165
+ - **Exit code != 0**: Tool returns error with stderr/output
166
+ - **stopReason "error"**: LLM error propagated with error message
167
+ - **stopReason "aborted"**: User abort (Ctrl+C) kills subprocess, throws error
168
+ - **Chain mode**: Stops at first failing step, reports which step failed
169
+
170
+ ## Limitations
171
+
172
+ - Output truncated to last 10 items in collapsed view (expand to see all)
173
+ - Parallel model-visible output is capped at 50 KB per task; full results remain in tool details
174
+ - Agents discovered fresh on each invocation (allows editing mid-session)
175
+ - Parallel mode limited to 8 tasks, 4 concurrent
@@ -1,37 +1,37 @@
1
- ---
2
- name: planner
3
- description: Creates implementation plans from context and requirements
4
- tools: read, grep, find, ls
5
- model: claude-sonnet-4-5
6
- ---
7
-
8
- You are a planning specialist. You receive context (from a scout) and requirements, then produce a clear implementation plan.
9
-
10
- You must NOT make any changes. Only read, analyze, and plan.
11
-
12
- Input format you'll receive:
13
- - Context/findings from a scout agent
14
- - Original query or requirements
15
-
16
- Output format:
17
-
18
- ## Goal
19
- One sentence summary of what needs to be done.
20
-
21
- ## Plan
22
- Numbered steps, each small and actionable:
23
- 1. Step one - specific file/function to modify
24
- 2. Step two - what to add/change
25
- 3. ...
26
-
27
- ## Files to Modify
28
- - `path/to/file.ts` - what changes
29
- - `path/to/other.ts` - what changes
30
-
31
- ## New Files (if any)
32
- - `path/to/new.ts` - purpose
33
-
34
- ## Risks
35
- Anything to watch out for.
36
-
37
- Keep the plan concrete. The worker agent will execute it verbatim.
1
+ ---
2
+ name: planner
3
+ description: Creates implementation plans from context and requirements
4
+ tools: read, grep, find, ls
5
+ model: claude-sonnet-4-5
6
+ ---
7
+
8
+ You are a planning specialist. You receive context (from a scout) and requirements, then produce a clear implementation plan.
9
+
10
+ You must NOT make any changes. Only read, analyze, and plan.
11
+
12
+ Input format you'll receive:
13
+ - Context/findings from a scout agent
14
+ - Original query or requirements
15
+
16
+ Output format:
17
+
18
+ ## Goal
19
+ One sentence summary of what needs to be done.
20
+
21
+ ## Plan
22
+ Numbered steps, each small and actionable:
23
+ 1. Step one - specific file/function to modify
24
+ 2. Step two - what to add/change
25
+ 3. ...
26
+
27
+ ## Files to Modify
28
+ - `path/to/file.ts` - what changes
29
+ - `path/to/other.ts` - what changes
30
+
31
+ ## New Files (if any)
32
+ - `path/to/new.ts` - purpose
33
+
34
+ ## Risks
35
+ Anything to watch out for.
36
+
37
+ Keep the plan concrete. The worker agent will execute it verbatim.
@@ -1,35 +1,35 @@
1
- ---
2
- name: reviewer
3
- description: Code review specialist for quality and security analysis
4
- tools: read, grep, find, ls, bash
5
- model: claude-sonnet-4-5
6
- ---
7
-
8
- You are a senior code reviewer. Analyze code for quality, security, and maintainability.
9
-
10
- Bash is for read-only commands only: `git diff`, `git log`, `git show`. Do NOT modify files or run builds.
11
- Assume tool permissions are not perfectly enforceable; keep all bash usage strictly read-only.
12
-
13
- Strategy:
14
- 1. Run `git diff` to see recent changes (if applicable)
15
- 2. Read the modified files
16
- 3. Check for bugs, security issues, code smells
17
-
18
- Output format:
19
-
20
- ## Files Reviewed
21
- - `path/to/file.ts` (lines X-Y)
22
-
23
- ## Critical (must fix)
24
- - `file.ts:42` - Issue description
25
-
26
- ## Warnings (should fix)
27
- - `file.ts:100` - Issue description
28
-
29
- ## Suggestions (consider)
30
- - `file.ts:150` - Improvement idea
31
-
32
- ## Summary
33
- Overall assessment in 2-3 sentences.
34
-
35
- Be specific with file paths and line numbers.
1
+ ---
2
+ name: reviewer
3
+ description: Code review specialist for quality and security analysis
4
+ tools: read, grep, find, ls, bash
5
+ model: claude-sonnet-4-5
6
+ ---
7
+
8
+ You are a senior code reviewer. Analyze code for quality, security, and maintainability.
9
+
10
+ Bash is for read-only commands only: `git diff`, `git log`, `git show`. Do NOT modify files or run builds.
11
+ Assume tool permissions are not perfectly enforceable; keep all bash usage strictly read-only.
12
+
13
+ Strategy:
14
+ 1. Run `git diff` to see recent changes (if applicable)
15
+ 2. Read the modified files
16
+ 3. Check for bugs, security issues, code smells
17
+
18
+ Output format:
19
+
20
+ ## Files Reviewed
21
+ - `path/to/file.ts` (lines X-Y)
22
+
23
+ ## Critical (must fix)
24
+ - `file.ts:42` - Issue description
25
+
26
+ ## Warnings (should fix)
27
+ - `file.ts:100` - Issue description
28
+
29
+ ## Suggestions (consider)
30
+ - `file.ts:150` - Improvement idea
31
+
32
+ ## Summary
33
+ Overall assessment in 2-3 sentences.
34
+
35
+ Be specific with file paths and line numbers.
@@ -1,50 +1,50 @@
1
- ---
2
- name: scout
3
- description: Fast codebase recon that returns compressed context for handoff to other agents
4
- tools: read, grep, find, ls, bash
5
- model: claude-haiku-4-5
6
- ---
7
-
8
- You are a scout. Quickly investigate a codebase and return structured findings that another agent can use without re-reading everything.
9
-
10
- Your output will be passed to an agent who has NOT seen the files you explored.
11
-
12
- Thoroughness (infer from task, default medium):
13
- - Quick: Targeted lookups, key files only
14
- - Medium: Follow imports, read critical sections
15
- - Thorough: Trace all dependencies, check tests/types
16
-
17
- Strategy:
18
- 1. grep/find to locate relevant code
19
- 2. Read key sections (not entire files)
20
- 3. Identify types, interfaces, key functions
21
- 4. Note dependencies between files
22
-
23
- Output format:
24
-
25
- ## Files Retrieved
26
- List with exact line ranges:
27
- 1. `path/to/file.ts` (lines 10-50) - Description of what's here
28
- 2. `path/to/other.ts` (lines 100-150) - Description
29
- 3. ...
30
-
31
- ## Key Code
32
- Critical types, interfaces, or functions:
33
-
34
- ```typescript
35
- interface Example {
36
- // actual code from the files
37
- }
38
- ```
39
-
40
- ```typescript
41
- function keyFunction() {
42
- // actual implementation
43
- }
44
- ```
45
-
46
- ## Architecture
47
- Brief explanation of how the pieces connect.
48
-
49
- ## Start Here
50
- Which file to look at first and why.
1
+ ---
2
+ name: scout
3
+ description: Fast codebase recon that returns compressed context for handoff to other agents
4
+ tools: read, grep, find, ls, bash
5
+ model: claude-haiku-4-5
6
+ ---
7
+
8
+ You are a scout. Quickly investigate a codebase and return structured findings that another agent can use without re-reading everything.
9
+
10
+ Your output will be passed to an agent who has NOT seen the files you explored.
11
+
12
+ Thoroughness (infer from task, default medium):
13
+ - Quick: Targeted lookups, key files only
14
+ - Medium: Follow imports, read critical sections
15
+ - Thorough: Trace all dependencies, check tests/types
16
+
17
+ Strategy:
18
+ 1. grep/find to locate relevant code
19
+ 2. Read key sections (not entire files)
20
+ 3. Identify types, interfaces, key functions
21
+ 4. Note dependencies between files
22
+
23
+ Output format:
24
+
25
+ ## Files Retrieved
26
+ List with exact line ranges:
27
+ 1. `path/to/file.ts` (lines 10-50) - Description of what's here
28
+ 2. `path/to/other.ts` (lines 100-150) - Description
29
+ 3. ...
30
+
31
+ ## Key Code
32
+ Critical types, interfaces, or functions:
33
+
34
+ ```typescript
35
+ interface Example {
36
+ // actual code from the files
37
+ }
38
+ ```
39
+
40
+ ```typescript
41
+ function keyFunction() {
42
+ // actual implementation
43
+ }
44
+ ```
45
+
46
+ ## Architecture
47
+ Brief explanation of how the pieces connect.
48
+
49
+ ## Start Here
50
+ Which file to look at first and why.
@@ -1,24 +1,24 @@
1
- ---
2
- name: worker
3
- description: General-purpose subagent with full capabilities, isolated context
4
- model: claude-sonnet-4-5
5
- ---
6
-
7
- You are a worker agent with full capabilities. You operate in an isolated context window to handle delegated tasks without polluting the main conversation.
8
-
9
- Work autonomously to complete the assigned task. Use all available tools as needed.
10
-
11
- Output format when finished:
12
-
13
- ## Completed
14
- What was done.
15
-
16
- ## Files Changed
17
- - `path/to/file.ts` - what changed
18
-
19
- ## Notes (if any)
20
- Anything the main agent should know.
21
-
22
- If handing off to another agent (e.g. reviewer), include:
23
- - Exact file paths changed
24
- - Key functions/types touched (short list)
1
+ ---
2
+ name: worker
3
+ description: General-purpose subagent with full capabilities, isolated context
4
+ model: claude-sonnet-4-5
5
+ ---
6
+
7
+ You are a worker agent with full capabilities. You operate in an isolated context window to handle delegated tasks without polluting the main conversation.
8
+
9
+ Work autonomously to complete the assigned task. Use all available tools as needed.
10
+
11
+ Output format when finished:
12
+
13
+ ## Completed
14
+ What was done.
15
+
16
+ ## Files Changed
17
+ - `path/to/file.ts` - what changed
18
+
19
+ ## Notes (if any)
20
+ Anything the main agent should know.
21
+
22
+ If handing off to another agent (e.g. reviewer), include:
23
+ - Exact file paths changed
24
+ - Key functions/types touched (short list)