@agentuity/cli 0.0.50 → 0.0.52

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 (578) hide show
  1. package/AGENTS.md +17 -4
  2. package/README.md +26 -8
  3. package/dist/api.js +68 -0
  4. package/dist/api.js.map +1 -0
  5. package/dist/auth.js +225 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/banner.js +35 -0
  8. package/dist/banner.js.map +1 -0
  9. package/dist/cli-logger.js +72 -0
  10. package/dist/cli-logger.js.map +1 -0
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +822 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/cmd/{capabilities → ai/capabilities}/index.d.ts +1 -1
  15. package/dist/cmd/ai/capabilities/index.d.ts.map +1 -0
  16. package/dist/cmd/ai/capabilities/index.js +10 -0
  17. package/dist/cmd/ai/capabilities/index.js.map +1 -0
  18. package/dist/cmd/{capabilities → ai/capabilities}/show.d.ts +1 -1
  19. package/dist/cmd/ai/capabilities/show.d.ts.map +1 -0
  20. package/dist/cmd/ai/capabilities/show.js +221 -0
  21. package/dist/cmd/ai/capabilities/show.js.map +1 -0
  22. package/dist/cmd/ai/index.d.ts.map +1 -0
  23. package/dist/cmd/ai/index.js +11 -0
  24. package/dist/cmd/ai/index.js.map +1 -0
  25. package/dist/cmd/ai/prompt/index.d.ts +4 -0
  26. package/dist/cmd/ai/prompt/index.d.ts.map +1 -0
  27. package/dist/cmd/ai/prompt/index.js +10 -0
  28. package/dist/cmd/ai/prompt/index.js.map +1 -0
  29. package/dist/cmd/ai/prompt/llm.d.ts +3 -0
  30. package/dist/cmd/ai/prompt/llm.d.ts.map +1 -0
  31. package/dist/cmd/ai/prompt/llm.js +365 -0
  32. package/dist/cmd/ai/prompt/llm.js.map +1 -0
  33. package/dist/cmd/ai/schema/index.d.ts +4 -0
  34. package/dist/cmd/ai/schema/index.d.ts.map +1 -0
  35. package/dist/cmd/ai/schema/index.js +10 -0
  36. package/dist/cmd/ai/schema/index.js.map +1 -0
  37. package/dist/cmd/ai/schema/show.d.ts +3 -0
  38. package/dist/cmd/ai/schema/show.d.ts.map +1 -0
  39. package/dist/cmd/ai/schema/show.js +23 -0
  40. package/dist/cmd/ai/schema/show.js.map +1 -0
  41. package/dist/cmd/auth/api.js +85 -0
  42. package/dist/cmd/auth/api.js.map +1 -0
  43. package/dist/cmd/auth/index.js +13 -0
  44. package/dist/cmd/auth/index.js.map +1 -0
  45. package/dist/cmd/auth/login.js +84 -0
  46. package/dist/cmd/auth/login.js.map +1 -0
  47. package/dist/cmd/auth/logout.js +17 -0
  48. package/dist/cmd/auth/logout.js.map +1 -0
  49. package/dist/cmd/auth/signup.js +55 -0
  50. package/dist/cmd/auth/signup.js.map +1 -0
  51. package/dist/cmd/auth/ssh/add.js +239 -0
  52. package/dist/cmd/auth/ssh/add.js.map +1 -0
  53. package/dist/cmd/auth/ssh/api.js +53 -0
  54. package/dist/cmd/auth/ssh/api.js.map +1 -0
  55. package/dist/cmd/auth/ssh/delete.js +126 -0
  56. package/dist/cmd/auth/ssh/delete.js.map +1 -0
  57. package/dist/cmd/auth/ssh/index.js +11 -0
  58. package/dist/cmd/auth/ssh/index.js.map +1 -0
  59. package/dist/cmd/auth/ssh/list.js +70 -0
  60. package/dist/cmd/auth/ssh/list.js.map +1 -0
  61. package/dist/cmd/auth/whoami.js +68 -0
  62. package/dist/cmd/auth/whoami.js.map +1 -0
  63. package/dist/cmd/build/ast.d.ts.map +1 -0
  64. package/dist/cmd/build/ast.js +608 -0
  65. package/dist/cmd/build/ast.js.map +1 -0
  66. package/dist/cmd/{bundle → build}/ast.test.d.ts.map +1 -1
  67. package/dist/cmd/build/ast.test.js +389 -0
  68. package/dist/cmd/build/ast.test.js.map +1 -0
  69. package/dist/cmd/build/bundler.d.ts.map +1 -0
  70. package/dist/cmd/build/bundler.js +304 -0
  71. package/dist/cmd/build/bundler.js.map +1 -0
  72. package/dist/cmd/build/file.d.ts.map +1 -0
  73. package/dist/cmd/build/file.js +10 -0
  74. package/dist/cmd/build/file.js.map +1 -0
  75. package/dist/cmd/build/fix-duplicate-exports.d.ts.map +1 -0
  76. package/dist/cmd/build/fix-duplicate-exports.js +167 -0
  77. package/dist/cmd/build/fix-duplicate-exports.js.map +1 -0
  78. package/dist/cmd/build/fix-duplicate-exports.test.d.ts.map +1 -0
  79. package/dist/cmd/build/fix-duplicate-exports.test.js +300 -0
  80. package/dist/cmd/build/fix-duplicate-exports.test.js.map +1 -0
  81. package/dist/cmd/build/index.d.ts.map +1 -0
  82. package/dist/cmd/build/index.js +79 -0
  83. package/dist/cmd/build/index.js.map +1 -0
  84. package/dist/cmd/build/patch/_util.d.ts.map +1 -0
  85. package/dist/cmd/build/patch/_util.js +42 -0
  86. package/dist/cmd/build/patch/_util.js.map +1 -0
  87. package/dist/cmd/build/patch/aisdk.d.ts.map +1 -0
  88. package/dist/cmd/build/patch/aisdk.js +65 -0
  89. package/dist/cmd/build/patch/aisdk.js.map +1 -0
  90. package/dist/cmd/build/patch/index.d.ts.map +1 -0
  91. package/dist/cmd/build/patch/index.js +97 -0
  92. package/dist/cmd/build/patch/index.js.map +1 -0
  93. package/dist/cmd/build/patch/llm.d.ts.map +1 -0
  94. package/dist/cmd/build/patch/llm.js +18 -0
  95. package/dist/cmd/build/patch/llm.js.map +1 -0
  96. package/dist/cmd/build/plugin.d.ts.map +1 -0
  97. package/dist/cmd/build/plugin.js +556 -0
  98. package/dist/cmd/build/plugin.js.map +1 -0
  99. package/dist/cmd/cloud/agents/index.d.ts +3 -0
  100. package/dist/cmd/cloud/agents/index.d.ts.map +1 -0
  101. package/dist/cmd/cloud/agents/index.js +133 -0
  102. package/dist/cmd/cloud/agents/index.js.map +1 -0
  103. package/dist/cmd/cloud/deploy.js +341 -0
  104. package/dist/cmd/cloud/deploy.js.map +1 -0
  105. package/dist/cmd/cloud/deployment/index.js +20 -0
  106. package/dist/cmd/cloud/deployment/index.js.map +1 -0
  107. package/dist/cmd/cloud/deployment/list.js +89 -0
  108. package/dist/cmd/cloud/deployment/list.js.map +1 -0
  109. package/dist/cmd/cloud/deployment/remove.js +60 -0
  110. package/dist/cmd/cloud/deployment/remove.js.map +1 -0
  111. package/dist/cmd/cloud/deployment/rollback.js +80 -0
  112. package/dist/cmd/cloud/deployment/rollback.js.map +1 -0
  113. package/dist/cmd/cloud/deployment/show.js +106 -0
  114. package/dist/cmd/cloud/deployment/show.js.map +1 -0
  115. package/dist/cmd/cloud/deployment/undeploy.js +45 -0
  116. package/dist/cmd/cloud/deployment/undeploy.js.map +1 -0
  117. package/dist/cmd/cloud/deployment/utils.js +10 -0
  118. package/dist/cmd/cloud/deployment/utils.js.map +1 -0
  119. package/dist/cmd/cloud/domain.js +77 -0
  120. package/dist/cmd/cloud/domain.js.map +1 -0
  121. package/dist/cmd/cloud/env/delete.d.ts +2 -0
  122. package/dist/cmd/cloud/env/delete.d.ts.map +1 -0
  123. package/dist/cmd/cloud/env/delete.js +50 -0
  124. package/dist/cmd/cloud/env/delete.js.map +1 -0
  125. package/dist/cmd/cloud/env/get.d.ts +2 -0
  126. package/dist/cmd/cloud/env/get.d.ts.map +1 -0
  127. package/dist/cmd/cloud/env/get.js +65 -0
  128. package/dist/cmd/cloud/env/get.js.map +1 -0
  129. package/dist/cmd/cloud/env/import.d.ts +2 -0
  130. package/dist/cmd/cloud/env/import.d.ts.map +1 -0
  131. package/dist/cmd/cloud/env/import.js +113 -0
  132. package/dist/cmd/cloud/env/import.js.map +1 -0
  133. package/dist/cmd/cloud/env/index.d.ts +3 -0
  134. package/dist/cmd/cloud/env/index.d.ts.map +1 -0
  135. package/dist/cmd/cloud/env/index.js +24 -0
  136. package/dist/cmd/cloud/env/index.js.map +1 -0
  137. package/dist/cmd/cloud/env/list.d.ts +2 -0
  138. package/dist/cmd/cloud/env/list.d.ts.map +1 -0
  139. package/dist/cmd/cloud/env/list.js +58 -0
  140. package/dist/cmd/cloud/env/list.js.map +1 -0
  141. package/dist/cmd/cloud/env/pull.d.ts +2 -0
  142. package/dist/cmd/cloud/env/pull.d.ts.map +1 -0
  143. package/dist/cmd/cloud/env/pull.js +81 -0
  144. package/dist/cmd/cloud/env/pull.js.map +1 -0
  145. package/dist/cmd/cloud/env/push.d.ts +2 -0
  146. package/dist/cmd/cloud/env/push.d.ts.map +1 -0
  147. package/dist/cmd/cloud/env/push.js +61 -0
  148. package/dist/cmd/cloud/env/push.js.map +1 -0
  149. package/dist/cmd/cloud/env/set.d.ts +2 -0
  150. package/dist/cmd/cloud/env/set.d.ts.map +1 -0
  151. package/dist/cmd/cloud/env/set.js +73 -0
  152. package/dist/cmd/cloud/env/set.js.map +1 -0
  153. package/dist/cmd/cloud/index.d.ts.map +1 -1
  154. package/dist/cmd/cloud/index.js +31 -0
  155. package/dist/cmd/cloud/index.js.map +1 -0
  156. package/dist/cmd/cloud/keyvalue/create-namespace.d.ts +3 -0
  157. package/dist/cmd/cloud/keyvalue/create-namespace.d.ts.map +1 -0
  158. package/dist/cmd/cloud/keyvalue/create-namespace.js +41 -0
  159. package/dist/cmd/cloud/keyvalue/create-namespace.js.map +1 -0
  160. package/dist/cmd/cloud/keyvalue/delete-namespace.d.ts +3 -0
  161. package/dist/cmd/cloud/keyvalue/delete-namespace.d.ts.map +1 -0
  162. package/dist/cmd/cloud/keyvalue/delete-namespace.js +64 -0
  163. package/dist/cmd/cloud/keyvalue/delete-namespace.js.map +1 -0
  164. package/dist/cmd/cloud/keyvalue/delete.d.ts +3 -0
  165. package/dist/cmd/cloud/keyvalue/delete.d.ts.map +1 -0
  166. package/dist/cmd/cloud/keyvalue/delete.js +47 -0
  167. package/dist/cmd/cloud/keyvalue/delete.js.map +1 -0
  168. package/dist/cmd/cloud/keyvalue/get.d.ts +3 -0
  169. package/dist/cmd/cloud/keyvalue/get.d.ts.map +1 -0
  170. package/dist/cmd/cloud/keyvalue/get.js +65 -0
  171. package/dist/cmd/cloud/keyvalue/get.js.map +1 -0
  172. package/dist/cmd/cloud/keyvalue/index.d.ts +3 -0
  173. package/dist/cmd/cloud/keyvalue/index.d.ts.map +1 -0
  174. package/dist/cmd/cloud/keyvalue/index.js +32 -0
  175. package/dist/cmd/cloud/keyvalue/index.js.map +1 -0
  176. package/dist/cmd/cloud/keyvalue/keys.d.ts +3 -0
  177. package/dist/cmd/cloud/keyvalue/keys.d.ts.map +1 -0
  178. package/dist/cmd/cloud/keyvalue/keys.js +50 -0
  179. package/dist/cmd/cloud/keyvalue/keys.js.map +1 -0
  180. package/dist/cmd/cloud/keyvalue/list-namespaces.d.ts +3 -0
  181. package/dist/cmd/cloud/keyvalue/list-namespaces.d.ts.map +1 -0
  182. package/dist/cmd/cloud/keyvalue/list-namespaces.js +37 -0
  183. package/dist/cmd/cloud/keyvalue/list-namespaces.js.map +1 -0
  184. package/dist/cmd/cloud/keyvalue/repl.d.ts +3 -0
  185. package/dist/cmd/cloud/keyvalue/repl.d.ts.map +1 -0
  186. package/dist/cmd/cloud/keyvalue/repl.js +277 -0
  187. package/dist/cmd/cloud/keyvalue/repl.js.map +1 -0
  188. package/dist/cmd/cloud/keyvalue/search.d.ts +3 -0
  189. package/dist/cmd/cloud/keyvalue/search.d.ts.map +1 -0
  190. package/dist/cmd/cloud/keyvalue/search.js +72 -0
  191. package/dist/cmd/cloud/keyvalue/search.js.map +1 -0
  192. package/dist/cmd/cloud/keyvalue/set.d.ts +3 -0
  193. package/dist/cmd/cloud/keyvalue/set.d.ts.map +1 -0
  194. package/dist/cmd/cloud/keyvalue/set.js +59 -0
  195. package/dist/cmd/cloud/keyvalue/set.js.map +1 -0
  196. package/dist/cmd/cloud/keyvalue/stats.d.ts +3 -0
  197. package/dist/cmd/cloud/keyvalue/stats.d.ts.map +1 -0
  198. package/dist/cmd/cloud/keyvalue/stats.js +82 -0
  199. package/dist/cmd/cloud/keyvalue/stats.js.map +1 -0
  200. package/dist/cmd/{kv → cloud/keyvalue}/util.d.ts +1 -1
  201. package/dist/cmd/cloud/keyvalue/util.d.ts.map +1 -0
  202. package/dist/cmd/cloud/keyvalue/util.js +19 -0
  203. package/dist/cmd/cloud/keyvalue/util.js.map +1 -0
  204. package/dist/cmd/cloud/objectstore/delete-bucket.d.ts +3 -0
  205. package/dist/cmd/cloud/objectstore/delete-bucket.d.ts.map +1 -0
  206. package/dist/cmd/cloud/objectstore/delete-bucket.js +66 -0
  207. package/dist/cmd/cloud/objectstore/delete-bucket.js.map +1 -0
  208. package/dist/cmd/cloud/objectstore/delete.d.ts +3 -0
  209. package/dist/cmd/cloud/objectstore/delete.d.ts.map +1 -0
  210. package/dist/cmd/cloud/objectstore/delete.js +56 -0
  211. package/dist/cmd/cloud/objectstore/delete.js.map +1 -0
  212. package/dist/cmd/cloud/objectstore/get.d.ts +3 -0
  213. package/dist/cmd/cloud/objectstore/get.d.ts.map +1 -0
  214. package/dist/cmd/cloud/objectstore/get.js +64 -0
  215. package/dist/cmd/cloud/objectstore/get.js.map +1 -0
  216. package/dist/cmd/cloud/objectstore/index.d.ts +3 -0
  217. package/dist/cmd/cloud/objectstore/index.d.ts.map +1 -0
  218. package/dist/cmd/cloud/objectstore/index.js +28 -0
  219. package/dist/cmd/cloud/objectstore/index.js.map +1 -0
  220. package/dist/cmd/cloud/objectstore/list-buckets.d.ts +3 -0
  221. package/dist/cmd/cloud/objectstore/list-buckets.d.ts.map +1 -0
  222. package/dist/cmd/cloud/objectstore/list-buckets.js +37 -0
  223. package/dist/cmd/cloud/objectstore/list-buckets.js.map +1 -0
  224. package/dist/cmd/cloud/objectstore/list-keys.d.ts +3 -0
  225. package/dist/cmd/cloud/objectstore/list-keys.d.ts.map +1 -0
  226. package/dist/cmd/cloud/objectstore/list-keys.js +52 -0
  227. package/dist/cmd/cloud/objectstore/list-keys.js.map +1 -0
  228. package/dist/cmd/cloud/objectstore/put.d.ts +3 -0
  229. package/dist/cmd/cloud/objectstore/put.d.ts.map +1 -0
  230. package/dist/cmd/cloud/objectstore/put.js +57 -0
  231. package/dist/cmd/cloud/objectstore/put.js.map +1 -0
  232. package/dist/cmd/cloud/objectstore/repl.d.ts +3 -0
  233. package/dist/cmd/cloud/objectstore/repl.d.ts.map +1 -0
  234. package/dist/cmd/cloud/objectstore/repl.js +219 -0
  235. package/dist/cmd/cloud/objectstore/repl.js.map +1 -0
  236. package/dist/cmd/cloud/objectstore/url.d.ts +3 -0
  237. package/dist/cmd/cloud/objectstore/url.d.ts.map +1 -0
  238. package/dist/cmd/cloud/objectstore/url.js +55 -0
  239. package/dist/cmd/cloud/objectstore/url.js.map +1 -0
  240. package/dist/cmd/{objectstore → cloud/objectstore}/util.d.ts +1 -1
  241. package/dist/cmd/cloud/objectstore/util.d.ts.map +1 -0
  242. package/dist/cmd/cloud/objectstore/util.js +18 -0
  243. package/dist/cmd/cloud/objectstore/util.js.map +1 -0
  244. package/dist/cmd/cloud/resource/add.js +70 -0
  245. package/dist/cmd/cloud/resource/add.js.map +1 -0
  246. package/dist/cmd/cloud/resource/delete.js +126 -0
  247. package/dist/cmd/cloud/resource/delete.js.map +1 -0
  248. package/dist/cmd/cloud/resource/index.js +12 -0
  249. package/dist/cmd/cloud/resource/index.js.map +1 -0
  250. package/dist/cmd/cloud/resource/list.js +89 -0
  251. package/dist/cmd/cloud/resource/list.js.map +1 -0
  252. package/dist/cmd/cloud/scp/download.js +72 -0
  253. package/dist/cmd/cloud/scp/download.js.map +1 -0
  254. package/dist/cmd/cloud/scp/index.js +10 -0
  255. package/dist/cmd/cloud/scp/index.js.map +1 -0
  256. package/dist/cmd/cloud/scp/upload.js +75 -0
  257. package/dist/cmd/cloud/scp/upload.js.map +1 -0
  258. package/dist/cmd/cloud/secret/delete.d.ts +2 -0
  259. package/dist/cmd/cloud/secret/delete.d.ts.map +1 -0
  260. package/dist/cmd/cloud/secret/delete.js +50 -0
  261. package/dist/cmd/cloud/secret/delete.js.map +1 -0
  262. package/dist/cmd/cloud/secret/get.d.ts +2 -0
  263. package/dist/cmd/cloud/secret/get.d.ts.map +1 -0
  264. package/dist/cmd/cloud/secret/get.js +69 -0
  265. package/dist/cmd/cloud/secret/get.js.map +1 -0
  266. package/dist/cmd/cloud/secret/import.d.ts +2 -0
  267. package/dist/cmd/cloud/secret/import.d.ts.map +1 -0
  268. package/dist/cmd/cloud/secret/import.js +88 -0
  269. package/dist/cmd/cloud/secret/import.js.map +1 -0
  270. package/dist/cmd/cloud/secret/index.d.ts +3 -0
  271. package/dist/cmd/cloud/secret/index.d.ts.map +1 -0
  272. package/dist/cmd/cloud/secret/index.js +24 -0
  273. package/dist/cmd/cloud/secret/index.js.map +1 -0
  274. package/dist/cmd/cloud/secret/list.d.ts +2 -0
  275. package/dist/cmd/cloud/secret/list.d.ts.map +1 -0
  276. package/dist/cmd/cloud/secret/list.js +58 -0
  277. package/dist/cmd/cloud/secret/list.js.map +1 -0
  278. package/dist/cmd/cloud/secret/pull.d.ts +2 -0
  279. package/dist/cmd/cloud/secret/pull.d.ts.map +1 -0
  280. package/dist/cmd/cloud/secret/pull.js +81 -0
  281. package/dist/cmd/cloud/secret/pull.js.map +1 -0
  282. package/dist/cmd/cloud/secret/push.d.ts +2 -0
  283. package/dist/cmd/cloud/secret/push.d.ts.map +1 -0
  284. package/dist/cmd/cloud/secret/push.js +61 -0
  285. package/dist/cmd/cloud/secret/push.js.map +1 -0
  286. package/dist/cmd/cloud/secret/set.d.ts +2 -0
  287. package/dist/cmd/cloud/secret/set.d.ts.map +1 -0
  288. package/dist/cmd/cloud/secret/set.js +57 -0
  289. package/dist/cmd/cloud/secret/set.js.map +1 -0
  290. package/dist/cmd/cloud/session/get.d.ts.map +1 -1
  291. package/dist/cmd/cloud/session/get.js +155 -0
  292. package/dist/cmd/cloud/session/get.js.map +1 -0
  293. package/dist/cmd/cloud/session/index.js +11 -0
  294. package/dist/cmd/cloud/session/index.js.map +1 -0
  295. package/dist/cmd/cloud/session/list.js +132 -0
  296. package/dist/cmd/cloud/session/list.js.map +1 -0
  297. package/dist/cmd/cloud/session/logs.js +56 -0
  298. package/dist/cmd/cloud/session/logs.js.map +1 -0
  299. package/dist/cmd/cloud/ssh.js +67 -0
  300. package/dist/cmd/cloud/ssh.js.map +1 -0
  301. package/dist/cmd/dev/agents.js +103 -0
  302. package/dist/cmd/dev/agents.js.map +1 -0
  303. package/dist/cmd/dev/api.js +26 -0
  304. package/dist/cmd/dev/api.js.map +1 -0
  305. package/dist/cmd/dev/download.js +77 -0
  306. package/dist/cmd/dev/download.js.map +1 -0
  307. package/dist/cmd/dev/index.js +745 -0
  308. package/dist/cmd/dev/index.js.map +1 -0
  309. package/dist/cmd/dev/sync.js +229 -0
  310. package/dist/cmd/dev/sync.js.map +1 -0
  311. package/dist/cmd/dev/templates.js +75 -0
  312. package/dist/cmd/dev/templates.js.map +1 -0
  313. package/dist/cmd/index.js +49 -0
  314. package/dist/cmd/index.js.map +1 -0
  315. package/dist/cmd/profile/create.js +89 -0
  316. package/dist/cmd/profile/create.js.map +1 -0
  317. package/dist/cmd/profile/delete.js +63 -0
  318. package/dist/cmd/profile/delete.js.map +1 -0
  319. package/dist/cmd/profile/index.d.ts.map +1 -1
  320. package/dist/cmd/profile/index.js +14 -0
  321. package/dist/cmd/profile/index.js.map +1 -0
  322. package/dist/cmd/profile/list.js +28 -0
  323. package/dist/cmd/profile/list.js.map +1 -0
  324. package/dist/cmd/profile/show.js +68 -0
  325. package/dist/cmd/profile/show.js.map +1 -0
  326. package/dist/cmd/profile/use.js +37 -0
  327. package/dist/cmd/profile/use.js.map +1 -0
  328. package/dist/cmd/project/create.js +92 -0
  329. package/dist/cmd/project/create.js.map +1 -0
  330. package/dist/cmd/project/delete.js +117 -0
  331. package/dist/cmd/project/delete.js.map +1 -0
  332. package/dist/cmd/project/download.js +217 -0
  333. package/dist/cmd/project/download.js.map +1 -0
  334. package/dist/cmd/project/index.js +12 -0
  335. package/dist/cmd/project/index.js.map +1 -0
  336. package/dist/cmd/project/list.js +51 -0
  337. package/dist/cmd/project/list.js.map +1 -0
  338. package/dist/cmd/project/show.js +54 -0
  339. package/dist/cmd/project/show.js.map +1 -0
  340. package/dist/cmd/project/template-flow.js +315 -0
  341. package/dist/cmd/project/template-flow.js.map +1 -0
  342. package/dist/cmd/project/templates.js +31 -0
  343. package/dist/cmd/project/templates.js.map +1 -0
  344. package/dist/cmd/repl/index.js +444 -0
  345. package/dist/cmd/repl/index.js.map +1 -0
  346. package/dist/cmd/version/index.js +29 -0
  347. package/dist/cmd/version/index.js.map +1 -0
  348. package/dist/command-prefix.js +37 -0
  349. package/dist/command-prefix.js.map +1 -0
  350. package/dist/config.js +536 -0
  351. package/dist/config.js.map +1 -0
  352. package/dist/crypto/box.js +382 -0
  353. package/dist/crypto/box.js.map +1 -0
  354. package/dist/crypto/box.test.js +317 -0
  355. package/dist/crypto/box.test.js.map +1 -0
  356. package/dist/download.js +64 -0
  357. package/dist/download.js.map +1 -0
  358. package/dist/env-util.js +219 -0
  359. package/dist/env-util.js.map +1 -0
  360. package/dist/env-util.test.js +146 -0
  361. package/dist/env-util.test.js.map +1 -0
  362. package/dist/errors.js +177 -0
  363. package/dist/errors.js.map +1 -0
  364. package/dist/explain.js +90 -0
  365. package/dist/explain.js.map +1 -0
  366. package/dist/index.js +23 -0
  367. package/dist/index.js.map +1 -0
  368. package/dist/json.js +29 -0
  369. package/dist/json.js.map +1 -0
  370. package/dist/legacy-check.js +104 -0
  371. package/dist/legacy-check.js.map +1 -0
  372. package/dist/output.js +207 -0
  373. package/dist/output.js.map +1 -0
  374. package/dist/repl.js +1176 -0
  375. package/dist/repl.js.map +1 -0
  376. package/dist/runtime.js +19 -0
  377. package/dist/runtime.js.map +1 -0
  378. package/dist/schema-generator.js +289 -0
  379. package/dist/schema-generator.js.map +1 -0
  380. package/dist/schema-parser.js +145 -0
  381. package/dist/schema-parser.js.map +1 -0
  382. package/dist/sound.js +44 -0
  383. package/dist/sound.js.map +1 -0
  384. package/dist/steps.js +293 -0
  385. package/dist/steps.js.map +1 -0
  386. package/dist/terminal.js +130 -0
  387. package/dist/terminal.js.map +1 -0
  388. package/dist/tui.js +1124 -0
  389. package/dist/tui.js.map +1 -0
  390. package/dist/types.js +163 -0
  391. package/dist/types.js.map +1 -0
  392. package/dist/utils/detectSubagent.js +25 -0
  393. package/dist/utils/detectSubagent.js.map +1 -0
  394. package/dist/utils/format.js +21 -0
  395. package/dist/utils/format.js.map +1 -0
  396. package/dist/utils/zip.js +33 -0
  397. package/dist/utils/zip.js.map +1 -0
  398. package/dist/version.js +24 -0
  399. package/dist/version.js.map +1 -0
  400. package/package.json +6 -6
  401. package/src/banner.ts +1 -1
  402. package/src/cli.ts +7 -2
  403. package/src/cmd/{capabilities → ai/capabilities}/index.ts +2 -2
  404. package/src/cmd/{capabilities → ai/capabilities}/show.ts +6 -6
  405. package/src/cmd/ai/index.ts +11 -0
  406. package/src/cmd/{prompt → ai/prompt}/index.ts +2 -2
  407. package/src/cmd/{prompt → ai/prompt}/llm.ts +6 -6
  408. package/src/cmd/{schema → ai/schema}/index.ts +2 -2
  409. package/src/cmd/{schema → ai/schema}/show.ts +3 -3
  410. package/src/cmd/build/index.ts +83 -0
  411. package/src/cmd/{bundle → build}/plugin.ts +2 -1
  412. package/src/cmd/{agents → cloud/agents}/index.ts +4 -3
  413. package/src/cmd/cloud/deploy.ts +1 -1
  414. package/src/cmd/{env → cloud/env}/delete.ts +4 -4
  415. package/src/cmd/{env → cloud/env}/get.ts +5 -5
  416. package/src/cmd/{env → cloud/env}/import.ts +4 -4
  417. package/src/cmd/{env → cloud/env}/index.ts +2 -1
  418. package/src/cmd/{env → cloud/env}/list.ts +4 -4
  419. package/src/cmd/{env → cloud/env}/pull.ts +4 -4
  420. package/src/cmd/{env → cloud/env}/push.ts +4 -4
  421. package/src/cmd/{env → cloud/env}/set.ts +4 -4
  422. package/src/cmd/cloud/index.ts +10 -0
  423. package/src/cmd/{kv → cloud/keyvalue}/create-namespace.ts +3 -3
  424. package/src/cmd/{kv → cloud/keyvalue}/delete-namespace.ts +4 -4
  425. package/src/cmd/{kv → cloud/keyvalue}/delete.ts +3 -3
  426. package/src/cmd/{kv → cloud/keyvalue}/get.ts +4 -4
  427. package/src/cmd/{kv → cloud/keyvalue}/index.ts +2 -1
  428. package/src/cmd/{kv → cloud/keyvalue}/keys.ts +3 -3
  429. package/src/cmd/{kv → cloud/keyvalue}/list-namespaces.ts +3 -3
  430. package/src/cmd/{kv → cloud/keyvalue}/repl.ts +6 -6
  431. package/src/cmd/{kv → cloud/keyvalue}/search.ts +3 -3
  432. package/src/cmd/{kv → cloud/keyvalue}/set.ts +4 -4
  433. package/src/cmd/{kv → cloud/keyvalue}/stats.ts +3 -3
  434. package/src/cmd/{kv → cloud/keyvalue}/util.ts +4 -4
  435. package/src/cmd/{objectstore → cloud/objectstore}/delete-bucket.ts +3 -3
  436. package/src/cmd/{objectstore → cloud/objectstore}/delete.ts +3 -3
  437. package/src/cmd/{objectstore → cloud/objectstore}/get.ts +4 -4
  438. package/src/cmd/{objectstore → cloud/objectstore}/index.ts +2 -1
  439. package/src/cmd/{objectstore → cloud/objectstore}/list-buckets.ts +3 -3
  440. package/src/cmd/{objectstore → cloud/objectstore}/list-keys.ts +3 -3
  441. package/src/cmd/{objectstore → cloud/objectstore}/put.ts +4 -4
  442. package/src/cmd/{objectstore → cloud/objectstore}/repl.ts +6 -6
  443. package/src/cmd/{objectstore → cloud/objectstore}/url.ts +3 -3
  444. package/src/cmd/{objectstore → cloud/objectstore}/util.ts +3 -3
  445. package/src/cmd/{secret → cloud/secret}/delete.ts +4 -4
  446. package/src/cmd/{secret → cloud/secret}/get.ts +5 -5
  447. package/src/cmd/{secret → cloud/secret}/import.ts +4 -4
  448. package/src/cmd/{secret → cloud/secret}/index.ts +2 -1
  449. package/src/cmd/{secret → cloud/secret}/list.ts +4 -4
  450. package/src/cmd/{secret → cloud/secret}/pull.ts +4 -4
  451. package/src/cmd/{secret → cloud/secret}/push.ts +4 -4
  452. package/src/cmd/{secret → cloud/secret}/set.ts +4 -4
  453. package/src/cmd/cloud/session/get.ts +20 -14
  454. package/src/cmd/cloud/session/list.ts +1 -1
  455. package/src/cmd/dev/index.ts +3 -3
  456. package/src/cmd/profile/index.ts +1 -0
  457. package/src/cmd/project/create.ts +1 -1
  458. package/src/cmd/project/index.ts +1 -1
  459. package/dist/cmd/agents/index.d.ts.map +0 -1
  460. package/dist/cmd/bundle/ast.d.ts.map +0 -1
  461. package/dist/cmd/bundle/bundler.d.ts.map +0 -1
  462. package/dist/cmd/bundle/file.d.ts.map +0 -1
  463. package/dist/cmd/bundle/fix-duplicate-exports.d.ts.map +0 -1
  464. package/dist/cmd/bundle/fix-duplicate-exports.test.d.ts.map +0 -1
  465. package/dist/cmd/bundle/index.d.ts.map +0 -1
  466. package/dist/cmd/bundle/patch/_util.d.ts.map +0 -1
  467. package/dist/cmd/bundle/patch/aisdk.d.ts.map +0 -1
  468. package/dist/cmd/bundle/patch/index.d.ts.map +0 -1
  469. package/dist/cmd/bundle/patch/llm.d.ts.map +0 -1
  470. package/dist/cmd/bundle/plugin.d.ts.map +0 -1
  471. package/dist/cmd/capabilities/index.d.ts.map +0 -1
  472. package/dist/cmd/capabilities/show.d.ts.map +0 -1
  473. package/dist/cmd/env/delete.d.ts +0 -2
  474. package/dist/cmd/env/delete.d.ts.map +0 -1
  475. package/dist/cmd/env/get.d.ts +0 -2
  476. package/dist/cmd/env/get.d.ts.map +0 -1
  477. package/dist/cmd/env/import.d.ts +0 -2
  478. package/dist/cmd/env/import.d.ts.map +0 -1
  479. package/dist/cmd/env/index.d.ts +0 -2
  480. package/dist/cmd/env/index.d.ts.map +0 -1
  481. package/dist/cmd/env/list.d.ts +0 -2
  482. package/dist/cmd/env/list.d.ts.map +0 -1
  483. package/dist/cmd/env/pull.d.ts +0 -2
  484. package/dist/cmd/env/pull.d.ts.map +0 -1
  485. package/dist/cmd/env/push.d.ts +0 -2
  486. package/dist/cmd/env/push.d.ts.map +0 -1
  487. package/dist/cmd/env/set.d.ts +0 -2
  488. package/dist/cmd/env/set.d.ts.map +0 -1
  489. package/dist/cmd/kv/create-namespace.d.ts +0 -3
  490. package/dist/cmd/kv/create-namespace.d.ts.map +0 -1
  491. package/dist/cmd/kv/delete-namespace.d.ts +0 -3
  492. package/dist/cmd/kv/delete-namespace.d.ts.map +0 -1
  493. package/dist/cmd/kv/delete.d.ts +0 -3
  494. package/dist/cmd/kv/delete.d.ts.map +0 -1
  495. package/dist/cmd/kv/get.d.ts +0 -3
  496. package/dist/cmd/kv/get.d.ts.map +0 -1
  497. package/dist/cmd/kv/index.d.ts +0 -2
  498. package/dist/cmd/kv/index.d.ts.map +0 -1
  499. package/dist/cmd/kv/keys.d.ts +0 -3
  500. package/dist/cmd/kv/keys.d.ts.map +0 -1
  501. package/dist/cmd/kv/list-namespaces.d.ts +0 -3
  502. package/dist/cmd/kv/list-namespaces.d.ts.map +0 -1
  503. package/dist/cmd/kv/repl.d.ts +0 -3
  504. package/dist/cmd/kv/repl.d.ts.map +0 -1
  505. package/dist/cmd/kv/search.d.ts +0 -3
  506. package/dist/cmd/kv/search.d.ts.map +0 -1
  507. package/dist/cmd/kv/set.d.ts +0 -3
  508. package/dist/cmd/kv/set.d.ts.map +0 -1
  509. package/dist/cmd/kv/stats.d.ts +0 -3
  510. package/dist/cmd/kv/stats.d.ts.map +0 -1
  511. package/dist/cmd/kv/util.d.ts.map +0 -1
  512. package/dist/cmd/objectstore/delete-bucket.d.ts +0 -3
  513. package/dist/cmd/objectstore/delete-bucket.d.ts.map +0 -1
  514. package/dist/cmd/objectstore/delete.d.ts +0 -3
  515. package/dist/cmd/objectstore/delete.d.ts.map +0 -1
  516. package/dist/cmd/objectstore/get.d.ts +0 -3
  517. package/dist/cmd/objectstore/get.d.ts.map +0 -1
  518. package/dist/cmd/objectstore/index.d.ts +0 -2
  519. package/dist/cmd/objectstore/index.d.ts.map +0 -1
  520. package/dist/cmd/objectstore/list-buckets.d.ts +0 -3
  521. package/dist/cmd/objectstore/list-buckets.d.ts.map +0 -1
  522. package/dist/cmd/objectstore/list-keys.d.ts +0 -3
  523. package/dist/cmd/objectstore/list-keys.d.ts.map +0 -1
  524. package/dist/cmd/objectstore/put.d.ts +0 -3
  525. package/dist/cmd/objectstore/put.d.ts.map +0 -1
  526. package/dist/cmd/objectstore/repl.d.ts +0 -3
  527. package/dist/cmd/objectstore/repl.d.ts.map +0 -1
  528. package/dist/cmd/objectstore/url.d.ts +0 -3
  529. package/dist/cmd/objectstore/url.d.ts.map +0 -1
  530. package/dist/cmd/objectstore/util.d.ts.map +0 -1
  531. package/dist/cmd/prompt/index.d.ts +0 -4
  532. package/dist/cmd/prompt/index.d.ts.map +0 -1
  533. package/dist/cmd/prompt/llm.d.ts +0 -3
  534. package/dist/cmd/prompt/llm.d.ts.map +0 -1
  535. package/dist/cmd/schema/index.d.ts +0 -4
  536. package/dist/cmd/schema/index.d.ts.map +0 -1
  537. package/dist/cmd/schema/show.d.ts +0 -3
  538. package/dist/cmd/schema/show.d.ts.map +0 -1
  539. package/dist/cmd/secret/delete.d.ts +0 -2
  540. package/dist/cmd/secret/delete.d.ts.map +0 -1
  541. package/dist/cmd/secret/get.d.ts +0 -2
  542. package/dist/cmd/secret/get.d.ts.map +0 -1
  543. package/dist/cmd/secret/import.d.ts +0 -2
  544. package/dist/cmd/secret/import.d.ts.map +0 -1
  545. package/dist/cmd/secret/index.d.ts +0 -2
  546. package/dist/cmd/secret/index.d.ts.map +0 -1
  547. package/dist/cmd/secret/list.d.ts +0 -2
  548. package/dist/cmd/secret/list.d.ts.map +0 -1
  549. package/dist/cmd/secret/pull.d.ts +0 -2
  550. package/dist/cmd/secret/pull.d.ts.map +0 -1
  551. package/dist/cmd/secret/push.d.ts +0 -2
  552. package/dist/cmd/secret/push.d.ts.map +0 -1
  553. package/dist/cmd/secret/set.d.ts +0 -2
  554. package/dist/cmd/secret/set.d.ts.map +0 -1
  555. package/src/cmd/bundle/index.ts +0 -58
  556. /package/dist/cmd/{agents → ai}/index.d.ts +0 -0
  557. /package/dist/cmd/{bundle → build}/ast.d.ts +0 -0
  558. /package/dist/cmd/{bundle → build}/ast.test.d.ts +0 -0
  559. /package/dist/cmd/{bundle → build}/bundler.d.ts +0 -0
  560. /package/dist/cmd/{bundle → build}/file.d.ts +0 -0
  561. /package/dist/cmd/{bundle → build}/fix-duplicate-exports.d.ts +0 -0
  562. /package/dist/cmd/{bundle → build}/fix-duplicate-exports.test.d.ts +0 -0
  563. /package/dist/cmd/{bundle → build}/index.d.ts +0 -0
  564. /package/dist/cmd/{bundle → build}/patch/_util.d.ts +0 -0
  565. /package/dist/cmd/{bundle → build}/patch/aisdk.d.ts +0 -0
  566. /package/dist/cmd/{bundle → build}/patch/index.d.ts +0 -0
  567. /package/dist/cmd/{bundle → build}/patch/llm.d.ts +0 -0
  568. /package/dist/cmd/{bundle → build}/plugin.d.ts +0 -0
  569. /package/src/cmd/{bundle → build}/ast.test.ts +0 -0
  570. /package/src/cmd/{bundle → build}/ast.ts +0 -0
  571. /package/src/cmd/{bundle → build}/bundler.ts +0 -0
  572. /package/src/cmd/{bundle → build}/file.ts +0 -0
  573. /package/src/cmd/{bundle → build}/fix-duplicate-exports.test.ts +0 -0
  574. /package/src/cmd/{bundle → build}/fix-duplicate-exports.ts +0 -0
  575. /package/src/cmd/{bundle → build}/patch/_util.ts +0 -0
  576. /package/src/cmd/{bundle → build}/patch/aisdk.ts +0 -0
  577. /package/src/cmd/{bundle → build}/patch/index.ts +0 -0
  578. /package/src/cmd/{bundle → build}/patch/llm.ts +0 -0
