@earendil-works/pi-coding-agent 0.84.4 → 0.85.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 (486) hide show
  1. package/CHANGELOG.md +57 -5
  2. package/README.md +3 -1
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/cli.js +10 -7
  5. package/dist/bun/cli.js.map +1 -1
  6. package/dist/bun/runtime-setup.d.ts +2 -0
  7. package/dist/bun/runtime-setup.d.ts.map +1 -0
  8. package/dist/bun/runtime-setup.js +9 -0
  9. package/dist/bun/runtime-setup.js.map +1 -0
  10. package/dist/bundle/chunks/anthropic-messages-QAQLEQIY.js +6 -0
  11. package/dist/bundle/chunks/{azure-openai-responses-5ENVCQ7U.js → azure-openai-responses-Q7MJBRE6.js} +1 -1
  12. package/dist/bundle/chunks/bedrock-converse-stream.js +1 -1
  13. package/dist/bundle/chunks/chunk-7ZC4UXSL.js +2 -0
  14. package/dist/bundle/chunks/chunk-EQ6DR6XK.js +5 -0
  15. package/dist/bundle/chunks/{chunk-MNAIPA3J.js → chunk-IDDQWTHI.js} +1 -1
  16. package/dist/bundle/chunks/chunk-LZKJTKCT.js +2 -0
  17. package/dist/bundle/chunks/{chunk-NBBFIJUL.js → chunk-OUXLLA64.js} +2 -2
  18. package/dist/bundle/chunks/chunk-R7UUJ4C2.js +42 -0
  19. package/dist/bundle/chunks/chunk-USJZMAIR.js +2 -0
  20. package/dist/bundle/chunks/chunk-WBE4J4AU.js +9 -0
  21. package/dist/bundle/chunks/chunk-WZB2R5YO.js +1558 -0
  22. package/dist/bundle/chunks/github-copilot.js +1 -1
  23. package/dist/bundle/chunks/{google-generative-ai-YMUPJBKR.js → google-generative-ai-BSMTYDAM.js} +1 -1
  24. package/dist/bundle/chunks/{google-vertex-MPWMV4OF.js → google-vertex-5C3HASOJ.js} +1 -1
  25. package/dist/bundle/chunks/image-resize-worker.js +1 -1
  26. package/dist/bundle/chunks/{mistral-conversations-Q3AWZJAZ.js → mistral-conversations-4M6BZBX6.js} +1 -1
  27. package/dist/bundle/chunks/node-EM5FIVUN.js +16 -0
  28. package/dist/bundle/chunks/node-TWVVAGPO.js +2 -0
  29. package/dist/bundle/chunks/openai-codex-responses-YJOO52RW.js +10 -0
  30. package/dist/bundle/chunks/{openai-completions-ERMU2SS7.js → openai-completions-QOT3QX7D.js} +3 -3
  31. package/dist/bundle/chunks/openai-responses-U7LNPQN4.js +2 -0
  32. package/dist/bundle/chunks/{pi-messages-TPFH44NP.js → pi-messages-EGZIFQGG.js} +1 -1
  33. package/dist/bundle/cli.js +1 -1
  34. package/dist/bundle/client.js +1 -1
  35. package/dist/bundle/coordinator.js +3 -0
  36. package/dist/bundle/index.js +1 -1
  37. package/dist/bundle/rpc-entry.js +1 -1
  38. package/dist/cli/args.d.ts.map +1 -1
  39. package/dist/cli/args.js +2 -0
  40. package/dist/cli/args.js.map +1 -1
  41. package/dist/cli/config-selector.d.ts.map +1 -1
  42. package/dist/cli/config-selector.js +2 -1
  43. package/dist/cli/config-selector.js.map +1 -1
  44. package/dist/cli/experimental/cli.d.ts +7 -3
  45. package/dist/cli/experimental/cli.d.ts.map +1 -1
  46. package/dist/cli/experimental/cli.js +6 -2
  47. package/dist/cli/experimental/cli.js.map +1 -1
  48. package/dist/cli/experimental/command-options.d.ts +23 -12
  49. package/dist/cli/experimental/command-options.d.ts.map +1 -1
  50. package/dist/cli/experimental/command-options.js +69 -20
  51. package/dist/cli/experimental/command-options.js.map +1 -1
  52. package/dist/cli/experimental/command.d.ts +10 -3
  53. package/dist/cli/experimental/command.d.ts.map +1 -1
  54. package/dist/cli/experimental/command.js +28 -14
  55. package/dist/cli/experimental/command.js.map +1 -1
  56. package/dist/cli/experimental/commands/client.d.ts +8 -2
  57. package/dist/cli/experimental/commands/client.d.ts.map +1 -1
  58. package/dist/cli/experimental/commands/client.js +43 -5
  59. package/dist/cli/experimental/commands/client.js.map +1 -1
  60. package/dist/cli/experimental/commands/server.d.ts +7 -3
  61. package/dist/cli/experimental/commands/server.d.ts.map +1 -1
  62. package/dist/cli/experimental/commands/server.js +27 -8
  63. package/dist/cli/experimental/commands/server.js.map +1 -1
  64. package/dist/cli.d.ts.map +1 -1
  65. package/dist/cli.js +23 -14
  66. package/dist/cli.js.map +1 -1
  67. package/dist/client/index.d.ts +1 -2
  68. package/dist/client/index.d.ts.map +1 -1
  69. package/dist/client/index.js +1 -2
  70. package/dist/client/index.js.map +1 -1
  71. package/dist/config.d.ts +1 -0
  72. package/dist/config.d.ts.map +1 -1
  73. package/dist/config.js +1 -0
  74. package/dist/config.js.map +1 -1
  75. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  76. package/dist/core/agent-session-runtime.js +15 -7
  77. package/dist/core/agent-session-runtime.js.map +1 -1
  78. package/dist/core/agent-session.d.ts +2 -6
  79. package/dist/core/agent-session.d.ts.map +1 -1
  80. package/dist/core/agent-session.js +14 -6
  81. package/dist/core/agent-session.js.map +1 -1
  82. package/dist/core/compaction/branch-summarization.d.ts +1 -1
  83. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  84. package/dist/core/compaction/branch-summarization.js +2 -1
  85. package/dist/core/compaction/branch-summarization.js.map +1 -1
  86. package/dist/core/extensions/loader.d.ts.map +1 -1
  87. package/dist/core/extensions/loader.js +1 -2
  88. package/dist/core/extensions/loader.js.map +1 -1
  89. package/dist/core/extensions/types.d.ts +8 -2
  90. package/dist/core/extensions/types.d.ts.map +1 -1
  91. package/dist/core/extensions/types.js.map +1 -1
  92. package/dist/core/http-dispatcher.d.ts.map +1 -1
  93. package/dist/core/http-dispatcher.js +2 -0
  94. package/dist/core/http-dispatcher.js.map +1 -1
  95. package/dist/core/messages.d.ts +1 -1
  96. package/dist/core/messages.d.ts.map +1 -1
  97. package/dist/core/messages.js.map +1 -1
  98. package/dist/core/model-config.d.ts +15 -0
  99. package/dist/core/model-config.d.ts.map +1 -1
  100. package/dist/core/model-config.js +3 -0
  101. package/dist/core/model-config.js.map +1 -1
  102. package/dist/core/model-runtime.d.ts +1 -0
  103. package/dist/core/model-runtime.d.ts.map +1 -1
  104. package/dist/core/model-runtime.js +5 -2
  105. package/dist/core/model-runtime.js.map +1 -1
  106. package/dist/core/provider-composer.d.ts.map +1 -1
  107. package/dist/core/provider-composer.js +8 -2
  108. package/dist/core/provider-composer.js.map +1 -1
  109. package/dist/core/session-manager.d.ts +3 -2
  110. package/dist/core/session-manager.d.ts.map +1 -1
  111. package/dist/core/session-manager.js +40 -13
  112. package/dist/core/session-manager.js.map +1 -1
  113. package/dist/core/settings-manager.d.ts.map +1 -1
  114. package/dist/core/settings-manager.js.map +1 -1
  115. package/dist/core/skills.d.ts +1 -1
  116. package/dist/core/skills.d.ts.map +1 -1
  117. package/dist/core/skills.js +4 -2
  118. package/dist/core/skills.js.map +1 -1
  119. package/dist/core/system-prompt.d.ts.map +1 -1
  120. package/dist/core/system-prompt.js +8 -9
  121. package/dist/core/system-prompt.js.map +1 -1
  122. package/dist/core/tools/bash.d.ts.map +1 -1
  123. package/dist/core/tools/bash.js +3 -117
  124. package/dist/core/tools/bash.js.map +1 -1
  125. package/dist/core/tools/edit.d.ts +1 -12
  126. package/dist/core/tools/edit.d.ts.map +1 -1
  127. package/dist/core/tools/edit.js +5 -163
  128. package/dist/core/tools/edit.js.map +1 -1
  129. package/dist/core/tools/find.d.ts.map +1 -1
  130. package/dist/core/tools/find.js +4 -55
  131. package/dist/core/tools/find.js.map +1 -1
  132. package/dist/core/tools/grep.d.ts.map +1 -1
  133. package/dist/core/tools/grep.js +4 -60
  134. package/dist/core/tools/grep.js.map +1 -1
  135. package/dist/core/tools/ls.d.ts.map +1 -1
  136. package/dist/core/tools/ls.js +4 -49
  137. package/dist/core/tools/ls.js.map +1 -1
  138. package/dist/core/tools/read.d.ts.map +1 -1
  139. package/dist/core/tools/read.js +4 -120
  140. package/dist/core/tools/read.js.map +1 -1
  141. package/dist/core/tools/renderers/bash.d.ts +12 -0
  142. package/dist/core/tools/renderers/bash.d.ts.map +1 -0
  143. package/dist/core/tools/renderers/bash.js +130 -0
  144. package/dist/core/tools/renderers/bash.js.map +1 -0
  145. package/dist/core/tools/renderers/edit.d.ts +23 -0
  146. package/dist/core/tools/renderers/edit.d.ts.map +1 -0
  147. package/dist/core/tools/renderers/edit.js +167 -0
  148. package/dist/core/tools/renderers/edit.js.map +1 -0
  149. package/dist/core/tools/renderers/find.d.ts +10 -0
  150. package/dist/core/tools/renderers/find.d.ts.map +1 -0
  151. package/dist/core/tools/renderers/find.js +64 -0
  152. package/dist/core/tools/renderers/find.js.map +1 -0
  153. package/dist/core/tools/renderers/grep.d.ts +10 -0
  154. package/dist/core/tools/renderers/grep.d.ts.map +1 -0
  155. package/dist/core/tools/renderers/grep.js +69 -0
  156. package/dist/core/tools/renderers/grep.js.map +1 -0
  157. package/dist/core/tools/renderers/index.d.ts +28 -0
  158. package/dist/core/tools/renderers/index.d.ts.map +1 -0
  159. package/dist/core/tools/renderers/index.js +47 -0
  160. package/dist/core/tools/renderers/index.js.map +1 -0
  161. package/dist/core/tools/renderers/ls.d.ts +10 -0
  162. package/dist/core/tools/renderers/ls.d.ts.map +1 -0
  163. package/dist/core/tools/renderers/ls.js +58 -0
  164. package/dist/core/tools/renderers/ls.js.map +1 -0
  165. package/dist/core/tools/renderers/read.d.ts +11 -0
  166. package/dist/core/tools/renderers/read.d.ts.map +1 -0
  167. package/dist/core/tools/renderers/read.js +129 -0
  168. package/dist/core/tools/renderers/read.js.map +1 -0
  169. package/dist/core/tools/renderers/write.d.ts +10 -0
  170. package/dist/core/tools/renderers/write.d.ts.map +1 -0
  171. package/dist/core/tools/renderers/write.js +153 -0
  172. package/dist/core/tools/renderers/write.js.map +1 -0
  173. package/dist/core/tools/write.d.ts.map +1 -1
  174. package/dist/core/tools/write.js +5 -146
  175. package/dist/core/tools/write.js.map +1 -1
  176. package/dist/experimental/client-runtime.d.ts +43 -0
  177. package/dist/experimental/client-runtime.d.ts.map +1 -0
  178. package/dist/experimental/client-runtime.js +183 -0
  179. package/dist/experimental/client-runtime.js.map +1 -0
  180. package/dist/experimental/client-tui-chat.d.ts +14 -0
  181. package/dist/experimental/client-tui-chat.d.ts.map +1 -0
  182. package/dist/experimental/client-tui-chat.js +171 -0
  183. package/dist/experimental/client-tui-chat.js.map +1 -0
  184. package/dist/experimental/client-tui.d.ts +37 -0
  185. package/dist/experimental/client-tui.d.ts.map +1 -0
  186. package/dist/experimental/client-tui.js +702 -0
  187. package/dist/experimental/client-tui.js.map +1 -0
  188. package/dist/experimental/client.d.ts +25 -0
  189. package/dist/experimental/client.d.ts.map +1 -0
  190. package/dist/experimental/client.js +99 -0
  191. package/dist/experimental/client.js.map +1 -0
  192. package/dist/experimental/coordinator-entry.d.ts +3 -0
  193. package/dist/experimental/coordinator-entry.d.ts.map +1 -0
  194. package/dist/experimental/coordinator-entry.js +11 -0
  195. package/dist/experimental/coordinator-entry.js.map +1 -0
  196. package/dist/experimental/coordinator.d.ts +38 -0
  197. package/dist/experimental/coordinator.d.ts.map +1 -0
  198. package/dist/experimental/coordinator.js +570 -0
  199. package/dist/experimental/coordinator.js.map +1 -0
  200. package/dist/experimental/mini/main.d.ts +7 -0
  201. package/dist/experimental/mini/main.d.ts.map +1 -0
  202. package/dist/experimental/mini/main.js +21 -0
  203. package/dist/experimental/mini/main.js.map +1 -0
  204. package/dist/experimental/mini/server/entry.d.ts +3 -0
  205. package/dist/experimental/mini/server/entry.d.ts.map +1 -0
  206. package/dist/experimental/mini/server/entry.js +11 -0
  207. package/dist/experimental/mini/server/entry.js.map +1 -0
  208. package/dist/experimental/mini/server/run.d.ts +13 -0
  209. package/dist/experimental/mini/server/run.d.ts.map +1 -0
  210. package/dist/experimental/mini/server/run.js +150 -0
  211. package/dist/experimental/mini/server/run.js.map +1 -0
  212. package/dist/experimental/mini/shared/protocol.d.ts +127 -0
  213. package/dist/experimental/mini/shared/protocol.d.ts.map +1 -0
  214. package/dist/experimental/mini/shared/protocol.js +13 -0
  215. package/dist/experimental/mini/shared/protocol.js.map +1 -0
  216. package/dist/experimental/mini/shared/rpc.d.ts +49 -0
  217. package/dist/experimental/mini/shared/rpc.d.ts.map +1 -0
  218. package/dist/experimental/mini/shared/rpc.js +171 -0
  219. package/dist/experimental/mini/shared/rpc.js.map +1 -0
  220. package/dist/experimental/mini/shared/transport.d.ts +35 -0
  221. package/dist/experimental/mini/shared/transport.d.ts.map +1 -0
  222. package/dist/experimental/mini/shared/transport.js +94 -0
  223. package/dist/experimental/mini/shared/transport.js.map +1 -0
  224. package/dist/experimental/mini/tui/run.d.ts +9 -0
  225. package/dist/experimental/mini/tui/run.d.ts.map +1 -0
  226. package/dist/experimental/mini/tui/run.js +62 -0
  227. package/dist/experimental/mini/tui/run.js.map +1 -0
  228. package/dist/experimental/mini/tui/session.d.ts +26 -0
  229. package/dist/experimental/mini/tui/session.d.ts.map +1 -0
  230. package/dist/experimental/mini/tui/session.js +94 -0
  231. package/dist/experimental/mini/tui/session.js.map +1 -0
  232. package/dist/experimental/mini/tui/view.d.ts +10 -0
  233. package/dist/experimental/mini/tui/view.d.ts.map +1 -0
  234. package/dist/experimental/mini/tui/view.js +459 -0
  235. package/dist/experimental/mini/tui/view.js.map +1 -0
  236. package/dist/experimental/mini/worker/entry.d.ts +3 -0
  237. package/dist/experimental/mini/worker/entry.d.ts.map +1 -0
  238. package/dist/experimental/mini/worker/entry.js +10 -0
  239. package/dist/experimental/mini/worker/entry.js.map +1 -0
  240. package/dist/experimental/mini/worker/lane-service.d.ts +44 -0
  241. package/dist/experimental/mini/worker/lane-service.d.ts.map +1 -0
  242. package/dist/experimental/mini/worker/lane-service.js +97 -0
  243. package/dist/experimental/mini/worker/lane-service.js.map +1 -0
  244. package/dist/experimental/mini/worker/models-service.d.ts +19 -0
  245. package/dist/experimental/mini/worker/models-service.d.ts.map +1 -0
  246. package/dist/experimental/mini/worker/models-service.js +136 -0
  247. package/dist/experimental/mini/worker/models-service.js.map +1 -0
  248. package/dist/experimental/mini/worker/run.d.ts +14 -0
  249. package/dist/experimental/mini/worker/run.d.ts.map +1 -0
  250. package/dist/experimental/mini/worker/run.js +88 -0
  251. package/dist/experimental/mini/worker/run.js.map +1 -0
  252. package/dist/experimental/plugin.d.ts +4 -0
  253. package/dist/experimental/plugin.d.ts.map +1 -0
  254. package/dist/experimental/plugin.js +4 -0
  255. package/dist/experimental/plugin.js.map +1 -0
  256. package/dist/experimental/plugins/bundled.d.ts +7 -0
  257. package/dist/experimental/plugins/bundled.d.ts.map +1 -0
  258. package/dist/experimental/plugins/bundled.js +48 -0
  259. package/dist/experimental/plugins/bundled.js.map +1 -0
  260. package/dist/experimental/plugins/package.d.ts +18 -0
  261. package/dist/experimental/plugins/package.d.ts.map +1 -0
  262. package/dist/experimental/plugins/package.js +113 -0
  263. package/dist/experimental/plugins/package.js.map +1 -0
  264. package/dist/experimental/process.d.ts +20 -0
  265. package/dist/experimental/process.d.ts.map +1 -0
  266. package/dist/experimental/process.js +85 -0
  267. package/dist/experimental/process.js.map +1 -0
  268. package/dist/experimental/radius-auth.d.ts +17 -0
  269. package/dist/experimental/radius-auth.d.ts.map +1 -0
  270. package/dist/experimental/radius-auth.js +52 -0
  271. package/dist/experimental/radius-auth.js.map +1 -0
  272. package/dist/experimental/radius-relay.d.ts +90 -0
  273. package/dist/experimental/radius-relay.d.ts.map +1 -0
  274. package/dist/experimental/radius-relay.js +582 -0
  275. package/dist/experimental/radius-relay.js.map +1 -0
  276. package/dist/experimental/server.d.ts +75 -0
  277. package/dist/experimental/server.d.ts.map +1 -0
  278. package/dist/experimental/server.js +682 -0
  279. package/dist/experimental/server.js.map +1 -0
  280. package/dist/experimental/services/agent-controller-provider.d.ts +4 -0
  281. package/dist/experimental/services/agent-controller-provider.d.ts.map +1 -0
  282. package/dist/experimental/services/agent-controller-provider.js +84 -0
  283. package/dist/experimental/services/agent-controller-provider.js.map +1 -0
  284. package/dist/experimental/services/agent-controller.d.ts +57 -0
  285. package/dist/experimental/services/agent-controller.d.ts.map +1 -0
  286. package/dist/experimental/services/agent-controller.js +3 -0
  287. package/dist/experimental/services/agent-controller.js.map +1 -0
  288. package/dist/experimental/services/connection.d.ts +40 -0
  289. package/dist/experimental/services/connection.d.ts.map +1 -0
  290. package/dist/experimental/services/connection.js +300 -0
  291. package/dist/experimental/services/connection.js.map +1 -0
  292. package/dist/experimental/services/models-provider.d.ts +16 -0
  293. package/dist/experimental/services/models-provider.d.ts.map +1 -0
  294. package/dist/experimental/services/models-provider.js +116 -0
  295. package/dist/experimental/services/models-provider.js.map +1 -0
  296. package/dist/experimental/services/models.d.ts +36 -0
  297. package/dist/experimental/services/models.d.ts.map +1 -0
  298. package/dist/experimental/services/models.js +3 -0
  299. package/dist/experimental/services/models.js.map +1 -0
  300. package/dist/experimental/services/plugins.d.ts +16 -0
  301. package/dist/experimental/services/plugins.d.ts.map +1 -0
  302. package/dist/experimental/services/plugins.js +4 -0
  303. package/dist/experimental/services/plugins.js.map +1 -0
  304. package/dist/experimental/services/presentation-ui.d.ts +13 -0
  305. package/dist/experimental/services/presentation-ui.d.ts.map +1 -0
  306. package/dist/experimental/services/presentation-ui.js +3 -0
  307. package/dist/experimental/services/presentation-ui.js.map +1 -0
  308. package/dist/experimental/services/server.d.ts +19 -0
  309. package/dist/experimental/services/server.d.ts.map +1 -0
  310. package/dist/experimental/services/server.js +104 -0
  311. package/dist/experimental/services/server.js.map +1 -0
  312. package/dist/experimental/services/sessions.d.ts +28 -0
  313. package/dist/experimental/services/sessions.d.ts.map +1 -0
  314. package/dist/experimental/services/sessions.js +4 -0
  315. package/dist/experimental/services/sessions.js.map +1 -0
  316. package/dist/experimental/services/slash-commands-provider.d.ts +14 -0
  317. package/dist/experimental/services/slash-commands-provider.d.ts.map +1 -0
  318. package/dist/experimental/services/slash-commands-provider.js +200 -0
  319. package/dist/experimental/services/slash-commands-provider.js.map +1 -0
  320. package/dist/experimental/services/slash-commands.d.ts +24 -0
  321. package/dist/experimental/services/slash-commands.d.ts.map +1 -0
  322. package/dist/experimental/services/slash-commands.js +3 -0
  323. package/dist/experimental/services/slash-commands.js.map +1 -0
  324. package/dist/experimental/services/transcript-provider.d.ts +12 -0
  325. package/dist/experimental/services/transcript-provider.d.ts.map +1 -0
  326. package/dist/experimental/services/transcript-provider.js +109 -0
  327. package/dist/experimental/services/transcript-provider.js.map +1 -0
  328. package/dist/experimental/services/transcript.d.ts +13 -0
  329. package/dist/experimental/services/transcript.d.ts.map +1 -0
  330. package/dist/experimental/services/transcript.js +3 -0
  331. package/dist/experimental/services/transcript.js.map +1 -0
  332. package/dist/experimental/services/worker.d.ts +28 -0
  333. package/dist/experimental/services/worker.d.ts.map +1 -0
  334. package/dist/experimental/services/worker.js +107 -0
  335. package/dist/experimental/services/worker.js.map +1 -0
  336. package/dist/experimental/session-worker-manager.d.ts +24 -0
  337. package/dist/experimental/session-worker-manager.d.ts.map +1 -0
  338. package/dist/experimental/session-worker-manager.js +691 -0
  339. package/dist/experimental/session-worker-manager.js.map +1 -0
  340. package/dist/experimental/session-worker.d.ts +188 -0
  341. package/dist/experimental/session-worker.d.ts.map +1 -0
  342. package/dist/experimental/session-worker.js +785 -0
  343. package/dist/experimental/session-worker.js.map +1 -0
  344. package/dist/experimental/source-resolver.d.ts +2 -0
  345. package/dist/experimental/source-resolver.d.ts.map +1 -0
  346. package/dist/experimental/source-resolver.js +71 -0
  347. package/dist/experimental/source-resolver.js.map +1 -0
  348. package/dist/index.d.ts +1 -1
  349. package/dist/index.d.ts.map +1 -1
  350. package/dist/index.js.map +1 -1
  351. package/dist/main.d.ts.map +1 -1
  352. package/dist/main.js +126 -1
  353. package/dist/main.js.map +1 -1
  354. package/dist/modes/interactive/chat-viewport.d.ts +20 -0
  355. package/dist/modes/interactive/chat-viewport.d.ts.map +1 -0
  356. package/dist/modes/interactive/chat-viewport.js +28 -0
  357. package/dist/modes/interactive/chat-viewport.js.map +1 -0
  358. package/dist/modes/interactive/components/assistant-message.d.ts +1 -0
  359. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  360. package/dist/modes/interactive/components/assistant-message.js +18 -10
  361. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  362. package/dist/modes/interactive/components/custom-editor.d.ts +10 -1
  363. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  364. package/dist/modes/interactive/components/custom-editor.js +39 -1
  365. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  366. package/dist/modes/interactive/components/index.d.ts +1 -1
  367. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  368. package/dist/modes/interactive/components/index.js.map +1 -1
  369. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  370. package/dist/modes/interactive/components/model-selector.js +5 -14
  371. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  372. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  373. package/dist/modes/interactive/components/scoped-models-selector.js +13 -15
  374. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  375. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  376. package/dist/modes/interactive/components/settings-selector.js +14 -10
  377. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  378. package/dist/modes/interactive/components/status-indicator.d.ts +3 -1
  379. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  380. package/dist/modes/interactive/components/status-indicator.js +10 -3
  381. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  382. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  383. package/dist/modes/interactive/components/thinking-selector.js +2 -2
  384. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  385. package/dist/modes/interactive/components/tool-execution.d.ts +21 -4
  386. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  387. package/dist/modes/interactive/components/tool-execution.js +35 -33
  388. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  389. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  390. package/dist/modes/interactive/components/trust-selector.js +2 -2
  391. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  392. package/dist/modes/interactive/interactive-mode.d.ts +8 -15
  393. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  394. package/dist/modes/interactive/interactive-mode.js +95 -80
  395. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  396. package/dist/modes/interactive/session-share.d.ts.map +1 -1
  397. package/dist/modes/interactive/session-share.js +8 -12
  398. package/dist/modes/interactive/session-share.js.map +1 -1
  399. package/dist/modes/interactive/theme/dark.json +2 -1
  400. package/dist/modes/interactive/theme/light.json +2 -1
  401. package/dist/modes/interactive/theme/theme-controller.d.ts +1 -0
  402. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  403. package/dist/modes/interactive/theme/theme-controller.js +5 -0
  404. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  405. package/dist/modes/interactive/theme/theme-json.d.ts +84 -0
  406. package/dist/modes/interactive/theme/theme-json.d.ts.map +1 -0
  407. package/dist/modes/interactive/theme/theme-json.js +130 -0
  408. package/dist/modes/interactive/theme/theme-json.js.map +1 -0
  409. package/dist/modes/interactive/theme/theme-schema.json +6 -2
  410. package/dist/modes/interactive/theme/theme.d.ts +14 -5
  411. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  412. package/dist/modes/interactive/theme/theme.js +18 -119
  413. package/dist/modes/interactive/theme/theme.js.map +1 -1
  414. package/dist/modes/interactive/tui-renderer.d.ts +21 -0
  415. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -0
  416. package/dist/modes/interactive/tui-renderer.js +66 -0
  417. package/dist/modes/interactive/tui-renderer.js.map +1 -0
  418. package/dist/utils/exif-orientation.d.ts.map +1 -1
  419. package/dist/utils/exif-orientation.js +2 -3
  420. package/dist/utils/exif-orientation.js.map +1 -1
  421. package/dist/utils/tools-manager.d.ts +1 -0
  422. package/dist/utils/tools-manager.d.ts.map +1 -1
  423. package/dist/utils/tools-manager.js +41 -19
  424. package/dist/utils/tools-manager.js.map +1 -1
  425. package/docs/environment-variables.md +2 -0
  426. package/docs/extensions.md +5 -2
  427. package/docs/keybindings.md +3 -1
  428. package/docs/models.md +3 -0
  429. package/docs/rpc.md +1 -1
  430. package/docs/sdk.md +5 -0
  431. package/docs/settings.md +5 -5
  432. package/docs/skills.md +1 -1
  433. package/docs/terminal-setup.md +15 -0
  434. package/docs/themes.md +8 -6
  435. package/docs/tui.md +20 -1
  436. package/examples/README.md +3 -0
  437. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  438. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  439. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  440. package/examples/extensions/dynamic-resources/dynamic.json +2 -0
  441. package/examples/extensions/gondolin/package-lock.json +2 -2
  442. package/examples/extensions/gondolin/package.json +1 -1
  443. package/examples/extensions/sandbox/package-lock.json +2 -2
  444. package/examples/extensions/sandbox/package.json +1 -1
  445. package/examples/extensions/with-deps/package-lock.json +2 -2
  446. package/examples/extensions/with-deps/package.json +1 -1
  447. package/examples/plugins/pi-example-plugin/README.md +38 -0
  448. package/examples/plugins/pi-example-plugin/package.json +10 -0
  449. package/examples/plugins/pi-example-plugin/src/contract.ts +13 -0
  450. package/examples/plugins/pi-example-plugin/src/session.ts +23 -0
  451. package/examples/plugins/pi-example-plugin/src/tui.ts +31 -0
  452. package/npm-shrinkwrap.json +523 -28
  453. package/package.json +12 -6
  454. package/dist/bun/register-bedrock.d.ts +0 -2
  455. package/dist/bun/register-bedrock.d.ts.map +0 -1
  456. package/dist/bun/register-bedrock.js +0 -4
  457. package/dist/bun/register-bedrock.js.map +0 -1
  458. package/dist/bundle/chunks/anthropic-messages-JWX2WP65.js +0 -45
  459. package/dist/bundle/chunks/chunk-JUUC5AZY.js +0 -2
  460. package/dist/bundle/chunks/chunk-OMWWHBTG.js +0 -1548
  461. package/dist/bundle/chunks/openai-codex-responses-GJVBJXLB.js +0 -8
  462. package/dist/bundle/chunks/openai-responses-BSOJMSEV.js +0 -2
  463. package/dist/cli/experimental/auth.d.ts +0 -16
  464. package/dist/cli/experimental/auth.d.ts.map +0 -1
  465. package/dist/cli/experimental/auth.js +0 -13
  466. package/dist/cli/experimental/auth.js.map +0 -1
  467. package/dist/cli/experimental/commands/pi.d.ts +0 -15
  468. package/dist/cli/experimental/commands/pi.d.ts.map +0 -1
  469. package/dist/cli/experimental/commands/pi.js +0 -28
  470. package/dist/cli/experimental/commands/pi.js.map +0 -1
  471. package/dist/cli/experimental/transport-address.d.ts +0 -10
  472. package/dist/cli/experimental/transport-address.d.ts.map +0 -1
  473. package/dist/cli/experimental/transport-address.js +0 -38
  474. package/dist/cli/experimental/transport-address.js.map +0 -1
  475. package/dist/client/remote-session.d.ts +0 -53
  476. package/dist/client/remote-session.d.ts.map +0 -1
  477. package/dist/client/remote-session.js +0 -340
  478. package/dist/client/remote-session.js.map +0 -1
  479. package/dist/client/transcript.d.ts +0 -12
  480. package/dist/client/transcript.d.ts.map +0 -1
  481. package/dist/client/transcript.js +0 -98
  482. package/dist/client/transcript.js.map +0 -1
  483. package/dist/server/create-harness.d.ts +0 -26
  484. package/dist/server/create-harness.d.ts.map +0 -1
  485. package/dist/server/create-harness.js +0 -106
  486. package/dist/server/create-harness.js.map +0 -1
