@eminent337/aery 0.1.11 → 0.1.13

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 (367) hide show
  1. package/dist/bun/register-bedrock.d.ts.map +1 -1
  2. package/dist/bun/register-bedrock.js +2 -2
  3. package/dist/bun/register-bedrock.js.map +1 -1
  4. package/dist/cli/args.d.ts +1 -1
  5. package/dist/cli/args.d.ts.map +1 -1
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/config-selector.d.ts.map +1 -1
  8. package/dist/cli/config-selector.js +1 -1
  9. package/dist/cli/config-selector.js.map +1 -1
  10. package/dist/cli/file-processor.d.ts +1 -1
  11. package/dist/cli/file-processor.d.ts.map +1 -1
  12. package/dist/cli/file-processor.js.map +1 -1
  13. package/dist/cli/initial-message.d.ts +1 -1
  14. package/dist/cli/initial-message.d.ts.map +1 -1
  15. package/dist/cli/initial-message.js.map +1 -1
  16. package/dist/cli/list-models.d.ts.map +1 -1
  17. package/dist/cli/list-models.js +1 -1
  18. package/dist/cli/list-models.js.map +1 -1
  19. package/dist/cli/session-picker.d.ts.map +1 -1
  20. package/dist/cli/session-picker.js +1 -1
  21. package/dist/cli/session-picker.js.map +1 -1
  22. package/dist/core/agent-session-services.d.ts +2 -2
  23. package/dist/core/agent-session-services.d.ts.map +1 -1
  24. package/dist/core/agent-session-services.js.map +1 -1
  25. package/dist/core/agent-session.d.ts +2 -2
  26. package/dist/core/agent-session.d.ts.map +1 -1
  27. package/dist/core/agent-session.js +1 -1
  28. package/dist/core/agent-session.js.map +1 -1
  29. package/dist/core/auth-storage.d.ts +2 -2
  30. package/dist/core/auth-storage.d.ts.map +1 -1
  31. package/dist/core/auth-storage.js +2 -2
  32. package/dist/core/auth-storage.js.map +1 -1
  33. package/dist/core/compaction/branch-summarization.d.ts +2 -2
  34. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  35. package/dist/core/compaction/branch-summarization.js +1 -1
  36. package/dist/core/compaction/branch-summarization.js.map +1 -1
  37. package/dist/core/compaction/compaction.d.ts +2 -2
  38. package/dist/core/compaction/compaction.d.ts.map +1 -1
  39. package/dist/core/compaction/compaction.js +1 -1
  40. package/dist/core/compaction/compaction.js.map +1 -1
  41. package/dist/core/compaction/utils.d.ts +2 -2
  42. package/dist/core/compaction/utils.d.ts.map +1 -1
  43. package/dist/core/compaction/utils.js.map +1 -1
  44. package/dist/core/defaults.d.ts +1 -1
  45. package/dist/core/defaults.d.ts.map +1 -1
  46. package/dist/core/defaults.js.map +1 -1
  47. package/dist/core/export-html/index.d.ts +1 -1
  48. package/dist/core/export-html/index.d.ts.map +1 -1
  49. package/dist/core/export-html/index.js.map +1 -1
  50. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  51. package/dist/core/export-html/tool-renderer.js.map +1 -1
  52. package/dist/core/extensions/loader.d.ts.map +1 -1
  53. package/dist/core/extensions/loader.js +15 -15
  54. package/dist/core/extensions/loader.js.map +1 -1
  55. package/dist/core/extensions/runner.d.ts +3 -3
  56. package/dist/core/extensions/runner.d.ts.map +1 -1
  57. package/dist/core/extensions/runner.js.map +1 -1
  58. package/dist/core/extensions/types.d.ts +5 -5
  59. package/dist/core/extensions/types.d.ts.map +1 -1
  60. package/dist/core/extensions/types.js.map +1 -1
  61. package/dist/core/extensions/wrapper.d.ts +1 -1
  62. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  63. package/dist/core/extensions/wrapper.js.map +1 -1
  64. package/dist/core/keybindings.d.ts +2 -2
  65. package/dist/core/keybindings.d.ts.map +1 -1
  66. package/dist/core/keybindings.js +1 -1
  67. package/dist/core/keybindings.js.map +1 -1
  68. package/dist/core/messages.d.ts +3 -3
  69. package/dist/core/messages.d.ts.map +1 -1
  70. package/dist/core/messages.js.map +1 -1
  71. package/dist/core/model-registry.d.ts +1 -1
  72. package/dist/core/model-registry.d.ts.map +1 -1
  73. package/dist/core/model-registry.js +2 -2
  74. package/dist/core/model-registry.js.map +1 -1
  75. package/dist/core/model-resolver.d.ts +2 -2
  76. package/dist/core/model-resolver.d.ts.map +1 -1
  77. package/dist/core/model-resolver.js +1 -1
  78. package/dist/core/model-resolver.js.map +1 -1
  79. package/dist/core/sdk.d.ts +3 -3
  80. package/dist/core/sdk.d.ts.map +1 -1
  81. package/dist/core/sdk.js +3 -3
  82. package/dist/core/sdk.js.map +1 -1
  83. package/dist/core/session-manager.d.ts +2 -2
  84. package/dist/core/session-manager.d.ts.map +1 -1
  85. package/dist/core/session-manager.js.map +1 -1
  86. package/dist/core/settings-manager.d.ts +1 -1
  87. package/dist/core/settings-manager.d.ts.map +1 -1
  88. package/dist/core/settings-manager.js.map +1 -1
  89. package/dist/core/tools/bash.d.ts +1 -1
  90. package/dist/core/tools/bash.d.ts.map +1 -1
  91. package/dist/core/tools/bash.js +1 -1
  92. package/dist/core/tools/bash.js.map +1 -1
  93. package/dist/core/tools/edit.d.ts +2 -2
  94. package/dist/core/tools/edit.d.ts.map +1 -1
  95. package/dist/core/tools/edit.js +1 -1
  96. package/dist/core/tools/edit.js.map +1 -1
  97. package/dist/core/tools/find.d.ts +1 -1
  98. package/dist/core/tools/find.d.ts.map +1 -1
  99. package/dist/core/tools/find.js +1 -1
  100. package/dist/core/tools/find.js.map +1 -1
  101. package/dist/core/tools/grep.d.ts +1 -1
  102. package/dist/core/tools/grep.d.ts.map +1 -1
  103. package/dist/core/tools/grep.js +1 -1
  104. package/dist/core/tools/grep.js.map +1 -1
  105. package/dist/core/tools/index.d.ts +1 -1
  106. package/dist/core/tools/index.d.ts.map +1 -1
  107. package/dist/core/tools/index.js.map +1 -1
  108. package/dist/core/tools/ls.d.ts +1 -1
  109. package/dist/core/tools/ls.d.ts.map +1 -1
  110. package/dist/core/tools/ls.js +1 -1
  111. package/dist/core/tools/ls.js.map +1 -1
  112. package/dist/core/tools/read.d.ts +1 -1
  113. package/dist/core/tools/read.d.ts.map +1 -1
  114. package/dist/core/tools/read.js +1 -1
  115. package/dist/core/tools/read.js.map +1 -1
  116. package/dist/core/tools/render-utils.d.ts +1 -1
  117. package/dist/core/tools/render-utils.d.ts.map +1 -1
  118. package/dist/core/tools/render-utils.js +1 -1
  119. package/dist/core/tools/render-utils.js.map +1 -1
  120. package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
  121. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  122. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  123. package/dist/core/tools/write.d.ts +1 -1
  124. package/dist/core/tools/write.d.ts.map +1 -1
  125. package/dist/core/tools/write.js +1 -1
  126. package/dist/core/tools/write.js.map +1 -1
  127. package/dist/main.d.ts.map +1 -1
  128. package/dist/main.js +2 -2
  129. package/dist/main.js.map +1 -1
  130. package/dist/modes/interactive/components/armin.d.ts +1 -1
  131. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  132. package/dist/modes/interactive/components/armin.js.map +1 -1
  133. package/dist/modes/interactive/components/assistant-message.d.ts +2 -2
  134. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  135. package/dist/modes/interactive/components/assistant-message.js +1 -1
  136. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  137. package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
  138. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  139. package/dist/modes/interactive/components/bash-execution.js +1 -1
  140. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  141. package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
  142. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  143. package/dist/modes/interactive/components/bordered-loader.js +1 -1
  144. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  145. package/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
  146. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  147. package/dist/modes/interactive/components/branch-summary-message.js +1 -1
  148. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  149. package/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
  150. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  151. package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
  152. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  153. package/dist/modes/interactive/components/config-selector.d.ts +1 -1
  154. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  155. package/dist/modes/interactive/components/config-selector.js +1 -1
  156. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  157. package/dist/modes/interactive/components/countdown-timer.d.ts +1 -1
  158. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  159. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  160. package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
  161. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  162. package/dist/modes/interactive/components/custom-editor.js +1 -1
  163. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  164. package/dist/modes/interactive/components/custom-message.d.ts +1 -1
  165. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  166. package/dist/modes/interactive/components/custom-message.js +1 -1
  167. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  168. package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
  169. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  170. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  171. package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
  172. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  173. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  174. package/dist/modes/interactive/components/earendil-announcement.d.ts +1 -1
  175. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  176. package/dist/modes/interactive/components/earendil-announcement.js +1 -1
  177. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  178. package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
  179. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  180. package/dist/modes/interactive/components/extension-editor.js +1 -1
  181. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  182. package/dist/modes/interactive/components/extension-input.d.ts +1 -1
  183. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  184. package/dist/modes/interactive/components/extension-input.js +1 -1
  185. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  186. package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
  187. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  188. package/dist/modes/interactive/components/extension-selector.js +1 -1
  189. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  190. package/dist/modes/interactive/components/footer.d.ts +1 -1
  191. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  192. package/dist/modes/interactive/components/footer.js +1 -1
  193. package/dist/modes/interactive/components/footer.js.map +1 -1
  194. package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -1
  195. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  196. package/dist/modes/interactive/components/keybinding-hints.js +1 -1
  197. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  198. package/dist/modes/interactive/components/login-dialog.d.ts +1 -1
  199. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  200. package/dist/modes/interactive/components/login-dialog.js +2 -2
  201. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  202. package/dist/modes/interactive/components/model-selector.d.ts +2 -2
  203. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  204. package/dist/modes/interactive/components/model-selector.js +2 -2
  205. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  206. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  207. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  208. package/dist/modes/interactive/components/oauth-selector.js +2 -2
  209. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  210. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
  211. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  212. package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
  213. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  214. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  215. package/dist/modes/interactive/components/session-selector-search.js +1 -1
  216. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  217. package/dist/modes/interactive/components/session-selector.d.ts +1 -1
  218. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  219. package/dist/modes/interactive/components/session-selector.js +1 -1
  220. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  221. package/dist/modes/interactive/components/settings-selector.d.ts +3 -3
  222. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  223. package/dist/modes/interactive/components/settings-selector.js +1 -1
  224. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  225. package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
  226. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  227. package/dist/modes/interactive/components/show-images-selector.js +1 -1
  228. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  229. package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
  230. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  231. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  232. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  233. package/dist/modes/interactive/components/theme-selector.d.ts +1 -1
  234. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  235. package/dist/modes/interactive/components/theme-selector.js +1 -1
  236. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  237. package/dist/modes/interactive/components/thinking-selector.d.ts +2 -2
  238. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  239. package/dist/modes/interactive/components/thinking-selector.js +1 -1
  240. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  241. package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
  242. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  243. package/dist/modes/interactive/components/tool-execution.js +1 -1
  244. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  245. package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
  246. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  247. package/dist/modes/interactive/components/tree-selector.js +1 -1
  248. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  249. package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
  250. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  251. package/dist/modes/interactive/components/user-message-selector.js +1 -1
  252. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  253. package/dist/modes/interactive/components/user-message.d.ts +1 -1
  254. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  255. package/dist/modes/interactive/components/user-message.js +1 -1
  256. package/dist/modes/interactive/components/user-message.js.map +1 -1
  257. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  258. package/dist/modes/interactive/components/visual-truncate.js +1 -1
  259. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  260. package/dist/modes/interactive/interactive-mode.d.ts +1 -1
  261. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  262. package/dist/modes/interactive/interactive-mode.js +3 -3
  263. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  264. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  265. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  266. package/dist/modes/interactive/theme/theme.js +1 -1
  267. package/dist/modes/interactive/theme/theme.js.map +1 -1
  268. package/dist/modes/print-mode.d.ts +1 -1
  269. package/dist/modes/print-mode.d.ts.map +1 -1
  270. package/dist/modes/print-mode.js.map +1 -1
  271. package/dist/modes/rpc/rpc-client.d.ts +2 -2
  272. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  273. package/dist/modes/rpc/rpc-client.js.map +1 -1
  274. package/dist/modes/rpc/rpc-types.d.ts +2 -2
  275. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  276. package/dist/modes/rpc/rpc-types.js.map +1 -1
  277. package/dist/utils/image-resize.d.ts +1 -1
  278. package/dist/utils/image-resize.d.ts.map +1 -1
  279. package/dist/utils/image-resize.js.map +1 -1
  280. package/examples/extensions/antigravity-image-gen.ts +2 -2
  281. package/examples/extensions/auto-commit-on-exit.ts +1 -1
  282. package/examples/extensions/bash-spawn-hook.ts +2 -2
  283. package/examples/extensions/bookmark.ts +1 -1
  284. package/examples/extensions/built-in-tool-renderer.ts +3 -3
  285. package/examples/extensions/claude-rules.ts +1 -1
  286. package/examples/extensions/commands.ts +1 -1
  287. package/examples/extensions/confirm-destructive.ts +1 -1
  288. package/examples/extensions/custom-compaction.ts +3 -3
  289. package/examples/extensions/custom-footer.ts +3 -3
  290. package/examples/extensions/custom-header.ts +2 -2
  291. package/examples/extensions/custom-provider-anthropic/index.ts +2 -2
  292. package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
  293. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  294. package/examples/extensions/custom-provider-qwen-cli/index.ts +2 -2
  295. package/examples/extensions/dirty-repo-guard.ts +1 -1
  296. package/examples/extensions/doom-overlay/doom-component.ts +2 -2
  297. package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
  298. package/examples/extensions/doom-overlay/index.ts +1 -1
  299. package/examples/extensions/dynamic-resources/index.ts +1 -1
  300. package/examples/extensions/dynamic-tools.ts +1 -1
  301. package/examples/extensions/event-bus.ts +1 -1
  302. package/examples/extensions/file-trigger.ts +1 -1
  303. package/examples/extensions/git-checkpoint.ts +1 -1
  304. package/examples/extensions/handoff.ts +3 -3
  305. package/examples/extensions/hello.ts +2 -2
  306. package/examples/extensions/hidden-thinking-label.ts +1 -1
  307. package/examples/extensions/inline-bash.ts +1 -1
  308. package/examples/extensions/input-transform.ts +1 -1
  309. package/examples/extensions/interactive-shell.ts +1 -1
  310. package/examples/extensions/mac-system-theme.ts +1 -1
  311. package/examples/extensions/message-renderer.ts +2 -2
  312. package/examples/extensions/minimal-mode.ts +3 -3
  313. package/examples/extensions/modal-editor.ts +2 -2
  314. package/examples/extensions/model-status.ts +1 -1
  315. package/examples/extensions/notify.ts +1 -1
  316. package/examples/extensions/overlay-qa-tests.ts +3 -3
  317. package/examples/extensions/overlay-test.ts +2 -2
  318. package/examples/extensions/permission-gate.ts +1 -1
  319. package/examples/extensions/pirate.ts +1 -1
  320. package/examples/extensions/plan-mode/index.ts +4 -4
  321. package/examples/extensions/preset.ts +4 -4
  322. package/examples/extensions/protected-paths.ts +1 -1
  323. package/examples/extensions/provider-payload.ts +1 -1
  324. package/examples/extensions/qna.ts +3 -3
  325. package/examples/extensions/question.ts +2 -2
  326. package/examples/extensions/questionnaire.ts +2 -2
  327. package/examples/extensions/rainbow-editor.ts +1 -1
  328. package/examples/extensions/reload-runtime.ts +1 -1
  329. package/examples/extensions/rpc-demo.ts +1 -1
  330. package/examples/extensions/sandbox/index.ts +2 -2
  331. package/examples/extensions/send-user-message.ts +1 -1
  332. package/examples/extensions/session-name.ts +1 -1
  333. package/examples/extensions/shutdown-command.ts +1 -1
  334. package/examples/extensions/snake.ts +2 -2
  335. package/examples/extensions/space-invaders.ts +2 -2
  336. package/examples/extensions/ssh.ts +2 -2
  337. package/examples/extensions/status-line.ts +1 -1
  338. package/examples/extensions/subagent/agents.ts +1 -1
  339. package/examples/extensions/subagent/index.ts +5 -5
  340. package/examples/extensions/summarize.ts +4 -4
  341. package/examples/extensions/system-prompt-header.ts +1 -1
  342. package/examples/extensions/tic-tac-toe.ts +3 -3
  343. package/examples/extensions/timed-confirm.ts +1 -1
  344. package/examples/extensions/titlebar-spinner.ts +1 -1
  345. package/examples/extensions/todo.ts +3 -3
  346. package/examples/extensions/tool-override.ts +2 -2
  347. package/examples/extensions/tools.ts +3 -3
  348. package/examples/extensions/trigger-compact.ts +1 -1
  349. package/examples/extensions/truncated-tool.ts +3 -3
  350. package/examples/extensions/widget-placement.ts +1 -1
  351. package/examples/extensions/with-deps/index.ts +1 -1
  352. package/examples/extensions/working-indicator.ts +1 -1
  353. package/examples/rpc-extension-ui.ts +1 -1
  354. package/examples/sdk/01-minimal.ts +1 -1
  355. package/examples/sdk/02-custom-model.ts +2 -2
  356. package/examples/sdk/03-custom-prompt.ts +1 -1
  357. package/examples/sdk/04-skills.ts +1 -1
  358. package/examples/sdk/05-tools.ts +1 -1
  359. package/examples/sdk/06-extensions.ts +2 -2
  360. package/examples/sdk/07-context-files.ts +1 -1
  361. package/examples/sdk/08-prompt-templates.ts +1 -1
  362. package/examples/sdk/09-api-keys-and-oauth.ts +1 -1
  363. package/examples/sdk/10-settings.ts +1 -1
  364. package/examples/sdk/11-sessions.ts +1 -1
  365. package/examples/sdk/12-full-control.ts +2 -2
  366. package/examples/sdk/13-session-runtime.ts +1 -1
  367. package/package.json +1 -4
