@schovest/pi-coding-agent 0.7.3

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 (881) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/README.md +686 -0
  3. package/dist/bun/cli.d.ts +3 -0
  4. package/dist/bun/cli.d.ts.map +1 -0
  5. package/dist/bun/cli.js +9 -0
  6. package/dist/bun/cli.js.map +1 -0
  7. package/dist/bun/register-bedrock.d.ts +2 -0
  8. package/dist/bun/register-bedrock.d.ts.map +1 -0
  9. package/dist/bun/register-bedrock.js +4 -0
  10. package/dist/bun/register-bedrock.js.map +1 -0
  11. package/dist/bun/restore-sandbox-env.d.ts +13 -0
  12. package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
  13. package/dist/bun/restore-sandbox-env.js +32 -0
  14. package/dist/bun/restore-sandbox-env.js.map +1 -0
  15. package/dist/cli/args.d.ts +57 -0
  16. package/dist/cli/args.d.ts.map +1 -0
  17. package/dist/cli/args.js +381 -0
  18. package/dist/cli/args.js.map +1 -0
  19. package/dist/cli/config-selector.d.ts +14 -0
  20. package/dist/cli/config-selector.d.ts.map +1 -0
  21. package/dist/cli/config-selector.js +31 -0
  22. package/dist/cli/config-selector.js.map +1 -0
  23. package/dist/cli/file-processor.d.ts +15 -0
  24. package/dist/cli/file-processor.d.ts.map +1 -0
  25. package/dist/cli/file-processor.js +82 -0
  26. package/dist/cli/file-processor.js.map +1 -0
  27. package/dist/cli/initial-message.d.ts +18 -0
  28. package/dist/cli/initial-message.d.ts.map +1 -0
  29. package/dist/cli/initial-message.js +22 -0
  30. package/dist/cli/initial-message.js.map +1 -0
  31. package/dist/cli/list-models.d.ts +9 -0
  32. package/dist/cli/list-models.d.ts.map +1 -0
  33. package/dist/cli/list-models.js +98 -0
  34. package/dist/cli/list-models.js.map +1 -0
  35. package/dist/cli/project-trust.d.ts +10 -0
  36. package/dist/cli/project-trust.d.ts.map +1 -0
  37. package/dist/cli/project-trust.js +48 -0
  38. package/dist/cli/project-trust.js.map +1 -0
  39. package/dist/cli/session-picker.d.ts +9 -0
  40. package/dist/cli/session-picker.d.ts.map +1 -0
  41. package/dist/cli/session-picker.js +35 -0
  42. package/dist/cli/session-picker.js.map +1 -0
  43. package/dist/cli/startup-ui.d.ts +16 -0
  44. package/dist/cli/startup-ui.d.ts.map +1 -0
  45. package/dist/cli/startup-ui.js +112 -0
  46. package/dist/cli/startup-ui.js.map +1 -0
  47. package/dist/cli.d.ts +3 -0
  48. package/dist/cli.d.ts.map +1 -0
  49. package/dist/cli.js +18 -0
  50. package/dist/cli.js.map +1 -0
  51. package/dist/config.d.ts +92 -0
  52. package/dist/config.d.ts.map +1 -0
  53. package/dist/config.js +433 -0
  54. package/dist/config.js.map +1 -0
  55. package/dist/core/agent-session-runtime.d.ts +119 -0
  56. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  57. package/dist/core/agent-session-runtime.js +303 -0
  58. package/dist/core/agent-session-runtime.js.map +1 -0
  59. package/dist/core/agent-session-services.d.ts +88 -0
  60. package/dist/core/agent-session-services.d.ts.map +1 -0
  61. package/dist/core/agent-session-services.js +119 -0
  62. package/dist/core/agent-session-services.js.map +1 -0
  63. package/dist/core/agent-session.d.ts +661 -0
  64. package/dist/core/agent-session.d.ts.map +1 -0
  65. package/dist/core/agent-session.js +2758 -0
  66. package/dist/core/agent-session.js.map +1 -0
  67. package/dist/core/auth-guidance.d.ts +5 -0
  68. package/dist/core/auth-guidance.d.ts.map +1 -0
  69. package/dist/core/auth-guidance.js +21 -0
  70. package/dist/core/auth-guidance.js.map +1 -0
  71. package/dist/core/auth-storage.d.ts +141 -0
  72. package/dist/core/auth-storage.d.ts.map +1 -0
  73. package/dist/core/auth-storage.js +443 -0
  74. package/dist/core/auth-storage.js.map +1 -0
  75. package/dist/core/background-process-manager.d.ts +52 -0
  76. package/dist/core/background-process-manager.d.ts.map +1 -0
  77. package/dist/core/background-process-manager.js +127 -0
  78. package/dist/core/background-process-manager.js.map +1 -0
  79. package/dist/core/bash-executor.d.ts +32 -0
  80. package/dist/core/bash-executor.d.ts.map +1 -0
  81. package/dist/core/bash-executor.js +111 -0
  82. package/dist/core/bash-executor.js.map +1 -0
  83. package/dist/core/claude-plugin-manager.d.ts +110 -0
  84. package/dist/core/claude-plugin-manager.d.ts.map +1 -0
  85. package/dist/core/claude-plugin-manager.js +518 -0
  86. package/dist/core/claude-plugin-manager.js.map +1 -0
  87. package/dist/core/command-palette/command-palette-component.d.ts +24 -0
  88. package/dist/core/command-palette/command-palette-component.d.ts.map +1 -0
  89. package/dist/core/command-palette/command-palette-component.js +86 -0
  90. package/dist/core/command-palette/command-palette-component.js.map +1 -0
  91. package/dist/core/command-palette/command-palette-list.d.ts +16 -0
  92. package/dist/core/command-palette/command-palette-list.d.ts.map +1 -0
  93. package/dist/core/command-palette/command-palette-list.js +58 -0
  94. package/dist/core/command-palette/command-palette-list.js.map +1 -0
  95. package/dist/core/command-palette/command-registry.d.ts +9 -0
  96. package/dist/core/command-palette/command-registry.d.ts.map +1 -0
  97. package/dist/core/command-palette/command-registry.js +26 -0
  98. package/dist/core/command-palette/command-registry.js.map +1 -0
  99. package/dist/core/command-palette/index.d.ts +4 -0
  100. package/dist/core/command-palette/index.d.ts.map +1 -0
  101. package/dist/core/command-palette/index.js +3 -0
  102. package/dist/core/command-palette/index.js.map +1 -0
  103. package/dist/core/command-palette/types.d.ts +17 -0
  104. package/dist/core/command-palette/types.d.ts.map +1 -0
  105. package/dist/core/command-palette/types.js +2 -0
  106. package/dist/core/command-palette/types.js.map +1 -0
  107. package/dist/core/compaction/branch-summarization.d.ts +90 -0
  108. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  109. package/dist/core/compaction/branch-summarization.js +250 -0
  110. package/dist/core/compaction/branch-summarization.js.map +1 -0
  111. package/dist/core/compaction/compaction.d.ts +121 -0
  112. package/dist/core/compaction/compaction.d.ts.map +1 -0
  113. package/dist/core/compaction/compaction.js +622 -0
  114. package/dist/core/compaction/compaction.js.map +1 -0
  115. package/dist/core/compaction/index.d.ts +7 -0
  116. package/dist/core/compaction/index.d.ts.map +1 -0
  117. package/dist/core/compaction/index.js +7 -0
  118. package/dist/core/compaction/index.js.map +1 -0
  119. package/dist/core/compaction/utils.d.ts +38 -0
  120. package/dist/core/compaction/utils.d.ts.map +1 -0
  121. package/dist/core/compaction/utils.js +153 -0
  122. package/dist/core/compaction/utils.js.map +1 -0
  123. package/dist/core/defaults.d.ts +3 -0
  124. package/dist/core/defaults.d.ts.map +1 -0
  125. package/dist/core/defaults.js +2 -0
  126. package/dist/core/defaults.js.map +1 -0
  127. package/dist/core/diagnostics.d.ts +15 -0
  128. package/dist/core/diagnostics.d.ts.map +1 -0
  129. package/dist/core/diagnostics.js +2 -0
  130. package/dist/core/diagnostics.js.map +1 -0
  131. package/dist/core/event-bus.d.ts +9 -0
  132. package/dist/core/event-bus.d.ts.map +1 -0
  133. package/dist/core/event-bus.js +25 -0
  134. package/dist/core/event-bus.js.map +1 -0
  135. package/dist/core/exec.d.ts +29 -0
  136. package/dist/core/exec.d.ts.map +1 -0
  137. package/dist/core/exec.js +75 -0
  138. package/dist/core/exec.js.map +1 -0
  139. package/dist/core/experimental.d.ts +2 -0
  140. package/dist/core/experimental.d.ts.map +1 -0
  141. package/dist/core/experimental.js +4 -0
  142. package/dist/core/experimental.js.map +1 -0
  143. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  144. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  145. package/dist/core/export-html/ansi-to-html.js +249 -0
  146. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  147. package/dist/core/export-html/index.d.ts +37 -0
  148. package/dist/core/export-html/index.d.ts.map +1 -0
  149. package/dist/core/export-html/index.js +226 -0
  150. package/dist/core/export-html/index.js.map +1 -0
  151. package/dist/core/export-html/template.css +1066 -0
  152. package/dist/core/export-html/template.html +55 -0
  153. package/dist/core/export-html/template.js +1864 -0
  154. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  155. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  156. package/dist/core/export-html/tool-renderer.js +108 -0
  157. package/dist/core/export-html/tool-renderer.js.map +1 -0
  158. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  159. package/dist/core/export-html/vendor/marked.min.js +6 -0
  160. package/dist/core/extensions/index.d.ts +12 -0
  161. package/dist/core/extensions/index.d.ts.map +1 -0
  162. package/dist/core/extensions/index.js +9 -0
  163. package/dist/core/extensions/index.js.map +1 -0
  164. package/dist/core/extensions/loader.d.ts +24 -0
  165. package/dist/core/extensions/loader.d.ts.map +1 -0
  166. package/dist/core/extensions/loader.js +499 -0
  167. package/dist/core/extensions/loader.js.map +1 -0
  168. package/dist/core/extensions/runner.d.ts +166 -0
  169. package/dist/core/extensions/runner.d.ts.map +1 -0
  170. package/dist/core/extensions/runner.js +896 -0
  171. package/dist/core/extensions/runner.js.map +1 -0
  172. package/dist/core/extensions/types.d.ts +1209 -0
  173. package/dist/core/extensions/types.d.ts.map +1 -0
  174. package/dist/core/extensions/types.js +45 -0
  175. package/dist/core/extensions/types.js.map +1 -0
  176. package/dist/core/extensions/wrapper.d.ts +20 -0
  177. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  178. package/dist/core/extensions/wrapper.js +22 -0
  179. package/dist/core/extensions/wrapper.js.map +1 -0
  180. package/dist/core/footer-data-provider.d.ts +54 -0
  181. package/dist/core/footer-data-provider.d.ts.map +1 -0
  182. package/dist/core/footer-data-provider.js +338 -0
  183. package/dist/core/footer-data-provider.js.map +1 -0
  184. package/dist/core/http-dispatcher.d.ts +21 -0
  185. package/dist/core/http-dispatcher.d.ts.map +1 -0
  186. package/dist/core/http-dispatcher.js +48 -0
  187. package/dist/core/http-dispatcher.js.map +1 -0
  188. package/dist/core/index.d.ts +14 -0
  189. package/dist/core/index.d.ts.map +1 -0
  190. package/dist/core/index.js +14 -0
  191. package/dist/core/index.js.map +1 -0
  192. package/dist/core/keybindings.d.ts +363 -0
  193. package/dist/core/keybindings.d.ts.map +1 -0
  194. package/dist/core/keybindings.js +303 -0
  195. package/dist/core/keybindings.js.map +1 -0
  196. package/dist/core/messages.d.ts +77 -0
  197. package/dist/core/messages.d.ts.map +1 -0
  198. package/dist/core/messages.js +123 -0
  199. package/dist/core/messages.js.map +1 -0
  200. package/dist/core/model-registry.d.ts +161 -0
  201. package/dist/core/model-registry.d.ts.map +1 -0
  202. package/dist/core/model-registry.js +810 -0
  203. package/dist/core/model-registry.js.map +1 -0
  204. package/dist/core/model-resolver.d.ts +111 -0
  205. package/dist/core/model-resolver.d.ts.map +1 -0
  206. package/dist/core/model-resolver.js +513 -0
  207. package/dist/core/model-resolver.js.map +1 -0
  208. package/dist/core/output-guard.d.ts +7 -0
  209. package/dist/core/output-guard.d.ts.map +1 -0
  210. package/dist/core/output-guard.js +89 -0
  211. package/dist/core/output-guard.js.map +1 -0
  212. package/dist/core/package-manager.d.ts +207 -0
  213. package/dist/core/package-manager.d.ts.map +1 -0
  214. package/dist/core/package-manager.js +2074 -0
  215. package/dist/core/package-manager.js.map +1 -0
  216. package/dist/core/primary-agents/discovery.d.ts +4 -0
  217. package/dist/core/primary-agents/discovery.d.ts.map +1 -0
  218. package/dist/core/primary-agents/discovery.js +89 -0
  219. package/dist/core/primary-agents/discovery.js.map +1 -0
  220. package/dist/core/primary-agents/index.d.ts +3 -0
  221. package/dist/core/primary-agents/index.d.ts.map +1 -0
  222. package/dist/core/primary-agents/index.js +2 -0
  223. package/dist/core/primary-agents/index.js.map +1 -0
  224. package/dist/core/primary-agents/types.d.ts +18 -0
  225. package/dist/core/primary-agents/types.d.ts.map +1 -0
  226. package/dist/core/primary-agents/types.js +2 -0
  227. package/dist/core/primary-agents/types.js.map +1 -0
  228. package/dist/core/project-trust.d.ts +15 -0
  229. package/dist/core/project-trust.d.ts.map +1 -0
  230. package/dist/core/project-trust.js +58 -0
  231. package/dist/core/project-trust.js.map +1 -0
  232. package/dist/core/prompt-templates.d.ts +53 -0
  233. package/dist/core/prompt-templates.d.ts.map +1 -0
  234. package/dist/core/prompt-templates.js +236 -0
  235. package/dist/core/prompt-templates.js.map +1 -0
  236. package/dist/core/provider-attribution.d.ts +4 -0
  237. package/dist/core/provider-attribution.d.ts.map +1 -0
  238. package/dist/core/provider-attribution.js +72 -0
  239. package/dist/core/provider-attribution.js.map +1 -0
  240. package/dist/core/provider-display-names.d.ts +2 -0
  241. package/dist/core/provider-display-names.d.ts.map +1 -0
  242. package/dist/core/provider-display-names.js +36 -0
  243. package/dist/core/provider-display-names.js.map +1 -0
  244. package/dist/core/resolve-config-value.d.ts +31 -0
  245. package/dist/core/resolve-config-value.d.ts.map +1 -0
  246. package/dist/core/resolve-config-value.js +249 -0
  247. package/dist/core/resolve-config-value.js.map +1 -0
  248. package/dist/core/resource-loader.d.ts +206 -0
  249. package/dist/core/resource-loader.d.ts.map +1 -0
  250. package/dist/core/resource-loader.js +827 -0
  251. package/dist/core/resource-loader.js.map +1 -0
  252. package/dist/core/sdk.d.ts +111 -0
  253. package/dist/core/sdk.d.ts.map +1 -0
  254. package/dist/core/sdk.js +269 -0
  255. package/dist/core/sdk.js.map +1 -0
  256. package/dist/core/session-cwd.d.ts +19 -0
  257. package/dist/core/session-cwd.d.ts.map +1 -0
  258. package/dist/core/session-cwd.js +38 -0
  259. package/dist/core/session-cwd.js.map +1 -0
  260. package/dist/core/session-manager.d.ts +362 -0
  261. package/dist/core/session-manager.d.ts.map +1 -0
  262. package/dist/core/session-manager.js +1283 -0
  263. package/dist/core/session-manager.js.map +1 -0
  264. package/dist/core/settings-manager.d.ts +309 -0
  265. package/dist/core/settings-manager.d.ts.map +1 -0
  266. package/dist/core/settings-manager.js +907 -0
  267. package/dist/core/settings-manager.js.map +1 -0
  268. package/dist/core/skills.d.ts +60 -0
  269. package/dist/core/skills.d.ts.map +1 -0
  270. package/dist/core/skills.js +387 -0
  271. package/dist/core/skills.js.map +1 -0
  272. package/dist/core/slash-commands.d.ts +14 -0
  273. package/dist/core/slash-commands.d.ts.map +1 -0
  274. package/dist/core/slash-commands.js +30 -0
  275. package/dist/core/slash-commands.js.map +1 -0
  276. package/dist/core/source-info.d.ts +18 -0
  277. package/dist/core/source-info.d.ts.map +1 -0
  278. package/dist/core/source-info.js +19 -0
  279. package/dist/core/source-info.js.map +1 -0
  280. package/dist/core/subagents/discovery.d.ts +9 -0
  281. package/dist/core/subagents/discovery.d.ts.map +1 -0
  282. package/dist/core/subagents/discovery.js +97 -0
  283. package/dist/core/subagents/discovery.js.map +1 -0
  284. package/dist/core/subagents/index.d.ts +5 -0
  285. package/dist/core/subagents/index.d.ts.map +1 -0
  286. package/dist/core/subagents/index.js +4 -0
  287. package/dist/core/subagents/index.js.map +1 -0
  288. package/dist/core/subagents/runner.d.ts +6 -0
  289. package/dist/core/subagents/runner.d.ts.map +1 -0
  290. package/dist/core/subagents/runner.js +406 -0
  291. package/dist/core/subagents/runner.js.map +1 -0
  292. package/dist/core/subagents/tool.d.ts +24 -0
  293. package/dist/core/subagents/tool.d.ts.map +1 -0
  294. package/dist/core/subagents/tool.js +223 -0
  295. package/dist/core/subagents/tool.js.map +1 -0
  296. package/dist/core/subagents/types.d.ts +78 -0
  297. package/dist/core/subagents/types.d.ts.map +1 -0
  298. package/dist/core/subagents/types.js +2 -0
  299. package/dist/core/subagents/types.js.map +1 -0
  300. package/dist/core/system-prompt.d.ts +30 -0
  301. package/dist/core/system-prompt.d.ts.map +1 -0
  302. package/dist/core/system-prompt.js +121 -0
  303. package/dist/core/system-prompt.js.map +1 -0
  304. package/dist/core/telemetry.d.ts +3 -0
  305. package/dist/core/telemetry.d.ts.map +1 -0
  306. package/dist/core/telemetry.js +9 -0
  307. package/dist/core/telemetry.js.map +1 -0
  308. package/dist/core/timings.d.ts +8 -0
  309. package/dist/core/timings.d.ts.map +1 -0
  310. package/dist/core/timings.js +31 -0
  311. package/dist/core/timings.js.map +1 -0
  312. package/dist/core/tool-matcher.d.ts +27 -0
  313. package/dist/core/tool-matcher.d.ts.map +1 -0
  314. package/dist/core/tool-matcher.js +43 -0
  315. package/dist/core/tool-matcher.js.map +1 -0
  316. package/dist/core/tools/bash.d.ts +83 -0
  317. package/dist/core/tools/bash.d.ts.map +1 -0
  318. package/dist/core/tools/bash.js +380 -0
  319. package/dist/core/tools/bash.js.map +1 -0
  320. package/dist/core/tools/edit-diff.d.ts +87 -0
  321. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  322. package/dist/core/tools/edit-diff.js +345 -0
  323. package/dist/core/tools/edit-diff.js.map +1 -0
  324. package/dist/core/tools/edit.d.ts +51 -0
  325. package/dist/core/tools/edit.d.ts.map +1 -0
  326. package/dist/core/tools/edit.js +284 -0
  327. package/dist/core/tools/edit.js.map +1 -0
  328. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  329. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  330. package/dist/core/tools/file-mutation-queue.js +52 -0
  331. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  332. package/dist/core/tools/find.d.ts +35 -0
  333. package/dist/core/tools/find.d.ts.map +1 -0
  334. package/dist/core/tools/find.js +297 -0
  335. package/dist/core/tools/find.js.map +1 -0
  336. package/dist/core/tools/grep.d.ts +37 -0
  337. package/dist/core/tools/grep.d.ts.map +1 -0
  338. package/dist/core/tools/grep.js +304 -0
  339. package/dist/core/tools/grep.js.map +1 -0
  340. package/dist/core/tools/index.d.ts +40 -0
  341. package/dist/core/tools/index.d.ts.map +1 -0
  342. package/dist/core/tools/index.js +112 -0
  343. package/dist/core/tools/index.js.map +1 -0
  344. package/dist/core/tools/ls.d.ts +37 -0
  345. package/dist/core/tools/ls.d.ts.map +1 -0
  346. package/dist/core/tools/ls.js +167 -0
  347. package/dist/core/tools/ls.js.map +1 -0
  348. package/dist/core/tools/output-accumulator.d.ts +52 -0
  349. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  350. package/dist/core/tools/output-accumulator.js +184 -0
  351. package/dist/core/tools/output-accumulator.js.map +1 -0
  352. package/dist/core/tools/path-utils.d.ts +10 -0
  353. package/dist/core/tools/path-utils.d.ts.map +1 -0
  354. package/dist/core/tools/path-utils.js +99 -0
  355. package/dist/core/tools/path-utils.js.map +1 -0
  356. package/dist/core/tools/read.d.ts +35 -0
  357. package/dist/core/tools/read.d.ts.map +1 -0
  358. package/dist/core/tools/read.js +289 -0
  359. package/dist/core/tools/read.js.map +1 -0
  360. package/dist/core/tools/render-utils.d.ts +24 -0
  361. package/dist/core/tools/render-utils.d.ts.map +1 -0
  362. package/dist/core/tools/render-utils.js +65 -0
  363. package/dist/core/tools/render-utils.js.map +1 -0
  364. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  365. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  366. package/dist/core/tools/tool-definition-wrapper.js +34 -0
  367. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  368. package/dist/core/tools/truncate.d.ts +70 -0
  369. package/dist/core/tools/truncate.d.ts.map +1 -0
  370. package/dist/core/tools/truncate.js +215 -0
  371. package/dist/core/tools/truncate.js.map +1 -0
  372. package/dist/core/tools/write.d.ts +26 -0
  373. package/dist/core/tools/write.d.ts.map +1 -0
  374. package/dist/core/tools/write.js +197 -0
  375. package/dist/core/tools/write.js.map +1 -0
  376. package/dist/core/trust-manager.d.ts +31 -0
  377. package/dist/core/trust-manager.d.ts.map +1 -0
  378. package/dist/core/trust-manager.js +187 -0
  379. package/dist/core/trust-manager.js.map +1 -0
  380. package/dist/index.d.ts +33 -0
  381. package/dist/index.d.ts.map +1 -0
  382. package/dist/index.js +46 -0
  383. package/dist/index.js.map +1 -0
  384. package/dist/main.d.ts +12 -0
  385. package/dist/main.d.ts.map +1 -0
  386. package/dist/main.js +665 -0
  387. package/dist/main.js.map +1 -0
  388. package/dist/migrations.d.ts +33 -0
  389. package/dist/migrations.d.ts.map +1 -0
  390. package/dist/migrations.js +403 -0
  391. package/dist/migrations.js.map +1 -0
  392. package/dist/modes/index.d.ts +9 -0
  393. package/dist/modes/index.d.ts.map +1 -0
  394. package/dist/modes/index.js +8 -0
  395. package/dist/modes/index.js.map +1 -0
  396. package/dist/modes/interactive/assets/clankolas.png +0 -0
  397. package/dist/modes/interactive/components/agent-selector.d.ts +21 -0
  398. package/dist/modes/interactive/components/agent-selector.d.ts.map +1 -0
  399. package/dist/modes/interactive/components/agent-selector.js +85 -0
  400. package/dist/modes/interactive/components/agent-selector.js.map +1 -0
  401. package/dist/modes/interactive/components/armin.d.ts +34 -0
  402. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  403. package/dist/modes/interactive/components/armin.js +333 -0
  404. package/dist/modes/interactive/components/armin.js.map +1 -0
  405. package/dist/modes/interactive/components/assistant-message.d.ts +20 -0
  406. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  407. package/dist/modes/interactive/components/assistant-message.js +121 -0
  408. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  409. package/dist/modes/interactive/components/background-process-selector.d.ts +40 -0
  410. package/dist/modes/interactive/components/background-process-selector.d.ts.map +1 -0
  411. package/dist/modes/interactive/components/background-process-selector.js +187 -0
  412. package/dist/modes/interactive/components/background-process-selector.js.map +1 -0
  413. package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
  414. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  415. package/dist/modes/interactive/components/bash-execution.js +175 -0
  416. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  417. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  418. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  419. package/dist/modes/interactive/components/bordered-loader.js +54 -0
  420. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  421. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  422. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  423. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  424. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  425. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  426. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  427. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  428. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  429. package/dist/modes/interactive/components/config-selector.d.ts +71 -0
  430. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  431. package/dist/modes/interactive/components/config-selector.js +506 -0
  432. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  433. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  434. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  435. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  436. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  437. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  438. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  439. package/dist/modes/interactive/components/custom-editor.js +76 -0
  440. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  441. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  442. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  443. package/dist/modes/interactive/components/custom-message.js +79 -0
  444. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  445. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  446. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  447. package/dist/modes/interactive/components/daxnuts.js +140 -0
  448. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  449. package/dist/modes/interactive/components/diff.d.ts +12 -0
  450. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  451. package/dist/modes/interactive/components/diff.js +133 -0
  452. package/dist/modes/interactive/components/diff.js.map +1 -0
  453. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  454. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  455. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  456. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  457. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  458. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  459. package/dist/modes/interactive/components/earendil-announcement.js +40 -0
  460. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  461. package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
  462. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  463. package/dist/modes/interactive/components/extension-editor.js +119 -0
  464. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  465. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  466. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  467. package/dist/modes/interactive/components/extension-input.js +61 -0
  468. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  469. package/dist/modes/interactive/components/extension-selector.d.ts +26 -0
  470. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  471. package/dist/modes/interactive/components/extension-selector.js +83 -0
  472. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  473. package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  474. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  475. package/dist/modes/interactive/components/first-time-setup.js +103 -0
  476. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  477. package/dist/modes/interactive/components/footer.d.ts +28 -0
  478. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  479. package/dist/modes/interactive/components/footer.js +231 -0
  480. package/dist/modes/interactive/components/footer.js.map +1 -0
  481. package/dist/modes/interactive/components/index.d.ts +34 -0
  482. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  483. package/dist/modes/interactive/components/index.js +35 -0
  484. package/dist/modes/interactive/components/index.js.map +1 -0
  485. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  486. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  487. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  488. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  489. package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  490. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  491. package/dist/modes/interactive/components/login-dialog.js +180 -0
  492. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  493. package/dist/modes/interactive/components/model-selector.d.ts +47 -0
  494. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  495. package/dist/modes/interactive/components/model-selector.js +278 -0
  496. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  497. package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
  498. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  499. package/dist/modes/interactive/components/oauth-selector.js +165 -0
  500. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  501. package/dist/modes/interactive/components/plugin-manager.d.ts +67 -0
  502. package/dist/modes/interactive/components/plugin-manager.d.ts.map +1 -0
  503. package/dist/modes/interactive/components/plugin-manager.js +443 -0
  504. package/dist/modes/interactive/components/plugin-manager.js.map +1 -0
  505. package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  506. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  507. package/dist/modes/interactive/components/scoped-models-selector.js +290 -0
  508. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  509. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  510. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  511. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  512. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  513. package/dist/modes/interactive/components/session-selector.d.ts +96 -0
  514. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  515. package/dist/modes/interactive/components/session-selector.js +861 -0
  516. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  517. package/dist/modes/interactive/components/settings-selector.d.ts +71 -0
  518. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  519. package/dist/modes/interactive/components/settings-selector.js +410 -0
  520. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  521. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  522. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  523. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  524. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  525. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  526. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  527. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  528. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  529. package/dist/modes/interactive/components/subagent-details.d.ts +63 -0
  530. package/dist/modes/interactive/components/subagent-details.d.ts.map +1 -0
  531. package/dist/modes/interactive/components/subagent-details.js +360 -0
  532. package/dist/modes/interactive/components/subagent-details.js.map +1 -0
  533. package/dist/modes/interactive/components/subagent-overlay.d.ts +51 -0
  534. package/dist/modes/interactive/components/subagent-overlay.d.ts.map +1 -0
  535. package/dist/modes/interactive/components/subagent-overlay.js +324 -0
  536. package/dist/modes/interactive/components/subagent-overlay.js.map +1 -0
  537. package/dist/modes/interactive/components/subagents-panel.d.ts +23 -0
  538. package/dist/modes/interactive/components/subagents-panel.d.ts.map +1 -0
  539. package/dist/modes/interactive/components/subagents-panel.js +192 -0
  540. package/dist/modes/interactive/components/subagents-panel.js.map +1 -0
  541. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  542. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  543. package/dist/modes/interactive/components/theme-selector.js +50 -0
  544. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  545. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  546. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  547. package/dist/modes/interactive/components/thinking-selector.js +51 -0
  548. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  549. package/dist/modes/interactive/components/tool-execution.d.ts +63 -0
  550. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  551. package/dist/modes/interactive/components/tool-execution.js +317 -0
  552. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  553. package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
  554. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  555. package/dist/modes/interactive/components/tree-selector.js +1093 -0
  556. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  557. package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  558. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  559. package/dist/modes/interactive/components/trust-selector.js +91 -0
  560. package/dist/modes/interactive/components/trust-selector.js.map +1 -0
  561. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  562. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  563. package/dist/modes/interactive/components/user-message-selector.js +114 -0
  564. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  565. package/dist/modes/interactive/components/user-message.d.ts +10 -0
  566. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  567. package/dist/modes/interactive/components/user-message.js +29 -0
  568. package/dist/modes/interactive/components/user-message.js.map +1 -0
  569. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  570. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  571. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  572. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  573. package/dist/modes/interactive/interactive-mode.d.ts +417 -0
  574. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  575. package/dist/modes/interactive/interactive-mode.js +5518 -0
  576. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  577. package/dist/modes/interactive/theme/dark.json +86 -0
  578. package/dist/modes/interactive/theme/light.json +85 -0
  579. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  580. package/dist/modes/interactive/theme/theme.d.ts +100 -0
  581. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  582. package/dist/modes/interactive/theme/theme.js +1034 -0
  583. package/dist/modes/interactive/theme/theme.js.map +1 -0
  584. package/dist/modes/print-mode.d.ts +28 -0
  585. package/dist/modes/print-mode.d.ts.map +1 -0
  586. package/dist/modes/print-mode.js +132 -0
  587. package/dist/modes/print-mode.js.map +1 -0
  588. package/dist/modes/rpc/jsonl.d.ts +17 -0
  589. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  590. package/dist/modes/rpc/jsonl.js +49 -0
  591. package/dist/modes/rpc/jsonl.js.map +1 -0
  592. package/dist/modes/rpc/rpc-client.d.ts +227 -0
  593. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  594. package/dist/modes/rpc/rpc-client.js +467 -0
  595. package/dist/modes/rpc/rpc-client.js.map +1 -0
  596. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  597. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  598. package/dist/modes/rpc/rpc-mode.js +616 -0
  599. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  600. package/dist/modes/rpc/rpc-types.d.ts +420 -0
  601. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  602. package/dist/modes/rpc/rpc-types.js +8 -0
  603. package/dist/modes/rpc/rpc-types.js.map +1 -0
  604. package/dist/package-manager-cli.d.ts +9 -0
  605. package/dist/package-manager-cli.d.ts.map +1 -0
  606. package/dist/package-manager-cli.js +764 -0
  607. package/dist/package-manager-cli.js.map +1 -0
  608. package/dist/utils/ansi.d.ts +2 -0
  609. package/dist/utils/ansi.d.ts.map +1 -0
  610. package/dist/utils/ansi.js +52 -0
  611. package/dist/utils/ansi.js.map +1 -0
  612. package/dist/utils/changelog.d.ts +22 -0
  613. package/dist/utils/changelog.d.ts.map +1 -0
  614. package/dist/utils/changelog.js +165 -0
  615. package/dist/utils/changelog.js.map +1 -0
  616. package/dist/utils/child-process.d.ts +15 -0
  617. package/dist/utils/child-process.d.ts.map +1 -0
  618. package/dist/utils/child-process.js +88 -0
  619. package/dist/utils/child-process.js.map +1 -0
  620. package/dist/utils/clipboard-image.d.ts +11 -0
  621. package/dist/utils/clipboard-image.d.ts.map +1 -0
  622. package/dist/utils/clipboard-image.js +245 -0
  623. package/dist/utils/clipboard-image.js.map +1 -0
  624. package/dist/utils/clipboard-native.d.ts +10 -0
  625. package/dist/utils/clipboard-native.d.ts.map +1 -0
  626. package/dist/utils/clipboard-native.js +20 -0
  627. package/dist/utils/clipboard-native.js.map +1 -0
  628. package/dist/utils/clipboard.d.ts +2 -0
  629. package/dist/utils/clipboard.d.ts.map +1 -0
  630. package/dist/utils/clipboard.js +117 -0
  631. package/dist/utils/clipboard.js.map +1 -0
  632. package/dist/utils/deprecation.d.ts +4 -0
  633. package/dist/utils/deprecation.d.ts.map +1 -0
  634. package/dist/utils/deprecation.js +13 -0
  635. package/dist/utils/deprecation.js.map +1 -0
  636. package/dist/utils/exif-orientation.d.ts +5 -0
  637. package/dist/utils/exif-orientation.d.ts.map +1 -0
  638. package/dist/utils/exif-orientation.js +158 -0
  639. package/dist/utils/exif-orientation.js.map +1 -0
  640. package/dist/utils/frontmatter.d.ts +8 -0
  641. package/dist/utils/frontmatter.d.ts.map +1 -0
  642. package/dist/utils/frontmatter.js +26 -0
  643. package/dist/utils/frontmatter.js.map +1 -0
  644. package/dist/utils/fs-watch.d.ts +5 -0
  645. package/dist/utils/fs-watch.d.ts.map +1 -0
  646. package/dist/utils/fs-watch.js +25 -0
  647. package/dist/utils/fs-watch.js.map +1 -0
  648. package/dist/utils/git.d.ts +26 -0
  649. package/dist/utils/git.d.ts.map +1 -0
  650. package/dist/utils/git.js +195 -0
  651. package/dist/utils/git.js.map +1 -0
  652. package/dist/utils/html.d.ts +7 -0
  653. package/dist/utils/html.d.ts.map +1 -0
  654. package/dist/utils/html.js +40 -0
  655. package/dist/utils/html.js.map +1 -0
  656. package/dist/utils/image-convert.d.ts +9 -0
  657. package/dist/utils/image-convert.d.ts.map +1 -0
  658. package/dist/utils/image-convert.js +39 -0
  659. package/dist/utils/image-convert.js.map +1 -0
  660. package/dist/utils/image-resize-core.d.ts +30 -0
  661. package/dist/utils/image-resize-core.d.ts.map +1 -0
  662. package/dist/utils/image-resize-core.js +124 -0
  663. package/dist/utils/image-resize-core.js.map +1 -0
  664. package/dist/utils/image-resize-worker.d.ts +2 -0
  665. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  666. package/dist/utils/image-resize-worker.js +31 -0
  667. package/dist/utils/image-resize-worker.js.map +1 -0
  668. package/dist/utils/image-resize.d.ts +16 -0
  669. package/dist/utils/image-resize.d.ts.map +1 -0
  670. package/dist/utils/image-resize.js +97 -0
  671. package/dist/utils/image-resize.js.map +1 -0
  672. package/dist/utils/json.d.ts +3 -0
  673. package/dist/utils/json.d.ts.map +1 -0
  674. package/dist/utils/json.js +7 -0
  675. package/dist/utils/json.js.map +1 -0
  676. package/dist/utils/mime.d.ts +3 -0
  677. package/dist/utils/mime.d.ts.map +1 -0
  678. package/dist/utils/mime.js +69 -0
  679. package/dist/utils/mime.js.map +1 -0
  680. package/dist/utils/open-browser.d.ts +9 -0
  681. package/dist/utils/open-browser.d.ts.map +1 -0
  682. package/dist/utils/open-browser.js +22 -0
  683. package/dist/utils/open-browser.js.map +1 -0
  684. package/dist/utils/paths.d.ts +31 -0
  685. package/dist/utils/paths.d.ts.map +1 -0
  686. package/dist/utils/paths.js +92 -0
  687. package/dist/utils/paths.js.map +1 -0
  688. package/dist/utils/photon.d.ts +21 -0
  689. package/dist/utils/photon.d.ts.map +1 -0
  690. package/dist/utils/photon.js +121 -0
  691. package/dist/utils/photon.js.map +1 -0
  692. package/dist/utils/pi-user-agent.d.ts +2 -0
  693. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  694. package/dist/utils/pi-user-agent.js +5 -0
  695. package/dist/utils/pi-user-agent.js.map +1 -0
  696. package/dist/utils/shell.d.ts +30 -0
  697. package/dist/utils/shell.d.ts.map +1 -0
  698. package/dist/utils/shell.js +195 -0
  699. package/dist/utils/shell.js.map +1 -0
  700. package/dist/utils/sleep.d.ts +5 -0
  701. package/dist/utils/sleep.d.ts.map +1 -0
  702. package/dist/utils/sleep.js +17 -0
  703. package/dist/utils/sleep.js.map +1 -0
  704. package/dist/utils/syntax-highlight.d.ts +12 -0
  705. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  706. package/dist/utils/syntax-highlight.js +118 -0
  707. package/dist/utils/syntax-highlight.js.map +1 -0
  708. package/dist/utils/tools-manager.d.ts +3 -0
  709. package/dist/utils/tools-manager.d.ts.map +1 -0
  710. package/dist/utils/tools-manager.js +328 -0
  711. package/dist/utils/tools-manager.js.map +1 -0
  712. package/dist/utils/version-check.d.ts +15 -0
  713. package/dist/utils/version-check.d.ts.map +1 -0
  714. package/dist/utils/version-check.js +82 -0
  715. package/dist/utils/version-check.js.map +1 -0
  716. package/dist/utils/windows-self-update.d.ts +3 -0
  717. package/dist/utils/windows-self-update.d.ts.map +1 -0
  718. package/dist/utils/windows-self-update.js +77 -0
  719. package/dist/utils/windows-self-update.js.map +1 -0
  720. package/docs/compaction.md +394 -0
  721. package/docs/containerization.md +111 -0
  722. package/docs/custom-provider.md +736 -0
  723. package/docs/development.md +71 -0
  724. package/docs/docs.json +172 -0
  725. package/docs/extensions.md +2657 -0
  726. package/docs/images/doom-extension.png +0 -0
  727. package/docs/images/exy.png +0 -0
  728. package/docs/images/interactive-mode.png +0 -0
  729. package/docs/images/tree-view.png +0 -0
  730. package/docs/index.md +86 -0
  731. package/docs/json.md +82 -0
  732. package/docs/keybindings.md +199 -0
  733. package/docs/mcp.md +476 -0
  734. package/docs/models.md +604 -0
  735. package/docs/packages.md +228 -0
  736. package/docs/plugins.md +48 -0
  737. package/docs/primary-agents.md +272 -0
  738. package/docs/prompt-templates.md +95 -0
  739. package/docs/providers.md +256 -0
  740. package/docs/quickstart.md +165 -0
  741. package/docs/rpc.md +1408 -0
  742. package/docs/sdk.md +1161 -0
  743. package/docs/security.md +55 -0
  744. package/docs/session-format.md +412 -0
  745. package/docs/sessions.md +145 -0
  746. package/docs/settings.md +317 -0
  747. package/docs/shell-aliases.md +13 -0
  748. package/docs/skills.md +231 -0
  749. package/docs/subagents.md +334 -0
  750. package/docs/terminal-setup.md +148 -0
  751. package/docs/termux.md +127 -0
  752. package/docs/themes.md +295 -0
  753. package/docs/tmux.md +63 -0
  754. package/docs/tui.md +927 -0
  755. package/docs/usage.md +328 -0
  756. package/docs/windows.md +17 -0
  757. package/examples/README.md +25 -0
  758. package/examples/extensions/README.md +211 -0
  759. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  760. package/examples/extensions/bash-spawn-hook.ts +30 -0
  761. package/examples/extensions/bookmark.ts +50 -0
  762. package/examples/extensions/border-status-editor.ts +150 -0
  763. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  764. package/examples/extensions/claude-rules.ts +86 -0
  765. package/examples/extensions/commands.ts +72 -0
  766. package/examples/extensions/confirm-destructive.ts +59 -0
  767. package/examples/extensions/custom-compaction.ts +127 -0
  768. package/examples/extensions/custom-footer.ts +64 -0
  769. package/examples/extensions/custom-header.ts +73 -0
  770. package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
  771. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  772. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  773. package/examples/extensions/custom-provider-gitlab-duo/index.ts +400 -0
  774. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  775. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  776. package/examples/extensions/dirty-repo-guard.ts +56 -0
  777. package/examples/extensions/doom-overlay/README.md +46 -0
  778. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  779. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  780. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  781. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  782. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  783. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  784. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  785. package/examples/extensions/doom-overlay/index.ts +74 -0
  786. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  787. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  788. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  789. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  790. package/examples/extensions/dynamic-resources/index.ts +15 -0
  791. package/examples/extensions/dynamic-tools.ts +74 -0
  792. package/examples/extensions/event-bus.ts +43 -0
  793. package/examples/extensions/file-trigger.ts +41 -0
  794. package/examples/extensions/git-checkpoint.ts +53 -0
  795. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  796. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  797. package/examples/extensions/gondolin/index.ts +531 -0
  798. package/examples/extensions/gondolin/package-lock.json +185 -0
  799. package/examples/extensions/gondolin/package.json +19 -0
  800. package/examples/extensions/handoff.ts +191 -0
  801. package/examples/extensions/hello.ts +26 -0
  802. package/examples/extensions/hidden-thinking-label.ts +53 -0
  803. package/examples/extensions/inline-bash.ts +94 -0
  804. package/examples/extensions/input-transform-streaming.ts +39 -0
  805. package/examples/extensions/input-transform.ts +43 -0
  806. package/examples/extensions/interactive-shell.ts +196 -0
  807. package/examples/extensions/mac-system-theme.ts +47 -0
  808. package/examples/extensions/message-renderer.ts +59 -0
  809. package/examples/extensions/minimal-mode.ts +426 -0
  810. package/examples/extensions/modal-editor.ts +85 -0
  811. package/examples/extensions/model-status.ts +31 -0
  812. package/examples/extensions/notify.ts +55 -0
  813. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  814. package/examples/extensions/overlay-test.ts +153 -0
  815. package/examples/extensions/permission-gate.ts +34 -0
  816. package/examples/extensions/pirate.ts +47 -0
  817. package/examples/extensions/preset.ts +430 -0
  818. package/examples/extensions/project-trust.ts +64 -0
  819. package/examples/extensions/prompt-customizer.ts +97 -0
  820. package/examples/extensions/protected-paths.ts +30 -0
  821. package/examples/extensions/provider-payload.ts +18 -0
  822. package/examples/extensions/qna.ts +122 -0
  823. package/examples/extensions/question.ts +264 -0
  824. package/examples/extensions/questionnaire.ts +427 -0
  825. package/examples/extensions/rainbow-editor.ts +88 -0
  826. package/examples/extensions/reload-runtime.ts +37 -0
  827. package/examples/extensions/rpc-demo.ts +118 -0
  828. package/examples/extensions/sandbox/index.ts +321 -0
  829. package/examples/extensions/sandbox/package-lock.json +92 -0
  830. package/examples/extensions/sandbox/package.json +19 -0
  831. package/examples/extensions/send-user-message.ts +97 -0
  832. package/examples/extensions/session-name.ts +27 -0
  833. package/examples/extensions/shutdown-command.ts +63 -0
  834. package/examples/extensions/snake.ts +343 -0
  835. package/examples/extensions/space-invaders.ts +560 -0
  836. package/examples/extensions/ssh.ts +220 -0
  837. package/examples/extensions/status-line.ts +32 -0
  838. package/examples/extensions/structured-output.ts +65 -0
  839. package/examples/extensions/subagent/README.md +175 -0
  840. package/examples/extensions/subagent/agents/planner.md +37 -0
  841. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  842. package/examples/extensions/subagent/agents/scout.md +50 -0
  843. package/examples/extensions/subagent/agents/worker.md +24 -0
  844. package/examples/extensions/subagent/agents.ts +126 -0
  845. package/examples/extensions/subagent/index.ts +1009 -0
  846. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  847. package/examples/extensions/subagent/prompts/implement.md +10 -0
  848. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  849. package/examples/extensions/summarize.ts +206 -0
  850. package/examples/extensions/system-prompt-header.ts +17 -0
  851. package/examples/extensions/tic-tac-toe.ts +1008 -0
  852. package/examples/extensions/timed-confirm.ts +70 -0
  853. package/examples/extensions/titlebar-spinner.ts +58 -0
  854. package/examples/extensions/todo.ts +297 -0
  855. package/examples/extensions/tool-override.ts +144 -0
  856. package/examples/extensions/tools.ts +146 -0
  857. package/examples/extensions/trigger-compact.ts +50 -0
  858. package/examples/extensions/truncated-tool.ts +195 -0
  859. package/examples/extensions/widget-placement.ts +9 -0
  860. package/examples/extensions/with-deps/index.ts +32 -0
  861. package/examples/extensions/with-deps/package-lock.json +31 -0
  862. package/examples/extensions/with-deps/package.json +22 -0
  863. package/examples/extensions/working-indicator.ts +123 -0
  864. package/examples/extensions/working-message-test.ts +25 -0
  865. package/examples/rpc-extension-ui.ts +632 -0
  866. package/examples/sdk/01-minimal.ts +26 -0
  867. package/examples/sdk/02-custom-model.ts +53 -0
  868. package/examples/sdk/03-custom-prompt.ts +70 -0
  869. package/examples/sdk/04-skills.ts +55 -0
  870. package/examples/sdk/05-tools.ts +48 -0
  871. package/examples/sdk/06-extensions.ts +94 -0
  872. package/examples/sdk/07-context-files.ts +42 -0
  873. package/examples/sdk/08-prompt-templates.ts +51 -0
  874. package/examples/sdk/09-api-keys-and-oauth.ts +52 -0
  875. package/examples/sdk/10-settings.ts +53 -0
  876. package/examples/sdk/11-sessions.ts +52 -0
  877. package/examples/sdk/12-full-control.ts +77 -0
  878. package/examples/sdk/13-session-runtime.ts +67 -0
  879. package/examples/sdk/README.md +144 -0
  880. package/npm-shrinkwrap.json +1806 -0
  881. package/package.json +96 -0