package/docs/tui.md CHANGED
@@ -14,6 +14,7 @@ All components implement:
14
14
  interface Component {
15
15
  render(width: number): string[];
16
16
  handleInput?(data: string): void;
17
+ handleMouse?(event: TuiMouseEvent): TuiMouseEventResult | undefined;
17
18
  wantsKeyRelease?: boolean;
18
19
  invalidate(): void;
19
20
  }
@@ -23,6 +24,7 @@ interface Component {
23
24
  |--------|-------------|
24
25
  | `render(width)` | Return array of strings (one per line). Each line **must not exceed `width`**. |
25
26
  | `handleInput?(data)` | Receive keyboard input when component has focus. |
27
+ | `handleMouse?(event)` | Receive normalized pointer input in fullscreen mode. |
26
28
  | `wantsKeyRelease?` | If true, component receives key release events (Kitty protocol). Default: false. |
27
29
  | `invalidate()` | Clear cached render state. Called on theme changes. |
28
30
 
@@ -52,7 +54,7 @@ When a `Focusable` component has focus, TUI:
52
54
  3. Positions the hardware terminal cursor at that location
53
55
  4. Shows the hardware cursor only when `showHardwareCursor` is enabled
54
56
 
55
- The cursor remains hidden by default. This keeps the fake cursor rendering, while still positioning the hardware cursor for terminals that track IME candidate windows with hidden cursors. Some terminals require a visible hardware cursor for IME positioning; enable it with `showHardwareCursor`, `setShowHardwareCursor(true)`, or `PI_HARDWARE_CURSOR=1`. The `Editor` and `Input` built-in components already implement this interface.
57
+ The cursor remains hidden by default. This keeps the fake cursor rendering, while still positioning the hardware cursor for terminals that track IME candidate windows with hidden cursors. Some terminals require a visible hardware cursor for IME positioning; enable it with the renderer's `showHardwareCursor` constructor argument or `setShowHardwareCursor(true)`. Pi also maps `PI_HARDWARE_CURSOR=1` to this setting before it creates its renderer. The `Editor` and `Input` built-in components already implement this interface.
56
58
 
57
59
  ### Container Components with Embedded Inputs
58
60
 
@@ -307,6 +309,22 @@ handleInput(data: string) {
307
309
  - With modifiers: `Key.ctrl("c")`, `Key.shift("tab")`, `Key.alt("left")`, `Key.ctrlShift("p")`
308
310
  - String format also works: `"enter"`, `"ctrl+c"`, `"shift+tab"`, `"ctrl+shift+p"`
309
311
 
312
+ ## Mouse Input
313
+
314
+ Fullscreen mode routes normalized press, release, click, move, drag, and wheel events to components and overlays. Return `{ handled: true }` to suppress default behavior, `capture: true` to retain drag/release ownership, `focus: true` to request keyboard focus, and `render: true` when a hover or release visibly changes the component. Press, click, drag, and wheel render by default; no-op move/release events do not.
315
+
316
+ ```typescript
317
+ import { MouseRegion } from "@earendil-works/pi-tui";
318
+
319
+ const clickable = new MouseRegion(content, (event) => {
320
+ if (event.type !== "click" || event.button !== "left") return undefined;
321
+ expanded = !expanded;
322
+ return { handled: true };
323
+ });
324
+ ```
325
+
326
+ Unhandled wheel input scrolls the nearest `ScrollView`; unhandled primary-button drags retain transcript selection. OSC 8 links take precedence over parent click regions. `Input`, `Editor`, `SelectList`, and `SettingsList` include fullscreen mouse behavior. Regular mode does not capture mouse input because the terminal owns its scrollback.
327
+
310
328
  ## Line Width
311
329
 
312
330
  **Critical:** Each line from `render()` must not exceed the `width` parameter.
@@ -912,6 +930,7 @@ export default function (pi: ExtensionAPI) {
912
930
 
913
931
  - **Extend `CustomEditor`** (not base `Editor`) to get app keybindings (escape to abort, ctrl+d to exit, model switching, etc.)
914
932
  - **Call `super.handleInput(data)`** for keys you don't handle
933
+ - **Working status**: custom editors keep the standalone working row by default. Pass `{ embedWorkingStatus: true }` as the fourth `CustomEditor` constructor argument to use the built-in editor-border spinner instead.
915
934
  - **Factory pattern**: `setEditorComponent` receives a factory function that gets `tui`, `theme`, and `keybindings`
916
935
  - **Pass `undefined`** to restore the default editor: `ctx.ui.setEditorComponent(undefined)`
917
936
 
@@ -18,6 +18,9 @@ Example extensions demonstrating:
18
18
  - External integrations (SSH, file watchers, system theme sync)
19
19
  - Custom providers (Anthropic with custom streaming, GitLab Duo)
20
20
 
21
+ ### [plugins/pi-example-plugin/](plugins/pi-example-plugin/)
22
+ An experimental plugin package that Pi automatically builds into separate Session-worker and TUI Chord facets.
23
+
21
24
  ## Documentation
22
25
 
23
26
  - [SDK Reference](sdk/README.md)
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider",
3
- "version": "0.84.4",
3
+ "version": "0.85.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-custom-provider",
9
- "version": "0.84.4",
9
+ "version": "0.85.0",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sdk": "^0.52.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider-anthropic",
3
3
  "private": true,
4
- "version": "0.84.4",
4
+ "version": "0.85.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider-gitlab-duo",
3
3
  "private": true,
4
- "version": "0.84.4",
4
+ "version": "0.85.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -30,6 +30,8 @@
30
30
  "dim": "dimGray",
31
31
  "text": "",
32
32
  "thinkingText": "gray",
33
+ "scrollbarTrack": "darkGray",
34
+ "scrollbarThumb": "",
33
35
  "selectedBg": "selectedBg",
34
36
  "userMessageBg": "userMsgBg",
35
37
  "userMessageText": "",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-gondolin",
3
- "version": "0.84.4",
3
+ "version": "0.85.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-gondolin",
9
- "version": "0.84.4",
9
+ "version": "0.85.0",
10
10
  "dependencies": {
11
11
  "@earendil-works/gondolin": "0.12.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-gondolin",
3
3
  "private": true,
4
- "version": "0.84.4",
4
+ "version": "0.85.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-sandbox",
3
- "version": "1.14.4",
3
+ "version": "1.15.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-sandbox",
9
- "version": "1.14.4",
9
+ "version": "1.15.0",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sandbox-runtime": "^0.0.26"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-sandbox",
3
3
  "private": true,
4
- "version": "1.14.4",
4
+ "version": "1.15.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-with-deps",
3
- "version": "0.84.4",
3
+ "version": "0.85.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-with-deps",
9
- "version": "0.84.4",
9
+ "version": "0.85.0",
10
10
  "dependencies": {
11
11
  "ms": "^2.1.3"
12
12
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-with-deps",
3
3
  "private": true,
4
- "version": "0.84.4",
4
+ "version": "0.85.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -0,0 +1,38 @@
1
+ # `@earendil-works/pi-example-plugin`
2
+
3
+ This package provides conventional `session` and `tui` Chord facets. The Session-worker facet provides a remote greeting service. The TUI facet contributes `/hello` and calls that service.
4
+
5
+ The package needs no build script. Pi asks Chord to discover `src/session.ts` and `src/tui.ts`, builds both entries into its server-owned plugin cache, and sends the TUI artifact to clients.
6
+
7
+ From the repository root:
8
+
9
+ ```bash
10
+ PI_EXPERIMENTAL=1 ./pi-test.sh server \
11
+ -e "$PWD/packages/coding-agent/examples/plugins/pi-example-plugin"
12
+ ```
13
+
14
+ Alternatively, a client can select the plugin for the Session it creates or resumes on one local server:
15
+
16
+ ```bash
17
+ PI_EXPERIMENTAL=1 ./pi-test.sh client \
18
+ -e "$PWD/packages/coding-agent/examples/plugins/pi-example-plugin"
19
+ ```
20
+
21
+ Repeat `-e` to select multiple plugin packages. Client paths are resolved locally and sent only to a Unix server; Radius clients cannot select server filesystem paths. The Session and matching TUI facets are stored with that Session, so later server generations and clients can resume it without plugin arguments. Other Sessions and their workers are unaffected. An active Session rejects a different package selection instead of being restarted.
22
+
23
+ `server -e` establishes the server profile's default Session and TUI facets. Starting an explicit foreground server without `-e` clears that default. Client selection never changes the server's root facet generation.
24
+
25
+ Run `/hello Armin` in the TUI. After editing a facet, run `/reload`. The server atomically rebuilds the package, reloads the attached Session-worker generation, updates the current TUI generation, and serves the new artifact to future clients.
26
+
27
+ Package metadata can override or disable conventional entries:
28
+
29
+ ```json
30
+ {
31
+ "chord": {
32
+ "facets": {
33
+ "session": "./src/worker.ts",
34
+ "tui": false
35
+ }
36
+ }
37
+ }
38
+ ```
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "@earendil-works/pi-example-plugin",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "peerDependencies": {
7
+ "@earendil-works/chord": "^0.84.4",
8
+ "@earendil-works/pi-coding-agent": "^0.84.4"
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ import { type Context, defineService, type ReplicatedState } from "@earendil-works/chord";
2
+
3
+ export interface ExampleFacetReply {
4
+ readonly message: string;
5
+ readonly workerActivations: number;
6
+ }
7
+
8
+ export interface ExampleFacetService {
9
+ readonly workerActivations: ReplicatedState<{ count: number }>;
10
+ greet(input: { readonly name: string }, context: Context): Promise<ExampleFacetReply>;
11
+ }
12
+
13
+ export const ExampleFacetService = defineService<ExampleFacetService>("pi.example-plugin.greeting");
@@ -0,0 +1,23 @@
1
+ import { defineFacet } from "@earendil-works/chord";
2
+ import { BACKGROUND_CONTEXT } from "@earendil-works/chord/context";
3
+ import { ExampleFacetService } from "./contract.ts";
4
+
5
+ export default defineFacet({
6
+ id: "@earendil-works/pi-example-plugin/session",
7
+ setup(env) {
8
+ const workerActivations = env.replicatedState({ count: 0 });
9
+ env.provide(ExampleFacetService, {
10
+ workerActivations,
11
+ async greet({ name }) {
12
+ return {
13
+ message: `Hello ${name} from the bundled Session worker facet!!!`,
14
+ workerActivations: workerActivations.value.count,
15
+ };
16
+ },
17
+ });
18
+ env.onActivate(() => {
19
+ workerActivations.state.count += 1;
20
+ workerActivations.publish(BACKGROUND_CONTEXT);
21
+ });
22
+ },
23
+ });
@@ -0,0 +1,31 @@
1
+ import { defineFacet } from "@earendil-works/chord";
2
+ import { AgentController, PresentationUI, SlashCommands } from "@earendil-works/pi-coding-agent/experimental/plugin";
3
+ import { ExampleFacetService } from "./contract.ts";
4
+
5
+ export default defineFacet({
6
+ id: "@earendil-works/pi-example-plugin/tui",
7
+ setup(env) {
8
+ const example = env.use(ExampleFacetService);
9
+ const commands = env.use(SlashCommands);
10
+ const controller = env.use(AgentController);
11
+ const ui = env.use(PresentationUI);
12
+ env.onActivate(() => {
13
+ env.own(
14
+ commands.replace({
15
+ name: "hello",
16
+ description: "Call the bundled Session worker facet",
17
+ argumentHint: "<name>",
18
+ async run(args, context) {
19
+ const message = args.length === 0 ? "from the TUI" : args;
20
+ const reply = await example.greet({ name: message }, context);
21
+ ui.showStatus(
22
+ `We got this: ${reply.message} Worker activations: ${reply.workerActivations}.`,
23
+ context,
24
+ );
25
+ return controller.prompt({ message: `pong: ${message}`, images: null }, context);
26
+ },
27
+ }),
28
+ );
29
+ });
30
+ },
31
+ });