@@ -1 +1 @@
1
- {"version":3,"file":"image-resize.js","sourceRoot":"","sources":["../../src/utils/image-resize.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ImageContent } from \"@aryee/aery-ai\";\nimport { applyExifOrientation } from \"./exif-orientation.js\";\nimport { loadPhoton } from \"./photon.js\";\n\nexport interface ImageResizeOptions {\n\tmaxWidth?: number; // Default: 2000\n\tmaxHeight?: number; // Default: 2000\n\tmaxBytes?: number; // Default: 4.5MB of base64 payload (below Anthropic's 5MB limit)\n\tjpegQuality?: number; // Default: 80\n}\n\nexport interface ResizedImage {\n\tdata: string; // base64\n\tmimeType: string;\n\toriginalWidth: number;\n\toriginalHeight: number;\n\twidth: number;\n\theight: number;\n\twasResized: boolean;\n}\n\n// 4.5MB of base64 payload. Provides headroom below Anthropic's 5MB limit.\nconst DEFAULT_MAX_BYTES = 4.5 * 1024 * 1024;\n\nconst DEFAULT_OPTIONS: Required<ImageResizeOptions> = {\n\tmaxWidth: 2000,\n\tmaxHeight: 2000,\n\tmaxBytes: DEFAULT_MAX_BYTES,\n\tjpegQuality: 80,\n};\n\ninterface EncodedCandidate {\n\tdata: string;\n\tencodedSize: number;\n\tmimeType: string;\n}\n\nfunction encodeCandidate(buffer: Uint8Array, mimeType: string): EncodedCandidate {\n\tconst data = Buffer.from(buffer).toString(\"base64\");\n\treturn {\n\t\tdata,\n\t\tencodedSize: Buffer.byteLength(data, \"utf-8\"),\n\t\tmimeType,\n\t};\n}\n\n/**\n * Resize an image to fit within the specified max dimensions and encoded file size.\n * Returns null if the image cannot be resized below maxBytes.\n *\n * Uses Photon (Rust/WASM) for image processing. If Photon is not available,\n * returns null.\n *\n * Strategy for staying under maxBytes:\n * 1. First resize to maxWidth/maxHeight\n * 2. Try both PNG and JPEG formats, pick the smaller one\n * 3. If still too large, try JPEG with decreasing quality\n * 4. If still too large, progressively reduce dimensions until 1x1\n */\nexport async function resizeImage(img: ImageContent, options?: ImageResizeOptions): Promise<ResizedImage | null> {\n\tconst opts = { ...DEFAULT_OPTIONS, ...options };\n\tconst inputBuffer = Buffer.from(img.data, \"base64\");\n\tconst inputBase64Size = Buffer.byteLength(img.data, \"utf-8\");\n\n\tconst photon = await loadPhoton();\n\tif (!photon) {\n\t\treturn null;\n\t}\n\n\tlet image: ReturnType<typeof photon.PhotonImage.new_from_byteslice> | undefined;\n\ttry {\n\t\tconst inputBytes = new Uint8Array(inputBuffer);\n\t\tconst rawImage = photon.PhotonImage.new_from_byteslice(inputBytes);\n\t\timage = applyExifOrientation(photon, rawImage, inputBytes);\n\t\tif (image !== rawImage) rawImage.free();\n\n\t\tconst originalWidth = image.get_width();\n\t\tconst originalHeight = image.get_height();\n\t\tconst format = img.mimeType?.split(\"/\")[1] ?? \"png\";\n\n\t\t// Check if already within all limits (dimensions AND encoded size)\n\t\tif (originalWidth <= opts.maxWidth && originalHeight <= opts.maxHeight && inputBase64Size < opts.maxBytes) {\n\t\t\treturn {\n\t\t\t\tdata: img.data,\n\t\t\t\tmimeType: img.mimeType ?? `image/${format}`,\n\t\t\t\toriginalWidth,\n\t\t\t\toriginalHeight,\n\t\t\t\twidth: originalWidth,\n\t\t\t\theight: originalHeight,\n\t\t\t\twasResized: false,\n\t\t\t};\n\t\t}\n\n\t\t// Calculate initial dimensions respecting max limits\n\t\tlet targetWidth = originalWidth;\n\t\tlet targetHeight = originalHeight;\n\n\t\tif (targetWidth > opts.maxWidth) {\n\t\t\ttargetHeight = Math.round((targetHeight * opts.maxWidth) / targetWidth);\n\t\t\ttargetWidth = opts.maxWidth;\n\t\t}\n\t\tif (targetHeight > opts.maxHeight) {\n\t\t\ttargetWidth = Math.round((targetWidth * opts.maxHeight) / targetHeight);\n\t\t\ttargetHeight = opts.maxHeight;\n\t\t}\n\n\t\tfunction tryEncodings(width: number, height: number, jpegQualities: number[]): EncodedCandidate[] {\n\t\t\tconst resized = photon!.resize(image!, width, height, photon!.SamplingFilter.Lanczos3);\n\n\t\t\ttry {\n\t\t\t\tconst candidates: EncodedCandidate[] = [encodeCandidate(resized.get_bytes(), \"image/png\")];\n\t\t\t\tfor (const quality of jpegQualities) {\n\t\t\t\t\tcandidates.push(encodeCandidate(resized.get_bytes_jpeg(quality), \"image/jpeg\"));\n\t\t\t\t}\n\t\t\t\treturn candidates;\n\t\t\t} finally {\n\t\t\t\tresized.free();\n\t\t\t}\n\t\t}\n\n\t\tconst qualitySteps = Array.from(new Set([opts.jpegQuality, 85, 70, 55, 40]));\n\t\tlet currentWidth = targetWidth;\n\t\tlet currentHeight = targetHeight;\n\n\t\twhile (true) {\n\t\t\tconst candidates = tryEncodings(currentWidth, currentHeight, qualitySteps);\n\t\t\tfor (const candidate of candidates) {\n\t\t\t\tif (candidate.encodedSize < opts.maxBytes) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: candidate.data,\n\t\t\t\t\t\tmimeType: candidate.mimeType,\n\t\t\t\t\t\toriginalWidth,\n\t\t\t\t\t\toriginalHeight,\n\t\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\t\theight: currentHeight,\n\t\t\t\t\t\twasResized: true,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (currentWidth === 1 && currentHeight === 1) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst nextWidth = currentWidth === 1 ? 1 : Math.max(1, Math.floor(currentWidth * 0.75));\n\t\t\tconst nextHeight = currentHeight === 1 ? 1 : Math.max(1, Math.floor(currentHeight * 0.75));\n\t\t\tif (nextWidth === currentWidth && nextHeight === currentHeight) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcurrentWidth = nextWidth;\n\t\t\tcurrentHeight = nextHeight;\n\t\t}\n\n\t\treturn null;\n\t} catch {\n\t\treturn null;\n\t} finally {\n\t\tif (image) {\n\t\t\timage.free();\n\t\t}\n\t}\n}\n\n/**\n * Format a dimension note for resized images.\n * This helps the model understand the coordinate mapping.\n */\nexport function formatDimensionNote(result: ResizedImage): string | undefined {\n\tif (!result.wasResized) {\n\t\treturn undefined;\n\t}\n\n\tconst scale = result.originalWidth / result.width;\n\treturn `[Image: original ${result.originalWidth}x${result.originalHeight}, displayed at ${result.width}x${result.height}. Multiply coordinates by ${scale.toFixed(2)} to map to original image.]`;\n}\n"]}
1
+ {"version":3,"file":"image-resize.js","sourceRoot":"","sources":["../../src/utils/image-resize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmBzC,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,eAAe,GAAiC;IACrD,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,iBAAiB;IAC3B,WAAW,EAAE,EAAE;CACf,CAAC;AAQF,SAAS,eAAe,CAAC,MAAkB,EAAE,QAAgB,EAAoB;IAChF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO;QACN,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;QAC7C,QAAQ;KACR,CAAC;AAAA,CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAiB,EAAE,OAA4B,EAAgC;IAChH,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAA2E,CAAC;IAChF,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACnE,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,QAAQ;YAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAExC,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;QAEpD,mEAAmE;QACnE,IAAI,aAAa,IAAI,IAAI,CAAC,QAAQ,IAAI,cAAc,IAAI,IAAI,CAAC,SAAS,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3G,OAAO;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS,MAAM,EAAE;gBAC3C,aAAa;gBACb,cAAc;gBACd,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,cAAc;gBACtB,UAAU,EAAE,KAAK;aACjB,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,WAAW,GAAG,aAAa,CAAC;QAChC,IAAI,YAAY,GAAG,cAAc,CAAC;QAElC,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC;YACxE,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,CAAC;QACD,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC;YACxE,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,CAAC;QAED,SAAS,YAAY,CAAC,KAAa,EAAE,MAAc,EAAE,aAAuB,EAAsB;YACjG,MAAM,OAAO,GAAG,MAAO,CAAC,MAAM,CAAC,KAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAEvF,IAAI,CAAC;gBACJ,MAAM,UAAU,GAAuB,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC3F,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;oBACrC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;gBACjF,CAAC;gBACD,OAAO,UAAU,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACV,OAAO,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC;QAAA,CACD;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,YAAY,GAAG,WAAW,CAAC;QAC/B,IAAI,aAAa,GAAG,YAAY,CAAC;QAEjC,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;YAC3E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACpC,IAAI,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC3C,OAAO;wBACN,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;wBAC5B,aAAa;wBACb,cAAc;wBACd,KAAK,EAAE,YAAY;wBACnB,MAAM,EAAE,aAAa;wBACrB,UAAU,EAAE,IAAI;qBAChB,CAAC;gBACH,CAAC;YACF,CAAC;YAED,IAAI,YAAY,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM;YACP,CAAC;YAED,MAAM,SAAS,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;YACxF,MAAM,UAAU,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;YAC3F,IAAI,SAAS,KAAK,YAAY,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBAChE,MAAM;YACP,CAAC;YAED,YAAY,GAAG,SAAS,CAAC;YACzB,aAAa,GAAG,UAAU,CAAC;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;YAAS,CAAC;QACV,IAAI,KAAK,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;IACF,CAAC;AAAA,CACD;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAoB,EAAsB;IAC7E,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IAClD,OAAO,oBAAoB,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,cAAc,kBAAkB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,6BAA6B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;AAAA,CAClM","sourcesContent":["import type { ImageContent } from \"@eminent337/aery-ai\";\nimport { applyExifOrientation } from \"./exif-orientation.js\";\nimport { loadPhoton } from \"./photon.js\";\n\nexport interface ImageResizeOptions {\n\tmaxWidth?: number; // Default: 2000\n\tmaxHeight?: number; // Default: 2000\n\tmaxBytes?: number; // Default: 4.5MB of base64 payload (below Anthropic's 5MB limit)\n\tjpegQuality?: number; // Default: 80\n}\n\nexport interface ResizedImage {\n\tdata: string; // base64\n\tmimeType: string;\n\toriginalWidth: number;\n\toriginalHeight: number;\n\twidth: number;\n\theight: number;\n\twasResized: boolean;\n}\n\n// 4.5MB of base64 payload. Provides headroom below Anthropic's 5MB limit.\nconst DEFAULT_MAX_BYTES = 4.5 * 1024 * 1024;\n\nconst DEFAULT_OPTIONS: Required<ImageResizeOptions> = {\n\tmaxWidth: 2000,\n\tmaxHeight: 2000,\n\tmaxBytes: DEFAULT_MAX_BYTES,\n\tjpegQuality: 80,\n};\n\ninterface EncodedCandidate {\n\tdata: string;\n\tencodedSize: number;\n\tmimeType: string;\n}\n\nfunction encodeCandidate(buffer: Uint8Array, mimeType: string): EncodedCandidate {\n\tconst data = Buffer.from(buffer).toString(\"base64\");\n\treturn {\n\t\tdata,\n\t\tencodedSize: Buffer.byteLength(data, \"utf-8\"),\n\t\tmimeType,\n\t};\n}\n\n/**\n * Resize an image to fit within the specified max dimensions and encoded file size.\n * Returns null if the image cannot be resized below maxBytes.\n *\n * Uses Photon (Rust/WASM) for image processing. If Photon is not available,\n * returns null.\n *\n * Strategy for staying under maxBytes:\n * 1. First resize to maxWidth/maxHeight\n * 2. Try both PNG and JPEG formats, pick the smaller one\n * 3. If still too large, try JPEG with decreasing quality\n * 4. If still too large, progressively reduce dimensions until 1x1\n */\nexport async function resizeImage(img: ImageContent, options?: ImageResizeOptions): Promise<ResizedImage | null> {\n\tconst opts = { ...DEFAULT_OPTIONS, ...options };\n\tconst inputBuffer = Buffer.from(img.data, \"base64\");\n\tconst inputBase64Size = Buffer.byteLength(img.data, \"utf-8\");\n\n\tconst photon = await loadPhoton();\n\tif (!photon) {\n\t\treturn null;\n\t}\n\n\tlet image: ReturnType<typeof photon.PhotonImage.new_from_byteslice> | undefined;\n\ttry {\n\t\tconst inputBytes = new Uint8Array(inputBuffer);\n\t\tconst rawImage = photon.PhotonImage.new_from_byteslice(inputBytes);\n\t\timage = applyExifOrientation(photon, rawImage, inputBytes);\n\t\tif (image !== rawImage) rawImage.free();\n\n\t\tconst originalWidth = image.get_width();\n\t\tconst originalHeight = image.get_height();\n\t\tconst format = img.mimeType?.split(\"/\")[1] ?? \"png\";\n\n\t\t// Check if already within all limits (dimensions AND encoded size)\n\t\tif (originalWidth <= opts.maxWidth && originalHeight <= opts.maxHeight && inputBase64Size < opts.maxBytes) {\n\t\t\treturn {\n\t\t\t\tdata: img.data,\n\t\t\t\tmimeType: img.mimeType ?? `image/${format}`,\n\t\t\t\toriginalWidth,\n\t\t\t\toriginalHeight,\n\t\t\t\twidth: originalWidth,\n\t\t\t\theight: originalHeight,\n\t\t\t\twasResized: false,\n\t\t\t};\n\t\t}\n\n\t\t// Calculate initial dimensions respecting max limits\n\t\tlet targetWidth = originalWidth;\n\t\tlet targetHeight = originalHeight;\n\n\t\tif (targetWidth > opts.maxWidth) {\n\t\t\ttargetHeight = Math.round((targetHeight * opts.maxWidth) / targetWidth);\n\t\t\ttargetWidth = opts.maxWidth;\n\t\t}\n\t\tif (targetHeight > opts.maxHeight) {\n\t\t\ttargetWidth = Math.round((targetWidth * opts.maxHeight) / targetHeight);\n\t\t\ttargetHeight = opts.maxHeight;\n\t\t}\n\n\t\tfunction tryEncodings(width: number, height: number, jpegQualities: number[]): EncodedCandidate[] {\n\t\t\tconst resized = photon!.resize(image!, width, height, photon!.SamplingFilter.Lanczos3);\n\n\t\t\ttry {\n\t\t\t\tconst candidates: EncodedCandidate[] = [encodeCandidate(resized.get_bytes(), \"image/png\")];\n\t\t\t\tfor (const quality of jpegQualities) {\n\t\t\t\t\tcandidates.push(encodeCandidate(resized.get_bytes_jpeg(quality), \"image/jpeg\"));\n\t\t\t\t}\n\t\t\t\treturn candidates;\n\t\t\t} finally {\n\t\t\t\tresized.free();\n\t\t\t}\n\t\t}\n\n\t\tconst qualitySteps = Array.from(new Set([opts.jpegQuality, 85, 70, 55, 40]));\n\t\tlet currentWidth = targetWidth;\n\t\tlet currentHeight = targetHeight;\n\n\t\twhile (true) {\n\t\t\tconst candidates = tryEncodings(currentWidth, currentHeight, qualitySteps);\n\t\t\tfor (const candidate of candidates) {\n\t\t\t\tif (candidate.encodedSize < opts.maxBytes) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: candidate.data,\n\t\t\t\t\t\tmimeType: candidate.mimeType,\n\t\t\t\t\t\toriginalWidth,\n\t\t\t\t\t\toriginalHeight,\n\t\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\t\theight: currentHeight,\n\t\t\t\t\t\twasResized: true,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (currentWidth === 1 && currentHeight === 1) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst nextWidth = currentWidth === 1 ? 1 : Math.max(1, Math.floor(currentWidth * 0.75));\n\t\t\tconst nextHeight = currentHeight === 1 ? 1 : Math.max(1, Math.floor(currentHeight * 0.75));\n\t\t\tif (nextWidth === currentWidth && nextHeight === currentHeight) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcurrentWidth = nextWidth;\n\t\t\tcurrentHeight = nextHeight;\n\t\t}\n\n\t\treturn null;\n\t} catch {\n\t\treturn null;\n\t} finally {\n\t\tif (image) {\n\t\t\timage.free();\n\t\t}\n\t}\n}\n\n/**\n * Format a dimension note for resized images.\n * This helps the model understand the coordinate mapping.\n */\nexport function formatDimensionNote(result: ResizedImage): string | undefined {\n\tif (!result.wasResized) {\n\t\treturn undefined;\n\t}\n\n\tconst scale = result.originalWidth / result.width;\n\treturn `[Image: original ${result.originalWidth}x${result.originalHeight}, displayed at ${result.width}x${result.height}. Multiply coordinates by ${scale.toFixed(2)} to map to original image.]`;\n}\n"]}
@@ -29,8 +29,8 @@ 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";
32
+ import { StringEnum } from "@eminent337/aery-ai";
33
+ import { type ExtensionAPI, getAgentDir, withFileMutationQueue } from "@eminent337/aery";
34
34
  import { type Static, Type } from "@sinclair/typebox";
35
35
 
36
36
  const PROVIDER = "google-antigravity";
@@ -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();
@@ -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", {
@@ -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();
@@ -19,7 +19,7 @@
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
@@ -10,7 +10,7 @@
10
10
  * 3. Use /commands extensions to filter by source
11
11
  */
12
12
 
13
- import type { ExtensionAPI, SlashCommandInfo } from "@aryee/aery";
13
+ import type { ExtensionAPI, SlashCommandInfo } from "@eminent337/aery";
14
14
 
15
15
  export default function commandsExtension(pi: ExtensionAPI) {
16
16
  pi.registerCommand("commands", {
@@ -5,7 +5,7 @@
5
5
  * Demonstrates how to cancel session events using the before_* events.
6
6
  */
7
7
 
8
- import type { ExtensionAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@aryee/aery";
8
+ import type { ExtensionAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@eminent337/aery";
9
9
 
10
10
  export default function (pi: ExtensionAPI) {
11
11
  pi.on("session_before_switch", async (event: SessionBeforeSwitchEvent, ctx) => {
@@ -13,9 +13,9 @@
13
13
  * pi --extension examples/extensions/custom-compaction.ts
14
14
  */
15
15
 
16
- import { complete } from "@aryee/aery-ai";
17
- import type { ExtensionAPI } from "@aryee/aery";
18
- import { convertToLlm, serializeConversation } from "@aryee/aery";
16
+ import { complete } from "@eminent337/aery-ai";
17
+ import type { ExtensionAPI } from "@eminent337/aery";
18
+ import { convertToLlm, serializeConversation } from "@eminent337/aery";
19
19
 
20
20
  export default function (pi: ExtensionAPI) {
21
21
  pi.on("session_before_compact", async (event, ctx) => {
@@ -8,9 +8,9 @@
8
8
  * Token stats come from ctx.sessionManager/ctx.model (already accessible).
9
9
  */
10
10
 
11
- import type { AssistantMessage } from "@aryee/aery-ai";
12
- import type { ExtensionAPI } from "@aryee/aery";
13
- import { truncateToWidth, visibleWidth } from "@aryee/aery-tui";
11
+ import type { AssistantMessage } from "@eminent337/aery-ai";
12
+ import type { ExtensionAPI } from "@eminent337/aery";
13
+ import { truncateToWidth, visibleWidth } from "@eminent337/aery-tui";
14
14
 
15
15
  export default function (pi: ExtensionAPI) {
16
16
  let enabled = false;
@@ -5,8 +5,8 @@
5
5
  * (logo + keybinding hints) with a custom component showing the pi mascot.
6
6
  */
7
7
 
8
- import type { ExtensionAPI, Theme } from "@aryee/aery";
9
- import { VERSION } from "@aryee/aery";
8
+ import type { ExtensionAPI, Theme } from "@eminent337/aery";
9
+ import { VERSION } from "@eminent337/aery";
10
10
 
11
11
  // --- PI MASCOT ---
12
12
  // Based on pi_mascot.ts - the pi agent character
@@ -42,8 +42,8 @@ import {
42
42
  type Tool,
43
43
  type ToolCall,
44
44
  type ToolResultMessage,
45
- } from "@aryee/aery-ai";
46
- import type { ExtensionAPI } from "@aryee/aery";
45
+ } from "@eminent337/aery-ai";
46
+ import type { ExtensionAPI } from "@eminent337/aery";
47
47
 
48
48
  // =============================================================================
49
49
  // OAuth Implementation (copied from packages/ai/src/utils/oauth/anthropic.ts)
@@ -20,8 +20,8 @@ import {
20
20
  type SimpleStreamOptions,
21
21
  streamSimpleAnthropic,
22
22
  streamSimpleOpenAIResponses,
23
- } from "@aryee/aery-ai";
24
- import type { ExtensionAPI } from "@aryee/aery";
23
+ } from "@eminent337/aery-ai";
24
+ import type { ExtensionAPI } from "@eminent337/aery";
25
25
 
26
26
  // =============================================================================
27
27
  // Constants
@@ -8,7 +8,7 @@
8
8
  * npx tsx test.ts claude-sonnet-4-5-20250929 --thinking
9
9
  */
10
10
 
11
- import { type Api, type Context, type Model, registerApiProvider, streamSimple } from "@aryee/aery-ai";
11
+ import { type Api, type Context, type Model, registerApiProvider, streamSimple } from "@eminent337/aery-ai";
12
12
  import { readFileSync } from "fs";
13
13
  import { getAgentDir } from "packages/coding-agent/src/config.js";
14
14
  import { join } from "path";
@@ -9,8 +9,8 @@
9
9
  * # Then /login qwen-cli, or set QWEN_CLI_API_KEY=...
10
10
  */
11
11
 
12
- import type { OAuthCredentials, OAuthLoginCallbacks } from "@aryee/aery-ai";
13
- import type { ExtensionAPI } from "@aryee/aery";
12
+ import type { OAuthCredentials, OAuthLoginCallbacks } from "@eminent337/aery-ai";
13
+ import type { ExtensionAPI } from "@eminent337/aery";
14
14
 
15
15
  // =============================================================================
16
16
  // Constants
@@ -5,7 +5,7 @@
5
5
  * Useful to ensure work is committed before switching context.
6
6
  */
7
7
 
8
- import type { ExtensionAPI, ExtensionContext } from "@aryee/aery";
8
+ import type { ExtensionAPI, ExtensionContext } from "@eminent337/aery";
9
9
 
10
10
  async function checkDirtyRepo(
11
11
  pi: ExtensionAPI,
@@ -5,8 +5,8 @@
5
5
  * Height is calculated from width to maintain DOOM's aspect ratio.
6
6
  */
7
7
 
8
- import type { Component } from "@aryee/aery-tui";
9
- import { isKeyRelease, type TUI } from "@aryee/aery-tui";
8
+ import type { Component } from "@eminent337/aery-tui";
9
+ import { isKeyRelease, type TUI } from "@eminent337/aery-tui";
10
10
  import type { DoomEngine } from "./doom-engine.js";
11
11
  import { DoomKeys, mapKeyToDoom } from "./doom-keys.js";
12
12
 
@@ -34,7 +34,7 @@ export const DoomKeys = {
34
34
  KEY_RALT: 0x80 + 0x38,
35
35
  } as const;
36
36
 
37
- import { Key, matchesKey, parseKey } from "@aryee/aery-tui";
37
+ import { Key, matchesKey, parseKey } from "@eminent337/aery-tui";
38
38
 
39
39
  /**
40
40
  * Map terminal key input to DOOM key codes
@@ -9,7 +9,7 @@
9
9
  * This demonstrates that overlays can handle real-time game rendering at 35 FPS.
10
10
  */
11
11
 
12
- import type { ExtensionAPI } from "@aryee/aery";
12
+ import type { ExtensionAPI } from "@eminent337/aery";
13
13
  import { DoomOverlayComponent } from "./doom-component.js";
14
14
  import { DoomEngine } from "./doom-engine.js";
15
15
  import { ensureWadFile } from "./wad-finder.js";
@@ -1,6 +1,6 @@
1
1
  import { dirname, join } from "node:path";
2
2
  import { fileURLToPath } from "node:url";
3
- import type { ExtensionAPI } from "@aryee/aery";
3
+ import type { ExtensionAPI } from "@eminent337/aery";
4
4
 
5
5
  const baseDir = dirname(fileURLToPath(import.meta.url));
6
6
 
@@ -7,7 +7,7 @@
7
7
  * - Registers additional tools at runtime via /add-echo-tool <name>
8
8
  */
9
9
 
10
- import type { ExtensionAPI } from "@aryee/aery";
10
+ import type { ExtensionAPI } from "@eminent337/aery";
11
11
  import { Type } from "@sinclair/typebox";
12
12
 
13
13
  const ECHO_PARAMS = Type.Object({
@@ -7,7 +7,7 @@
7
7
  * Usage: /emit [event-name] [data] - emit an event on the bus
8
8
  */
9
9
 
10
- import type { ExtensionAPI, ExtensionContext } from "@aryee/aery";
10
+ import type { ExtensionAPI, ExtensionContext } from "@eminent337/aery";
11
11
 
12
12
  export default function (pi: ExtensionAPI) {
13
13
  // Store ctx for use in event handler
@@ -9,7 +9,7 @@
9
9
  */
10
10
 
11
11
  import * as fs from "node:fs";
12
- import type { ExtensionAPI } from "@aryee/aery";
12
+ import type { ExtensionAPI } from "@eminent337/aery";
13
13
 
14
14
  export default function (pi: ExtensionAPI) {
15
15
  pi.on("session_start", async (_event, ctx) => {
@@ -5,7 +5,7 @@
5
5
  * When forking, offers to restore code to that point in history.
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
  const checkpoints = new Map<string, string>();
@@ -12,9 +12,9 @@
12
12
  * The generated prompt appears as a draft in the editor for review/editing.
13
13
  */
14
14
 
15
- import { complete, type Message } from "@aryee/aery-ai";
16
- import type { ExtensionAPI, SessionEntry } from "@aryee/aery";
17
- import { BorderedLoader, convertToLlm, serializeConversation } from "@aryee/aery";
15
+ import { complete, type Message } from "@eminent337/aery-ai";
16
+ import type { ExtensionAPI, SessionEntry } from "@eminent337/aery";
17
+ import { BorderedLoader, convertToLlm, serializeConversation } from "@eminent337/aery";
18
18
 
19
19
  const SYSTEM_PROMPT = `You are a context transfer assistant. Given a conversation history and the user's goal for a new thread, generate a focused prompt that:
20
20
 
@@ -2,8 +2,8 @@
2
2
  * Hello Tool - Minimal custom tool example
3
3
  */
4
4
 
5
- import { Type } from "@aryee/aery-ai";
6
- import { defineTool, type ExtensionAPI } from "@aryee/aery";
5
+ import { Type } from "@eminent337/aery-ai";
6
+ import { defineTool, type ExtensionAPI } from "@eminent337/aery";
7
7
 
8
8
  const helloTool = defineTool({
9
9
  name: "hello",
@@ -18,7 +18,7 @@
18
18
  * /thinking-label Reset to the default label
19
19
  */
20
20
 
21
- import type { ExtensionAPI, ExtensionContext } from "@aryee/aery";
21
+ import type { ExtensionAPI, ExtensionContext } from "@eminent337/aery";
22
22
 
23
23
  const DEFAULT_LABEL = "Pondering...";
24
24
 
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * Note: Regular !command syntax (whole-line bash) is preserved and works as before.
16
16
  */
17
- import type { ExtensionAPI } from "@aryee/aery";
17
+ import type { ExtensionAPI } from "@eminent337/aery";
18
18
 
19
19
  export default function (pi: ExtensionAPI) {
20
20
  const PATTERN = /!\{([^}]+)\}/g;
@@ -9,7 +9,7 @@
9
9
  * ping → "pong" (instant, no LLM)
10
10
  * time → current time (instant, no LLM)
11
11
  */
12
- import type { ExtensionAPI } from "@aryee/aery";
12
+ import type { ExtensionAPI } from "@eminent337/aery";
13
13
 
14
14
  export default function (pi: ExtensionAPI) {
15
15
  pi.on("input", async (event, ctx) => {
@@ -21,7 +21,7 @@
21
21
  */
22
22
 
23
23
  import { spawnSync } from "node:child_process";
24
- import type { ExtensionAPI } from "@aryee/aery";
24
+ import type { ExtensionAPI } from "@eminent337/aery";
25
25
 
26
26
  // Default interactive commands - editors, pagers, git ops, TUIs
27
27
  const DEFAULT_INTERACTIVE_COMMANDS = [
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { exec } from "node:child_process";
9
9
  import { promisify } from "node:util";
10
- import type { ExtensionAPI } from "@aryee/aery";
10
+ import type { ExtensionAPI } from "@eminent337/aery";
11
11
 
12
12
  const execAsync = promisify(exec);
13
13
 
@@ -7,8 +7,8 @@
7
7
  * Usage: /status [message] - sends a status message with custom rendering
8
8
  */
9
9
 
10
- import type { ExtensionAPI } from "@aryee/aery";
11
- import { Box, Text } from "@aryee/aery-tui";
10
+ import type { ExtensionAPI } from "@eminent337/aery";
11
+ import { Box, Text } from "@eminent337/aery-tui";
12
12
 
13
13
  export default function (pi: ExtensionAPI) {
14
14
  // Register custom renderer for "status-update" messages
@@ -16,7 +16,7 @@
16
16
  * Then use ctrl+o to toggle between minimal (collapsed) and full (expanded) views.
17
17
  */
18
18
 
19
- import type { ExtensionAPI } from "@aryee/aery";
19
+ import type { ExtensionAPI } from "@eminent337/aery";
20
20
  import {
21
21
  createBashTool,
22
22
  createEditTool,
@@ -25,8 +25,8 @@ import {
25
25
  createLsTool,
26
26
  createReadTool,
27
27
  createWriteTool,
28
- } from "@aryee/aery";
29
- import { Text } from "@aryee/aery-tui";
28
+ } from "@eminent337/aery";
29
+ import { Text } from "@eminent337/aery-tui";
30
30
  import { homedir } from "os";
31
31
 
32
32
  /**
@@ -9,8 +9,8 @@
9
9
  * - ctrl+c, ctrl+d, etc. work in both modes
10
10
  */
11
11
 
12
- import { CustomEditor, type ExtensionAPI } from "@aryee/aery";
13
- import { matchesKey, truncateToWidth, visibleWidth } from "@aryee/aery-tui";
12
+ import { CustomEditor, type ExtensionAPI } from "@eminent337/aery";
13
+ import { matchesKey, truncateToWidth, visibleWidth } from "@eminent337/aery-tui";
14
14
 
15
15
  // Normal mode key mappings: key -> escape sequence (or null for mode switch)
16
16
  const NORMAL_KEYS: Record<string, string | null> = {
@@ -7,7 +7,7 @@
7
7
  * Usage: pi -e ./model-status.ts
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.on("model_select", async (event, ctx) => {
@@ -8,7 +8,7 @@
8
8
  * - Windows toast: Windows Terminal (WSL)
9
9
  */
10
10
 
11
- import type { ExtensionAPI } from "@aryee/aery";
11
+ import type { ExtensionAPI } from "@eminent337/aery";
12
12
 
13
13
  function windowsToastScript(title: string, body: string): string {
14
14
  const type = "Windows.UI.Notifications";
@@ -19,9 +19,9 @@
19
19
  * /overlay-streaming - Multiple input panels with simulated streaming (Tab to cycle focus)
20
20
  */
21
21
 
22
- import type { ExtensionAPI, ExtensionCommandContext, Theme } from "@aryee/aery";
23
- import type { Component, OverlayAnchor, OverlayHandle, OverlayOptions, TUI } from "@aryee/aery-tui";
24
- import { matchesKey, truncateToWidth, visibleWidth } from "@aryee/aery-tui";
22
+ import type { ExtensionAPI, ExtensionCommandContext, Theme } from "@eminent337/aery";
23
+ import type { Component, OverlayAnchor, OverlayHandle, OverlayOptions, TUI } from "@eminent337/aery-tui";
24
+ import { matchesKey, truncateToWidth, visibleWidth } from "@eminent337/aery-tui";
25
25
  import { spawn } from "child_process";
26
26
 
27
27
  // Global handle for toggle demo (in real code, use a more elegant pattern)
@@ -8,8 +8,8 @@
8
8
  * - Edge case tests (wide chars, styled text, emoji)
9
9
  */
10
10
 
11
- import type { ExtensionAPI, ExtensionCommandContext, Theme } from "@aryee/aery";
12
- import { CURSOR_MARKER, type Focusable, matchesKey, visibleWidth } from "@aryee/aery-tui";
11
+ import type { ExtensionAPI, ExtensionCommandContext, Theme } from "@eminent337/aery";
12
+ import { CURSOR_MARKER, type Focusable, matchesKey, visibleWidth } from "@eminent337/aery-tui";
13
13
 
14
14
  export default function (pi: ExtensionAPI) {
15
15
  pi.registerCommand("overlay-test", {
@@ -5,7 +5,7 @@
5
5
  * Patterns checked: rm -rf, sudo, chmod/chown 777
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
  const dangerousPatterns = [/\brm\s+(-rf?|--recursive)/i, /\bsudo\b/i, /\b(chmod|chown)\b.*777/i];
@@ -10,7 +10,7 @@
10
10
  * 3. When enabled, the agent will respond like a pirate
11
11
  */
12
12
 
13
- import type { ExtensionAPI } from "@aryee/aery";
13
+ import type { ExtensionAPI } from "@eminent337/aery";
14
14
 
15
15
  export default function pirateExtension(pi: ExtensionAPI) {
16
16
  let pirateMode = false;
@@ -12,10 +12,10 @@
12
12
  * - Progress tracking widget during execution
13
13
  */
14
14
 
15
- import type { AgentMessage } from "@aryee/aery-core";
16
- import type { AssistantMessage, TextContent } from "@aryee/aery-ai";
17
- import type { ExtensionAPI, ExtensionContext } from "@aryee/aery";
18
- import { Key } from "@aryee/aery-tui";
15
+ import type { AgentMessage } from "@eminent337/aery-core";
16
+ import type { AssistantMessage, TextContent } from "@eminent337/aery-ai";
17
+ import type { ExtensionAPI, ExtensionContext } from "@eminent337/aery";
18
+ import { Key } from "@eminent337/aery-tui";
19
19
  import { extractTodoItems, isSafeCommand, markCompletedSteps, type TodoItem } from "./utils.js";
20
20
 
21
21
  // Tools
@@ -40,10 +40,10 @@
40
40
 
41
41
  import { existsSync, readFileSync } from "node:fs";
42
42
  import { join } from "node:path";
43
- import type { Api, Model } from "@aryee/aery-ai";
44
- import type { ExtensionAPI, ExtensionContext } from "@aryee/aery";
45
- import { DynamicBorder, getAgentDir } from "@aryee/aery";
46
- import { Container, Key, type SelectItem, SelectList, Text } from "@aryee/aery-tui";
43
+ import type { Api, Model } from "@eminent337/aery-ai";
44
+ import type { ExtensionAPI, ExtensionContext } from "@eminent337/aery";
45
+ import { DynamicBorder, getAgentDir } from "@eminent337/aery";
46
+ import { Container, Key, type SelectItem, SelectList, Text } from "@eminent337/aery-tui";
47
47
 
48
48
  // Preset configuration
49
49
  interface Preset {
@@ -5,7 +5,7 @@
5
5
  * Useful for preventing accidental modifications to sensitive files.
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
  const protectedPaths = [".env", ".git/", "node_modules/"];
@@ -1,6 +1,6 @@
1
1
  import { appendFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import type { ExtensionAPI } from "@aryee/aery";
3
+ import type { ExtensionAPI } from "@eminent337/aery";
4
4
 
5
5
  export default function (pi: ExtensionAPI) {
6
6
  const logFile = join(process.cwd(), ".pi", "provider-payload.log");
@@ -7,9 +7,9 @@
7
7
  * 3. Loads the result into the editor for user to fill in answers
8
8
  */
9
9
 
10
- import { complete, type UserMessage } from "@aryee/aery-ai";
11
- import type { ExtensionAPI } from "@aryee/aery";
12
- import { BorderedLoader } from "@aryee/aery";
10
+ import { complete, type UserMessage } from "@eminent337/aery-ai";
11
+ import type { ExtensionAPI } from "@eminent337/aery";
12
+ import { BorderedLoader } from "@eminent337/aery";
13
13
 
14
14
  const SYSTEM_PROMPT = `You are a question extractor. Given text from a conversation, extract any questions that need answering and format them for the user to fill in.
15
15
 
@@ -4,8 +4,8 @@
4
4
  * Escape in editor returns to options, Escape in options cancels
5
5
  */
6
6
 
7
- import type { ExtensionAPI } from "@aryee/aery";
8
- import { Editor, type EditorTheme, Key, matchesKey, Text, truncateToWidth } from "@aryee/aery-tui";
7
+ import type { ExtensionAPI } from "@eminent337/aery";
8
+ import { Editor, type EditorTheme, Key, matchesKey, Text, truncateToWidth } from "@eminent337/aery-tui";
9
9
  import { Type } from "@sinclair/typebox";
10
10
 
11
11
  interface OptionWithDesc {
@@ -5,8 +5,8 @@
5
5
  * Multiple questions: tab bar navigation between questions
6
6
  */
7
7
 
8
- import type { ExtensionAPI } from "@aryee/aery";
9
- import { Editor, type EditorTheme, Key, matchesKey, Text, truncateToWidth } from "@aryee/aery-tui";
8
+ import type { ExtensionAPI } from "@eminent337/aery";
9
+ import { Editor, type EditorTheme, Key, matchesKey, Text, truncateToWidth } from "@eminent337/aery-tui";
10
10
  import { Type } from "@sinclair/typebox";
11
11
 
12
12
  // Types
@@ -4,7 +4,7 @@
4
4
  * Usage: pi --extension ./examples/extensions/rainbow-editor.ts
5
5
  */
6
6
 
7
- import { CustomEditor, type ExtensionAPI } from "@aryee/aery";
7
+ import { CustomEditor, type ExtensionAPI } from "@eminent337/aery";
8
8
 
9
9
  // Base colors (coral → yellow → green → teal → blue → purple → pink)
10
10
  const COLORS: [number, number, number][] = [
@@ -5,7 +5,7 @@
5
5
  * tool that queues a follow-up command to trigger reload.
6
6
  */
7
7
 
8
- import type { ExtensionAPI } from "@aryee/aery";
8
+ import type { ExtensionAPI } from "@eminent337/aery";
9
9
  import { Type } from "@sinclair/typebox";
10
10
 
11
11
  export default function (pi: ExtensionAPI) {