@phnx-labs/agents-cli 1.12.0 → 1.14.2

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 (496) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +308 -297
  3. package/dist/commands/alias.d.ts +11 -0
  4. package/dist/commands/alias.js +117 -0
  5. package/dist/commands/beta.d.ts +2 -0
  6. package/dist/commands/beta.js +53 -0
  7. package/dist/commands/cloud.d.ts +10 -0
  8. package/dist/commands/cloud.js +408 -0
  9. package/dist/commands/commands.d.ts +9 -1
  10. package/dist/commands/commands.js +24 -172
  11. package/dist/commands/daemon.d.ts +8 -1
  12. package/dist/commands/daemon.js +13 -5
  13. package/dist/commands/doctor.d.ts +15 -0
  14. package/dist/commands/doctor.js +132 -0
  15. package/dist/commands/drive.d.ts +8 -1
  16. package/dist/commands/drive.js +20 -3
  17. package/dist/commands/exec.d.ts +8 -1
  18. package/dist/commands/exec.js +207 -20
  19. package/dist/commands/factory.d.ts +19 -0
  20. package/dist/commands/factory.js +71 -0
  21. package/dist/commands/fork.d.ts +8 -1
  22. package/dist/commands/fork.js +11 -4
  23. package/dist/commands/hooks.d.ts +9 -1
  24. package/dist/commands/hooks.js +30 -182
  25. package/dist/commands/init.d.ts +15 -1
  26. package/dist/commands/init.js +168 -74
  27. package/dist/commands/mcp.d.ts +9 -1
  28. package/dist/commands/mcp.js +11 -7
  29. package/dist/commands/models.d.ts +8 -1
  30. package/dist/commands/models.js +45 -6
  31. package/dist/commands/packages.d.ts +8 -1
  32. package/dist/commands/packages.js +13 -7
  33. package/dist/commands/permissions.d.ts +9 -1
  34. package/dist/commands/permissions.js +3 -3
  35. package/dist/commands/plugins.d.ts +8 -1
  36. package/dist/commands/plugins.js +13 -2
  37. package/dist/commands/profiles.d.ts +11 -0
  38. package/dist/commands/profiles.js +291 -0
  39. package/dist/commands/prune.d.ts +22 -0
  40. package/dist/commands/prune.js +191 -0
  41. package/dist/commands/pty.d.ts +1 -1
  42. package/dist/commands/pty.js +2 -1
  43. package/dist/commands/pull.d.ts +8 -1
  44. package/dist/commands/pull.js +93 -129
  45. package/dist/commands/refresh-memory.d.ts +7 -1
  46. package/dist/commands/refresh-memory.js +7 -1
  47. package/dist/commands/repo.d.ts +15 -0
  48. package/dist/commands/repo.js +570 -0
  49. package/dist/commands/resource-view.d.ts +10 -3
  50. package/dist/commands/resource-view.js +18 -5
  51. package/dist/commands/routines.d.ts +8 -1
  52. package/dist/commands/routines.js +17 -4
  53. package/dist/commands/rules.d.ts +9 -1
  54. package/dist/commands/rules.js +16 -11
  55. package/dist/commands/secrets.d.ts +10 -0
  56. package/dist/commands/secrets.js +518 -0
  57. package/dist/commands/sessions-picker.d.ts +2 -1
  58. package/dist/commands/sessions-picker.js +88 -11
  59. package/dist/commands/sessions-tail.d.ts +19 -0
  60. package/dist/commands/sessions-tail.js +235 -0
  61. package/dist/commands/sessions.d.ts +2 -1
  62. package/dist/commands/sessions.js +288 -7
  63. package/dist/commands/skills.d.ts +9 -1
  64. package/dist/commands/skills.js +28 -178
  65. package/dist/commands/status.d.ts +7 -1
  66. package/dist/commands/status.js +7 -1
  67. package/dist/commands/subagents.d.ts +8 -1
  68. package/dist/commands/subagents.js +11 -1
  69. package/dist/commands/sync.d.ts +8 -1
  70. package/dist/commands/sync.js +8 -1
  71. package/dist/commands/teams-picker.d.ts +4 -1
  72. package/dist/commands/teams-picker.js +55 -3
  73. package/dist/commands/teams.d.ts +15 -1
  74. package/dist/commands/teams.js +323 -69
  75. package/dist/commands/usage.d.ts +11 -0
  76. package/dist/commands/usage.js +60 -0
  77. package/dist/commands/utils.d.ts +6 -1
  78. package/dist/commands/utils.js +6 -1
  79. package/dist/commands/versions.d.ts +8 -1
  80. package/dist/commands/versions.js +4 -3
  81. package/dist/commands/view.d.ts +47 -2
  82. package/dist/commands/view.js +353 -20
  83. package/dist/index.d.ts +7 -2
  84. package/dist/index.js +205 -38
  85. package/dist/lib/acp/client.d.ts +31 -0
  86. package/dist/lib/acp/client.js +117 -0
  87. package/dist/lib/acp/harnesses.d.ts +26 -0
  88. package/dist/lib/acp/harnesses.js +65 -0
  89. package/dist/lib/acp/run.d.ts +18 -0
  90. package/dist/lib/acp/run.js +39 -0
  91. package/dist/lib/agents.d.ts +74 -2
  92. package/dist/lib/agents.js +207 -23
  93. package/dist/lib/artifact-actions.d.ts +8 -4
  94. package/dist/lib/artifact-actions.js +8 -6
  95. package/dist/lib/auto-pull-worker.d.ts +11 -0
  96. package/dist/lib/auto-pull-worker.js +121 -0
  97. package/dist/lib/auto-pull.d.ts +31 -0
  98. package/dist/lib/auto-pull.js +97 -0
  99. package/dist/lib/beta.d.ts +23 -0
  100. package/dist/lib/beta.js +90 -0
  101. package/dist/lib/capabilities.d.ts +29 -0
  102. package/dist/lib/capabilities.js +74 -0
  103. package/dist/lib/cloud/codex.d.ts +25 -0
  104. package/dist/lib/cloud/codex.js +250 -0
  105. package/dist/lib/cloud/factory.d.ts +31 -0
  106. package/dist/lib/cloud/factory.js +53 -0
  107. package/dist/lib/cloud/registry.d.ts +15 -0
  108. package/dist/lib/cloud/registry.js +67 -0
  109. package/dist/lib/cloud/rush.d.ts +75 -0
  110. package/dist/lib/cloud/rush.js +438 -0
  111. package/dist/lib/cloud/store.d.ts +22 -0
  112. package/dist/lib/cloud/store.js +115 -0
  113. package/dist/lib/cloud/stream.d.ts +23 -0
  114. package/dist/lib/cloud/stream.js +194 -0
  115. package/dist/lib/cloud/types.d.ts +205 -0
  116. package/dist/lib/cloud/types.js +34 -0
  117. package/dist/lib/command-skills.d.ts +20 -0
  118. package/dist/lib/command-skills.js +142 -0
  119. package/dist/lib/commands.d.ts +22 -2
  120. package/dist/lib/commands.js +51 -11
  121. package/dist/lib/convert.d.ts +10 -1
  122. package/dist/lib/convert.js +9 -1
  123. package/dist/lib/daemon.d.ts +21 -1
  124. package/dist/lib/daemon.js +97 -4
  125. package/dist/lib/drive-sync.d.ts +18 -1
  126. package/dist/lib/drive-sync.js +57 -15
  127. package/dist/lib/exec.d.ts +25 -5
  128. package/dist/lib/exec.js +72 -27
  129. package/dist/lib/fs-walk.d.ts +2 -0
  130. package/dist/lib/fs-walk.js +40 -0
  131. package/dist/lib/fuzzy.d.ts +53 -0
  132. package/dist/lib/fuzzy.js +72 -0
  133. package/dist/lib/gemini-settings.d.ts +4 -0
  134. package/dist/lib/gemini-settings.js +33 -0
  135. package/dist/lib/git.d.ts +12 -2
  136. package/dist/lib/git.js +17 -6
  137. package/dist/lib/help.d.ts +20 -1
  138. package/dist/lib/help.js +45 -6
  139. package/dist/lib/hooks/match.d.ts +32 -0
  140. package/dist/lib/hooks/match.js +120 -0
  141. package/dist/lib/hooks.d.ts +17 -4
  142. package/dist/lib/hooks.js +191 -21
  143. package/dist/lib/manifest.d.ts +6 -1
  144. package/dist/lib/manifest.js +15 -4
  145. package/dist/lib/markdown.d.ts +0 -1
  146. package/dist/lib/markdown.js +6 -1
  147. package/dist/lib/mcp.d.ts +0 -1
  148. package/dist/lib/mcp.js +29 -33
  149. package/dist/lib/memory-compile.d.ts +13 -3
  150. package/dist/lib/memory-compile.js +31 -9
  151. package/dist/lib/memory.d.ts +14 -7
  152. package/dist/lib/memory.js +67 -38
  153. package/dist/lib/migrate.d.ts +8 -0
  154. package/dist/lib/migrate.js +85 -0
  155. package/dist/lib/models.d.ts +25 -11
  156. package/dist/lib/models.js +405 -16
  157. package/dist/lib/onepassword.d.ts +63 -0
  158. package/dist/lib/onepassword.js +186 -0
  159. package/dist/lib/paths.d.ts +8 -0
  160. package/dist/lib/paths.js +20 -0
  161. package/dist/lib/permissions.d.ts +24 -2
  162. package/dist/lib/permissions.js +117 -48
  163. package/dist/lib/picker.d.ts +10 -1
  164. package/dist/lib/picker.js +15 -1
  165. package/dist/lib/plugins.d.ts +7 -1
  166. package/dist/lib/plugins.js +10 -1
  167. package/dist/lib/profiles-presets.d.ts +24 -0
  168. package/dist/lib/profiles-presets.js +103 -0
  169. package/dist/lib/profiles.d.ts +69 -0
  170. package/dist/lib/profiles.js +144 -0
  171. package/dist/lib/pty-client.d.ts +1 -1
  172. package/dist/lib/pty-client.js +0 -1
  173. package/dist/lib/pty-server.d.ts +16 -2
  174. package/dist/lib/pty-server.js +92 -3
  175. package/dist/lib/registry.d.ts +23 -3
  176. package/dist/lib/registry.js +153 -8
  177. package/dist/lib/resources.d.ts +28 -1
  178. package/dist/lib/resources.js +79 -1
  179. package/dist/lib/rotate.d.ts +89 -0
  180. package/dist/lib/rotate.js +327 -0
  181. package/dist/lib/routines.d.ts +29 -1
  182. package/dist/lib/routines.js +32 -5
  183. package/dist/lib/runner.d.ts +14 -1
  184. package/dist/lib/runner.js +22 -3
  185. package/dist/lib/sandbox.d.ts +16 -1
  186. package/dist/lib/sandbox.js +39 -16
  187. package/dist/lib/scheduler.d.ts +8 -1
  188. package/dist/lib/scheduler.js +8 -1
  189. package/dist/lib/secrets/AgentsKeychain.app/Contents/CodeResources +0 -0
  190. package/dist/lib/secrets/AgentsKeychain.app/Contents/Info.plist +22 -0
  191. package/dist/lib/secrets/AgentsKeychain.app/Contents/MacOS/AgentsKeychain +0 -0
  192. package/dist/lib/secrets/AgentsKeychain.app/Contents/_CodeSignature/CodeResources +123 -0
  193. package/dist/lib/secrets/AgentsKeychain.app/Contents/embedded.provisionprofile +0 -0
  194. package/dist/lib/secrets/bundles.d.ts +39 -0
  195. package/dist/lib/secrets/bundles.js +189 -0
  196. package/dist/lib/secrets/index.d.ts +55 -0
  197. package/dist/lib/secrets/index.js +211 -0
  198. package/dist/lib/secrets/profiles.d.ts +10 -0
  199. package/dist/lib/secrets/profiles.js +13 -0
  200. package/dist/lib/session/active.d.ts +43 -0
  201. package/dist/lib/session/active.js +392 -0
  202. package/dist/lib/session/artifacts.d.ts +16 -0
  203. package/dist/lib/session/artifacts.js +95 -0
  204. package/dist/lib/session/cloud.d.ts +30 -0
  205. package/dist/lib/session/cloud.js +121 -0
  206. package/dist/lib/session/db.d.ts +23 -2
  207. package/dist/lib/session/db.js +76 -12
  208. package/dist/lib/session/discover.d.ts +19 -4
  209. package/dist/lib/session/discover.js +344 -48
  210. package/dist/lib/session/parse.d.ts +28 -1
  211. package/dist/lib/session/parse.js +267 -9
  212. package/dist/lib/session/prompt.d.ts +9 -1
  213. package/dist/lib/session/prompt.js +17 -3
  214. package/dist/lib/session/render.d.ts +13 -1
  215. package/dist/lib/session/render.js +20 -1
  216. package/dist/lib/session/team-filter.d.ts +9 -1
  217. package/dist/lib/session/team-filter.js +11 -2
  218. package/dist/lib/session/types.d.ts +24 -2
  219. package/dist/lib/session/types.js +10 -2
  220. package/dist/lib/shims.d.ts +93 -5
  221. package/dist/lib/shims.js +380 -67
  222. package/dist/lib/skills.d.ts +27 -2
  223. package/dist/lib/skills.js +127 -65
  224. package/dist/lib/sqlite.d.ts +43 -0
  225. package/dist/lib/sqlite.js +94 -0
  226. package/dist/lib/state.d.ts +114 -22
  227. package/dist/lib/state.js +323 -138
  228. package/dist/lib/subagents.d.ts +9 -1
  229. package/dist/lib/subagents.js +70 -63
  230. package/dist/lib/sync-manifest.d.ts +81 -0
  231. package/dist/lib/sync-manifest.js +450 -0
  232. package/dist/lib/teams/agents.d.ts +103 -5
  233. package/dist/lib/teams/agents.js +414 -91
  234. package/dist/lib/teams/api.d.ts +26 -3
  235. package/dist/lib/teams/api.js +63 -3
  236. package/dist/lib/teams/debug.d.ts +6 -1
  237. package/dist/lib/teams/debug.js +6 -1
  238. package/dist/lib/teams/file_ops.d.ts +7 -1
  239. package/dist/lib/teams/file_ops.js +7 -1
  240. package/dist/lib/teams/index.d.ts +15 -0
  241. package/dist/lib/teams/index.js +14 -0
  242. package/dist/lib/teams/parsers.d.ts +4 -1
  243. package/dist/lib/teams/parsers.js +11 -1
  244. package/dist/lib/teams/persistence.d.ts +15 -1
  245. package/dist/lib/teams/persistence.js +102 -20
  246. package/dist/lib/teams/registry.d.ts +12 -1
  247. package/dist/lib/teams/registry.js +116 -33
  248. package/dist/lib/teams/summarizer.d.ts +15 -1
  249. package/dist/lib/teams/summarizer.js +14 -1
  250. package/dist/lib/teams/supervisor.d.ts +48 -0
  251. package/dist/lib/teams/supervisor.js +73 -0
  252. package/dist/lib/template.d.ts +8 -6
  253. package/dist/lib/template.js +8 -6
  254. package/dist/lib/types.d.ts +147 -8
  255. package/dist/lib/types.js +26 -3
  256. package/dist/lib/usage.d.ts +48 -1
  257. package/dist/lib/usage.js +97 -16
  258. package/dist/lib/version-duplicates.d.ts +21 -0
  259. package/dist/lib/version-duplicates.js +90 -0
  260. package/dist/lib/versions.d.ts +39 -4
  261. package/dist/lib/versions.js +401 -111
  262. package/package.json +33 -18
  263. package/scripts/postinstall.js +126 -30
  264. package/dist/commands/__tests__/sessions.test.d.ts +0 -2
  265. package/dist/commands/__tests__/sessions.test.d.ts.map +0 -1
  266. package/dist/commands/__tests__/sessions.test.js +0 -636
  267. package/dist/commands/__tests__/sessions.test.js.map +0 -1
  268. package/dist/commands/commands.d.ts.map +0 -1
  269. package/dist/commands/commands.js.map +0 -1
  270. package/dist/commands/daemon.d.ts.map +0 -1
  271. package/dist/commands/daemon.js.map +0 -1
  272. package/dist/commands/drive.d.ts.map +0 -1
  273. package/dist/commands/drive.js.map +0 -1
  274. package/dist/commands/exec.d.ts.map +0 -1
  275. package/dist/commands/exec.js.map +0 -1
  276. package/dist/commands/fork.d.ts.map +0 -1
  277. package/dist/commands/fork.js.map +0 -1
  278. package/dist/commands/hooks.d.ts.map +0 -1
  279. package/dist/commands/hooks.js.map +0 -1
  280. package/dist/commands/init.d.ts.map +0 -1
  281. package/dist/commands/init.js.map +0 -1
  282. package/dist/commands/mcp.d.ts.map +0 -1
  283. package/dist/commands/mcp.js.map +0 -1
  284. package/dist/commands/models.d.ts.map +0 -1
  285. package/dist/commands/models.js.map +0 -1
  286. package/dist/commands/packages.d.ts.map +0 -1
  287. package/dist/commands/packages.js.map +0 -1
  288. package/dist/commands/permissions.d.ts.map +0 -1
  289. package/dist/commands/permissions.js.map +0 -1
  290. package/dist/commands/plugins.d.ts.map +0 -1
  291. package/dist/commands/plugins.js.map +0 -1
  292. package/dist/commands/pty.d.ts.map +0 -1
  293. package/dist/commands/pty.js.map +0 -1
  294. package/dist/commands/pull.d.ts.map +0 -1
  295. package/dist/commands/pull.js.map +0 -1
  296. package/dist/commands/push.d.ts +0 -3
  297. package/dist/commands/push.d.ts.map +0 -1
  298. package/dist/commands/push.js +0 -180
  299. package/dist/commands/push.js.map +0 -1
  300. package/dist/commands/refresh-memory.d.ts.map +0 -1
  301. package/dist/commands/refresh-memory.js.map +0 -1
  302. package/dist/commands/resource-view.d.ts.map +0 -1
  303. package/dist/commands/resource-view.js.map +0 -1
  304. package/dist/commands/routines.d.ts.map +0 -1
  305. package/dist/commands/routines.js.map +0 -1
  306. package/dist/commands/rules.d.ts.map +0 -1
  307. package/dist/commands/rules.js.map +0 -1
  308. package/dist/commands/sessions-picker.d.ts.map +0 -1
  309. package/dist/commands/sessions-picker.js.map +0 -1
  310. package/dist/commands/sessions.d.ts.map +0 -1
  311. package/dist/commands/sessions.js.map +0 -1
  312. package/dist/commands/skills.d.ts.map +0 -1
  313. package/dist/commands/skills.js.map +0 -1
  314. package/dist/commands/status.d.ts.map +0 -1
  315. package/dist/commands/status.js.map +0 -1
  316. package/dist/commands/subagents.d.ts.map +0 -1
  317. package/dist/commands/subagents.js.map +0 -1
  318. package/dist/commands/sync.d.ts.map +0 -1
  319. package/dist/commands/sync.js.map +0 -1
  320. package/dist/commands/teams-picker.d.ts.map +0 -1
  321. package/dist/commands/teams-picker.js.map +0 -1
  322. package/dist/commands/teams.d.ts.map +0 -1
  323. package/dist/commands/teams.js.map +0 -1
  324. package/dist/commands/utils.d.ts.map +0 -1
  325. package/dist/commands/utils.js.map +0 -1
  326. package/dist/commands/versions.d.ts.map +0 -1
  327. package/dist/commands/versions.js.map +0 -1
  328. package/dist/commands/view.d.ts.map +0 -1
  329. package/dist/commands/view.js.map +0 -1
  330. package/dist/index.d.ts.map +0 -1
  331. package/dist/index.js.map +0 -1
  332. package/dist/lib/__tests__/bugfixes.test.d.ts +0 -2
  333. package/dist/lib/__tests__/bugfixes.test.d.ts.map +0 -1
  334. package/dist/lib/__tests__/bugfixes.test.js +0 -192
  335. package/dist/lib/__tests__/bugfixes.test.js.map +0 -1
  336. package/dist/lib/__tests__/exec.test.d.ts +0 -2
  337. package/dist/lib/__tests__/exec.test.d.ts.map +0 -1
  338. package/dist/lib/__tests__/exec.test.js +0 -446
  339. package/dist/lib/__tests__/exec.test.js.map +0 -1
  340. package/dist/lib/__tests__/git-sync.test.d.ts +0 -2
  341. package/dist/lib/__tests__/git-sync.test.d.ts.map +0 -1
  342. package/dist/lib/__tests__/git-sync.test.js +0 -138
  343. package/dist/lib/__tests__/git-sync.test.js.map +0 -1
  344. package/dist/lib/__tests__/hooks.test.d.ts +0 -2
  345. package/dist/lib/__tests__/hooks.test.d.ts.map +0 -1
  346. package/dist/lib/__tests__/hooks.test.js +0 -203
  347. package/dist/lib/__tests__/hooks.test.js.map +0 -1
  348. package/dist/lib/__tests__/memory-compile.test.d.ts +0 -2
  349. package/dist/lib/__tests__/memory-compile.test.d.ts.map +0 -1
  350. package/dist/lib/__tests__/memory-compile.test.js +0 -95
  351. package/dist/lib/__tests__/memory-compile.test.js.map +0 -1
  352. package/dist/lib/__tests__/models.test.d.ts +0 -2
  353. package/dist/lib/__tests__/models.test.d.ts.map +0 -1
  354. package/dist/lib/__tests__/models.test.js +0 -184
  355. package/dist/lib/__tests__/models.test.js.map +0 -1
  356. package/dist/lib/__tests__/usage.test.d.ts +0 -2
  357. package/dist/lib/__tests__/usage.test.d.ts.map +0 -1
  358. package/dist/lib/__tests__/usage.test.js +0 -218
  359. package/dist/lib/__tests__/usage.test.js.map +0 -1
  360. package/dist/lib/agents.d.ts.map +0 -1
  361. package/dist/lib/agents.js.map +0 -1
  362. package/dist/lib/artifact-actions.d.ts.map +0 -1
  363. package/dist/lib/artifact-actions.js.map +0 -1
  364. package/dist/lib/commands.d.ts.map +0 -1
  365. package/dist/lib/commands.js.map +0 -1
  366. package/dist/lib/convert.d.ts.map +0 -1
  367. package/dist/lib/convert.js.map +0 -1
  368. package/dist/lib/daemon.d.ts.map +0 -1
  369. package/dist/lib/daemon.js.map +0 -1
  370. package/dist/lib/drive-sync.d.ts.map +0 -1
  371. package/dist/lib/drive-sync.js.map +0 -1
  372. package/dist/lib/exec.d.ts.map +0 -1
  373. package/dist/lib/exec.js.map +0 -1
  374. package/dist/lib/factory.d.ts +0 -57
  375. package/dist/lib/factory.d.ts.map +0 -1
  376. package/dist/lib/factory.js +0 -110
  377. package/dist/lib/factory.js.map +0 -1
  378. package/dist/lib/git.d.ts.map +0 -1
  379. package/dist/lib/git.js.map +0 -1
  380. package/dist/lib/help.d.ts.map +0 -1
  381. package/dist/lib/help.js.map +0 -1
  382. package/dist/lib/hooks.d.ts.map +0 -1
  383. package/dist/lib/hooks.js.map +0 -1
  384. package/dist/lib/manifest.d.ts.map +0 -1
  385. package/dist/lib/manifest.js.map +0 -1
  386. package/dist/lib/markdown.d.ts.map +0 -1
  387. package/dist/lib/markdown.js.map +0 -1
  388. package/dist/lib/mcp.d.ts.map +0 -1
  389. package/dist/lib/mcp.js.map +0 -1
  390. package/dist/lib/memory-compile.d.ts.map +0 -1
  391. package/dist/lib/memory-compile.js.map +0 -1
  392. package/dist/lib/memory.d.ts.map +0 -1
  393. package/dist/lib/memory.js.map +0 -1
  394. package/dist/lib/models.d.ts.map +0 -1
  395. package/dist/lib/models.js.map +0 -1
  396. package/dist/lib/permissions.d.ts.map +0 -1
  397. package/dist/lib/permissions.js.map +0 -1
  398. package/dist/lib/picker.d.ts.map +0 -1
  399. package/dist/lib/picker.js.map +0 -1
  400. package/dist/lib/plugins.d.ts.map +0 -1
  401. package/dist/lib/plugins.js.map +0 -1
  402. package/dist/lib/pty-client.d.ts.map +0 -1
  403. package/dist/lib/pty-client.js.map +0 -1
  404. package/dist/lib/pty-server.d.ts.map +0 -1
  405. package/dist/lib/pty-server.js.map +0 -1
  406. package/dist/lib/registry.d.ts.map +0 -1
  407. package/dist/lib/registry.js.map +0 -1
  408. package/dist/lib/resources.d.ts.map +0 -1
  409. package/dist/lib/resources.js.map +0 -1
  410. package/dist/lib/routines.d.ts.map +0 -1
  411. package/dist/lib/routines.js.map +0 -1
  412. package/dist/lib/runner.d.ts.map +0 -1
  413. package/dist/lib/runner.js.map +0 -1
  414. package/dist/lib/sandbox.d.ts.map +0 -1
  415. package/dist/lib/sandbox.js.map +0 -1
  416. package/dist/lib/scheduler.d.ts.map +0 -1
  417. package/dist/lib/scheduler.js.map +0 -1
  418. package/dist/lib/session/__tests__/db.test.d.ts +0 -2
  419. package/dist/lib/session/__tests__/db.test.d.ts.map +0 -1
  420. package/dist/lib/session/__tests__/db.test.js +0 -54
  421. package/dist/lib/session/__tests__/db.test.js.map +0 -1
  422. package/dist/lib/session/__tests__/discover.test.d.ts +0 -2
  423. package/dist/lib/session/__tests__/discover.test.d.ts.map +0 -1
  424. package/dist/lib/session/__tests__/discover.test.js +0 -63
  425. package/dist/lib/session/__tests__/discover.test.js.map +0 -1
  426. package/dist/lib/session/__tests__/prompt.test.d.ts +0 -2
  427. package/dist/lib/session/__tests__/prompt.test.d.ts.map +0 -1
  428. package/dist/lib/session/__tests__/prompt.test.js +0 -44
  429. package/dist/lib/session/__tests__/prompt.test.js.map +0 -1
  430. package/dist/lib/session/__tests__/render.test.d.ts +0 -2
  431. package/dist/lib/session/__tests__/render.test.d.ts.map +0 -1
  432. package/dist/lib/session/__tests__/render.test.js +0 -602
  433. package/dist/lib/session/__tests__/render.test.js.map +0 -1
  434. package/dist/lib/session/db.d.ts.map +0 -1
  435. package/dist/lib/session/db.js.map +0 -1
  436. package/dist/lib/session/discover.d.ts.map +0 -1
  437. package/dist/lib/session/discover.js.map +0 -1
  438. package/dist/lib/session/parse.d.ts.map +0 -1
  439. package/dist/lib/session/parse.js.map +0 -1
  440. package/dist/lib/session/prompt.d.ts.map +0 -1
  441. package/dist/lib/session/prompt.js.map +0 -1
  442. package/dist/lib/session/prompt.test.d.ts +0 -2
  443. package/dist/lib/session/prompt.test.d.ts.map +0 -1
  444. package/dist/lib/session/prompt.test.js +0 -57
  445. package/dist/lib/session/prompt.test.js.map +0 -1
  446. package/dist/lib/session/render.d.ts.map +0 -1
  447. package/dist/lib/session/render.js.map +0 -1
  448. package/dist/lib/session/team-filter.d.ts.map +0 -1
  449. package/dist/lib/session/team-filter.js.map +0 -1
  450. package/dist/lib/session/team-filter.test.d.ts +0 -2
  451. package/dist/lib/session/team-filter.test.d.ts.map +0 -1
  452. package/dist/lib/session/team-filter.test.js +0 -157
  453. package/dist/lib/session/team-filter.test.js.map +0 -1
  454. package/dist/lib/session/types.d.ts.map +0 -1
  455. package/dist/lib/session/types.js.map +0 -1
  456. package/dist/lib/shims.d.ts.map +0 -1
  457. package/dist/lib/shims.js.map +0 -1
  458. package/dist/lib/skills.d.ts.map +0 -1
  459. package/dist/lib/skills.js.map +0 -1
  460. package/dist/lib/state.d.ts.map +0 -1
  461. package/dist/lib/state.js.map +0 -1
  462. package/dist/lib/subagents.d.ts.map +0 -1
  463. package/dist/lib/subagents.js.map +0 -1
  464. package/dist/lib/teams/agents.d.ts.map +0 -1
  465. package/dist/lib/teams/agents.js.map +0 -1
  466. package/dist/lib/teams/api.d.ts.map +0 -1
  467. package/dist/lib/teams/api.js.map +0 -1
  468. package/dist/lib/teams/cloud.d.ts +0 -11
  469. package/dist/lib/teams/cloud.d.ts.map +0 -1
  470. package/dist/lib/teams/cloud.js +0 -169
  471. package/dist/lib/teams/cloud.js.map +0 -1
  472. package/dist/lib/teams/debug.d.ts.map +0 -1
  473. package/dist/lib/teams/debug.js.map +0 -1
  474. package/dist/lib/teams/file_ops.d.ts.map +0 -1
  475. package/dist/lib/teams/file_ops.js.map +0 -1
  476. package/dist/lib/teams/parsers.d.ts.map +0 -1
  477. package/dist/lib/teams/parsers.js.map +0 -1
  478. package/dist/lib/teams/persistence.d.ts.map +0 -1
  479. package/dist/lib/teams/persistence.js.map +0 -1
  480. package/dist/lib/teams/ralph.d.ts +0 -8
  481. package/dist/lib/teams/ralph.d.ts.map +0 -1
  482. package/dist/lib/teams/ralph.js +0 -59
  483. package/dist/lib/teams/ralph.js.map +0 -1
  484. package/dist/lib/teams/registry.d.ts.map +0 -1
  485. package/dist/lib/teams/registry.js.map +0 -1
  486. package/dist/lib/teams/summarizer.d.ts.map +0 -1
  487. package/dist/lib/teams/summarizer.js.map +0 -1
  488. package/dist/lib/template.d.ts.map +0 -1
  489. package/dist/lib/template.js.map +0 -1
  490. package/dist/lib/types.d.ts.map +0 -1
  491. package/dist/lib/types.js.map +0 -1
  492. package/dist/lib/usage.d.ts.map +0 -1
  493. package/dist/lib/usage.js.map +0 -1
  494. package/dist/lib/versions.d.ts.map +0 -1
  495. package/dist/lib/versions.js.map +0 -1
  496. package/scripts/rebuild-sqlite.sh +0 -46
