@eminent337/aery 0.67.68 → 0.74.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (762) hide show
  1. package/CHANGELOG.md +418 -5
  2. package/README.md +67 -37
  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 +53 -0
  16. package/dist/cli/args.d.ts.map +1 -0
  17. package/dist/cli/args.js +341 -0
  18. package/dist/cli/args.js.map +1 -0
  19. package/dist/cli/capabilities.d.ts +61 -0
  20. package/dist/cli/capabilities.d.ts.map +1 -0
  21. package/dist/cli/capabilities.js +155 -0
  22. package/dist/cli/capabilities.js.map +1 -0
  23. package/dist/cli/config-selector.d.ts +14 -0
  24. package/dist/cli/config-selector.d.ts.map +1 -0
  25. package/dist/cli/config-selector.js +31 -0
  26. package/dist/cli/config-selector.js.map +1 -0
  27. package/dist/cli/doctor.d.ts +32 -0
  28. package/dist/cli/doctor.d.ts.map +1 -0
  29. package/dist/cli/doctor.js +133 -0
  30. package/dist/cli/doctor.js.map +1 -0
  31. package/dist/cli/file-processor.d.ts +15 -0
  32. package/dist/cli/file-processor.d.ts.map +1 -0
  33. package/dist/cli/file-processor.js +83 -0
  34. package/dist/cli/file-processor.js.map +1 -0
  35. package/dist/cli/initial-message.d.ts +18 -0
  36. package/dist/cli/initial-message.d.ts.map +1 -0
  37. package/dist/cli/initial-message.js +22 -0
  38. package/dist/cli/initial-message.js.map +1 -0
  39. package/dist/cli/list-models.d.ts +9 -0
  40. package/dist/cli/list-models.d.ts.map +1 -0
  41. package/dist/cli/list-models.js +98 -0
  42. package/dist/cli/list-models.js.map +1 -0
  43. package/dist/cli/session-picker.d.ts +9 -0
  44. package/dist/cli/session-picker.d.ts.map +1 -0
  45. package/dist/cli/session-picker.js +35 -0
  46. package/dist/cli/session-picker.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 +20 -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 +399 -0
  54. package/dist/config.js.map +1 -0
  55. package/dist/core/agent-session-runtime.d.ts +117 -0
  56. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  57. package/dist/core/agent-session-runtime.js +300 -0
  58. package/dist/core/agent-session-runtime.js.map +1 -0
  59. package/dist/core/agent-session-services.d.ts +86 -0
  60. package/dist/core/agent-session-services.d.ts.map +1 -0
  61. package/dist/core/agent-session-services.js +117 -0
  62. package/dist/core/agent-session-services.js.map +1 -0
  63. package/dist/core/agent-session.d.ts +595 -0
  64. package/dist/core/agent-session.d.ts.map +1 -0
  65. package/dist/core/agent-session.js +2521 -0
  66. package/dist/core/agent-session.js.map +1 -0
  67. package/dist/core/auth-guidance.d.ts +6 -0
  68. package/dist/core/auth-guidance.d.ts.map +1 -0
  69. package/dist/core/auth-guidance.js +32 -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 +441 -0
  74. package/dist/core/auth-storage.js.map +1 -0
  75. package/dist/core/bash-executor.d.ts +32 -0
  76. package/dist/core/bash-executor.d.ts.map +1 -0
  77. package/dist/core/bash-executor.js +111 -0
  78. package/dist/core/bash-executor.js.map +1 -0
  79. package/dist/core/compaction/branch-summarization.d.ts +88 -0
  80. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  81. package/dist/core/compaction/branch-summarization.js +243 -0
  82. package/dist/core/compaction/branch-summarization.js.map +1 -0
  83. package/dist/core/compaction/compaction.d.ts +121 -0
  84. package/dist/core/compaction/compaction.d.ts.map +1 -0
  85. package/dist/core/compaction/compaction.js +615 -0
  86. package/dist/core/compaction/compaction.js.map +1 -0
  87. package/dist/core/compaction/index.d.ts +7 -0
  88. package/dist/core/compaction/index.d.ts.map +1 -0
  89. package/dist/core/compaction/index.js +7 -0
  90. package/dist/core/compaction/index.js.map +1 -0
  91. package/dist/core/compaction/utils.d.ts +38 -0
  92. package/dist/core/compaction/utils.d.ts.map +1 -0
  93. package/dist/core/compaction/utils.js +153 -0
  94. package/dist/core/compaction/utils.js.map +1 -0
  95. package/dist/core/custom-openai-compatible.d.ts +14 -0
  96. package/dist/core/custom-openai-compatible.d.ts.map +1 -0
  97. package/dist/core/custom-openai-compatible.js +128 -0
  98. package/dist/core/custom-openai-compatible.js.map +1 -0
  99. package/dist/core/defaults.d.ts +3 -0
  100. package/dist/core/defaults.d.ts.map +1 -0
  101. package/dist/core/defaults.js +2 -0
  102. package/dist/core/defaults.js.map +1 -0
  103. package/dist/core/diagnostics.d.ts +15 -0
  104. package/dist/core/diagnostics.d.ts.map +1 -0
  105. package/dist/core/diagnostics.js +2 -0
  106. package/dist/core/diagnostics.js.map +1 -0
  107. package/dist/core/event-bus.d.ts +9 -0
  108. package/dist/core/event-bus.d.ts.map +1 -0
  109. package/dist/core/event-bus.js +25 -0
  110. package/dist/core/event-bus.js.map +1 -0
  111. package/dist/core/exec.d.ts +29 -0
  112. package/dist/core/exec.d.ts.map +1 -0
  113. package/dist/core/exec.js +75 -0
  114. package/dist/core/exec.js.map +1 -0
  115. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  116. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  117. package/dist/core/export-html/ansi-to-html.js +249 -0
  118. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  119. package/dist/core/export-html/index.d.ts +37 -0
  120. package/dist/core/export-html/index.d.ts.map +1 -0
  121. package/dist/core/export-html/index.js +224 -0
  122. package/dist/core/export-html/index.js.map +1 -0
  123. package/dist/core/export-html/template.css +1066 -0
  124. package/dist/core/export-html/template.html +55 -0
  125. package/dist/core/export-html/template.js +1834 -0
  126. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  127. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  128. package/dist/core/export-html/tool-renderer.js +108 -0
  129. package/dist/core/export-html/tool-renderer.js.map +1 -0
  130. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  131. package/dist/core/export-html/vendor/marked.min.js +6 -0
  132. package/dist/core/extensions/index.d.ts +12 -0
  133. package/dist/core/extensions/index.d.ts.map +1 -0
  134. package/dist/core/extensions/index.js +9 -0
  135. package/dist/core/extensions/index.js.map +1 -0
  136. package/dist/core/extensions/loader.d.ts +24 -0
  137. package/dist/core/extensions/loader.d.ts.map +1 -0
  138. package/dist/core/extensions/loader.js +488 -0
  139. package/dist/core/extensions/loader.js.map +1 -0
  140. package/dist/core/extensions/runner.d.ts +159 -0
  141. package/dist/core/extensions/runner.d.ts.map +1 -0
  142. package/dist/core/extensions/runner.js +824 -0
  143. package/dist/core/extensions/runner.js.map +1 -0
  144. package/dist/core/extensions/types.d.ts +1173 -0
  145. package/dist/core/extensions/types.d.ts.map +1 -0
  146. package/dist/core/extensions/types.js +45 -0
  147. package/dist/core/extensions/types.js.map +1 -0
  148. package/dist/core/extensions/wrapper.d.ts +20 -0
  149. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  150. package/dist/core/extensions/wrapper.js +22 -0
  151. package/dist/core/extensions/wrapper.js.map +1 -0
  152. package/dist/core/footer-data-provider.d.ts +52 -0
  153. package/dist/core/footer-data-provider.d.ts.map +1 -0
  154. package/dist/core/footer-data-provider.js +310 -0
  155. package/dist/core/footer-data-provider.js.map +1 -0
  156. package/dist/core/index.d.ts +12 -0
  157. package/dist/core/index.d.ts.map +1 -0
  158. package/dist/core/index.js +12 -0
  159. package/dist/core/index.js.map +1 -0
  160. package/dist/core/keybindings.d.ts +353 -0
  161. package/dist/core/keybindings.d.ts.map +1 -0
  162. package/dist/core/keybindings.js +295 -0
  163. package/dist/core/keybindings.js.map +1 -0
  164. package/dist/core/messages.d.ts +77 -0
  165. package/dist/core/messages.d.ts.map +1 -0
  166. package/dist/core/messages.js +123 -0
  167. package/dist/core/messages.js.map +1 -0
  168. package/dist/core/model-registry.d.ts +150 -0
  169. package/dist/core/model-registry.d.ts.map +1 -0
  170. package/dist/core/model-registry.js +728 -0
  171. package/dist/core/model-registry.js.map +1 -0
  172. package/dist/core/model-resolver.d.ts +110 -0
  173. package/dist/core/model-resolver.d.ts.map +1 -0
  174. package/dist/core/model-resolver.js +495 -0
  175. package/dist/core/model-resolver.js.map +1 -0
  176. package/dist/core/output-guard.d.ts +6 -0
  177. package/dist/core/output-guard.d.ts.map +1 -0
  178. package/dist/core/output-guard.js +59 -0
  179. package/dist/core/output-guard.js.map +1 -0
  180. package/dist/core/package-manager.d.ts +198 -0
  181. package/dist/core/package-manager.d.ts.map +1 -0
  182. package/dist/core/package-manager.js +1975 -0
  183. package/dist/core/package-manager.js.map +1 -0
  184. package/dist/core/prompt-templates.d.ts +52 -0
  185. package/dist/core/prompt-templates.d.ts.map +1 -0
  186. package/dist/core/prompt-templates.js +250 -0
  187. package/dist/core/prompt-templates.js.map +1 -0
  188. package/dist/core/provider-display-names.d.ts +2 -0
  189. package/dist/core/provider-display-names.d.ts.map +1 -0
  190. package/dist/core/provider-display-names.js +33 -0
  191. package/dist/core/provider-display-names.js.map +1 -0
  192. package/dist/core/provider-setup-check.d.ts +14 -0
  193. package/dist/core/provider-setup-check.d.ts.map +1 -0
  194. package/dist/core/provider-setup-check.js +22 -0
  195. package/dist/core/provider-setup-check.js.map +1 -0
  196. package/dist/core/resolve-config-value.d.ts +23 -0
  197. package/dist/core/resolve-config-value.d.ts.map +1 -0
  198. package/dist/core/resolve-config-value.js +126 -0
  199. package/dist/core/resolve-config-value.js.map +1 -0
  200. package/dist/core/resource-loader.d.ts +194 -0
  201. package/dist/core/resource-loader.d.ts.map +1 -0
  202. package/dist/core/resource-loader.js +727 -0
  203. package/dist/core/resource-loader.js.map +1 -0
  204. package/dist/core/sdk.d.ts +107 -0
  205. package/dist/core/sdk.d.ts.map +1 -0
  206. package/dist/core/sdk.js +282 -0
  207. package/dist/core/sdk.js.map +1 -0
  208. package/dist/core/session-cwd.d.ts +19 -0
  209. package/dist/core/session-cwd.d.ts.map +1 -0
  210. package/dist/core/session-cwd.js +38 -0
  211. package/dist/core/session-cwd.js.map +1 -0
  212. package/dist/core/session-manager.d.ts +333 -0
  213. package/dist/core/session-manager.d.ts.map +1 -0
  214. package/dist/core/session-manager.js +1109 -0
  215. package/dist/core/session-manager.js.map +1 -0
  216. package/dist/core/settings-manager.d.ts +261 -0
  217. package/dist/core/settings-manager.d.ts.map +1 -0
  218. package/dist/core/settings-manager.js +782 -0
  219. package/dist/core/settings-manager.js.map +1 -0
  220. package/dist/core/skills.d.ts +60 -0
  221. package/dist/core/skills.d.ts.map +1 -0
  222. package/dist/core/skills.js +404 -0
  223. package/dist/core/skills.js.map +1 -0
  224. package/dist/core/slash-commands.d.ts +14 -0
  225. package/dist/core/slash-commands.d.ts.map +1 -0
  226. package/dist/core/slash-commands.js +25 -0
  227. package/dist/core/slash-commands.js.map +1 -0
  228. package/dist/core/source-info.d.ts +18 -0
  229. package/dist/core/source-info.d.ts.map +1 -0
  230. package/dist/core/source-info.js +19 -0
  231. package/dist/core/source-info.js.map +1 -0
  232. package/dist/core/system-prompt.d.ts +28 -0
  233. package/dist/core/system-prompt.d.ts.map +1 -0
  234. package/dist/core/system-prompt.js +120 -0
  235. package/dist/core/system-prompt.js.map +1 -0
  236. package/dist/core/telemetry.d.ts +3 -0
  237. package/dist/core/telemetry.d.ts.map +1 -0
  238. package/dist/core/telemetry.js +9 -0
  239. package/dist/core/telemetry.js.map +1 -0
  240. package/dist/core/timings.d.ts +8 -0
  241. package/dist/core/timings.d.ts.map +1 -0
  242. package/dist/core/timings.js +31 -0
  243. package/dist/core/timings.js.map +1 -0
  244. package/dist/core/tools/bash.d.ts +68 -0
  245. package/dist/core/tools/bash.d.ts.map +1 -0
  246. package/dist/core/tools/bash.js +335 -0
  247. package/dist/core/tools/bash.js.map +1 -0
  248. package/dist/core/tools/edit-diff.d.ts +85 -0
  249. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  250. package/dist/core/tools/edit-diff.js +338 -0
  251. package/dist/core/tools/edit-diff.js.map +1 -0
  252. package/dist/core/tools/edit.d.ts +49 -0
  253. package/dist/core/tools/edit.d.ts.map +1 -0
  254. package/dist/core/tools/edit.js +324 -0
  255. package/dist/core/tools/edit.js.map +1 -0
  256. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  257. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  258. package/dist/core/tools/file-mutation-queue.js +37 -0
  259. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  260. package/dist/core/tools/find.d.ts +35 -0
  261. package/dist/core/tools/find.d.ts.map +1 -0
  262. package/dist/core/tools/find.js +298 -0
  263. package/dist/core/tools/find.js.map +1 -0
  264. package/dist/core/tools/grep.d.ts +37 -0
  265. package/dist/core/tools/grep.d.ts.map +1 -0
  266. package/dist/core/tools/grep.js +304 -0
  267. package/dist/core/tools/grep.js.map +1 -0
  268. package/dist/core/tools/index.d.ts +40 -0
  269. package/dist/core/tools/index.d.ts.map +1 -0
  270. package/dist/core/tools/index.js +112 -0
  271. package/dist/core/tools/index.js.map +1 -0
  272. package/dist/core/tools/ls.d.ts +37 -0
  273. package/dist/core/tools/ls.d.ts.map +1 -0
  274. package/dist/core/tools/ls.js +169 -0
  275. package/dist/core/tools/ls.js.map +1 -0
  276. package/dist/core/tools/output-accumulator.d.ts +50 -0
  277. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  278. package/dist/core/tools/output-accumulator.js +178 -0
  279. package/dist/core/tools/output-accumulator.js.map +1 -0
  280. package/dist/core/tools/path-utils.d.ts +8 -0
  281. package/dist/core/tools/path-utils.d.ts.map +1 -0
  282. package/dist/core/tools/path-utils.js +81 -0
  283. package/dist/core/tools/path-utils.js.map +1 -0
  284. package/dist/core/tools/read.d.ts +35 -0
  285. package/dist/core/tools/read.d.ts.map +1 -0
  286. package/dist/core/tools/read.js +289 -0
  287. package/dist/core/tools/read.js.map +1 -0
  288. package/dist/core/tools/render-utils.d.ts +21 -0
  289. package/dist/core/tools/render-utils.d.ts.map +1 -0
  290. package/dist/core/tools/render-utils.js +49 -0
  291. package/dist/core/tools/render-utils.js.map +1 -0
  292. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  293. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  294. package/dist/core/tools/tool-definition-wrapper.js +34 -0
  295. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  296. package/dist/core/tools/truncate.d.ts +70 -0
  297. package/dist/core/tools/truncate.d.ts.map +1 -0
  298. package/dist/core/tools/truncate.js +205 -0
  299. package/dist/core/tools/truncate.js.map +1 -0
  300. package/dist/core/tools/write.d.ts +26 -0
  301. package/dist/core/tools/write.d.ts.map +1 -0
  302. package/dist/core/tools/write.js +213 -0
  303. package/dist/core/tools/write.js.map +1 -0
  304. package/dist/index.d.ts +28 -0
  305. package/dist/index.d.ts.map +1 -0
  306. package/dist/index.js +41 -0
  307. package/dist/index.js.map +1 -0
  308. package/dist/main.d.ts +12 -0
  309. package/dist/main.d.ts.map +1 -0
  310. package/dist/main.js +583 -0
  311. package/dist/main.js.map +1 -0
  312. package/dist/migrations.d.ts +61 -0
  313. package/dist/migrations.d.ts.map +1 -0
  314. package/dist/migrations.js +456 -0
  315. package/dist/migrations.js.map +1 -0
  316. package/dist/modes/index.d.ts +9 -0
  317. package/dist/modes/index.d.ts.map +1 -0
  318. package/dist/modes/index.js +8 -0
  319. package/dist/modes/index.js.map +1 -0
  320. package/dist/modes/interactive/assets/clankolas.png +0 -0
  321. package/dist/modes/interactive/components/armin.d.ts +34 -0
  322. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  323. package/dist/modes/interactive/components/armin.js +333 -0
  324. package/dist/modes/interactive/components/armin.js.map +1 -0
  325. package/dist/modes/interactive/components/assistant-message.d.ts +20 -0
  326. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  327. package/dist/modes/interactive/components/assistant-message.js +121 -0
  328. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  329. package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
  330. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  331. package/dist/modes/interactive/components/bash-execution.js +175 -0
  332. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  333. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  334. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  335. package/dist/modes/interactive/components/bordered-loader.js +54 -0
  336. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  337. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  338. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  339. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  340. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  341. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  342. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  343. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  344. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  345. package/dist/modes/interactive/components/config-selector.d.ts +71 -0
  346. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  347. package/dist/modes/interactive/components/config-selector.js +503 -0
  348. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  349. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  350. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  351. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  352. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  353. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  354. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  355. package/dist/modes/interactive/components/custom-editor.js +70 -0
  356. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  357. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  358. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  359. package/dist/modes/interactive/components/custom-message.js +79 -0
  360. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  361. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  362. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  363. package/dist/modes/interactive/components/daxnuts.js +140 -0
  364. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  365. package/dist/modes/interactive/components/diff.d.ts +12 -0
  366. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  367. package/dist/modes/interactive/components/diff.js +133 -0
  368. package/dist/modes/interactive/components/diff.js.map +1 -0
  369. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  370. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  371. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  372. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  373. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  374. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  375. package/dist/modes/interactive/components/earendil-announcement.js +40 -0
  376. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  377. package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
  378. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  379. package/dist/modes/interactive/components/extension-editor.js +111 -0
  380. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  381. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  382. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  383. package/dist/modes/interactive/components/extension-input.js +61 -0
  384. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  385. package/dist/modes/interactive/components/extension-selector.d.ts +26 -0
  386. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  387. package/dist/modes/interactive/components/extension-selector.js +83 -0
  388. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  389. package/dist/modes/interactive/components/footer.d.ts +27 -0
  390. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  391. package/dist/modes/interactive/components/footer.js +201 -0
  392. package/dist/modes/interactive/components/footer.js.map +1 -0
  393. package/dist/modes/interactive/components/index.d.ts +32 -0
  394. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  395. package/dist/modes/interactive/components/index.js +33 -0
  396. package/dist/modes/interactive/components/index.js.map +1 -0
  397. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  398. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  399. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  400. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  401. package/dist/modes/interactive/components/login-dialog.d.ts +46 -0
  402. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  403. package/dist/modes/interactive/components/login-dialog.js +160 -0
  404. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  405. package/dist/modes/interactive/components/model-selector.d.ts +47 -0
  406. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  407. package/dist/modes/interactive/components/model-selector.js +278 -0
  408. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  409. package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
  410. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  411. package/dist/modes/interactive/components/oauth-selector.js +165 -0
  412. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  413. package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  414. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  415. package/dist/modes/interactive/components/scoped-models-selector.js +290 -0
  416. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  417. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  418. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  419. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  420. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  421. package/dist/modes/interactive/components/session-selector.d.ts +96 -0
  422. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  423. package/dist/modes/interactive/components/session-selector.js +861 -0
  424. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  425. package/dist/modes/interactive/components/settings-selector.d.ts +67 -0
  426. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  427. package/dist/modes/interactive/components/settings-selector.js +375 -0
  428. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  429. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  430. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  431. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  432. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  433. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  434. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  435. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  436. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  437. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  438. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  439. package/dist/modes/interactive/components/theme-selector.js +50 -0
  440. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  441. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  442. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  443. package/dist/modes/interactive/components/thinking-selector.js +51 -0
  444. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  445. package/dist/modes/interactive/components/tool-execution.d.ts +63 -0
  446. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  447. package/dist/modes/interactive/components/tool-execution.js +295 -0
  448. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  449. package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
  450. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  451. package/dist/modes/interactive/components/tree-selector.js +1093 -0
  452. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  453. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  454. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  455. package/dist/modes/interactive/components/user-message-selector.js +114 -0
  456. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  457. package/dist/modes/interactive/components/user-message.d.ts +10 -0
  458. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  459. package/dist/modes/interactive/components/user-message.js +29 -0
  460. package/dist/modes/interactive/components/user-message.js.map +1 -0
  461. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  462. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  463. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  464. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  465. package/dist/modes/interactive/interactive-mode.d.ts +369 -0
  466. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  467. package/dist/modes/interactive/interactive-mode.js +4612 -0
  468. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  469. package/dist/modes/interactive/theme/aery.json +84 -0
  470. package/dist/modes/interactive/theme/catppuccin-mocha.json +81 -0
  471. package/dist/modes/interactive/theme/dark.json +85 -0
  472. package/dist/modes/interactive/theme/dracula.json +81 -0
  473. package/dist/modes/interactive/theme/light.json +84 -0
  474. package/dist/modes/interactive/theme/nord.json +81 -0
  475. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  476. package/dist/modes/interactive/theme/theme.d.ts +81 -0
  477. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  478. package/dist/modes/interactive/theme/theme.js +973 -0
  479. package/dist/modes/interactive/theme/theme.js.map +1 -0
  480. package/dist/modes/interactive/theme/tokyo-night.json +81 -0
  481. package/dist/modes/print-mode.d.ts +28 -0
  482. package/dist/modes/print-mode.d.ts.map +1 -0
  483. package/dist/modes/print-mode.js +131 -0
  484. package/dist/modes/print-mode.js.map +1 -0
  485. package/dist/modes/rpc/jsonl.d.ts +17 -0
  486. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  487. package/dist/modes/rpc/jsonl.js +49 -0
  488. package/dist/modes/rpc/jsonl.js.map +1 -0
  489. package/dist/modes/rpc/rpc-client.d.ts +224 -0
  490. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  491. package/dist/modes/rpc/rpc-client.js +410 -0
  492. package/dist/modes/rpc/rpc-client.js.map +1 -0
  493. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  494. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  495. package/dist/modes/rpc/rpc-mode.js +601 -0
  496. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  497. package/dist/modes/rpc/rpc-types.d.ts +419 -0
  498. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  499. package/dist/modes/rpc/rpc-types.js +8 -0
  500. package/dist/modes/rpc/rpc-types.js.map +1 -0
  501. package/dist/package-manager-cli.d.ts +4 -0
  502. package/dist/package-manager-cli.d.ts.map +1 -0
  503. package/dist/package-manager-cli.js +460 -0
  504. package/dist/package-manager-cli.js.map +1 -0
  505. package/dist/utils/aery-user-agent.d.ts +2 -0
  506. package/dist/utils/aery-user-agent.d.ts.map +1 -0
  507. package/dist/utils/aery-user-agent.js +5 -0
  508. package/dist/utils/aery-user-agent.js.map +1 -0
  509. package/dist/utils/ansi.d.ts +2 -0
  510. package/dist/utils/ansi.d.ts.map +1 -0
  511. package/dist/utils/ansi.js +52 -0
  512. package/dist/utils/ansi.js.map +1 -0
  513. package/dist/utils/changelog.d.ts +21 -0
  514. package/dist/utils/changelog.d.ts.map +1 -0
  515. package/dist/utils/changelog.js +87 -0
  516. package/dist/utils/changelog.js.map +1 -0
  517. package/dist/utils/child-process.d.ts +12 -0
  518. package/dist/utils/child-process.d.ts.map +1 -0
  519. package/dist/utils/child-process.js +86 -0
  520. package/dist/utils/child-process.js.map +1 -0
  521. package/dist/utils/clipboard-image.d.ts +11 -0
  522. package/dist/utils/clipboard-image.d.ts.map +1 -0
  523. package/dist/utils/clipboard-image.js +245 -0
  524. package/dist/utils/clipboard-image.js.map +1 -0
  525. package/dist/utils/clipboard-native.d.ts +8 -0
  526. package/dist/utils/clipboard-native.d.ts.map +1 -0
  527. package/dist/utils/clipboard-native.js +14 -0
  528. package/dist/utils/clipboard-native.js.map +1 -0
  529. package/dist/utils/clipboard.d.ts +2 -0
  530. package/dist/utils/clipboard.d.ts.map +1 -0
  531. package/dist/utils/clipboard.js +117 -0
  532. package/dist/utils/clipboard.js.map +1 -0
  533. package/dist/utils/exif-orientation.d.ts +5 -0
  534. package/dist/utils/exif-orientation.d.ts.map +1 -0
  535. package/dist/utils/exif-orientation.js +158 -0
  536. package/dist/utils/exif-orientation.js.map +1 -0
  537. package/dist/utils/frontmatter.d.ts +8 -0
  538. package/dist/utils/frontmatter.d.ts.map +1 -0
  539. package/dist/utils/frontmatter.js +26 -0
  540. package/dist/utils/frontmatter.js.map +1 -0
  541. package/dist/utils/fs-watch.d.ts +5 -0
  542. package/dist/utils/fs-watch.d.ts.map +1 -0
  543. package/dist/utils/fs-watch.js +25 -0
  544. package/dist/utils/fs-watch.js.map +1 -0
  545. package/dist/utils/git.d.ts +26 -0
  546. package/dist/utils/git.d.ts.map +1 -0
  547. package/dist/utils/git.js +163 -0
  548. package/dist/utils/git.js.map +1 -0
  549. package/dist/utils/html.d.ts +7 -0
  550. package/dist/utils/html.d.ts.map +1 -0
  551. package/dist/utils/html.js +40 -0
  552. package/dist/utils/html.js.map +1 -0
  553. package/dist/utils/image-convert.d.ts +9 -0
  554. package/dist/utils/image-convert.d.ts.map +1 -0
  555. package/dist/utils/image-convert.js +39 -0
  556. package/dist/utils/image-convert.js.map +1 -0
  557. package/dist/utils/image-resize.d.ts +36 -0
  558. package/dist/utils/image-resize.d.ts.map +1 -0
  559. package/dist/utils/image-resize.js +137 -0
  560. package/dist/utils/image-resize.js.map +1 -0
  561. package/dist/utils/mime.d.ts +3 -0
  562. package/dist/utils/mime.d.ts.map +1 -0
  563. package/dist/utils/mime.js +69 -0
  564. package/dist/utils/mime.js.map +1 -0
  565. package/dist/utils/paths.d.ts +16 -0
  566. package/dist/utils/paths.d.ts.map +1 -0
  567. package/dist/utils/paths.js +50 -0
  568. package/dist/utils/paths.js.map +1 -0
  569. package/dist/utils/photon.d.ts +21 -0
  570. package/dist/utils/photon.d.ts.map +1 -0
  571. package/dist/utils/photon.js +121 -0
  572. package/dist/utils/photon.js.map +1 -0
  573. package/dist/utils/pi-user-agent.d.ts +2 -0
  574. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  575. package/dist/utils/pi-user-agent.js +5 -0
  576. package/dist/utils/pi-user-agent.js.map +1 -0
  577. package/dist/utils/shell.d.ts +30 -0
  578. package/dist/utils/shell.d.ts.map +1 -0
  579. package/dist/utils/shell.js +190 -0
  580. package/dist/utils/shell.js.map +1 -0
  581. package/dist/utils/sleep.d.ts +5 -0
  582. package/dist/utils/sleep.d.ts.map +1 -0
  583. package/dist/utils/sleep.js +17 -0
  584. package/dist/utils/sleep.js.map +1 -0
  585. package/dist/utils/syntax-highlight.d.ts +12 -0
  586. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  587. package/dist/utils/syntax-highlight.js +118 -0
  588. package/dist/utils/syntax-highlight.js.map +1 -0
  589. package/dist/utils/tools-manager.d.ts +3 -0
  590. package/dist/utils/tools-manager.d.ts.map +1 -0
  591. package/dist/utils/tools-manager.js +325 -0
  592. package/dist/utils/tools-manager.js.map +1 -0
  593. package/dist/utils/uuid.d.ts +2 -0
  594. package/dist/utils/uuid.d.ts.map +1 -0
  595. package/dist/utils/uuid.js +40 -0
  596. package/dist/utils/uuid.js.map +1 -0
  597. package/dist/utils/version-check.d.ts +14 -0
  598. package/dist/utils/version-check.d.ts.map +1 -0
  599. package/dist/utils/version-check.js +77 -0
  600. package/dist/utils/version-check.js.map +1 -0
  601. package/docs/compaction.md +17 -17
  602. package/docs/custom-provider.md +42 -33
  603. package/docs/development.md +4 -4
  604. package/docs/docs.json +148 -0
  605. package/docs/extensions.md +308 -80
  606. package/docs/images/doom-extension.png +0 -0
  607. package/docs/images/exy.png +0 -0
  608. package/docs/images/interactive-mode.png +0 -0
  609. package/docs/images/tree-view.png +0 -0
  610. package/docs/index.md +70 -0
  611. package/docs/json.md +4 -4
  612. package/docs/keybindings.md +2 -2
  613. package/docs/models.md +84 -5
  614. package/docs/packages.md +15 -10
  615. package/docs/prompt-templates.md +2 -2
  616. package/docs/providers.md +68 -20
  617. package/docs/quickstart.md +142 -0
  618. package/docs/rpc.md +6 -6
  619. package/docs/sdk.md +58 -78
  620. package/docs/{session.md → session-format.md} +8 -8
  621. package/docs/sessions.md +137 -0
  622. package/docs/settings.md +49 -17
  623. package/docs/shell-aliases.md +1 -1
  624. package/docs/skills.md +4 -4
  625. package/docs/terminal-setup.md +2 -2
  626. package/docs/termux.md +6 -6
  627. package/docs/themes.md +6 -6
  628. package/docs/tmux.md +0 -0
  629. package/docs/tui.md +22 -22
  630. package/docs/usage.md +277 -0
  631. package/docs/windows.md +1 -1
  632. package/examples/README.md +0 -0
  633. package/examples/extensions/README.md +6 -6
  634. package/examples/extensions/antigravity-image-gen.ts +18 -18
  635. package/examples/extensions/auto-commit-on-exit.ts +1 -1
  636. package/examples/extensions/bash-spawn-hook.ts +3 -3
  637. package/examples/extensions/bookmark.ts +1 -1
  638. package/examples/extensions/border-status-editor.ts +145 -0
  639. package/examples/extensions/built-in-tool-renderer.ts +3 -3
  640. package/examples/extensions/claude-rules.ts +2 -2
  641. package/examples/extensions/commands.ts +2 -2
  642. package/examples/extensions/confirm-destructive.ts +1 -1
  643. package/examples/extensions/custom-compaction.ts +3 -3
  644. package/examples/extensions/custom-footer.ts +3 -3
  645. package/examples/extensions/custom-header.ts +2 -2
  646. package/examples/extensions/custom-provider-anthropic/index.ts +2 -2
  647. package/examples/extensions/custom-provider-anthropic/package-lock.json +4 -4
  648. package/examples/extensions/custom-provider-anthropic/package.json +2 -2
  649. package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
  650. package/examples/extensions/custom-provider-gitlab-duo/package.json +2 -2
  651. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  652. package/examples/extensions/custom-provider-qwen-cli/index.ts +3 -3
  653. package/examples/extensions/custom-provider-qwen-cli/package.json +2 -2
  654. package/examples/extensions/dirty-repo-guard.ts +1 -1
  655. package/examples/extensions/doom-overlay/README.md +0 -0
  656. package/examples/extensions/doom-overlay/doom/build/doom.js +0 -0
  657. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -0
  658. package/examples/extensions/doom-overlay/doom-component.ts +2 -2
  659. package/examples/extensions/doom-overlay/doom-engine.ts +0 -0
  660. package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
  661. package/examples/extensions/doom-overlay/index.ts +1 -1
  662. package/examples/extensions/doom-overlay/wad-finder.ts +0 -0
  663. package/examples/extensions/dynamic-resources/SKILL.md +0 -0
  664. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  665. package/examples/extensions/dynamic-resources/dynamic.md +0 -0
  666. package/examples/extensions/dynamic-resources/index.ts +1 -1
  667. package/examples/extensions/dynamic-tools.ts +3 -3
  668. package/examples/extensions/event-bus.ts +1 -1
  669. package/examples/extensions/file-trigger.ts +1 -1
  670. package/examples/extensions/git-checkpoint.ts +1 -1
  671. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  672. package/examples/extensions/handoff.ts +52 -14
  673. package/examples/extensions/hello.ts +2 -2
  674. package/examples/extensions/hidden-thinking-label.ts +1 -1
  675. package/examples/extensions/inline-bash.ts +1 -1
  676. package/examples/extensions/input-transform.ts +1 -1
  677. package/examples/extensions/interactive-shell.ts +1 -1
  678. package/examples/extensions/mac-system-theme.ts +1 -1
  679. package/examples/extensions/message-renderer.ts +2 -2
  680. package/examples/extensions/minimal-mode.ts +3 -3
  681. package/examples/extensions/modal-editor.ts +2 -2
  682. package/examples/extensions/model-status.ts +1 -1
  683. package/examples/extensions/notify.ts +1 -1
  684. package/examples/extensions/overlay-qa-tests.ts +3 -3
  685. package/examples/extensions/overlay-test.ts +2 -2
  686. package/examples/extensions/permission-gate.ts +1 -1
  687. package/examples/extensions/pirate.ts +2 -2
  688. package/examples/extensions/plan-mode/README.md +0 -0
  689. package/examples/extensions/plan-mode/index.ts +4 -4
  690. package/examples/extensions/plan-mode/utils.ts +0 -0
  691. package/examples/extensions/preset.ts +15 -9
  692. package/examples/extensions/prompt-customizer.ts +97 -0
  693. package/examples/extensions/protected-paths.ts +1 -1
  694. package/examples/extensions/provider-payload.ts +2 -2
  695. package/examples/extensions/qna.ts +3 -3
  696. package/examples/extensions/question.ts +3 -3
  697. package/examples/extensions/questionnaire.ts +3 -3
  698. package/examples/extensions/rainbow-editor.ts +1 -1
  699. package/examples/extensions/reload-runtime.ts +2 -2
  700. package/examples/extensions/rpc-demo.ts +1 -1
  701. package/examples/extensions/sandbox/index.ts +8 -8
  702. package/examples/extensions/sandbox/package-lock.json +7 -7
  703. package/examples/extensions/sandbox/package.json +2 -2
  704. package/examples/extensions/send-user-message.ts +1 -1
  705. package/examples/extensions/session-name.ts +1 -1
  706. package/examples/extensions/shutdown-command.ts +2 -2
  707. package/examples/extensions/snake.ts +2 -2
  708. package/examples/extensions/space-invaders.ts +2 -2
  709. package/examples/extensions/ssh.ts +2 -2
  710. package/examples/extensions/status-line.ts +1 -1
  711. package/examples/extensions/stitch.ts +168 -0
  712. package/examples/extensions/structured-output.ts +65 -0
  713. package/examples/extensions/subagent/README.md +11 -11
  714. package/examples/extensions/subagent/agents/aery-agent.md +22 -0
  715. package/examples/extensions/subagent/agents/aery-ai.md +25 -0
  716. package/examples/extensions/subagent/agents/aery-core.md +19 -0
  717. package/examples/extensions/subagent/agents/aery-mom.md +25 -0
  718. package/examples/extensions/subagent/agents/aery-pods.md +24 -0
  719. package/examples/extensions/subagent/agents/aery-review.md +22 -0
  720. package/examples/extensions/subagent/agents/aery-tui.md +24 -0
  721. package/examples/extensions/subagent/agents/planner.md +0 -0
  722. package/examples/extensions/subagent/agents/reviewer.md +0 -0
  723. package/examples/extensions/subagent/agents/scout.md +0 -0
  724. package/examples/extensions/subagent/agents/worker.md +0 -0
  725. package/examples/extensions/subagent/agents.ts +2 -2
  726. package/examples/extensions/subagent/index.ts +9 -9
  727. package/examples/extensions/subagent/prompts/implement-and-review.md +0 -0
  728. package/examples/extensions/subagent/prompts/implement.md +0 -0
  729. package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -0
  730. package/examples/extensions/summarize.ts +4 -4
  731. package/examples/extensions/system-prompt-header.ts +1 -1
  732. package/examples/extensions/tic-tac-toe.ts +4 -4
  733. package/examples/extensions/timed-confirm.ts +1 -1
  734. package/examples/extensions/titlebar-spinner.ts +1 -1
  735. package/examples/extensions/todo.ts +4 -4
  736. package/examples/extensions/tool-override.ts +3 -3
  737. package/examples/extensions/tools.ts +4 -4
  738. package/examples/extensions/trigger-compact.ts +1 -1
  739. package/examples/extensions/truncated-tool.ts +4 -4
  740. package/examples/extensions/widget-placement.ts +1 -1
  741. package/examples/extensions/with-deps/index.ts +2 -2
  742. package/examples/extensions/with-deps/package-lock.json +4 -4
  743. package/examples/extensions/with-deps/package.json +2 -2
  744. package/examples/extensions/working-indicator.ts +1 -1
  745. package/examples/extensions/working-message-test.ts +25 -0
  746. package/examples/rpc-extension-ui.ts +1 -1
  747. package/examples/sdk/01-minimal.ts +16 -12
  748. package/examples/sdk/02-custom-model.ts +14 -10
  749. package/examples/sdk/03-custom-prompt.ts +26 -18
  750. package/examples/sdk/04-skills.ts +4 -4
  751. package/examples/sdk/05-tools.ts +9 -5
  752. package/examples/sdk/06-extensions.ts +15 -11
  753. package/examples/sdk/07-context-files.ts +3 -3
  754. package/examples/sdk/08-prompt-templates.ts +4 -4
  755. package/examples/sdk/09-api-keys-and-oauth.ts +11 -7
  756. package/examples/sdk/10-settings.ts +5 -5
  757. package/examples/sdk/11-sessions.ts +5 -1
  758. package/examples/sdk/12-full-control.ts +13 -9
  759. package/examples/sdk/13-session-runtime.ts +1 -1
  760. package/examples/sdk/README.md +8 -11
  761. package/package.json +94 -101
  762. package/docs/tree.md +0 -233