@@ -0,0 +1,334 @@
1
+ # Subagents
2
+
3
+ Subagent 是一种任务委托机制,允许主 agent 将任务分配给专门的子 agent 执行。内置 subagent tool 在当前进程内运行,不创建子进程,子会话不持久化。
4
+
5
+ ## 内置 Agent
6
+
7
+ | Agent | 描述 | 默认工具 | thinking |
8
+ |-------|------|----------|----------|
9
+ | `explorer` | 快速并行搜索,返回定位和摘要 | read, grep, find, ls | low |
10
+ | `worker` | 单元化任务执行,拥有全部权限 | read, bash, edit, write, grep, find, ls | —(继承主 agent) |
11
+
12
+ ## 自定义 Agent
13
+
14
+ 创建 Markdown 文件定义自定义 agent:
15
+
16
+ **用户级**:`~/.pi/agent/subagents/*.md`
17
+ **项目级**:`.pi/subagents/*.md`(需要 `subagentScope: "project"` 或 `"both"`)
18
+
19
+ ```markdown
20
+ ---
21
+ description: 审查补丁的专注审计员
22
+ model: anthropic/claude-sonnet-4-5
23
+ thinking: high
24
+ includedTools: [read, grep, find, ls]
25
+ ---
26
+ ```
27
+
28
+ **Frontmatter 字段**:
29
+
30
+ | 字段 | 类型 | 说明 |
31
+ |------|------|------|
32
+ | `description` | string | Agent 描述,用于工具提示 |
33
+ | `model` | string | 模型 ID,如 `anthropic/claude-sonnet-4-5` |
34
+ | `thinking` | string | 思考级别:`off`、`minimal`、`low`、`medium`、`high`、`xhigh` |
35
+ | `includedTools` | string[] | 允许的工具列表,支持 glob 模式(详见下文) |
36
+ | `excludedTools` | string[] | 排除的工具列表,支持 glob 模式(详见下文) |
37
+ | `skills` | string[] | 允许主 agent 已加载的 skills 列表,支持 glob 模式(详见下文) |
38
+
39
+ #### 工具匹配(glob 模式)
40
+
41
+ `includedTools` / `excludedTools` 使用 [minimatch](https://github.com/isaacs/minimatch) glob 模式匹配工具名(大小写不敏感):
42
+
43
+ - `"read"` — 精确匹配 `read` 工具
44
+ - `"read*"` — 匹配 `read`、`readFile` 等所有以 read 开头的工具
45
+ - `"!*"` — 匹配所有工具的否定模式
46
+ - 未设置 `includedTools` 且未设置 `excludedTools` — 使用默认工具集 `read, bash, edit, write`
47
+ - `includedTools: []`(空数组)— 无工具
48
+ - 若同时设置 `includedTools` 和 `excludedTools`,`includedTools` 生效,`excludedTools` 被忽略(included 优先)
49
+
50
+ 内置工具名:`read`、`bash`、`edit`、`write`、`grep`、`find`、`ls`。此外 `subagent` 工具由 coding-agent 扩展注册,扩展也可注册自定义工具名。
51
+
52
+ #### Skills 匹配(glob 模式)
53
+
54
+ `skills` 字段允许 subagent 继承主 agent 已加载的 skills。同样使用 minimatch 匹配 skill 名称(大小写不敏感):
55
+
56
+ - 未设置或空数组 `[]` — subagent **不继承**任何 skill(默认行为)
57
+ - `"test-*"` — 匹配名称以 `test-` 开头的 skills
58
+ - `"*"` — 匹配所有 skills
59
+
60
+ 匹配的 skills 会注入到 subagent 的系统提示词中,效果与主 agent 加载 skill 一致。skill 内容仍按需加载(progressive disclosure)。
61
+
62
+ #### 兼容性
63
+
64
+ 旧字段名 `tools` 仍然可读,但会自动映射到 `includedTools`,优先使用 `includedTools`。
65
+
66
+ Frontmatter 中的 `model` 和 `thinking` 可被任务参数覆盖。
67
+
68
+ ## 运行模式
69
+
70
+ ### 单任务
71
+
72
+ ```json
73
+ {
74
+ "agent": "worker",
75
+ "task": "审查当前变更集",
76
+ "thinking": "high"
77
+ }
78
+ ```
79
+
80
+ ### 并行任务
81
+
82
+ 最多 8 个任务,并发度 4。结果顺序与输入顺序一致。
83
+
84
+ ```json
85
+ {
86
+ "tasks": [
87
+ { "agent": "explorer", "task": "查找 settings 相关文件", "includedTools": ["read", "grep", "find"] },
88
+ { "agent": "worker", "task": "审查测试覆盖", "includedTools": ["read", "grep"] }
89
+ ]
90
+ }
91
+ ```
92
+
93
+ ### 链式任务
94
+
95
+ 顺序执行,`{previous}` 被替换为前一步输出。
96
+
97
+ ```json
98
+ {
99
+ "chain": [
100
+ { "agent": "explorer", "task": "总结认证流程" },
101
+ { "agent": "worker", "task": "基于此上下文规划安全重构:{previous}" }
102
+ ]
103
+ }
104
+ ```
105
+
106
+ ## Agent Scope
107
+
108
+ | Scope | 加载的 Agent |
109
+ |-------|-------------|
110
+ | `user`(默认) | 内置 + `~/.pi/agent/subagents/` |
111
+ | `project` | 内置 + `.pi/subagents/` |
112
+ | `both` | 内置 + 用户级 + 项目级 |
113
+
114
+ 项目级 agent 覆盖同名的用户级 agent。
115
+
116
+ 通过设置 `settings.json` 中的 `defaultPrimaryAgent` 可以为项目指定默认使用的主 agent:
117
+
118
+ ```json
119
+ {
120
+ "defaultPrimaryAgent": "my-custom-agent"
121
+ }
122
+ ```
123
+
124
+ 设置后,每次启动会话时自动恢复该 agent。
125
+
126
+ 在任务中通过 `subagentScope` 参数控制 agent 搜索范围:
127
+
128
+ ```json
129
+ {
130
+ "agent": "project-reviewer",
131
+ "task": "审查代码",
132
+ "subagentScope": "project"
133
+ }
134
+ ```
135
+
136
+ ## 运行时监控
137
+
138
+ - 状态栏显示 `subagents:N` 表示运行中的 subagent 数量
139
+ - `/running-subagents` 查看每个 subagent 的事件、工具、输出、错误、模型、思考级别和用量
140
+
141
+ ## 创建自定义 Agent
142
+
143
+ ### 1. 确定 Agent 目标
144
+
145
+ 明确 agent 的职责边界:
146
+ - 输入:agent 接收什么任务描述
147
+ - 输出:agent 应返回什么格式
148
+ - 工具:agent 需要哪些工具
149
+ - 模型:任务需要什么能力的模型
150
+
151
+ ### 2. 编写 Agent 定义
152
+
153
+ ```markdown
154
+ ---
155
+ description: 分析依赖关系并生成依赖图
156
+ model: anthropic/claude-sonnet-4-5
157
+ thinking: medium
158
+ includedTools: [read, grep, find, ls, bash]
159
+ ---
160
+
161
+ 你是依赖分析专家。分析项目的依赖关系并生成结构化报告。
162
+
163
+ 策略:
164
+ 1. 查找 package.json、Cargo.toml、go.mod 等依赖文件
165
+ 2. 分析直接依赖和传递依赖
166
+ 3. 识别循环依赖和版本冲突
167
+
168
+ 输出格式:
169
+
170
+ ## 依赖文件
171
+ 列出发现的依赖文件。
172
+
173
+ ## 直接依赖
174
+ 按类型分组的主要依赖。
175
+
176
+ ## 传递依赖
177
+ 关键传递依赖及其来源。
178
+
179
+ ## 问题
180
+ 循环依赖、版本冲突、安全警告。
181
+
182
+ ## 建议
183
+ 优化建议。
184
+ ```
185
+
186
+ ### 3. 选择工具集
187
+
188
+ | 工具 | 用途 |
189
+ |------|------|
190
+ | `read` | 读取文件内容 |
191
+ | `bash` | 执行命令(git、构建工具等) |
192
+ | `edit` | 编辑文件 |
193
+ | `write` | 创建/覆盖文件 |
194
+ | `grep` | 搜索文件内容(支持 glob 过滤文件) |
195
+ | `find` | 按 glob 模式查找文件(respects .gitignore) |
196
+ | `ls` | 列出目录 |
197
+
198
+ 此外,`subagent` 工具由 coding-agent 扩展注册,扩展也可注册自定义工具名。
199
+
200
+ **只读 agent**:`read, grep, find, ls`
201
+ **分析 + 执行 agent**:`read, bash, grep, find, ls`
202
+ **完整能力 agent**:`read, bash, edit, write, grep, find, ls`
203
+
204
+ 如果 subagent 需要使用主 agent 已加载的 skills,在 frontmatter 中设置 `skills` 字段(glob 模式匹配 skill 名称,如 `skills: ["test-*"]` 或 `skills: ["*"]` 继承全部)。
205
+
206
+ ### 4. 设计输出格式
207
+
208
+ 结构化输出便于:
209
+ - 主 agent 理解结果
210
+ - 链式模式传递给下一步
211
+ - 用户审查
212
+
213
+ ```markdown
214
+ ## 摘要
215
+ 一句话总结。
216
+
217
+ ## 发现
218
+ - 发现1
219
+ - 发现2
220
+
221
+ ## 文件
222
+ - `path/to/file.ts` - 说明
223
+
224
+ ## 下一步
225
+ 建议的后续行动。
226
+ ```
227
+
228
+ ### 5. 放置 Agent 文件
229
+
230
+ ```bash
231
+ # 用户级(所有项目可用)
232
+ mkdir -p ~/.pi/agent/subagents
233
+ cat > ~/.pi/agent/subagents/dep-analyzer.md << 'EOF'
234
+ ---
235
+ description: 分析依赖关系
236
+ model: anthropic/claude-sonnet-4-5
237
+ includedTools: [read, grep, find, ls, bash]
238
+ ---
239
+ ...
240
+ EOF
241
+
242
+ # 项目级(仅当前项目)
243
+ mkdir -p .pi/subagents
244
+ cat > .pi/subagents/project-reviewer.md << 'EOF'
245
+ ---
246
+ description: 项目特定审查规则
247
+ includedTools: [read, grep, find, ls]
248
+ ---
249
+ ...
250
+ EOF
251
+ ```
252
+
253
+ ### 6. 测试 Agent
254
+
255
+ ```bash
256
+ # 交互式测试
257
+ pi
258
+ > 使用 dep-analyzer 分析当前项目的依赖
259
+
260
+ # 指定 scope 测试项目级 agent
261
+ > 用 subagentScope=both 运行 project-reviewer 审查 src/
262
+ ```
263
+
264
+ ## 最佳实践
265
+
266
+ ### Agent 设计
267
+
268
+ 1. **单一职责**:每个 agent 专注一个领域
269
+ 2. **明确输出格式**:结构化输出便于解析和传递
270
+ 3. **工具最小化**:只授予必要的工具
271
+ 4. **模型匹配**:简单任务用 Haiku,复杂任务用 Sonnet/Opus
272
+
273
+ ### 并行 vs 链式
274
+
275
+ | 场景 | 模式 |
276
+ |------|------|
277
+ | 独立任务(无依赖) | parallel |
278
+ | 需要前一步结果 | chain |
279
+ | 混合 | 分组并行 + 链式 |
280
+
281
+ ### 上下文传递
282
+
283
+ 链式模式使用 `{previous}` 占位符:
284
+
285
+ ```json
286
+ {
287
+ "chain": [
288
+ { "agent": "explorer", "task": "查找认证相关代码" },
289
+ { "agent": "worker", "task": "基于以下上下文规划重构:\n{previous}" },
290
+ { "agent": "worker", "task": "执行以下计划:\n{previous}" }
291
+ ]
292
+ }
293
+ ```
294
+
295
+ ### 错误处理
296
+
297
+ - 链式模式在第一个失败步骤停止
298
+ - 并行模式继续执行其他任务,汇总成功/失败数
299
+ - 检查 `status` 字段判断成功与否
300
+
301
+ ### 性能考虑
302
+
303
+ - 并行任务上限 8 个,并发度 4
304
+ - 大输出会被截断,完整结果保留在 tool details
305
+
306
+ ## SDK 用法
307
+
308
+ ```typescript
309
+ const { session } = await createAgentSession();
310
+
311
+ // 运行 subagent
312
+ const result = await session.runSubagents({
313
+ agent: "worker",
314
+ task: "规划 subagent 发现的最小实现",
315
+ thinking: "medium",
316
+ });
317
+ ```
318
+
319
+ ## 示例:独立进程 Subagent
320
+
321
+ `examples/extensions/subagent/` 提供了一个独立进程 subagent 的示例实现,每个 subagent 在隔离的 `pi` 子进程中运行。这是一个示例扩展,需要手动安装:
322
+
323
+ ```bash
324
+ mkdir -p ~/.pi/agent/extensions/subagent
325
+ ln -sf "$(pwd)/packages/coding-agent/examples/extensions/subagent/index.ts" ~/.pi/agent/extensions/subagent/index.ts
326
+ ```
327
+
328
+ 详见 `examples/extensions/subagent/README.md`。
329
+
330
+ ## 相关文档
331
+
332
+ - [Extensions](extensions.md) - 编写扩展注册自定义工具
333
+ - [Skills](skills.md) - 技能系统
334
+ - [Prompt Templates](prompt-templates.md) - 提示模板
@@ -0,0 +1,148 @@
1
+ # Terminal Setup
2
+
3
+ Pi uses the [Kitty keyboard protocol](https://sw.kovidgoyal.net/kitty/keyboard-protocol/) for reliable modifier key detection. Most modern terminals support this protocol, but some require configuration.
4
+
5
+ ## Kitty, iTerm2
6
+
7
+ Work out of the box.
8
+
9
+ ## Apple Terminal
10
+
11
+ Pi enables enhanced key reporting when available. If Terminal.app still sends plain Return for `Shift+Enter`, pi uses a local macOS modifier fallback to treat that Return as `Shift+Enter`.
12
+
13
+ This fallback only works when pi runs on the same Mac as Terminal.app. It cannot detect the local keyboard over remote SSH.
14
+
15
+ ## Ghostty
16
+
17
+ Add to your Ghostty config (`~/Library/Application Support/com.mitchellh.ghostty/config` on macOS, `~/.config/ghostty/config` on Linux):
18
+
19
+ ```
20
+ keybind = alt+backspace=text:\x1b\x7f
21
+ ```
22
+
23
+ Older Claude Code versions may have added this Ghostty mapping:
24
+
25
+ ```
26
+ keybind = shift+enter=text:\n
27
+ ```
28
+
29
+ That mapping sends a raw linefeed byte. Inside pi, that is indistinguishable from `Ctrl+J`, so tmux and pi no longer see a real `shift+enter` key event.
30
+
31
+ If Claude Code 2.x or newer is the only reason you added that mapping, you can remove it, unless you want to use Claude Code in tmux, where it still requires that Ghostty mapping.
32
+
33
+ If you want `Shift+Enter` to keep working in tmux via that remap, add `ctrl+j` to your pi `newLine` keybinding in `~/.pi/agent/keybindings.json`:
34
+
35
+ ```json
36
+ {
37
+ "newLine": ["shift+enter", "ctrl+j"]
38
+ }
39
+ ```
40
+
41
+ ## WezTerm
42
+
43
+ WezTerm usually works out of the box for `Shift+Enter` via xterm modifyOtherKeys. To use the Kitty keyboard protocol explicitly, create `~/.wezterm.lua`:
44
+
45
+ ```lua
46
+ local wezterm = require 'wezterm'
47
+ local config = wezterm.config_builder()
48
+ config.enable_kitty_keyboard = true
49
+ return config
50
+ ```
51
+
52
+ On macOS, WezTerm binds `Option+Enter` to fullscreen by default. To use `Option+Enter` for pi follow-up queueing, add this key override:
53
+
54
+ ```lua
55
+ local wezterm = require 'wezterm'
56
+ local config = wezterm.config_builder()
57
+ config.keys = {
58
+ {
59
+ key = 'Enter',
60
+ mods = 'ALT',
61
+ action = wezterm.action.SendString('\x1b[13;3u'),
62
+ },
63
+ }
64
+ return config
65
+ ```
66
+
67
+ If you already have a `config.keys` table, add the entry to it.
68
+
69
+ On WSL, WezTerm may require a visible hardware cursor for IME candidate window positioning. If CJK IME candidates do not follow the text cursor, set `PI_HARDWARE_CURSOR=1` before running pi or set `showHardwareCursor` to `true` in settings.
70
+
71
+ ## Alacritty
72
+
73
+ Alacritty usually works out of the box for `Shift+Enter`. On macOS, `Option+Enter` may arrive as plain `Enter`. To use `Option+Enter` for pi follow-up queueing, add to `~/.config/alacritty/alacritty.toml`:
74
+
75
+ ```toml
76
+ [[keyboard.bindings]]
77
+ key = "Enter"
78
+ mods = "Alt"
79
+ chars = "\u001b[13;3u"
80
+ ```
81
+
82
+ Restart Alacritty after changing the config.
83
+
84
+ ## VS Code (Integrated Terminal)
85
+
86
+ VS Code 1.109.5 and newer enable Kitty keyboard protocol in the integrated terminal by default, so `Shift+Enter` should work out of the box.
87
+
88
+ VS Code versions older than 1.109.5 need an explicit terminal keybinding for `Shift+Enter`.
89
+
90
+ `keybindings.json` locations:
91
+ - macOS: `~/Library/Application Support/Code/User/keybindings.json`
92
+ - Linux: `~/.config/Code/User/keybindings.json`
93
+ - Windows: `%APPDATA%\\Code\\User\\keybindings.json`
94
+
95
+ Add to `keybindings.json`:
96
+
97
+ ```json
98
+ {
99
+ "key": "shift+enter",
100
+ "command": "workbench.action.terminal.sendSequence",
101
+ "args": { "text": "\u001b[13;2u" },
102
+ "when": "terminalFocus"
103
+ }
104
+ ```
105
+
106
+ ## Windows Terminal
107
+
108
+ Add to `settings.json` (Ctrl+Shift+, or Settings → Open JSON file) to forward the modified Enter keys pi uses:
109
+
110
+ ```json
111
+ {
112
+ "actions": [
113
+ {
114
+ "command": { "action": "sendInput", "input": "\u001b[13;2u" },
115
+ "keys": "shift+enter"
116
+ },
117
+ {
118
+ "command": { "action": "sendInput", "input": "\u001b[13;3u" },
119
+ "keys": "alt+enter"
120
+ }
121
+ ]
122
+ }
123
+ ```
124
+
125
+ - `Shift+Enter` inserts a new line.
126
+ - Windows Terminal binds `Alt+Enter` to fullscreen by default. That prevents pi from receiving `Alt+Enter` for follow-up queueing.
127
+ - Remapping `Alt+Enter` to `sendInput` forwards the real key chord to pi instead.
128
+
129
+ If you already have an `actions` array, add the objects to it. If the old fullscreen behavior persists, fully close and reopen Windows Terminal.
130
+
131
+ ## xfce4-terminal, terminator
132
+
133
+ These terminals have limited escape sequence support. Modified Enter keys like `Ctrl+Enter` and `Shift+Enter` cannot be distinguished from plain `Enter`, preventing custom keybindings such as `submit: ["ctrl+enter"]` from working.
134
+
135
+ For the best experience, use a terminal that supports the Kitty keyboard protocol:
136
+ - [Kitty](https://sw.kovidgoyal.net/kitty/)
137
+ - [Ghostty](https://ghostty.org/)
138
+ - [WezTerm](https://wezfurlong.org/wezterm/)
139
+ - [iTerm2](https://iterm2.com/)
140
+ - [Alacritty](https://github.com/alacritty/alacritty) (requires compilation with Kitty protocol support)
141
+
142
+ ## IntelliJ IDEA (Integrated Terminal)
143
+
144
+ The built-in terminal has limited escape sequence support. Shift+Enter cannot be distinguished from Enter in IntelliJ's terminal.
145
+
146
+ If you want the hardware cursor visible, set `PI_HARDWARE_CURSOR=1` before running pi (disabled by default for compatibility).
147
+
148
+ Consider using a dedicated terminal emulator for the best experience.
package/docs/termux.md ADDED
@@ -0,0 +1,127 @@
1
+ # Termux (Android) Setup
2
+
3
+ Pi runs on Android via [Termux](https://termux.dev/), a terminal emulator and Linux environment for Android.
4
+
5
+ ## Prerequisites
6
+
7
+ 1. Install [Termux](https://github.com/termux/termux-app#installation) from GitHub or F-Droid (not Google Play, that version is deprecated)
8
+ 2. Install [Termux:API](https://github.com/termux/termux-api#installation) from GitHub or F-Droid for clipboard and other device integrations
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ # Update packages
14
+ pkg update && pkg upgrade
15
+
16
+ # Install dependencies
17
+ pkg install nodejs termux-api git
18
+
19
+ # Install pi
20
+ npm install -g --ignore-scripts @schovest/pi-coding-agent
21
+
22
+ # Create config directory
23
+ mkdir -p ~/.pi/agent
24
+
25
+ # Run pi
26
+ pi
27
+ ```
28
+
29
+ ## Clipboard Support
30
+
31
+ Clipboard operations use `termux-clipboard-set` and `termux-clipboard-get` when running in Termux. The Termux:API app must be installed for these to work.
32
+
33
+ Image clipboard is not supported on Termux (the `ctrl+v` image paste feature will not work).
34
+
35
+ ## Example AGENTS.md for Termux
36
+
37
+ Create `~/.pi/agent/AGENTS.md` to help the agent understand the Termux environment:
38
+
39
+ ````markdown
40
+ # Agent Environment: Termux on Android
41
+
42
+ ## Location
43
+ - **OS**: Android (Termux terminal emulator)
44
+ - **Home**: `/data/data/com.termux/files/home`
45
+ - **Prefix**: `/data/data/com.termux/files/usr`
46
+ - **Shared storage**: `/storage/emulated/0` (Downloads, Documents, etc.)
47
+
48
+ ## Opening URLs
49
+ ```bash
50
+ termux-open-url "https://example.com"
51
+ ```
52
+
53
+ ## Opening Files
54
+ ```bash
55
+ termux-open file.pdf # Opens with default app
56
+ termux-open --chooser image.jpg # Choose app
57
+ ```
58
+
59
+ ## Clipboard
60
+ ```bash
61
+ termux-clipboard-set "text" # Copy
62
+ termux-clipboard-get # Paste
63
+ ```
64
+
65
+ ## Notifications
66
+ ```bash
67
+ termux-notification -t "Title" -c "Content"
68
+ ```
69
+
70
+ ## Device Info
71
+ ```bash
72
+ termux-battery-status # Battery info
73
+ termux-wifi-connectioninfo # WiFi info
74
+ termux-telephony-deviceinfo # Device info
75
+ ```
76
+
77
+ ## Sharing
78
+ ```bash
79
+ termux-share -a send file.txt # Share file
80
+ ```
81
+
82
+ ## Other Useful Commands
83
+ ```bash
84
+ termux-toast "message" # Quick toast popup
85
+ termux-vibrate # Vibrate device
86
+ termux-tts-speak "hello" # Text to speech
87
+ termux-camera-photo out.jpg # Take photo
88
+ ```
89
+
90
+ ## Notes
91
+ - Termux:API app must be installed for `termux-*` commands
92
+ - Use `pkg install termux-api` for the command-line tools
93
+ - Storage permission needed for `/storage/emulated/0` access
94
+ ````
95
+
96
+ ## Limitations
97
+
98
+ - **No image clipboard**: Termux clipboard API only supports text
99
+ - **No native binaries**: Some optional native dependencies (like the clipboard module) are unavailable on Android ARM64 and are skipped during installation
100
+ - **Storage access**: To access files in `/storage/emulated/0` (Downloads, etc.), run `termux-setup-storage` once to grant permissions
101
+
102
+ ## Troubleshooting
103
+
104
+ ### Clipboard not working
105
+
106
+ Ensure both apps are installed:
107
+ 1. Termux (from GitHub or F-Droid)
108
+ 2. Termux:API (from GitHub or F-Droid)
109
+
110
+ Then install the CLI tools:
111
+ ```bash
112
+ pkg install termux-api
113
+ ```
114
+
115
+ ### Permission denied for shared storage
116
+
117
+ Run once to grant storage permissions:
118
+ ```bash
119
+ termux-setup-storage
120
+ ```
121
+
122
+ ### Node.js installation issues
123
+
124
+ If npm fails, try clearing the cache:
125
+ ```bash
126
+ npm cache clean --force
127
+ ```