@swarmify/agents-cli 1.13.3 → 1.14.0

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 (567) hide show
  1. package/README.md +2 -319
  2. package/bin/agents.js +2 -0
  3. package/package.json +13 -79
  4. package/scripts/postinstall.js +4 -71
  5. package/CHANGELOG.md +0 -316
  6. package/LICENSE +0 -21
  7. package/dist/commands/__tests__/sessions-tail.test.d.ts +0 -2
  8. package/dist/commands/__tests__/sessions-tail.test.d.ts.map +0 -1
  9. package/dist/commands/__tests__/sessions-tail.test.js +0 -108
  10. package/dist/commands/__tests__/sessions-tail.test.js.map +0 -1
  11. package/dist/commands/__tests__/sessions.test.d.ts +0 -2
  12. package/dist/commands/__tests__/sessions.test.d.ts.map +0 -1
  13. package/dist/commands/__tests__/sessions.test.js +0 -636
  14. package/dist/commands/__tests__/sessions.test.js.map +0 -1
  15. package/dist/commands/cloud.d.ts +0 -11
  16. package/dist/commands/cloud.d.ts.map +0 -1
  17. package/dist/commands/cloud.js +0 -363
  18. package/dist/commands/cloud.js.map +0 -1
  19. package/dist/commands/commands.d.ts +0 -12
  20. package/dist/commands/commands.d.ts.map +0 -1
  21. package/dist/commands/commands.js +0 -629
  22. package/dist/commands/commands.js.map +0 -1
  23. package/dist/commands/daemon.d.ts +0 -11
  24. package/dist/commands/daemon.d.ts.map +0 -1
  25. package/dist/commands/daemon.js +0 -119
  26. package/dist/commands/daemon.js.map +0 -1
  27. package/dist/commands/drive.d.ts +0 -11
  28. package/dist/commands/drive.d.ts.map +0 -1
  29. package/dist/commands/drive.js +0 -175
  30. package/dist/commands/drive.js.map +0 -1
  31. package/dist/commands/exec.d.ts +0 -11
  32. package/dist/commands/exec.d.ts.map +0 -1
  33. package/dist/commands/exec.js +0 -251
  34. package/dist/commands/exec.js.map +0 -1
  35. package/dist/commands/factory.d.ts +0 -11
  36. package/dist/commands/factory.d.ts.map +0 -1
  37. package/dist/commands/factory.js +0 -445
  38. package/dist/commands/factory.js.map +0 -1
  39. package/dist/commands/fork.d.ts +0 -11
  40. package/dist/commands/fork.d.ts.map +0 -1
  41. package/dist/commands/fork.js +0 -147
  42. package/dist/commands/fork.js.map +0 -1
  43. package/dist/commands/hooks.d.ts +0 -12
  44. package/dist/commands/hooks.d.ts.map +0 -1
  45. package/dist/commands/hooks.js +0 -690
  46. package/dist/commands/hooks.js.map +0 -1
  47. package/dist/commands/init.d.ts +0 -15
  48. package/dist/commands/init.d.ts.map +0 -1
  49. package/dist/commands/init.js +0 -137
  50. package/dist/commands/init.js.map +0 -1
  51. package/dist/commands/mcp.d.ts +0 -12
  52. package/dist/commands/mcp.d.ts.map +0 -1
  53. package/dist/commands/mcp.js +0 -583
  54. package/dist/commands/mcp.js.map +0 -1
  55. package/dist/commands/models.d.ts +0 -11
  56. package/dist/commands/models.d.ts.map +0 -1
  57. package/dist/commands/models.js +0 -170
  58. package/dist/commands/models.js.map +0 -1
  59. package/dist/commands/packages.d.ts +0 -11
  60. package/dist/commands/packages.d.ts.map +0 -1
  61. package/dist/commands/packages.js +0 -551
  62. package/dist/commands/packages.js.map +0 -1
  63. package/dist/commands/permissions.d.ts +0 -12
  64. package/dist/commands/permissions.d.ts.map +0 -1
  65. package/dist/commands/permissions.js +0 -724
  66. package/dist/commands/permissions.js.map +0 -1
  67. package/dist/commands/plugins.d.ts +0 -11
  68. package/dist/commands/plugins.d.ts.map +0 -1
  69. package/dist/commands/plugins.js +0 -393
  70. package/dist/commands/plugins.js.map +0 -1
  71. package/dist/commands/profiles.d.ts +0 -12
  72. package/dist/commands/profiles.d.ts.map +0 -1
  73. package/dist/commands/profiles.js +0 -255
  74. package/dist/commands/profiles.js.map +0 -1
  75. package/dist/commands/pty.d.ts +0 -21
  76. package/dist/commands/pty.d.ts.map +0 -1
  77. package/dist/commands/pty.js +0 -391
  78. package/dist/commands/pty.js.map +0 -1
  79. package/dist/commands/pull.d.ts +0 -11
  80. package/dist/commands/pull.d.ts.map +0 -1
  81. package/dist/commands/pull.js +0 -456
  82. package/dist/commands/pull.js.map +0 -1
  83. package/dist/commands/push.d.ts +0 -11
  84. package/dist/commands/push.d.ts.map +0 -1
  85. package/dist/commands/push.js +0 -188
  86. package/dist/commands/push.js.map +0 -1
  87. package/dist/commands/refresh-memory.d.ts +0 -16
  88. package/dist/commands/refresh-memory.d.ts.map +0 -1
  89. package/dist/commands/refresh-memory.js +0 -52
  90. package/dist/commands/refresh-memory.js.map +0 -1
  91. package/dist/commands/resource-view.d.ts +0 -39
  92. package/dist/commands/resource-view.d.ts.map +0 -1
  93. package/dist/commands/resource-view.js +0 -197
  94. package/dist/commands/resource-view.js.map +0 -1
  95. package/dist/commands/routines.d.ts +0 -11
  96. package/dist/commands/routines.d.ts.map +0 -1
  97. package/dist/commands/routines.js +0 -590
  98. package/dist/commands/routines.js.map +0 -1
  99. package/dist/commands/rules.d.ts +0 -12
  100. package/dist/commands/rules.d.ts.map +0 -1
  101. package/dist/commands/rules.js +0 -489
  102. package/dist/commands/rules.js.map +0 -1
  103. package/dist/commands/secrets.d.ts +0 -11
  104. package/dist/commands/secrets.d.ts.map +0 -1
  105. package/dist/commands/secrets.js +0 -352
  106. package/dist/commands/secrets.js.map +0 -1
  107. package/dist/commands/sessions-picker.d.ts +0 -18
  108. package/dist/commands/sessions-picker.d.ts.map +0 -1
  109. package/dist/commands/sessions-picker.js +0 -265
  110. package/dist/commands/sessions-picker.js.map +0 -1
  111. package/dist/commands/sessions-tail.d.ts +0 -20
  112. package/dist/commands/sessions-tail.d.ts.map +0 -1
  113. package/dist/commands/sessions-tail.js +0 -236
  114. package/dist/commands/sessions-tail.js.map +0 -1
  115. package/dist/commands/sessions.d.ts +0 -18
  116. package/dist/commands/sessions.d.ts.map +0 -1
  117. package/dist/commands/sessions.js +0 -1173
  118. package/dist/commands/sessions.js.map +0 -1
  119. package/dist/commands/skills.d.ts +0 -12
  120. package/dist/commands/skills.d.ts.map +0 -1
  121. package/dist/commands/skills.js +0 -717
  122. package/dist/commands/skills.js.map +0 -1
  123. package/dist/commands/status.d.ts +0 -10
  124. package/dist/commands/status.d.ts.map +0 -1
  125. package/dist/commands/status.js +0 -26
  126. package/dist/commands/status.js.map +0 -1
  127. package/dist/commands/subagents.d.ts +0 -11
  128. package/dist/commands/subagents.d.ts.map +0 -1
  129. package/dist/commands/subagents.js +0 -361
  130. package/dist/commands/subagents.js.map +0 -1
  131. package/dist/commands/sync.d.ts +0 -11
  132. package/dist/commands/sync.d.ts.map +0 -1
  133. package/dist/commands/sync.js +0 -70
  134. package/dist/commands/sync.js.map +0 -1
  135. package/dist/commands/teams-picker.d.ts +0 -18
  136. package/dist/commands/teams-picker.d.ts.map +0 -1
  137. package/dist/commands/teams-picker.js +0 -290
  138. package/dist/commands/teams-picker.js.map +0 -1
  139. package/dist/commands/teams.d.ts +0 -18
  140. package/dist/commands/teams.d.ts.map +0 -1
  141. package/dist/commands/teams.js +0 -1144
  142. package/dist/commands/teams.js.map +0 -1
  143. package/dist/commands/utils.d.ts +0 -45
  144. package/dist/commands/utils.d.ts.map +0 -1
  145. package/dist/commands/utils.js +0 -106
  146. package/dist/commands/utils.js.map +0 -1
  147. package/dist/commands/versions.d.ts +0 -11
  148. package/dist/commands/versions.d.ts.map +0 -1
  149. package/dist/commands/versions.js +0 -701
  150. package/dist/commands/versions.js.map +0 -1
  151. package/dist/commands/view.d.ts +0 -43
  152. package/dist/commands/view.d.ts.map +0 -1
  153. package/dist/commands/view.js +0 -894
  154. package/dist/commands/view.js.map +0 -1
  155. package/dist/index.d.ts +0 -9
  156. package/dist/index.d.ts.map +0 -1
  157. package/dist/index.js +0 -496
  158. package/dist/index.js.map +0 -1
  159. package/dist/lib/__tests__/bugfixes.test.d.ts +0 -2
  160. package/dist/lib/__tests__/bugfixes.test.d.ts.map +0 -1
  161. package/dist/lib/__tests__/bugfixes.test.js +0 -192
  162. package/dist/lib/__tests__/bugfixes.test.js.map +0 -1
  163. package/dist/lib/__tests__/exec.test.d.ts +0 -2
  164. package/dist/lib/__tests__/exec.test.d.ts.map +0 -1
  165. package/dist/lib/__tests__/exec.test.js +0 -446
  166. package/dist/lib/__tests__/exec.test.js.map +0 -1
  167. package/dist/lib/__tests__/git-sync.test.d.ts +0 -2
  168. package/dist/lib/__tests__/git-sync.test.d.ts.map +0 -1
  169. package/dist/lib/__tests__/git-sync.test.js +0 -138
  170. package/dist/lib/__tests__/git-sync.test.js.map +0 -1
  171. package/dist/lib/__tests__/hooks.test.d.ts +0 -2
  172. package/dist/lib/__tests__/hooks.test.d.ts.map +0 -1
  173. package/dist/lib/__tests__/hooks.test.js +0 -203
  174. package/dist/lib/__tests__/hooks.test.js.map +0 -1
  175. package/dist/lib/__tests__/memory-compile.test.d.ts +0 -2
  176. package/dist/lib/__tests__/memory-compile.test.d.ts.map +0 -1
  177. package/dist/lib/__tests__/memory-compile.test.js +0 -95
  178. package/dist/lib/__tests__/memory-compile.test.js.map +0 -1
  179. package/dist/lib/__tests__/models.test.d.ts +0 -2
  180. package/dist/lib/__tests__/models.test.d.ts.map +0 -1
  181. package/dist/lib/__tests__/models.test.js +0 -239
  182. package/dist/lib/__tests__/models.test.js.map +0 -1
  183. package/dist/lib/__tests__/rotate.test.d.ts +0 -2
  184. package/dist/lib/__tests__/rotate.test.d.ts.map +0 -1
  185. package/dist/lib/__tests__/rotate.test.js +0 -80
  186. package/dist/lib/__tests__/rotate.test.js.map +0 -1
  187. package/dist/lib/__tests__/secrets-bundles.test.d.ts +0 -2
  188. package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +0 -1
  189. package/dist/lib/__tests__/secrets-bundles.test.js +0 -104
  190. package/dist/lib/__tests__/secrets-bundles.test.js.map +0 -1
  191. package/dist/lib/__tests__/secrets.test.d.ts +0 -2
  192. package/dist/lib/__tests__/secrets.test.d.ts.map +0 -1
  193. package/dist/lib/__tests__/secrets.test.js +0 -90
  194. package/dist/lib/__tests__/secrets.test.js.map +0 -1
  195. package/dist/lib/__tests__/shims.test.d.ts +0 -2
  196. package/dist/lib/__tests__/shims.test.d.ts.map +0 -1
  197. package/dist/lib/__tests__/shims.test.js +0 -57
  198. package/dist/lib/__tests__/shims.test.js.map +0 -1
  199. package/dist/lib/__tests__/usage.test.d.ts +0 -2
  200. package/dist/lib/__tests__/usage.test.d.ts.map +0 -1
  201. package/dist/lib/__tests__/usage.test.js +0 -220
  202. package/dist/lib/__tests__/usage.test.js.map +0 -1
  203. package/dist/lib/__tests__/versions.test.d.ts +0 -2
  204. package/dist/lib/__tests__/versions.test.d.ts.map +0 -1
  205. package/dist/lib/__tests__/versions.test.js +0 -63
  206. package/dist/lib/__tests__/versions.test.js.map +0 -1
  207. package/dist/lib/agents.d.ts +0 -158
  208. package/dist/lib/agents.d.ts.map +0 -1
  209. package/dist/lib/agents.js +0 -1159
  210. package/dist/lib/agents.js.map +0 -1
  211. package/dist/lib/artifact-actions.d.ts +0 -27
  212. package/dist/lib/artifact-actions.d.ts.map +0 -1
  213. package/dist/lib/artifact-actions.js +0 -58
  214. package/dist/lib/artifact-actions.js.map +0 -1
  215. package/dist/lib/cloud/codex.d.ts +0 -26
  216. package/dist/lib/cloud/codex.d.ts.map +0 -1
  217. package/dist/lib/cloud/codex.js +0 -237
  218. package/dist/lib/cloud/codex.js.map +0 -1
  219. package/dist/lib/cloud/factory.d.ts +0 -32
  220. package/dist/lib/cloud/factory.d.ts.map +0 -1
  221. package/dist/lib/cloud/factory.js +0 -43
  222. package/dist/lib/cloud/factory.js.map +0 -1
  223. package/dist/lib/cloud/registry.d.ts +0 -16
  224. package/dist/lib/cloud/registry.d.ts.map +0 -1
  225. package/dist/lib/cloud/registry.js +0 -68
  226. package/dist/lib/cloud/registry.js.map +0 -1
  227. package/dist/lib/cloud/rush.d.ts +0 -37
  228. package/dist/lib/cloud/rush.d.ts.map +0 -1
  229. package/dist/lib/cloud/rush.js +0 -230
  230. package/dist/lib/cloud/rush.js.map +0 -1
  231. package/dist/lib/cloud/rush.test.d.ts +0 -2
  232. package/dist/lib/cloud/rush.test.d.ts.map +0 -1
  233. package/dist/lib/cloud/rush.test.js +0 -63
  234. package/dist/lib/cloud/rush.test.js.map +0 -1
  235. package/dist/lib/cloud/store.d.ts +0 -23
  236. package/dist/lib/cloud/store.d.ts.map +0 -1
  237. package/dist/lib/cloud/store.js +0 -116
  238. package/dist/lib/cloud/store.js.map +0 -1
  239. package/dist/lib/cloud/stream.d.ts +0 -24
  240. package/dist/lib/cloud/stream.d.ts.map +0 -1
  241. package/dist/lib/cloud/stream.js +0 -145
  242. package/dist/lib/cloud/stream.js.map +0 -1
  243. package/dist/lib/cloud/types.d.ts +0 -109
  244. package/dist/lib/cloud/types.d.ts.map +0 -1
  245. package/dist/lib/cloud/types.js +0 -33
  246. package/dist/lib/cloud/types.js.map +0 -1
  247. package/dist/lib/cloud/types.test.d.ts +0 -2
  248. package/dist/lib/cloud/types.test.d.ts.map +0 -1
  249. package/dist/lib/cloud/types.test.js +0 -41
  250. package/dist/lib/cloud/types.test.js.map +0 -1
  251. package/dist/lib/commands.d.ts +0 -141
  252. package/dist/lib/commands.d.ts.map +0 -1
  253. package/dist/lib/commands.js +0 -514
  254. package/dist/lib/commands.js.map +0 -1
  255. package/dist/lib/convert.d.ts +0 -21
  256. package/dist/lib/convert.d.ts.map +0 -1
  257. package/dist/lib/convert.js +0 -54
  258. package/dist/lib/convert.js.map +0 -1
  259. package/dist/lib/daemon.d.ts +0 -43
  260. package/dist/lib/daemon.d.ts.map +0 -1
  261. package/dist/lib/daemon.js +0 -332
  262. package/dist/lib/daemon.js.map +0 -1
  263. package/dist/lib/drive-sync.d.ts +0 -46
  264. package/dist/lib/drive-sync.d.ts.map +0 -1
  265. package/dist/lib/drive-sync.js +0 -209
  266. package/dist/lib/drive-sync.js.map +0 -1
  267. package/dist/lib/exec.d.ts +0 -101
  268. package/dist/lib/exec.d.ts.map +0 -1
  269. package/dist/lib/exec.js +0 -450
  270. package/dist/lib/exec.js.map +0 -1
  271. package/dist/lib/factory/__tests__/config.test.d.ts +0 -2
  272. package/dist/lib/factory/__tests__/config.test.d.ts.map +0 -1
  273. package/dist/lib/factory/__tests__/config.test.js +0 -128
  274. package/dist/lib/factory/__tests__/config.test.js.map +0 -1
  275. package/dist/lib/factory/config.d.ts +0 -49
  276. package/dist/lib/factory/config.d.ts.map +0 -1
  277. package/dist/lib/factory/config.js +0 -127
  278. package/dist/lib/factory/config.js.map +0 -1
  279. package/dist/lib/factory.d.ts +0 -57
  280. package/dist/lib/factory.d.ts.map +0 -1
  281. package/dist/lib/factory.js +0 -107
  282. package/dist/lib/factory.js.map +0 -1
  283. package/dist/lib/git.d.ts +0 -157
  284. package/dist/lib/git.d.ts.map +0 -1
  285. package/dist/lib/git.js +0 -647
  286. package/dist/lib/git.js.map +0 -1
  287. package/dist/lib/help.d.ts +0 -10
  288. package/dist/lib/help.d.ts.map +0 -1
  289. package/dist/lib/help.js +0 -66
  290. package/dist/lib/help.js.map +0 -1
  291. package/dist/lib/hooks.d.ts +0 -125
  292. package/dist/lib/hooks.d.ts.map +0 -1
  293. package/dist/lib/hooks.js +0 -846
  294. package/dist/lib/hooks.js.map +0 -1
  295. package/dist/lib/ledger/__tests__/local.test.d.ts +0 -2
  296. package/dist/lib/ledger/__tests__/local.test.d.ts.map +0 -1
  297. package/dist/lib/ledger/__tests__/local.test.js +0 -177
  298. package/dist/lib/ledger/__tests__/local.test.js.map +0 -1
  299. package/dist/lib/ledger/__tests__/sync.test.d.ts +0 -2
  300. package/dist/lib/ledger/__tests__/sync.test.d.ts.map +0 -1
  301. package/dist/lib/ledger/__tests__/sync.test.js +0 -117
  302. package/dist/lib/ledger/__tests__/sync.test.js.map +0 -1
  303. package/dist/lib/ledger/index.d.ts +0 -18
  304. package/dist/lib/ledger/index.d.ts.map +0 -1
  305. package/dist/lib/ledger/index.js +0 -32
  306. package/dist/lib/ledger/index.js.map +0 -1
  307. package/dist/lib/ledger/local.d.ts +0 -22
  308. package/dist/lib/ledger/local.d.ts.map +0 -1
  309. package/dist/lib/ledger/local.js +0 -333
  310. package/dist/lib/ledger/local.js.map +0 -1
  311. package/dist/lib/ledger/r2.d.ts +0 -41
  312. package/dist/lib/ledger/r2.d.ts.map +0 -1
  313. package/dist/lib/ledger/r2.js +0 -335
  314. package/dist/lib/ledger/r2.js.map +0 -1
  315. package/dist/lib/ledger/sync.d.ts +0 -33
  316. package/dist/lib/ledger/sync.d.ts.map +0 -1
  317. package/dist/lib/ledger/sync.js +0 -106
  318. package/dist/lib/ledger/sync.js.map +0 -1
  319. package/dist/lib/ledger/types.d.ts +0 -100
  320. package/dist/lib/ledger/types.d.ts.map +0 -1
  321. package/dist/lib/ledger/types.js +0 -21
  322. package/dist/lib/ledger/types.js.map +0 -1
  323. package/dist/lib/manifest.d.ts +0 -14
  324. package/dist/lib/manifest.d.ts.map +0 -1
  325. package/dist/lib/manifest.js +0 -48
  326. package/dist/lib/manifest.js.map +0 -1
  327. package/dist/lib/markdown.d.ts +0 -5
  328. package/dist/lib/markdown.d.ts.map +0 -1
  329. package/dist/lib/markdown.js +0 -17
  330. package/dist/lib/markdown.js.map +0 -1
  331. package/dist/lib/mcp.d.ts +0 -64
  332. package/dist/lib/mcp.d.ts.map +0 -1
  333. package/dist/lib/mcp.js +0 -327
  334. package/dist/lib/mcp.js.map +0 -1
  335. package/dist/lib/memory-compile.d.ts +0 -65
  336. package/dist/lib/memory-compile.d.ts.map +0 -1
  337. package/dist/lib/memory-compile.js +0 -174
  338. package/dist/lib/memory-compile.js.map +0 -1
  339. package/dist/lib/memory.d.ts +0 -64
  340. package/dist/lib/memory.d.ts.map +0 -1
  341. package/dist/lib/memory.js +0 -275
  342. package/dist/lib/memory.js.map +0 -1
  343. package/dist/lib/models.d.ts +0 -98
  344. package/dist/lib/models.d.ts.map +0 -1
  345. package/dist/lib/models.js +0 -728
  346. package/dist/lib/models.js.map +0 -1
  347. package/dist/lib/permissions.d.ts +0 -227
  348. package/dist/lib/permissions.d.ts.map +0 -1
  349. package/dist/lib/permissions.js +0 -1071
  350. package/dist/lib/permissions.js.map +0 -1
  351. package/dist/lib/picker.d.ts +0 -27
  352. package/dist/lib/picker.d.ts.map +0 -1
  353. package/dist/lib/picker.js +0 -110
  354. package/dist/lib/picker.js.map +0 -1
  355. package/dist/lib/plugins.d.ts +0 -80
  356. package/dist/lib/plugins.d.ts.map +0 -1
  357. package/dist/lib/plugins.js +0 -556
  358. package/dist/lib/plugins.js.map +0 -1
  359. package/dist/lib/profiles-keychain.d.ts +0 -11
  360. package/dist/lib/profiles-keychain.d.ts.map +0 -1
  361. package/dist/lib/profiles-keychain.js +0 -14
  362. package/dist/lib/profiles-keychain.js.map +0 -1
  363. package/dist/lib/profiles-presets.d.ts +0 -25
  364. package/dist/lib/profiles-presets.d.ts.map +0 -1
  365. package/dist/lib/profiles-presets.js +0 -104
  366. package/dist/lib/profiles-presets.js.map +0 -1
  367. package/dist/lib/profiles.d.ts +0 -70
  368. package/dist/lib/profiles.d.ts.map +0 -1
  369. package/dist/lib/profiles.js +0 -145
  370. package/dist/lib/profiles.js.map +0 -1
  371. package/dist/lib/pty-client.d.ts +0 -23
  372. package/dist/lib/pty-client.d.ts.map +0 -1
  373. package/dist/lib/pty-client.js +0 -181
  374. package/dist/lib/pty-client.js.map +0 -1
  375. package/dist/lib/pty-server.d.ts +0 -21
  376. package/dist/lib/pty-server.d.ts.map +0 -1
  377. package/dist/lib/pty-server.js +0 -427
  378. package/dist/lib/pty-server.js.map +0 -1
  379. package/dist/lib/registry.d.ts +0 -45
  380. package/dist/lib/registry.d.ts.map +0 -1
  381. package/dist/lib/registry.js +0 -220
  382. package/dist/lib/registry.js.map +0 -1
  383. package/dist/lib/resources.d.ts +0 -55
  384. package/dist/lib/resources.d.ts.map +0 -1
  385. package/dist/lib/resources.js +0 -103
  386. package/dist/lib/resources.js.map +0 -1
  387. package/dist/lib/rotate.d.ts +0 -58
  388. package/dist/lib/rotate.d.ts.map +0 -1
  389. package/dist/lib/rotate.js +0 -93
  390. package/dist/lib/rotate.js.map +0 -1
  391. package/dist/lib/routines.d.ts +0 -99
  392. package/dist/lib/routines.d.ts.map +0 -1
  393. package/dist/lib/routines.js +0 -352
  394. package/dist/lib/routines.js.map +0 -1
  395. package/dist/lib/runner.d.ts +0 -26
  396. package/dist/lib/runner.d.ts.map +0 -1
  397. package/dist/lib/runner.js +0 -325
  398. package/dist/lib/runner.js.map +0 -1
  399. package/dist/lib/sandbox.d.ts +0 -26
  400. package/dist/lib/sandbox.d.ts.map +0 -1
  401. package/dist/lib/sandbox.js +0 -218
  402. package/dist/lib/sandbox.js.map +0 -1
  403. package/dist/lib/scheduler.d.ts +0 -26
  404. package/dist/lib/scheduler.d.ts.map +0 -1
  405. package/dist/lib/scheduler.js +0 -77
  406. package/dist/lib/scheduler.js.map +0 -1
  407. package/dist/lib/secrets-bundles.d.ts +0 -38
  408. package/dist/lib/secrets-bundles.d.ts.map +0 -1
  409. package/dist/lib/secrets-bundles.js +0 -176
  410. package/dist/lib/secrets-bundles.js.map +0 -1
  411. package/dist/lib/secrets.d.ts +0 -53
  412. package/dist/lib/secrets.d.ts.map +0 -1
  413. package/dist/lib/secrets.js +0 -140
  414. package/dist/lib/secrets.js.map +0 -1
  415. package/dist/lib/session/__tests__/db.test.d.ts +0 -2
  416. package/dist/lib/session/__tests__/db.test.d.ts.map +0 -1
  417. package/dist/lib/session/__tests__/db.test.js +0 -54
  418. package/dist/lib/session/__tests__/db.test.js.map +0 -1
  419. package/dist/lib/session/__tests__/discover.test.d.ts +0 -2
  420. package/dist/lib/session/__tests__/discover.test.d.ts.map +0 -1
  421. package/dist/lib/session/__tests__/discover.test.js +0 -63
  422. package/dist/lib/session/__tests__/discover.test.js.map +0 -1
  423. package/dist/lib/session/__tests__/prompt.test.d.ts +0 -2
  424. package/dist/lib/session/__tests__/prompt.test.d.ts.map +0 -1
  425. package/dist/lib/session/__tests__/prompt.test.js +0 -44
  426. package/dist/lib/session/__tests__/prompt.test.js.map +0 -1
  427. package/dist/lib/session/__tests__/render.test.d.ts +0 -2
  428. package/dist/lib/session/__tests__/render.test.d.ts.map +0 -1
  429. package/dist/lib/session/__tests__/render.test.js +0 -602
  430. package/dist/lib/session/__tests__/render.test.js.map +0 -1
  431. package/dist/lib/session/active.d.ts +0 -44
  432. package/dist/lib/session/active.d.ts.map +0 -1
  433. package/dist/lib/session/active.js +0 -379
  434. package/dist/lib/session/active.js.map +0 -1
  435. package/dist/lib/session/artifacts.d.ts +0 -15
  436. package/dist/lib/session/artifacts.d.ts.map +0 -1
  437. package/dist/lib/session/artifacts.js +0 -86
  438. package/dist/lib/session/artifacts.js.map +0 -1
  439. package/dist/lib/session/db.d.ts +0 -140
  440. package/dist/lib/session/db.d.ts.map +0 -1
  441. package/dist/lib/session/db.js +0 -599
  442. package/dist/lib/session/db.js.map +0 -1
  443. package/dist/lib/session/discover.d.ts +0 -72
  444. package/dist/lib/session/discover.d.ts.map +0 -1
  445. package/dist/lib/session/discover.js +0 -1315
  446. package/dist/lib/session/discover.js.map +0 -1
  447. package/dist/lib/session/parse.d.ts +0 -34
  448. package/dist/lib/session/parse.d.ts.map +0 -1
  449. package/dist/lib/session/parse.js +0 -663
  450. package/dist/lib/session/parse.js.map +0 -1
  451. package/dist/lib/session/prompt.d.ts +0 -13
  452. package/dist/lib/session/prompt.d.ts.map +0 -1
  453. package/dist/lib/session/prompt.js +0 -79
  454. package/dist/lib/session/prompt.js.map +0 -1
  455. package/dist/lib/session/prompt.test.d.ts +0 -2
  456. package/dist/lib/session/prompt.test.d.ts.map +0 -1
  457. package/dist/lib/session/prompt.test.js +0 -57
  458. package/dist/lib/session/prompt.test.js.map +0 -1
  459. package/dist/lib/session/render.d.ts +0 -103
  460. package/dist/lib/session/render.d.ts.map +0 -1
  461. package/dist/lib/session/render.js +0 -798
  462. package/dist/lib/session/render.js.map +0 -1
  463. package/dist/lib/session/team-filter.d.ts +0 -35
  464. package/dist/lib/session/team-filter.d.ts.map +0 -1
  465. package/dist/lib/session/team-filter.js +0 -75
  466. package/dist/lib/session/team-filter.js.map +0 -1
  467. package/dist/lib/session/team-filter.test.d.ts +0 -2
  468. package/dist/lib/session/team-filter.test.d.ts.map +0 -1
  469. package/dist/lib/session/team-filter.test.js +0 -157
  470. package/dist/lib/session/team-filter.test.js.map +0 -1
  471. package/dist/lib/session/types.d.ts +0 -84
  472. package/dist/lib/session/types.d.ts.map +0 -1
  473. package/dist/lib/session/types.js +0 -11
  474. package/dist/lib/session/types.js.map +0 -1
  475. package/dist/lib/shims.d.ts +0 -272
  476. package/dist/lib/shims.d.ts.map +0 -1
  477. package/dist/lib/shims.js +0 -1322
  478. package/dist/lib/shims.js.map +0 -1
  479. package/dist/lib/skills.d.ts +0 -142
  480. package/dist/lib/skills.d.ts.map +0 -1
  481. package/dist/lib/skills.js +0 -791
  482. package/dist/lib/skills.js.map +0 -1
  483. package/dist/lib/state.d.ts +0 -87
  484. package/dist/lib/state.d.ts.map +0 -1
  485. package/dist/lib/state.js +0 -333
  486. package/dist/lib/state.js.map +0 -1
  487. package/dist/lib/subagents.d.ts +0 -84
  488. package/dist/lib/subagents.d.ts.map +0 -1
  489. package/dist/lib/subagents.js +0 -410
  490. package/dist/lib/subagents.js.map +0 -1
  491. package/dist/lib/teams/__tests__/oracle.test.d.ts +0 -2
  492. package/dist/lib/teams/__tests__/oracle.test.d.ts.map +0 -1
  493. package/dist/lib/teams/__tests__/oracle.test.js +0 -89
  494. package/dist/lib/teams/__tests__/oracle.test.js.map +0 -1
  495. package/dist/lib/teams/__tests__/supervisor.test.d.ts +0 -2
  496. package/dist/lib/teams/__tests__/supervisor.test.d.ts.map +0 -1
  497. package/dist/lib/teams/__tests__/supervisor.test.js +0 -179
  498. package/dist/lib/teams/__tests__/supervisor.test.js.map +0 -1
  499. package/dist/lib/teams/agents.d.ts +0 -247
  500. package/dist/lib/teams/agents.d.ts.map +0 -1
  501. package/dist/lib/teams/agents.js +0 -1244
  502. package/dist/lib/teams/agents.js.map +0 -1
  503. package/dist/lib/teams/api.d.ts +0 -91
  504. package/dist/lib/teams/api.d.ts.map +0 -1
  505. package/dist/lib/teams/api.js +0 -239
  506. package/dist/lib/teams/api.js.map +0 -1
  507. package/dist/lib/teams/cloud.d.ts +0 -11
  508. package/dist/lib/teams/cloud.d.ts.map +0 -1
  509. package/dist/lib/teams/cloud.js +0 -169
  510. package/dist/lib/teams/cloud.js.map +0 -1
  511. package/dist/lib/teams/debug.d.ts +0 -8
  512. package/dist/lib/teams/debug.d.ts.map +0 -1
  513. package/dist/lib/teams/debug.js +0 -12
  514. package/dist/lib/teams/debug.js.map +0 -1
  515. package/dist/lib/teams/file_ops.d.ts +0 -13
  516. package/dist/lib/teams/file_ops.d.ts.map +0 -1
  517. package/dist/lib/teams/file_ops.js +0 -66
  518. package/dist/lib/teams/file_ops.js.map +0 -1
  519. package/dist/lib/teams/index.d.ts +0 -16
  520. package/dist/lib/teams/index.d.ts.map +0 -1
  521. package/dist/lib/teams/index.js +0 -15
  522. package/dist/lib/teams/index.js.map +0 -1
  523. package/dist/lib/teams/oracle.d.ts +0 -20
  524. package/dist/lib/teams/oracle.d.ts.map +0 -1
  525. package/dist/lib/teams/oracle.js +0 -59
  526. package/dist/lib/teams/oracle.js.map +0 -1
  527. package/dist/lib/teams/parsers.d.ts +0 -9
  528. package/dist/lib/teams/parsers.d.ts.map +0 -1
  529. package/dist/lib/teams/parsers.js +0 -837
  530. package/dist/lib/teams/parsers.js.map +0 -1
  531. package/dist/lib/teams/persistence.d.ts +0 -43
  532. package/dist/lib/teams/persistence.d.ts.map +0 -1
  533. package/dist/lib/teams/persistence.js +0 -299
  534. package/dist/lib/teams/persistence.js.map +0 -1
  535. package/dist/lib/teams/ralph.d.ts +0 -8
  536. package/dist/lib/teams/ralph.d.ts.map +0 -1
  537. package/dist/lib/teams/ralph.js +0 -59
  538. package/dist/lib/teams/ralph.js.map +0 -1
  539. package/dist/lib/teams/registry.d.ts +0 -18
  540. package/dist/lib/teams/registry.d.ts.map +0 -1
  541. package/dist/lib/teams/registry.js +0 -68
  542. package/dist/lib/teams/registry.js.map +0 -1
  543. package/dist/lib/teams/summarizer.d.ts +0 -73
  544. package/dist/lib/teams/summarizer.d.ts.map +0 -1
  545. package/dist/lib/teams/summarizer.js +0 -780
  546. package/dist/lib/teams/summarizer.js.map +0 -1
  547. package/dist/lib/teams/supervisor.d.ts +0 -49
  548. package/dist/lib/teams/supervisor.d.ts.map +0 -1
  549. package/dist/lib/teams/supervisor.js +0 -74
  550. package/dist/lib/teams/supervisor.js.map +0 -1
  551. package/dist/lib/template.d.ts +0 -27
  552. package/dist/lib/template.d.ts.map +0 -1
  553. package/dist/lib/template.js +0 -60
  554. package/dist/lib/template.js.map +0 -1
  555. package/dist/lib/types.d.ts +0 -331
  556. package/dist/lib/types.d.ts.map +0 -1
  557. package/dist/lib/types.js +0 -29
  558. package/dist/lib/types.js.map +0 -1
  559. package/dist/lib/usage.d.ts +0 -105
  560. package/dist/lib/usage.d.ts.map +0 -1
  561. package/dist/lib/usage.js +0 -686
  562. package/dist/lib/usage.js.map +0 -1
  563. package/dist/lib/versions.d.ts +0 -253
  564. package/dist/lib/versions.d.ts.map +0 -1
  565. package/dist/lib/versions.js +0 -1796
  566. package/dist/lib/versions.js.map +0 -1
  567. package/scripts/rebuild-sqlite.sh +0 -46