package/docs/usage.md ADDED
@@ -0,0 +1,277 @@
1
+ # Using Pi
2
+
3
+ This page collects day-to-day usage details that do not fit on the quickstart page.
4
+
5
+ ## Interactive Mode
6
+
7
+ <p align="center"><img src="images/interactive-mode.png" alt="Interactive Mode" width="600"></p>
8
+
9
+ The interface has four main areas:
10
+
11
+ - **Startup header** - shortcuts, loaded context files, prompt templates, skills, and extensions
12
+ - **Messages** - user messages, assistant responses, tool calls, tool results, notifications, errors, and extension UI
13
+ - **Editor** - where you type; border color indicates the current thinking level
14
+ - **Footer** - working directory, session name, token/cache usage, cost, context usage, and current model
15
+
16
+ The editor can be replaced temporarily by built-in UI such as `/settings` or by custom extension UI.
17
+
18
+ ### Editor Features
19
+
20
+ | Feature | How |
21
+ |---------|-----|
22
+ | File reference | Type `@` to fuzzy-search project files |
23
+ | Path completion | Press Tab to complete paths |
24
+ | Multi-line input | Shift+Enter, or Ctrl+Enter on Windows Terminal |
25
+ | Images | Paste with Ctrl+V, Alt+V on Windows, or drag into the terminal |
26
+ | Shell command | `!command` runs and sends output to the model |
27
+ | Hidden shell command | `!!command` runs without sending output to the model |
28
+ | External editor | Ctrl+G opens `$VISUAL` or `$EDITOR` |
29
+
30
+ See [Keybindings](keybindings.md) for all shortcuts and customization.
31
+
32
+ ## Slash Commands
33
+
34
+ Type `/` in the editor to open command completion. Extensions can register custom commands, skills are available as `/skill:name`, and prompt templates expand via `/templatename`.
35
+
36
+ | Command | Description |
37
+ |---------|-------------|
38
+ | `/login`, `/logout` | Manage OAuth or API-key credentials |
39
+ | `/model` | Switch models |
40
+ | `/scoped-models` | Enable/disable models for Ctrl+P cycling |
41
+ | `/settings` | Thinking level, theme, message delivery, transport |
42
+ | `/resume` | Pick from previous sessions |
43
+ | `/new` | Start a new session |
44
+ | `/name <name>` | Set session display name |
45
+ | `/session` | Show session file, ID, messages, tokens, and cost |
46
+ | `/tree` | Jump to any point in the session and continue from there |
47
+ | `/fork` | Create a new session from a previous user message |
48
+ | `/clone` | Duplicate the current active branch into a new session |
49
+ | `/compact [prompt]` | Manually compact context, optionally with custom instructions |
50
+ | `/copy` | Copy last assistant message to clipboard |
51
+ | `/export [file]` | Export session to HTML |
52
+ | `/share` | Upload as private GitHub gist with shareable HTML link |
53
+ | `/reload` | Reload keybindings, extensions, skills, prompts, and context files |
54
+ | `/hotkeys` | Show all keyboard shortcuts |
55
+ | `/changelog` | Display version history |
56
+ | `/quit` | Quit pi |
57
+
58
+ ## Message Queue
59
+
60
+ You can submit messages while the agent is still working:
61
+
62
+ - **Enter** queues a steering message, delivered after the current assistant turn finishes executing its tool calls.
63
+ - **Alt+Enter** queues a follow-up message, delivered after the agent finishes all work.
64
+ - **Escape** aborts and restores queued messages to the editor.
65
+ - **Alt+Up** retrieves queued messages back to the editor.
66
+
67
+ On Windows Terminal, Alt+Enter is fullscreen by default. Remap it as described in [Terminal setup](terminal-setup.md) if you want pi to receive the shortcut.
68
+
69
+ Configure delivery in [Settings](settings.md) with `steeringMode` and `followUpMode`.
70
+
71
+ ## Sessions
72
+
73
+ Sessions are saved automatically to `~/.aery/agent/sessions/`, organized by working directory.
74
+
75
+ ```bash
76
+ pi -c # Continue most recent session
77
+ pi -r # Browse and select a session
78
+ pi --no-session # Ephemeral mode; do not save
79
+ pi --session <path|id> # Use a specific session file or session ID
80
+ pi --fork <path|id> # Fork a session into a new session file
81
+ ```
82
+
83
+ Useful session commands:
84
+
85
+ - `/session` shows the current session file and ID.
86
+ - `/tree` navigates the in-file session tree and can summarize abandoned branches.
87
+ - `/fork` creates a new session from an earlier user message.
88
+ - `/clone` duplicates the current active branch into a new session file.
89
+ - `/compact` summarizes older messages to free context.
90
+
91
+ See [Sessions](sessions.md) and [Compaction](compaction.md) for details.
92
+
93
+ ## Context Files
94
+
95
+ Pi loads `AGENTS.md` or `CLAUDE.md` at startup from:
96
+
97
+ - `~/.aery/agent/AGENTS.md` for global instructions
98
+ - parent directories, walking up from the current working directory
99
+ - the current directory
100
+
101
+ Use context files for project conventions, commands, safety rules, and preferences. Disable loading with `--no-context-files` or `-nc`.
102
+
103
+ ### System Prompt Files
104
+
105
+ Replace the default system prompt with:
106
+
107
+ - `.aery/SYSTEM.md` for a project
108
+ - `~/.aery/agent/SYSTEM.md` globally
109
+
110
+ Append to the default prompt without replacing it with `APPEND_SYSTEM.md` in either location.
111
+
112
+ ## Exporting and Sharing Sessions
113
+
114
+ Use `/export [file]` to write a session to HTML.
115
+
116
+ Use `/share` to upload a private GitHub gist with a shareable HTML link.
117
+
118
+ If you use pi for open source work and want to publish sessions for model, prompt, tool, and evaluation research, see [`badlogic/pi-share-hf`](https://github.com/badlogic/pi-share-hf). It publishes sessions to Hugging Face datasets.
119
+
120
+ ## CLI Reference
121
+
122
+ ```bash
123
+ pi [options] [@files...] [messages...]
124
+ ```
125
+
126
+ ### Package Commands
127
+
128
+ ```bash
129
+ pi install <source> [-l] # Install package, -l for project-local
130
+ pi remove <source> [-l] # Remove package
131
+ pi uninstall <source> [-l] # Alias for remove
132
+ pi update [source|self|pi] # Update pi and packages; skips pinned packages
133
+ pi update --extensions # Update packages only
134
+ pi update --self # Update pi only
135
+ pi update --extension <src> # Update one package
136
+ pi list # List installed packages
137
+ pi config # Enable/disable package resources
138
+ ```
139
+
140
+ See [Pi Packages](packages.md) for package sources and security notes.
141
+
142
+ ### Modes
143
+
144
+ | Flag | Description |
145
+ |------|-------------|
146
+ | default | Interactive mode |
147
+ | `-p`, `--print` | Print response and exit |
148
+ | `--mode json` | Output all events as JSON lines; see [JSON mode](json.md) |
149
+ | `--mode rpc` | RPC mode over stdin/stdout; see [RPC mode](rpc.md) |
150
+ | `--export <in> [out]` | Export a session to HTML |
151
+
152
+ In print mode, pi also reads piped stdin and merges it into the initial prompt:
153
+
154
+ ```bash
155
+ cat README.md | pi -p "Summarize this text"
156
+ ```
157
+
158
+ ### Model Options
159
+
160
+ | Option | Description |
161
+ |--------|-------------|
162
+ | `--provider <name>` | Provider, such as `anthropic`, `openai`, or `google` |
163
+ | `--model <pattern>` | Model pattern or ID; supports `provider/id` and optional `:<thinking>` |
164
+ | `--api-key <key>` | API key, overriding environment variables |
165
+ | `--thinking <level>` | `off`, `minimal`, `low`, `medium`, `high`, `xhigh` |
166
+ | `--models <patterns>` | Comma-separated patterns for Ctrl+P cycling |
167
+ | `--list-models [search]` | List available models |
168
+
169
+ ### Session Options
170
+
171
+ | Option | Description |
172
+ |--------|-------------|
173
+ | `-c`, `--continue` | Continue the most recent session |
174
+ | `-r`, `--resume` | Browse and select a session |
175
+ | `--session <path\|id>` | Use a specific session file or partial UUID |
176
+ | `--fork <path\|id>` | Fork a session file or partial UUID into a new session |
177
+ | `--session-dir <dir>` | Custom session storage directory |
178
+ | `--no-session` | Ephemeral mode; do not save |
179
+
180
+ ### Tool Options
181
+
182
+ | Option | Description |
183
+ |--------|-------------|
184
+ | `--tools <list>`, `-t <list>` | Allowlist specific built-in, extension, and custom tools |
185
+ | `--no-builtin-tools`, `-nbt` | Disable built-in tools but keep extension/custom tools enabled |
186
+ | `--no-tools`, `-nt` | Disable all tools |
187
+
188
+ Built-in tools: `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`.
189
+
190
+ ### Resource Options
191
+
192
+ | Option | Description |
193
+ |--------|-------------|
194
+ | `-e`, `--extension <source>` | Load an extension from path, npm, or git; repeatable |
195
+ | `--no-extensions` | Disable extension discovery |
196
+ | `--skill <path>` | Load a skill; repeatable |
197
+ | `--no-skills` | Disable skill discovery |
198
+ | `--prompt-template <path>` | Load a prompt template; repeatable |
199
+ | `--no-prompt-templates` | Disable prompt template discovery |
200
+ | `--theme <path>` | Load a theme; repeatable |
201
+ | `--no-themes` | Disable theme discovery |
202
+ | `--no-context-files`, `-nc` | Disable `AGENTS.md` and `CLAUDE.md` discovery |
203
+
204
+ Combine `--no-*` with explicit flags to load exactly what you need, ignoring settings. Example:
205
+
206
+ ```bash
207
+ pi --no-extensions -e ./my-extension.ts
208
+ ```
209
+
210
+ ### Other Options
211
+
212
+ | Option | Description |
213
+ |--------|-------------|
214
+ | `--system-prompt <text>` | Replace default prompt; context files and skills are still appended |
215
+ | `--append-system-prompt <text>` | Append to system prompt |
216
+ | `--verbose` | Force verbose startup |
217
+ | `-h`, `--help` | Show help |
218
+ | `-v`, `--version` | Show version |
219
+
220
+ ### File Arguments
221
+
222
+ Prefix files with `@` to include them in the message:
223
+
224
+ ```bash
225
+ pi @prompt.md "Answer this"
226
+ pi -p @screenshot.png "What's in this image?"
227
+ pi @code.ts @test.ts "Review these files"
228
+ ```
229
+
230
+ ### Examples
231
+
232
+ ```bash
233
+ # Interactive with initial prompt
234
+ pi "List all .ts files in src/"
235
+
236
+ # Non-interactive
237
+ pi -p "Summarize this codebase"
238
+
239
+ # Non-interactive with piped stdin
240
+ cat README.md | pi -p "Summarize this text"
241
+
242
+ # Different model
243
+ pi --provider openai --model gpt-4o "Help me refactor"
244
+
245
+ # Model with provider prefix
246
+ pi --model openai/gpt-4o "Help me refactor"
247
+
248
+ # Model with thinking level shorthand
249
+ pi --model sonnet:high "Solve this complex problem"
250
+
251
+ # Limit model cycling
252
+ pi --models "claude-*,gpt-4o"
253
+
254
+ # Read-only mode
255
+ pi --tools read,grep,find,ls -p "Review the code"
256
+ ```
257
+
258
+ ### Environment Variables
259
+
260
+ | Variable | Description |
261
+ |----------|-------------|
262
+ | `AERY_CODING_AGENT_DIR` | Override config directory; default is `~/.aery/agent` |
263
+ | `AERY_CODING_AGENT_SESSION_DIR` | Override session storage directory; overridden by `--session-dir` |
264
+ | `AERY_PACKAGE_DIR` | Override package directory, useful for Nix/Guix store paths |
265
+ | `AERY_OFFLINE` | Disable startup network operations, including update checks, package update checks, and install/update telemetry |
266
+ | `AERY_SKIP_VERSION_CHECK` | Skip the Pi version update check at startup. This prevents the `eminent337.github.io` latest-version request |
267
+ | `AERY_TELEMETRY` | Override install/update telemetry: `1`/`true`/`yes` or `0`/`false`/`no`. This does not disable update checks |
268
+ | `AERY_CACHE_RETENTION` | Set to `long` for extended prompt cache where supported |
269
+ | `VISUAL`, `EDITOR` | External editor for Ctrl+G |
270
+
271
+ ## Design Principles
272
+
273
+ Pi keeps the core small and pushes workflow-specific behavior into extensions, skills, prompt templates, and packages.
274
+
275
+ It intentionally does not include built-in MCP, sub-agents, permission popups, plan mode, to-dos, or background bash. You can build or install those workflows as extensions or packages, or use external tools such as containers and tmux.
276
+
277
+ For the full rationale, read the [blog post](https://mariozechner.at/posts/2025-11-30-pi-coding-agent/).
package/docs/windows.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Pi requires a bash shell on Windows. Checked locations (in order):
4
4
 
5
- 1. Custom path from `~/.pi/agent/settings.json`
5
+ 1. Custom path from `~/.aery/agent/settings.json`
6
6
  2. Git Bash (`C:\Program Files\Git\bin\bash.exe`)
7
7
  3. `bash.exe` on PATH (Cygwin, MSYS2, WSL)
8
8
 
File without changes
@@ -9,7 +9,7 @@ Example extensions for pi-coding-agent.
9
9
  pi --extension examples/extensions/permission-gate.ts
10
10
 
11
11
  # Or copy to extensions directory for auto-discovery
12
- cp permission-gate.ts ~/.pi/agent/extensions/
12
+ cp permission-gate.ts ~/.aery/agent/extensions/
13
13
  ```
14
14
 
15
15
  ## Examples
@@ -34,10 +34,10 @@ cp permission-gate.ts ~/.pi/agent/extensions/
34
34
  | `questionnaire.ts` | Multi-question input with tab bar navigation between questions |
35
35
  | `tool-override.ts` | Override built-in tools (e.g., add logging/access control to `read`) |
36
36
  | `dynamic-tools.ts` | Register tools after startup (`session_start`) and at runtime via command, with prompt snippets and tool-specific prompt guidelines |
37
+ | `structured-output.ts` | Final structured-output tool that returns `terminate: true` so the agent can end on the tool call |
37
38
  | `built-in-tool-renderer.ts` | Custom compact rendering for built-in tools (read, bash, edit, write) while keeping original behavior |
38
39
  | `minimal-mode.ts` | Override built-in tool rendering for minimal display (only tool calls, no output in collapsed mode) |
39
40
  | `truncated-tool.ts` | Wraps ripgrep with proper output truncation (50KB/2000 lines) |
40
- | `antigravity-image-gen.ts` | Generate images via Google Antigravity with optional save-to-disk modes |
41
41
  | `ssh.ts` | Delegate all tools to a remote machine via SSH using pluggable operations |
42
42
  | `subagent/` | Delegate tasks to specialized subagents with isolated context windows |
43
43
 
@@ -51,6 +51,7 @@ cp permission-gate.ts ~/.pi/agent/extensions/
51
51
  | `handoff.ts` | Transfer context to a new focused session via `/handoff <goal>` |
52
52
  | `qna.ts` | Extracts questions from last response into editor via `ctx.ui.setEditorText()` |
53
53
  | `status-line.ts` | Shows turn progress in footer via `ctx.ui.setStatus()` with themed colors |
54
+ | `github-issue-autocomplete.ts` | Adds `#1234` issue completions by stacking a custom autocomplete provider that preloads open issues from `gh issue list` |
54
55
  | `widget-placement.ts` | Shows widgets above and below the editor via `ctx.ui.setWidget()` placement |
55
56
  | `hidden-thinking-label.ts` | Customizes the collapsed thinking label via `ctx.ui.setHiddenThinkingLabel()` |
56
57
  | `working-indicator.ts` | Customizes the streaming working indicator via `ctx.ui.setWorkingIndicator()` |
@@ -123,7 +124,6 @@ cp permission-gate.ts ~/.pi/agent/extensions/
123
124
  |-----------|-------------|
124
125
  | `custom-provider-anthropic/` | Custom Anthropic provider with OAuth support and custom streaming implementation |
125
126
  | `custom-provider-gitlab-duo/` | GitLab Duo provider using pi-ai's built-in Anthropic/OpenAI streaming via proxy |
126
- | `custom-provider-qwen-cli/` | Qwen CLI provider with OAuth device flow and OpenAI-compatible models |
127
127
 
128
128
  ### External Dependencies
129
129
 
@@ -137,8 +137,8 @@ cp permission-gate.ts ~/.pi/agent/extensions/
137
137
  See [docs/extensions.md](../../docs/extensions.md) for full documentation.
138
138
 
139
139
  ```typescript
140
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
141
- import { Type } from "@sinclair/typebox";
140
+ import type { ExtensionAPI } from "@eminent337/aery";
141
+ import { Type } from "typebox";
142
142
 
143
143
  export default function (pi: ExtensionAPI) {
144
144
  // Subscribe to lifecycle events
@@ -179,7 +179,7 @@ export default function (pi: ExtensionAPI) {
179
179
 
180
180
  **Use StringEnum for string parameters** (required for Google API compatibility):
181
181
  ```typescript
182
- import { StringEnum } from "@mariozechner/pi-ai";
182
+ import { StringEnum } from "@eminent337/aery-ai";
183
183
 
184
184
  // Good
185
185
  action: StringEnum(["list", "add"] as const)
@@ -11,17 +11,17 @@
11
11
  *
12
12
  * Save modes (tool param, env var, or config file):
13
13
  * save=none - Don't save to disk (default)
14
- * save=project - Save to <repo>/.pi/generated-images/
15
- * save=global - Save to ~/.pi/agent/generated-images/
16
- * save=custom - Save to saveDir param or PI_IMAGE_SAVE_DIR
14
+ * save=project - Save to <repo>/.aery/generated-images/
15
+ * save=global - Save to ~/.aery/agent/generated-images/
16
+ * save=custom - Save to saveDir param or AERY_IMAGE_SAVE_DIR
17
17
  *
18
18
  * Environment variables:
19
- * PI_IMAGE_SAVE_MODE - Default save mode (none|project|global|custom)
20
- * PI_IMAGE_SAVE_DIR - Directory for custom save mode
19
+ * AERY_IMAGE_SAVE_MODE - Default save mode (none|project|global|custom)
20
+ * AERY_IMAGE_SAVE_DIR - Directory for custom save mode
21
21
  *
22
22
  * Config files (project overrides global):
23
- * ~/.pi/agent/extensions/antigravity-image-gen.json
24
- * <repo>/.pi/extensions/antigravity-image-gen.json
23
+ * ~/.aery/agent/extensions/antigravity-image-gen.json
24
+ * <repo>/.aery/extensions/antigravity-image-gen.json
25
25
  * Example: { "save": "global" }
26
26
  */
27
27
 
@@ -29,9 +29,9 @@ import { randomUUID } from "node:crypto";
29
29
  import { existsSync, readFileSync } from "node:fs";
30
30
  import { mkdir, writeFile } from "node:fs/promises";
31
31
  import { join } from "node:path";
32
- import { StringEnum } from "@aryee/aery-ai";
33
- import { type ExtensionAPI, getAgentDir, withFileMutationQueue } from "@aryee/aery";
34
- import { type Static, Type } from "@sinclair/typebox";
32
+ import { type ExtensionAPI, getAgentDir, withFileMutationQueue } from "@eminent337/aery";
33
+ import { StringEnum } from "@eminent337/aery-ai";
34
+ import { type Static, Type } from "typebox";
35
35
 
36
36
  const PROVIDER = "google-antigravity";
37
37
 
@@ -51,7 +51,7 @@ const ANTIGRAVITY_ENDPOINT = "https://daily-cloudcode-pa.sandbox.googleapis.com"
51
51
  const DEFAULT_ANTIGRAVITY_VERSION = "1.21.9";
52
52
 
53
53
  const ANTIGRAVITY_HEADERS = {
54
- "User-Agent": `antigravity/${process.env.PI_AI_ANTIGRAVITY_VERSION || DEFAULT_ANTIGRAVITY_VERSION} darwin/arm64`,
54
+ "User-Agent": `antigravity/${process.env.AERY_AI_ANTIGRAVITY_VERSION || DEFAULT_ANTIGRAVITY_VERSION} darwin/arm64`,
55
55
  "X-Goog-Api-Client": "google-cloud-sdk vscode_cloudshelleditor/0.1",
56
56
  "Client-Metadata": JSON.stringify({
57
57
  ideType: "IDE_UNSPECIFIED",
@@ -74,7 +74,7 @@ const TOOL_PARAMS = Type.Object({
74
74
  save: Type.Optional(StringEnum(SAVE_MODES)),
75
75
  saveDir: Type.Optional(
76
76
  Type.String({
77
- description: "Directory to save image when save=custom. Defaults to PI_IMAGE_SAVE_DIR if set.",
77
+ description: "Directory to save image when save=custom. Defaults to AERY_IMAGE_SAVE_DIR if set.",
78
78
  }),
79
79
  ),
80
80
  });
@@ -185,13 +185,13 @@ function readConfigFile(path: string): ExtensionConfig {
185
185
  function loadConfig(cwd: string): ExtensionConfig {
186
186
  const globalPath = join(getAgentDir(), "extensions", "antigravity-image-gen.json");
187
187
  const globalConfig = readConfigFile(globalPath);
188
- const projectConfig = readConfigFile(join(cwd, ".pi", "extensions", "antigravity-image-gen.json"));
188
+ const projectConfig = readConfigFile(join(cwd, ".aery", "extensions", "antigravity-image-gen.json"));
189
189
  return { ...globalConfig, ...projectConfig };
190
190
  }
191
191
 
192
192
  function resolveSaveConfig(params: ToolParams, cwd: string): SaveConfig {
193
193
  const config = loadConfig(cwd);
194
- const envMode = (process.env.PI_IMAGE_SAVE_MODE || "").toLowerCase();
194
+ const envMode = (process.env.AERY_IMAGE_SAVE_MODE || "").toLowerCase();
195
195
  const paramMode = params.save;
196
196
  const mode = (paramMode || envMode || config.save || DEFAULT_SAVE_MODE) as SaveMode;
197
197
 
@@ -200,7 +200,7 @@ function resolveSaveConfig(params: ToolParams, cwd: string): SaveConfig {
200
200
  }
201
201
 
202
202
  if (mode === "project") {
203
- return { mode, outputDir: join(cwd, ".pi", "generated-images") };
203
+ return { mode, outputDir: join(cwd, ".aery", "generated-images") };
204
204
  }
205
205
 
206
206
  if (mode === "global") {
@@ -209,9 +209,9 @@ function resolveSaveConfig(params: ToolParams, cwd: string): SaveConfig {
209
209
  }
210
210
 
211
211
  if (mode === "custom") {
212
- const dir = params.saveDir || process.env.PI_IMAGE_SAVE_DIR || config.saveDir;
212
+ const dir = params.saveDir || process.env.AERY_IMAGE_SAVE_DIR || config.saveDir;
213
213
  if (!dir || !dir.trim()) {
214
- throw new Error("save=custom requires saveDir or PI_IMAGE_SAVE_DIR.");
214
+ throw new Error("save=custom requires saveDir or AERY_IMAGE_SAVE_DIR.");
215
215
  }
216
216
  return { mode, outputDir: dir };
217
217
  }
@@ -355,7 +355,7 @@ export default function antigravityImageGen(pi: ExtensionAPI) {
355
355
  name: "generate_image",
356
356
  label: "Generate image",
357
357
  description:
358
- "Generate an image via Google Antigravity image models. Returns the image as a tool result attachment. Optional saving via save=project|global|custom|none, or PI_IMAGE_SAVE_MODE/PI_IMAGE_SAVE_DIR.",
358
+ "Generate an image via Google Antigravity image models. Returns the image as a tool result attachment. Optional saving via save=project|global|custom|none, or AERY_IMAGE_SAVE_MODE/AERY_IMAGE_SAVE_DIR.",
359
359
  parameters: TOOL_PARAMS,
360
360
  async execute(_toolCallId, params: ToolParams, signal, onUpdate, ctx) {
361
361
  const { accessToken, projectId } = await getCredentials(ctx);
@@ -5,7 +5,7 @@
5
5
  * Uses the last assistant message to generate a commit message.
6
6
  */
7
7
 
8
- import type { ExtensionAPI } from "@aryee/aery";
8
+ import type { ExtensionAPI } from "@eminent337/aery";
9
9
 
10
10
  export default function (pi: ExtensionAPI) {
11
11
  pi.on("session_shutdown", async (_event, ctx) => {
@@ -7,8 +7,8 @@
7
7
  * pi -e ./bash-spawn-hook.ts
8
8
  */
9
9
 
10
- import type { ExtensionAPI } from "@aryee/aery";
11
- import { createBashTool } from "@aryee/aery";
10
+ import type { ExtensionAPI } from "@eminent337/aery";
11
+ import { createBashTool } from "@eminent337/aery";
12
12
 
13
13
  export default function (pi: ExtensionAPI) {
14
14
  const cwd = process.cwd();
@@ -17,7 +17,7 @@ export default function (pi: ExtensionAPI) {
17
17
  spawnHook: ({ command, cwd, env }) => ({
18
18
  command: `source ~/.profile\n${command}`,
19
19
  cwd,
20
- env: { ...env, PI_SPAWN_HOOK: "1" },
20
+ env: { ...env, AERY_SPAWN_HOOK: "1" },
21
21
  }),
22
22
  });
23
23
 
@@ -7,7 +7,7 @@
7
7
  * Usage: /bookmark [label] - bookmark the last assistant message
8
8
  */
9
9
 
10
- import type { ExtensionAPI } from "@aryee/aery";
10
+ import type { ExtensionAPI } from "@eminent337/aery";
11
11
 
12
12
  export default function (pi: ExtensionAPI) {
13
13
  pi.registerCommand("bookmark", {
@@ -0,0 +1,145 @@
1
+ import { CustomEditor, type ExtensionAPI, type ExtensionContext, type KeybindingsManager } from "@eminent337/aery";
2
+ import type { Component, EditorTheme, TUI } from "@eminent337/aery-tui";
3
+ import { truncateToWidth, visibleWidth } from "@eminent337/aery-tui";
4
+
5
+ function fitBorder(
6
+ left: string,
7
+ right: string,
8
+ width: number,
9
+ border: (text: string) => string,
10
+ fill: (text: string) => string = border,
11
+ ): string {
12
+ if (width <= 0) return "";
13
+ if (width === 1) return border("─");
14
+
15
+ let leftText = left;
16
+ let rightText = right;
17
+ const fixedWidth = 2;
18
+ const minimumGap = 3;
19
+
20
+ while (
21
+ fixedWidth + visibleWidth(leftText) + visibleWidth(rightText) + minimumGap > width &&
22
+ visibleWidth(rightText) > 0
23
+ ) {
24
+ rightText = truncateToWidth(rightText, Math.max(0, visibleWidth(rightText) - 1), "");
25
+ }
26
+ while (
27
+ fixedWidth + visibleWidth(leftText) + visibleWidth(rightText) + minimumGap > width &&
28
+ visibleWidth(leftText) > 0
29
+ ) {
30
+ leftText = truncateToWidth(leftText, Math.max(0, visibleWidth(leftText) - 1), "");
31
+ }
32
+
33
+ const gapWidth = Math.max(0, width - fixedWidth - visibleWidth(leftText) - visibleWidth(rightText));
34
+ return `${border("─")}${leftText}${fill("─".repeat(gapWidth))}${rightText}${border("─")}`;
35
+ }
36
+
37
+ function formatCwd(cwd: string): string {
38
+ const home = process.env.HOME;
39
+ if (home && cwd.startsWith(home)) {
40
+ return `~${cwd.slice(home.length)}`;
41
+ }
42
+ return cwd;
43
+ }
44
+
45
+ function formatContext(ctx: ExtensionContext): string {
46
+ const usage = ctx.getContextUsage();
47
+ const contextWindow = usage?.contextWindow ?? ctx.model?.contextWindow;
48
+ if (!contextWindow || !usage || usage.percent === null) {
49
+ return "ctx ?";
50
+ }
51
+ return `ctx ${Math.round(usage.percent)}%/${(contextWindow / 1000).toFixed(0)}k`;
52
+ }
53
+
54
+ function formatThinking(level: string): string {
55
+ return level === "off" ? "off" : level;
56
+ }
57
+
58
+ class EmptyFooter implements Component {
59
+ render(): string[] {
60
+ return [];
61
+ }
62
+
63
+ invalidate(): void {}
64
+ }
65
+
66
+ export default function (pi: ExtensionAPI) {
67
+ let isWorking = false;
68
+ let spinnerIndex = 0;
69
+ let spinnerTimer: ReturnType<typeof setInterval> | undefined;
70
+ let activeTui: TUI | undefined;
71
+ const spinnerFrames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
72
+
73
+ const stopSpinner = () => {
74
+ if (spinnerTimer) {
75
+ clearInterval(spinnerTimer);
76
+ spinnerTimer = undefined;
77
+ }
78
+ };
79
+
80
+ pi.on("agent_start", () => {
81
+ isWorking = true;
82
+ stopSpinner();
83
+ spinnerTimer = setInterval(() => {
84
+ spinnerIndex = (spinnerIndex + 1) % spinnerFrames.length;
85
+ activeTui?.requestRender();
86
+ }, 80);
87
+ activeTui?.requestRender();
88
+ });
89
+
90
+ pi.on("agent_end", () => {
91
+ isWorking = false;
92
+ stopSpinner();
93
+ activeTui?.requestRender();
94
+ });
95
+
96
+ pi.on("session_shutdown", () => {
97
+ stopSpinner();
98
+ activeTui = undefined;
99
+ });
100
+
101
+ pi.on("session_start", (_event, ctx) => {
102
+ ctx.ui.setWorkingVisible(false);
103
+ ctx.ui.setFooter(() => new EmptyFooter());
104
+
105
+ let branch: string | undefined;
106
+
107
+ const refreshBranch = async () => {
108
+ const result = await pi.exec("git", ["branch", "--show-current"], { cwd: ctx.cwd }).catch(() => undefined);
109
+ const stdout = result?.stdout.trim();
110
+ branch = stdout && stdout.length > 0 ? stdout : undefined;
111
+ activeTui?.requestRender();
112
+ };
113
+ void refreshBranch();
114
+
115
+ class BorderStatusEditor extends CustomEditor {
116
+ constructor(tui: TUI, theme: EditorTheme, keybindings: KeybindingsManager) {
117
+ super(tui, theme, keybindings, { paddingX: 0 });
118
+ activeTui = tui;
119
+ }
120
+
121
+ render(width: number): string[] {
122
+ const lines = super.render(width);
123
+ if (lines.length < 2) return lines;
124
+
125
+ const thm = ctx.ui.theme;
126
+ const model = ctx.model ? `${ctx.model.provider}/${ctx.model.id}` : "no model";
127
+ const thinking = pi.getThinkingLevel();
128
+ const topLeft = isWorking ? thm.fg("accent", ` ${spinnerFrames[spinnerIndex]} `) : "";
129
+ const topRight = "";
130
+ const bottomLeft = thm.fg("muted", ` ${model} · ${formatThinking(thinking)} `);
131
+ const bottomRight = thm.fg(
132
+ "muted",
133
+ ` ${formatContext(ctx)} · ${formatCwd(ctx.cwd)}${branch ? ` (${branch})` : ""} `,
134
+ );
135
+ const borderColor = (text: string) => this.borderColor(text);
136
+
137
+ lines[0] = fitBorder(topLeft, topRight, width, borderColor);
138
+ lines[lines.length - 1] = fitBorder(bottomLeft, bottomRight, width, borderColor);
139
+ return lines;
140
+ }
141
+ }
142
+
143
+ ctx.ui.setEditorComponent((tui, theme, keybindings) => new BorderStatusEditor(tui, theme, keybindings));
144
+ });
145
+ }
@@ -25,9 +25,9 @@
25
25
  * pi -e ./built-in-tool-renderer.ts
26
26
  */
27
27
 
28
- import type { BashToolDetails, EditToolDetails, ExtensionAPI, ReadToolDetails } from "@aryee/aery";
29
- import { createBashTool, createEditTool, createReadTool, createWriteTool } from "@aryee/aery";
30
- import { Text } from "@aryee/aery-tui";
28
+ import type { BashToolDetails, EditToolDetails, ExtensionAPI, ReadToolDetails } from "@eminent337/aery";
29
+ import { createBashTool, createEditTool, createReadTool, createWriteTool } from "@eminent337/aery";
30
+ import { Text } from "@eminent337/aery-tui";
31
31
 
32
32
  export default function (pi: ExtensionAPI) {
33
33
  const cwd = process.cwd();
@@ -12,14 +12,14 @@
12
12
  * - Organize with subdirectories: Group related rules (e.g., frontend/, backend/)
13
13
  *
14
14
  * Usage:
15
- * 1. Copy this file to ~/.pi/agent/extensions/ or your project's .pi/extensions/
15
+ * 1. Copy this file to ~/.aery/agent/extensions/ or your project's .aery/extensions/
16
16
  * 2. Create .claude/rules/ folder in your project root
17
17
  * 3. Add .md files with your rules
18
18
  */
19
19
 
20
20
  import * as fs from "node:fs";
21
21
  import * as path from "node:path";
22
- import type { ExtensionAPI } from "@aryee/aery";
22
+ import type { ExtensionAPI } from "@eminent337/aery";
23
23
 
24
24
  /**
25
25
  * Recursively find all .md files in a directory