@selesai/code 0.10.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/cli/credential-print.js +4 -4
  3. package/dist/cli/startup-ui.js +2 -1
  4. package/dist/cli.js +0 -0
  5. package/dist/core/agent-session.d.ts +12 -1
  6. package/dist/core/agent-session.js +77 -9
  7. package/dist/core/compaction/branch-summarization.js +34 -33
  8. package/dist/core/compaction/compaction.d.ts +5 -0
  9. package/dist/core/compaction/compaction.js +100 -85
  10. package/dist/core/compaction/utils.js +2 -2
  11. package/dist/core/export-html/template.css +1066 -1066
  12. package/dist/core/export-html/template.html +55 -55
  13. package/dist/core/export-html/template.js +1864 -1864
  14. package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
  15. package/dist/core/export-html/vendor/marked.min.js +78 -78
  16. package/dist/core/extensions/index.d.ts +1 -1
  17. package/dist/core/extensions/runner.d.ts +5 -0
  18. package/dist/core/extensions/runner.js +48 -1
  19. package/dist/core/extensions/types.d.ts +18 -1
  20. package/dist/core/llama/client.d.ts +6 -0
  21. package/dist/core/llama/client.js +7 -0
  22. package/dist/core/llama/provider.d.ts +3 -1
  23. package/dist/core/llama/provider.js +28 -6
  24. package/dist/core/messages.js +7 -7
  25. package/dist/core/session-manager.js +4 -2
  26. package/dist/core/settings-manager.d.ts +8 -1
  27. package/dist/core/settings-manager.js +17 -0
  28. package/dist/defaults/models.json +32 -9
  29. package/dist/defaults/settings.json +0 -3
  30. package/dist/extensions/auto-session-name.test.ts +157 -0
  31. package/dist/extensions/auto-session-name.ts +96 -0
  32. package/dist/extensions/context-compaction-reminder.test.ts +82 -82
  33. package/dist/extensions/context-compaction-reminder.ts +28 -28
  34. package/dist/extensions/cost-reconcile.test.ts +76 -0
  35. package/dist/extensions/cost-reconcile.ts +278 -0
  36. package/dist/extensions/enable-readonly-tools.test.ts +11 -0
  37. package/dist/extensions/enable-readonly-tools.ts +7 -3
  38. package/dist/extensions/package.json +3 -0
  39. package/dist/extensions/pi-intercom/LICENSE +21 -21
  40. package/dist/extensions/pi-intercom/broker/client.test.ts +83 -83
  41. package/dist/extensions/pi-intercom/broker/framing.test.ts +114 -114
  42. package/dist/extensions/pi-intercom/broker/paths.ts +134 -134
  43. package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +34 -34
  44. package/dist/extensions/pi-intercom/broker/runtime-claim.ts +21 -21
  45. package/dist/extensions/pi-intercom/cwd.test.ts +40 -40
  46. package/dist/extensions/pi-intercom/cwd.ts +31 -31
  47. package/dist/extensions/pi-intercom/format-context.test.ts +31 -31
  48. package/dist/extensions/pi-intercom/format-context.ts +32 -32
  49. package/dist/extensions/pi-intercom/test/overlay-width.test.ts +66 -66
  50. package/dist/extensions/pi-intercom/ui/compose.ts +143 -143
  51. package/dist/extensions/pi-intercom/ui/session-list.ts +166 -166
  52. package/dist/extensions/pi-rewind-hook/README.md +245 -245
  53. package/dist/extensions/pi-rewind-hook/index.ts +1445 -1445
  54. package/dist/extensions/pi-rewind-hook/package.json +29 -29
  55. package/dist/extensions/pi-subagents/install.mjs +0 -0
  56. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +3 -0
  57. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +2 -0
  58. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +17 -0
  59. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +57 -0
  60. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +16 -0
  61. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +15 -0
  62. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +18 -0
  63. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +9 -0
  64. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +10 -0
  65. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +10 -0
  66. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +20 -0
  67. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +3 -0
  68. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +96 -0
  69. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +119 -0
  70. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +85 -0
  71. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +620 -0
  72. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +5 -0
  73. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +56 -0
  74. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +32 -0
  75. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +49 -0
  76. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +93 -0
  77. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +128 -0
  78. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +7 -0
  79. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +38 -0
  80. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +3 -0
  81. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +15 -0
  82. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +9 -0
  83. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +29 -0
  84. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +2 -0
  85. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +22 -0
  86. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +37 -0
  87. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +34 -0
  88. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +12 -0
  89. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +23 -0
  90. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +171 -0
  91. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +1261 -0
  92. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +20 -0
  93. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +54 -0
  94. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +22 -0
  95. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +13 -0
  96. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +358 -0
  97. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +77 -0
  98. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +512 -0
  99. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +43 -0
  100. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +121 -0
  101. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +82 -0
  102. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +17 -0
  103. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +7 -0
  104. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +210 -0
  105. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +15 -0
  106. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +54 -0
  107. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +4 -0
  108. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +55 -0
  109. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +2 -0
  110. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +5 -0
  111. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +30 -0
  112. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +206 -0
  113. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +15 -0
  114. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +106 -0
  115. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +19 -0
  116. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +356 -0
  117. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +297 -0
  118. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +60 -0
  119. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +15 -0
  120. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +18 -0
  121. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +28 -0
  122. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +3 -0
  123. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +10 -0
  124. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +68 -0
  125. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +106 -0
  126. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +51 -0
  127. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +6 -0
  128. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +35 -0
  129. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +37 -0
  130. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +40 -0
  131. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +37 -0
  132. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +52 -0
  133. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +10 -0
  134. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +35 -0
  135. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +24 -0
  136. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  137. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +70 -0
  138. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +26 -0
  139. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +36 -0
  140. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +19 -0
  141. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +3 -0
  142. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +61 -0
  143. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +23 -0
  144. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +3 -0
  145. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +10 -0
  146. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +42 -0
  147. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +35 -0
  148. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +12 -0
  149. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +33 -0
  150. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +9 -0
  151. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +34 -0
  152. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +22 -0
  153. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +34 -0
  154. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  155. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  156. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  157. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +102 -0
  158. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  159. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  160. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  161. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +20 -0
  162. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  163. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +12 -0
  164. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  165. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  166. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +22 -0
  167. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +23 -0
  168. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +26 -0
  169. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  170. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +32 -0
  171. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +34 -0
  172. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  173. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  174. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +54 -0
  175. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
  176. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  177. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  178. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +95 -0
  179. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +77 -0
  180. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  181. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  182. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +28 -0
  183. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  184. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  185. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +63 -0
  186. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +94 -0
  187. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  188. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  189. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +14 -0
  190. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  191. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +394 -0
  192. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +12 -0
  193. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
  194. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +120 -0
  195. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +28 -0
  196. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +17 -0
  197. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +246 -0
  198. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +20 -0
  199. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +457 -0
  200. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +8 -0
  201. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +3 -0
  202. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +2 -0
  203. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +22 -0
  204. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +18 -0
  205. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +11 -0
  206. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +11 -0
  207. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +4 -0
  208. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +4 -0
  209. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +5 -0
  210. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +8 -0
  211. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +5 -0
  212. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +26 -0
  213. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +7 -0
  214. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +10 -0
  215. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +18 -0
  216. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +30 -0
  217. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +2 -0
  218. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +16 -0
  219. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +3 -0
  220. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +3 -0
  221. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +9 -0
  222. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +31 -0
  223. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +21 -0
  224. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +2 -0
  225. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +31 -0
  226. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +5 -0
  227. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +12 -0
  228. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +3 -0
  229. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +15 -0
  230. package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +3 -0
  231. package/dist/extensions/pi-tool-display/CHANGELOG.md +329 -0
  232. package/dist/extensions/pi-tool-display/LICENSE +21 -0
  233. package/dist/extensions/pi-tool-display/README.md +417 -0
  234. package/dist/extensions/pi-tool-display/config/config.example.json +40 -0
  235. package/dist/extensions/pi-tool-display/index.ts +3 -0
  236. package/dist/extensions/pi-tool-display/package-lock.json +2555 -0
  237. package/dist/extensions/pi-tool-display/package.json +86 -0
  238. package/dist/extensions/pi-tool-display/src/agent-dir.ts +35 -0
  239. package/dist/extensions/pi-tool-display/src/ansi-utils.ts +116 -0
  240. package/dist/extensions/pi-tool-display/src/bash-display.ts +213 -0
  241. package/dist/extensions/pi-tool-display/src/capabilities.ts +88 -0
  242. package/dist/extensions/pi-tool-display/src/config-modal.ts +541 -0
  243. package/dist/extensions/pi-tool-display/src/config-store.ts +304 -0
  244. package/dist/extensions/pi-tool-display/src/debug-logger.ts +150 -0
  245. package/dist/extensions/pi-tool-display/src/diff-presentation.ts +72 -0
  246. package/dist/extensions/pi-tool-display/src/diff-renderer.ts +2517 -0
  247. package/dist/extensions/pi-tool-display/src/disposable.ts +34 -0
  248. package/dist/extensions/pi-tool-display/src/extension-lifecycle.ts +14 -0
  249. package/dist/extensions/pi-tool-display/src/index.ts +109 -0
  250. package/dist/extensions/pi-tool-display/src/line-width-safety.ts +93 -0
  251. package/dist/extensions/pi-tool-display/src/modal-icons.ts +57 -0
  252. package/dist/extensions/pi-tool-display/src/pending-diff-preview.ts +370 -0
  253. package/dist/extensions/pi-tool-display/src/presets.ts +117 -0
  254. package/dist/extensions/pi-tool-display/src/render-utils.ts +186 -0
  255. package/dist/extensions/pi-tool-display/src/settings-inspector-modal.ts +475 -0
  256. package/dist/extensions/pi-tool-display/src/thinking-label.ts +343 -0
  257. package/dist/extensions/pi-tool-display/src/tool-call-box.ts +181 -0
  258. package/dist/extensions/pi-tool-display/src/tool-metadata.ts +139 -0
  259. package/dist/extensions/pi-tool-display/src/tool-overrides.ts +2168 -0
  260. package/dist/extensions/pi-tool-display/src/types.ts +109 -0
  261. package/dist/extensions/pi-tool-display/src/user-message-box-markdown.ts +64 -0
  262. package/dist/extensions/pi-tool-display/src/user-message-box-native.ts +66 -0
  263. package/dist/extensions/pi-tool-display/src/user-message-box-patch.ts +72 -0
  264. package/dist/extensions/pi-tool-display/src/user-message-box-renderer.ts +419 -0
  265. package/dist/extensions/pi-tool-display/src/user-message-box-utils.ts +106 -0
  266. package/dist/extensions/pi-tool-display/src/write-display-utils.ts +31 -0
  267. package/dist/extensions/pi-tool-display/src/zellij-modal.ts +1027 -0
  268. package/dist/extensions/pi-tool-display/tests/active-backlog-red.test.ts +65 -0
  269. package/dist/extensions/pi-tool-display/tests/ansi-utils.test.ts +345 -0
  270. package/dist/extensions/pi-tool-display/tests/bash-display.test.ts +442 -0
  271. package/dist/extensions/pi-tool-display/tests/capabilities-edge.test.ts +360 -0
  272. package/dist/extensions/pi-tool-display/tests/capabilities.test.ts +54 -0
  273. package/dist/extensions/pi-tool-display/tests/config-modal.test.ts +360 -0
  274. package/dist/extensions/pi-tool-display/tests/config-store.test.ts +87 -0
  275. package/dist/extensions/pi-tool-display/tests/custom-tool-overrides.test.ts +415 -0
  276. package/dist/extensions/pi-tool-display/tests/debug-logger-edge.test.ts +630 -0
  277. package/dist/extensions/pi-tool-display/tests/debug-logger.test.ts +62 -0
  278. package/dist/extensions/pi-tool-display/tests/diff-renderer-ansi.test.ts +55 -0
  279. package/dist/extensions/pi-tool-display/tests/diff-renderer-edge.test.ts +886 -0
  280. package/dist/extensions/pi-tool-display/tests/diff-renderer-numbering.test.ts +135 -0
  281. package/dist/extensions/pi-tool-display/tests/diff-renderer-width.test.ts +454 -0
  282. package/dist/extensions/pi-tool-display/tests/diff-renderer-wrap.test.ts +169 -0
  283. package/dist/extensions/pi-tool-display/tests/index-integration.test.ts +354 -0
  284. package/dist/extensions/pi-tool-display/tests/pending-diff-preview.test.ts +79 -0
  285. package/dist/extensions/pi-tool-display/tests/presets-edge.test.ts +229 -0
  286. package/dist/extensions/pi-tool-display/tests/presets.test.ts +26 -0
  287. package/dist/extensions/pi-tool-display/tests/reload-behavior.test.ts +1241 -0
  288. package/dist/extensions/pi-tool-display/tests/render-utils.test.ts +710 -0
  289. package/dist/extensions/pi-tool-display/tests/settings-inspector.test.ts +450 -0
  290. package/dist/extensions/pi-tool-display/tests/thinking-label-edge.test.ts +904 -0
  291. package/dist/extensions/pi-tool-display/tests/thinking-label.test.ts +72 -0
  292. package/dist/extensions/pi-tool-display/tests/tool-call-box.test.ts +105 -0
  293. package/dist/extensions/pi-tool-display/tests/tool-overrides-config.test.ts +613 -0
  294. package/dist/extensions/pi-tool-display/tests/tool-overrides-mcp.test.ts +499 -0
  295. package/dist/extensions/pi-tool-display/tests/tool-overrides-registration.test.ts +315 -0
  296. package/dist/extensions/pi-tool-display/tests/tool-overrides-write-meta.test.ts +68 -0
  297. package/dist/extensions/pi-tool-display/tests/tool-ui-utils.test.ts +413 -0
  298. package/dist/extensions/pi-tool-display/tests/user-message-box-performance-red.test.ts +176 -0
  299. package/dist/extensions/pi-tool-display/tests/user-message-box.test.ts +908 -0
  300. package/dist/extensions/pi-tool-display/tests/zellij-modal.test.ts +848 -0
  301. package/dist/extensions/pi-tool-display/tool-display-api-consumer.d.ts +30 -0
  302. package/dist/extensions/pi-tool-display/tool-display-api-consumer.js +40 -0
  303. package/dist/extensions/pi-web-agent/package.json +31 -31
  304. package/dist/extensions/pi-web-agent/src/backends/config.ts +205 -205
  305. package/dist/extensions/pi-web-agent/src/backends/doctor.ts +136 -136
  306. package/dist/extensions/pi-web-agent/src/backends/factory.ts +152 -152
  307. package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +25 -25
  308. package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +28 -28
  309. package/dist/extensions/pi-web-agent/src/changelog-notice.ts +136 -136
  310. package/dist/extensions/pi-web-agent/src/commands/web-agent-config.ts +946 -946
  311. package/dist/extensions/pi-web-agent/src/extension.ts +126 -126
  312. package/dist/extensions/pi-web-agent/src/extract/readability.ts +118 -118
  313. package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +199 -199
  314. package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +100 -100
  315. package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +117 -117
  316. package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +67 -67
  317. package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +60 -60
  318. package/dist/extensions/pi-web-agent/src/orchestration/candidate-selector.ts +50 -50
  319. package/dist/extensions/pi-web-agent/src/orchestration/direct-url.ts +52 -52
  320. package/dist/extensions/pi-web-agent/src/orchestration/evidence-quality.ts +105 -105
  321. package/dist/extensions/pi-web-agent/src/orchestration/evidence-ranker.ts +45 -45
  322. package/dist/extensions/pi-web-agent/src/orchestration/index.ts +28 -28
  323. package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +47 -47
  324. package/dist/extensions/pi-web-agent/src/orchestration/research-orchestrator.ts +376 -376
  325. package/dist/extensions/pi-web-agent/src/orchestration/research-types.ts +64 -64
  326. package/dist/extensions/pi-web-agent/src/orchestration/research-worker.ts +181 -181
  327. package/dist/extensions/pi-web-agent/src/orchestration/source-profile.ts +101 -101
  328. package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +81 -81
  329. package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +210 -210
  330. package/dist/extensions/pi-web-agent/src/presentation/config.ts +75 -75
  331. package/dist/extensions/pi-web-agent/src/presentation/explore-presentation.ts +61 -61
  332. package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +54 -54
  333. package/dist/extensions/pi-web-agent/src/presentation/search-presentation.ts +41 -41
  334. package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +20 -20
  335. package/dist/extensions/pi-web-agent/src/presentation/types.ts +63 -63
  336. package/dist/extensions/pi-web-agent/src/search/brave.ts +114 -114
  337. package/dist/extensions/pi-web-agent/src/search/duckduckgo.ts +72 -72
  338. package/dist/extensions/pi-web-agent/src/search/searxng.ts +96 -96
  339. package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +71 -71
  340. package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +31 -31
  341. package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +31 -31
  342. package/dist/extensions/pi-web-agent/src/tools/web-search.ts +157 -157
  343. package/dist/extensions/pi-web-agent/src/types.ts +88 -88
  344. package/dist/extensions/pi-zentui/extensions/zentui/format.ts +46 -1
  345. package/dist/extensions/pi-zentui/extensions/zentui/index.ts +10 -0
  346. package/dist/extensions/pi-zentui/extensions/zentui/user-message-styles.ts +1 -1
  347. package/dist/extensions/pi-zentui/test/extension-compliance.test.ts +3 -3
  348. package/dist/extensions/pi-zentui/test/format.test.ts +50 -2
  349. package/dist/extensions/ponytail/package.json +8 -8
  350. package/dist/extensions/question/constants.ts +30 -30
  351. package/dist/extensions/question/helpers.ts +58 -58
  352. package/dist/extensions/question/navigation.ts +14 -14
  353. package/dist/extensions/question/package.json +19 -19
  354. package/dist/extensions/question/selection-mode.ts +46 -46
  355. package/dist/extensions/question/shortcuts.ts +44 -44
  356. package/dist/extensions/question/types.ts +132 -132
  357. package/dist/extensions/test-resolve-hook-impl.mjs +6 -6
  358. package/dist/extensions/test-resolve-hook.mjs +6 -6
  359. package/dist/extensions/tokenin-onboarding.ts +112 -2
  360. package/dist/extensions/web-agent-onboarding.ts +222 -222
  361. package/dist/index.d.ts +2 -1
  362. package/dist/index.js +1 -0
  363. package/dist/main.js +2 -0
  364. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  365. package/dist/modes/interactive/components/settings-selector.js +10 -0
  366. package/dist/modes/interactive/interactive-mode.d.ts +4 -0
  367. package/dist/modes/interactive/interactive-mode.js +72 -42
  368. package/dist/modes/rpc/rpc-client.d.ts +7 -0
  369. package/dist/modes/rpc/rpc-client.js +7 -0
  370. package/dist/modes/rpc/rpc-mode.js +3 -0
  371. package/dist/modes/rpc/rpc-types.d.ts +12 -0
  372. package/dist/package-manager-cli.js +71 -71
  373. package/dist/rpc-entry.js +0 -0
  374. package/dist/skills/improve-codebase/REFERENCE.md +78 -78
  375. package/dist/utils/shell.js +6 -4
  376. package/docs/compaction.md +396 -396
  377. package/docs/containerization.md +111 -111
  378. package/docs/development.md +71 -71
  379. package/docs/docs.json +164 -164
  380. package/docs/environment-variables.md +86 -86
  381. package/docs/index.md +83 -83
  382. package/docs/json.md +82 -82
  383. package/docs/models.md +502 -502
  384. package/docs/packages.md +227 -227
  385. package/docs/plans/subagent-delegation/phase-0-correctness.md +264 -264
  386. package/docs/plans/subagent-delegation/phase-1-behavioral-contract.md +485 -485
  387. package/docs/plans/subagent-delegation/phase-2-context-controls.md +281 -281
  388. package/docs/plans/subagent-delegation/phase-3-advisory-routing.md +361 -361
  389. package/docs/plans/subagent-delegation/phase-4-optional-enforcement.md +380 -380
  390. package/docs/prompt-templates.md +95 -95
  391. package/docs/providers.md +293 -293
  392. package/docs/security.md +59 -59
  393. package/docs/session-format.md +414 -414
  394. package/docs/sessions.md +145 -145
  395. package/docs/settings.md +4 -0
  396. package/docs/shared-host-extensions.md +109 -109
  397. package/docs/shell-aliases.md +13 -13
  398. package/docs/skills.md +231 -231
  399. package/docs/terminal-setup.md +142 -142
  400. package/docs/termux.md +127 -127
  401. package/docs/themes.md +295 -295
  402. package/docs/tmux.md +63 -63
  403. package/docs/tui.md +927 -927
  404. package/docs/windows.md +17 -17
  405. package/examples/README.md +25 -25
  406. package/examples/extensions/README.md +211 -211
  407. package/examples/extensions/auto-commit-on-exit.ts +49 -49
  408. package/examples/extensions/bash-spawn-hook.ts +30 -30
  409. package/examples/extensions/bookmark.ts +50 -50
  410. package/examples/extensions/border-status-editor.ts +150 -150
  411. package/examples/extensions/built-in-tool-renderer.ts +249 -249
  412. package/examples/extensions/claude-rules.ts +86 -86
  413. package/examples/extensions/commands.ts +72 -72
  414. package/examples/extensions/confirm-destructive.ts +59 -59
  415. package/examples/extensions/custom-compaction.ts +130 -130
  416. package/examples/extensions/custom-footer.ts +64 -64
  417. package/examples/extensions/custom-header.ts +73 -73
  418. package/examples/extensions/custom-provider-anthropic/index.ts +610 -610
  419. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
  420. package/examples/extensions/custom-provider-anthropic/package.json +19 -19
  421. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -404
  422. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
  423. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -82
  424. package/examples/extensions/dirty-repo-guard.ts +56 -56
  425. package/examples/extensions/doom-overlay/README.md +46 -46
  426. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
  427. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  428. package/examples/extensions/doom-overlay/doom/build.sh +152 -152
  429. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
  430. package/examples/extensions/doom-overlay/doom-component.ts +132 -132
  431. package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
  432. package/examples/extensions/doom-overlay/doom-keys.ts +104 -104
  433. package/examples/extensions/doom-overlay/index.ts +74 -74
  434. package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
  435. package/examples/extensions/dynamic-resources/SKILL.md +8 -8
  436. package/examples/extensions/dynamic-resources/dynamic.json +79 -79
  437. package/examples/extensions/dynamic-resources/dynamic.md +5 -5
  438. package/examples/extensions/dynamic-resources/index.ts +15 -15
  439. package/examples/extensions/dynamic-tools.ts +74 -74
  440. package/examples/extensions/event-bus.ts +43 -43
  441. package/examples/extensions/file-trigger.ts +41 -41
  442. package/examples/extensions/git-checkpoint.ts +53 -53
  443. package/examples/extensions/git-merge-and-resolve.ts +115 -115
  444. package/examples/extensions/github-issue-autocomplete.ts +185 -185
  445. package/examples/extensions/gondolin/index.ts +531 -531
  446. package/examples/extensions/gondolin/package-lock.json +185 -185
  447. package/examples/extensions/gondolin/package.json +19 -19
  448. package/examples/extensions/handoff.ts +199 -199
  449. package/examples/extensions/hello.ts +26 -26
  450. package/examples/extensions/hidden-thinking-label.ts +53 -53
  451. package/examples/extensions/inline-bash.ts +94 -94
  452. package/examples/extensions/input-transform-streaming.ts +39 -39
  453. package/examples/extensions/input-transform.ts +43 -43
  454. package/examples/extensions/interactive-shell.ts +196 -196
  455. package/examples/extensions/mac-system-theme.ts +47 -47
  456. package/examples/extensions/message-renderer.ts +59 -59
  457. package/examples/extensions/minimal-mode.ts +426 -426
  458. package/examples/extensions/modal-editor.ts +85 -85
  459. package/examples/extensions/model-status.ts +31 -31
  460. package/examples/extensions/notify.ts +55 -55
  461. package/examples/extensions/overlay-qa-tests.ts +1450 -1450
  462. package/examples/extensions/overlay-test.ts +153 -153
  463. package/examples/extensions/permission-gate.ts +34 -34
  464. package/examples/extensions/pirate.ts +47 -47
  465. package/examples/extensions/plan-mode/README.md +66 -66
  466. package/examples/extensions/plan-mode/index.ts +390 -390
  467. package/examples/extensions/plan-mode/utils.ts +168 -168
  468. package/examples/extensions/preset.ts +436 -436
  469. package/examples/extensions/project-trust.ts +64 -64
  470. package/examples/extensions/prompt-customizer.ts +97 -97
  471. package/examples/extensions/protected-paths.ts +30 -30
  472. package/examples/extensions/provider-payload.ts +18 -18
  473. package/examples/extensions/qna.ts +122 -122
  474. package/examples/extensions/question.ts +285 -285
  475. package/examples/extensions/questionnaire.ts +448 -448
  476. package/examples/extensions/rainbow-editor.ts +88 -88
  477. package/examples/extensions/reload-runtime.ts +37 -37
  478. package/examples/extensions/rpc-demo.ts +118 -118
  479. package/examples/extensions/sandbox/index.ts +321 -321
  480. package/examples/extensions/sandbox/package-lock.json +92 -92
  481. package/examples/extensions/sandbox/package.json +19 -19
  482. package/examples/extensions/send-user-message.ts +97 -97
  483. package/examples/extensions/session-name.ts +27 -27
  484. package/examples/extensions/shutdown-command.ts +63 -63
  485. package/examples/extensions/snake.ts +343 -343
  486. package/examples/extensions/space-invaders.ts +560 -560
  487. package/examples/extensions/ssh.ts +220 -220
  488. package/examples/extensions/status-line.ts +32 -32
  489. package/examples/extensions/structured-output.ts +65 -65
  490. package/examples/extensions/subagent/README.md +175 -175
  491. package/examples/extensions/subagent/agents/planner.md +37 -37
  492. package/examples/extensions/subagent/agents/reviewer.md +35 -35
  493. package/examples/extensions/subagent/agents/scout.md +50 -50
  494. package/examples/extensions/subagent/agents/worker.md +24 -24
  495. package/examples/extensions/subagent/agents.ts +126 -126
  496. package/examples/extensions/subagent/index.ts +1015 -1015
  497. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
  498. package/examples/extensions/subagent/prompts/implement.md +10 -10
  499. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
  500. package/examples/extensions/summarize.ts +209 -209
  501. package/examples/extensions/system-prompt-header.ts +17 -17
  502. package/examples/extensions/tic-tac-toe.ts +1008 -1008
  503. package/examples/extensions/timed-confirm.ts +70 -70
  504. package/examples/extensions/titlebar-spinner.ts +58 -58
  505. package/examples/extensions/todo.ts +297 -297
  506. package/examples/extensions/tool-override.ts +144 -144
  507. package/examples/extensions/tools.ts +146 -146
  508. package/examples/extensions/trigger-compact.ts +50 -50
  509. package/examples/extensions/truncated-tool.ts +195 -195
  510. package/examples/extensions/widget-placement.ts +9 -9
  511. package/examples/extensions/with-deps/index.ts +32 -32
  512. package/examples/extensions/with-deps/package-lock.json +31 -31
  513. package/examples/extensions/with-deps/package.json +22 -22
  514. package/examples/extensions/working-indicator.ts +123 -123
  515. package/examples/extensions/working-message-test.ts +25 -25
  516. package/examples/rpc-extension-ui.ts +632 -632
  517. package/examples/sdk/01-minimal.ts +26 -26
  518. package/examples/sdk/02-custom-model.ts +53 -53
  519. package/examples/sdk/03-custom-prompt.ts +75 -75
  520. package/examples/sdk/04-skills.ts +55 -55
  521. package/examples/sdk/05-tools.ts +48 -48
  522. package/examples/sdk/06-extensions.ts +99 -99
  523. package/examples/sdk/07-context-files.ts +47 -47
  524. package/examples/sdk/08-prompt-templates.ts +51 -51
  525. package/examples/sdk/09-api-keys-and-oauth.ts +52 -52
  526. package/examples/sdk/10-settings.ts +53 -53
  527. package/examples/sdk/11-sessions.ts +52 -52
  528. package/examples/sdk/12-full-control.ts +79 -79
  529. package/examples/sdk/13-session-runtime.ts +67 -67
  530. package/examples/sdk/README.md +144 -144
  531. package/package.json +6 -6
