@oxagen/cli 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/LICENSE +3 -0
  2. package/README.html +379 -0
  3. package/dist/commands/__tests__/cli-parity.test.d.ts +2 -0
  4. package/dist/commands/__tests__/cli-parity.test.d.ts.map +1 -0
  5. package/dist/commands/__tests__/cli-parity.test.js +110 -0
  6. package/dist/commands/__tests__/cli-parity.test.js.map +1 -0
  7. package/dist/commands/agent.approval.resolve.d.ts +3 -0
  8. package/dist/commands/agent.approval.resolve.d.ts.map +1 -0
  9. package/dist/commands/agent.approval.resolve.js +30 -0
  10. package/dist/commands/agent.approval.resolve.js.map +1 -0
  11. package/dist/commands/agent.mcp.list.d.ts +3 -0
  12. package/dist/commands/agent.mcp.list.d.ts.map +1 -0
  13. package/dist/commands/agent.mcp.list.js +23 -0
  14. package/dist/commands/agent.mcp.list.js.map +1 -0
  15. package/dist/commands/agent.mcp.register.d.ts +3 -0
  16. package/dist/commands/agent.mcp.register.d.ts.map +1 -0
  17. package/dist/commands/agent.mcp.register.js +40 -0
  18. package/dist/commands/agent.mcp.register.js.map +1 -0
  19. package/dist/commands/agent.memory.recall.d.ts +3 -0
  20. package/dist/commands/agent.memory.recall.d.ts.map +1 -0
  21. package/dist/commands/agent.memory.recall.js +25 -0
  22. package/dist/commands/agent.memory.recall.js.map +1 -0
  23. package/dist/commands/agent.memory.write.d.ts +3 -0
  24. package/dist/commands/agent.memory.write.d.ts.map +1 -0
  25. package/dist/commands/agent.memory.write.js +25 -0
  26. package/dist/commands/agent.memory.write.js.map +1 -0
  27. package/dist/commands/agent.plan.approve.d.ts +3 -0
  28. package/dist/commands/agent.plan.approve.d.ts.map +1 -0
  29. package/dist/commands/agent.plan.approve.js +34 -0
  30. package/dist/commands/agent.plan.approve.js.map +1 -0
  31. package/dist/commands/agent.skill.list.d.ts +3 -0
  32. package/dist/commands/agent.skill.list.d.ts.map +1 -0
  33. package/dist/commands/agent.skill.list.js +25 -0
  34. package/dist/commands/agent.skill.list.js.map +1 -0
  35. package/dist/commands/agent.task.background.cancel.d.ts +3 -0
  36. package/dist/commands/agent.task.background.cancel.d.ts.map +1 -0
  37. package/dist/commands/agent.task.background.cancel.js +29 -0
  38. package/dist/commands/agent.task.background.cancel.js.map +1 -0
  39. package/dist/commands/agent.task.background.read.d.ts +3 -0
  40. package/dist/commands/agent.task.background.read.d.ts.map +1 -0
  41. package/dist/commands/agent.task.background.read.js +28 -0
  42. package/dist/commands/agent.task.background.read.js.map +1 -0
  43. package/dist/commands/agent.task.background.start.d.ts +3 -0
  44. package/dist/commands/agent.task.background.start.d.ts.map +1 -0
  45. package/dist/commands/agent.task.background.start.js +31 -0
  46. package/dist/commands/agent.task.background.start.js.map +1 -0
  47. package/dist/commands/agent.tool.list.d.ts +3 -0
  48. package/dist/commands/agent.tool.list.d.ts.map +1 -0
  49. package/dist/commands/agent.tool.list.js +25 -0
  50. package/dist/commands/agent.tool.list.js.map +1 -0
  51. package/dist/commands/api-key.create.d.ts +3 -0
  52. package/dist/commands/api-key.create.d.ts.map +1 -0
  53. package/dist/commands/api-key.create.js +30 -0
  54. package/dist/commands/api-key.create.js.map +1 -0
  55. package/dist/commands/api-key.revoke.d.ts +3 -0
  56. package/dist/commands/api-key.revoke.d.ts.map +1 -0
  57. package/dist/commands/api-key.revoke.js +17 -0
  58. package/dist/commands/api-key.revoke.js.map +1 -0
  59. package/dist/commands/archive.create.d.ts +3 -0
  60. package/dist/commands/archive.create.d.ts.map +1 -0
  61. package/dist/commands/archive.create.js +29 -0
  62. package/dist/commands/archive.create.js.map +1 -0
  63. package/dist/commands/asset.upload.d.ts +3 -0
  64. package/dist/commands/asset.upload.d.ts.map +1 -0
  65. package/dist/commands/asset.upload.js +31 -0
  66. package/dist/commands/asset.upload.js.map +1 -0
  67. package/dist/commands/auth.login.d.ts +3 -0
  68. package/dist/commands/auth.login.d.ts.map +1 -0
  69. package/dist/commands/auth.login.js +31 -0
  70. package/dist/commands/auth.login.js.map +1 -0
  71. package/dist/commands/auth.logout.d.ts +3 -0
  72. package/dist/commands/auth.logout.d.ts.map +1 -0
  73. package/dist/commands/auth.logout.js +20 -0
  74. package/dist/commands/auth.logout.js.map +1 -0
  75. package/dist/commands/auth.whoami.d.ts +3 -0
  76. package/dist/commands/auth.whoami.d.ts.map +1 -0
  77. package/dist/commands/auth.whoami.js +20 -0
  78. package/dist/commands/auth.whoami.js.map +1 -0
  79. package/dist/commands/automation.create.d.ts +3 -0
  80. package/dist/commands/automation.create.d.ts.map +1 -0
  81. package/dist/commands/automation.create.js +30 -0
  82. package/dist/commands/automation.create.js.map +1 -0
  83. package/dist/commands/automation.list.d.ts +3 -0
  84. package/dist/commands/automation.list.d.ts.map +1 -0
  85. package/dist/commands/automation.list.js +26 -0
  86. package/dist/commands/automation.list.js.map +1 -0
  87. package/dist/commands/automation.trigger.d.ts +3 -0
  88. package/dist/commands/automation.trigger.d.ts.map +1 -0
  89. package/dist/commands/automation.trigger.js +33 -0
  90. package/dist/commands/automation.trigger.js.map +1 -0
  91. package/dist/commands/billing.credits.purchase.d.ts +3 -0
  92. package/dist/commands/billing.credits.purchase.d.ts.map +1 -0
  93. package/dist/commands/billing.credits.purchase.js +31 -0
  94. package/dist/commands/billing.credits.purchase.js.map +1 -0
  95. package/dist/commands/billing.status.d.ts +3 -0
  96. package/dist/commands/billing.status.d.ts.map +1 -0
  97. package/dist/commands/billing.status.js +30 -0
  98. package/dist/commands/billing.status.js.map +1 -0
  99. package/dist/commands/billing.subscription.read.d.ts +3 -0
  100. package/dist/commands/billing.subscription.read.d.ts.map +1 -0
  101. package/dist/commands/billing.subscription.read.js +26 -0
  102. package/dist/commands/billing.subscription.read.js.map +1 -0
  103. package/dist/commands/billing.subscription.upgrade.start.d.ts +3 -0
  104. package/dist/commands/billing.subscription.upgrade.start.d.ts.map +1 -0
  105. package/dist/commands/billing.subscription.upgrade.start.js +32 -0
  106. package/dist/commands/billing.subscription.upgrade.start.js.map +1 -0
  107. package/dist/commands/brandkit.apply.d.ts +3 -0
  108. package/dist/commands/brandkit.apply.d.ts.map +1 -0
  109. package/dist/commands/brandkit.apply.js +31 -0
  110. package/dist/commands/brandkit.apply.js.map +1 -0
  111. package/dist/commands/chat.send.d.ts +3 -0
  112. package/dist/commands/chat.send.d.ts.map +1 -0
  113. package/dist/commands/chat.send.js +30 -0
  114. package/dist/commands/chat.send.js.map +1 -0
  115. package/dist/commands/conversation.archive.d.ts +3 -0
  116. package/dist/commands/conversation.archive.d.ts.map +1 -0
  117. package/dist/commands/conversation.archive.js +22 -0
  118. package/dist/commands/conversation.archive.js.map +1 -0
  119. package/dist/commands/conversation.chat.d.ts +3 -0
  120. package/dist/commands/conversation.chat.d.ts.map +1 -0
  121. package/dist/commands/conversation.chat.js +28 -0
  122. package/dist/commands/conversation.chat.js.map +1 -0
  123. package/dist/commands/conversation.delete.d.ts +3 -0
  124. package/dist/commands/conversation.delete.d.ts.map +1 -0
  125. package/dist/commands/conversation.delete.js +17 -0
  126. package/dist/commands/conversation.delete.js.map +1 -0
  127. package/dist/commands/conversation.list.d.ts +3 -0
  128. package/dist/commands/conversation.list.d.ts.map +1 -0
  129. package/dist/commands/conversation.list.js +31 -0
  130. package/dist/commands/conversation.list.js.map +1 -0
  131. package/dist/commands/conversation.purge.d.ts +3 -0
  132. package/dist/commands/conversation.purge.d.ts.map +1 -0
  133. package/dist/commands/conversation.purge.js +29 -0
  134. package/dist/commands/conversation.purge.js.map +1 -0
  135. package/dist/commands/conversation.rename.d.ts +3 -0
  136. package/dist/commands/conversation.rename.d.ts.map +1 -0
  137. package/dist/commands/conversation.rename.js +21 -0
  138. package/dist/commands/conversation.rename.js.map +1 -0
  139. package/dist/commands/document.create.d.ts +3 -0
  140. package/dist/commands/document.create.d.ts.map +1 -0
  141. package/dist/commands/document.create.js +29 -0
  142. package/dist/commands/document.create.js.map +1 -0
  143. package/dist/commands/document.list.d.ts +3 -0
  144. package/dist/commands/document.list.d.ts.map +1 -0
  145. package/dist/commands/document.list.js +29 -0
  146. package/dist/commands/document.list.js.map +1 -0
  147. package/dist/commands/document.read.d.ts +3 -0
  148. package/dist/commands/document.read.d.ts.map +1 -0
  149. package/dist/commands/document.read.js +23 -0
  150. package/dist/commands/document.read.js.map +1 -0
  151. package/dist/commands/documents.generate.d.ts +3 -0
  152. package/dist/commands/documents.generate.d.ts.map +1 -0
  153. package/dist/commands/documents.generate.js +34 -0
  154. package/dist/commands/documents.generate.js.map +1 -0
  155. package/dist/commands/documents.pdf.create.d.ts +3 -0
  156. package/dist/commands/documents.pdf.create.d.ts.map +1 -0
  157. package/dist/commands/documents.pdf.create.js +39 -0
  158. package/dist/commands/documents.pdf.create.js.map +1 -0
  159. package/dist/commands/form.create.d.ts +3 -0
  160. package/dist/commands/form.create.d.ts.map +1 -0
  161. package/dist/commands/form.create.js +34 -0
  162. package/dist/commands/form.create.js.map +1 -0
  163. package/dist/commands/form.fill.d.ts +3 -0
  164. package/dist/commands/form.fill.d.ts.map +1 -0
  165. package/dist/commands/form.fill.js +36 -0
  166. package/dist/commands/form.fill.js.map +1 -0
  167. package/dist/commands/form.submit.d.ts +3 -0
  168. package/dist/commands/form.submit.d.ts.map +1 -0
  169. package/dist/commands/form.submit.js +34 -0
  170. package/dist/commands/form.submit.js.map +1 -0
  171. package/dist/commands/image.analyze.d.ts +3 -0
  172. package/dist/commands/image.analyze.d.ts.map +1 -0
  173. package/dist/commands/image.analyze.js +24 -0
  174. package/dist/commands/image.analyze.js.map +1 -0
  175. package/dist/commands/image.create.d.ts +3 -0
  176. package/dist/commands/image.create.d.ts.map +1 -0
  177. package/dist/commands/image.create.js +33 -0
  178. package/dist/commands/image.create.js.map +1 -0
  179. package/dist/commands/image.generate.d.ts +3 -0
  180. package/dist/commands/image.generate.d.ts.map +1 -0
  181. package/dist/commands/image.generate.js +35 -0
  182. package/dist/commands/image.generate.js.map +1 -0
  183. package/dist/commands/image.list.d.ts +3 -0
  184. package/dist/commands/image.list.d.ts.map +1 -0
  185. package/dist/commands/image.list.js +29 -0
  186. package/dist/commands/image.list.js.map +1 -0
  187. package/dist/commands/notifications.list.d.ts +3 -0
  188. package/dist/commands/notifications.list.d.ts.map +1 -0
  189. package/dist/commands/notifications.list.js +32 -0
  190. package/dist/commands/notifications.list.js.map +1 -0
  191. package/dist/commands/notifications.mark.d.ts +3 -0
  192. package/dist/commands/notifications.mark.d.ts.map +1 -0
  193. package/dist/commands/notifications.mark.js +22 -0
  194. package/dist/commands/notifications.mark.js.map +1 -0
  195. package/dist/commands/org.create.d.ts +3 -0
  196. package/dist/commands/org.create.d.ts.map +1 -0
  197. package/dist/commands/org.create.js +22 -0
  198. package/dist/commands/org.create.js.map +1 -0
  199. package/dist/commands/org.list.d.ts +3 -0
  200. package/dist/commands/org.list.d.ts.map +1 -0
  201. package/dist/commands/org.list.js +24 -0
  202. package/dist/commands/org.list.js.map +1 -0
  203. package/dist/commands/org.member.add.d.ts +3 -0
  204. package/dist/commands/org.member.add.d.ts.map +1 -0
  205. package/dist/commands/org.member.add.js +22 -0
  206. package/dist/commands/org.member.add.js.map +1 -0
  207. package/dist/commands/org.member.invite.accept.d.ts +3 -0
  208. package/dist/commands/org.member.invite.accept.d.ts.map +1 -0
  209. package/dist/commands/org.member.invite.accept.js +23 -0
  210. package/dist/commands/org.member.invite.accept.js.map +1 -0
  211. package/dist/commands/org.member.invite.decline.d.ts +3 -0
  212. package/dist/commands/org.member.invite.decline.d.ts.map +1 -0
  213. package/dist/commands/org.member.invite.decline.js +24 -0
  214. package/dist/commands/org.member.invite.decline.js.map +1 -0
  215. package/dist/commands/org.member.remove.d.ts +3 -0
  216. package/dist/commands/org.member.remove.d.ts.map +1 -0
  217. package/dist/commands/org.member.remove.js +21 -0
  218. package/dist/commands/org.member.remove.js.map +1 -0
  219. package/dist/commands/org.member.role.change.d.ts +3 -0
  220. package/dist/commands/org.member.role.change.d.ts.map +1 -0
  221. package/dist/commands/org.member.role.change.js +26 -0
  222. package/dist/commands/org.member.role.change.js.map +1 -0
  223. package/dist/commands/organization.create.d.ts +3 -0
  224. package/dist/commands/organization.create.d.ts.map +1 -0
  225. package/dist/commands/organization.create.js +36 -0
  226. package/dist/commands/organization.create.js.map +1 -0
  227. package/dist/commands/plugin.catalog.browse.d.ts +3 -0
  228. package/dist/commands/plugin.catalog.browse.d.ts.map +1 -0
  229. package/dist/commands/plugin.catalog.browse.js +21 -0
  230. package/dist/commands/plugin.catalog.browse.js.map +1 -0
  231. package/dist/commands/plugin.catalog.get.d.ts +3 -0
  232. package/dist/commands/plugin.catalog.get.d.ts.map +1 -0
  233. package/dist/commands/plugin.catalog.get.js +25 -0
  234. package/dist/commands/plugin.catalog.get.js.map +1 -0
  235. package/dist/commands/plugin.credential.reauth.d.ts +3 -0
  236. package/dist/commands/plugin.credential.reauth.d.ts.map +1 -0
  237. package/dist/commands/plugin.credential.reauth.js +23 -0
  238. package/dist/commands/plugin.credential.reauth.js.map +1 -0
  239. package/dist/commands/plugin.credential.set_secret.d.ts +3 -0
  240. package/dist/commands/plugin.credential.set_secret.d.ts.map +1 -0
  241. package/dist/commands/plugin.credential.set_secret.js +32 -0
  242. package/dist/commands/plugin.credential.set_secret.js.map +1 -0
  243. package/dist/commands/plugin.denylist.add.d.ts +3 -0
  244. package/dist/commands/plugin.denylist.add.d.ts.map +1 -0
  245. package/dist/commands/plugin.denylist.add.js +28 -0
  246. package/dist/commands/plugin.denylist.add.js.map +1 -0
  247. package/dist/commands/plugin.denylist.remove.d.ts +3 -0
  248. package/dist/commands/plugin.denylist.remove.d.ts.map +1 -0
  249. package/dist/commands/plugin.denylist.remove.js +26 -0
  250. package/dist/commands/plugin.denylist.remove.js.map +1 -0
  251. package/dist/commands/plugin.install.d.ts +3 -0
  252. package/dist/commands/plugin.install.d.ts.map +1 -0
  253. package/dist/commands/plugin.install.js +21 -0
  254. package/dist/commands/plugin.install.js.map +1 -0
  255. package/dist/commands/plugin.list.d.ts +3 -0
  256. package/dist/commands/plugin.list.d.ts.map +1 -0
  257. package/dist/commands/plugin.list.js +27 -0
  258. package/dist/commands/plugin.list.js.map +1 -0
  259. package/dist/commands/plugin.org.install.d.ts +3 -0
  260. package/dist/commands/plugin.org.install.d.ts.map +1 -0
  261. package/dist/commands/plugin.org.install.js +24 -0
  262. package/dist/commands/plugin.org.install.js.map +1 -0
  263. package/dist/commands/plugin.org.install_bulk.d.ts +3 -0
  264. package/dist/commands/plugin.org.install_bulk.d.ts.map +1 -0
  265. package/dist/commands/plugin.org.install_bulk.js +35 -0
  266. package/dist/commands/plugin.org.install_bulk.js.map +1 -0
  267. package/dist/commands/plugin.org.list.d.ts +3 -0
  268. package/dist/commands/plugin.org.list.d.ts.map +1 -0
  269. package/dist/commands/plugin.org.list.js +35 -0
  270. package/dist/commands/plugin.org.list.js.map +1 -0
  271. package/dist/commands/plugin.org.set_enabled.d.ts +3 -0
  272. package/dist/commands/plugin.org.set_enabled.d.ts.map +1 -0
  273. package/dist/commands/plugin.org.set_enabled.js +27 -0
  274. package/dist/commands/plugin.org.set_enabled.js.map +1 -0
  275. package/dist/commands/plugin.org.uninstall.d.ts +3 -0
  276. package/dist/commands/plugin.org.uninstall.d.ts.map +1 -0
  277. package/dist/commands/plugin.org.uninstall.js +22 -0
  278. package/dist/commands/plugin.org.uninstall.js.map +1 -0
  279. package/dist/commands/plugin.registry.add.d.ts +3 -0
  280. package/dist/commands/plugin.registry.add.d.ts.map +1 -0
  281. package/dist/commands/plugin.registry.add.js +25 -0
  282. package/dist/commands/plugin.registry.add.js.map +1 -0
  283. package/dist/commands/plugin.registry.list.d.ts +3 -0
  284. package/dist/commands/plugin.registry.list.d.ts.map +1 -0
  285. package/dist/commands/plugin.registry.list.js +18 -0
  286. package/dist/commands/plugin.registry.list.js.map +1 -0
  287. package/dist/commands/plugin.registry.remove.d.ts +3 -0
  288. package/dist/commands/plugin.registry.remove.d.ts.map +1 -0
  289. package/dist/commands/plugin.registry.remove.js +24 -0
  290. package/dist/commands/plugin.registry.remove.js.map +1 -0
  291. package/dist/commands/plugin.registry.sync.d.ts +3 -0
  292. package/dist/commands/plugin.registry.sync.d.ts.map +1 -0
  293. package/dist/commands/plugin.registry.sync.js +26 -0
  294. package/dist/commands/plugin.registry.sync.js.map +1 -0
  295. package/dist/commands/plugin.settings.set_auth_alerts.d.ts +3 -0
  296. package/dist/commands/plugin.settings.set_auth_alerts.d.ts.map +1 -0
  297. package/dist/commands/plugin.settings.set_auth_alerts.js +30 -0
  298. package/dist/commands/plugin.settings.set_auth_alerts.js.map +1 -0
  299. package/dist/commands/plugin.uninstall.d.ts +3 -0
  300. package/dist/commands/plugin.uninstall.d.ts.map +1 -0
  301. package/dist/commands/plugin.uninstall.js +21 -0
  302. package/dist/commands/plugin.uninstall.js.map +1 -0
  303. package/dist/commands/plugin.workspace.set_enabled.d.ts +3 -0
  304. package/dist/commands/plugin.workspace.set_enabled.d.ts.map +1 -0
  305. package/dist/commands/plugin.workspace.set_enabled.js +35 -0
  306. package/dist/commands/plugin.workspace.set_enabled.js.map +1 -0
  307. package/dist/commands/skill.workspace.list.d.ts +3 -0
  308. package/dist/commands/skill.workspace.list.d.ts.map +1 -0
  309. package/dist/commands/skill.workspace.list.js +32 -0
  310. package/dist/commands/skill.workspace.list.js.map +1 -0
  311. package/dist/commands/svg.generate.d.ts +3 -0
  312. package/dist/commands/svg.generate.d.ts.map +1 -0
  313. package/dist/commands/svg.generate.js +29 -0
  314. package/dist/commands/svg.generate.js.map +1 -0
  315. package/dist/commands/system.install.instructions.d.ts +3 -0
  316. package/dist/commands/system.install.instructions.d.ts.map +1 -0
  317. package/dist/commands/system.install.instructions.js +31 -0
  318. package/dist/commands/system.install.instructions.js.map +1 -0
  319. package/dist/commands/user.preferences.get.d.ts +3 -0
  320. package/dist/commands/user.preferences.get.d.ts.map +1 -0
  321. package/dist/commands/user.preferences.get.js +20 -0
  322. package/dist/commands/user.preferences.get.js.map +1 -0
  323. package/dist/commands/user.preferences.read.d.ts +3 -0
  324. package/dist/commands/user.preferences.read.d.ts.map +1 -0
  325. package/dist/commands/user.preferences.read.js +30 -0
  326. package/dist/commands/user.preferences.read.js.map +1 -0
  327. package/dist/commands/user.preferences.update.d.ts +3 -0
  328. package/dist/commands/user.preferences.update.d.ts.map +1 -0
  329. package/dist/commands/user.preferences.update.js +36 -0
  330. package/dist/commands/user.preferences.update.js.map +1 -0
  331. package/dist/commands/user.preferences.write.d.ts +3 -0
  332. package/dist/commands/user.preferences.write.d.ts.map +1 -0
  333. package/dist/commands/user.preferences.write.js +47 -0
  334. package/dist/commands/user.preferences.write.js.map +1 -0
  335. package/dist/commands/video.generate.d.ts +3 -0
  336. package/dist/commands/video.generate.d.ts.map +1 -0
  337. package/dist/commands/video.generate.js +27 -0
  338. package/dist/commands/video.generate.js.map +1 -0
  339. package/dist/commands/workflow.cancel.d.ts +3 -0
  340. package/dist/commands/workflow.cancel.d.ts.map +1 -0
  341. package/dist/commands/workflow.cancel.js +24 -0
  342. package/dist/commands/workflow.cancel.js.map +1 -0
  343. package/dist/commands/workflow.run.d.ts +3 -0
  344. package/dist/commands/workflow.run.d.ts.map +1 -0
  345. package/dist/commands/workflow.run.js +40 -0
  346. package/dist/commands/workflow.run.js.map +1 -0
  347. package/dist/commands/workflow.status.d.ts +3 -0
  348. package/dist/commands/workflow.status.d.ts.map +1 -0
  349. package/dist/commands/workflow.status.js +32 -0
  350. package/dist/commands/workflow.status.js.map +1 -0
  351. package/dist/commands/workspace.create.d.ts +3 -0
  352. package/dist/commands/workspace.create.d.ts.map +1 -0
  353. package/dist/commands/workspace.create.js +23 -0
  354. package/dist/commands/workspace.create.js.map +1 -0
  355. package/dist/commands/workspace.invite.send.d.ts +3 -0
  356. package/dist/commands/workspace.invite.send.d.ts.map +1 -0
  357. package/dist/commands/workspace.invite.send.js +33 -0
  358. package/dist/commands/workspace.invite.send.js.map +1 -0
  359. package/dist/commands/workspace.list.d.ts +3 -0
  360. package/dist/commands/workspace.list.d.ts.map +1 -0
  361. package/dist/commands/workspace.list.js +26 -0
  362. package/dist/commands/workspace.list.js.map +1 -0
  363. package/dist/commands/workspace.member.list.d.ts +3 -0
  364. package/dist/commands/workspace.member.list.d.ts.map +1 -0
  365. package/dist/commands/workspace.member.list.js +25 -0
  366. package/dist/commands/workspace.member.list.js.map +1 -0
  367. package/dist/commands/workspace.model.settings.read.d.ts +3 -0
  368. package/dist/commands/workspace.model.settings.read.d.ts.map +1 -0
  369. package/dist/commands/workspace.model.settings.read.js +21 -0
  370. package/dist/commands/workspace.model.settings.read.js.map +1 -0
  371. package/dist/commands/workspace.model.settings.write.d.ts +3 -0
  372. package/dist/commands/workspace.model.settings.write.d.ts.map +1 -0
  373. package/dist/commands/workspace.model.settings.write.js +25 -0
  374. package/dist/commands/workspace.model.settings.write.js.map +1 -0
  375. package/dist/commands.test.d.ts +2 -0
  376. package/dist/commands.test.d.ts.map +1 -0
  377. package/dist/commands.test.js +1749 -0
  378. package/dist/commands.test.js.map +1 -0
  379. package/dist/components/DevStatus.d.ts +2 -0
  380. package/dist/components/DevStatus.d.ts.map +1 -0
  381. package/dist/components/DevStatus.js +61 -0
  382. package/dist/components/DevStatus.js.map +1 -0
  383. package/dist/components/DevStatus.test.d.ts +2 -0
  384. package/dist/components/DevStatus.test.d.ts.map +1 -0
  385. package/dist/components/DevStatus.test.js +108 -0
  386. package/dist/components/DevStatus.test.js.map +1 -0
  387. package/dist/index.d.ts +3 -0
  388. package/dist/index.d.ts.map +1 -0
  389. package/dist/index.js +278 -0
  390. package/dist/index.js.map +1 -0
  391. package/dist/lib/api-client.d.ts +7 -0
  392. package/dist/lib/api-client.d.ts.map +1 -0
  393. package/dist/lib/api-client.js +40 -0
  394. package/dist/lib/api-client.js.map +1 -0
  395. package/dist/lib/api-client.test.d.ts +2 -0
  396. package/dist/lib/api-client.test.d.ts.map +1 -0
  397. package/dist/lib/api-client.test.js +89 -0
  398. package/dist/lib/api-client.test.js.map +1 -0
  399. package/dist/lib/config.d.ts +12 -0
  400. package/dist/lib/config.d.ts.map +1 -0
  401. package/dist/lib/config.js +32 -0
  402. package/dist/lib/config.js.map +1 -0
  403. package/dist/lib/config.test.d.ts +2 -0
  404. package/dist/lib/config.test.d.ts.map +1 -0
  405. package/dist/lib/config.test.js +103 -0
  406. package/dist/lib/config.test.js.map +1 -0
  407. package/package.json +50 -0
