@selesai/code 0.13.4 → 0.13.5

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 (394) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cli/credential-print.js +4 -4
  3. package/dist/cli.js +0 -0
  4. package/dist/core/compaction/utils.js +2 -2
  5. package/dist/core/export-html/template.css +1066 -1066
  6. package/dist/core/export-html/template.html +55 -55
  7. package/dist/core/export-html/template.js +1864 -1864
  8. package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
  9. package/dist/core/export-html/vendor/marked.min.js +78 -78
  10. package/dist/core/messages.js +7 -7
  11. package/dist/extensions/context-compaction-reminder.test.ts +82 -82
  12. package/dist/extensions/context-compaction-reminder.ts +28 -28
  13. package/dist/extensions/pi-hermes-memory/scripts/check-min-sdk.mjs +0 -0
  14. package/dist/extensions/pi-hermes-memory/tests/run-all.sh +0 -0
  15. package/dist/extensions/pi-intercom/LICENSE +21 -21
  16. package/dist/extensions/pi-intercom/broker/client.test.ts +83 -83
  17. package/dist/extensions/pi-intercom/broker/framing.test.ts +114 -114
  18. package/dist/extensions/pi-intercom/broker/paths.ts +134 -134
  19. package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +34 -34
  20. package/dist/extensions/pi-intercom/broker/runtime-claim.ts +21 -21
  21. package/dist/extensions/pi-intercom/cwd.test.ts +40 -40
  22. package/dist/extensions/pi-intercom/cwd.ts +31 -31
  23. package/dist/extensions/pi-intercom/format-context.test.ts +31 -31
  24. package/dist/extensions/pi-intercom/format-context.ts +32 -32
  25. package/dist/extensions/pi-intercom/test/overlay-width.test.ts +66 -66
  26. package/dist/extensions/pi-intercom/ui/compose.ts +143 -143
  27. package/dist/extensions/pi-intercom/ui/session-list.ts +166 -166
  28. package/dist/extensions/pi-subagents/install.mjs +0 -0
  29. package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +25 -25
  30. package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +28 -28
  31. package/dist/extensions/pi-web-agent/src/changelog-notice.ts +136 -136
  32. package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +199 -199
  33. package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +100 -100
  34. package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +117 -117
  35. package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +67 -67
  36. package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +60 -60
  37. package/dist/extensions/pi-web-agent/src/orchestration/index.ts +28 -28
  38. package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +47 -47
  39. package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +81 -81
  40. package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +210 -210
  41. package/dist/extensions/pi-web-agent/src/presentation/config.ts +75 -75
  42. package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +54 -54
  43. package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +20 -20
  44. package/dist/extensions/pi-web-agent/src/presentation/types.ts +63 -63
  45. package/dist/extensions/pi-web-agent/src/search/brave.ts +114 -114
  46. package/dist/extensions/pi-web-agent/src/search/searxng.ts +96 -96
  47. package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +71 -71
  48. package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +31 -31
  49. package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +31 -31
  50. package/dist/extensions/pi-zentui/extensions/zentui/format.ts +7 -1
  51. package/dist/extensions/ponytail/package.json +8 -8
  52. package/dist/extensions/question/constants.ts +30 -30
  53. package/dist/extensions/question/helpers.ts +58 -58
  54. package/dist/extensions/question/navigation.ts +14 -14
  55. package/dist/extensions/question/package.json +19 -19
  56. package/dist/extensions/question/selection-mode.ts +46 -46
  57. package/dist/extensions/question/shortcuts.ts +44 -44
  58. package/dist/extensions/question/types.ts +132 -132
  59. package/dist/extensions/test-resolve-hook-impl.mjs +6 -6
  60. package/dist/extensions/test-resolve-hook.mjs +6 -6
  61. package/dist/extensions/web-agent-onboarding.ts +222 -222
  62. package/dist/package-manager-cli.js +71 -71
  63. package/dist/rpc-entry.js +0 -0
  64. package/dist/skills/improve-codebase/REFERENCE.md +78 -78
  65. package/docs/compaction.md +396 -396
  66. package/docs/containerization.md +111 -111
  67. package/docs/development.md +71 -71
  68. package/docs/docs.json +164 -164
  69. package/docs/environment-variables.md +86 -86
  70. package/docs/index.md +83 -83
  71. package/docs/json.md +82 -82
  72. package/docs/models.md +502 -502
  73. package/docs/packages.md +227 -227
  74. package/docs/plans/subagent-delegation/phase-0-correctness.md +264 -264
  75. package/docs/plans/subagent-delegation/phase-1-behavioral-contract.md +485 -485
  76. package/docs/plans/subagent-delegation/phase-2-context-controls.md +281 -281
  77. package/docs/plans/subagent-delegation/phase-3-advisory-routing.md +361 -361
  78. package/docs/plans/subagent-delegation/phase-4-optional-enforcement.md +380 -380
  79. package/docs/prompt-templates.md +95 -95
  80. package/docs/providers.md +293 -293
  81. package/docs/security.md +59 -59
  82. package/docs/session-format.md +414 -414
  83. package/docs/sessions.md +145 -145
  84. package/docs/shared-host-extensions.md +109 -109
  85. package/docs/shell-aliases.md +13 -13
  86. package/docs/skills.md +231 -231
  87. package/docs/terminal-setup.md +142 -142
  88. package/docs/termux.md +127 -127
  89. package/docs/themes.md +295 -295
  90. package/docs/tmux.md +63 -63
  91. package/docs/tui.md +927 -927
  92. package/docs/windows.md +17 -17
  93. package/examples/README.md +25 -25
  94. package/examples/extensions/README.md +211 -211
  95. package/examples/extensions/auto-commit-on-exit.ts +49 -49
  96. package/examples/extensions/bash-spawn-hook.ts +30 -30
  97. package/examples/extensions/bookmark.ts +50 -50
  98. package/examples/extensions/border-status-editor.ts +150 -150
  99. package/examples/extensions/built-in-tool-renderer.ts +249 -249
  100. package/examples/extensions/claude-rules.ts +86 -86
  101. package/examples/extensions/commands.ts +72 -72
  102. package/examples/extensions/confirm-destructive.ts +59 -59
  103. package/examples/extensions/custom-compaction.ts +130 -130
  104. package/examples/extensions/custom-footer.ts +64 -64
  105. package/examples/extensions/custom-header.ts +73 -73
  106. package/examples/extensions/custom-provider-anthropic/index.ts +610 -610
  107. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
  108. package/examples/extensions/custom-provider-anthropic/package.json +19 -19
  109. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -404
  110. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
  111. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -82
  112. package/examples/extensions/dirty-repo-guard.ts +56 -56
  113. package/examples/extensions/doom-overlay/README.md +46 -46
  114. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
  115. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  116. package/examples/extensions/doom-overlay/doom/build.sh +152 -152
  117. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
  118. package/examples/extensions/doom-overlay/doom-component.ts +132 -132
  119. package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
  120. package/examples/extensions/doom-overlay/doom-keys.ts +104 -104
  121. package/examples/extensions/doom-overlay/index.ts +74 -74
  122. package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
  123. package/examples/extensions/dynamic-resources/SKILL.md +8 -8
  124. package/examples/extensions/dynamic-resources/dynamic.json +79 -79
  125. package/examples/extensions/dynamic-resources/dynamic.md +5 -5
  126. package/examples/extensions/dynamic-resources/index.ts +15 -15
  127. package/examples/extensions/dynamic-tools.ts +74 -74
  128. package/examples/extensions/event-bus.ts +43 -43
  129. package/examples/extensions/file-trigger.ts +41 -41
  130. package/examples/extensions/git-checkpoint.ts +53 -53
  131. package/examples/extensions/git-merge-and-resolve.ts +115 -115
  132. package/examples/extensions/github-issue-autocomplete.ts +185 -185
  133. package/examples/extensions/gondolin/index.ts +531 -531
  134. package/examples/extensions/gondolin/package-lock.json +185 -185
  135. package/examples/extensions/gondolin/package.json +19 -19
  136. package/examples/extensions/handoff.ts +199 -199
  137. package/examples/extensions/hello.ts +26 -26
  138. package/examples/extensions/hidden-thinking-label.ts +53 -53
  139. package/examples/extensions/inline-bash.ts +94 -94
  140. package/examples/extensions/input-transform-streaming.ts +39 -39
  141. package/examples/extensions/input-transform.ts +43 -43
  142. package/examples/extensions/interactive-shell.ts +196 -196
  143. package/examples/extensions/mac-system-theme.ts +47 -47
  144. package/examples/extensions/message-renderer.ts +59 -59
  145. package/examples/extensions/minimal-mode.ts +426 -426
  146. package/examples/extensions/modal-editor.ts +85 -85
  147. package/examples/extensions/model-status.ts +31 -31
  148. package/examples/extensions/notify.ts +55 -55
  149. package/examples/extensions/overlay-qa-tests.ts +1450 -1450
  150. package/examples/extensions/overlay-test.ts +153 -153
  151. package/examples/extensions/permission-gate.ts +34 -34
  152. package/examples/extensions/pirate.ts +47 -47
  153. package/examples/extensions/plan-mode/README.md +66 -66
  154. package/examples/extensions/plan-mode/index.ts +390 -390
  155. package/examples/extensions/plan-mode/utils.ts +168 -168
  156. package/examples/extensions/preset.ts +436 -436
  157. package/examples/extensions/project-trust.ts +64 -64
  158. package/examples/extensions/prompt-customizer.ts +97 -97
  159. package/examples/extensions/protected-paths.ts +30 -30
  160. package/examples/extensions/provider-payload.ts +18 -18
  161. package/examples/extensions/qna.ts +122 -122
  162. package/examples/extensions/question.ts +285 -285
  163. package/examples/extensions/questionnaire.ts +448 -448
  164. package/examples/extensions/rainbow-editor.ts +88 -88
  165. package/examples/extensions/reload-runtime.ts +37 -37
  166. package/examples/extensions/rpc-demo.ts +118 -118
  167. package/examples/extensions/sandbox/index.ts +321 -321
  168. package/examples/extensions/sandbox/package-lock.json +92 -92
  169. package/examples/extensions/sandbox/package.json +19 -19
  170. package/examples/extensions/send-user-message.ts +97 -97
  171. package/examples/extensions/session-name.ts +27 -27
  172. package/examples/extensions/shutdown-command.ts +63 -63
  173. package/examples/extensions/snake.ts +343 -343
  174. package/examples/extensions/space-invaders.ts +560 -560
  175. package/examples/extensions/ssh.ts +220 -220
  176. package/examples/extensions/status-line.ts +32 -32
  177. package/examples/extensions/structured-output.ts +65 -65
  178. package/examples/extensions/subagent/README.md +175 -175
  179. package/examples/extensions/subagent/agents/planner.md +37 -37
  180. package/examples/extensions/subagent/agents/reviewer.md +35 -35
  181. package/examples/extensions/subagent/agents/scout.md +50 -50
  182. package/examples/extensions/subagent/agents/worker.md +24 -24
  183. package/examples/extensions/subagent/agents.ts +126 -126
  184. package/examples/extensions/subagent/index.ts +1015 -1015
  185. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
  186. package/examples/extensions/subagent/prompts/implement.md +10 -10
  187. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
  188. package/examples/extensions/summarize.ts +209 -209
  189. package/examples/extensions/system-prompt-header.ts +17 -17
  190. package/examples/extensions/tic-tac-toe.ts +1008 -1008
  191. package/examples/extensions/timed-confirm.ts +70 -70
  192. package/examples/extensions/titlebar-spinner.ts +58 -58
  193. package/examples/extensions/todo.ts +297 -297
  194. package/examples/extensions/tool-override.ts +144 -144
  195. package/examples/extensions/tools.ts +146 -146
  196. package/examples/extensions/trigger-compact.ts +50 -50
  197. package/examples/extensions/truncated-tool.ts +195 -195
  198. package/examples/extensions/widget-placement.ts +9 -9
  199. package/examples/extensions/with-deps/index.ts +32 -32
  200. package/examples/extensions/with-deps/package-lock.json +31 -31
  201. package/examples/extensions/with-deps/package.json +22 -22
  202. package/examples/extensions/working-indicator.ts +123 -123
  203. package/examples/extensions/working-message-test.ts +25 -25
  204. package/examples/rpc-extension-ui.ts +632 -632
  205. package/examples/sdk/01-minimal.ts +26 -26
  206. package/examples/sdk/02-custom-model.ts +53 -53
  207. package/examples/sdk/03-custom-prompt.ts +75 -75
  208. package/examples/sdk/04-skills.ts +55 -55
  209. package/examples/sdk/05-tools.ts +48 -48
  210. package/examples/sdk/06-extensions.ts +99 -99
  211. package/examples/sdk/07-context-files.ts +47 -47
  212. package/examples/sdk/08-prompt-templates.ts +51 -51
  213. package/examples/sdk/09-api-keys-and-oauth.ts +52 -52
  214. package/examples/sdk/10-settings.ts +53 -53
  215. package/examples/sdk/11-sessions.ts +52 -52
  216. package/examples/sdk/12-full-control.ts +79 -79
  217. package/examples/sdk/13-session-runtime.ts +67 -67
  218. package/examples/sdk/README.md +144 -144
  219. package/package.json +3 -2
  220. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +0 -3
  221. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +0 -2
  222. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +0 -17
  223. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +0 -57
  224. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +0 -16
  225. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +0 -15
  226. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +0 -18
  227. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +0 -9
  228. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +0 -10
  229. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +0 -10
  230. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +0 -20
  231. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +0 -3
  232. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +0 -96
  233. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +0 -119
  234. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +0 -85
  235. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +0 -620
  236. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +0 -5
  237. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +0 -56
  238. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +0 -32
  239. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +0 -49
  240. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +0 -93
  241. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +0 -128
  242. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +0 -7
  243. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +0 -38
  244. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +0 -3
  245. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +0 -15
  246. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +0 -9
  247. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +0 -29
  248. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +0 -2
  249. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +0 -22
  250. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +0 -37
  251. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +0 -34
  252. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +0 -12
  253. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +0 -23
  254. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +0 -171
  255. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +0 -1261
  256. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +0 -20
  257. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +0 -54
  258. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +0 -22
  259. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +0 -13
  260. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +0 -358
  261. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +0 -77
  262. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +0 -512
  263. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +0 -43
  264. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +0 -121
  265. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +0 -82
  266. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +0 -17
  267. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +0 -7
  268. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +0 -210
  269. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +0 -15
  270. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +0 -54
  271. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +0 -4
  272. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +0 -55
  273. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +0 -2
  274. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +0 -5
  275. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +0 -30
  276. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +0 -206
  277. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +0 -15
  278. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +0 -106
  279. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +0 -19
  280. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +0 -356
  281. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +0 -297
  282. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +0 -60
  283. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +0 -15
  284. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +0 -18
  285. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +0 -28
  286. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +0 -3
  287. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +0 -10
  288. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +0 -68
  289. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +0 -106
  290. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +0 -51
  291. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +0 -6
  292. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +0 -35
  293. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +0 -37
  294. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +0 -40
  295. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +0 -37
  296. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +0 -52
  297. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +0 -10
  298. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +0 -35
  299. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +0 -24
  300. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  301. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +0 -70
  302. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +0 -26
  303. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +0 -36
  304. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +0 -19
  305. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +0 -3
  306. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +0 -61
  307. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +0 -23
  308. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +0 -3
  309. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +0 -10
  310. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +0 -42
  311. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +0 -35
  312. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +0 -12
  313. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +0 -33
  314. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +0 -9
  315. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +0 -34
  316. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +0 -22
  317. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  318. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  319. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  320. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  321. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +0 -102
  322. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  323. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  324. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +0 -19
  325. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +0 -20
  326. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  327. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +0 -12
  328. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  329. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  330. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +0 -22
  331. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +0 -23
  332. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  333. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +0 -25
  334. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +0 -32
  335. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +0 -34
  336. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  337. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +0 -52
  338. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +0 -54
  339. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +0 -33
  340. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  341. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  342. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +0 -95
  343. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +0 -77
  344. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  345. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  346. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +0 -28
  347. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  348. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  349. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  350. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +0 -94
  351. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +0 -23
  352. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  353. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +0 -14
  354. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  355. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +0 -394
  356. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +0 -12
  357. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +0 -29
  358. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +0 -120
  359. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +0 -28
  360. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +0 -17
  361. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +0 -246
  362. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +0 -20
  363. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +0 -457
  364. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +0 -8
  365. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +0 -3
  366. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +0 -2
  367. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +0 -22
  368. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +0 -18
  369. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +0 -11
  370. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +0 -11
  371. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +0 -4
  372. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +0 -4
  373. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +0 -5
  374. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +0 -8
  375. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +0 -5
  376. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +0 -26
  377. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +0 -7
  378. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +0 -10
  379. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +0 -18
  380. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +0 -30
  381. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +0 -2
  382. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +0 -16
  383. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +0 -3
  384. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +0 -3
  385. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +0 -9
  386. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +0 -31
  387. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +0 -21
  388. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +0 -2
  389. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +0 -31
  390. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +0 -5
  391. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +0 -12
  392. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +0 -3
  393. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +0 -15
  394. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +0 -3