@@ -0,0 +1,55 @@
1
+ /**
2
+ * macOS Keychain integration for secure credential storage.
3
+ *
4
+ * Calls a compiled Swift helper (keychain-helper.swift) to store and retrieve
5
+ * API keys and tokens via the Security framework, with kSecAttrSynchronizable
6
+ * set so iCloud Keychain syncs them across the user's Macs.
7
+ */
8
+ /** Supported secret resolution backends. */
9
+ export type SecretProvider = 'keychain' | 'env' | 'file' | 'exec';
10
+ /** A typed reference to a secret, consisting of a provider and a provider-specific value. */
11
+ export interface SecretRef {
12
+ provider: SecretProvider;
13
+ value: string;
14
+ }
15
+ /**
16
+ * A bundle YAML value: either a string (literal or provider-prefixed ref) or
17
+ * an object `{value: string}` used to escape a literal that would otherwise
18
+ * be parsed as a ref (e.g. a URL that happens to start with 'env:').
19
+ */
20
+ export type BundleValue = string | {
21
+ value: string;
22
+ };
23
+ /** Parse a bundle YAML value into either a literal string or a typed secret ref. */
24
+ export declare function parseBundleValue(raw: BundleValue): {
25
+ literal: string;
26
+ } | {
27
+ ref: SecretRef;
28
+ };
29
+ /** Serialize a secret ref back to its `provider:value` string form. */
30
+ export declare function serializeRef(ref: SecretRef): string;
31
+ /** Build the keychain item name for a profile provider token. */
32
+ export declare function profileKeychainItem(provider: string): string;
33
+ /** Build the keychain item name for a secrets-bundle key. */
34
+ export declare function secretsKeychainItem(bundle: string, key: string): string;
35
+ /** Check if a keychain item exists (macOS only). */
36
+ export declare function hasKeychainToken(item: string, sync?: boolean): boolean;
37
+ /** Retrieve a secret value from the macOS Keychain. Throws if not found. */
38
+ export declare function getKeychainToken(item: string, sync?: boolean): string;
39
+ /** Store or update a secret value in the macOS Keychain. iCloud-synced when sync=true. */
40
+ export declare function setKeychainToken(item: string, value: string, sync?: boolean): void;
41
+ /** Delete a keychain item. Returns true if it existed. */
42
+ export declare function deleteKeychainToken(item: string, sync?: boolean): boolean;
43
+ /** Options controlling how secret refs are resolved. */
44
+ export interface ResolveOptions {
45
+ /** Translate a short keychain ID to a fully namespaced item name. */
46
+ keychainItemFor?: (shortId: string) => string;
47
+ /** Allow exec: refs. When false (default), exec refs throw. */
48
+ allowExec?: boolean;
49
+ /** Restrict env: refs to this allowlist. When undefined, any env var may be read. */
50
+ envAllowlist?: string[];
51
+ /** Read keychain refs from the iCloud-synced keychain backend. */
52
+ iCloudSync?: boolean;
53
+ }
54
+ /** Resolve a secret ref to its plaintext value using the appropriate provider. */
55
+ export declare function resolveRef(ref: SecretRef, opts?: ResolveOptions): string;
@@ -0,0 +1,211 @@
1
+ /**
2
+ * macOS Keychain integration for secure credential storage.
3
+ *
4
+ * Calls a compiled Swift helper (keychain-helper.swift) to store and retrieve
5
+ * API keys and tokens via the Security framework, with kSecAttrSynchronizable
6
+ * set so iCloud Keychain syncs them across the user's Macs.
7
+ */
8
+ import { fileURLToPath } from 'url';
9
+ import { execFileSync, spawnSync } from 'child_process';
10
+ import * as fs from 'fs';
11
+ import * as os from 'os';
12
+ import * as path from 'path';
13
+ const SERVICE_PREFIX = 'agents-cli';
14
+ const REF_PATTERN = /^(keychain|env|file|exec):(.+)$/s;
15
+ /** Parse a bundle YAML value into either a literal string or a typed secret ref. */
16
+ export function parseBundleValue(raw) {
17
+ if (typeof raw === 'object' && raw !== null && typeof raw.value === 'string') {
18
+ return { literal: raw.value };
19
+ }
20
+ if (typeof raw !== 'string') {
21
+ throw new Error(`Invalid bundle value (expected string or {value: string}): ${JSON.stringify(raw)}`);
22
+ }
23
+ const match = REF_PATTERN.exec(raw);
24
+ if (!match)
25
+ return { literal: raw };
26
+ return { ref: { provider: match[1], value: match[2] } };
27
+ }
28
+ /** Serialize a secret ref back to its `provider:value` string form. */
29
+ export function serializeRef(ref) {
30
+ return `${ref.provider}:${ref.value}`;
31
+ }
32
+ function assertMacOS() {
33
+ if (process.platform !== 'darwin') {
34
+ throw new Error('Keychain-based secrets require macOS. On Linux, use environment variables or .env files instead. Native Linux credential store support is planned.');
35
+ }
36
+ }
37
+ /** Build the keychain item name for a profile provider token. */
38
+ export function profileKeychainItem(provider) {
39
+ return `${SERVICE_PREFIX}.${provider}.token`;
40
+ }
41
+ /** Build the keychain item name for a secrets-bundle key. */
42
+ export function secretsKeychainItem(bundle, key) {
43
+ return `${SERVICE_PREFIX}.secrets.${bundle}.${key}`;
44
+ }
45
+ // Resolve the bundled, signed-and-notarized AgentsKeychain.app shipped
46
+ // alongside the compiled JS. The .app embeds a provisioning profile that
47
+ // grants the application-identifier + keychain-access-groups entitlements
48
+ // macOS requires for kSecAttrSynchronizable writes. Bare CLI binaries
49
+ // (ad-hoc or Developer ID) cannot do this; only an .app with an embedded
50
+ // profile can. So compile-on-first-use is not possible — the binary must
51
+ // be prebuilt by `scripts/build-keychain-helper.sh` and shipped.
52
+ function ensureKeychainHelper() {
53
+ const here = path.dirname(fileURLToPath(import.meta.url));
54
+ const binPath = path.join(here, 'AgentsKeychain.app', 'Contents', 'MacOS', 'AgentsKeychain');
55
+ if (!fs.existsSync(binPath)) {
56
+ throw new Error(`iCloud Keychain helper missing at ${binPath}. ` +
57
+ 'This npm package was built without the signed helper bundle. ' +
58
+ 'Reinstall agents-cli, or create the bundle without --icloud-sync to use device-local storage.');
59
+ }
60
+ return binPath;
61
+ }
62
+ // iCloud Keychain sync is opt-in per bundle. When sync=true we route through
63
+ // the Swift helper (kSecAttrSynchronizable=true). When sync is false/undefined
64
+ // we use /usr/bin/security, which is always present on macOS — so a user who
65
+ // never opts in to iCloud sync never needs Xcode Command Line Tools.
66
+ /** Check if a keychain item exists (macOS only). */
67
+ export function hasKeychainToken(item, sync = false) {
68
+ assertMacOS();
69
+ if (sync) {
70
+ const bin = ensureKeychainHelper();
71
+ return spawnSync(bin, ['has', item, os.userInfo().username], {
72
+ stdio: ['ignore', 'pipe', 'pipe'],
73
+ }).status === 0;
74
+ }
75
+ return spawnSync('security', ['find-generic-password', '-a', os.userInfo().username, '-s', item, '-w'], {
76
+ stdio: ['ignore', 'pipe', 'pipe'],
77
+ }).status === 0;
78
+ }
79
+ /** Retrieve a secret value from the macOS Keychain. Throws if not found. */
80
+ export function getKeychainToken(item, sync = false) {
81
+ assertMacOS();
82
+ if (sync) {
83
+ const bin = ensureKeychainHelper();
84
+ const result = spawnSync(bin, ['get', item, os.userInfo().username], {
85
+ stdio: ['ignore', 'pipe', 'pipe'],
86
+ });
87
+ if (result.status === 1)
88
+ throw new Error(`Keychain item '${item}' not found.`);
89
+ if (result.status !== 0) {
90
+ const msg = result.stderr?.toString().trim();
91
+ throw new Error(msg || `Failed to read keychain item '${item}'.`);
92
+ }
93
+ const token = result.stdout?.toString().trim();
94
+ if (!token)
95
+ throw new Error(`Keychain item '${item}' exists but is empty.`);
96
+ return token;
97
+ }
98
+ const result = spawnSync('security', ['find-generic-password', '-a', os.userInfo().username, '-s', item, '-w'], {
99
+ stdio: ['ignore', 'pipe', 'pipe'],
100
+ });
101
+ if (result.status === 44)
102
+ throw new Error(`Keychain item '${item}' not found.`);
103
+ if (result.status !== 0) {
104
+ const stderr = result.stderr?.toString() || '';
105
+ if (/could not be found/i.test(stderr))
106
+ throw new Error(`Keychain item '${item}' not found.`);
107
+ throw new Error(`Failed to read keychain item '${item}': ${stderr.trim() || `exit ${result.status}`}`);
108
+ }
109
+ const token = result.stdout?.toString().trim();
110
+ if (!token)
111
+ throw new Error(`Keychain item '${item}' exists but is empty.`);
112
+ return token;
113
+ }
114
+ /** Store or update a secret value in the macOS Keychain. iCloud-synced when sync=true. */
115
+ export function setKeychainToken(item, value, sync = false) {
116
+ assertMacOS();
117
+ if (!value || !value.trim())
118
+ throw new Error('Secret value is empty.');
119
+ if (/[\r\n]/.test(value))
120
+ throw new Error('Secret value contains newlines, which are not supported.');
121
+ if (sync) {
122
+ const bin = ensureKeychainHelper();
123
+ const result = spawnSync(bin, ['set', item, os.userInfo().username], {
124
+ input: value,
125
+ stdio: ['pipe', 'pipe', 'pipe'],
126
+ });
127
+ if (result.status !== 0) {
128
+ const msg = result.stderr?.toString().trim();
129
+ throw new Error(msg || `Failed to write keychain item '${item}'.`);
130
+ }
131
+ return;
132
+ }
133
+ // The `security -i` interactive form keeps the value out of argv (and `ps`).
134
+ const user = os.userInfo().username;
135
+ const cmd = `add-generic-password -a ${quoteForSecurityCli(user)} -s ${quoteForSecurityCli(item)} -w ${quoteForSecurityCli(value)} -U\n`;
136
+ const result = spawnSync('security', ['-i'], {
137
+ input: cmd,
138
+ stdio: ['pipe', 'pipe', 'pipe'],
139
+ });
140
+ if (result.status !== 0) {
141
+ throw new Error(`Failed to write keychain item '${item}' (exit ${result.status}).`);
142
+ }
143
+ }
144
+ /** Delete a keychain item. Returns true if it existed. */
145
+ export function deleteKeychainToken(item, sync = false) {
146
+ assertMacOS();
147
+ if (sync) {
148
+ const bin = ensureKeychainHelper();
149
+ return spawnSync(bin, ['delete', item, os.userInfo().username], {
150
+ stdio: ['ignore', 'pipe', 'pipe'],
151
+ }).status === 0;
152
+ }
153
+ return spawnSync('security', ['delete-generic-password', '-a', os.userInfo().username, '-s', item], {
154
+ stdio: ['ignore', 'pipe', 'pipe'],
155
+ }).status === 0;
156
+ }
157
+ // Quote a value for `security -i`'s shell-like tokenizer so it stays out of argv.
158
+ function quoteForSecurityCli(s) {
159
+ return '"' + s.replace(/\\/g, '\\\\').replace(/"/g, '\\"') + '"';
160
+ }
161
+ function expandHome(p) {
162
+ if (p.startsWith('~/') || p === '~') {
163
+ return path.join(os.homedir(), p.slice(1));
164
+ }
165
+ return p;
166
+ }
167
+ /** Resolve a secret ref to its plaintext value using the appropriate provider. */
168
+ export function resolveRef(ref, opts = {}) {
169
+ switch (ref.provider) {
170
+ case 'keychain': {
171
+ const item = opts.keychainItemFor ? opts.keychainItemFor(ref.value) : ref.value;
172
+ return getKeychainToken(item, opts.iCloudSync);
173
+ }
174
+ case 'env': {
175
+ const name = ref.value;
176
+ if (opts.envAllowlist && !opts.envAllowlist.includes(name)) {
177
+ throw new Error(`env: ref '${name}' not in allowlist.`);
178
+ }
179
+ const val = process.env[name];
180
+ if (val === undefined) {
181
+ throw new Error(`env: ref '${name}' not set in parent environment.`);
182
+ }
183
+ return val;
184
+ }
185
+ case 'file': {
186
+ const target = expandHome(ref.value);
187
+ if (!fs.existsSync(target)) {
188
+ throw new Error(`file: ref '${ref.value}' does not exist.`);
189
+ }
190
+ return fs.readFileSync(target, 'utf-8').trim();
191
+ }
192
+ case 'exec': {
193
+ if (!opts.allowExec) {
194
+ throw new Error(`exec: ref '${ref.value}' blocked. Set 'allow_exec: true' in the bundle to enable.`);
195
+ }
196
+ // shell: false — the bundle author controls the command; no injection
197
+ // from secret identifiers. Parse a simple space-separated command.
198
+ const parts = ref.value.match(/(?:[^\s"]+|"[^"]*")+/g)?.map((p) => p.replace(/^"|"$/g, '')) || [];
199
+ if (parts.length === 0) {
200
+ throw new Error(`exec: ref '${ref.value}' is empty.`);
201
+ }
202
+ const [cmd, ...args] = parts;
203
+ try {
204
+ return execFileSync(cmd, args, { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'pipe'] }).trim();
205
+ }
206
+ catch (err) {
207
+ throw new Error(`exec: ref '${ref.value}' failed: ${err.message}`);
208
+ }
209
+ }
210
+ }
211
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Thin compatibility shim over the shared secrets library.
3
+ *
4
+ * Profile tokens are stored at `agents-cli.<provider>.token`; secrets bundles
5
+ * live at `agents-cli.secrets.<bundle>.<KEY>`. Both go through the same
6
+ * keychain primitives in ./index.ts.
7
+ */
8
+ export { hasKeychainToken, getKeychainToken, setKeychainToken, deleteKeychainToken, } from './index.js';
9
+ /** Map a provider name to its keychain item identifier. */
10
+ export declare function keychainItemName(provider: string): string;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Thin compatibility shim over the shared secrets library.
3
+ *
4
+ * Profile tokens are stored at `agents-cli.<provider>.token`; secrets bundles
5
+ * live at `agents-cli.secrets.<bundle>.<KEY>`. Both go through the same
6
+ * keychain primitives in ./index.ts.
7
+ */
8
+ export { hasKeychainToken, getKeychainToken, setKeychainToken, deleteKeychainToken, } from './index.js';
9
+ import { profileKeychainItem } from './index.js';
10
+ /** Map a provider name to its keychain item identifier. */
11
+ export function keychainItemName(provider) {
12
+ return profileKeychainItem(provider);
13
+ }
@@ -0,0 +1,43 @@
1
+ export type ActiveContext = 'terminal' | 'teams' | 'cloud' | 'headless';
2
+ export type ActiveStatus = 'running' | 'idle' | 'queued' | 'input_required';
3
+ export interface ActiveSession {
4
+ context: ActiveContext;
5
+ kind: string;
6
+ /** Specific host app — 'code', 'cursor', 'codium', 'iterm', 'terminal', 'warp', 'tmux', etc. */
7
+ host?: string;
8
+ pid?: number;
9
+ sessionId?: string;
10
+ cwd?: string;
11
+ label?: string;
12
+ sessionFile?: string;
13
+ startedAtMs?: number;
14
+ status: ActiveStatus;
15
+ teamName?: string;
16
+ agentId?: string;
17
+ cloudProvider?: string;
18
+ cloudTaskId?: string;
19
+ cloudStatus?: string;
20
+ }
21
+ export interface ActiveQueryOptions {
22
+ /** Skip the `ps` scan for ad-hoc headless agents. */
23
+ skipHeadless?: boolean;
24
+ }
25
+ /** Live teams teammates. Reuses AgentManager which already polls PIDs via `kill -0`. */
26
+ export declare function listTeamsActive(): Promise<ActiveSession[]>;
27
+ /** Live editor-terminal agents across every IDE window. */
28
+ export declare function listTerminalsActive(): Promise<ActiveSession[]>;
29
+ /** Cloud tasks still in a non-terminal state. `tasks.db` may not exist; that's fine. */
30
+ export declare function listCloudActive(): ActiveSession[];
31
+ /**
32
+ * Agent processes not attributed to a team or the runtime registry.
33
+ * Classified by walking the ppid chain: any recognised UI ancestor (IDE
34
+ * helper, terminal-app, or multiplexer) means `terminal`; nothing of the
35
+ * sort means `headless` (daemon, launchd-spawned, orphan).
36
+ */
37
+ export declare function listUnattributedActive(attributed: Set<number>): Promise<ActiveSession[]>;
38
+ /**
39
+ * Union of all four sources. Teams and terminals spawn actual CLI processes
40
+ * that also show up in `ps`, so headless attribution runs last with the
41
+ * already-attributed PIDs removed.
42
+ */
43
+ export declare function getActiveSessions(opts?: ActiveQueryOptions): Promise<ActiveSession[]>;