@@ -0,0 +1,356 @@
1
+ import type { AgentMessage } from "@earendil-works/pi-agent-core";
2
+ import { type ImageContent, type Message, type TextContent, type Usage } from "@earendil-works/pi-ai";
3
+ import { type BashExecutionMessage, type CustomMessage } from "./messages.ts";
4
+ export declare const CURRENT_SESSION_VERSION = 3;
5
+ export interface SessionHeader {
6
+ type: "session";
7
+ version?: number;
8
+ id: string;
9
+ timestamp: string;
10
+ cwd: string;
11
+ parentSession?: string;
12
+ }
13
+ export interface NewSessionOptions {
14
+ id?: string;
15
+ parentSession?: string;
16
+ }
17
+ export interface SessionEntryBase {
18
+ type: string;
19
+ id: string;
20
+ parentId: string | null;
21
+ timestamp: string;
22
+ }
23
+ export interface SessionMessageEntry extends SessionEntryBase {
24
+ type: "message";
25
+ message: AgentMessage;
26
+ }
27
+ export interface ThinkingLevelChangeEntry extends SessionEntryBase {
28
+ type: "thinking_level_change";
29
+ thinkingLevel: string;
30
+ }
31
+ export interface ModelChangeEntry extends SessionEntryBase {
32
+ type: "model_change";
33
+ provider: string;
34
+ modelId: string;
35
+ }
36
+ export interface CompactionEntry<T = unknown> extends SessionEntryBase {
37
+ type: "compaction";
38
+ summary: string;
39
+ firstKeptEntryId: string;
40
+ tokensBefore: number;
41
+ /** Extension-specific data (e.g., ArtifactIndex, version markers for structured compaction) */
42
+ details?: T;
43
+ /** Usage from the LLM call(s) that generated this summary, if available */
44
+ usage?: Usage;
45
+ /** True if generated by an extension, undefined/false if pi-generated (backward compatible) */
46
+ fromHook?: boolean;
47
+ }
48
+ export interface BranchSummaryEntry<T = unknown> extends SessionEntryBase {
49
+ type: "branch_summary";
50
+ fromId: string;
51
+ summary: string;
52
+ /** Extension-specific data (not sent to LLM) */
53
+ details?: T;
54
+ /** Usage from the LLM call that generated this summary, if available */
55
+ usage?: Usage;
56
+ /** True if generated by an extension, false if pi-generated */
57
+ fromHook?: boolean;
58
+ }
59
+ /**
60
+ * Custom entry for extensions to store extension-specific data in the session.
61
+ * Use customType to identify your extension's entries.
62
+ *
63
+ * Purpose: Persist extension state across session reloads. On reload, extensions can
64
+ * scan entries for their customType and reconstruct internal state.
65
+ *
66
+ * Does NOT participate in LLM context (ignored by buildSessionContext).
67
+ * For injecting content into context, see CustomMessageEntry.
68
+ */
69
+ export interface CustomEntry<T = unknown> extends SessionEntryBase {
70
+ type: "custom";
71
+ customType: string;
72
+ data?: T;
73
+ }
74
+ /** Label entry for user-defined bookmarks/markers on entries. */
75
+ export interface LabelEntry extends SessionEntryBase {
76
+ type: "label";
77
+ targetId: string;
78
+ label: string | undefined;
79
+ }
80
+ /** Session metadata entry (e.g., user-defined display name). */
81
+ export interface SessionInfoEntry extends SessionEntryBase {
82
+ type: "session_info";
83
+ name?: string;
84
+ }
85
+ /**
86
+ * Custom message entry for extensions to inject messages into LLM context.
87
+ * Use customType to identify your extension's entries.
88
+ *
89
+ * Unlike CustomEntry, this DOES participate in LLM context.
90
+ * The content is converted to a user message in buildSessionContext().
91
+ * Use details for extension-specific metadata (not sent to LLM).
92
+ *
93
+ * display controls TUI rendering:
94
+ * - false: hidden entirely
95
+ * - true: rendered with distinct styling (different from user messages)
96
+ */
97
+ export interface CustomMessageEntry<T = unknown> extends SessionEntryBase {
98
+ type: "custom_message";
99
+ customType: string;
100
+ content: string | (TextContent | ImageContent)[];
101
+ details?: T;
102
+ display: boolean;
103
+ }
104
+ /** Session entry - has id/parentId for tree structure (returned by "read" methods in SessionManager) */
105
+ export type SessionEntry = SessionMessageEntry | ThinkingLevelChangeEntry | ModelChangeEntry | CompactionEntry | BranchSummaryEntry | CustomEntry | CustomMessageEntry | LabelEntry | SessionInfoEntry;
106
+ /** Raw file entry (includes header) */
107
+ export type FileEntry = SessionHeader | SessionEntry;
108
+ /** Tree node for getTree() - defensive copy of session structure */
109
+ export interface SessionTreeNode {
110
+ entry: SessionEntry;
111
+ children: SessionTreeNode[];
112
+ /** Resolved label for this entry, if any */
113
+ label?: string;
114
+ /** Timestamp of the latest label change for this entry, if any */
115
+ labelTimestamp?: string;
116
+ }
117
+ export interface SessionContext {
118
+ messages: AgentMessage[];
119
+ thinkingLevel: string;
120
+ model: {
121
+ provider: string;
122
+ modelId: string;
123
+ } | null;
124
+ }
125
+ export interface SessionInfo {
126
+ path: string;
127
+ id: string;
128
+ /** Working directory where the session was started. Empty string for old sessions. */
129
+ cwd: string;
130
+ /** User-defined display name from session_info entries. */
131
+ name?: string;
132
+ /** Path to the parent session (if this session was forked). */
133
+ parentSessionPath?: string;
134
+ created: Date;
135
+ modified: Date;
136
+ messageCount: number;
137
+ firstMessage: string;
138
+ allMessagesText: string;
139
+ }
140
+ export type ReadonlySessionManager = Pick<SessionManager, "getCwd" | "getSessionDir" | "getSessionId" | "getSessionFile" | "getLeafId" | "getLeafEntry" | "getEntry" | "getLabel" | "getBranch" | "buildContextEntries" | "getHeader" | "getEntries" | "getTree" | "getSessionName">;
141
+ export declare function assertValidSessionId(id: string): void;
142
+ /** Exported for testing */
143
+ export declare function migrateSessionEntries(entries: FileEntry[]): void;
144
+ /** Exported for compaction.test.ts */
145
+ export declare function parseSessionEntries(content: string): FileEntry[];
146
+ export declare function getLatestCompactionEntry(entries: SessionEntry[]): CompactionEntry | null;
147
+ /**
148
+ * Project one selected session entry into LLM/runtime messages.
149
+ * Plain custom entries are display/state entries and do not participate in context.
150
+ */
151
+ export declare function sessionEntryToContextMessages(entry: SessionEntry): AgentMessage[];
152
+ /**
153
+ * Build the active, compaction-aware session entry list.
154
+ *
155
+ * This follows the current leaf path. If the path contains compaction entries,
156
+ * the latest compaction is represented by the compaction entry itself, followed
157
+ * by the kept entries starting at firstKeptEntryId and all entries after the
158
+ * compaction entry. Older summarized entries are omitted.
159
+ */
160
+ export declare function buildContextEntries(entries: SessionEntry[], leafId?: string | null, byId?: Map<string, SessionEntry>): SessionEntry[];
161
+ /**
162
+ * Build the session context from entries using tree traversal.
163
+ * If leafId is provided, walks from that entry to root.
164
+ * Handles compaction and branch summaries along the path.
165
+ */
166
+ export declare function buildSessionContext(entries: SessionEntry[], leafId?: string | null, byId?: Map<string, SessionEntry>): SessionContext;
167
+ export declare function getDefaultSessionDir(cwd: string, agentDir?: string): string;
168
+ /** Exported for testing */
169
+ export declare function loadEntriesFromFile(filePath: string): FileEntry[];
170
+ /** Exported for testing */
171
+ export declare function findMostRecentSession(sessionDir: string, cwd?: string): string | null;
172
+ export type SessionListProgress = (loaded: number, total: number) => void;
173
+ /**
174
+ * Manages conversation sessions as append-only trees stored in JSONL files.
175
+ *
176
+ * Each session entry has an id and parentId forming a tree structure. The "leaf"
177
+ * pointer tracks the current position. Appending creates a child of the current leaf.
178
+ * Branching moves the leaf to an earlier entry, allowing new branches without
179
+ * modifying history.
180
+ *
181
+ * Use buildSessionContext() to get the resolved message list for the LLM, which
182
+ * handles compaction summaries and follows the path from root to current leaf.
183
+ */
184
+ export declare class SessionManager {
185
+ private sessionId;
186
+ private sessionFile;
187
+ private sessionDir;
188
+ private cwd;
189
+ private persist;
190
+ private flushed;
191
+ private fileEntries;
192
+ private byId;
193
+ private labelsById;
194
+ private labelTimestampsById;
195
+ private leafId;
196
+ private constructor();
197
+ /** Switch to a different session file (used for resume and branching) */
198
+ setSessionFile(sessionFile: string): void;
199
+ private _setSessionFile;
200
+ newSession(options?: NewSessionOptions): string | undefined;
201
+ private _buildIndex;
202
+ private _rewriteFile;
203
+ isPersisted(): boolean;
204
+ getCwd(): string;
205
+ getSessionDir(): string;
206
+ usesDefaultSessionDir(): boolean;
207
+ getSessionId(): string;
208
+ getSessionFile(): string | undefined;
209
+ _persist(entry: SessionEntry): void;
210
+ private _appendEntry;
211
+ /** Append a message as child of current leaf, then advance leaf. Returns entry id.
212
+ * Does not allow writing CompactionSummaryMessage and BranchSummaryMessage directly.
213
+ * Reason: we want these to be top-level entries in the session, not message session entries,
214
+ * so it is easier to find them.
215
+ * These need to be appended via appendCompaction() and appendBranchSummary() methods.
216
+ */
217
+ appendMessage(message: Message | CustomMessage | BashExecutionMessage): string;
218
+ /** Append a thinking level change as child of current leaf, then advance leaf. Returns entry id. */
219
+ appendThinkingLevelChange(thinkingLevel: string): string;
220
+ /** Append a model change as child of current leaf, then advance leaf. Returns entry id. */
221
+ appendModelChange(provider: string, modelId: string): string;
222
+ /** Append a compaction summary as child of current leaf, then advance leaf. Returns entry id. */
223
+ appendCompaction<T = unknown>(summary: string, firstKeptEntryId: string, tokensBefore: number, details?: T, fromHook?: boolean, usage?: Usage): string;
224
+ /** Append a custom entry (for extensions) as child of current leaf, then advance leaf. Returns entry id. */
225
+ appendCustomEntry(customType: string, data?: unknown): string;
226
+ /** Append a session info entry (e.g., display name). Returns entry id. */
227
+ appendSessionInfo(name: string): string;
228
+ /** Get the current session name from the latest session_info entry, if any. */
229
+ getSessionName(): string | undefined;
230
+ /**
231
+ * Append a custom message entry (for extensions) that participates in LLM context.
232
+ * @param customType Extension identifier for filtering on reload
233
+ * @param content Message content (string or TextContent/ImageContent array)
234
+ * @param display Whether to show in TUI (true = styled display, false = hidden)
235
+ * @param details Optional extension-specific metadata (not sent to LLM)
236
+ * @returns Entry id
237
+ */
238
+ appendCustomMessageEntry<T = unknown>(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details?: T): string;
239
+ getLeafId(): string | null;
240
+ getLeafEntry(): SessionEntry | undefined;
241
+ getEntry(id: string): SessionEntry | undefined;
242
+ /**
243
+ * Get all direct children of an entry.
244
+ */
245
+ getChildren(parentId: string): SessionEntry[];
246
+ /**
247
+ * Get the label for an entry, if any.
248
+ */
249
+ getLabel(id: string): string | undefined;
250
+ /**
251
+ * Set or clear a label on an entry.
252
+ * Labels are user-defined markers for bookmarking/navigation.
253
+ * Pass undefined or empty string to clear the label.
254
+ */
255
+ appendLabelChange(targetId: string, label: string | undefined): string;
256
+ /**
257
+ * Walk from entry to root, returning all entries in path order.
258
+ * Includes all entry types (messages, compaction, model changes, etc.).
259
+ * Use buildSessionContext() to get the resolved messages for the LLM.
260
+ */
261
+ getBranch(fromId?: string): SessionEntry[];
262
+ /**
263
+ * Build the active, compaction-aware entry list for context/rendering.
264
+ * Uses tree traversal from current leaf.
265
+ */
266
+ buildContextEntries(): SessionEntry[];
267
+ /**
268
+ * Build the session context (what gets sent to the LLM).
269
+ * Uses tree traversal from current leaf.
270
+ */
271
+ buildSessionContext(): SessionContext;
272
+ /**
273
+ * Get session header.
274
+ */
275
+ getHeader(): SessionHeader | null;
276
+ /**
277
+ * Get all session entries (excludes header). Returns a shallow copy.
278
+ * The session is append-only: use appendXXX() to add entries, branch() to
279
+ * change the leaf pointer. Entries cannot be modified or deleted.
280
+ */
281
+ getEntries(): SessionEntry[];
282
+ /**
283
+ * Get the session as a tree structure. Returns a shallow defensive copy of all entries.
284
+ * A well-formed session has exactly one root (first entry with parentId === null).
285
+ * Orphaned entries (broken parent chain) are also returned as roots.
286
+ */
287
+ getTree(): SessionTreeNode[];
288
+ /**
289
+ * Start a new branch from an earlier entry.
290
+ * Moves the leaf pointer to the specified entry. The next appendXXX() call
291
+ * will create a child of that entry, forming a new branch. Existing entries
292
+ * are not modified or deleted.
293
+ */
294
+ branch(branchFromId: string): void;
295
+ /**
296
+ * Reset the leaf pointer to null (before any entries).
297
+ * The next appendXXX() call will create a new root entry (parentId = null).
298
+ * Use this when navigating to re-edit the first user message.
299
+ */
300
+ resetLeaf(): void;
301
+ /**
302
+ * Start a new branch with a summary of the abandoned path.
303
+ * Same as branch(), but also appends a branch_summary entry that captures
304
+ * context from the abandoned conversation path.
305
+ */
306
+ branchWithSummary(branchFromId: string | null, summary: string, details?: unknown, fromHook?: boolean, usage?: Usage): string;
307
+ /**
308
+ * Create a new session file containing only the path from root to the specified leaf.
309
+ * Useful for extracting a single conversation path from a branched session.
310
+ * Returns the new session file path, or undefined if not persisting.
311
+ */
312
+ createBranchedSession(leafId: string): string | undefined;
313
+ /**
314
+ * Create a new session.
315
+ * @param cwd Working directory (stored in session header)
316
+ * @param sessionDir Optional session directory. If omitted, uses default (~/.selesai/agent/sessions/<encoded-cwd>/).
317
+ */
318
+ static create(cwd: string, sessionDir?: string, options?: NewSessionOptions): SessionManager;
319
+ /**
320
+ * Open a specific session file.
321
+ * @param path Path to session file
322
+ * @param sessionDir Optional session directory for /new or /branch. If omitted, derives from file's parent.
323
+ * @param cwdOverride Optional cwd override instead of the session header cwd.
324
+ */
325
+ static open(path: string, sessionDir?: string, cwdOverride?: string): SessionManager;
326
+ /**
327
+ * Continue the most recent session, or create new if none.
328
+ * @param cwd Working directory
329
+ * @param sessionDir Optional session directory. If omitted, uses default (~/.selesai/agent/sessions/<encoded-cwd>/).
330
+ */
331
+ static continueRecent(cwd: string, sessionDir?: string): SessionManager;
332
+ /** Create an in-memory session (no file persistence) */
333
+ static inMemory(cwd?: string, options?: NewSessionOptions): SessionManager;
334
+ /**
335
+ * Fork a session from another project directory into the current project.
336
+ * Creates a new session in the target cwd with the full history from the source session.
337
+ * @param sourcePath Path to the source session file
338
+ * @param targetCwd Target working directory (where the new session will be stored)
339
+ * @param sessionDir Optional session directory. If omitted, uses default for targetCwd.
340
+ */
341
+ static forkFrom(sourcePath: string, targetCwd: string, sessionDir?: string, options?: NewSessionOptions): SessionManager;
342
+ /**
343
+ * List all sessions for a directory.
344
+ * @param cwd Working directory (used to compute default session directory)
345
+ * @param sessionDir Optional session directory. If omitted, uses default (~/.selesai/agent/sessions/<encoded-cwd>/).
346
+ * @param onProgress Optional callback for progress updates (loaded, total)
347
+ */
348
+ static list(cwd: string, sessionDir?: string, onProgress?: SessionListProgress): Promise<SessionInfo[]>;
349
+ /**
350
+ * List all sessions across all project directories.
351
+ * @param onProgress Optional callback for progress updates (loaded, total)
352
+ */
353
+ static listAll(onProgress?: SessionListProgress): Promise<SessionInfo[]>;
354
+ static listAll(sessionDir?: string, onProgress?: SessionListProgress): Promise<SessionInfo[]>;
355
+ }
356
+ //# sourceMappingURL=session-manager.d.ts.map
@@ -0,0 +1,297 @@
1
+ import type { ThinkingLevel } from "@earendil-works/pi-agent-core";
2
+ import type { Transport } from "@earendil-works/pi-ai";
3
+ export interface CompactionSettings {
4
+ enabled?: boolean;
5
+ reserveTokens?: number;
6
+ keepRecentTokens?: number;
7
+ }
8
+ export interface BranchSummarySettings {
9
+ reserveTokens?: number;
10
+ skipPrompt?: boolean;
11
+ }
12
+ export interface ProviderRetrySettings {
13
+ timeoutMs?: number;
14
+ maxRetries?: number;
15
+ maxRetryDelayMs?: number;
16
+ }
17
+ export interface RetrySettings {
18
+ enabled?: boolean;
19
+ maxRetries?: number;
20
+ baseDelayMs?: number;
21
+ provider?: ProviderRetrySettings;
22
+ }
23
+ export interface TerminalSettings {
24
+ showImages?: boolean;
25
+ imageWidthCells?: number;
26
+ clearOnShrink?: boolean;
27
+ showTerminalProgress?: boolean;
28
+ }
29
+ export interface ImageSettings {
30
+ autoResize?: boolean;
31
+ blockImages?: boolean;
32
+ }
33
+ export interface ThinkingBudgetsSettings {
34
+ minimal?: number;
35
+ low?: number;
36
+ medium?: number;
37
+ high?: number;
38
+ }
39
+ export interface MarkdownSettings {
40
+ codeBlockIndent?: string;
41
+ }
42
+ export interface WarningSettings {
43
+ anthropicExtraUsage?: boolean;
44
+ }
45
+ export type DefaultProjectTrust = "ask" | "always" | "never";
46
+ export type TransportSetting = Transport;
47
+ /**
48
+ * Package source for npm/git packages.
49
+ * - String form: load all resources from the package
50
+ * - Object form: filter which resources to load
51
+ * - autoload=false: start empty and only apply explicit resource patterns
52
+ */
53
+ export type PackageSource = string | {
54
+ source: string;
55
+ autoload?: boolean;
56
+ extensions?: string[];
57
+ skills?: string[];
58
+ prompts?: string[];
59
+ themes?: string[];
60
+ };
61
+ export interface Settings {
62
+ lastChangelogVersion?: string;
63
+ defaultProvider?: string;
64
+ defaultModel?: string;
65
+ defaultThinkingLevel?: ThinkingLevel;
66
+ transport?: TransportSetting;
67
+ steeringMode?: "all" | "one-at-a-time";
68
+ followUpMode?: "all" | "one-at-a-time";
69
+ theme?: string;
70
+ compaction?: CompactionSettings;
71
+ branchSummary?: BranchSummarySettings;
72
+ retry?: RetrySettings;
73
+ hideThinkingBlock?: boolean;
74
+ showCacheMissNotices?: boolean;
75
+ externalEditor?: string;
76
+ shellPath?: string;
77
+ quietStartup?: boolean;
78
+ defaultProjectTrust?: DefaultProjectTrust;
79
+ shellCommandPrefix?: string;
80
+ npmCommand?: string[];
81
+ collapseChangelog?: boolean;
82
+ enableInstallTelemetry?: boolean;
83
+ enableAnalytics?: boolean;
84
+ trackingId?: string;
85
+ packages?: PackageSource[];
86
+ extensions?: string[];
87
+ skills?: string[];
88
+ prompts?: string[];
89
+ themes?: string[];
90
+ enableSkillCommands?: boolean;
91
+ terminal?: TerminalSettings;
92
+ images?: ImageSettings;
93
+ enabledModels?: string[];
94
+ doubleEscapeAction?: "fork" | "tree" | "none";
95
+ treeFilterMode?: "default" | "no-tools" | "user-only" | "labeled-only" | "all";
96
+ thinkingBudgets?: ThinkingBudgetsSettings;
97
+ editorPaddingX?: number;
98
+ outputPad?: 0 | 1;
99
+ autocompleteMaxVisible?: number;
100
+ showHardwareCursor?: boolean;
101
+ markdown?: MarkdownSettings;
102
+ warnings?: WarningSettings;
103
+ sessionDir?: string;
104
+ httpProxy?: string;
105
+ httpIdleTimeoutMs?: number;
106
+ websocketConnectTimeoutMs?: number;
107
+ }
108
+ export type SettingsScope = "global" | "project";
109
+ export interface SettingsManagerCreateOptions {
110
+ projectTrusted?: boolean;
111
+ }
112
+ export interface SettingsStorage {
113
+ withLock(scope: SettingsScope, fn: (current: string | undefined) => string | undefined): void;
114
+ }
115
+ export interface SettingsError {
116
+ scope: SettingsScope;
117
+ error: Error;
118
+ }
119
+ export declare class FileSettingsStorage implements SettingsStorage {
120
+ private globalSettingsPath;
121
+ private projectSettingsPath;
122
+ constructor(cwd: string, agentDir: string);
123
+ private acquireLockSyncWithRetry;
124
+ withLock(scope: SettingsScope, fn: (current: string | undefined) => string | undefined): void;
125
+ }
126
+ export declare class InMemorySettingsStorage implements SettingsStorage {
127
+ private global;
128
+ private project;
129
+ withLock(scope: SettingsScope, fn: (current: string | undefined) => string | undefined): void;
130
+ }
131
+ export declare class SettingsManager {
132
+ private storage;
133
+ private globalSettings;
134
+ private projectSettings;
135
+ private settings;
136
+ private projectTrusted;
137
+ private modifiedFields;
138
+ private modifiedNestedFields;
139
+ private modifiedProjectFields;
140
+ private modifiedProjectNestedFields;
141
+ private globalSettingsLoadError;
142
+ private projectSettingsLoadError;
143
+ private writeQueue;
144
+ private errors;
145
+ private constructor();
146
+ /** Create a SettingsManager that loads from files */
147
+ static create(cwd: string, agentDir?: string, options?: SettingsManagerCreateOptions): SettingsManager;
148
+ /** Create a SettingsManager from an arbitrary storage backend */
149
+ static fromStorage(storage: SettingsStorage, options?: SettingsManagerCreateOptions): SettingsManager;
150
+ /** Create an in-memory SettingsManager (no file I/O) */
151
+ static inMemory(settings?: Partial<Settings>, options?: SettingsManagerCreateOptions): SettingsManager;
152
+ private static loadFromStorage;
153
+ private static tryLoadFromStorage;
154
+ /** Migrate old settings format to new format */
155
+ private static migrateSettings;
156
+ getGlobalSettings(): Settings;
157
+ getProjectSettings(): Settings;
158
+ isProjectTrusted(): boolean;
159
+ setProjectTrusted(trusted: boolean): void;
160
+ reload(): Promise<void>;
161
+ /** Apply additional overrides on top of current settings */
162
+ applyOverrides(overrides: Partial<Settings>): void;
163
+ /** Mark a global field as modified during this session */
164
+ private markModified;
165
+ /** Mark a project field as modified during this session */
166
+ private markProjectModified;
167
+ private assertProjectTrustedForWrite;
168
+ private recordError;
169
+ private clearModifiedScope;
170
+ private enqueueWrite;
171
+ private cloneModifiedNestedFields;
172
+ private persistScopedSettings;
173
+ private save;
174
+ private saveProjectSettings;
175
+ private updateProjectSettings;
176
+ flush(): Promise<void>;
177
+ drainErrors(): SettingsError[];
178
+ getLastChangelogVersion(): string | undefined;
179
+ setLastChangelogVersion(version: string): void;
180
+ getSessionDir(): string | undefined;
181
+ getDefaultProvider(): string | undefined;
182
+ getDefaultModel(): string | undefined;
183
+ setDefaultProvider(provider: string): void;
184
+ setDefaultModel(modelId: string): void;
185
+ setDefaultModelAndProvider(provider: string, modelId: string): void;
186
+ getSteeringMode(): "all" | "one-at-a-time";
187
+ setSteeringMode(mode: "all" | "one-at-a-time"): void;
188
+ getFollowUpMode(): "all" | "one-at-a-time";
189
+ setFollowUpMode(mode: "all" | "one-at-a-time"): void;
190
+ getThemeSetting(): string | undefined;
191
+ getTheme(): string | undefined;
192
+ setTheme(theme: string): void;
193
+ getDefaultThinkingLevel(): ThinkingLevel | undefined;
194
+ setDefaultThinkingLevel(level: ThinkingLevel): void;
195
+ getTransport(): TransportSetting;
196
+ setTransport(transport: TransportSetting): void;
197
+ getCompactionEnabled(): boolean;
198
+ setCompactionEnabled(enabled: boolean): void;
199
+ getCompactionReserveTokens(): number;
200
+ getCompactionKeepRecentTokens(): number;
201
+ getCompactionSettings(): {
202
+ enabled: boolean;
203
+ reserveTokens: number;
204
+ keepRecentTokens: number;
205
+ };
206
+ getBranchSummarySettings(): {
207
+ reserveTokens: number;
208
+ skipPrompt: boolean;
209
+ };
210
+ getBranchSummarySkipPrompt(): boolean;
211
+ getRetryEnabled(): boolean;
212
+ setRetryEnabled(enabled: boolean): void;
213
+ getRetrySettings(): {
214
+ enabled: boolean;
215
+ maxRetries: number;
216
+ baseDelayMs: number;
217
+ };
218
+ getHttpIdleTimeoutMs(): number;
219
+ setHttpIdleTimeoutMs(timeoutMs: number): void;
220
+ getProviderRetrySettings(): {
221
+ timeoutMs?: number;
222
+ maxRetries?: number;
223
+ maxRetryDelayMs: number;
224
+ };
225
+ getWebSocketConnectTimeoutMs(): number | undefined;
226
+ getHideThinkingBlock(): boolean;
227
+ getShowCacheMissNotices(): boolean;
228
+ getExternalEditorCommand(): string | undefined;
229
+ setHideThinkingBlock(hide: boolean): void;
230
+ setShowCacheMissNotices(show: boolean): void;
231
+ getShellPath(): string | undefined;
232
+ setShellPath(path: string | undefined): void;
233
+ getQuietStartup(): boolean;
234
+ setQuietStartup(quiet: boolean): void;
235
+ getDefaultProjectTrust(): DefaultProjectTrust;
236
+ setDefaultProjectTrust(defaultProjectTrust: DefaultProjectTrust): void;
237
+ getShellCommandPrefix(): string | undefined;
238
+ setShellCommandPrefix(prefix: string | undefined): void;
239
+ getNpmCommand(): string[] | undefined;
240
+ setNpmCommand(command: string[] | undefined): void;
241
+ getCollapseChangelog(): boolean;
242
+ setCollapseChangelog(collapse: boolean): void;
243
+ getEnableInstallTelemetry(): boolean;
244
+ setEnableInstallTelemetry(enabled: boolean): void;
245
+ getEnableAnalytics(): boolean;
246
+ getTrackingId(): string | undefined;
247
+ /** Set the analytics opt-in preference; generates a tracking identifier on first opt-in */
248
+ setEnableAnalytics(enabled: boolean): void;
249
+ getPackages(): PackageSource[];
250
+ setPackages(packages: PackageSource[]): void;
251
+ setProjectPackages(packages: PackageSource[]): void;
252
+ getExtensionPaths(): string[];
253
+ setExtensionPaths(paths: string[]): void;
254
+ setProjectExtensionPaths(paths: string[]): void;
255
+ getSkillPaths(): string[];
256
+ setSkillPaths(paths: string[]): void;
257
+ setProjectSkillPaths(paths: string[]): void;
258
+ getPromptTemplatePaths(): string[];
259
+ setPromptTemplatePaths(paths: string[]): void;
260
+ setProjectPromptTemplatePaths(paths: string[]): void;
261
+ getThemePaths(): string[];
262
+ setThemePaths(paths: string[]): void;
263
+ setProjectThemePaths(paths: string[]): void;
264
+ getEnableSkillCommands(): boolean;
265
+ setEnableSkillCommands(enabled: boolean): void;
266
+ getThinkingBudgets(): ThinkingBudgetsSettings | undefined;
267
+ getShowImages(): boolean;
268
+ setShowImages(show: boolean): void;
269
+ getImageWidthCells(): number;
270
+ setImageWidthCells(width: number): void;
271
+ getClearOnShrink(): boolean;
272
+ setClearOnShrink(enabled: boolean): void;
273
+ getShowTerminalProgress(): boolean;
274
+ setShowTerminalProgress(enabled: boolean): void;
275
+ getImageAutoResize(): boolean;
276
+ setImageAutoResize(enabled: boolean): void;
277
+ getBlockImages(): boolean;
278
+ setBlockImages(blocked: boolean): void;
279
+ getEnabledModels(): string[] | undefined;
280
+ setEnabledModels(patterns: string[] | undefined): void;
281
+ getDoubleEscapeAction(): "fork" | "tree" | "none";
282
+ setDoubleEscapeAction(action: "fork" | "tree" | "none"): void;
283
+ getTreeFilterMode(): "default" | "no-tools" | "user-only" | "labeled-only" | "all";
284
+ setTreeFilterMode(mode: "default" | "no-tools" | "user-only" | "labeled-only" | "all"): void;
285
+ getShowHardwareCursor(): boolean;
286
+ setShowHardwareCursor(enabled: boolean): void;
287
+ getEditorPaddingX(): number;
288
+ setEditorPaddingX(padding: number): void;
289
+ getOutputPad(): 0 | 1;
290
+ setOutputPad(padding: 0 | 1): void;
291
+ getAutocompleteMaxVisible(): number;
292
+ setAutocompleteMaxVisible(maxVisible: number): void;
293
+ getCodeBlockIndent(): string;
294
+ getWarnings(): WarningSettings;
295
+ setWarnings(warnings: WarningSettings): void;
296
+ }
297
+ //# sourceMappingURL=settings-manager.d.ts.map