@earendil-works/pi-coding-agent 0.87.0 → 0.99.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 (743) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/README.md +25 -711
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
  5. package/dist/bun/restore-sandbox-env.js.map +1 -1
  6. package/dist/bun/runtime-setup.d.ts.map +1 -1
  7. package/dist/bun/runtime-setup.js +4 -1
  8. package/dist/bun/runtime-setup.js.map +1 -1
  9. package/dist/bun/sandbox-env-setup.d.ts.map +1 -1
  10. package/dist/bundle/chunks/anthropic-messages-A6EXUBG6.js +6 -0
  11. package/dist/bundle/chunks/anthropic.js +2 -2
  12. package/dist/bundle/chunks/azure-openai-responses-EN5WOBET.js +2 -0
  13. package/dist/bundle/chunks/bedrock-converse-stream.js +2 -2
  14. package/dist/bundle/chunks/chunk-4CSSZFEW.js +1435 -0
  15. package/dist/bundle/chunks/chunk-7JGR3GZN.js +11 -0
  16. package/dist/bundle/chunks/chunk-AXPY26X7.js +146 -0
  17. package/dist/bundle/chunks/chunk-EPDRUIU6.js +2 -0
  18. package/dist/bundle/chunks/chunk-GOPCREV2.js +4 -0
  19. package/dist/bundle/chunks/chunk-H3QXYIF7.js +31 -0
  20. package/dist/bundle/chunks/{chunk-S7SZN6Z3.js → chunk-HSPCVFST.js} +1 -1
  21. package/dist/bundle/chunks/chunk-IMTXZUO7.js +82 -0
  22. package/dist/bundle/chunks/chunk-J4CWPC4N.js +2 -0
  23. package/dist/bundle/chunks/chunk-LLMKQWZS.js +21 -0
  24. package/dist/bundle/chunks/{chunk-WIUZI2CJ.js → chunk-LRS5S6EK.js} +3 -3
  25. package/dist/bundle/chunks/chunk-PEHWOV5U.js +187 -0
  26. package/dist/bundle/chunks/{chunk-XDUWOHPL.js → chunk-S3GGRYIO.js} +2 -2
  27. package/dist/bundle/chunks/chunk-UTB4DTYQ.js +2 -0
  28. package/dist/bundle/chunks/{chunk-FUXEF6JQ.js → chunk-W2DOMZSC.js} +1 -1
  29. package/dist/bundle/chunks/cli-AZXNGIZH.js +49 -0
  30. package/dist/bundle/chunks/cloudflare-workers-ai-system-one-XJQQYGGU.js +2 -0
  31. package/dist/bundle/chunks/codemode-worker.js +295 -0
  32. package/dist/bundle/chunks/execute-7XXPZAWW.js +308 -0
  33. package/dist/bundle/chunks/github-copilot.js +1 -1
  34. package/dist/bundle/chunks/google-generative-ai-CQAKKJTA.js +2 -0
  35. package/dist/bundle/chunks/google-vertex-AE36YXJU.js +2 -0
  36. package/dist/bundle/chunks/{lib-HGQMNYVT.js → lib-TEDK3E5I.js} +2 -2
  37. package/dist/bundle/chunks/llama-cpp-classify-PJJYKPLD.js +22 -0
  38. package/dist/bundle/chunks/mistral-conversations-KEYTXJM7.js +5 -0
  39. package/dist/bundle/chunks/{openai-codex-responses-QDSOTBBO.js → openai-codex-responses-JQTCOVEG.js} +2 -2
  40. package/dist/bundle/chunks/openai-codex.js +2 -2
  41. package/dist/bundle/chunks/{openai-completions-XHML6MTL.js → openai-completions-XW2Q5HVC.js} +2 -2
  42. package/dist/bundle/chunks/openai-responses-6AXWFL75.js +3 -0
  43. package/dist/bundle/chunks/{openrouter-images-N4XVVFSD.js → openrouter-images-TPQ4V6OR.js} +1 -1
  44. package/dist/bundle/chunks/openrouter.js +2 -2
  45. package/dist/bundle/chunks/{pi-messages-GFKBWJHZ.js → pi-messages-TM5SOOIW.js} +2 -2
  46. package/dist/bundle/chunks/radius.js +2 -2
  47. package/dist/bundle/chunks/runtime-G5WJPRBM.js +2 -0
  48. package/dist/bundle/chunks/typesafe-system-one-E7A4HNJI.js +2 -0
  49. package/dist/bundle/chunks/virtual-modules-AQ3FLU6H.js +2 -0
  50. package/dist/bundle/cli-runtime.js +1 -1
  51. package/dist/bundle/index.js +1 -1
  52. package/dist/bundle/rpc-entry.js +1 -1
  53. package/dist/cli/args.d.ts.map +1 -1
  54. package/dist/cli/args.js +18 -7
  55. package/dist/cli/args.js.map +1 -1
  56. package/dist/cli/auth-check.d.ts.map +1 -1
  57. package/dist/cli/auth-check.js.map +1 -1
  58. package/dist/cli/auth-command.d.ts.map +1 -1
  59. package/dist/cli/auth-command.js.map +1 -1
  60. package/dist/cli/config-selector.d.ts.map +1 -1
  61. package/dist/cli/config-selector.js.map +1 -1
  62. package/dist/cli/credential-print.d.ts.map +1 -1
  63. package/dist/cli/credential-print.js.map +1 -1
  64. package/dist/cli/file-processor.d.ts.map +1 -1
  65. package/dist/cli/file-processor.js.map +1 -1
  66. package/dist/cli/initial-message.d.ts +1 -1
  67. package/dist/cli/initial-message.d.ts.map +1 -1
  68. package/dist/cli/initial-message.js.map +1 -1
  69. package/dist/cli/list-models.d.ts.map +1 -1
  70. package/dist/cli/list-models.js.map +1 -1
  71. package/dist/cli/project-trust.d.ts.map +1 -1
  72. package/dist/cli/project-trust.js.map +1 -1
  73. package/dist/cli/session-picker.d.ts.map +1 -1
  74. package/dist/cli/session-picker.js.map +1 -1
  75. package/dist/cli/setup.d.ts.map +1 -1
  76. package/dist/cli/setup.js.map +1 -1
  77. package/dist/cli/startup-ui.d.ts.map +1 -1
  78. package/dist/cli/startup-ui.js +38 -30
  79. package/dist/cli/startup-ui.js.map +1 -1
  80. package/dist/cli.d.ts.map +1 -1
  81. package/dist/config.d.ts +18 -4
  82. package/dist/config.d.ts.map +1 -1
  83. package/dist/config.js +30 -4
  84. package/dist/config.js.map +1 -1
  85. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  86. package/dist/core/agent-session-runtime.js +1 -1
  87. package/dist/core/agent-session-runtime.js.map +1 -1
  88. package/dist/core/agent-session-services.d.ts.map +1 -1
  89. package/dist/core/agent-session-services.js +13 -0
  90. package/dist/core/agent-session-services.js.map +1 -1
  91. package/dist/core/agent-session.d.ts +135 -11
  92. package/dist/core/agent-session.d.ts.map +1 -1
  93. package/dist/core/agent-session.js +509 -253
  94. package/dist/core/agent-session.js.map +1 -1
  95. package/dist/core/auth-guidance.d.ts.map +1 -1
  96. package/dist/core/auth-guidance.js.map +1 -1
  97. package/dist/core/auth-storage.d.ts.map +1 -1
  98. package/dist/core/auth-storage.js.map +1 -1
  99. package/dist/core/bash-executor.d.ts.map +1 -1
  100. package/dist/core/bash-executor.js.map +1 -1
  101. package/dist/core/bug-report-upload.d.ts.map +1 -1
  102. package/dist/core/bug-report-upload.js.map +1 -1
  103. package/dist/core/bug-report.d.ts +1 -1
  104. package/dist/core/bug-report.d.ts.map +1 -1
  105. package/dist/core/bug-report.js +1 -1
  106. package/dist/core/bug-report.js.map +1 -1
  107. package/dist/core/cache-stats.d.ts.map +1 -1
  108. package/dist/core/cache-stats.js.map +1 -1
  109. package/dist/core/cache-warmer.d.ts.map +1 -1
  110. package/dist/core/cache-warmer.js.map +1 -1
  111. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  112. package/dist/core/compaction/branch-summarization.js.map +1 -1
  113. package/dist/core/compaction/compaction.d.ts.map +1 -1
  114. package/dist/core/compaction/compaction.js +10 -31
  115. package/dist/core/compaction/compaction.js.map +1 -1
  116. package/dist/core/compaction/index.d.ts.map +1 -1
  117. package/dist/core/compaction/utils.d.ts +2 -1
  118. package/dist/core/compaction/utils.d.ts.map +1 -1
  119. package/dist/core/compaction/utils.js +25 -18
  120. package/dist/core/compaction/utils.js.map +1 -1
  121. package/dist/core/crash-log.d.ts.map +1 -1
  122. package/dist/core/crash-log.js +2 -1
  123. package/dist/core/crash-log.js.map +1 -1
  124. package/dist/core/defaults.d.ts.map +1 -1
  125. package/dist/core/diagnostics.d.ts.map +1 -1
  126. package/dist/core/event-bus.d.ts.map +1 -1
  127. package/dist/core/event-bus.js.map +1 -1
  128. package/dist/core/exec.d.ts.map +1 -1
  129. package/dist/core/exec.js.map +1 -1
  130. package/dist/core/experimental.d.ts.map +1 -1
  131. package/dist/core/experimental.js.map +1 -1
  132. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  133. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  134. package/dist/core/export-html/index.d.ts.map +1 -1
  135. package/dist/core/export-html/index.js.map +1 -1
  136. package/dist/core/export-html/template.css +10 -0
  137. package/dist/core/export-html/template.js +66 -17
  138. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  139. package/dist/core/export-html/tool-renderer.js.map +1 -1
  140. package/dist/core/extensions/index.d.ts +1 -1
  141. package/dist/core/extensions/index.d.ts.map +1 -1
  142. package/dist/core/extensions/index.js.map +1 -1
  143. package/dist/core/extensions/jiti-loader.d.ts.map +1 -1
  144. package/dist/core/extensions/jiti-static-loader.d.ts.map +1 -1
  145. package/dist/core/extensions/loader.d.ts.map +1 -1
  146. package/dist/core/extensions/loader.js +55 -5
  147. package/dist/core/extensions/loader.js.map +1 -1
  148. package/dist/core/extensions/runner.d.ts +18 -1
  149. package/dist/core/extensions/runner.d.ts.map +1 -1
  150. package/dist/core/extensions/runner.js +99 -0
  151. package/dist/core/extensions/runner.js.map +1 -1
  152. package/dist/core/extensions/types.d.ts +296 -22
  153. package/dist/core/extensions/types.d.ts.map +1 -1
  154. package/dist/core/extensions/types.js.map +1 -1
  155. package/dist/core/extensions/virtual-modules.d.ts.map +1 -1
  156. package/dist/core/extensions/wrapper.d.ts +2 -2
  157. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  158. package/dist/core/extensions/wrapper.js +3 -3
  159. package/dist/core/extensions/wrapper.js.map +1 -1
  160. package/dist/core/footer-data-provider.d.ts.map +1 -1
  161. package/dist/core/footer-data-provider.js.map +1 -1
  162. package/dist/core/http-dispatcher.d.ts.map +1 -1
  163. package/dist/core/http-dispatcher.js.map +1 -1
  164. package/dist/core/index.d.ts.map +1 -1
  165. package/dist/core/keybindings.d.ts +1 -1
  166. package/dist/core/keybindings.d.ts.map +1 -1
  167. package/dist/core/keybindings.js +1 -1
  168. package/dist/core/keybindings.js.map +1 -1
  169. package/dist/core/mcp-servers.d.ts +98 -0
  170. package/dist/core/mcp-servers.d.ts.map +1 -0
  171. package/dist/core/mcp-servers.js +157 -0
  172. package/dist/core/mcp-servers.js.map +1 -0
  173. package/dist/core/messages.d.ts.map +1 -1
  174. package/dist/core/messages.js.map +1 -1
  175. package/dist/core/model-config.d.ts.map +1 -1
  176. package/dist/core/model-config.js.map +1 -1
  177. package/dist/core/model-registry.d.ts +13 -1
  178. package/dist/core/model-registry.d.ts.map +1 -1
  179. package/dist/core/model-registry.js +25 -0
  180. package/dist/core/model-registry.js.map +1 -1
  181. package/dist/core/model-resolver.d.ts +2 -2
  182. package/dist/core/model-resolver.d.ts.map +1 -1
  183. package/dist/core/model-resolver.js +5 -5
  184. package/dist/core/model-resolver.js.map +1 -1
  185. package/dist/core/model-runtime.d.ts +41 -3
  186. package/dist/core/model-runtime.d.ts.map +1 -1
  187. package/dist/core/model-runtime.js +167 -17
  188. package/dist/core/model-runtime.js.map +1 -1
  189. package/dist/core/models-store.d.ts.map +1 -1
  190. package/dist/core/models-store.js.map +1 -1
  191. package/dist/core/nested-tool-calls.d.ts +102 -0
  192. package/dist/core/nested-tool-calls.d.ts.map +1 -0
  193. package/dist/core/nested-tool-calls.js +178 -0
  194. package/dist/core/nested-tool-calls.js.map +1 -0
  195. package/dist/core/output-guard.d.ts.map +1 -1
  196. package/dist/core/output-guard.js.map +1 -1
  197. package/dist/core/package-manager.d.ts +4 -0
  198. package/dist/core/package-manager.d.ts.map +1 -1
  199. package/dist/core/package-manager.js +59 -12
  200. package/dist/core/package-manager.js.map +1 -1
  201. package/dist/core/pi-manifest.d.ts.map +1 -1
  202. package/dist/core/pi-manifest.js.map +1 -1
  203. package/dist/core/project-trust.d.ts.map +1 -1
  204. package/dist/core/project-trust.js.map +1 -1
  205. package/dist/core/prompt-templates.d.ts.map +1 -1
  206. package/dist/core/prompt-templates.js.map +1 -1
  207. package/dist/core/provider-attribution.d.ts.map +1 -1
  208. package/dist/core/provider-attribution.js.map +1 -1
  209. package/dist/core/provider-composer.d.ts +40 -21
  210. package/dist/core/provider-composer.d.ts.map +1 -1
  211. package/dist/core/provider-composer.js +92 -40
  212. package/dist/core/provider-composer.js.map +1 -1
  213. package/dist/core/radius.d.ts.map +1 -1
  214. package/dist/core/radius.js.map +1 -1
  215. package/dist/core/remote-catalog-provider.d.ts +8 -1
  216. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  217. package/dist/core/remote-catalog-provider.js +18 -3
  218. package/dist/core/remote-catalog-provider.js.map +1 -1
  219. package/dist/core/resolve-config-value.d.ts.map +1 -1
  220. package/dist/core/resolve-config-value.js.map +1 -1
  221. package/dist/core/resource-loader.d.ts +7 -1
  222. package/dist/core/resource-loader.d.ts.map +1 -1
  223. package/dist/core/resource-loader.js +161 -35
  224. package/dist/core/resource-loader.js.map +1 -1
  225. package/dist/core/runtime-credentials.d.ts.map +1 -1
  226. package/dist/core/runtime-credentials.js.map +1 -1
  227. package/dist/core/sdk.d.ts +1 -1
  228. package/dist/core/sdk.d.ts.map +1 -1
  229. package/dist/core/sdk.js +24 -6
  230. package/dist/core/sdk.js.map +1 -1
  231. package/dist/core/session-cwd.d.ts.map +1 -1
  232. package/dist/core/session-cwd.js.map +1 -1
  233. package/dist/core/session-export.d.ts.map +1 -1
  234. package/dist/core/session-export.js.map +1 -1
  235. package/dist/core/session-manager.d.ts +9 -0
  236. package/dist/core/session-manager.d.ts.map +1 -1
  237. package/dist/core/session-manager.js +22 -22
  238. package/dist/core/session-manager.js.map +1 -1
  239. package/dist/core/settings-diagnostics.d.ts.map +1 -1
  240. package/dist/core/settings-diagnostics.js.map +1 -1
  241. package/dist/core/settings-manager.d.ts +31 -1
  242. package/dist/core/settings-manager.d.ts.map +1 -1
  243. package/dist/core/settings-manager.js +72 -2
  244. package/dist/core/settings-manager.js.map +1 -1
  245. package/dist/core/skills.d.ts.map +1 -1
  246. package/dist/core/skills.js.map +1 -1
  247. package/dist/core/slash-commands.d.ts.map +1 -1
  248. package/dist/core/source-info.d.ts +8 -0
  249. package/dist/core/source-info.d.ts.map +1 -1
  250. package/dist/core/source-info.js +16 -0
  251. package/dist/core/source-info.js.map +1 -1
  252. package/dist/core/system-prompt.d.ts.map +1 -1
  253. package/dist/core/system-prompt.js +1 -1
  254. package/dist/core/system-prompt.js.map +1 -1
  255. package/dist/core/telemetry.d.ts.map +1 -1
  256. package/dist/core/telemetry.js.map +1 -1
  257. package/dist/core/timings.d.ts.map +1 -1
  258. package/dist/core/timings.js.map +1 -1
  259. package/dist/core/tools/bash.d.ts +12 -0
  260. package/dist/core/tools/bash.d.ts.map +1 -1
  261. package/dist/core/tools/bash.js +35 -2
  262. package/dist/core/tools/bash.js.map +1 -1
  263. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  264. package/dist/core/tools/edit-diff.js.map +1 -1
  265. package/dist/core/tools/edit.d.ts.map +1 -1
  266. package/dist/core/tools/edit.js.map +1 -1
  267. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  268. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  269. package/dist/core/tools/find.d.ts.map +1 -1
  270. package/dist/core/tools/find.js.map +1 -1
  271. package/dist/core/tools/grep.d.ts.map +1 -1
  272. package/dist/core/tools/grep.js.map +1 -1
  273. package/dist/core/tools/index.d.ts.map +1 -1
  274. package/dist/core/tools/index.js.map +1 -1
  275. package/dist/core/tools/ls.d.ts.map +1 -1
  276. package/dist/core/tools/ls.js.map +1 -1
  277. package/dist/core/tools/output-accumulator.d.ts +11 -0
  278. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  279. package/dist/core/tools/output-accumulator.js +36 -0
  280. package/dist/core/tools/output-accumulator.js.map +1 -1
  281. package/dist/core/tools/path-utils.d.ts.map +1 -1
  282. package/dist/core/tools/path-utils.js.map +1 -1
  283. package/dist/core/tools/powershell.d.ts.map +1 -1
  284. package/dist/core/tools/powershell.js.map +1 -1
  285. package/dist/core/tools/read.d.ts.map +1 -1
  286. package/dist/core/tools/read.js.map +1 -1
  287. package/dist/core/tools/render-utils.d.ts +6 -0
  288. package/dist/core/tools/render-utils.d.ts.map +1 -1
  289. package/dist/core/tools/render-utils.js +26 -0
  290. package/dist/core/tools/render-utils.js.map +1 -1
  291. package/dist/core/tools/renderers/bash.d.ts.map +1 -1
  292. package/dist/core/tools/renderers/bash.js +9 -10
  293. package/dist/core/tools/renderers/bash.js.map +1 -1
  294. package/dist/core/tools/renderers/edit.d.ts.map +1 -1
  295. package/dist/core/tools/renderers/edit.js.map +1 -1
  296. package/dist/core/tools/renderers/find.d.ts.map +1 -1
  297. package/dist/core/tools/renderers/find.js.map +1 -1
  298. package/dist/core/tools/renderers/grep.d.ts.map +1 -1
  299. package/dist/core/tools/renderers/grep.js.map +1 -1
  300. package/dist/core/tools/renderers/index.d.ts.map +1 -1
  301. package/dist/core/tools/renderers/index.js.map +1 -1
  302. package/dist/core/tools/renderers/ls.d.ts.map +1 -1
  303. package/dist/core/tools/renderers/ls.js.map +1 -1
  304. package/dist/core/tools/renderers/read.d.ts.map +1 -1
  305. package/dist/core/tools/renderers/read.js +3 -2
  306. package/dist/core/tools/renderers/read.js.map +1 -1
  307. package/dist/core/tools/renderers/write.d.ts.map +1 -1
  308. package/dist/core/tools/renderers/write.js.map +1 -1
  309. package/dist/core/tools/tool-definition-wrapper.d.ts +5 -3
  310. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  311. package/dist/core/tools/tool-definition-wrapper.js +3 -1
  312. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  313. package/dist/core/tools/truncate.d.ts +14 -0
  314. package/dist/core/tools/truncate.d.ts.map +1 -1
  315. package/dist/core/tools/truncate.js +29 -0
  316. package/dist/core/tools/truncate.js.map +1 -1
  317. package/dist/core/tools/write.d.ts.map +1 -1
  318. package/dist/core/tools/write.js.map +1 -1
  319. package/dist/core/trust-manager.d.ts.map +1 -1
  320. package/dist/core/trust-manager.js +1 -0
  321. package/dist/core/trust-manager.js.map +1 -1
  322. package/dist/core/usage-totals.d.ts +2 -0
  323. package/dist/core/usage-totals.d.ts.map +1 -1
  324. package/dist/core/usage-totals.js +23 -0
  325. package/dist/core/usage-totals.js.map +1 -1
  326. package/dist/core/virtual-models.d.ts +115 -0
  327. package/dist/core/virtual-models.d.ts.map +1 -0
  328. package/dist/core/virtual-models.js +117 -0
  329. package/dist/core/virtual-models.js.map +1 -0
  330. package/dist/extensions/codemode/execute.d.ts +16 -0
  331. package/dist/extensions/codemode/execute.d.ts.map +1 -0
  332. package/dist/extensions/codemode/execute.js +390 -0
  333. package/dist/extensions/codemode/execute.js.map +1 -0
  334. package/dist/extensions/codemode/execute.lazy.d.ts +3 -0
  335. package/dist/extensions/codemode/execute.lazy.d.ts.map +1 -0
  336. package/dist/extensions/codemode/execute.lazy.js +3 -0
  337. package/dist/extensions/codemode/execute.lazy.js.map +1 -0
  338. package/dist/extensions/codemode/index.d.ts +21 -0
  339. package/dist/extensions/codemode/index.d.ts.map +1 -0
  340. package/dist/extensions/codemode/index.js +31 -0
  341. package/dist/extensions/codemode/index.js.map +1 -0
  342. package/dist/extensions/codemode/renderer.d.ts +12 -0
  343. package/dist/extensions/codemode/renderer.d.ts.map +1 -0
  344. package/dist/extensions/codemode/renderer.js +119 -0
  345. package/dist/extensions/codemode/renderer.js.map +1 -0
  346. package/dist/extensions/codemode/tool.d.ts +122 -0
  347. package/dist/extensions/codemode/tool.d.ts.map +1 -0
  348. package/dist/extensions/codemode/tool.js +324 -0
  349. package/dist/extensions/codemode/tool.js.map +1 -0
  350. package/dist/extensions/codemode/worker.d.ts +7 -0
  351. package/dist/extensions/codemode/worker.d.ts.map +1 -0
  352. package/dist/extensions/codemode/worker.js +7 -0
  353. package/dist/extensions/codemode/worker.js.map +1 -0
  354. package/dist/extensions/index.d.ts.map +1 -1
  355. package/dist/extensions/index.js +11 -1
  356. package/dist/extensions/index.js.map +1 -1
  357. package/dist/extensions/llama/client.d.ts.map +1 -1
  358. package/dist/extensions/llama/client.js.map +1 -1
  359. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  360. package/dist/extensions/llama/huggingface.js.map +1 -1
  361. package/dist/extensions/llama/index.d.ts.map +1 -1
  362. package/dist/extensions/llama/index.js.map +1 -1
  363. package/dist/extensions/llama/provider.d.ts +1 -1
  364. package/dist/extensions/llama/provider.d.ts.map +1 -1
  365. package/dist/extensions/llama/provider.js +65 -13
  366. package/dist/extensions/llama/provider.js.map +1 -1
  367. package/dist/extensions/llama/ui.d.ts.map +1 -1
  368. package/dist/extensions/llama/ui.js.map +1 -1
  369. package/dist/extensions/mcp/cli.d.ts +21 -0
  370. package/dist/extensions/mcp/cli.d.ts.map +1 -0
  371. package/dist/extensions/mcp/cli.js +485 -0
  372. package/dist/extensions/mcp/cli.js.map +1 -0
  373. package/dist/extensions/mcp/cli.lazy.d.ts +3 -0
  374. package/dist/extensions/mcp/cli.lazy.d.ts.map +1 -0
  375. package/dist/extensions/mcp/cli.lazy.js +3 -0
  376. package/dist/extensions/mcp/cli.lazy.js.map +1 -0
  377. package/dist/extensions/mcp/config.d.ts +70 -0
  378. package/dist/extensions/mcp/config.d.ts.map +1 -0
  379. package/dist/extensions/mcp/config.js +146 -0
  380. package/dist/extensions/mcp/config.js.map +1 -0
  381. package/dist/extensions/mcp/index.d.ts +52 -0
  382. package/dist/extensions/mcp/index.d.ts.map +1 -0
  383. package/dist/extensions/mcp/index.js +902 -0
  384. package/dist/extensions/mcp/index.js.map +1 -0
  385. package/dist/extensions/mcp/log.d.ts +16 -0
  386. package/dist/extensions/mcp/log.d.ts.map +1 -0
  387. package/dist/extensions/mcp/log.js +66 -0
  388. package/dist/extensions/mcp/log.js.map +1 -0
  389. package/dist/extensions/mcp/oauth.d.ts +94 -0
  390. package/dist/extensions/mcp/oauth.d.ts.map +1 -0
  391. package/dist/extensions/mcp/oauth.js +333 -0
  392. package/dist/extensions/mcp/oauth.js.map +1 -0
  393. package/dist/extensions/mcp/resources.d.ts +43 -0
  394. package/dist/extensions/mcp/resources.d.ts.map +1 -0
  395. package/dist/extensions/mcp/resources.js +262 -0
  396. package/dist/extensions/mcp/resources.js.map +1 -0
  397. package/dist/extensions/mcp/runtime.d.ts +96 -0
  398. package/dist/extensions/mcp/runtime.d.ts.map +1 -0
  399. package/dist/extensions/mcp/runtime.js +388 -0
  400. package/dist/extensions/mcp/runtime.js.map +1 -0
  401. package/dist/extensions/mcp/runtime.lazy.d.ts +3 -0
  402. package/dist/extensions/mcp/runtime.lazy.d.ts.map +1 -0
  403. package/dist/extensions/mcp/runtime.lazy.js +3 -0
  404. package/dist/extensions/mcp/runtime.lazy.js.map +1 -0
  405. package/dist/extensions/mcp/tools.d.ts +83 -0
  406. package/dist/extensions/mcp/tools.d.ts.map +1 -0
  407. package/dist/extensions/mcp/tools.js +233 -0
  408. package/dist/extensions/mcp/tools.js.map +1 -0
  409. package/dist/extensions/mcp/ui.d.ts +60 -0
  410. package/dist/extensions/mcp/ui.d.ts.map +1 -0
  411. package/dist/extensions/mcp/ui.js +172 -0
  412. package/dist/extensions/mcp/ui.js.map +1 -0
  413. package/dist/extensions/tool-search/index.d.ts +12 -0
  414. package/dist/extensions/tool-search/index.d.ts.map +1 -0
  415. package/dist/extensions/tool-search/index.js +15 -0
  416. package/dist/extensions/tool-search/index.js.map +1 -0
  417. package/dist/extensions/tool-search/tool.d.ts +72 -0
  418. package/dist/extensions/tool-search/tool.d.ts.map +1 -0
  419. package/dist/extensions/tool-search/tool.js +210 -0
  420. package/dist/extensions/tool-search/tool.js.map +1 -0
  421. package/dist/index.d.ts +9 -2
  422. package/dist/index.d.ts.map +1 -1
  423. package/dist/index.js +5 -0
  424. package/dist/index.js.map +1 -1
  425. package/dist/main.d.ts.map +1 -1
  426. package/dist/main.js +10 -0
  427. package/dist/main.js.map +1 -1
  428. package/dist/migrations.d.ts.map +1 -1
  429. package/dist/migrations.js.map +1 -1
  430. package/dist/modes/index.d.ts.map +1 -1
  431. package/dist/modes/interactive/bug-report.d.ts.map +1 -1
  432. package/dist/modes/interactive/bug-report.js.map +1 -1
  433. package/dist/modes/interactive/chat-viewport.d.ts.map +1 -1
  434. package/dist/modes/interactive/chat-viewport.js.map +1 -1
  435. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  436. package/dist/modes/interactive/components/armin.js.map +1 -1
  437. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  438. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  439. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  440. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  441. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  442. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  443. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  444. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  445. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  446. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  447. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  448. package/dist/modes/interactive/components/config-selector.js +13 -3
  449. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  450. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  451. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  452. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  453. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  454. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  455. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  456. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  457. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  458. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  459. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  460. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  461. package/dist/modes/interactive/components/diff.js.map +1 -1
  462. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  463. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  464. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  465. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  466. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  467. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  468. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  469. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  470. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  471. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  472. package/dist/modes/interactive/components/first-time-setup.d.ts +4 -4
  473. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  474. package/dist/modes/interactive/components/first-time-setup.js +8 -2
  475. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  476. package/dist/modes/interactive/components/footer.d.ts +7 -0
  477. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  478. package/dist/modes/interactive/components/footer.js +43 -3
  479. package/dist/modes/interactive/components/footer.js.map +1 -1
  480. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  481. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  482. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  483. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  484. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  485. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
  486. package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
  487. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  488. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  489. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  490. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  491. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  492. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  493. package/dist/modes/interactive/components/pi-logo.d.ts +12 -0
  494. package/dist/modes/interactive/components/pi-logo.d.ts.map +1 -0
  495. package/dist/modes/interactive/components/pi-logo.js +25 -0
  496. package/dist/modes/interactive/components/pi-logo.js.map +1 -0
  497. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  498. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  499. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  500. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  501. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  502. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  503. package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  504. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  505. package/dist/modes/interactive/components/settings-selector.js +28 -6
  506. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  507. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  508. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  509. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  510. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  511. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  512. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  513. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  514. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  515. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  516. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  517. package/dist/modes/interactive/components/themed-text.d.ts +17 -0
  518. package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
  519. package/dist/modes/interactive/components/themed-text.js +29 -0
  520. package/dist/modes/interactive/components/themed-text.js.map +1 -0
  521. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  522. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  523. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  524. package/dist/modes/interactive/components/tool-execution.js +2 -2
  525. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  526. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  527. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  528. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  529. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  530. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  531. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  532. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  533. package/dist/modes/interactive/components/user-message.js.map +1 -1
  534. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  535. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  536. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  537. package/dist/modes/interactive/external-editor.js.map +1 -1
  538. package/dist/modes/interactive/interactive-mode.d.ts +11 -0
  539. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  540. package/dist/modes/interactive/interactive-mode.js +199 -161
  541. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  542. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  543. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  544. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  545. package/dist/modes/interactive/model-search.js.map +1 -1
  546. package/dist/modes/interactive/session-share.d.ts.map +1 -1
  547. package/dist/modes/interactive/session-share.js.map +1 -1
  548. package/dist/modes/interactive/theme/dark.json +59 -72
  549. package/dist/modes/interactive/theme/light.json +57 -69
  550. package/dist/modes/interactive/theme/system-theme.d.ts +54 -0
  551. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  552. package/dist/modes/interactive/theme/system-theme.js +535 -0
  553. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  554. package/dist/modes/interactive/theme/theme-controller.d.ts +46 -6
  555. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  556. package/dist/modes/interactive/theme/theme-controller.js +127 -47
  557. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  558. package/dist/modes/interactive/theme/theme-json.d.ts +1 -0
  559. package/dist/modes/interactive/theme/theme-json.d.ts.map +1 -1
  560. package/dist/modes/interactive/theme/theme-json.js +3 -1
  561. package/dist/modes/interactive/theme/theme-json.js.map +1 -1
  562. package/dist/modes/interactive/theme/theme-schema.json +7 -2
  563. package/dist/modes/interactive/theme/theme.d.ts +66 -39
  564. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  565. package/dist/modes/interactive/theme/theme.js +238 -317
  566. package/dist/modes/interactive/theme/theme.js.map +1 -1
  567. package/dist/modes/interactive/tui-renderer.d.ts +2 -1
  568. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -1
  569. package/dist/modes/interactive/tui-renderer.js +1 -0
  570. package/dist/modes/interactive/tui-renderer.js.map +1 -1
  571. package/dist/modes/json-event.d.ts.map +1 -1
  572. package/dist/modes/json-event.js.map +1 -1
  573. package/dist/modes/print-mode.d.ts.map +1 -1
  574. package/dist/modes/print-mode.js.map +1 -1
  575. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  576. package/dist/modes/rpc/jsonl.js.map +1 -1
  577. package/dist/modes/rpc/rpc-client.d.ts +6 -6
  578. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  579. package/dist/modes/rpc/rpc-client.js +12 -8
  580. package/dist/modes/rpc/rpc-client.js.map +1 -1
  581. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  582. package/dist/modes/rpc/rpc-mode.js +7 -9
  583. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  584. package/dist/modes/rpc/rpc-types.d.ts +10 -1
  585. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  586. package/dist/modes/rpc/rpc-types.js.map +1 -1
  587. package/dist/package-manager-cli.d.ts.map +1 -1
  588. package/dist/package-manager-cli.js +6 -2
  589. package/dist/package-manager-cli.js.map +1 -1
  590. package/dist/rpc-entry.d.ts.map +1 -1
  591. package/dist/rpc-entry.js.map +1 -1
  592. package/dist/utils/abort.d.ts.map +1 -1
  593. package/dist/utils/abort.js.map +1 -1
  594. package/dist/utils/ansi.d.ts.map +1 -1
  595. package/dist/utils/ansi.js.map +1 -1
  596. package/dist/utils/changelog.d.ts.map +1 -1
  597. package/dist/utils/changelog.js.map +1 -1
  598. package/dist/utils/child-process.d.ts.map +1 -1
  599. package/dist/utils/child-process.js.map +1 -1
  600. package/dist/utils/clipboard-command.d.ts.map +1 -1
  601. package/dist/utils/clipboard-command.js.map +1 -1
  602. package/dist/utils/clipboard-image.d.ts.map +1 -1
  603. package/dist/utils/clipboard-image.js +14 -17
  604. package/dist/utils/clipboard-image.js.map +1 -1
  605. package/dist/utils/clipboard.d.ts +2 -0
  606. package/dist/utils/clipboard.d.ts.map +1 -1
  607. package/dist/utils/clipboard.js +5 -0
  608. package/dist/utils/clipboard.js.map +1 -1
  609. package/dist/utils/deprecation.d.ts.map +1 -1
  610. package/dist/utils/deprecation.js.map +1 -1
  611. package/dist/utils/exif-orientation.d.ts.map +1 -1
  612. package/dist/utils/exif-orientation.js.map +1 -1
  613. package/dist/utils/frontmatter.d.ts.map +1 -1
  614. package/dist/utils/frontmatter.js.map +1 -1
  615. package/dist/utils/fs-watch.d.ts.map +1 -1
  616. package/dist/utils/fs-watch.js.map +1 -1
  617. package/dist/utils/git.d.ts.map +1 -1
  618. package/dist/utils/git.js.map +1 -1
  619. package/dist/utils/html.d.ts.map +1 -1
  620. package/dist/utils/html.js.map +1 -1
  621. package/dist/utils/image-convert.d.ts.map +1 -1
  622. package/dist/utils/image-convert.js.map +1 -1
  623. package/dist/utils/image-process.d.ts.map +1 -1
  624. package/dist/utils/image-process.js.map +1 -1
  625. package/dist/utils/image-resize-core.d.ts.map +1 -1
  626. package/dist/utils/image-resize-core.js.map +1 -1
  627. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  628. package/dist/utils/image-resize-worker.js.map +1 -1
  629. package/dist/utils/image-resize.d.ts.map +1 -1
  630. package/dist/utils/image-resize.js.map +1 -1
  631. package/dist/utils/json.d.ts.map +1 -1
  632. package/dist/utils/json.js.map +1 -1
  633. package/dist/utils/management-http.d.ts.map +1 -1
  634. package/dist/utils/management-http.js.map +1 -1
  635. package/dist/utils/mime.d.ts.map +1 -1
  636. package/dist/utils/mime.js.map +1 -1
  637. package/dist/utils/open-browser.d.ts.map +1 -1
  638. package/dist/utils/open-browser.js.map +1 -1
  639. package/dist/utils/paths.d.ts +3 -3
  640. package/dist/utils/paths.d.ts.map +1 -1
  641. package/dist/utils/paths.js +5 -4
  642. package/dist/utils/paths.js.map +1 -1
  643. package/dist/utils/photon.d.ts.map +1 -1
  644. package/dist/utils/photon.js.map +1 -1
  645. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  646. package/dist/utils/pi-user-agent.js.map +1 -1
  647. package/dist/utils/shell.d.ts +1 -3
  648. package/dist/utils/shell.d.ts.map +1 -1
  649. package/dist/utils/shell.js +3 -30
  650. package/dist/utils/shell.js.map +1 -1
  651. package/dist/utils/sleep.d.ts.map +1 -1
  652. package/dist/utils/sleep.js.map +1 -1
  653. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  654. package/dist/utils/syntax-highlight.js +2 -0
  655. package/dist/utils/syntax-highlight.js.map +1 -1
  656. package/dist/utils/text.d.ts.map +1 -1
  657. package/dist/utils/text.js.map +1 -1
  658. package/dist/utils/tool-result-images.d.ts.map +1 -1
  659. package/dist/utils/tool-result-images.js.map +1 -1
  660. package/dist/utils/tools-manager.d.ts.map +1 -1
  661. package/dist/utils/tools-manager.js.map +1 -1
  662. package/dist/utils/version-check.d.ts.map +1 -1
  663. package/dist/utils/version-check.js.map +1 -1
  664. package/dist/utils/windows-self-update.d.ts.map +1 -1
  665. package/dist/utils/windows-self-update.js.map +1 -1
  666. package/dist/utils/wsl.d.ts.map +1 -1
  667. package/dist/utils/wsl.js.map +1 -1
  668. package/dist/utils/zip.d.ts.map +1 -1
  669. package/dist/utils/zip.js.map +1 -1
  670. package/docs/cli-integration.md +106 -0
  671. package/docs/cli.md +329 -0
  672. package/docs/compaction.md +22 -22
  673. package/docs/configuration.md +47 -0
  674. package/docs/containerization.md +109 -82
  675. package/docs/custom-provider.md +109 -722
  676. package/docs/docs.json +147 -99
  677. package/docs/environment-variables.md +3 -5
  678. package/docs/extensions.md +165 -2996
  679. package/docs/how-pi-works.md +49 -0
  680. package/docs/images/interactive-mode.png +0 -0
  681. package/docs/index.md +24 -69
  682. package/docs/json.md +193 -65
  683. package/docs/keybindings.md +58 -103
  684. package/docs/llama-cpp.md +16 -3
  685. package/docs/mcp.md +188 -0
  686. package/docs/message-types.md +261 -0
  687. package/docs/models.md +81 -556
  688. package/docs/packages.md +67 -166
  689. package/docs/prompt-templates.md +31 -68
  690. package/docs/providers.md +103 -240
  691. package/docs/quickstart.md +61 -106
  692. package/docs/rpc-commands.md +860 -0
  693. package/docs/rpc-extension-ui.md +200 -0
  694. package/docs/rpc.md +130 -1555
  695. package/docs/sdk.md +79 -1169
  696. package/docs/security.md +72 -32
  697. package/docs/session-format.md +15 -215
  698. package/docs/sessions.md +35 -141
  699. package/docs/settings.md +116 -377
  700. package/docs/shell-aliases.md +85 -5
  701. package/docs/skills.md +51 -190
  702. package/docs/slash-commands.md +60 -0
  703. package/docs/terminal-setup.md +105 -78
  704. package/docs/termux.md +74 -83
  705. package/docs/themes.md +88 -274
  706. package/docs/tmux.md +31 -39
  707. package/docs/tui.md +74 -910
  708. package/docs/usage.md +54 -272
  709. package/docs/virtual-models.md +114 -0
  710. package/docs/windows.md +45 -17
  711. package/examples/README.md +13 -2
  712. package/examples/extensions/README.md +2 -0
  713. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  714. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  715. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  716. package/examples/extensions/custom-provider-gitlab-duo/test.ts +5 -5
  717. package/examples/extensions/debug-provider.ts +90 -0
  718. package/examples/extensions/gondolin/package-lock.json +2 -2
  719. package/examples/extensions/gondolin/package.json +1 -1
  720. package/examples/extensions/jev-router.ts +113 -0
  721. package/examples/extensions/sandbox/package-lock.json +2 -2
  722. package/examples/extensions/sandbox/package.json +1 -1
  723. package/examples/extensions/with-deps/package-lock.json +2 -2
  724. package/examples/extensions/with-deps/package.json +1 -1
  725. package/examples/rpc-client.ts +35 -0
  726. package/examples/rpc-extension-ui.ts +26 -6
  727. package/examples/sdk/14-codemode-mcp.ts +61 -0
  728. package/examples/sdk/README.md +3 -2
  729. package/npm-shrinkwrap.json +89 -39
  730. package/package.json +14 -12
  731. package/dist/bundle/chunks/anthropic-messages-MYU5ZMRF.js +0 -6
  732. package/dist/bundle/chunks/azure-openai-responses-HUSQ3GP2.js +0 -2
  733. package/dist/bundle/chunks/chunk-4DKZACXI.js +0 -1568
  734. package/dist/bundle/chunks/chunk-6R7UI4IY.js +0 -2
  735. package/dist/bundle/chunks/chunk-GV2E3GBU.js +0 -2
  736. package/dist/bundle/chunks/chunk-NUHFSC37.js +0 -25
  737. package/dist/bundle/chunks/chunk-RCZIEVGO.js +0 -11
  738. package/dist/bundle/chunks/google-generative-ai-IMS5EK2Y.js +0 -2
  739. package/dist/bundle/chunks/google-vertex-O4YJEQUW.js +0 -2
  740. package/dist/bundle/chunks/mistral-conversations-NOSQHBEY.js +0 -5
  741. package/dist/bundle/chunks/openai-responses-HWEUZ6WZ.js +0 -2
  742. package/dist/bundle/chunks/virtual-modules-BNWPZYDH.js +0 -2
  743. package/docs/development.md +0 -90
