@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,255 +0,0 @@
1
- /**
2
- * Profile management commands.
3
- *
4
- * Registers the `agents profiles` command tree for creating, viewing,
5
- * and removing named bundles of (host CLI, endpoint, model, keychain auth).
6
- * Profiles let users run non-default providers (Kimi, DeepSeek, Qwen, etc.)
7
- * through a standard agent CLI with no local proxy.
8
- */
9
- import chalk from 'chalk';
10
- import * as fs from 'fs';
11
- import { listProfiles, readProfile, writeProfile, deleteProfile, profileExists, profileFromPreset, getPresetForProfile, } from '../lib/profiles.js';
12
- import { getPreset, listPresets } from '../lib/profiles-presets.js';
13
- import { hasKeychainToken, keychainItemName, setKeychainToken, deleteKeychainToken, } from '../lib/profiles-keychain.js';
14
- import { isInteractiveTerminal } from './utils.js';
15
- /** Prompt the user for a secret value with masked input. Requires an interactive TTY. */
16
- async function promptForSecret(message) {
17
- if (!isInteractiveTerminal()) {
18
- throw new Error('A secret is required but the shell is not interactive. Pipe the key via stdin (--key-stdin).');
19
- }
20
- const { password } = await import('@inquirer/prompts');
21
- return await password({ message, mask: true });
22
- }
23
- /** Read all available data from stdin synchronously, trimmed. */
24
- function readStdinSync() {
25
- const chunks = [];
26
- const buf = Buffer.alloc(65536);
27
- while (true) {
28
- let bytesRead;
29
- try {
30
- bytesRead = fs.readSync(0, buf, 0, buf.length, null);
31
- }
32
- catch {
33
- break;
34
- }
35
- if (bytesRead === 0)
36
- break;
37
- chunks.push(Buffer.from(buf.subarray(0, bytesRead)));
38
- }
39
- return Buffer.concat(chunks).toString('utf-8').trim();
40
- }
41
- /** Ensure a provider API key exists in keychain, prompting or reading stdin if missing. */
42
- async function ensureProviderToken(provider, signupUrl, fromStdin) {
43
- const item = keychainItemName(provider);
44
- if (hasKeychainToken(item)) {
45
- return;
46
- }
47
- let token;
48
- if (fromStdin) {
49
- token = readStdinSync();
50
- if (!token) {
51
- throw new Error('No key received on stdin.');
52
- }
53
- }
54
- else {
55
- const hint = signupUrl ? ` (get one at ${signupUrl})` : '';
56
- token = await promptForSecret(`Enter API key for ${provider}${hint}`);
57
- }
58
- setKeychainToken(item, token);
59
- console.log(chalk.green(`Stored in keychain: ${item}`));
60
- }
61
- /** Format a single profile as a table row for the `profiles list` output. */
62
- function renderProfileRow(p) {
63
- const host = p.host.version ? `${p.host.agent}@${p.host.version}` : p.host.agent;
64
- const model = p.env.ANTHROPIC_MODEL || p.env.OPENAI_MODEL || p.env.GEMINI_MODEL || '-';
65
- const provider = p.provider || (p.auth?.keychainItem?.split('.')[1]) || '-';
66
- return `${chalk.cyan(p.name.padEnd(16))} ${host.padEnd(14)} ${provider.padEnd(12)} ${chalk.gray(model)}`;
67
- }
68
- /** Register the `agents profiles` command tree. */
69
- export function registerProfilesCommands(program) {
70
- const cmd = program
71
- .command('profiles')
72
- .description('Named bundles of (host CLI, endpoint, model, auth) — run Kimi/DeepSeek/Qwen/etc through Claude Code without a proxy.')
73
- .addHelpText('after', `
74
- A profile pins a host CLI (claude, codex, gemini, ...) to a non-default endpoint
75
- and model, with a keychain-backed API key. Running 'agents run <profile>' spawns
76
- the host CLI with the right env vars — no plaintext tokens, no local proxy.
77
-
78
- Built-in presets (via OpenRouter, one shared key):
79
- kimi Kimi K2.5 (top HumanEval, reasoning — interactive only)
80
- kimi-chat Kimi K2 0905 (non-reasoning, print-safe)
81
- minimax MiniMax M2.5 (top SWE-bench, reasoning)
82
- glm GLM 5 (top Chatbot Arena among open-weight, reasoning)
83
- qwen Qwen3 Coder Next (latest coding Qwen, print-safe)
84
- deepseek DeepSeek Chat V3 (latest non-reasoning chat, print-safe)
85
-
86
- Run 'agents profiles presets' for the full list with pricing and context sizes.
87
-
88
- Typical flow:
89
- agents profiles add kimi # prompts for OpenRouter key, stored in Keychain
90
- agents run kimi "refactor this" # Claude Code UI, Kimi model responses
91
- agents profiles add deepseek # reuses OpenRouter key, no re-prompt
92
-
93
- Managing keys:
94
- agents profiles login openrouter # rotate the key (shared across openrouter profiles)
95
- agents profiles logout openrouter # remove from Keychain
96
-
97
- Custom endpoints — drop a YAML file at ~/.agents/profiles/<name>.yml:
98
- name: local-llama
99
- host: { agent: claude }
100
- env:
101
- ANTHROPIC_BASE_URL: http://localhost:11434
102
- ANTHROPIC_MODEL: llama-3.3-70b
103
- auth:
104
- envVar: ANTHROPIC_AUTH_TOKEN
105
- keychainItem: agents-cli.ollama.token
106
-
107
- Profiles store no secrets — safe to 'agents push' to a shared repo.
108
- `);
109
- cmd
110
- .command('list')
111
- .alias('ls')
112
- .description('List configured profiles')
113
- .action(() => {
114
- const profiles = listProfiles();
115
- if (profiles.length === 0) {
116
- console.log(chalk.gray('No profiles configured.'));
117
- console.log(chalk.gray('Try: agents profiles add kimi'));
118
- console.log(chalk.gray(' agents profiles presets'));
119
- return;
120
- }
121
- console.log(chalk.bold(`${'NAME'.padEnd(16)} ${'HOST'.padEnd(14)} ${'PROVIDER'.padEnd(12)} MODEL`));
122
- for (const p of profiles) {
123
- console.log(renderProfileRow(p));
124
- }
125
- });
126
- cmd
127
- .command('presets')
128
- .description('List built-in presets (OpenRouter + direct providers)')
129
- .action(() => {
130
- const presets = listPresets();
131
- console.log(chalk.bold(`${'NAME'.padEnd(14)} ${'PROVIDER'.padEnd(12)} DESCRIPTION`));
132
- for (const p of presets) {
133
- console.log(`${chalk.cyan(p.name.padEnd(14))} ${p.provider.padEnd(12)} ${chalk.gray(p.description)}`);
134
- }
135
- });
136
- cmd
137
- .command('view <name>')
138
- .alias('show')
139
- .description('Show a profile (env, host, auth source, preset link)')
140
- .action((name) => {
141
- try {
142
- const p = readProfile(name);
143
- console.log(chalk.bold(p.name));
144
- if (p.description)
145
- console.log(chalk.gray(p.description));
146
- console.log();
147
- console.log(chalk.bold('Host:'), p.host.agent + (p.host.version ? `@${p.host.version}` : ''));
148
- if (p.provider)
149
- console.log(chalk.bold('Provider:'), p.provider);
150
- if (p.preset)
151
- console.log(chalk.bold('Preset:'), p.preset);
152
- console.log();
153
- console.log(chalk.bold('Env:'));
154
- for (const [k, v] of Object.entries(p.env)) {
155
- console.log(` ${k}=${v}`);
156
- }
157
- if (p.auth) {
158
- console.log();
159
- console.log(chalk.bold('Auth:'));
160
- const tokenStatus = hasKeychainToken(p.auth.keychainItem) ? chalk.green('stored') : chalk.red('missing');
161
- console.log(` ${p.auth.envVar} <- keychain:${p.auth.keychainItem} (${tokenStatus})`);
162
- }
163
- const preset = getPresetForProfile(p);
164
- if (preset?.signupUrl) {
165
- console.log();
166
- console.log(chalk.gray(`Sign up: ${preset.signupUrl}`));
167
- }
168
- }
169
- catch (err) {
170
- console.error(chalk.red(err.message));
171
- process.exit(1);
172
- }
173
- });
174
- cmd
175
- .command('add <name>')
176
- .description('Add a profile. If <name> matches a built-in preset, the preset is applied. Prompts for API key (once per provider).')
177
- .option('--preset <preset>', 'Use a named preset (defaults to <name> if a preset by that name exists)')
178
- .option('--version <version>', 'Pin the host CLI version (e.g., 2.1.113)')
179
- .option('--key-stdin', 'Read API key from stdin instead of prompting (for scripts/CI)')
180
- .option('--force', 'Overwrite an existing profile with the same name')
181
- .action(async (name, opts) => {
182
- try {
183
- if (profileExists(name) && !opts.force) {
184
- console.error(chalk.red(`Profile '${name}' already exists. Use --force to overwrite.`));
185
- process.exit(1);
186
- }
187
- const presetName = opts.preset || name;
188
- const preset = getPreset(presetName);
189
- if (!preset) {
190
- console.error(chalk.red(`No preset '${presetName}'.`));
191
- console.error(chalk.gray('Available presets: ' + listPresets().map((p) => p.name).join(', ')));
192
- console.error(chalk.gray('Or pass --preset <name> to pick explicitly.'));
193
- process.exit(1);
194
- }
195
- await ensureProviderToken(preset.provider, preset.signupUrl, opts.keyStdin);
196
- const profile = profileFromPreset(name, preset, opts.version);
197
- writeProfile(profile);
198
- console.log(chalk.green(`Profile '${name}' added.`));
199
- console.log(chalk.gray(`Try: agents run ${name} "hello"`));
200
- }
201
- catch (err) {
202
- console.error(chalk.red(err.message));
203
- process.exit(1);
204
- }
205
- });
206
- cmd
207
- .command('remove <name>')
208
- .alias('rm')
209
- .description('Delete a profile (keychain token is kept — use `profiles logout <provider>` to remove)')
210
- .action((name) => {
211
- const existed = deleteProfile(name);
212
- if (!existed) {
213
- console.error(chalk.red(`Profile '${name}' not found.`));
214
- process.exit(1);
215
- }
216
- console.log(chalk.green(`Profile '${name}' removed.`));
217
- });
218
- cmd
219
- .command('login <provider>')
220
- .description('Store or rotate the API key for a provider (e.g., openrouter). Shared across profiles using that provider.')
221
- .option('--key-stdin', 'Read API key from stdin')
222
- .action(async (provider, opts) => {
223
- try {
224
- const item = keychainItemName(provider);
225
- let token;
226
- if (opts.keyStdin) {
227
- token = readStdinSync();
228
- if (!token)
229
- throw new Error('No key received on stdin.');
230
- }
231
- else {
232
- token = await promptForSecret(`Enter API key for ${provider}`);
233
- }
234
- setKeychainToken(item, token);
235
- console.log(chalk.green(`Stored in keychain: ${item}`));
236
- }
237
- catch (err) {
238
- console.error(chalk.red(err.message));
239
- process.exit(1);
240
- }
241
- });
242
- cmd
243
- .command('logout <provider>')
244
- .description('Remove a stored provider key from keychain')
245
- .action((provider) => {
246
- const item = keychainItemName(provider);
247
- const existed = deleteKeychainToken(item);
248
- if (!existed) {
249
- console.error(chalk.yellow(`No keychain item '${item}' to remove.`));
250
- process.exit(1);
251
- }
252
- console.log(chalk.green(`Removed keychain item: ${item}`));
253
- });
254
- }
255
- //# sourceMappingURL=profiles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/commands/profiles.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * PTY Commands
3
- *
4
- * CLI commands for managing interactive PTY sessions.
5
- * Auto-starts the sidecar server on first use.
6
- *
7
- * Usage:
8
- * agents pty start [--rows 24 --cols 120 --shell zsh --cwd /path]
9
- * agents pty exec <id> <command>
10
- * agents pty read <id> [--ms 200]
11
- * agents pty write <id> <input>
12
- * agents pty screen <id>
13
- * agents pty signal <id> [INT|TERM|KILL]
14
- * agents pty list
15
- * agents pty stop <id>
16
- * agents pty server [start|stop|status]
17
- */
18
- import type { Command } from 'commander';
19
- /** Register the `agents pty` command tree. */
20
- export declare function registerPtyCommands(program: Command): void;
21
- //# sourceMappingURL=pty.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/commands/pty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,8CAA8C;AAC9C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuX1D"}
@@ -1,391 +0,0 @@
1
- /**
2
- * PTY Commands
3
- *
4
- * CLI commands for managing interactive PTY sessions.
5
- * Auto-starts the sidecar server on first use.
6
- *
7
- * Usage:
8
- * agents pty start [--rows 24 --cols 120 --shell zsh --cwd /path]
9
- * agents pty exec <id> <command>
10
- * agents pty read <id> [--ms 200]
11
- * agents pty write <id> <input>
12
- * agents pty screen <id>
13
- * agents pty signal <id> [INT|TERM|KILL]
14
- * agents pty list
15
- * agents pty stop <id>
16
- * agents pty server [start|stop|status]
17
- */
18
- import chalk from 'chalk';
19
- import { ptyRequest, unescapeInput } from '../lib/pty-client.js';
20
- import { isPtyServerRunning, runPtyServer, getPtyPidPath, getPtyLogPath } from '../lib/pty-server.js';
21
- import * as fs from 'fs';
22
- /** Register the `agents pty` command tree. */
23
- export function registerPtyCommands(program) {
24
- const pty = program
25
- .command('pty')
26
- .description('Drive interactive terminal programs from AI agents. Use this for REPLs, TUIs, or anything needing a real terminal.')
27
- .addHelpText('after', `
28
- Typical session workflow:
29
- # Start a new terminal session (returns a session ID)
30
- SID=$(agents pty start)
31
-
32
- # Run a command (non-blocking, returns immediately)
33
- agents pty exec $SID "python3"
34
-
35
- # Wait a moment, then see what's on screen (clean text, no ANSI)
36
- sleep 1 && agents pty screen $SID
37
-
38
- # Send input (supports escape sequences: \\n \\t \\e \\xHH)
39
- agents pty write $SID "print('hello')\\n"
40
-
41
- # Read the output again
42
- agents pty screen $SID
43
-
44
- # Clean up when done
45
- agents pty stop $SID
46
-
47
- Use cases:
48
- - Drive REPLs (python, node, irb) from agent code
49
- - Automate TUI programs (npm init, interactive wizards)
50
- - Test CLI tools that require a real PTY
51
- - Run the 'agents' CLI itself from another agent
52
-
53
- The PTY server auto-starts on first use and runs in the background.
54
- Use 'agents pty server status' to check health.
55
- `);
56
- // --- Session lifecycle ---
57
- pty
58
- .command('start')
59
- .description('Start a new PTY session and return its ID. The session persists until you stop it.')
60
- .option('-r, --rows <n>', 'Terminal height in rows', '24')
61
- .option('-c, --cols <n>', 'Terminal width in columns', '120')
62
- .option('-s, --shell <shell>', 'Shell to launch (defaults to $SHELL, e.g., zsh, bash)')
63
- .option('-d, --cwd <dir>', 'Working directory for the shell')
64
- .option('--json', 'Output full session metadata as JSON')
65
- .addHelpText('after', `
66
- Examples:
67
- # Start a session and capture its ID
68
- SID=$(agents pty start)
69
-
70
- # Start a Python REPL in a specific directory
71
- agents pty start --shell python3 --cwd /tmp
72
-
73
- # Start a wider terminal for TUI programs
74
- agents pty start --cols 160 --rows 40
75
- `)
76
- .action(async (opts) => {
77
- const params = {
78
- rows: parseInt(opts.rows, 10),
79
- cols: parseInt(opts.cols, 10),
80
- };
81
- if (opts.shell)
82
- params.shell = opts.shell;
83
- if (opts.cwd)
84
- params.cwd = opts.cwd;
85
- const res = await ptyRequest('start', undefined, params);
86
- if (!res.ok) {
87
- console.error(chalk.red(res.error));
88
- process.exit(1);
89
- }
90
- if (opts.json) {
91
- console.log(JSON.stringify(res));
92
- }
93
- else {
94
- console.log(res.id);
95
- }
96
- });
97
- pty
98
- .command('exec <id> <command>')
99
- .description('Send a command to a PTY session. Returns immediately (non-blocking). Use screen or read to see output.')
100
- .option('--wait <ms>', 'Wait this many milliseconds then return the screen (convenience for quick commands)', '0')
101
- .option('--json', 'Output as JSON')
102
- .addHelpText('after', `
103
- Examples:
104
- # Run a command and return immediately
105
- agents pty exec $SID "ls -la"
106
-
107
- # Run a command and wait 500ms to see output
108
- agents pty exec $SID "git status" --wait 500
109
-
110
- # Start a long-running process (returns right away)
111
- agents pty exec $SID "npm run dev"
112
- `)
113
- .action(async (id, command, opts) => {
114
- const res = await ptyRequest('exec', id, { command });
115
- if (!res.ok) {
116
- console.error(chalk.red(res.error));
117
- process.exit(1);
118
- }
119
- const waitMs = parseInt(opts.wait, 10);
120
- if (waitMs > 0) {
121
- // Wait then return screen
122
- await new Promise(r => setTimeout(r, waitMs));
123
- const screen = await ptyRequest('screen', id);
124
- if (opts.json) {
125
- console.log(JSON.stringify(screen));
126
- }
127
- else if (screen.ok) {
128
- console.log(screen.screen);
129
- }
130
- }
131
- else if (opts.json) {
132
- console.log(JSON.stringify(res));
133
- }
134
- });
135
- pty
136
- .command('read <id>')
137
- .description('Read raw output from the PTY (includes ANSI codes). Use screen for clean text instead.')
138
- .option('-m, --ms <ms>', 'Wait up to this many milliseconds for new output (50-5000)', '200')
139
- .option('--json', 'Output as JSON')
140
- .addHelpText('after', `
141
- Examples:
142
- # Read pending output (wait up to 200ms)
143
- agents pty read $SID
144
-
145
- # Read with longer wait for slow commands
146
- agents pty read $SID --ms 1000
147
- `)
148
- .action(async (id, opts) => {
149
- const ms = parseInt(opts.ms, 10);
150
- const res = await ptyRequest('read', id, { ms });
151
- if (!res.ok) {
152
- console.error(chalk.red(res.error));
153
- process.exit(1);
154
- }
155
- if (opts.json) {
156
- console.log(JSON.stringify(res));
157
- }
158
- else {
159
- if (res.output)
160
- process.stdout.write(res.output);
161
- }
162
- });
163
- pty
164
- .command('write <id> <input>')
165
- .description('Send keystrokes to the PTY (like typing into the terminal). Processes escape sequences by default.')
166
- .option('--raw', 'Send input literally without processing \\n \\t \\e \\xHH escape codes')
167
- .option('--json', 'Output as JSON')
168
- .addHelpText('after', `
169
- Examples:
170
- # Send Enter key
171
- agents pty write $SID "\\n"
172
-
173
- # Type a command and press Enter
174
- agents pty write $SID "ls -la\\n"
175
-
176
- # Send Ctrl-C (interrupt signal)
177
- agents pty write $SID "\\x03"
178
-
179
- # Send Escape key
180
- agents pty write $SID "\\e"
181
-
182
- # Send literal backslash-n (not newline)
183
- agents pty write $SID "\\\\n" --raw
184
- `)
185
- .action(async (id, input, opts) => {
186
- const processed = opts.raw ? input : unescapeInput(input);
187
- const res = await ptyRequest('write', id, { input: processed });
188
- if (!res.ok) {
189
- console.error(chalk.red(res.error));
190
- process.exit(1);
191
- }
192
- if (opts.json) {
193
- console.log(JSON.stringify(res));
194
- }
195
- });
196
- pty
197
- .command('screen <id>')
198
- .description('Render the terminal screen as clean text (no ANSI codes). This is what a human sees looking at the terminal.')
199
- .option('--json', 'Output as JSON (includes cursor position and dimensions)')
200
- .addHelpText('after', `
201
- Examples:
202
- # See what's currently on screen
203
- agents pty screen $SID
204
-
205
- # Get screen with cursor position as JSON
206
- agents pty screen $SID --json
207
-
208
- Use this (not read) when you want clean text for an LLM to parse.
209
- `)
210
- .action(async (id, opts) => {
211
- const res = await ptyRequest('screen', id);
212
- if (!res.ok) {
213
- console.error(chalk.red(res.error));
214
- process.exit(1);
215
- }
216
- if (opts.json) {
217
- console.log(JSON.stringify(res));
218
- }
219
- else {
220
- console.log(res.screen);
221
- }
222
- });
223
- pty
224
- .command('signal <id> [signal]')
225
- .description('Send a POSIX signal to the running process. Defaults to INT (Ctrl-C).')
226
- .addHelpText('after', `
227
- Examples:
228
- # Send Ctrl-C (interrupt)
229
- agents pty signal $SID INT
230
-
231
- # Terminate gracefully
232
- agents pty signal $SID TERM
233
-
234
- # Force kill
235
- agents pty signal $SID KILL
236
- `)
237
- .action(async (id, signal) => {
238
- const res = await ptyRequest('signal', id, { signal: signal || 'INT' });
239
- if (!res.ok) {
240
- console.error(chalk.red(res.error));
241
- process.exit(1);
242
- }
243
- });
244
- pty
245
- .command('resize <id>')
246
- .description('Resize a PTY session')
247
- .option('-r, --rows <n>', 'Terminal rows')
248
- .option('-c, --cols <n>', 'Terminal columns')
249
- .action(async (id, opts) => {
250
- const params = {};
251
- if (opts.rows)
252
- params.rows = parseInt(opts.rows, 10);
253
- if (opts.cols)
254
- params.cols = parseInt(opts.cols, 10);
255
- const res = await ptyRequest('resize', id, params);
256
- if (!res.ok) {
257
- console.error(chalk.red(res.error));
258
- process.exit(1);
259
- }
260
- console.log(`${res.cols}x${res.rows}`);
261
- });
262
- pty
263
- .command('stop <id>')
264
- .description('Stop a PTY session and clean up. The session ID becomes invalid.')
265
- .addHelpText('after', `
266
- Example:
267
- agents pty stop $SID
268
- `)
269
- .action(async (id) => {
270
- const res = await ptyRequest('stop', id);
271
- if (!res.ok) {
272
- console.error(chalk.red(res.error));
273
- process.exit(1);
274
- }
275
- });
276
- // --- Session listing ---
277
- pty
278
- .command('list')
279
- .description('List all active PTY sessions (running or idle).')
280
- .option('--json', 'Output as JSON')
281
- .addHelpText('after', `
282
- Example:
283
- agents pty list
284
- `)
285
- .action(async (opts) => {
286
- const res = await ptyRequest('list');
287
- if (!res.ok) {
288
- console.error(chalk.red(res.error));
289
- process.exit(1);
290
- }
291
- if (opts.json) {
292
- console.log(JSON.stringify(res.sessions));
293
- return;
294
- }
295
- if (res.sessions.length === 0) {
296
- console.log(chalk.gray('No active PTY sessions'));
297
- return;
298
- }
299
- for (const s of res.sessions) {
300
- const age = formatAge(Date.now() - s.started_at);
301
- const status = s.exited
302
- ? chalk.red(`exited (${s.exit_code})`)
303
- : s.app_active
304
- ? chalk.yellow(`running: ${s.active_command}`)
305
- : chalk.green('idle');
306
- console.log(` ${chalk.bold(s.id)} pid=${s.pid} ${s.shell} ${s.cols}x${s.rows} ${age} ${status}`);
307
- console.log(` ${chalk.gray(s.cwd)}`);
308
- }
309
- });
310
- // --- Server management ---
311
- const serverCmd = pty
312
- .command('server')
313
- .description('Manage the PTY sidecar server (auto-starts on first use, usually you do not need this).');
314
- serverCmd
315
- .command('start')
316
- .description('Start the PTY server manually (auto-starts on first pty command anyway).')
317
- .action(async () => {
318
- if (isPtyServerRunning()) {
319
- const pidPath = getPtyPidPath();
320
- const pid = fs.existsSync(pidPath) ? fs.readFileSync(pidPath, 'utf-8').trim() : '?';
321
- console.log(chalk.yellow(`PTY server already running (PID: ${pid})`));
322
- return;
323
- }
324
- // Use ptyRequest which auto-starts the server
325
- const res = await ptyRequest('ping');
326
- if (res.ok) {
327
- console.log(chalk.green(`PTY server started (PID: ${res.pid})`));
328
- }
329
- else {
330
- console.error(chalk.red('Failed to start PTY server'));
331
- process.exit(1);
332
- }
333
- });
334
- serverCmd
335
- .command('stop')
336
- .description('Stop the PTY server and kill all active sessions.')
337
- .action(async () => {
338
- if (!isPtyServerRunning()) {
339
- console.log(chalk.yellow('PTY server is not running'));
340
- return;
341
- }
342
- const pidPath = getPtyPidPath();
343
- try {
344
- const pid = parseInt(fs.readFileSync(pidPath, 'utf-8').trim(), 10);
345
- process.kill(pid, 'SIGTERM');
346
- console.log(chalk.green('PTY server stopped'));
347
- }
348
- catch {
349
- console.error(chalk.red('Failed to stop PTY server'));
350
- process.exit(1);
351
- }
352
- });
353
- serverCmd
354
- .command('status')
355
- .description('Check if the PTY server is running and how many sessions are active.')
356
- .action(async () => {
357
- const running = isPtyServerRunning();
358
- console.log(` Status: ${running ? chalk.green('running') : chalk.gray('stopped')}`);
359
- if (running) {
360
- try {
361
- const res = await ptyRequest('ping');
362
- if (res.ok) {
363
- console.log(` PID: ${res.pid}`);
364
- console.log(` Sessions: ${res.sessions}`);
365
- }
366
- }
367
- catch { }
368
- }
369
- const logPath = getPtyLogPath();
370
- console.log(` Log: ${logPath}`);
371
- });
372
- // Internal: run server in foreground (spawned by auto-start)
373
- pty
374
- .command('_server', { hidden: true })
375
- .description('Run PTY server (internal)')
376
- .action(async () => {
377
- await runPtyServer();
378
- });
379
- }
380
- /** Format a millisecond duration as a compact human-readable string (e.g. "5m", "2h 30m"). */
381
- function formatAge(ms) {
382
- const secs = Math.floor(ms / 1000);
383
- if (secs < 60)
384
- return `${secs}s`;
385
- const mins = Math.floor(secs / 60);
386
- if (mins < 60)
387
- return `${mins}m`;
388
- const hours = Math.floor(mins / 60);
389
- return `${hours}h ${mins % 60}m`;
390
- }
391
- //# sourceMappingURL=pty.js.map