@@ -1,57 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { generateShimScript, SHIM_SCHEMA_VERSION } from '../shims.js';
3
- describe('SHIM_SCHEMA_VERSION', () => {
4
- it('is 5', () => {
5
- expect(SHIM_SCHEMA_VERSION).toBe(5);
6
- });
7
- });
8
- describe('generateShimScript — config-dir env vars', () => {
9
- it('exports CLAUDE_CONFIG_DIR for claude', () => {
10
- const script = generateShimScript('claude');
11
- expect(script).toContain('export CLAUDE_CONFIG_DIR=');
12
- expect(script).not.toContain('export CODEX_HOME=');
13
- });
14
- it('exports CODEX_HOME for codex so the versioned config/rules are read', () => {
15
- const script = generateShimScript('codex');
16
- expect(script).toContain('export CODEX_HOME=');
17
- expect(script).toContain('"$VERSION_DIR/home/.codex"');
18
- expect(script).not.toContain('export CLAUDE_CONFIG_DIR=');
19
- });
20
- it('does not export a managed config-dir var for other agents', () => {
21
- const script = generateShimScript('opencode');
22
- expect(script).not.toContain('export CLAUDE_CONFIG_DIR=');
23
- expect(script).not.toContain('export CODEX_HOME=');
24
- });
25
- });
26
- describe('generateShimScript', () => {
27
- it('contains no reference to .agents-version', () => {
28
- const script = generateShimScript('claude');
29
- expect(script).not.toContain('.agents-version');
30
- });
31
- it('embeds the shim schema version marker matching SHIM_SCHEMA_VERSION', () => {
32
- const script = generateShimScript('claude');
33
- expect(script).toContain(`agents-shim-version: ${SHIM_SCHEMA_VERSION}`);
34
- });
35
- it('walks up looking for agents.yaml (not .agents-version)', () => {
36
- const script = generateShimScript('claude');
37
- expect(script).toContain('agents.yaml');
38
- });
39
- it('skips $HOME/.agents/agents.yaml when walking up', () => {
40
- const script = generateShimScript('claude');
41
- expect(script).toContain('user_agents_yaml');
42
- expect(script).toContain('"$candidate" != "$user_agents_yaml"');
43
- });
44
- it('error message references agents.yaml not .agents-version', () => {
45
- const script = generateShimScript('claude');
46
- expect(script).toContain('required by agents.yaml but not installed');
47
- expect(script).not.toContain('required by .agents-version');
48
- });
49
- it('find_project_agents_dir stops at agents.yaml or .git', () => {
50
- const script = generateShimScript('claude');
51
- // Boundary detection should check agents.yaml
52
- expect(script).toContain('[ -f "$dir/agents.yaml" ]');
53
- // And should NOT check .agents-version as a boundary
54
- expect(script).not.toContain('[ -f "$dir/.agents-version" ]');
55
- });
56
- });
57
- //# sourceMappingURL=shims.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shims.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/shims.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=usage.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/usage.test.ts"],"names":[],"mappings":""}
@@ -1,220 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as os from 'os';
3
- import * as path from 'path';
4
- import { describe, expect, it } from 'vitest';
5
- import { buildCanonicalUsageContext, formatUsageSummary, getClaudeKeychainService, readClaudeUsageCache, isClaudeUsageOrgMatch, writeClaudeUsageCache, } from '../usage.js';
6
- function makeAccountInfo(overrides = {}) {
7
- return {
8
- accountKey: null,
9
- usageKey: null,
10
- accountId: null,
11
- organizationId: null,
12
- userId: null,
13
- email: null,
14
- plan: null,
15
- usageStatus: null,
16
- overageCredits: null,
17
- lastActive: null,
18
- ...overrides,
19
- };
20
- }
21
- function stripAnsi(value) {
22
- return value.replace(/\u001b\[[0-9;]*m/g, '');
23
- }
24
- describe('usage formatting', () => {
25
- it('renders compact S:/W: bars and skips the sonnet-only window', () => {
26
- const snapshot = {
27
- source: 'live',
28
- sourceLabel: 'live account data',
29
- capturedAt: new Date('2026-04-17T12:00:00Z'),
30
- windows: [
31
- {
32
- key: 'session',
33
- label: 'Current session',
34
- shortLabel: 'S',
35
- usedPercent: 40,
36
- resetsAt: null,
37
- windowMinutes: 300,
38
- },
39
- {
40
- key: 'week',
41
- label: 'Current week',
42
- shortLabel: 'W',
43
- usedPercent: 80,
44
- resetsAt: null,
45
- windowMinutes: 10080,
46
- },
47
- {
48
- key: 'sonnet_week',
49
- label: 'Current week (Sonnet only)',
50
- shortLabel: 'So',
51
- usedPercent: 55,
52
- resetsAt: null,
53
- windowMinutes: 10080,
54
- },
55
- ],
56
- };
57
- const summary = stripAnsi(formatUsageSummary(null, snapshot));
58
- expect(summary).toContain('S:');
59
- expect(summary).toContain('W:');
60
- expect(summary).not.toContain('So:');
61
- });
62
- });
63
- describe('usage identity deduping', () => {
64
- it('keeps only the freshest version home per usage identity', () => {
65
- const older = makeAccountInfo({
66
- usageKey: 'claude:org=shared',
67
- accountKey: 'claude:account=one',
68
- organizationId: 'org-old',
69
- plan: 'Pro',
70
- lastActive: new Date('2026-04-17T10:00:00Z'),
71
- });
72
- const newer = makeAccountInfo({
73
- usageKey: 'claude:org=shared',
74
- accountKey: 'claude:account=two',
75
- organizationId: 'org-new',
76
- plan: 'Max',
77
- lastActive: new Date('2026-04-17T11:00:00Z'),
78
- });
79
- const fallback = makeAccountInfo({
80
- usageKey: null,
81
- accountKey: 'codex:account=fallback',
82
- organizationId: 'org-codex',
83
- lastActive: new Date('2026-04-17T09:00:00Z'),
84
- });
85
- const { canonicalByUsageKey, usageFetchInputs } = buildCanonicalUsageContext([
86
- {
87
- agentId: 'claude',
88
- home: '/tmp/old',
89
- cliVersion: '2.1.80',
90
- info: older,
91
- },
92
- {
93
- agentId: 'claude',
94
- home: '/tmp/new',
95
- cliVersion: '2.1.98',
96
- info: newer,
97
- },
98
- {
99
- agentId: 'codex',
100
- home: '/tmp/codex',
101
- cliVersion: '0.113.0',
102
- info: fallback,
103
- },
104
- ]);
105
- expect(canonicalByUsageKey.size).toBe(2);
106
- expect(canonicalByUsageKey.get('claude:org=shared')).toEqual(newer);
107
- expect(canonicalByUsageKey.get('codex:account=fallback')).toEqual(fallback);
108
- expect(usageFetchInputs.get('claude:org=shared')).toEqual({
109
- agentId: 'claude',
110
- home: '/tmp/new',
111
- cliVersion: '2.1.98',
112
- organizationId: 'org-new',
113
- });
114
- expect(usageFetchInputs.get('codex:account=fallback')).toEqual({
115
- agentId: 'codex',
116
- home: '/tmp/codex',
117
- cliVersion: '0.113.0',
118
- organizationId: 'org-codex',
119
- });
120
- });
121
- });
122
- describe('Claude usage scoping', () => {
123
- it('uses the shared keychain service without a managed home', () => {
124
- expect(getClaudeKeychainService()).toBe('Claude Code-credentials');
125
- });
126
- it('derives distinct keychain services for distinct Claude homes', () => {
127
- const first = getClaudeKeychainService('/tmp/claude-a');
128
- const second = getClaudeKeychainService('/tmp/claude-b');
129
- expect(first).toMatch(/^Claude Code-credentials-[0-9a-f]{8}$/);
130
- expect(second).toMatch(/^Claude Code-credentials-[0-9a-f]{8}$/);
131
- expect(first).not.toBe(second);
132
- });
133
- it('does not reuse the shared keychain service for managed Claude homes', () => {
134
- expect(getClaudeKeychainService('/tmp/claude-a')).not.toBe('Claude Code-credentials');
135
- });
136
- it('keeps usage eligible when the live org is missing', () => {
137
- expect(isClaudeUsageOrgMatch('org-requested', null)).toBe(true);
138
- });
139
- it('rejects usage only when both org ids exist and mismatch', () => {
140
- expect(isClaudeUsageOrgMatch('org-requested', 'org-live')).toBe(false);
141
- expect(isClaudeUsageOrgMatch('org-requested', 'org-requested')).toBe(true);
142
- });
143
- });
144
- describe('Claude usage cache', () => {
145
- it('persists and reloads the last seen live snapshot by usage key', () => {
146
- const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-usage-cache-'));
147
- const cachePath = path.join(tempDir, 'claude-usage.json');
148
- const snapshot = {
149
- source: 'live',
150
- sourceLabel: 'live account data',
151
- capturedAt: new Date('2026-04-17T12:00:00Z'),
152
- windows: [
153
- {
154
- key: 'session',
155
- label: 'Current session',
156
- shortLabel: 'S',
157
- usedPercent: 40,
158
- resetsAt: new Date('2026-04-17T16:00:00Z'),
159
- windowMinutes: 300,
160
- },
161
- {
162
- key: 'week',
163
- label: 'Current week',
164
- shortLabel: 'W',
165
- usedPercent: 80,
166
- resetsAt: new Date('2026-04-23T12:00:00Z'),
167
- windowMinutes: 10080,
168
- },
169
- ],
170
- };
171
- try {
172
- writeClaudeUsageCache('claude:org=shared', snapshot, cachePath);
173
- const cached = readClaudeUsageCache('claude:org=shared', cachePath, new Date('2026-04-17T13:00:00Z'));
174
- expect(cached?.source).toBe('last_seen');
175
- expect(cached?.sourceLabel).toBe('last seen live account data');
176
- expect(cached?.windows.map((window) => window.shortLabel)).toEqual(['S', 'W']);
177
- }
178
- finally {
179
- fs.rmSync(tempDir, { recursive: true, force: true });
180
- }
181
- });
182
- it('resets expired cached windows to 0%', () => {
183
- const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-usage-cache-'));
184
- const cachePath = path.join(tempDir, 'claude-usage.json');
185
- const snapshot = {
186
- source: 'live',
187
- sourceLabel: 'live account data',
188
- capturedAt: new Date('2026-04-17T12:00:00Z'),
189
- windows: [
190
- {
191
- key: 'session',
192
- label: 'Current session',
193
- shortLabel: 'S',
194
- usedPercent: 40,
195
- resetsAt: new Date('2026-04-17T13:00:00Z'),
196
- windowMinutes: 300,
197
- },
198
- {
199
- key: 'week',
200
- label: 'Current week',
201
- shortLabel: 'W',
202
- usedPercent: 80,
203
- resetsAt: new Date('2026-04-23T12:00:00Z'),
204
- windowMinutes: 10080,
205
- },
206
- ],
207
- };
208
- try {
209
- writeClaudeUsageCache('claude:org=shared', snapshot, cachePath);
210
- const cached = readClaudeUsageCache('claude:org=shared', cachePath, new Date('2026-04-17T14:00:00Z'));
211
- expect(cached?.windows.map((window) => window.shortLabel)).toEqual(['S', 'W']);
212
- expect(cached?.windows.find((w) => w.shortLabel === 'S')?.usedPercent).toBe(0);
213
- expect(cached?.windows.find((w) => w.shortLabel === 'W')?.usedPercent).toBe(80);
214
- }
215
- finally {
216
- fs.rmSync(tempDir, { recursive: true, force: true });
217
- }
218
- });
219
- });
220
- //# sourceMappingURL=usage.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/usage.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=versions.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"versions.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/versions.test.ts"],"names":[],"mappings":""}
@@ -1,63 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
- import * as fs from 'fs';
3
- import * as path from 'path';
4
- import * as os from 'os';
5
- import { getProjectVersion } from '../versions.js';
6
- let tmpDir;
7
- beforeEach(() => {
8
- tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'versions-test-'));
9
- });
10
- afterEach(() => {
11
- fs.rmSync(tmpDir, { recursive: true, force: true });
12
- });
13
- describe('getProjectVersion', () => {
14
- it('resolves version from agents.yaml in startPath', () => {
15
- fs.writeFileSync(path.join(tmpDir, 'agents.yaml'), 'agents:\n claude: "1.2.3"\n');
16
- expect(getProjectVersion('claude', tmpDir)).toBe('1.2.3');
17
- });
18
- it('walks up to find agents.yaml in a parent directory', () => {
19
- const nested = path.join(tmpDir, 'a', 'b', 'c');
20
- fs.mkdirSync(nested, { recursive: true });
21
- fs.writeFileSync(path.join(tmpDir, 'agents.yaml'), 'agents:\n claude: "2.0.0"\n');
22
- expect(getProjectVersion('claude', nested)).toBe('2.0.0');
23
- });
24
- it('returns null when no agents.yaml exists', () => {
25
- const nested = path.join(tmpDir, 'empty');
26
- fs.mkdirSync(nested, { recursive: true });
27
- expect(getProjectVersion('claude', nested)).toBeNull();
28
- });
29
- it('returns null when agents.yaml exists but agent key is absent', () => {
30
- fs.writeFileSync(path.join(tmpDir, 'agents.yaml'), 'agents:\n codex: "0.9.0"\n');
31
- expect(getProjectVersion('claude', tmpDir)).toBeNull();
32
- });
33
- it('ignores ~/.agents/agents.yaml (user file) when walking up', () => {
34
- // Simulate the user agents.yaml path being encountered during the walk.
35
- // We cannot mutate os.homedir(), but we CAN verify that passing the
36
- // actual user file path returns null (no version extracted from it).
37
- const userAgentsYaml = path.join(os.homedir(), '.agents', 'agents.yaml');
38
- // If the file actually exists on this machine, starting from its directory
39
- // must NOT return its contents as a project version.
40
- if (fs.existsSync(userAgentsYaml)) {
41
- const result = getProjectVersion('claude', path.dirname(userAgentsYaml));
42
- // The function should skip ~/.agents/agents.yaml itself
43
- // so result is null (no sibling agents.yaml) or a version from a
44
- // higher-up project agents.yaml — either way it must not come from the
45
- // user file at ~/.agents/agents.yaml.
46
- // We just confirm no error is thrown and type is correct.
47
- expect(typeof result === 'string' || result === null).toBe(true);
48
- }
49
- else {
50
- // If the file doesn't exist, the test is vacuously satisfied.
51
- expect(true).toBe(true);
52
- }
53
- });
54
- it('parses agents.yaml with quoted version string', () => {
55
- fs.writeFileSync(path.join(tmpDir, 'agents.yaml'), 'agents:\n claude: \'1.5.0\'\n');
56
- expect(getProjectVersion('claude', tmpDir)).toBe('1.5.0');
57
- });
58
- it('parses agents.yaml with unquoted version string', () => {
59
- fs.writeFileSync(path.join(tmpDir, 'agents.yaml'), 'agents:\n claude: 1.7.2\n');
60
- expect(getProjectVersion('claude', tmpDir)).toBe('1.7.2');
61
- });
62
- });
63
- //# sourceMappingURL=versions.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"versions.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/versions.test.ts"],"names":[],"mappings":"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"}
@@ -1,158 +0,0 @@
1
- import type { AgentConfig, AgentId } from './types.js';
2
- /** Represents the installation state of an agent's CLI binary. */
3
- export interface CliState {
4
- installed: boolean;
5
- version: string | null;
6
- path: string | null;
7
- }
8
- /** Minimum Codex CLI version that supports hooks. */
9
- export declare const CODEX_HOOKS_MIN_VERSION = "0.116.0";
10
- /**
11
- * Master registry of all supported agents keyed by AgentId.
12
- *
13
- * Each entry defines the agent's CLI command, npm package, config directory layout,
14
- * instructions file name, slash-command format, and capability flags. This is the
15
- * single source of truth for agent metadata consumed throughout the codebase.
16
- */
17
- export declare const AGENTS: Record<AgentId, AgentConfig>;
18
- /** All registered agent IDs derived from the AGENTS registry. */
19
- export declare const ALL_AGENT_IDS: AgentId[];
20
- /** Agents that support MCP (Model Context Protocol) server integration. */
21
- export declare const MCP_CAPABLE_AGENTS: AgentId[];
22
- /** Agents that support skills (SKILL.md + rules/ bundles). */
23
- export declare const SKILLS_CAPABLE_AGENTS: AgentId[];
24
- /** Agents that support file-based slash commands. */
25
- export declare const COMMANDS_CAPABLE_AGENTS: AgentId[];
26
- /** Agents that support event hooks (pre/post lifecycle callbacks). */
27
- export declare const HOOKS_CAPABLE_AGENTS: readonly ["claude", "codex", "gemini", "openclaw"];
28
- /** Agents that support the plugin system. */
29
- export declare const PLUGINS_CAPABLE_AGENTS: AgentId[];
30
- /** Get the chalk color function for an agent. Works for any AgentId or SessionAgentId. */
31
- export declare function colorAgent(agentId: string): (s: string) => string;
32
- /** Return the agent's display name, colored. */
33
- export declare function agentLabel(agentId: string): string;
34
- /** Check whether the given agent's CLI binary is present on PATH. */
35
- export declare function isCliInstalled(agentId: AgentId): Promise<boolean>;
36
- /** Return the installed CLI version for the given agent, or null if not found. */
37
- export declare function getCliVersion(agentId: AgentId): Promise<string | null>;
38
- /** Return the absolute path to the agent's CLI binary on PATH, or null. */
39
- export declare function getCliPath(agentId: AgentId): Promise<string | null>;
40
- /**
41
- * Resolve the full CLI state for an agent: whether it is installed, its version,
42
- * and the path to the binary. Checks version-managed installs first, then falls
43
- * back to a plain PATH lookup.
44
- */
45
- export declare function getCliState(agentId: AgentId): Promise<CliState>;
46
- /** Resolve CLI state for all registered agents in parallel. */
47
- export declare function getAllCliStates(): Promise<Partial<Record<AgentId, CliState>>>;
48
- /** Check whether the agent's config directory exists on disk. */
49
- export declare function isConfigured(agentId: AgentId): boolean;
50
- /** Create the agent's slash-commands directory if it does not exist. */
51
- export declare function ensureCommandsDir(agentId: AgentId): void;
52
- /** Create the agent's skills directory if it does not exist. */
53
- export declare function ensureSkillsDir(agentId: AgentId): void;
54
- /** Account identity and billing information extracted from an agent's auth config. */
55
- export interface AccountInfo {
56
- accountKey: string | null;
57
- usageKey: string | null;
58
- accountId: string | null;
59
- organizationId: string | null;
60
- userId: string | null;
61
- email: string | null;
62
- plan: string | null;
63
- usageStatus: 'available' | 'rate_limited' | 'out_of_credits' | null;
64
- overageCredits: {
65
- amount: number;
66
- currency: string;
67
- } | null;
68
- lastActive: Date | null;
69
- }
70
- /** Return the email address associated with the agent's auth config, or null. */
71
- export declare function getAccountEmail(agentId: AgentId, home?: string): Promise<string | null>;
72
- /**
73
- * Extract full account information (identity, plan, usage status, credits) from
74
- * the agent's local auth/config files. Supports Claude, Codex, and Gemini.
75
- */
76
- export declare function getAccountInfo(agentId: AgentId, home?: string): Promise<AccountInfo>;
77
- /** Check whether a named MCP server is registered with the agent's CLI. */
78
- export declare function isMcpRegistered(agentId: AgentId, mcpName: string): Promise<boolean>;
79
- /** Register an MCP server with an agent's CLI via `mcp add`. */
80
- export declare function registerMcp(agentId: AgentId, name: string, command: string, scope?: 'user' | 'project', transport?: string, options?: {
81
- home?: string;
82
- binary?: string;
83
- }): Promise<{
84
- success: boolean;
85
- error?: string;
86
- }>;
87
- /** Unregister (remove) a named MCP server from an agent's CLI config. */
88
- export declare function unregisterMcp(agentId: AgentId, name: string, options?: {
89
- home?: string;
90
- binary?: string;
91
- }): Promise<{
92
- success: boolean;
93
- error?: string;
94
- }>;
95
- /** Result of an MCP registration or removal operation targeting a specific agent and optional version. */
96
- export interface McpTargetOperationResult {
97
- agentId: AgentId;
98
- version?: string;
99
- success: boolean;
100
- error?: string;
101
- }
102
- /**
103
- * Register an MCP server across multiple agent targets, including both direct
104
- * (non-version-managed) agents and specific version-managed installs.
105
- */
106
- export declare function registerMcpToTargets(targets: {
107
- directAgents: AgentId[];
108
- versionSelections: Map<AgentId, string[]>;
109
- }, name: string, command: string, scope?: 'user' | 'project', transport?: string): Promise<McpTargetOperationResult[]>;
110
- /**
111
- * Unregister an MCP server from multiple agent targets, including both direct
112
- * agents and specific version-managed installs.
113
- */
114
- export declare function unregisterMcpFromTargets(targets: {
115
- directAgents: AgentId[];
116
- versionSelections: Map<AgentId, string[]>;
117
- }, name: string): Promise<McpTargetOperationResult[]>;
118
- /** Scope at which an MCP server is registered: user-global or per-project. */
119
- export type McpScope = 'user' | 'project';
120
- /** Describes an MCP server discovered in an agent's config, with its scope and command. */
121
- export interface InstalledMcp {
122
- name: string;
123
- scope: McpScope;
124
- command?: string;
125
- version?: string;
126
- }
127
- interface McpConfigEntry {
128
- command?: string;
129
- args?: string[];
130
- env?: Record<string, string>;
131
- type?: string;
132
- url?: string;
133
- }
134
- /**
135
- * Get MCP config path for a specific HOME directory (used for version-managed agents).
136
- */
137
- export declare function getMcpConfigPathForHome(agentId: AgentId, home: string): string;
138
- /**
139
- * Parse MCP config based on agent type.
140
- */
141
- export declare function parseMcpConfig(agentId: AgentId, configPath: string): Record<string, McpConfigEntry>;
142
- /**
143
- * List installed MCP servers with scope information.
144
- * Pass options.home to read from a version-managed agent's home directory.
145
- */
146
- export declare function listInstalledMcpsWithScope(agentId: AgentId, cwd?: string, options?: {
147
- home?: string;
148
- }): InstalledMcp[];
149
- /** Map of agent name aliases and shorthand identifiers to canonical AgentId values. */
150
- export declare const AGENT_NAME_ALIASES: Record<string, AgentId>;
151
- /** Resolve a user-provided agent name (alias, shorthand, or canonical) to its AgentId. */
152
- export declare function resolveAgentName(input: string): AgentId | null;
153
- /** Check whether the input string matches any known agent name or alias. */
154
- export declare function isAgentName(input: string): boolean;
155
- /** Format an error message for an unrecognized agent name, listing valid options. */
156
- export declare function formatAgentError(agentName: string, validAgents?: AgentId[]): string;
157
- export {};
158
- //# sourceMappingURL=agents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAMvD,kEAAkE;AAClE,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAMD,qDAAqD;AACrD,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAqDjD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CAkM/C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,aAAa,EAAE,OAAO,EAAqC,CAAC;AAEzE,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAEvC,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,EAAE,OAAO,EAE1C,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,uBAAuB,EAAE,OAAO,EAE5C,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,oDAAqD,CAAC;AAEvF,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,EAAE,OAAO,EAE3C,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAIjE;AAED,gDAAgD;AAChD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,qEAAqE;AACrE,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvE;AAED,kFAAkF;AAClF,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAK5E;AAED,2EAA2E;AAC3E,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEzE;AAuCD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CA8CrE;AAED,+DAA+D;AAC/D,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAYnF;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKxD;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKtD;AAED,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,WAAW,GAAG,cAAc,GAAG,gBAAgB,GAAG,IAAI,CAAC;IACpE,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5D,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,iFAAiF;AACjF,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC,CAwItB;AAsGD,2EAA2E;AAC3E,wBAAsB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYzF;AAED,gEAAgE;AAChE,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAM,GAAG,SAAkB,EAClC,SAAS,GAAE,MAAgB,EAC3B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB/C;AAED,yEAAyE;AACzE,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB/C;AAED,0GAA0G;AAC1G,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE;IAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,EAC/E,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAM,GAAG,SAAkB,EAClC,SAAS,GAAE,MAAgB,GAC1B,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAmBrC;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE;IAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,EAC/E,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAmBrC;AAED,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1C,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA4MD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAyB9E;AAiFD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAWnG;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,GAAG,GAAE,MAAsB,EAC3B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B,YAAY,EAAE,CAuChB;AAED,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CA+BtD,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAE9D;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,OAAO,EAAkB,GAAG,MAAM,CAElG"}