@@ -0,0 +1,300 @@
1
+ import { describe, test, expect, beforeEach, afterEach } from 'bun:test';
2
+ import { join } from 'node:path';
3
+ import { mkdtemp, rm } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import { fixDuplicateExportsInDirectory } from './fix-duplicate-exports';
6
+ describe('fix-duplicate-exports', () => {
7
+ let tempDir;
8
+ beforeEach(async () => {
9
+ tempDir = await mkdtemp(join(tmpdir(), 'fix-duplicate-exports-test-'));
10
+ });
11
+ afterEach(async () => {
12
+ await rm(tempDir, { recursive: true, force: true });
13
+ });
14
+ describe('export alias syntax preservation', () => {
15
+ test('preserves "qux as baz" when removing duplicate foo', async () => {
16
+ // This is the critical bug case from the feedback
17
+ const code = `export { foo };
18
+ export { qux as baz, foo };`;
19
+ const expected = `export { foo };
20
+ export { qux as baz };`;
21
+ const testFile = join(tempDir, 'test.js');
22
+ await Bun.write(testFile, code);
23
+ await fixDuplicateExportsInDirectory(tempDir, false);
24
+ const result = await Bun.file(testFile).text();
25
+ expect(result).toBe(expected);
26
+ });
27
+ test('preserves "foo as bar" when it is not duplicate', async () => {
28
+ const code = `export { foo as bar };
29
+ export { baz };`;
30
+ const testFile = join(tempDir, 'test.js');
31
+ await Bun.write(testFile, code);
32
+ await fixDuplicateExportsInDirectory(tempDir, false);
33
+ const result = await Bun.file(testFile).text();
34
+ // Should not change - no duplicates
35
+ expect(result).toBe(code);
36
+ });
37
+ test('handles multiple aliases in same export statement', async () => {
38
+ const code = `export { foo as bar, baz as qux };
39
+ export { bar, simple };`;
40
+ // "bar" is duplicate (exported in both statements)
41
+ const expected = `export { foo as bar, baz as qux };
42
+ export { simple };`;
43
+ const testFile = join(tempDir, 'test.js');
44
+ await Bun.write(testFile, code);
45
+ await fixDuplicateExportsInDirectory(tempDir, false);
46
+ const result = await Bun.file(testFile).text();
47
+ expect(result).toBe(expected);
48
+ });
49
+ test('preserves alias when removing from middle of export list', async () => {
50
+ const code = `export { alpha, beta };
51
+ export { alpha, gamma as delta, epsilon };`;
52
+ const expected = `export { alpha, beta };
53
+ export { gamma as delta, epsilon };`;
54
+ const testFile = join(tempDir, 'test.js');
55
+ await Bun.write(testFile, code);
56
+ await fixDuplicateExportsInDirectory(tempDir, false);
57
+ const result = await Bun.file(testFile).text();
58
+ expect(result).toBe(expected);
59
+ });
60
+ test('handles exported name being the duplicate (alias target)', async () => {
61
+ const code = `export { foo as bar };
62
+ export { bar };`;
63
+ // "bar" from first export and "bar" from second export are DIFFERENT
64
+ // First one exports the identifier "foo" with the name "bar"
65
+ // Second one exports the identifier "bar" with the name "bar"
66
+ // These are duplicates from export name perspective
67
+ const expected = `export { foo as bar };
68
+ `;
69
+ const testFile = join(tempDir, 'test.js');
70
+ await Bun.write(testFile, code);
71
+ await fixDuplicateExportsInDirectory(tempDir, false);
72
+ const result = await Bun.file(testFile).text();
73
+ expect(result).toBe(expected);
74
+ });
75
+ });
76
+ describe('duplicate removal', () => {
77
+ test('removes entire duplicate export statement', async () => {
78
+ const code = `export { foo, bar };
79
+ export { foo, bar };`;
80
+ const expected = `export { foo, bar };
81
+ `;
82
+ const testFile = join(tempDir, 'test.js');
83
+ await Bun.write(testFile, code);
84
+ await fixDuplicateExportsInDirectory(tempDir, false);
85
+ const result = await Bun.file(testFile).text();
86
+ expect(result).toBe(expected);
87
+ });
88
+ test('removes only duplicate names from partial duplicate', async () => {
89
+ const code = `export { foo, bar };
90
+ export { foo, baz };`;
91
+ const expected = `export { foo, bar };
92
+ export { baz };`;
93
+ const testFile = join(tempDir, 'test.js');
94
+ await Bun.write(testFile, code);
95
+ await fixDuplicateExportsInDirectory(tempDir, false);
96
+ const result = await Bun.file(testFile).text();
97
+ expect(result).toBe(expected);
98
+ });
99
+ test('handles three-way duplicates', async () => {
100
+ const code = `export { foo };
101
+ export { bar };
102
+ export { foo };`;
103
+ const expected = `export { foo };
104
+ export { bar };
105
+ `;
106
+ const testFile = join(tempDir, 'test.js');
107
+ await Bun.write(testFile, code);
108
+ await fixDuplicateExportsInDirectory(tempDir, false);
109
+ const result = await Bun.file(testFile).text();
110
+ expect(result).toBe(expected);
111
+ });
112
+ test('preserves non-duplicate exports', async () => {
113
+ const code = `export { foo };
114
+ export { bar };
115
+ export { baz };`;
116
+ const testFile = join(tempDir, 'test.js');
117
+ await Bun.write(testFile, code);
118
+ await fixDuplicateExportsInDirectory(tempDir, false);
119
+ const result = await Bun.file(testFile).text();
120
+ // Should not change - no duplicates
121
+ expect(result).toBe(code);
122
+ });
123
+ });
124
+ describe('__INVALID__REF__ removal', () => {
125
+ test('removes __INVALID__REF__ at start with comma', async () => {
126
+ const code = `export { __INVALID__REF__, foo, bar };`;
127
+ const expected = `export { foo, bar };`;
128
+ const testFile = join(tempDir, 'test.js');
129
+ await Bun.write(testFile, code);
130
+ await fixDuplicateExportsInDirectory(tempDir, false);
131
+ const result = await Bun.file(testFile).text();
132
+ expect(result).toBe(expected);
133
+ });
134
+ test('removes __INVALID__REF__ at end with comma', async () => {
135
+ const code = `export { foo, bar, __INVALID__REF__ };`;
136
+ const expected = `export { foo, bar };`;
137
+ const testFile = join(tempDir, 'test.js');
138
+ await Bun.write(testFile, code);
139
+ await fixDuplicateExportsInDirectory(tempDir, false);
140
+ const result = await Bun.file(testFile).text();
141
+ expect(result).toBe(expected);
142
+ });
143
+ test('removes __INVALID__REF__ in middle', async () => {
144
+ const code = `export { foo, __INVALID__REF__, bar };`;
145
+ const expected = `export { foo, bar };`;
146
+ const testFile = join(tempDir, 'test.js');
147
+ await Bun.write(testFile, code);
148
+ await fixDuplicateExportsInDirectory(tempDir, false);
149
+ const result = await Bun.file(testFile).text();
150
+ expect(result).toBe(expected);
151
+ });
152
+ test('removes __INVALID__REF__ from imports', async () => {
153
+ const code = `import { __INVALID__REF__, foo } from 'bar';
154
+ export { foo };`;
155
+ const expected = `import { foo } from 'bar';
156
+ export { foo };`;
157
+ const testFile = join(tempDir, 'test.js');
158
+ await Bun.write(testFile, code);
159
+ await fixDuplicateExportsInDirectory(tempDir, false);
160
+ const result = await Bun.file(testFile).text();
161
+ expect(result).toBe(expected);
162
+ });
163
+ });
164
+ describe('complex scenarios', () => {
165
+ test('handles combination of aliases and duplicates', async () => {
166
+ const code = `export { foo as exportedFoo, bar };
167
+ export { baz as exportedBaz };
168
+ export { bar, qux };`;
169
+ const expected = `export { foo as exportedFoo, bar };
170
+ export { baz as exportedBaz };
171
+ export { qux };`;
172
+ const testFile = join(tempDir, 'test.js');
173
+ await Bun.write(testFile, code);
174
+ await fixDuplicateExportsInDirectory(tempDir, false);
175
+ const result = await Bun.file(testFile).text();
176
+ expect(result).toBe(expected);
177
+ });
178
+ test('handles whitespace variations', async () => {
179
+ const code = `export { foo };
180
+ export { bar as baz , foo };`;
181
+ const expected = `export { foo };
182
+ export { bar as baz };`;
183
+ const testFile = join(tempDir, 'test.js');
184
+ await Bun.write(testFile, code);
185
+ await fixDuplicateExportsInDirectory(tempDir, false);
186
+ const result = await Bun.file(testFile).text();
187
+ expect(result).toBe(expected);
188
+ });
189
+ test('does not modify non-matching export patterns', async () => {
190
+ const code = `export default function foo() {}
191
+ export const bar = 1;
192
+ export { baz };
193
+ export * from './other';`;
194
+ const testFile = join(tempDir, 'test.js');
195
+ await Bun.write(testFile, code);
196
+ await fixDuplicateExportsInDirectory(tempDir, false);
197
+ const result = await Bun.file(testFile).text();
198
+ // Should only process export { ... } statements
199
+ expect(result).toBe(code);
200
+ });
201
+ test('handles multiple files in directory', async () => {
202
+ const file1 = join(tempDir, 'file1.js');
203
+ const file2 = join(tempDir, 'file2.js');
204
+ await Bun.write(file1, `export { foo };\nexport { foo };`);
205
+ await Bun.write(file2, `export { qux as baz };\nexport { baz };`);
206
+ await fixDuplicateExportsInDirectory(tempDir, false);
207
+ const result1 = await Bun.file(file1).text();
208
+ const result2 = await Bun.file(file2).text();
209
+ expect(result1).toBe(`export { foo };
210
+ `);
211
+ expect(result2).toBe(`export { qux as baz };
212
+ `);
213
+ });
214
+ });
215
+ describe('patch order edge cases', () => {
216
+ test('handles partial duplicate followed by full duplicate', async () => {
217
+ // This tests the scenario where modification shifts indices for subsequent removal
218
+ const code = `export { foo };
219
+ export { foo, bar };
220
+ export { foo };`;
221
+ // Expected: first foo kept, second becomes just bar, third removed
222
+ const expected = `export { foo };
223
+ export { bar };
224
+ `;
225
+ const testFile = join(tempDir, 'test.js');
226
+ await Bun.write(testFile, code);
227
+ await fixDuplicateExportsInDirectory(tempDir, false);
228
+ const result = await Bun.file(testFile).text();
229
+ expect(result).toBe(expected);
230
+ });
231
+ test('handles multiple partial duplicates with full duplicate at end', async () => {
232
+ const code = `export { foo };
233
+ export { foo, bar };
234
+ export { foo, baz };
235
+ export { foo };`;
236
+ // First foo kept, second becomes bar only, third becomes baz only, fourth removed
237
+ const expected = `export { foo };
238
+ export { bar };
239
+ export { baz };
240
+ `;
241
+ const testFile = join(tempDir, 'test.js');
242
+ await Bun.write(testFile, code);
243
+ await fixDuplicateExportsInDirectory(tempDir, false);
244
+ const result = await Bun.file(testFile).text();
245
+ expect(result).toBe(expected);
246
+ });
247
+ test('handles full duplicate followed by partial duplicate', async () => {
248
+ const code = `export { foo, bar };
249
+ export { foo, bar };
250
+ export { bar, baz };`;
251
+ // First kept, second removed (full dup - leaves blank line), third becomes just baz
252
+ const expected = `export { foo, bar };
253
+
254
+ export { baz };`;
255
+ const testFile = join(tempDir, 'test.js');
256
+ await Bun.write(testFile, code);
257
+ await fixDuplicateExportsInDirectory(tempDir, false);
258
+ const result = await Bun.file(testFile).text();
259
+ expect(result).toBe(expected);
260
+ });
261
+ });
262
+ describe('edge cases', () => {
263
+ test('handles empty file', async () => {
264
+ const code = '';
265
+ const testFile = join(tempDir, 'test.js');
266
+ await Bun.write(testFile, code);
267
+ await fixDuplicateExportsInDirectory(tempDir, false);
268
+ const result = await Bun.file(testFile).text();
269
+ expect(result).toBe(code);
270
+ });
271
+ test('handles file with no exports', async () => {
272
+ const code = `const foo = 1;\nconst bar = 2;`;
273
+ const testFile = join(tempDir, 'test.js');
274
+ await Bun.write(testFile, code);
275
+ await fixDuplicateExportsInDirectory(tempDir, false);
276
+ const result = await Bun.file(testFile).text();
277
+ expect(result).toBe(code);
278
+ });
279
+ test('handles single export with alias', async () => {
280
+ const code = `export { foo as bar };`;
281
+ const testFile = join(tempDir, 'test.js');
282
+ await Bun.write(testFile, code);
283
+ await fixDuplicateExportsInDirectory(tempDir, false);
284
+ const result = await Bun.file(testFile).text();
285
+ expect(result).toBe(code);
286
+ });
287
+ test('handles export with semicolon vs without', async () => {
288
+ const code = `export { foo }
289
+ export { foo };`;
290
+ const expected = `export { foo }
291
+ `;
292
+ const testFile = join(tempDir, 'test.js');
293
+ await Bun.write(testFile, code);
294
+ await fixDuplicateExportsInDirectory(tempDir, false);
295
+ const result = await Bun.file(testFile).text();
296
+ expect(result).toBe(expected);
297
+ });
298
+ });
299
+ });
300
+ //# sourceMappingURL=fix-duplicate-exports.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-duplicate-exports.test.js","sourceRoot":"","sources":["../../../src/cmd/build/fix-duplicate-exports.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,OAAO,mCAoElB,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { createCommand } from '../../types';
2
+ import { z } from 'zod';
3
+ import { bundle } from './bundler';
4
+ import * as tui from '../../tui';
5
+ import { getCommand } from '../../command-prefix';
6
+ const BuildResponseSchema = z.object({
7
+ success: z.boolean().describe('Whether the build succeeded'),
8
+ bundlePath: z.string().describe('Path to the build directory'),
9
+ projectName: z.string().describe('Project name'),
10
+ dev: z.boolean().describe('Whether dev mode was enabled'),
11
+ size: z.number().optional().describe('Build size in bytes'),
12
+ });
13
+ export const command = createCommand({
14
+ name: 'build',
15
+ description: 'Build Agentuity application for deployment',
16
+ tags: ['read-only', 'slow', 'requires-project'],
17
+ aliases: ['bundle'],
18
+ optional: { project: true },
19
+ idempotent: false,
20
+ examples: [getCommand('build'), getCommand('build --dev'), getCommand('bundle')],
21
+ schema: {
22
+ options: z.object({
23
+ dev: z.boolean().optional().describe('Enable development mode'),
24
+ }),
25
+ response: BuildResponseSchema,
26
+ },
27
+ async handler(ctx) {
28
+ const { opts, projectDir, project } = ctx;
29
+ try {
30
+ tui.info(`Bundling project at: ${projectDir}`);
31
+ // Generate agent registry FIRST (so types exist for typecheck)
32
+ tui.info('Generating agent registry...');
33
+ await bundle({
34
+ rootDir: projectDir,
35
+ dev: opts.dev || false,
36
+ project,
37
+ });
38
+ // Run TypeScript type checking after registry generation (skip in dev mode)
39
+ if (!opts.dev) {
40
+ try {
41
+ tui.info('Running type check...');
42
+ const { resolve } = await import('node:path');
43
+ const absoluteProjectDir = resolve(projectDir);
44
+ const result = await Bun.$ `bunx tsc --noEmit --skipLibCheck`.cwd(absoluteProjectDir).nothrow();
45
+ if (result.exitCode === 0) {
46
+ tui.success('Type check passed');
47
+ }
48
+ else {
49
+ tui.error('Type check failed:\n');
50
+ console.error(result.stderr.toString());
51
+ tui.fatal('Fix type errors before building');
52
+ }
53
+ }
54
+ catch (error) {
55
+ // If tsc fails to run, show error and fail
56
+ const errorMsg = error instanceof Error ? error.message : String(error);
57
+ tui.error(`Type check failed to run: ${errorMsg}`);
58
+ tui.fatal('Unable to run TypeScript type checking. Ensure TypeScript is installed.');
59
+ }
60
+ }
61
+ tui.success('Bundle complete');
62
+ return {
63
+ success: true,
64
+ bundlePath: `${projectDir}/.agentuity`,
65
+ projectName: project?.projectId || 'unknown',
66
+ dev: opts.dev || false,
67
+ };
68
+ }
69
+ catch (error) {
70
+ if (error instanceof Error) {
71
+ tui.fatal(`Bundle failed: ${error.message}`);
72
+ }
73
+ else {
74
+ tui.fatal('Bundle failed');
75
+ }
76
+ }
77
+ },
78
+ });
79
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_util.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/patch/_util.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAKnF;AAED,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,MAAM,CAaR;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAOrF"}
@@ -0,0 +1,42 @@
1
+ export function generateEnvWarning(envkey) {
2
+ return `if (process.env.AGENTUITY_ENVIRONMENT === 'development' || process.env.NODE_ENV !== 'production') {
3
+ console.error('The required environment variable ${envkey} must be set in your project .env file or in your local system environment.');
4
+ } else {
5
+ console.error('The required environment variable ${envkey} is required for this project. Use "agentuity env set ${envkey}" to set it and redeploy your project.');
6
+ }
7
+ `;
8
+ }
9
+ export function generateJSArgsPatch(index, inject) {
10
+ return `const _newargs = [...(_args ?? [])];
11
+ _newargs[${index}] = {..._newargs[${index}], ${inject}};
12
+ _args = _newargs;`;
13
+ }
14
+ export function generateEnvGuard(name, inject, alt) {
15
+ return `if (!process.env.${name} || process.env.${name} === process.env.AGENTUITY_SDK_KEY) {
16
+ ${inject}
17
+ } else {
18
+ ${alt ?? ''}}`;
19
+ }
20
+ export function generateGatewayEnvGuard(apikey, apikeyval, apibase, provider) {
21
+ return `{
22
+ const apikey = process.env.AGENTUITY_SDK_KEY;
23
+ const url = process.env.AGENTUITY_AIGATEWAY_URL || process.env.AGENTUITY_TRANSPORT_URL || (apikey ? 'https://agentuity.ai' : '');
24
+ if (url && apikey) {
25
+ process.env.${apikey} = ${apikeyval};
26
+ process.env.${apibase} = url + '/gateway/${provider}';
27
+ console.debug('Enabled Agentuity AI Gateway for ${provider}');
28
+ } else {
29
+ ${generateEnvWarning(apikey)}
30
+ }
31
+ }
32
+ `;
33
+ }
34
+ export function searchBackwards(contents, offset, val) {
35
+ for (let i = offset; i >= 0; i--) {
36
+ if (contents.charAt(i) == val) {
37
+ return i;
38
+ }
39
+ }
40
+ return -1;
41
+ }
42
+ //# sourceMappingURL=_util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_util.js","sourceRoot":"","sources":["../../../../src/cmd/build/patch/_util.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAChD,OAAO;yDACiD,MAAM;;yDAEN,MAAM,yDAAyD,MAAM;;CAE7H,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,MAAc;IAChE,OAAO;WACG,KAAK,oBAAoB,KAAK,MAAM,MAAM;kBACnC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAc,EAAE,GAAY;IAC1E,OAAO,oBAAoB,IAAI,mBAAmB,IAAI;EACrD,MAAM;;GAEL,GAAG,IAAI,EAAE,GAAG,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,MAAc,EACd,SAAiB,EACjB,OAAe,EACf,QAAgB;IAEhB,OAAO;;;;sBAIc,MAAM,MAAM,SAAS;sBACrB,OAAO,sBAAsB,QAAQ;0DACD,QAAQ;;OAE3D,kBAAkB,CAAC,MAAM,CAAC;;;CAGhC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,MAAc,EAAE,GAAW;IAC5E,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC;QACV,CAAC;IACF,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aisdk.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/patch/aisdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,WAAW,EAIhB,MAAM,SAAS,CAAC;AA6BjB,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAuD1D"}
@@ -0,0 +1,65 @@
1
+ import { generateEnvWarning, generateEnvGuard, generateJSArgsPatch, } from './_util';
2
+ function generateAISDKPatch(patches) {
3
+ const vercelTelemetryPatch = generateJSArgsPatch(0, ` ` + '');
4
+ const enableTelemetryPatch = `
5
+ // Enable experimental telemetry to capture response text
6
+ const opts = {...(_args[0] ?? {}) };
7
+ opts.experimental_telemetry = { isEnabled: true };
8
+ _args[0] = opts;
9
+ `;
10
+ const comboPatch = vercelTelemetryPatch + enableTelemetryPatch;
11
+ const functionPatch = { before: comboPatch };
12
+ const patch = {
13
+ module: 'ai',
14
+ functions: {
15
+ generateText: functionPatch,
16
+ streamText: functionPatch,
17
+ generateObject: functionPatch,
18
+ streamObject: functionPatch,
19
+ embed: functionPatch,
20
+ embedMany: functionPatch,
21
+ },
22
+ };
23
+ patches.set('@vercel/ai', patch);
24
+ }
25
+ export function generatePatches() {
26
+ const patches = new Map();
27
+ generateAISDKPatch(patches);
28
+ createVercelAIProviderPatch(patches, '@ai-sdk/openai', 'createOpenAI', 'OPENAI_API_KEY', 'openai');
29
+ createVercelAIProviderPatch(patches, '@ai-sdk/anthropic', 'createAnthropic', 'ANTHROPIC_API_KEY', 'anthropic');
30
+ createVercelAIProviderPatch(patches, '@ai-sdk/cohere', 'createCohere', 'COHERE_API_KEY', 'cohere');
31
+ createVercelAIProviderPatch(patches, '@ai-sdk/deepseek', 'createDeepSeek', 'DEEPSEEK_API_KEY', 'deepseek');
32
+ createVercelAIProviderPatch(patches, '@ai-sdk/google', 'createGoogleGenerativeAI', 'GOOGLE_GENERATIVE_AI_API_KEY', 'google-ai-studio');
33
+ createVercelAIProviderPatch(patches, '@ai-sdk/xai', 'createXai', 'XAI_API_KEY', 'grok');
34
+ createVercelAIProviderPatch(patches, '@ai-sdk/groq', 'createGroq', 'GROQ_API_KEY', 'groq');
35
+ createVercelAIProviderPatch(patches, '@ai-sdk/mistral', 'createMistral', 'MISTRAL_API_KEY', 'mistral');
36
+ createVercelAIProviderPatch(patches, '@ai-sdk/perplexity', 'createPerplexity', 'PERPLEXITY_API_KEY', 'perplexity-ai');
37
+ return patches;
38
+ }
39
+ function generateVercelAIProvider(name, envkey) {
40
+ return (generateJSArgsPatch(0, '') +
41
+ `const opts = {...(_args[0] ?? {}) };
42
+ if (!opts.baseURL) {
43
+ const apikey = process.env.AGENTUITY_SDK_KEY;
44
+ const url = process.env.AGENTUITY_TRANSPORT_URL;
45
+ if (url && apikey) {
46
+ opts.apiKey = apikey;
47
+ opts.baseURL = url + '/gateway/${name}';
48
+ _args[0] = opts;
49
+ } else {
50
+ ${generateEnvWarning(envkey)}
51
+ }
52
+ }`);
53
+ }
54
+ function createVercelAIProviderPatch(patches, module, createFn, envkey, provider) {
55
+ const patch = {
56
+ module: module,
57
+ functions: {
58
+ [createFn]: {
59
+ before: generateEnvGuard(envkey, generateVercelAIProvider(provider, envkey), `if (!process.env.AGENTUITY_SDK_KEY) console.log("User provided ${provider} api key set. Use the Agentuity AI Gateway more features.");`),
60
+ },
61
+ },
62
+ };
63
+ patches.set(module, patch);
64
+ }
65
+ //# sourceMappingURL=aisdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aisdk.js","sourceRoot":"","sources":["../../../../src/cmd/build/patch/aisdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACnB,MAAM,SAAS,CAAC;AAEjB,SAAS,kBAAkB,CAAC,OAAiC;IAC5D,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAE9D,MAAM,oBAAoB,GAAG;;;;;GAK3B,CAAC;IAEH,MAAM,UAAU,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;IAC/D,MAAM,aAAa,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAE7C,MAAM,KAAK,GAAgB;QAC1B,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE;YACV,YAAY,EAAE,aAAa;YAC3B,UAAU,EAAE,aAAa;YACzB,cAAc,EAAE,aAAa;YAC7B,YAAY,EAAE,aAAa;YAC3B,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,aAAa;SACxB;KACD,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC/C,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,2BAA2B,CAC1B,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,QAAQ,CACR,CAAC;IACF,2BAA2B,CAC1B,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,CACX,CAAC;IACF,2BAA2B,CAC1B,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,QAAQ,CACR,CAAC;IACF,2BAA2B,CAC1B,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,CACV,CAAC;IACF,2BAA2B,CAC1B,OAAO,EACP,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,kBAAkB,CAClB,CAAC;IACF,2BAA2B,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACxF,2BAA2B,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3F,2BAA2B,CAC1B,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,SAAS,CACT,CAAC;IACF,2BAA2B,CAC1B,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,CACf,CAAC;IACF,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,MAAc;IAC7D,OAAO,CACN,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1B;;;;;;mCAMiC,IAAI;;;KAGlC,kBAAkB,CAAC,MAAM,CAAC;;EAE7B,CACA,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CACnC,OAAiC,EACjC,MAAc,EACd,QAAgB,EAChB,MAAc,EACd,QAAgB;IAEhB,MAAM,KAAK,GAAG;QACb,MAAM,EAAE,MAAM;QACd,SAAS,EAAE;YACV,CAAC,QAAQ,CAAC,EAAE;gBACX,MAAM,EAAE,gBAAgB,CACvB,MAAM,EACN,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAC1C,kEAAkE,QAAQ,8DAA8D,CACxI;aACD;SACD;KACD,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/patch/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,SAAS,CAAC;AAE5D,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAS1D;AAED,wBAAsB,UAAU,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,WAAW,GAChB,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAkF/B"}
@@ -0,0 +1,97 @@
1
+ import { generatePatches as aisdkGeneratePatches } from './aisdk';
2
+ import { generatePatches as llmGeneratePatches } from './llm';
3
+ import { searchBackwards } from './_util';
4
+ export function generatePatches() {
5
+ const patches = new Map();
6
+ for (const [name, patch] of aisdkGeneratePatches()) {
7
+ patches.set(name, patch);
8
+ }
9
+ for (const [name, patch] of llmGeneratePatches()) {
10
+ patches.set(name, patch);
11
+ }
12
+ return patches;
13
+ }
14
+ export async function applyPatch(filename, patch) {
15
+ let contents = await Bun.file(filename).text();
16
+ const isJS = filename.endsWith('.js') || filename.endsWith('.mjs');
17
+ let suffix = '';
18
+ if (patch.functions) {
19
+ for (const fn of Object.keys(patch.functions)) {
20
+ const mod = patch.functions[fn];
21
+ let fnname = `function ${fn}`;
22
+ let index = contents.indexOf(fnname);
23
+ let isConstVariable = false;
24
+ if (index === -1) {
25
+ fnname = 'const ' + fn + ' = ';
26
+ index = contents.indexOf(fnname);
27
+ isConstVariable = true;
28
+ if (index === -1) {
29
+ continue;
30
+ }
31
+ }
32
+ const eol = searchBackwards(contents, index, '\n');
33
+ if (eol < 0) {
34
+ continue;
35
+ }
36
+ const prefix = contents.substring(eol + 1, index).trim();
37
+ const isAsync = prefix.includes('async');
38
+ const isExport = prefix.includes('export');
39
+ const newname = '__agentuity_' + fn;
40
+ let newfnname;
41
+ if (isConstVariable) {
42
+ newfnname = 'const ' + newname + ' = ';
43
+ }
44
+ else {
45
+ newfnname = 'function ' + newname;
46
+ }
47
+ let fnprefix = '';
48
+ if (isAsync) {
49
+ fnprefix = 'async ';
50
+ }
51
+ if (isExport) {
52
+ fnprefix += 'export ' + fnprefix;
53
+ }
54
+ contents = contents.replace(fnname, newfnname);
55
+ if (isJS) {
56
+ suffix += fnprefix + 'function ' + fn + '() {\n';
57
+ suffix += 'let args = arguments;\n';
58
+ }
59
+ else {
60
+ suffix += fnprefix + fnname + '(...args) {\n';
61
+ }
62
+ suffix += '\tlet _args = args;\n';
63
+ if (mod.before) {
64
+ suffix += mod.before;
65
+ suffix += '\n';
66
+ }
67
+ if (isJS) {
68
+ // For JS: use .apply to preserve 'this' context
69
+ suffix += '\tlet result = ' + newname + '.apply(this, _args);\n';
70
+ }
71
+ else {
72
+ // For TS: use spread operator
73
+ suffix += '\tlet result = ' + newname + '(..._args);\n';
74
+ }
75
+ if (isAsync) {
76
+ suffix += '\tif (result instanceof Promise) {\n';
77
+ suffix += '\t\tresult = await result;\n';
78
+ suffix += '\t}\n';
79
+ }
80
+ if (mod.after) {
81
+ suffix += mod.after;
82
+ suffix += '\n';
83
+ }
84
+ suffix += '\treturn result;\n';
85
+ suffix += '}\n';
86
+ contents = contents + '\n' + suffix;
87
+ }
88
+ }
89
+ if (patch.body?.before) {
90
+ contents = patch.body.before + '\n' + contents;
91
+ }
92
+ if (patch.body?.after) {
93
+ contents = contents + '\n' + patch.body.after;
94
+ }
95
+ return [contents, isJS ? 'js' : 'ts'];
96
+ }
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/build/patch/index.ts"],"names":[],"mappings":"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"}