package/dist/index.js ADDED
@@ -0,0 +1,278 @@
1
+ #!/usr/bin/env node
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Command } from "commander";
4
+ import { render } from "ink";
5
+ import React from "react";
6
+ import { DevStatus } from "./components/DevStatus.js";
7
+ import { authLoginCommand } from "./commands/auth.login.js";
8
+ import { authLogoutCommand } from "./commands/auth.logout.js";
9
+ import { authWhoamiCommand } from "./commands/auth.whoami.js";
10
+ import { orgListCommand } from "./commands/org.list.js";
11
+ import { orgCreateCommand } from "./commands/org.create.js";
12
+ import { orgMemberAddCommand } from "./commands/org.member.add.js";
13
+ import { orgMemberRemoveCommand } from "./commands/org.member.remove.js";
14
+ import { workspaceListCommand } from "./commands/workspace.list.js";
15
+ import { workspaceCreateCommand } from "./commands/workspace.create.js";
16
+ import { chatSendCommand } from "./commands/chat.send.js";
17
+ import { conversationListCommand } from "./commands/conversation.list.js";
18
+ import { conversationDeleteCommand } from "./commands/conversation.delete.js";
19
+ import { conversationArchiveCommand } from "./commands/conversation.archive.js";
20
+ import { conversationRenameCommand } from "./commands/conversation.rename.js";
21
+ import { apiKeyCreateCommand } from "./commands/api-key.create.js";
22
+ import { apiKeyRevokeCommand } from "./commands/api-key.revoke.js";
23
+ import { notificationsListCommand } from "./commands/notifications.list.js";
24
+ import { notificationsMarkCommand } from "./commands/notifications.mark.js";
25
+ import { pluginListCommand } from "./commands/plugin.list.js";
26
+ import { pluginInstallCommand } from "./commands/plugin.install.js";
27
+ import { pluginUninstallCommand } from "./commands/plugin.uninstall.js";
28
+ import { pluginOrgInstallCommand } from "./commands/plugin.org.install.js";
29
+ import { pluginOrgUninstallCommand } from "./commands/plugin.org.uninstall.js";
30
+ import { pluginCatalogGetCommand } from "./commands/plugin.catalog.get.js";
31
+ import { billingStatusCommand } from "./commands/billing.status.js";
32
+ import { billingCreditsPurchaseCommand } from "./commands/billing.credits.purchase.js";
33
+ import { billingSubscriptionReadCommand } from "./commands/billing.subscription.read.js";
34
+ import { agentMcpListCommand } from "./commands/agent.mcp.list.js";
35
+ import { agentSkillListCommand } from "./commands/agent.skill.list.js";
36
+ import { agentToolListCommand } from "./commands/agent.tool.list.js";
37
+ import { agentApprovalResolveCommand } from "./commands/agent.approval.resolve.js";
38
+ import { orgMemberRoleChangeCommand } from "./commands/org.member.role.change.js";
39
+ import { archiveCreateCommand } from "./commands/archive.create.js";
40
+ import { workflowRunCommand } from "./commands/workflow.run.js";
41
+ import { userPreferencesGetCommand } from "./commands/user.preferences.get.js";
42
+ import { userPreferencesUpdateCommand } from "./commands/user.preferences.update.js";
43
+ import { workspaceMemberListCommand } from "./commands/workspace.member.list.js";
44
+ import { workspaceInviteSendCommand } from "./commands/workspace.invite.send.js";
45
+ import { conversationChatCommand } from "./commands/conversation.chat.js";
46
+ import { imageCreateCommand } from "./commands/image.create.js";
47
+ import { documentCreateCommand } from "./commands/document.create.js";
48
+ import { automationListCommand } from "./commands/automation.list.js";
49
+ import { imageListCommand } from "./commands/image.list.js";
50
+ import { imageAnalyzeCommand } from "./commands/image.analyze.js";
51
+ import { documentListCommand } from "./commands/document.list.js";
52
+ import { documentReadCommand } from "./commands/document.read.js";
53
+ import { formCreateCommand } from "./commands/form.create.js";
54
+ import { formSubmitCommand } from "./commands/form.submit.js";
55
+ import { automationCreateCommand } from "./commands/automation.create.js";
56
+ import { automationTriggerCommand } from "./commands/automation.trigger.js";
57
+ import { skillWorkspaceListCommand } from "./commands/skill.workspace.list.js";
58
+ import { agentMemoryRecallCommand } from "./commands/agent.memory.recall.js";
59
+ import { agentMemoryWriteCommand } from "./commands/agent.memory.write.js";
60
+ import { videoGenerateCommand } from "./commands/video.generate.js";
61
+ import { svgGenerateCommand } from "./commands/svg.generate.js";
62
+ import { workspaceModelSettingsReadCommand } from "./commands/workspace.model.settings.read.js";
63
+ import { workspaceModelSettingsWriteCommand } from "./commands/workspace.model.settings.write.js";
64
+ import { orgMemberInviteAcceptCommand } from "./commands/org.member.invite.accept.js";
65
+ import { pluginRegistryListCommand } from "./commands/plugin.registry.list.js";
66
+ import { pluginCatalogBrowseCommand } from "./commands/plugin.catalog.browse.js";
67
+ import { pluginCredentialReauthCommand } from "./commands/plugin.credential.reauth.js";
68
+ import { imageGenerateCommand } from "./commands/image.generate.js";
69
+ import { documentsGenerateCommand } from "./commands/documents.generate.js";
70
+ import { pluginRegistryAddCommand } from "./commands/plugin.registry.add.js";
71
+ import { agentMcpRegisterCommand } from "./commands/agent.mcp.register.js";
72
+ import { agentPlanApproveCommand } from "./commands/agent.plan.approve.js";
73
+ import { agentTaskBackgroundReadCommand } from "./commands/agent.task.background.read.js";
74
+ import { agentTaskBackgroundStartCommand } from "./commands/agent.task.background.start.js";
75
+ import { agentTaskBackgroundCancelCommand } from "./commands/agent.task.background.cancel.js";
76
+ import { assetUploadCommand } from "./commands/asset.upload.js";
77
+ import { billingSubscriptionUpgradeStartCommand } from "./commands/billing.subscription.upgrade.start.js";
78
+ import { brandkitApplyCommand } from "./commands/brandkit.apply.js";
79
+ import { conversationPurgeCommand } from "./commands/conversation.purge.js";
80
+ import { documentsPdfCreateCommand } from "./commands/documents.pdf.create.js";
81
+ import { formFillCommand } from "./commands/form.fill.js";
82
+ import { orgMemberInviteDeclineCommand } from "./commands/org.member.invite.decline.js";
83
+ import { organizationCreateCommand } from "./commands/organization.create.js";
84
+ import { pluginCredentialSetSecretCommand } from "./commands/plugin.credential.set_secret.js";
85
+ import { pluginDenylistAddCommand } from "./commands/plugin.denylist.add.js";
86
+ import { pluginDenylistRemoveCommand } from "./commands/plugin.denylist.remove.js";
87
+ import { pluginOrgInstallBulkCommand } from "./commands/plugin.org.install_bulk.js";
88
+ import { pluginOrgListCommand } from "./commands/plugin.org.list.js";
89
+ import { pluginOrgSetEnabledCommand } from "./commands/plugin.org.set_enabled.js";
90
+ import { pluginRegistryRemoveCommand } from "./commands/plugin.registry.remove.js";
91
+ import { pluginRegistrySyncCommand } from "./commands/plugin.registry.sync.js";
92
+ import { pluginSettingsSetAuthAlertsCommand } from "./commands/plugin.settings.set_auth_alerts.js";
93
+ import { pluginWorkspaceSetEnabledCommand } from "./commands/plugin.workspace.set_enabled.js";
94
+ import { systemInstallInstructionsCommand } from "./commands/system.install.instructions.js";
95
+ import { workflowCancelCommand } from "./commands/workflow.cancel.js";
96
+ import { workflowStatusCommand } from "./commands/workflow.status.js";
97
+ import { userPreferencesReadCommand } from "./commands/user.preferences.read.js";
98
+ import { userPreferencesWriteCommand } from "./commands/user.preferences.write.js";
99
+ const program = new Command();
100
+ program
101
+ .name("oxagen")
102
+ .description("Oxagen developer CLI")
103
+ .version("0.2.0");
104
+ program
105
+ .command("dev")
106
+ .description("Show the current dev stack status")
107
+ .action(() => {
108
+ render(_jsx(DevStatus, {}));
109
+ });
110
+ // auth
111
+ const auth = program.command("auth").description("Authentication commands");
112
+ auth.addCommand(authLoginCommand);
113
+ auth.addCommand(authLogoutCommand);
114
+ auth.addCommand(authWhoamiCommand);
115
+ // org
116
+ const org = program.command("org").description("Organization commands");
117
+ org.addCommand(orgListCommand);
118
+ org.addCommand(orgCreateCommand);
119
+ const orgMember = org.command("member").description("Org member management");
120
+ orgMember.addCommand(orgMemberAddCommand);
121
+ orgMember.addCommand(orgMemberRemoveCommand);
122
+ orgMember.addCommand(orgMemberRoleChangeCommand);
123
+ const orgMemberInvite = orgMember.command("invite").description("Org member invitations");
124
+ orgMemberInvite.addCommand(orgMemberInviteAcceptCommand);
125
+ orgMemberInvite.addCommand(orgMemberInviteDeclineCommand);
126
+ org.addCommand(organizationCreateCommand);
127
+ // workspace
128
+ const workspace = program.command("workspace").description("Workspace commands");
129
+ workspace.addCommand(workspaceListCommand);
130
+ workspace.addCommand(workspaceCreateCommand);
131
+ // chat
132
+ const chat = program.command("chat").description("Chat and messaging commands");
133
+ chat.addCommand(chatSendCommand);
134
+ // conversation
135
+ const conversation = program.command("conversation").description("Conversation management");
136
+ conversation.addCommand(conversationListCommand);
137
+ conversation.addCommand(conversationDeleteCommand);
138
+ conversation.addCommand(conversationArchiveCommand);
139
+ conversation.addCommand(conversationRenameCommand);
140
+ // api-key
141
+ const apiKey = program.command("api-key").description("API key management");
142
+ apiKey.addCommand(apiKeyCreateCommand);
143
+ apiKey.addCommand(apiKeyRevokeCommand);
144
+ // notifications
145
+ const notifications = program.command("notifications").description("Notification management");
146
+ notifications.addCommand(notificationsListCommand);
147
+ notifications.addCommand(notificationsMarkCommand);
148
+ // plugin
149
+ const plugin = program.command("plugin").description("Plugin marketplace commands");
150
+ plugin.addCommand(pluginListCommand);
151
+ plugin.addCommand(pluginInstallCommand);
152
+ plugin.addCommand(pluginUninstallCommand);
153
+ const pluginOrg = plugin.command("org").description("Plugin organization management");
154
+ pluginOrg.addCommand(pluginOrgInstallCommand);
155
+ pluginOrg.addCommand(pluginOrgUninstallCommand);
156
+ const pluginCatalog = plugin.command("catalog").description("Plugin catalog");
157
+ pluginCatalog.addCommand(pluginCatalogGetCommand);
158
+ pluginCatalog.addCommand(pluginCatalogBrowseCommand);
159
+ const pluginRegistry = plugin.command("registry").description("Plugin registry management");
160
+ pluginRegistry.addCommand(pluginRegistryListCommand);
161
+ pluginRegistry.addCommand(pluginRegistryAddCommand);
162
+ pluginRegistry.addCommand(pluginRegistryRemoveCommand);
163
+ pluginRegistry.addCommand(pluginRegistrySyncCommand);
164
+ const pluginCredential = plugin.command("credential").description("Plugin credential management");
165
+ pluginCredential.addCommand(pluginCredentialReauthCommand);
166
+ pluginCredential.addCommand(pluginCredentialSetSecretCommand);
167
+ const pluginDenylist = plugin.command("denylist").description("Plugin denylist management");
168
+ pluginDenylist.addCommand(pluginDenylistAddCommand);
169
+ pluginDenylist.addCommand(pluginDenylistRemoveCommand);
170
+ pluginOrg.addCommand(pluginOrgInstallBulkCommand);
171
+ pluginOrg.addCommand(pluginOrgListCommand);
172
+ pluginOrg.addCommand(pluginOrgSetEnabledCommand);
173
+ const pluginSettings = plugin.command("settings").description("Plugin settings");
174
+ pluginSettings.addCommand(pluginSettingsSetAuthAlertsCommand);
175
+ pluginOrg.addCommand(pluginWorkspaceSetEnabledCommand);
176
+ // billing
177
+ const billing = program.command("billing").description("Billing and subscription commands");
178
+ billing.addCommand(billingStatusCommand);
179
+ billing.addCommand(billingCreditsPurchaseCommand);
180
+ billing.addCommand(billingSubscriptionReadCommand);
181
+ const billingSubscription = billing.command("subscription").description("Subscription management");
182
+ billingSubscription.addCommand(billingSubscriptionUpgradeStartCommand);
183
+ // agent
184
+ const agent = program.command("agent").description("Agent commands");
185
+ const agentMcp = agent.command("mcp").description("MCP server management");
186
+ agentMcp.addCommand(agentMcpListCommand);
187
+ const agentSkill = agent.command("skill").description("Agent skill management");
188
+ agentSkill.addCommand(agentSkillListCommand);
189
+ const agentTool = agent.command("tool").description("Agent tool management");
190
+ agentTool.addCommand(agentToolListCommand);
191
+ const agentApproval = agent.command("approval").description("Agent approval management");
192
+ agentApproval.addCommand(agentApprovalResolveCommand);
193
+ const agentMemory = agent.command("memory").description("Agent memory management");
194
+ agentMemory.addCommand(agentMemoryRecallCommand);
195
+ agentMemory.addCommand(agentMemoryWriteCommand);
196
+ agentMcp.addCommand(agentMcpRegisterCommand);
197
+ const agentPlan = agent.command("plan").description("Agent plan management");
198
+ agentPlan.addCommand(agentPlanApproveCommand);
199
+ const agentTask = agent.command("task").description("Agent task management");
200
+ const agentTaskBackground = agentTask.command("background").description("Background task management");
201
+ agentTaskBackground.addCommand(agentTaskBackgroundReadCommand);
202
+ agentTaskBackground.addCommand(agentTaskBackgroundStartCommand);
203
+ agentTaskBackground.addCommand(agentTaskBackgroundCancelCommand);
204
+ // archive
205
+ const archive = program.command("archive").description("Archive management");
206
+ archive.addCommand(archiveCreateCommand);
207
+ // asset
208
+ const asset = program.command("asset").description("Asset management");
209
+ asset.addCommand(assetUploadCommand);
210
+ // brandkit
211
+ const brandkit = program.command("brandkit").description("Brand kit commands");
212
+ brandkit.addCommand(brandkitApplyCommand);
213
+ // workflow
214
+ const workflow = program.command("workflow").description("Workflow automation");
215
+ workflow.addCommand(workflowRunCommand);
216
+ workflow.addCommand(workflowCancelCommand);
217
+ workflow.addCommand(workflowStatusCommand);
218
+ // system
219
+ const system = program.command("system").description("System commands");
220
+ system.addCommand(systemInstallInstructionsCommand);
221
+ // user
222
+ const user = program.command("user").description("User account commands");
223
+ const userPreferences = user.command("preferences").description("User preference management");
224
+ userPreferences.addCommand(userPreferencesGetCommand);
225
+ userPreferences.addCommand(userPreferencesUpdateCommand);
226
+ userPreferences.addCommand(userPreferencesReadCommand);
227
+ userPreferences.addCommand(userPreferencesWriteCommand);
228
+ // workspace member + invite
229
+ const workspaceMember = workspace.command("member").description("Workspace member management");
230
+ workspaceMember.addCommand(workspaceMemberListCommand);
231
+ const workspaceInvite = workspace.command("invite").description("Workspace invitation management");
232
+ workspaceInvite.addCommand(workspaceInviteSendCommand);
233
+ const workspaceModel = workspace.command("model").description("Workspace model settings");
234
+ const workspaceModelSettings = workspaceModel.command("settings").description("Model settings management");
235
+ workspaceModelSettings.addCommand(workspaceModelSettingsReadCommand);
236
+ workspaceModelSettings.addCommand(workspaceModelSettingsWriteCommand);
237
+ // conversation chat + purge
238
+ conversation.addCommand(conversationChatCommand);
239
+ conversation.addCommand(conversationPurgeCommand);
240
+ // image
241
+ const image = program.command("image").description("Image generation commands");
242
+ image.addCommand(imageCreateCommand);
243
+ image.addCommand(imageListCommand);
244
+ image.addCommand(imageAnalyzeCommand);
245
+ image.addCommand(imageGenerateCommand);
246
+ // document
247
+ const document = program.command("document").description("Document management commands");
248
+ document.addCommand(documentCreateCommand);
249
+ document.addCommand(documentListCommand);
250
+ document.addCommand(documentReadCommand);
251
+ const documents = program.command("documents").description("Document generation commands");
252
+ documents.addCommand(documentsGenerateCommand);
253
+ documents.addCommand(documentsPdfCreateCommand);
254
+ // automation
255
+ const automation = program.command("automation").description("Automation management commands");
256
+ automation.addCommand(automationListCommand);
257
+ automation.addCommand(automationCreateCommand);
258
+ automation.addCommand(automationTriggerCommand);
259
+ // form
260
+ const form = program.command("form").description("Form management commands");
261
+ form.addCommand(formCreateCommand);
262
+ form.addCommand(formSubmitCommand);
263
+ form.addCommand(formFillCommand);
264
+ // skill
265
+ const skill = program.command("skill").description("Skill management commands");
266
+ const skillWorkspace = skill.command("workspace").description("Workspace skill management");
267
+ skillWorkspace.addCommand(skillWorkspaceListCommand);
268
+ // video
269
+ const video = program.command("video").description("Video generation commands");
270
+ video.addCommand(videoGenerateCommand);
271
+ // svg
272
+ const svg = program.command("svg").description("SVG generation commands");
273
+ svg.addCommand(svgGenerateCommand);
274
+ program.parse(process.argv);
275
+ if (program.args.length === 0) {
276
+ program.outputHelp();
277
+ }
278
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class ApiError extends Error {
2
+ readonly status: number;
3
+ constructor(status: number, message: string);
4
+ }
5
+ export declare function apiRequest<T = unknown>(path: string, options?: RequestInit): Promise<T>;
6
+ export declare function requireAuth(): void;
7
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAS,SAAQ,KAAK;aAEf,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM;CAKlB;AAED,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,CAAC,CAAC,CAyBZ;AAED,wBAAgB,WAAW,IAAI,IAAI,CAKlC"}
@@ -0,0 +1,40 @@
1
+ import { getToken, getApiUrl } from "./config.js";
2
+ export class ApiError extends Error {
3
+ status;
4
+ constructor(status, message) {
5
+ super(message);
6
+ this.status = status;
7
+ this.name = "ApiError";
8
+ }
9
+ }
10
+ export async function apiRequest(path, options = {}) {
11
+ const token = getToken();
12
+ const base = getApiUrl();
13
+ const url = `${base}/api/v1${path}`;
14
+ const headers = {
15
+ "Content-Type": "application/json",
16
+ ...options.headers,
17
+ };
18
+ if (token)
19
+ headers["Authorization"] = `Bearer ${token}`;
20
+ const res = await fetch(url, { ...options, headers });
21
+ if (!res.ok) {
22
+ let message = `HTTP ${res.status}`;
23
+ try {
24
+ const body = (await res.json());
25
+ message = body.error ?? body.message ?? message;
26
+ }
27
+ catch {
28
+ // ignore parse error
29
+ }
30
+ throw new ApiError(res.status, message);
31
+ }
32
+ return res.json();
33
+ }
34
+ export function requireAuth() {
35
+ if (!getToken()) {
36
+ console.error("Error: not authenticated. Run `oxagen auth login` first.");
37
+ process.exit(1);
38
+ }
39
+ }
40
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEf;IADlB,YACkB,MAAc,EAC9B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,WAAM,GAAN,MAAM,CAAQ;QAI9B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,UAAuB,EAAE;IAEzB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,GAAG,IAAI,UAAU,IAAI,EAAE,CAAC;IAEpC,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,GAAI,OAAO,CAAC,OAAkC;KAC/C,CAAC;IACF,IAAI,KAAK;QAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;IAExD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAEtD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,OAAO,GAAG,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyC,CAAC;YACxE,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=api-client.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.test.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,89 @@
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ vi.mock("./config.js", () => ({
3
+ getToken: vi.fn(() => "test-token"),
4
+ getApiUrl: vi.fn(() => "http://localhost:4000"),
5
+ }));
6
+ import { apiRequest, requireAuth, ApiError } from "./api-client.js";
7
+ import * as config from "./config.js";
8
+ const mockGetToken = vi.mocked(config.getToken);
9
+ const mockFetch = vi.fn();
10
+ vi.stubGlobal("fetch", mockFetch);
11
+ beforeEach(() => {
12
+ vi.clearAllMocks();
13
+ mockGetToken.mockReturnValue("test-token");
14
+ });
15
+ describe("apiRequest", () => {
16
+ it("calls the correct URL with auth header", async () => {
17
+ mockFetch.mockResolvedValueOnce({
18
+ ok: true,
19
+ json: async () => ({ ok: true }),
20
+ });
21
+ const result = await apiRequest("/conversations");
22
+ expect(mockFetch).toHaveBeenCalledWith("http://localhost:4000/api/v1/conversations", expect.objectContaining({
23
+ headers: expect.objectContaining({ Authorization: "Bearer test-token" }),
24
+ }));
25
+ expect(result).toEqual({ ok: true });
26
+ });
27
+ it("omits Authorization header when no token", async () => {
28
+ mockGetToken.mockReturnValue(undefined);
29
+ mockFetch.mockResolvedValueOnce({ ok: true, json: async () => ({}) });
30
+ await apiRequest("/health");
31
+ const callInit = mockFetch.mock.calls[0][1];
32
+ const headers = callInit?.headers;
33
+ expect(headers?.["Authorization"]).toBeUndefined();
34
+ });
35
+ it("throws ApiError with status on non-ok response", async () => {
36
+ mockFetch.mockResolvedValue({
37
+ ok: false,
38
+ status: 401,
39
+ json: async () => ({ error: "Unauthorized" }),
40
+ });
41
+ const err = await apiRequest("/me").catch((e) => e);
42
+ expect(err).toBeInstanceOf(ApiError);
43
+ expect(err.status).toBe(401);
44
+ expect(err.message).toBe("Unauthorized");
45
+ mockFetch.mockReset();
46
+ });
47
+ it("throws ApiError with generic message if body parse fails", async () => {
48
+ mockFetch.mockResolvedValueOnce({
49
+ ok: false,
50
+ status: 500,
51
+ json: async () => { throw new Error("parse fail"); },
52
+ });
53
+ await expect(apiRequest("/fail")).rejects.toMatchObject({ status: 500 });
54
+ });
55
+ it("sends POST body as JSON", async () => {
56
+ mockFetch.mockResolvedValueOnce({ ok: true, json: async () => ({ id: 1 }) });
57
+ await apiRequest("/things", {
58
+ method: "POST",
59
+ body: JSON.stringify({ name: "test" }),
60
+ });
61
+ const [, init] = mockFetch.mock.calls[0];
62
+ expect(init?.body).toBe(JSON.stringify({ name: "test" }));
63
+ });
64
+ });
65
+ describe("requireAuth", () => {
66
+ it("does nothing when token is present", () => {
67
+ mockGetToken.mockReturnValue("tok");
68
+ expect(() => requireAuth()).not.toThrow();
69
+ });
70
+ it("calls process.exit(1) when no token", () => {
71
+ mockGetToken.mockReturnValue(undefined);
72
+ const consoleSpy = vi.spyOn(console, "error").mockImplementation(() => { });
73
+ const exitSpy = vi.spyOn(process, "exit").mockImplementation(() => { throw new Error("exit"); });
74
+ expect(() => requireAuth()).toThrow("exit");
75
+ expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining("not authenticated"));
76
+ consoleSpy.mockRestore();
77
+ exitSpy.mockRestore();
78
+ });
79
+ });
80
+ describe("ApiError", () => {
81
+ it("has correct name and status", () => {
82
+ const err = new ApiError(404, "Not found");
83
+ expect(err.name).toBe("ApiError");
84
+ expect(err.status).toBe(404);
85
+ expect(err.message).toBe("Not found");
86
+ expect(err instanceof Error).toBe(true);
87
+ });
88
+ });
89
+ //# sourceMappingURL=api-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.test.js","sourceRoot":"","sources":["../../src/lib/api-client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface CliConfig {
2
+ token?: string;
3
+ orgSlug?: string;
4
+ workspaceSlug?: string;
5
+ apiUrl?: string;
6
+ }
7
+ export declare function readConfig(): CliConfig;
8
+ export declare function writeConfig(patch: Partial<CliConfig>): void;
9
+ export declare function clearConfig(): void;
10
+ export declare function getToken(): string | undefined;
11
+ export declare function getApiUrl(): string;
12
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,UAAU,IAAI,SAAS,CAOtC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAK3D;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,SAAS,CAE7C;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
@@ -0,0 +1,32 @@
1
+ import { homedir } from "os";
2
+ import { join } from "path";
3
+ import { readFileSync, writeFileSync, mkdirSync, existsSync } from "fs";
4
+ const CONFIG_DIR = join(homedir(), ".config", "oxagen");
5
+ const CONFIG_FILE = join(CONFIG_DIR, "config.json");
6
+ export function readConfig() {
7
+ if (!existsSync(CONFIG_FILE))
8
+ return {};
9
+ try {
10
+ return JSON.parse(readFileSync(CONFIG_FILE, "utf8"));
11
+ }
12
+ catch {
13
+ return {};
14
+ }
15
+ }
16
+ export function writeConfig(patch) {
17
+ const current = readConfig();
18
+ const next = { ...current, ...patch };
19
+ if (!existsSync(CONFIG_DIR))
20
+ mkdirSync(CONFIG_DIR, { recursive: true });
21
+ writeFileSync(CONFIG_FILE, JSON.stringify(next, null, 2), "utf8");
22
+ }
23
+ export function clearConfig() {
24
+ writeConfig({ token: undefined, orgSlug: undefined, workspaceSlug: undefined });
25
+ }
26
+ export function getToken() {
27
+ return readConfig().token;
28
+ }
29
+ export function getApiUrl() {
30
+ return process.env["OXAGEN_API_URL"] ?? readConfig().apiUrl ?? "https://oxagen-v2-api.vercel.app";
31
+ }
32
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AASxE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACxD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEpD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAc,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAyB;IACnD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,UAAU,EAAE,CAAC,MAAM,IAAI,kCAAkC,CAAC;AACpG,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../src/lib/config.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,103 @@
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ // Factory must not reference outer-scope variables (hoisted before const declarations)
3
+ vi.mock("fs", () => ({
4
+ existsSync: vi.fn(),
5
+ readFileSync: vi.fn(),
6
+ writeFileSync: vi.fn(),
7
+ mkdirSync: vi.fn(),
8
+ }));
9
+ vi.mock("os", () => ({ homedir: () => "/mock-home" }));
10
+ vi.mock("path", () => ({
11
+ join: (...parts) => parts.join("/"),
12
+ }));
13
+ import * as fs from "fs";
14
+ import { readConfig, writeConfig, clearConfig, getToken, getApiUrl } from "./config.js";
15
+ const mockExistsSync = vi.mocked(fs.existsSync);
16
+ const mockReadFileSync = vi.mocked(fs.readFileSync);
17
+ const mockWriteFileSync = vi.mocked(fs.writeFileSync);
18
+ const mockMkdirSync = vi.mocked(fs.mkdirSync);
19
+ beforeEach(() => {
20
+ vi.clearAllMocks();
21
+ delete process.env["OXAGEN_API_URL"];
22
+ });
23
+ describe("readConfig", () => {
24
+ it("returns empty object when config file does not exist", () => {
25
+ mockExistsSync.mockReturnValue(false);
26
+ expect(readConfig()).toEqual({});
27
+ });
28
+ it("parses and returns JSON config", () => {
29
+ mockExistsSync.mockReturnValue(true);
30
+ mockReadFileSync.mockReturnValue(JSON.stringify({ token: "tok123", orgSlug: "my-org" }));
31
+ expect(readConfig()).toEqual({ token: "tok123", orgSlug: "my-org" });
32
+ });
33
+ it("returns empty object on JSON parse error", () => {
34
+ mockExistsSync.mockReturnValue(true);
35
+ mockReadFileSync.mockReturnValue("INVALID JSON {{{");
36
+ expect(readConfig()).toEqual({});
37
+ });
38
+ });
39
+ describe("writeConfig", () => {
40
+ it("creates config dir if missing and writes merged config", () => {
41
+ // existsSync: true for file (readConfig), false for dir check (mkdirSync guard)
42
+ mockExistsSync
43
+ .mockReturnValueOnce(true) // readConfig file check
44
+ .mockReturnValueOnce(false); // dir check in writeConfig
45
+ mockReadFileSync.mockReturnValue(JSON.stringify({ token: "old" }));
46
+ writeConfig({ orgSlug: "new-org" });
47
+ expect(mockMkdirSync).toHaveBeenCalled();
48
+ expect(mockWriteFileSync).toHaveBeenCalled();
49
+ const calls = mockWriteFileSync.mock.calls;
50
+ const written = JSON.parse(calls[0]?.[1]);
51
+ expect(written).toMatchObject({ token: "old", orgSlug: "new-org" });
52
+ });
53
+ it("skips mkdirSync when config dir already exists", () => {
54
+ mockExistsSync.mockReturnValue(true);
55
+ mockReadFileSync.mockReturnValue(JSON.stringify({}));
56
+ writeConfig({ token: "new-tok" });
57
+ expect(mockMkdirSync).not.toHaveBeenCalled();
58
+ const calls = mockWriteFileSync.mock.calls;
59
+ const written = JSON.parse(calls[0]?.[1]);
60
+ expect(written.token).toBe("new-tok");
61
+ });
62
+ });
63
+ describe("clearConfig", () => {
64
+ it("unsets token, orgSlug, workspaceSlug but preserves other fields", () => {
65
+ mockExistsSync.mockReturnValue(true);
66
+ mockReadFileSync.mockReturnValue(JSON.stringify({ token: "t", orgSlug: "o", workspaceSlug: "w", apiUrl: "u" }));
67
+ clearConfig();
68
+ const calls = mockWriteFileSync.mock.calls;
69
+ const written = JSON.parse(calls[0]?.[1]);
70
+ expect(written.token).toBeUndefined();
71
+ expect(written.orgSlug).toBeUndefined();
72
+ expect(written.workspaceSlug).toBeUndefined();
73
+ expect(written.apiUrl).toBe("u");
74
+ });
75
+ });
76
+ describe("getToken", () => {
77
+ it("returns token from config", () => {
78
+ mockExistsSync.mockReturnValue(true);
79
+ mockReadFileSync.mockReturnValue(JSON.stringify({ token: "my-token" }));
80
+ expect(getToken()).toBe("my-token");
81
+ });
82
+ it("returns undefined when no token", () => {
83
+ mockExistsSync.mockReturnValue(false);
84
+ expect(getToken()).toBeUndefined();
85
+ });
86
+ });
87
+ describe("getApiUrl", () => {
88
+ it("returns env var when set", () => {
89
+ process.env["OXAGEN_API_URL"] = "http://localhost:4000";
90
+ mockExistsSync.mockReturnValue(false);
91
+ expect(getApiUrl()).toBe("http://localhost:4000");
92
+ });
93
+ it("returns config apiUrl when no env var", () => {
94
+ mockExistsSync.mockReturnValue(true);
95
+ mockReadFileSync.mockReturnValue(JSON.stringify({ apiUrl: "http://custom.api" }));
96
+ expect(getApiUrl()).toBe("http://custom.api");
97
+ });
98
+ it("falls back to prod URL", () => {
99
+ mockExistsSync.mockReturnValue(false);
100
+ expect(getApiUrl()).toBe("https://oxagen-v2-api.vercel.app");
101
+ });
102
+ });
103
+ //# sourceMappingURL=config.test.js.map