@selesai/code 0.10.1 → 0.10.2

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 (457) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cli/credential-print.js +4 -4
  3. package/dist/cli.js +0 -0
  4. package/dist/config.d.ts +5 -3
  5. package/dist/config.js +6 -4
  6. package/dist/core/compaction/branch-summarization.js +30 -30
  7. package/dist/core/compaction/compaction.js +81 -81
  8. package/dist/core/compaction/utils.js +2 -2
  9. package/dist/core/export-html/template.css +1066 -1066
  10. package/dist/core/export-html/template.html +55 -55
  11. package/dist/core/export-html/template.js +1864 -1864
  12. package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
  13. package/dist/core/export-html/vendor/marked.min.js +78 -78
  14. package/dist/core/messages.js +7 -7
  15. package/dist/core/skills.d.ts +2 -0
  16. package/dist/core/skills.js +1 -0
  17. package/dist/extensions/context-compaction-reminder.test.ts +82 -82
  18. package/dist/extensions/context-compaction-reminder.ts +28 -28
  19. package/dist/extensions/pi-intercom/LICENSE +21 -21
  20. package/dist/extensions/pi-intercom/broker/client.test.ts +83 -83
  21. package/dist/extensions/pi-intercom/broker/framing.test.ts +114 -114
  22. package/dist/extensions/pi-intercom/broker/paths.ts +134 -134
  23. package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +34 -34
  24. package/dist/extensions/pi-intercom/broker/runtime-claim.ts +21 -21
  25. package/dist/extensions/pi-intercom/cwd.test.ts +40 -40
  26. package/dist/extensions/pi-intercom/cwd.ts +31 -31
  27. package/dist/extensions/pi-intercom/format-context.test.ts +31 -31
  28. package/dist/extensions/pi-intercom/format-context.ts +32 -32
  29. package/dist/extensions/pi-intercom/test/overlay-width.test.ts +66 -66
  30. package/dist/extensions/pi-intercom/ui/compose.ts +143 -143
  31. package/dist/extensions/pi-intercom/ui/session-list.ts +166 -166
  32. package/dist/extensions/pi-rewind-hook/README.md +245 -245
  33. package/dist/extensions/pi-rewind-hook/index.ts +1445 -1445
  34. package/dist/extensions/pi-rewind-hook/package.json +29 -29
  35. package/dist/extensions/pi-subagents/install.mjs +0 -0
  36. package/dist/extensions/pi-web-agent/package.json +31 -31
  37. package/dist/extensions/pi-web-agent/src/backends/config.ts +205 -205
  38. package/dist/extensions/pi-web-agent/src/backends/doctor.ts +136 -136
  39. package/dist/extensions/pi-web-agent/src/backends/factory.ts +152 -152
  40. package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +25 -25
  41. package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +28 -28
  42. package/dist/extensions/pi-web-agent/src/changelog-notice.ts +136 -136
  43. package/dist/extensions/pi-web-agent/src/commands/web-agent-config.ts +946 -946
  44. package/dist/extensions/pi-web-agent/src/extension.ts +126 -126
  45. package/dist/extensions/pi-web-agent/src/extract/readability.ts +118 -118
  46. package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +199 -199
  47. package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +100 -100
  48. package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +117 -117
  49. package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +67 -67
  50. package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +60 -60
  51. package/dist/extensions/pi-web-agent/src/orchestration/candidate-selector.ts +50 -50
  52. package/dist/extensions/pi-web-agent/src/orchestration/direct-url.ts +52 -52
  53. package/dist/extensions/pi-web-agent/src/orchestration/evidence-quality.ts +105 -105
  54. package/dist/extensions/pi-web-agent/src/orchestration/evidence-ranker.ts +45 -45
  55. package/dist/extensions/pi-web-agent/src/orchestration/index.ts +28 -28
  56. package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +47 -47
  57. package/dist/extensions/pi-web-agent/src/orchestration/research-orchestrator.ts +376 -376
  58. package/dist/extensions/pi-web-agent/src/orchestration/research-types.ts +64 -64
  59. package/dist/extensions/pi-web-agent/src/orchestration/research-worker.ts +181 -181
  60. package/dist/extensions/pi-web-agent/src/orchestration/source-profile.ts +101 -101
  61. package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +81 -81
  62. package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +210 -210
  63. package/dist/extensions/pi-web-agent/src/presentation/config.ts +75 -75
  64. package/dist/extensions/pi-web-agent/src/presentation/explore-presentation.ts +61 -61
  65. package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +54 -54
  66. package/dist/extensions/pi-web-agent/src/presentation/search-presentation.ts +41 -41
  67. package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +20 -20
  68. package/dist/extensions/pi-web-agent/src/presentation/types.ts +63 -63
  69. package/dist/extensions/pi-web-agent/src/search/brave.ts +114 -114
  70. package/dist/extensions/pi-web-agent/src/search/duckduckgo.ts +72 -72
  71. package/dist/extensions/pi-web-agent/src/search/searxng.ts +96 -96
  72. package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +71 -71
  73. package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +31 -31
  74. package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +31 -31
  75. package/dist/extensions/pi-web-agent/src/tools/web-search.ts +157 -157
  76. package/dist/extensions/pi-web-agent/src/types.ts +88 -88
  77. package/dist/extensions/ponytail/package.json +8 -8
  78. package/dist/extensions/question/constants.ts +30 -30
  79. package/dist/extensions/question/helpers.ts +58 -58
  80. package/dist/extensions/question/navigation.ts +14 -14
  81. package/dist/extensions/question/package.json +19 -19
  82. package/dist/extensions/question/selection-mode.ts +46 -46
  83. package/dist/extensions/question/shortcuts.ts +44 -44
  84. package/dist/extensions/question/types.ts +132 -132
  85. package/dist/extensions/test-resolve-hook-impl.mjs +6 -6
  86. package/dist/extensions/test-resolve-hook.mjs +6 -6
  87. package/dist/extensions/web-agent-onboarding.ts +222 -222
  88. package/dist/modes/interactive/components/startup-box.d.ts +38 -0
  89. package/dist/modes/interactive/components/startup-box.js +90 -0
  90. package/dist/modes/interactive/interactive-mode.d.ts +3 -0
  91. package/dist/modes/interactive/interactive-mode.js +71 -122
  92. package/dist/package-manager-cli.js +71 -71
  93. package/dist/rpc-entry.js +0 -0
  94. package/dist/skills/agent-browser/SKILL.md +1 -0
  95. package/dist/skills/batch-grill-me/SKILL.md +1 -0
  96. package/dist/skills/brandkit/SKILL.md +1 -0
  97. package/dist/skills/design-references/SKILL.md +1 -0
  98. package/dist/skills/design-taste-frontend/SKILL.md +1 -0
  99. package/dist/skills/design-taste-frontend-v1/SKILL.md +1 -0
  100. package/dist/skills/full-output-enforcement/SKILL.md +1 -0
  101. package/dist/skills/gpt-taste/SKILL.md +1 -0
  102. package/dist/skills/grill-me/SKILL.md +1 -0
  103. package/dist/skills/handoff/SKILL.md +1 -0
  104. package/dist/skills/handoff-text/SKILL.md +1 -0
  105. package/dist/skills/high-end-visual-design/SKILL.md +1 -0
  106. package/dist/skills/image-to-code/SKILL.md +1 -0
  107. package/dist/skills/imagegen-frontend-mobile/SKILL.md +1 -0
  108. package/dist/skills/imagegen-frontend-web/SKILL.md +1 -0
  109. package/dist/skills/implanger/SKILL.md +1 -0
  110. package/dist/skills/improve-codebase/REFERENCE.md +78 -78
  111. package/dist/skills/improve-codebase/SKILL.md +1 -0
  112. package/dist/skills/industrial-brutalist-ui/SKILL.md +1 -0
  113. package/dist/skills/minimalist-ui/SKILL.md +1 -0
  114. package/dist/skills/pi-subagents/SKILL.md +1 -0
  115. package/dist/skills/planger/SKILL.md +1 -0
  116. package/dist/skills/ponytail/SKILL.md +1 -0
  117. package/dist/skills/ponytail-audit/SKILL.md +1 -0
  118. package/dist/skills/ponytail-debt/SKILL.md +1 -0
  119. package/dist/skills/ponytail-gain/SKILL.md +1 -0
  120. package/dist/skills/ponytail-help/SKILL.md +1 -0
  121. package/dist/skills/ponytail-review/SKILL.md +1 -0
  122. package/dist/skills/redesign-existing-projects/SKILL.md +1 -0
  123. package/dist/skills/selesai-handoff/SKILL.md +1 -0
  124. package/dist/skills/stitch-design-taste/SKILL.md +1 -0
  125. package/dist/skills/unlazy/SKILL.md +1 -0
  126. package/dist/skills/web-design-guidelines/SKILL.md +1 -0
  127. package/dist/skills/workflow/SKILL.md +1 -0
  128. package/docs/compaction.md +396 -396
  129. package/docs/containerization.md +111 -111
  130. package/docs/development.md +71 -71
  131. package/docs/docs.json +164 -164
  132. package/docs/environment-variables.md +86 -86
  133. package/docs/index.md +83 -83
  134. package/docs/json.md +82 -82
  135. package/docs/models.md +502 -502
  136. package/docs/packages.md +227 -227
  137. package/docs/plans/subagent-delegation/phase-0-correctness.md +264 -264
  138. package/docs/plans/subagent-delegation/phase-1-behavioral-contract.md +485 -485
  139. package/docs/plans/subagent-delegation/phase-2-context-controls.md +281 -281
  140. package/docs/plans/subagent-delegation/phase-3-advisory-routing.md +361 -361
  141. package/docs/plans/subagent-delegation/phase-4-optional-enforcement.md +380 -380
  142. package/docs/prompt-templates.md +95 -95
  143. package/docs/providers.md +293 -293
  144. package/docs/security.md +59 -59
  145. package/docs/session-format.md +414 -414
  146. package/docs/sessions.md +145 -145
  147. package/docs/shared-host-extensions.md +109 -109
  148. package/docs/shell-aliases.md +13 -13
  149. package/docs/skills.md +231 -231
  150. package/docs/terminal-setup.md +142 -142
  151. package/docs/termux.md +127 -127
  152. package/docs/themes.md +295 -295
  153. package/docs/tmux.md +63 -63
  154. package/docs/tui.md +927 -927
  155. package/docs/windows.md +17 -17
  156. package/examples/README.md +25 -25
  157. package/examples/extensions/README.md +211 -211
  158. package/examples/extensions/auto-commit-on-exit.ts +49 -49
  159. package/examples/extensions/bash-spawn-hook.ts +30 -30
  160. package/examples/extensions/bookmark.ts +50 -50
  161. package/examples/extensions/border-status-editor.ts +150 -150
  162. package/examples/extensions/built-in-tool-renderer.ts +249 -249
  163. package/examples/extensions/claude-rules.ts +86 -86
  164. package/examples/extensions/commands.ts +72 -72
  165. package/examples/extensions/confirm-destructive.ts +59 -59
  166. package/examples/extensions/custom-compaction.ts +130 -130
  167. package/examples/extensions/custom-footer.ts +64 -64
  168. package/examples/extensions/custom-header.ts +73 -73
  169. package/examples/extensions/custom-provider-anthropic/index.ts +610 -610
  170. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
  171. package/examples/extensions/custom-provider-anthropic/package.json +19 -19
  172. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -404
  173. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
  174. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -82
  175. package/examples/extensions/dirty-repo-guard.ts +56 -56
  176. package/examples/extensions/doom-overlay/README.md +46 -46
  177. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
  178. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  179. package/examples/extensions/doom-overlay/doom/build.sh +152 -152
  180. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
  181. package/examples/extensions/doom-overlay/doom-component.ts +132 -132
  182. package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
  183. package/examples/extensions/doom-overlay/doom-keys.ts +104 -104
  184. package/examples/extensions/doom-overlay/index.ts +74 -74
  185. package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
  186. package/examples/extensions/dynamic-resources/SKILL.md +8 -8
  187. package/examples/extensions/dynamic-resources/dynamic.json +79 -79
  188. package/examples/extensions/dynamic-resources/dynamic.md +5 -5
  189. package/examples/extensions/dynamic-resources/index.ts +15 -15
  190. package/examples/extensions/dynamic-tools.ts +74 -74
  191. package/examples/extensions/event-bus.ts +43 -43
  192. package/examples/extensions/file-trigger.ts +41 -41
  193. package/examples/extensions/git-checkpoint.ts +53 -53
  194. package/examples/extensions/git-merge-and-resolve.ts +115 -115
  195. package/examples/extensions/github-issue-autocomplete.ts +185 -185
  196. package/examples/extensions/gondolin/index.ts +531 -531
  197. package/examples/extensions/gondolin/package-lock.json +185 -185
  198. package/examples/extensions/gondolin/package.json +19 -19
  199. package/examples/extensions/handoff.ts +199 -199
  200. package/examples/extensions/hello.ts +26 -26
  201. package/examples/extensions/hidden-thinking-label.ts +53 -53
  202. package/examples/extensions/inline-bash.ts +94 -94
  203. package/examples/extensions/input-transform-streaming.ts +39 -39
  204. package/examples/extensions/input-transform.ts +43 -43
  205. package/examples/extensions/interactive-shell.ts +196 -196
  206. package/examples/extensions/mac-system-theme.ts +47 -47
  207. package/examples/extensions/message-renderer.ts +59 -59
  208. package/examples/extensions/minimal-mode.ts +426 -426
  209. package/examples/extensions/modal-editor.ts +85 -85
  210. package/examples/extensions/model-status.ts +31 -31
  211. package/examples/extensions/notify.ts +55 -55
  212. package/examples/extensions/overlay-qa-tests.ts +1450 -1450
  213. package/examples/extensions/overlay-test.ts +153 -153
  214. package/examples/extensions/permission-gate.ts +34 -34
  215. package/examples/extensions/pirate.ts +47 -47
  216. package/examples/extensions/plan-mode/README.md +66 -66
  217. package/examples/extensions/plan-mode/index.ts +390 -390
  218. package/examples/extensions/plan-mode/utils.ts +168 -168
  219. package/examples/extensions/preset.ts +436 -436
  220. package/examples/extensions/project-trust.ts +64 -64
  221. package/examples/extensions/prompt-customizer.ts +97 -97
  222. package/examples/extensions/protected-paths.ts +30 -30
  223. package/examples/extensions/provider-payload.ts +18 -18
  224. package/examples/extensions/qna.ts +122 -122
  225. package/examples/extensions/question.ts +285 -285
  226. package/examples/extensions/questionnaire.ts +448 -448
  227. package/examples/extensions/rainbow-editor.ts +88 -88
  228. package/examples/extensions/reload-runtime.ts +37 -37
  229. package/examples/extensions/rpc-demo.ts +118 -118
  230. package/examples/extensions/sandbox/index.ts +321 -321
  231. package/examples/extensions/sandbox/package-lock.json +92 -92
  232. package/examples/extensions/sandbox/package.json +19 -19
  233. package/examples/extensions/send-user-message.ts +97 -97
  234. package/examples/extensions/session-name.ts +27 -27
  235. package/examples/extensions/shutdown-command.ts +63 -63
  236. package/examples/extensions/snake.ts +343 -343
  237. package/examples/extensions/space-invaders.ts +560 -560
  238. package/examples/extensions/ssh.ts +220 -220
  239. package/examples/extensions/status-line.ts +32 -32
  240. package/examples/extensions/structured-output.ts +65 -65
  241. package/examples/extensions/subagent/README.md +175 -175
  242. package/examples/extensions/subagent/agents/planner.md +37 -37
  243. package/examples/extensions/subagent/agents/reviewer.md +35 -35
  244. package/examples/extensions/subagent/agents/scout.md +50 -50
  245. package/examples/extensions/subagent/agents/worker.md +24 -24
  246. package/examples/extensions/subagent/agents.ts +126 -126
  247. package/examples/extensions/subagent/index.ts +1015 -1015
  248. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
  249. package/examples/extensions/subagent/prompts/implement.md +10 -10
  250. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
  251. package/examples/extensions/summarize.ts +209 -209
  252. package/examples/extensions/system-prompt-header.ts +17 -17
  253. package/examples/extensions/tic-tac-toe.ts +1008 -1008
  254. package/examples/extensions/timed-confirm.ts +70 -70
  255. package/examples/extensions/titlebar-spinner.ts +58 -58
  256. package/examples/extensions/todo.ts +297 -297
  257. package/examples/extensions/tool-override.ts +144 -144
  258. package/examples/extensions/tools.ts +146 -146
  259. package/examples/extensions/trigger-compact.ts +50 -50
  260. package/examples/extensions/truncated-tool.ts +195 -195
  261. package/examples/extensions/widget-placement.ts +9 -9
  262. package/examples/extensions/with-deps/index.ts +32 -32
  263. package/examples/extensions/with-deps/package-lock.json +31 -31
  264. package/examples/extensions/with-deps/package.json +22 -22
  265. package/examples/extensions/working-indicator.ts +123 -123
  266. package/examples/extensions/working-message-test.ts +25 -25
  267. package/examples/rpc-extension-ui.ts +632 -632
  268. package/examples/sdk/01-minimal.ts +26 -26
  269. package/examples/sdk/02-custom-model.ts +53 -53
  270. package/examples/sdk/03-custom-prompt.ts +75 -75
  271. package/examples/sdk/04-skills.ts +55 -55
  272. package/examples/sdk/05-tools.ts +48 -48
  273. package/examples/sdk/06-extensions.ts +99 -99
  274. package/examples/sdk/07-context-files.ts +47 -47
  275. package/examples/sdk/08-prompt-templates.ts +51 -51
  276. package/examples/sdk/09-api-keys-and-oauth.ts +52 -52
  277. package/examples/sdk/10-settings.ts +53 -53
  278. package/examples/sdk/11-sessions.ts +52 -52
  279. package/examples/sdk/12-full-control.ts +79 -79
  280. package/examples/sdk/13-session-runtime.ts +67 -67
  281. package/examples/sdk/README.md +144 -144
  282. package/package.json +1 -1
  283. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +0 -3
  284. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +0 -2
  285. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +0 -17
  286. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +0 -57
  287. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +0 -16
  288. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +0 -15
  289. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +0 -18
  290. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +0 -9
  291. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +0 -10
  292. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +0 -10
  293. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +0 -20
  294. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +0 -3
  295. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +0 -96
  296. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +0 -119
  297. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +0 -85
  298. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +0 -620
  299. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +0 -5
  300. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +0 -56
  301. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +0 -32
  302. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +0 -49
  303. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +0 -93
  304. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +0 -128
  305. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +0 -7
  306. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +0 -38
  307. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +0 -3
  308. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +0 -15
  309. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +0 -9
  310. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +0 -29
  311. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +0 -2
  312. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +0 -22
  313. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +0 -37
  314. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +0 -34
  315. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +0 -12
  316. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +0 -23
  317. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +0 -171
  318. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +0 -1261
  319. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +0 -20
  320. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +0 -54
  321. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +0 -22
  322. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +0 -13
  323. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +0 -358
  324. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +0 -77
  325. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +0 -512
  326. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +0 -43
  327. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +0 -121
  328. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +0 -82
  329. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +0 -17
  330. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +0 -7
  331. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +0 -210
  332. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +0 -15
  333. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +0 -54
  334. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +0 -4
  335. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +0 -55
  336. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +0 -2
  337. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +0 -5
  338. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +0 -30
  339. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +0 -206
  340. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +0 -15
  341. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +0 -106
  342. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +0 -19
  343. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +0 -356
  344. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +0 -297
  345. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +0 -60
  346. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +0 -15
  347. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +0 -18
  348. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +0 -28
  349. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +0 -3
  350. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +0 -10
  351. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +0 -68
  352. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +0 -106
  353. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +0 -51
  354. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +0 -6
  355. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +0 -35
  356. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +0 -37
  357. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +0 -40
  358. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +0 -37
  359. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +0 -52
  360. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +0 -10
  361. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +0 -35
  362. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +0 -24
  363. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  364. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +0 -70
  365. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +0 -26
  366. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +0 -36
  367. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +0 -19
  368. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +0 -3
  369. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +0 -61
  370. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +0 -23
  371. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +0 -3
  372. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +0 -10
  373. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +0 -42
  374. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +0 -35
  375. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +0 -12
  376. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +0 -33
  377. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +0 -9
  378. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +0 -34
  379. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +0 -22
  380. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  381. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  382. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  383. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  384. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +0 -102
  385. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  386. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  387. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +0 -19
  388. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +0 -20
  389. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  390. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +0 -12
  391. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  392. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  393. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +0 -22
  394. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +0 -23
  395. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  396. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +0 -25
  397. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +0 -32
  398. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +0 -34
  399. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  400. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +0 -52
  401. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +0 -54
  402. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +0 -33
  403. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  404. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  405. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +0 -95
  406. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +0 -77
  407. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  408. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  409. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +0 -28
  410. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  411. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  412. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  413. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +0 -94
  414. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +0 -23
  415. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  416. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +0 -14
  417. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  418. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +0 -394
  419. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +0 -12
  420. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +0 -29
  421. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +0 -120
  422. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +0 -28
  423. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +0 -17
  424. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +0 -246
  425. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +0 -20
  426. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +0 -457
  427. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +0 -8
  428. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +0 -3
  429. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +0 -2
  430. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +0 -22
  431. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +0 -18
  432. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +0 -11
  433. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +0 -11
  434. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +0 -4
  435. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +0 -4
  436. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +0 -5
  437. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +0 -8
  438. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +0 -5
  439. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +0 -26
  440. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +0 -7
  441. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +0 -10
  442. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +0 -18
  443. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +0 -30
  444. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +0 -2
  445. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +0 -16
  446. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +0 -3
  447. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +0 -3
  448. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +0 -9
  449. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +0 -31
  450. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +0 -21
  451. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +0 -2
  452. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +0 -31
  453. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +0 -5
  454. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +0 -12
  455. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +0 -3
  456. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +0 -15
  457. 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.