package/docs/sessions.md CHANGED
@@ -1,145 +1,145 @@
1
- # Sessions
2
-
3
- Pi saves conversations as sessions so you can continue work, branch from earlier turns, and revisit previous paths.
4
-
5
- ## Session Storage
6
-
7
- Sessions auto-save to `~/.pi/agent/sessions/`, organized by working directory. Each session is a JSONL file with a tree structure.
8
-
9
- ```bash
10
- pi -c # Continue most recent session
11
- pi -r # Browse and select from past sessions
12
- pi --no-session # Ephemeral mode; do not save
13
- pi --name "my task" # Set session display name at startup
14
- pi --session <path|id> # Use a specific session file or partial session ID
15
- pi --fork <path|id> # Fork a session file or partial session ID into a new session
16
- ```
17
-
18
- Use `/session` in interactive mode to see the current session file, session ID, message count, tokens, and cost.
19
-
20
- For the JSONL file format and SessionManager API, see [Session Format](session-format.md).
21
-
22
- ## Session Commands
23
-
24
- | Command | Description |
25
- |---------|-------------|
26
- | `/resume` | Browse and select previous sessions |
27
- | `/new` | Start a new session |
28
- | `/name <name>` | Set the current session display name |
29
- | `/session` | Show session info |
30
- | `/tree` | Navigate the current session tree |
31
- | `/fork` | Create a new session from a previous user message |
32
- | `/clone` | Duplicate the current active branch into a new session |
33
- | `/compact [prompt]` | Summarize older context; see [Compaction](compaction.md) |
34
- | `/export [file]` | Export session to HTML |
35
- | `/share` | Upload as private GitHub gist with shareable HTML link |
36
-
37
- ## Resuming and Deleting Sessions
38
-
39
- `/resume` opens an interactive session picker for the current project. `pi -r` opens the same picker at startup.
40
-
41
- In the picker you can:
42
-
43
- - search by typing
44
- - toggle path display with Ctrl+P
45
- - toggle sort mode with Ctrl+S
46
- - filter to named sessions with Ctrl+N
47
- - rename with Ctrl+R
48
- - delete with Ctrl+D, then confirm
49
-
50
- When available, pi uses the `trash` CLI for deletion instead of permanently removing files.
51
-
52
- ## Naming Sessions
53
-
54
- Use `/name <name>` to set a human-readable session name:
55
-
56
- ```text
57
- /name Refactor auth module
58
- ```
59
-
60
- Set the name at startup with `--name` or `-n`:
61
-
62
- ```bash
63
- pi --name "Refactor auth module"
64
- pi --name "CI audit" -p "Review this build failure"
65
- ```
66
-
67
- Named sessions are easier to find in `/resume` and `pi -r`.
68
-
69
- ## Branching with `/tree`
70
-
71
- Sessions are stored as trees. Every entry has an `id` and `parentId`, and the current position is the active leaf. `/tree` lets you jump to any previous point and continue from there without creating a new file.
72
-
73
- <p align="center"><img src="images/tree-view.png" alt="Tree View" width="600"></p>
74
-
75
- Example shape:
76
-
77
- ```text
78
- ├─ user: "Hello, can you help..."
79
- │ └─ assistant: "Of course! I can..."
80
- │ ├─ user: "Let's try approach A..."
81
- │ │ └─ assistant: "For approach A..."
82
- │ │ └─ user: "That worked..." ← active
83
- │ └─ user: "Actually, approach B..."
84
- │ └─ assistant: "For approach B..."
85
- ```
86
-
87
- ### Tree Controls
88
-
89
- | Key | Action |
90
- |-----|--------|
91
- | ↑/↓ | Navigate visible entries |
92
- | ←/→ | Page up/down |
93
- | Ctrl+←/Ctrl+→ or Alt+←/Alt+→ | Fold/unfold or jump between branch segments |
94
- | Shift+L | Set or clear a label on the selected entry |
95
- | Shift+T | Toggle label timestamps |
96
- | Enter | Select entry |
97
- | Escape/Ctrl+C | Cancel |
98
- | Ctrl+O | Cycle filter mode |
99
-
100
- Filter modes are: default, no-tools, user-only, labeled-only, and all. Configure the default with `treeFilterMode` in [Settings](settings.md).
101
-
102
- ### Selection Behavior
103
-
104
- Selecting a user or custom message:
105
-
106
- 1. Moves the leaf to the selected message's parent.
107
- 2. Places the selected message text in the editor.
108
- 3. Lets you edit and resubmit, creating a new branch.
109
-
110
- Selecting an assistant, tool, compaction, or other non-user entry:
111
-
112
- 1. Moves the leaf to that entry.
113
- 2. Leaves the editor empty.
114
- 3. Lets you continue from that point.
115
-
116
- Selecting the root user message resets the leaf to an empty conversation and places the original prompt in the editor.
117
-
118
- ## `/tree`, `/fork`, and `/clone`
119
-
120
- | Feature | `/tree` | `/fork` | `/clone` |
121
- |---------|---------|---------|----------|
122
- | Output | Same session file | New session file | New session file |
123
- | View | Full tree | User-message selector | Current active branch |
124
- | Typical use | Explore alternatives in place | Start a new session from an earlier prompt | Duplicate current work before continuing |
125
- | Summary | Optional branch summary | None | None |
126
-
127
- Use `/tree` when you want to keep alternatives together. Use `/fork` or `/clone` when you want a separate session file.
128
-
129
- ## Branch Summaries
130
-
131
- When `/tree` switches away from one branch to another, pi can summarize the abandoned branch and attach that summary at the new position. This preserves important context from the path you left without replaying the whole branch.
132
-
133
- When prompted, choose one of:
134
-
135
- 1. no summary
136
- 2. summarize with the default prompt
137
- 3. summarize with custom focus instructions
138
-
139
- See [Compaction](compaction.md) for branch summarization internals and extension hooks.
140
-
141
- ## Session Format
142
-
143
- Session files are JSONL and contain message entries, model changes, thinking-level changes, labels, compactions, branch summaries, and extension entries.
144
-
145
- For parsers, extensions, SDK usage, and the full SessionManager API, see [Session Format](session-format.md).
1
+ # Sessions
2
+
3
+ Pi saves conversations as sessions so you can continue work, branch from earlier turns, and revisit previous paths.
4
+
5
+ ## Session Storage
6
+
7
+ Sessions auto-save to `~/.pi/agent/sessions/`, organized by working directory. Each session is a JSONL file with a tree structure.
8
+
9
+ ```bash
10
+ pi -c # Continue most recent session
11
+ pi -r # Browse and select from past sessions
12
+ pi --no-session # Ephemeral mode; do not save
13
+ pi --name "my task" # Set session display name at startup
14
+ pi --session <path|id> # Use a specific session file or partial session ID
15
+ pi --fork <path|id> # Fork a session file or partial session ID into a new session
16
+ ```
17
+
18
+ Use `/session` in interactive mode to see the current session file, session ID, message count, tokens, and cost.
19
+
20
+ For the JSONL file format and SessionManager API, see [Session Format](session-format.md).
21
+
22
+ ## Session Commands
23
+
24
+ | Command | Description |
25
+ |---------|-------------|
26
+ | `/resume` | Browse and select previous sessions |
27
+ | `/new` | Start a new session |
28
+ | `/name <name>` | Set the current session display name |
29
+ | `/session` | Show session info |
30
+ | `/tree` | Navigate the current session tree |
31
+ | `/fork` | Create a new session from a previous user message |
32
+ | `/clone` | Duplicate the current active branch into a new session |
33
+ | `/compact [prompt]` | Summarize older context; see [Compaction](compaction.md) |
34
+ | `/export [file]` | Export session to HTML |
35
+ | `/share` | Upload as private GitHub gist with shareable HTML link |
36
+
37
+ ## Resuming and Deleting Sessions
38
+
39
+ `/resume` opens an interactive session picker for the current project. `pi -r` opens the same picker at startup.
40
+
41
+ In the picker you can:
42
+
43
+ - search by typing
44
+ - toggle path display with Ctrl+P
45
+ - toggle sort mode with Ctrl+S
46
+ - filter to named sessions with Ctrl+N
47
+ - rename with Ctrl+R
48
+ - delete with Ctrl+D, then confirm
49
+
50
+ When available, pi uses the `trash` CLI for deletion instead of permanently removing files.
51
+
52
+ ## Naming Sessions
53
+
54
+ Use `/name <name>` to set a human-readable session name:
55
+
56
+ ```text
57
+ /name Refactor auth module
58
+ ```
59
+
60
+ Set the name at startup with `--name` or `-n`:
61
+
62
+ ```bash
63
+ pi --name "Refactor auth module"
64
+ pi --name "CI audit" -p "Review this build failure"
65
+ ```
66
+
67
+ Named sessions are easier to find in `/resume` and `pi -r`.
68
+
69
+ ## Branching with `/tree`
70
+
71
+ Sessions are stored as trees. Every entry has an `id` and `parentId`, and the current position is the active leaf. `/tree` lets you jump to any previous point and continue from there without creating a new file.
72
+
73
+ <p align="center"><img src="images/tree-view.png" alt="Tree View" width="600"></p>
74
+
75
+ Example shape:
76
+
77
+ ```text
78
+ ├─ user: "Hello, can you help..."
79
+ │ └─ assistant: "Of course! I can..."
80
+ │ ├─ user: "Let's try approach A..."
81
+ │ │ └─ assistant: "For approach A..."
82
+ │ │ └─ user: "That worked..." ← active
83
+ │ └─ user: "Actually, approach B..."
84
+ │ └─ assistant: "For approach B..."
85
+ ```
86
+
87
+ ### Tree Controls
88
+
89
+ | Key | Action |
90
+ |-----|--------|
91
+ | ↑/↓ | Navigate visible entries |
92
+ | ←/→ | Page up/down |
93
+ | Ctrl+←/Ctrl+→ or Alt+←/Alt+→ | Fold/unfold or jump between branch segments |
94
+ | Shift+L | Set or clear a label on the selected entry |
95
+ | Shift+T | Toggle label timestamps |
96
+ | Enter | Select entry |
97
+ | Escape/Ctrl+C | Cancel |
98
+ | Ctrl+O | Cycle filter mode |
99
+
100
+ Filter modes are: default, no-tools, user-only, labeled-only, and all. Configure the default with `treeFilterMode` in [Settings](settings.md).
101
+
102
+ ### Selection Behavior
103
+
104
+ Selecting a user or custom message:
105
+
106
+ 1. Moves the leaf to the selected message's parent.
107
+ 2. Places the selected message text in the editor.
108
+ 3. Lets you edit and resubmit, creating a new branch.
109
+
110
+ Selecting an assistant, tool, compaction, or other non-user entry:
111
+
112
+ 1. Moves the leaf to that entry.
113
+ 2. Leaves the editor empty.
114
+ 3. Lets you continue from that point.
115
+
116
+ Selecting the root user message resets the leaf to an empty conversation and places the original prompt in the editor.
117
+
118
+ ## `/tree`, `/fork`, and `/clone`
119
+
120
+ | Feature | `/tree` | `/fork` | `/clone` |
121
+ |---------|---------|---------|----------|
122
+ | Output | Same session file | New session file | New session file |
123
+ | View | Full tree | User-message selector | Current active branch |
124
+ | Typical use | Explore alternatives in place | Start a new session from an earlier prompt | Duplicate current work before continuing |
125
+ | Summary | Optional branch summary | None | None |
126
+
127
+ Use `/tree` when you want to keep alternatives together. Use `/fork` or `/clone` when you want a separate session file.
128
+
129
+ ## Branch Summaries
130
+
131
+ When `/tree` switches away from one branch to another, pi can summarize the abandoned branch and attach that summary at the new position. This preserves important context from the path you left without replaying the whole branch.
132
+
133
+ When prompted, choose one of:
134
+
135
+ 1. no summary
136
+ 2. summarize with the default prompt
137
+ 3. summarize with custom focus instructions
138
+
139
+ See [Compaction](compaction.md) for branch summarization internals and extension hooks.
140
+
141
+ ## Session Format
142
+
143
+ Session files are JSONL and contain message entries, model changes, thinking-level changes, labels, compactions, branch summaries, and extension entries.
144
+
145
+ For parsers, extensions, SDK usage, and the full SessionManager API, see [Session Format](session-format.md).
@@ -1,109 +1,109 @@
1
- # Shared Host Extensions
2
-
3
- Selesai is a pi fork with its own config directory (`~/.selesai/agent/`). By default it only reads your extensions from there. If you already use `pi` and have extensions installed under `~/.pi/agent/extensions/`, you can let selesai reuse them without duplicating auth, sessions, models, or settings.
4
-
5
- This page covers three things:
6
-
7
- 1. The shared-host fallback (how selesai reads pi's extensions).
8
- 2. Collisions: what happens when the same extension exists in both.
9
- 3. Picking the winner per extension via `extensionHost`.
10
-
11
- ## What gets shared, and what does not
12
-
13
- | Read from `~/.pi/agent/` | Kept separate under `~/.selesai/agent/` |
14
- |---|---|
15
- | `extensions/` | `auth.json` |
16
- | | `models.json` |
17
- | | `settings.json` |
18
- | | `sessions/` |
19
- | | `skills/`, `prompts/`, `themes/` |
20
-
21
- Only **extensions** are shared from the pi host dir. Everything tied to your identity, model defaults, and settings stays in selesai's own dir. This means you can keep a single set of API keys in `~/.pi/agent/auth.json` for pi, and a different set in `~/.selesai/agent/auth.json` for selesai, while both agents load the same extension code.
22
-
23
- The host directory is hardcoded to `~/.pi/agent/extensions`. If pi ever renames its config dir, selesai will silently stop loading pi's extensions — no error, the extensions just won't appear. There is no env var to override this; the path is deliberately fixed so your two installs can't drift into loading the wrong dir.
24
-
25
- ## Collisions: same extension in both dirs
26
-
27
- If an extension named `pi-subagents` exists in both `~/.selesai/agent/extensions/` and `~/.pi/agent/extensions/`, selesai does **not** load both. Loading both causes split-brain problems for stateful extensions (timers, event handlers, watchers running twice with separate `state` objects), so selesai loads exactly one copy and drops the other.
28
-
29
- The "name" used for dedup is the **top-level entry name** under the extensions dir:
30
-
31
- - A packaged extension dir (e.g. `pi-subagents/` with a `package.json`) → the dir name `pi-subagents`.
32
- - A loose `.ts` file (e.g. `copy-turn.ts`) → the file name `copy-turn.ts`.
33
-
34
- If you fork `pi-subagents` into a dir called `my-subagents`, the names differ and both load — no collision.
35
-
36
- ### Default winner
37
-
38
- Without any config, **selesai's copy wins**. The pi copy is dropped entirely (never loaded), and a warning is printed at startup:
39
-
40
- ```
41
- Warning: Extension "pi-subagents" exists in both ~/.selesai/agent/extensions and ~/.pi/agent/extensions; loaded the selesai copy, skipped the other. Set "extensionHost": { "pi-subagents": "pi" } or "selesai" in settings.json to change the winner.
42
- ```
43
-
44
- ## Picking the winner: `extensionHost`
45
-
46
- You control the winner per extension in `~/.selesai/agent/settings.json`:
47
-
48
- ```json
49
- {
50
- "extensionHost": {
51
- "pi-subagents": "pi",
52
- "copy-turn.ts": "selesai"
53
- }
54
- }
55
- ```
56
-
57
- | Value | Behavior |
58
- |---|---|
59
- | `"selesai"` | selesai's copy loads, pi's is dropped. |
60
- | `"pi"` | pi's copy loads, selesai's is dropped. |
61
- | (omitted) | Default applies (= selesai wins). |
62
-
63
- Typical reasons to pick `"pi"`:
64
- - You hack on an extension under `~/.pi/agent/extensions/` and want both agents to run your working copy.
65
- - pi's version is newer and you have not ported your changes into selesai yet.
66
- - An extension carries host-specific state (a socket path, a lockfile).
67
-
68
- Typical reasons to leave it at `"selesai"` (default):
69
- - You have a selesai-specific fork and want it to shadow pi's.
70
- - You are migrating toward selesai and are phasing pi's copy out.
71
-
72
- The setting is scoped by name, so you can mix: keep pi's `pi-subagents` but use selesai's `copy-turn.ts`.
73
-
74
- ### Where to put it
75
-
76
- Global (`~/.selesai/agent/settings.json`) applies to every project. Project-local `.selesai/settings.json` (or `.pi/settings.json` inside a trusted project) overrides per project, since project settings merge on top of global. See [settings.md](settings.md) for the full merge rules.
77
-
78
- ## Workflow: running pi and selesai side by side
79
-
80
- 1. Keep your current install as-is:
81
- ```
82
- ~/.pi/agent/
83
- extensions/ <- your shared extensions live here
84
- auth.json
85
- settings.json
86
- ~/.selesai/agent/
87
- extensions/ <- (optional) selesai-specific forks override the above
88
- auth.json <- separate keys, separate sessions
89
- settings.json <- add extensionHost here
90
- ```
91
- 2. If you hit a collision warning and want the other copy, add one line to `~/.selesai/agent/settings.json`:
92
- ```json
93
- { "extensionHost": { "pi-subagents": "pi" } }
94
- ```
95
- 3. Restart. The warning now reads that pi's copy won and selesai's was skipped.
96
-
97
- ## How detection works (under the hood)
98
-
99
- - During resource resolution, selesai collects all enabled extensions from `~/.selesai/agent/extensions/`, then walks `~/.pi/agent/extensions/` for the rest.
100
- - For each pi-host entry, it computes the top-level entry name and checks it against the selesai set.
101
- - On a match, `extensionHost[name]` decides the winner; the loser is removed from the resolved set before anything loads, so no double-load of factories, no orphaned timers.
102
- - Each drop is recorded as a collision and surfaced as a startup warning (see [Settings](settings.md) for where diagnostics are reported).
103
-
104
- ## Limitations
105
-
106
- - **Only extensions are shared.** Skills, prompts, and themes in `~/.pi/agent/skills/` etc. are never read by selesai. Copy them into `~/.selesai/agent/` if you want them.
107
- - **Only name collisions are deduped.** If two unrelated extensions register the same tool or command name (e.g. both define `/foo`), that conflict is handled by pi's normal first-registration-wins rule after load, not by `extensionHost`.
108
- - **No version check.** If selesai's `pi-subagents` is 0.2.0 and pi's is 0.4.0, `extensionHost: { "pi-subagents": "pi" }` silently loads 0.4.0. Picking the winner is purely by install location, not by version. You are responsible for matching versions when you want consistent behavior.
109
- - **Hardcoded host path.** If you rename pi's config dir away from `~/.pi`, selesai stops seeing it. There is no resolver hook yet.
1
+ # Shared Host Extensions
2
+
3
+ Selesai is a pi fork with its own config directory (`~/.selesai/agent/`). By default it only reads your extensions from there. If you already use `pi` and have extensions installed under `~/.pi/agent/extensions/`, you can let selesai reuse them without duplicating auth, sessions, models, or settings.
4
+
5
+ This page covers three things:
6
+
7
+ 1. The shared-host fallback (how selesai reads pi's extensions).
8
+ 2. Collisions: what happens when the same extension exists in both.
9
+ 3. Picking the winner per extension via `extensionHost`.
10
+
11
+ ## What gets shared, and what does not
12
+
13
+ | Read from `~/.pi/agent/` | Kept separate under `~/.selesai/agent/` |
14
+ |---|---|
15
+ | `extensions/` | `auth.json` |
16
+ | | `models.json` |
17
+ | | `settings.json` |
18
+ | | `sessions/` |
19
+ | | `skills/`, `prompts/`, `themes/` |
20
+
21
+ Only **extensions** are shared from the pi host dir. Everything tied to your identity, model defaults, and settings stays in selesai's own dir. This means you can keep a single set of API keys in `~/.pi/agent/auth.json` for pi, and a different set in `~/.selesai/agent/auth.json` for selesai, while both agents load the same extension code.
22
+
23
+ The host directory is hardcoded to `~/.pi/agent/extensions`. If pi ever renames its config dir, selesai will silently stop loading pi's extensions — no error, the extensions just won't appear. There is no env var to override this; the path is deliberately fixed so your two installs can't drift into loading the wrong dir.
24
+
25
+ ## Collisions: same extension in both dirs
26
+
27
+ If an extension named `pi-subagents` exists in both `~/.selesai/agent/extensions/` and `~/.pi/agent/extensions/`, selesai does **not** load both. Loading both causes split-brain problems for stateful extensions (timers, event handlers, watchers running twice with separate `state` objects), so selesai loads exactly one copy and drops the other.
28
+
29
+ The "name" used for dedup is the **top-level entry name** under the extensions dir:
30
+
31
+ - A packaged extension dir (e.g. `pi-subagents/` with a `package.json`) → the dir name `pi-subagents`.
32
+ - A loose `.ts` file (e.g. `copy-turn.ts`) → the file name `copy-turn.ts`.
33
+
34
+ If you fork `pi-subagents` into a dir called `my-subagents`, the names differ and both load — no collision.
35
+
36
+ ### Default winner
37
+
38
+ Without any config, **selesai's copy wins**. The pi copy is dropped entirely (never loaded), and a warning is printed at startup:
39
+
40
+ ```
41
+ Warning: Extension "pi-subagents" exists in both ~/.selesai/agent/extensions and ~/.pi/agent/extensions; loaded the selesai copy, skipped the other. Set "extensionHost": { "pi-subagents": "pi" } or "selesai" in settings.json to change the winner.
42
+ ```
43
+
44
+ ## Picking the winner: `extensionHost`
45
+
46
+ You control the winner per extension in `~/.selesai/agent/settings.json`:
47
+
48
+ ```json
49
+ {
50
+ "extensionHost": {
51
+ "pi-subagents": "pi",
52
+ "copy-turn.ts": "selesai"
53
+ }
54
+ }
55
+ ```
56
+
57
+ | Value | Behavior |
58
+ |---|---|
59
+ | `"selesai"` | selesai's copy loads, pi's is dropped. |
60
+ | `"pi"` | pi's copy loads, selesai's is dropped. |
61
+ | (omitted) | Default applies (= selesai wins). |
62
+
63
+ Typical reasons to pick `"pi"`:
64
+ - You hack on an extension under `~/.pi/agent/extensions/` and want both agents to run your working copy.
65
+ - pi's version is newer and you have not ported your changes into selesai yet.
66
+ - An extension carries host-specific state (a socket path, a lockfile).
67
+
68
+ Typical reasons to leave it at `"selesai"` (default):
69
+ - You have a selesai-specific fork and want it to shadow pi's.
70
+ - You are migrating toward selesai and are phasing pi's copy out.
71
+
72
+ The setting is scoped by name, so you can mix: keep pi's `pi-subagents` but use selesai's `copy-turn.ts`.
73
+
74
+ ### Where to put it
75
+
76
+ Global (`~/.selesai/agent/settings.json`) applies to every project. Project-local `.selesai/settings.json` (or `.pi/settings.json` inside a trusted project) overrides per project, since project settings merge on top of global. See [settings.md](settings.md) for the full merge rules.
77
+
78
+ ## Workflow: running pi and selesai side by side
79
+
80
+ 1. Keep your current install as-is:
81
+ ```
82
+ ~/.pi/agent/
83
+ extensions/ <- your shared extensions live here
84
+ auth.json
85
+ settings.json
86
+ ~/.selesai/agent/
87
+ extensions/ <- (optional) selesai-specific forks override the above
88
+ auth.json <- separate keys, separate sessions
89
+ settings.json <- add extensionHost here
90
+ ```
91
+ 2. If you hit a collision warning and want the other copy, add one line to `~/.selesai/agent/settings.json`:
92
+ ```json
93
+ { "extensionHost": { "pi-subagents": "pi" } }
94
+ ```
95
+ 3. Restart. The warning now reads that pi's copy won and selesai's was skipped.
96
+
97
+ ## How detection works (under the hood)
98
+
99
+ - During resource resolution, selesai collects all enabled extensions from `~/.selesai/agent/extensions/`, then walks `~/.pi/agent/extensions/` for the rest.
100
+ - For each pi-host entry, it computes the top-level entry name and checks it against the selesai set.
101
+ - On a match, `extensionHost[name]` decides the winner; the loser is removed from the resolved set before anything loads, so no double-load of factories, no orphaned timers.
102
+ - Each drop is recorded as a collision and surfaced as a startup warning (see [Settings](settings.md) for where diagnostics are reported).
103
+
104
+ ## Limitations
105
+
106
+ - **Only extensions are shared.** Skills, prompts, and themes in `~/.pi/agent/skills/` etc. are never read by selesai. Copy them into `~/.selesai/agent/` if you want them.
107
+ - **Only name collisions are deduped.** If two unrelated extensions register the same tool or command name (e.g. both define `/foo`), that conflict is handled by pi's normal first-registration-wins rule after load, not by `extensionHost`.
108
+ - **No version check.** If selesai's `pi-subagents` is 0.2.0 and pi's is 0.4.0, `extensionHost: { "pi-subagents": "pi" }` silently loads 0.4.0. Picking the winner is purely by install location, not by version. You are responsible for matching versions when you want consistent behavior.
109
+ - **Hardcoded host path.** If you rename pi's config dir away from `~/.pi`, selesai stops seeing it. There is no resolver hook yet.
@@ -1,13 +1,13 @@
1
- # Shell Aliases
2
-
3
- Pi runs bash in non-interactive mode (`bash -c`), which doesn't expand aliases by default.
4
-
5
- To enable your shell aliases, add to `~/.pi/agent/settings.json`:
6
-
7
- ```json
8
- {
9
- "shellCommandPrefix": "shopt -s expand_aliases\neval \"$(grep '^alias ' ~/.zshrc)\""
10
- }
11
- ```
12
-
13
- Adjust the path (`~/.zshrc`, `~/.bashrc`, etc.) to match your shell config.
1
+ # Shell Aliases
2
+
3
+ Pi runs bash in non-interactive mode (`bash -c`), which doesn't expand aliases by default.
4
+
5
+ To enable your shell aliases, add to `~/.pi/agent/settings.json`:
6
+
7
+ ```json
8
+ {
9
+ "shellCommandPrefix": "shopt -s expand_aliases\neval \"$(grep '^alias ' ~/.zshrc)\""
10
+ }
11
+ ```
12
+
13
+ Adjust the path (`~/.zshrc`, `~/.bashrc`, etc.) to match your shell config.