package/docs/themes.md CHANGED
@@ -1,322 +1,136 @@
1
- > pi can create themes. Ask it to build one for your setup.
1
+ # Customize Pi with themes
2
2
 
3
- # Themes
3
+ Themes control the colors Pi uses in interactive mode and HTML exports. Pi includes the `system`, `dark`, and `light` themes. You can select one theme, follow your terminal's light or dark appearance, or create your own palette.
4
4
 
5
- Themes are JSON files that define colors for the TUI.
5
+ ## Use your terminal's colors
6
6
 
7
- ## Table of Contents
7
+ The `system` theme is the default. It builds Pi's colors from your terminal's theme, so Pi matches the terminal instead of bringing its own palette:
8
8
 
9
- - [Locations](#locations)
10
- - [Selecting a Theme](#selecting-a-theme)
11
- - [Creating a Custom Theme](#creating-a-custom-theme)
12
- - [Theme Format](#theme-format)
13
- - [Color Tokens](#color-tokens)
14
- - [Color Values](#color-values)
15
- - [Tips](#tips)
9
+ - Pi queries the terminal's default foreground and background colors and its 16 ANSI colors.
10
+ - Each Pi color takes its hue from one ANSI color, for example errors from red and links from blue.
11
+ - Pi sets each color's lightness so that it stands out from the background by a minimum contrast. Body text keeps at least a 4.5:1 WCAG contrast ratio on the background and every panel.
12
+ - When the terminal switches between light and dark, Pi queries the colors again and rebuilds the theme.
16
13
 
17
- ## Locations
14
+ The theme adapts to what the terminal reports:
18
15
 
19
- Pi loads themes from:
16
+ | Terminal reports | Result |
17
+ |---|---|
18
+ | Background and ANSI colors | Colors from the terminal palette, placed for the actual background. |
19
+ | Background only | Pi's own hues, placed for the actual background. |
20
+ | Nothing | ANSI color indices and the terminal's default colors, which the terminal renders itself. Secondary text is faint, and panels have no background color. |
20
21
 
21
- - Built-in: `dark`, `light`
22
- - Global: `~/.pi/agent/themes/*.json`
23
- - Project: `.pi/themes/*.json` (only after the project is trusted)
24
- - Packages: `themes/` directories or `pi.themes` entries in `package.json`
25
- - Settings: `themes` array with files or directories
26
- - CLI: `--theme <path>` (repeatable)
22
+ Pi asks the terminal for its colors when it starts. Terminals usually answer within a few milliseconds, and Pi waits at most 100 ms before showing the startup header. If the terminal does not answer in time, Pi uses the ANSI color fallback, and it still applies the colors if they arrive later, for example over a slow SSH connection. `system` is a reserved name: a custom theme with that name is ignored.
27
23
 
28
- Disable discovery with `--no-themes`.
24
+ <a id="selecting-a-theme"></a>
29
25
 
30
- ## Selecting a Theme
26
+ ## Choose a theme
31
27
 
32
- Select a theme via `/settings` or in `settings.json`:
28
+ Open `/settings` and select **Theme**. You can use one theme for every terminal appearance or choose separate themes for light and dark terminals.
29
+
30
+ The selection is saved as the `theme` [setting](settings.md#terminal-and-display):
33
31
 
34
32
  ```json
35
33
  {
36
- "theme": "my-theme"
34
+ "theme": "dark"
37
35
  }
38
36
  ```
39
37
 
40
- On first run, pi detects your terminal background and defaults to `dark` or `light`.
41
-
42
- ### Initial Theme
43
-
44
- Start an interactive run with a theme without changing the saved setting:
45
-
46
- ```bash
47
- pi --use-theme light
48
- ```
38
+ Without a `theme` setting, Pi uses `system`.
49
39
 
50
- To follow terminal appearance, use `lightTheme/darkTheme` syntax:
40
+ Automatic mode stores the light theme first and the dark theme second:
51
41
 
52
- ```bash
53
- pi --use-theme light/dark
42
+ ```json
43
+ {
44
+ "theme": "light/dark"
45
+ }
54
46
  ```
55
47
 
56
- The CLI value is the initial theme for that run. Choosing another theme later in `/settings` applies it immediately
57
- and saves it normally.
48
+ Pi decides whether the terminal is light or dark from its reported background and foreground colors. If the terminal does not report its background, Pi uses the terminal's light/dark notification, then the `COLORFGBG` environment variable, then dark. The same decision picks the theme of a light/dark pair and the appearance of `system`. When automatic mode is active, Pi changes themes when the terminal reports an appearance change. Theme names cannot contain `/` because Pi reserves it for this setting format.
58
49
 
59
- ## Creating a Custom Theme
60
-
61
- 1. Create a theme file:
50
+ Use `--use-theme` to choose the initial theme for one invocation without changing the saved setting:
62
51
 
63
52
  ```bash
64
- mkdir -p ~/.pi/agent/themes
65
- vim ~/.pi/agent/themes/my-theme.json
53
+ pi --use-theme light
54
+ pi --use-theme light/dark
66
55
  ```
67
56
 
68
- 2. Define the theme with all required colors (see [Color Tokens](#color-tokens)):
57
+ See [CLI resources](cli.md#resources) for the command-line option.
69
58
 
70
- ```json
71
- {
72
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
73
- "name": "my-theme",
74
- "vars": {
75
- "primary": "#00aaff",
76
- "secondary": 242
77
- },
78
- "colors": {
79
- "accent": "primary",
80
- "border": "primary",
81
- "borderAccent": "#00ffff",
82
- "borderMuted": "secondary",
83
- "success": "#00ff00",
84
- "error": "#ff0000",
85
- "warning": "#ffff00",
86
- "muted": "secondary",
87
- "dim": 240,
88
- "text": "",
89
- "thinkingText": "secondary",
90
- "selectedBg": "#2d2d30",
91
- "scrollbarTrack": "secondary",
92
- "scrollbarThumb": "",
93
- "searchMatchBg": "#2d2d30",
94
- "searchMatchText": "",
95
- "userMessageBg": "#2d2d30",
96
- "userMessageText": "",
97
- "customMessageBg": "#2d2d30",
98
- "customMessageText": "",
99
- "customMessageLabel": "primary",
100
- "toolPendingBg": "#1e1e2e",
101
- "toolSuccessBg": "#1e2e1e",
102
- "toolErrorBg": "#2e1e1e",
103
- "toolTitle": "primary",
104
- "toolOutput": "",
105
- "mdHeading": "#ffaa00",
106
- "mdLink": "primary",
107
- "mdLinkUrl": "secondary",
108
- "mdCode": "#00ffff",
109
- "mdCodeBlock": "",
110
- "mdCodeBlockBorder": "secondary",
111
- "mdQuote": "secondary",
112
- "mdQuoteBorder": "secondary",
113
- "mdHr": "secondary",
114
- "mdListBullet": "#00ffff",
115
- "toolDiffAdded": "#00ff00",
116
- "toolDiffRemoved": "#ff0000",
117
- "toolDiffContext": "secondary",
118
- "syntaxComment": "secondary",
119
- "syntaxKeyword": "primary",
120
- "syntaxFunction": "#00aaff",
121
- "syntaxVariable": "#ffaa00",
122
- "syntaxString": "#00ff00",
123
- "syntaxNumber": "#ff00ff",
124
- "syntaxType": "#00aaff",
125
- "syntaxOperator": "primary",
126
- "syntaxPunctuation": "secondary",
127
- "thinkingOff": "secondary",
128
- "thinkingMinimal": "primary",
129
- "thinkingLow": "#00aaff",
130
- "thinkingMedium": "#00ffff",
131
- "thinkingHigh": "#ff00ff",
132
- "thinkingXhigh": "#ff0000",
133
- "thinkingMax": "#ff0088",
134
- "bashMode": "#ffaa00"
135
- }
136
- }
137
- ```
59
+ ## Create a custom theme
138
60
 
139
- 3. Select the theme via `/settings`.
61
+ Copy one of the [built-in themes](https://github.com/earendil-works/pi/tree/main/packages/coding-agent/src/modes/interactive/theme) or create a new JSON file conforming to the [schema](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json). The built-in themes use OKHSL colors, with variables for colors that several roles share, so you can adjust a hue, saturation, or lightness directly.
140
62
 
141
- **Hot reload:** When you edit the currently active custom theme file, pi reloads it automatically for immediate visual feedback.
63
+ 1. Save the file as `<agent-dir>/themes/my-theme.json`. The agent directory defaults to `~/.pi/agent`.
64
+ 2. Set its `name` to `my-theme`.
65
+ 3. Change values in `vars` and `colors`.
66
+ 4. Select `my-theme` through `/settings`.
142
67
 
143
- ## Theme Format
68
+ Use the theme name as the filename. Pi hot-reloads the active user theme only from `<agent-dir>/themes/<name>.json`. Run `/reload` after adding or changing a theme from any other source.
144
69
 
145
- ```json
146
- {
147
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
148
- "name": "my-theme",
149
- "vars": {
150
- "blue": "#0066cc",
151
- "gray": 242
152
- },
153
- "colors": {
154
- "accent": "blue",
155
- "muted": "gray",
156
- "text": "",
157
- ...
158
- }
159
- }
160
- ```
70
+ ## Understand the theme file
161
71
 
162
- - `name` is required, must be unique, and must not contain `/`.
163
- - `vars` is optional. Define reusable colors here, then reference them in `colors`.
164
- - `colors` must define all 53 required tokens. `thinkingMax` and the two search highlight tokens are optional and use the fallbacks listed below.
165
-
166
- The `$schema` field enables editor auto-completion and validation.
167
-
168
- ## Color Tokens
169
-
170
- Every theme must define all 53 required color tokens. The optional tokens preserve compatibility with existing themes: `thinkingMax` falls back to `thinkingXhigh`, `searchMatchBg` falls back to `selectedBg`, and `searchMatchText` falls back to `text`. Other search matches use `searchMatchText` on `searchMatchBg` with an underline; the current match reverses that foreground/background pair and uses bold text.
171
-
172
- ### Core UI (13 colors)
173
-
174
- | Token | Purpose |
175
- |-------|---------|
176
- | `accent` | Primary accent (logo, selected items, cursor) |
177
- | `border` | Normal borders |
178
- | `borderAccent` | Highlighted borders |
179
- | `borderMuted` | Subtle borders (editor) |
180
- | `success` | Success states |
181
- | `error` | Error states |
182
- | `warning` | Warning states |
183
- | `muted` | Secondary text |
184
- | `dim` | Tertiary text |
185
- | `text` | Default text (usually `""`) |
186
- | `thinkingText` | Thinking block text |
187
- | `scrollbarTrack` | Fullscreen scrollbar track foreground |
188
- | `scrollbarThumb` | Fullscreen scrollbar thumb foreground, shared by normal and expanded states |
189
-
190
- ### Backgrounds & Content (11 required, 2 optional)
191
-
192
- | Token | Purpose |
193
- |-------|---------|
194
- | `selectedBg` | Selected line background |
195
- | `searchMatchBg` | Transcript search match background and current-match text; optional, falls back to `selectedBg` |
196
- | `searchMatchText` | Transcript search match text and current-match background; optional, falls back to `text` |
197
- | `userMessageBg` | User message background |
198
- | `userMessageText` | User message text |
199
- | `customMessageBg` | Extension message background |
200
- | `customMessageText` | Extension message text |
201
- | `customMessageLabel` | Extension message label |
202
- | `toolPendingBg` | Tool box (pending) |
203
- | `toolSuccessBg` | Tool box (success) |
204
- | `toolErrorBg` | Tool box (error) |
205
- | `toolTitle` | Tool title |
206
- | `toolOutput` | Tool output text |
207
-
208
- ### Markdown (10 colors)
209
-
210
- | Token | Purpose |
211
- |-------|---------|
212
- | `mdHeading` | Headings |
213
- | `mdLink` | Link text |
214
- | `mdLinkUrl` | Link URL |
215
- | `mdCode` | Inline code |
216
- | `mdCodeBlock` | Code block content |
217
- | `mdCodeBlockBorder` | Code block fences |
218
- | `mdQuote` | Blockquote text |
219
- | `mdQuoteBorder` | Blockquote border |
220
- | `mdHr` | Horizontal rule |
221
- | `mdListBullet` | List bullets |
222
-
223
- ### Tool Diffs (3 colors)
224
-
225
- | Token | Purpose |
226
- |-------|---------|
227
- | `toolDiffAdded` | Added lines |
228
- | `toolDiffRemoved` | Removed lines |
229
- | `toolDiffContext` | Context lines |
230
-
231
- ### Syntax Highlighting (9 colors)
232
-
233
- | Token | Purpose |
234
- |-------|---------|
235
- | `syntaxComment` | Comments |
236
- | `syntaxKeyword` | Keywords |
237
- | `syntaxFunction` | Function names |
238
- | `syntaxVariable` | Variables |
239
- | `syntaxString` | Strings |
240
- | `syntaxNumber` | Numbers |
241
- | `syntaxType` | Types |
242
- | `syntaxOperator` | Operators |
243
- | `syntaxPunctuation` | Punctuation |
244
-
245
- ### Thinking Level Borders (6 required, 1 optional)
246
-
247
- Editor border colors indicating thinking level (visual hierarchy from subtle to prominent):
248
-
249
- | Token | Purpose |
250
- |-------|---------|
251
- | `thinkingOff` | Thinking off |
252
- | `thinkingMinimal` | Minimal thinking |
253
- | `thinkingLow` | Low thinking |
254
- | `thinkingMedium` | Medium thinking |
255
- | `thinkingHigh` | High thinking |
256
- | `thinkingXhigh` | Extra high thinking |
257
- | `thinkingMax` | Maximum thinking; optional, falls back to `thinkingXhigh` |
258
-
259
- ### Bash Mode (1 color)
260
-
261
- | Token | Purpose |
262
- |-------|---------|
263
- | `bashMode` | Editor border in bash mode (`!` prefix) |
264
-
265
- ### HTML Export (optional)
266
-
267
- The `export` section controls colors for `/export` HTML output. If omitted, colors are derived from `userMessageBg`.
72
+ | Property | Required | Responsibility |
73
+ |---|---|---|
74
+ | `$schema` | No | Enables editor validation and completion against Pi's published schema. |
75
+ | `name` | Yes | Identifies the theme in selectors and settings. It must be unique, cannot contain `/`, and cannot be `system`. |
76
+ | `appearance` | No | `"dark"` or `"light"`: the background the theme is designed for. Pi detects it from the theme colors when omitted. |
77
+ | `vars` | No | Defines reusable color values. Variables can reference other variables. |
78
+ | `colors` | Yes | Assigns colors to terminal UI roles. The schema identifies required and optional roles. |
79
+ | `export` | No | Overrides page and panel backgrounds in HTML exports. |
268
80
 
269
- ```json
270
- {
271
- "export": {
272
- "pageBg": "#18181e",
273
- "cardBg": "#1e1e24",
274
- "infoBg": "#3c3728"
275
- }
276
- }
277
- ```
81
+ A color can be written in six forms:
278
82
 
279
- ## Color Values
83
+ | Form | Example | Meaning |
84
+ |---|---|---|
85
+ | RGB hexadecimal | `"#0af"` or `"#00aaff"` | A three- or six-digit sRGB color. |
86
+ | OKLCH | `"oklch(62% 0.1 200)"` | Perceptual lightness, chroma, and hue. |
87
+ | OKHSL | `"okhsl(250 60% 55%)"` | Hue, saturation, and lightness. Saturation is relative to the most the sRGB gamut allows at that hue and lightness, so every value is in gamut and equal saturation looks equally colorful. |
88
+ | 256-color index | `39` | An ANSI palette index from `0` through `255`. |
89
+ | Variable reference | `"primary"` | The value of an entry in `vars`. |
90
+ | Terminal default | `""` | The terminal's default foreground or background color. |
280
91
 
281
- Four formats are supported:
92
+ Terminal default colors render as the terminal's own colors. Where Pi needs a concrete value, such as HTML export or extension color math, it uses the default colors the terminal reports, or a black or white guess based on the theme's appearance.
282
93
 
283
- | Format | Example | Description |
284
- |--------|---------|-------------|
285
- | Hex | `"#ff0000"` | 6-digit hex RGB |
286
- | 256-color | `39` | xterm 256-color palette index (0-255) |
287
- | Variable | `"primary"` | Reference to a `vars` entry |
288
- | Default | `""` | Terminal's default color |
94
+ Pi resolves chained variable references. A missing variable or circular reference makes the theme invalid. Pi uses truecolor when available, gamut-maps OKLCH to sRGB, and approximates colors for 256-color terminals. HTML exports convert OKHSL values to hexadecimal because CSS does not support them. If colors differ from their source values, check your terminal's truecolor detection and contrast settings. See [Configure Your Terminal](terminal-setup.md#override-detected-capabilities).
289
95
 
290
- ### 256-Color Palette
96
+ Use the [theme JSON schema](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json) for the exact properties, required colors, and accepted value types.
291
97
 
292
- - `0-15`: Basic ANSI colors (terminal-dependent)
293
- - `16-231`: 6×6×6 RGB cube (`16 + 36×R + 6×G + B` where R,G,B are 0-5)
294
- - `232-255`: Grayscale ramp
98
+ Pi reports invalid theme files during startup and `/reload`.
295
99
 
296
- ### Terminal Compatibility
100
+ ## Find the color to change
297
101
 
298
- Pi uses 24-bit RGB colors. Most modern terminals support this (iTerm2, Kitty, WezTerm, Windows Terminal, VS Code). For older terminals with only 256-color support, pi falls back to the nearest approximation.
102
+ Theme colors describe interface roles rather than individual components. Use these groups to find the relevant part of the schema:
299
103
 
300
- Check truecolor support:
301
-
302
- ```bash
303
- echo $COLORTERM # Should output "truecolor" or "24bit"
304
- ```
104
+ | Area | Color names |
105
+ |---|---|
106
+ | General interface | `accent`, `border*`, `text`, `muted`, `dim`, `success`, `error`, `warning` |
107
+ | Selection and fullscreen | `selectedBg`, `searchMatch*`, `scrollbar*` |
108
+ | Messages | `userMessage*`, `customMessage*`, `thinkingText` |
109
+ | Tool execution | `toolPendingBg`, `toolSuccessBg`, `toolErrorBg`, `toolTitle`, `toolOutput` |
110
+ | Markdown | `md*` |
111
+ | Tool diffs | `toolDiff*` |
112
+ | Syntax highlighting | `syntax*` |
113
+ | Editor modes | `thinking*`, `bashMode` |
114
+ | HTML export | `export.pageBg`, `export.cardBg`, `export.infoBg` |
305
115
 
306
- ## Tips
116
+ The schema is the format reference. The built-in themes provide complete values that you can copy and adjust.
307
117
 
308
- **Dark terminals:** Use bright, saturated colors with higher contrast.
118
+ Five colors are optional and inherit another color when omitted:
309
119
 
310
- **Light terminals:** Use darker, muted colors with lower contrast.
120
+ | Optional color | Fallback |
121
+ |---|---|
122
+ | `scrollbarTrack` | `muted` |
123
+ | `scrollbarThumb` | `text` |
124
+ | `searchMatchBg` | `selectedBg` |
125
+ | `searchMatchText` | `text` |
126
+ | `thinkingMax` | `thinkingXhigh` |
311
127
 
312
- **Color harmony:** Start with a base palette (Nord, Gruvbox, Tokyo Night), define it in `vars`, and reference consistently.
128
+ If `export` colors are omitted, Pi derives HTML page and panel backgrounds from `userMessageBg`.
313
129
 
314
- **Testing:** Check your theme with different message types, tool states, markdown content, and long wrapped text.
130
+ ## Load a theme from a project or package
315
131
 
316
- **VS Code:** Set `terminal.integrated.minimumContrastRatio` to `1` for accurate colors.
132
+ Place a project theme in `.pi/themes/`. Project themes load only after [project trust](security.md#understand-project-trust) is granted.
317
133
 
318
- ## Examples
134
+ You can also load theme files and directories through the `themes` setting or distribute them in a Pi package. See [Configuration](configuration.md), [Settings](settings.md#resources), and [Pi Packages](packages.md).
319
135
 
320
- See the built-in themes:
321
- - [dark.json](../src/modes/interactive/theme/dark.json)
322
- - [light.json](../src/modes/interactive/theme/light.json)
136
+ Each loaded theme must have a unique name. Pi reports duplicate names as resource collisions.
package/docs/tmux.md CHANGED
@@ -1,63 +1,55 @@
1
- # tmux Setup
1
+ # Run Pi in tmux
2
2
 
3
- Pi works inside tmux, but tmux strips modifier information from certain keys by default. Without configuration, `Shift+Enter` and `Ctrl+Enter` are usually indistinguishable from plain `Enter`.
3
+ Pi works inside tmux, but tmux can report `Shift+Enter`, `Ctrl+Enter`, and plain `Enter` as the same key. Enable extended keys so Pi can distinguish them.
4
4
 
5
- ## Recommended Configuration
6
-
7
- Add to `~/.tmux.conf`:
8
-
9
- ```tmux
10
- set -g extended-keys on
11
- set -g extended-keys-format csi-u
12
- ```
13
-
14
- Then restart tmux fully:
5
+ ## Check your tmux version
15
6
 
16
7
  ```bash
17
- tmux kill-server
18
- tmux
8
+ tmux -V
19
9
  ```
20
10
 
21
- Pi requests extended key reporting automatically when Kitty keyboard protocol is not available. With `extended-keys-format csi-u`, tmux forwards modified keys in CSI-u format, which is the most reliable configuration. The `extended-keys-format` option requires tmux 3.5 or later.
11
+ For tmux 3.5 or newer, use the recommended CSI-u configuration below. For tmux 3.2 through 3.4, use the older-version configuration.
22
12
 
23
- ## Why `csi-u` Is Recommended
13
+ ## Enable extended keys in tmux 3.5 or newer
24
14
 
25
- With only:
15
+ Add these lines to `~/.tmux.conf`:
26
16
 
27
17
  ```tmux
28
18
  set -g extended-keys on
19
+ set -g extended-keys-format csi-u
29
20
  ```
30
21
 
31
- tmux defaults to `extended-keys-format xterm`. When an application requests extended key reporting, modified keys are forwarded in xterm `modifyOtherKeys` format such as:
22
+ Pi requests extended-key reporting when the terminal does not provide the Kitty keyboard protocol directly. CSI-u is the most reliable format for forwarding modified keys through tmux.
32
23
 
33
- - `Ctrl+C` → `\x1b[27;5;99~`
34
- - `Ctrl+D` → `\x1b[27;5;100~`
35
- - `Ctrl+Enter` → `\x1b[27;5;13~`
24
+ ## Restart tmux
36
25
 
37
- With `extended-keys-format csi-u`, the same keys are forwarded as:
26
+ The configuration applies to the tmux server. To guarantee that it is active, close your tmux sessions and start a new server.
38
27
 
39
- - `Ctrl+C` → `\x1b[99;5u`
40
- - `Ctrl+D` → `\x1b[100;5u`
41
- - `Ctrl+Enter` → `\x1b[13;5u`
28
+ If you choose to stop the server from the command line, save your work first. This command terminates every session managed by that server:
42
29
 
43
- Pi supports both formats, but `csi-u` is the recommended tmux setup.
30
+ ```bash
31
+ tmux kill-server
32
+ tmux
33
+ ```
34
+
35
+ ## Verify modified keys
44
36
 
45
- ## What This Fixes
37
+ Start Pi inside the new tmux session and check that:
46
38
 
47
- Without tmux extended keys, modified Enter keys collapse to legacy sequences:
39
+ 1. `Shift+Enter` inserts a new line in the editor.
40
+ 2. `Enter` submits the prompt.
41
+ 3. `Alt+Enter` queues a follow-up on macOS and Linux. Windows and WSL use `Ctrl+Q` by default.
48
42
 
49
- | Key | Without extkeys | With `csi-u` |
50
- |-----|-----------------|--------------|
51
- | Enter | `\r` | `\r` |
52
- | Shift+Enter | `\r` | `\x1b[13;2u` |
53
- | Ctrl+Enter | `\r` | `\x1b[13;5u` |
54
- | Alt/Option+Enter | `\x1b\r` | `\x1b[13;3u` |
43
+ If these keys still behave like plain `Enter`, verify that the terminal outside tmux can report modified keys. See [Configure your terminal](terminal-setup.md).
55
44
 
56
- This affects the default keybindings (`Enter` to submit, `Shift+Enter` for newline) and any custom keybindings using modified Enter.
45
+ ## Use tmux 3.2 through 3.4
57
46
 
58
- ## Requirements
47
+ These versions support extended keys but not `extended-keys-format csi-u`. Add only:
48
+
49
+ ```tmux
50
+ set -g extended-keys on
51
+ ```
59
52
 
60
- - tmux 3.5 or later for `extended-keys-format csi-u` (run `tmux -V` to check)
61
- - A terminal emulator that supports extended keys (Ghostty, Kitty, iTerm2, WezTerm, Windows Terminal)
53
+ Pi supports the xterm `modifyOtherKeys` format used by these versions. Restart tmux and repeat the verification steps.
62
54
 
63
- With tmux 3.2 through 3.4, omit `extended-keys-format csi-u`; Pi still supports tmux's default xterm `modifyOtherKeys` format.
55
+ For older versions, upgrade tmux or use Pi outside tmux rather than relying on modified Enter shortcuts.