@phnx-labs/agents-cli 0.1.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 (486) hide show
  1. package/CHANGELOG.md +316 -0
  2. package/LICENSE +21 -0
  3. package/README.md +537 -0
  4. package/dist/commands/__tests__/sessions.test.d.ts +2 -0
  5. package/dist/commands/__tests__/sessions.test.d.ts.map +1 -0
  6. package/dist/commands/__tests__/sessions.test.js +636 -0
  7. package/dist/commands/__tests__/sessions.test.js.map +1 -0
  8. package/dist/commands/cloud.d.ts +3 -0
  9. package/dist/commands/cloud.d.ts.map +1 -0
  10. package/dist/commands/cloud.js +322 -0
  11. package/dist/commands/cloud.js.map +1 -0
  12. package/dist/commands/commands.d.ts +3 -0
  13. package/dist/commands/commands.d.ts.map +1 -0
  14. package/dist/commands/commands.js +628 -0
  15. package/dist/commands/commands.js.map +1 -0
  16. package/dist/commands/daemon.d.ts +3 -0
  17. package/dist/commands/daemon.d.ts.map +1 -0
  18. package/dist/commands/daemon.js +110 -0
  19. package/dist/commands/daemon.js.map +1 -0
  20. package/dist/commands/drive.d.ts +3 -0
  21. package/dist/commands/drive.d.ts.map +1 -0
  22. package/dist/commands/drive.js +166 -0
  23. package/dist/commands/drive.js.map +1 -0
  24. package/dist/commands/exec.d.ts +3 -0
  25. package/dist/commands/exec.d.ts.map +1 -0
  26. package/dist/commands/exec.js +241 -0
  27. package/dist/commands/exec.js.map +1 -0
  28. package/dist/commands/fork.d.ts +3 -0
  29. package/dist/commands/fork.d.ts.map +1 -0
  30. package/dist/commands/fork.js +139 -0
  31. package/dist/commands/fork.js.map +1 -0
  32. package/dist/commands/hooks.d.ts +3 -0
  33. package/dist/commands/hooks.d.ts.map +1 -0
  34. package/dist/commands/hooks.js +689 -0
  35. package/dist/commands/hooks.js.map +1 -0
  36. package/dist/commands/init.d.ts +6 -0
  37. package/dist/commands/init.d.ts.map +1 -0
  38. package/dist/commands/init.js +127 -0
  39. package/dist/commands/init.js.map +1 -0
  40. package/dist/commands/mcp.d.ts +3 -0
  41. package/dist/commands/mcp.d.ts.map +1 -0
  42. package/dist/commands/mcp.js +581 -0
  43. package/dist/commands/mcp.js.map +1 -0
  44. package/dist/commands/models.d.ts +3 -0
  45. package/dist/commands/models.d.ts.map +1 -0
  46. package/dist/commands/models.js +158 -0
  47. package/dist/commands/models.js.map +1 -0
  48. package/dist/commands/packages.d.ts +3 -0
  49. package/dist/commands/packages.d.ts.map +1 -0
  50. package/dist/commands/packages.js +541 -0
  51. package/dist/commands/packages.js.map +1 -0
  52. package/dist/commands/permissions.d.ts +3 -0
  53. package/dist/commands/permissions.d.ts.map +1 -0
  54. package/dist/commands/permissions.js +723 -0
  55. package/dist/commands/permissions.js.map +1 -0
  56. package/dist/commands/plugins.d.ts +3 -0
  57. package/dist/commands/plugins.d.ts.map +1 -0
  58. package/dist/commands/plugins.js +382 -0
  59. package/dist/commands/plugins.js.map +1 -0
  60. package/dist/commands/profiles.d.ts +3 -0
  61. package/dist/commands/profiles.d.ts.map +1 -0
  62. package/dist/commands/profiles.js +242 -0
  63. package/dist/commands/profiles.js.map +1 -0
  64. package/dist/commands/pty.d.ts +20 -0
  65. package/dist/commands/pty.d.ts.map +1 -0
  66. package/dist/commands/pty.js +389 -0
  67. package/dist/commands/pty.js.map +1 -0
  68. package/dist/commands/pull.d.ts +3 -0
  69. package/dist/commands/pull.d.ts.map +1 -0
  70. package/dist/commands/pull.js +448 -0
  71. package/dist/commands/pull.js.map +1 -0
  72. package/dist/commands/push.d.ts +3 -0
  73. package/dist/commands/push.d.ts.map +1 -0
  74. package/dist/commands/push.js +180 -0
  75. package/dist/commands/push.js.map +1 -0
  76. package/dist/commands/refresh-memory.d.ts +9 -0
  77. package/dist/commands/refresh-memory.d.ts.map +1 -0
  78. package/dist/commands/refresh-memory.js +45 -0
  79. package/dist/commands/refresh-memory.js.map +1 -0
  80. package/dist/commands/resource-view.d.ts +31 -0
  81. package/dist/commands/resource-view.d.ts.map +1 -0
  82. package/dist/commands/resource-view.js +183 -0
  83. package/dist/commands/resource-view.js.map +1 -0
  84. package/dist/commands/routines.d.ts +3 -0
  85. package/dist/commands/routines.d.ts.map +1 -0
  86. package/dist/commands/routines.js +579 -0
  87. package/dist/commands/routines.js.map +1 -0
  88. package/dist/commands/rules.d.ts +3 -0
  89. package/dist/commands/rules.d.ts.map +1 -0
  90. package/dist/commands/rules.js +488 -0
  91. package/dist/commands/rules.js.map +1 -0
  92. package/dist/commands/secrets.d.ts +3 -0
  93. package/dist/commands/secrets.d.ts.map +1 -0
  94. package/dist/commands/secrets.js +339 -0
  95. package/dist/commands/secrets.js.map +1 -0
  96. package/dist/commands/sessions-picker.d.ts +16 -0
  97. package/dist/commands/sessions-picker.d.ts.map +1 -0
  98. package/dist/commands/sessions-picker.js +256 -0
  99. package/dist/commands/sessions-picker.js.map +1 -0
  100. package/dist/commands/sessions.d.ts +16 -0
  101. package/dist/commands/sessions.d.ts.map +1 -0
  102. package/dist/commands/sessions.js +1077 -0
  103. package/dist/commands/sessions.js.map +1 -0
  104. package/dist/commands/skills.d.ts +3 -0
  105. package/dist/commands/skills.d.ts.map +1 -0
  106. package/dist/commands/skills.js +716 -0
  107. package/dist/commands/skills.js.map +1 -0
  108. package/dist/commands/status.d.ts +3 -0
  109. package/dist/commands/status.d.ts.map +1 -0
  110. package/dist/commands/status.js +19 -0
  111. package/dist/commands/status.js.map +1 -0
  112. package/dist/commands/subagents.d.ts +3 -0
  113. package/dist/commands/subagents.d.ts.map +1 -0
  114. package/dist/commands/subagents.js +350 -0
  115. package/dist/commands/subagents.js.map +1 -0
  116. package/dist/commands/sync.d.ts +3 -0
  117. package/dist/commands/sync.d.ts.map +1 -0
  118. package/dist/commands/sync.js +62 -0
  119. package/dist/commands/sync.js.map +1 -0
  120. package/dist/commands/teams-picker.d.ts +14 -0
  121. package/dist/commands/teams-picker.d.ts.map +1 -0
  122. package/dist/commands/teams-picker.js +278 -0
  123. package/dist/commands/teams-picker.js.map +1 -0
  124. package/dist/commands/teams.d.ts +3 -0
  125. package/dist/commands/teams.d.ts.map +1 -0
  126. package/dist/commands/teams.js +917 -0
  127. package/dist/commands/teams.js.map +1 -0
  128. package/dist/commands/utils.d.ts +39 -0
  129. package/dist/commands/utils.d.ts.map +1 -0
  130. package/dist/commands/utils.js +100 -0
  131. package/dist/commands/utils.js.map +1 -0
  132. package/dist/commands/versions.d.ts +3 -0
  133. package/dist/commands/versions.d.ts.map +1 -0
  134. package/dist/commands/versions.js +700 -0
  135. package/dist/commands/versions.js.map +1 -0
  136. package/dist/commands/view.d.ts +8 -0
  137. package/dist/commands/view.d.ts.map +1 -0
  138. package/dist/commands/view.js +626 -0
  139. package/dist/commands/view.js.map +1 -0
  140. package/dist/index.d.ts +3 -0
  141. package/dist/index.d.ts.map +1 -0
  142. package/dist/index.js +484 -0
  143. package/dist/index.js.map +1 -0
  144. package/dist/lib/__tests__/bugfixes.test.d.ts +2 -0
  145. package/dist/lib/__tests__/bugfixes.test.d.ts.map +1 -0
  146. package/dist/lib/__tests__/bugfixes.test.js +192 -0
  147. package/dist/lib/__tests__/bugfixes.test.js.map +1 -0
  148. package/dist/lib/__tests__/exec.test.d.ts +2 -0
  149. package/dist/lib/__tests__/exec.test.d.ts.map +1 -0
  150. package/dist/lib/__tests__/exec.test.js +446 -0
  151. package/dist/lib/__tests__/exec.test.js.map +1 -0
  152. package/dist/lib/__tests__/git-sync.test.d.ts +2 -0
  153. package/dist/lib/__tests__/git-sync.test.d.ts.map +1 -0
  154. package/dist/lib/__tests__/git-sync.test.js +138 -0
  155. package/dist/lib/__tests__/git-sync.test.js.map +1 -0
  156. package/dist/lib/__tests__/hooks.test.d.ts +2 -0
  157. package/dist/lib/__tests__/hooks.test.d.ts.map +1 -0
  158. package/dist/lib/__tests__/hooks.test.js +203 -0
  159. package/dist/lib/__tests__/hooks.test.js.map +1 -0
  160. package/dist/lib/__tests__/memory-compile.test.d.ts +2 -0
  161. package/dist/lib/__tests__/memory-compile.test.d.ts.map +1 -0
  162. package/dist/lib/__tests__/memory-compile.test.js +95 -0
  163. package/dist/lib/__tests__/memory-compile.test.js.map +1 -0
  164. package/dist/lib/__tests__/models.test.d.ts +2 -0
  165. package/dist/lib/__tests__/models.test.d.ts.map +1 -0
  166. package/dist/lib/__tests__/models.test.js +239 -0
  167. package/dist/lib/__tests__/models.test.js.map +1 -0
  168. package/dist/lib/__tests__/rotate.test.d.ts +2 -0
  169. package/dist/lib/__tests__/rotate.test.d.ts.map +1 -0
  170. package/dist/lib/__tests__/rotate.test.js +80 -0
  171. package/dist/lib/__tests__/rotate.test.js.map +1 -0
  172. package/dist/lib/__tests__/secrets-bundles.test.d.ts +2 -0
  173. package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +1 -0
  174. package/dist/lib/__tests__/secrets-bundles.test.js +104 -0
  175. package/dist/lib/__tests__/secrets-bundles.test.js.map +1 -0
  176. package/dist/lib/__tests__/secrets.test.d.ts +2 -0
  177. package/dist/lib/__tests__/secrets.test.d.ts.map +1 -0
  178. package/dist/lib/__tests__/secrets.test.js +90 -0
  179. package/dist/lib/__tests__/secrets.test.js.map +1 -0
  180. package/dist/lib/__tests__/shims.test.d.ts +2 -0
  181. package/dist/lib/__tests__/shims.test.d.ts.map +1 -0
  182. package/dist/lib/__tests__/shims.test.js +39 -0
  183. package/dist/lib/__tests__/shims.test.js.map +1 -0
  184. package/dist/lib/__tests__/usage.test.d.ts +2 -0
  185. package/dist/lib/__tests__/usage.test.d.ts.map +1 -0
  186. package/dist/lib/__tests__/usage.test.js +220 -0
  187. package/dist/lib/__tests__/usage.test.js.map +1 -0
  188. package/dist/lib/__tests__/versions.test.d.ts +2 -0
  189. package/dist/lib/__tests__/versions.test.d.ts.map +1 -0
  190. package/dist/lib/__tests__/versions.test.js +63 -0
  191. package/dist/lib/__tests__/versions.test.js.map +1 -0
  192. package/dist/lib/agents.d.ts +107 -0
  193. package/dist/lib/agents.d.ts.map +1 -0
  194. package/dist/lib/agents.js +1096 -0
  195. package/dist/lib/agents.js.map +1 -0
  196. package/dist/lib/artifact-actions.d.ts +22 -0
  197. package/dist/lib/artifact-actions.d.ts.map +1 -0
  198. package/dist/lib/artifact-actions.js +55 -0
  199. package/dist/lib/artifact-actions.js.map +1 -0
  200. package/dist/lib/cloud/codex.d.ts +19 -0
  201. package/dist/lib/cloud/codex.d.ts.map +1 -0
  202. package/dist/lib/cloud/codex.js +210 -0
  203. package/dist/lib/cloud/codex.js.map +1 -0
  204. package/dist/lib/cloud/factory.d.ts +26 -0
  205. package/dist/lib/cloud/factory.d.ts.map +1 -0
  206. package/dist/lib/cloud/factory.js +37 -0
  207. package/dist/lib/cloud/factory.js.map +1 -0
  208. package/dist/lib/cloud/registry.d.ts +6 -0
  209. package/dist/lib/cloud/registry.d.ts.map +1 -0
  210. package/dist/lib/cloud/registry.js +56 -0
  211. package/dist/lib/cloud/registry.js.map +1 -0
  212. package/dist/lib/cloud/rush.d.ts +15 -0
  213. package/dist/lib/cloud/rush.d.ts.map +1 -0
  214. package/dist/lib/cloud/rush.js +185 -0
  215. package/dist/lib/cloud/rush.js.map +1 -0
  216. package/dist/lib/cloud/store.d.ts +10 -0
  217. package/dist/lib/cloud/store.d.ts.map +1 -0
  218. package/dist/lib/cloud/store.js +96 -0
  219. package/dist/lib/cloud/store.js.map +1 -0
  220. package/dist/lib/cloud/stream.d.ts +18 -0
  221. package/dist/lib/cloud/stream.d.ts.map +1 -0
  222. package/dist/lib/cloud/stream.js +138 -0
  223. package/dist/lib/cloud/stream.js.map +1 -0
  224. package/dist/lib/cloud/types.d.ts +60 -0
  225. package/dist/lib/cloud/types.d.ts.map +1 -0
  226. package/dist/lib/cloud/types.js +2 -0
  227. package/dist/lib/cloud/types.js.map +1 -0
  228. package/dist/lib/commands.d.ts +121 -0
  229. package/dist/lib/commands.d.ts.map +1 -0
  230. package/dist/lib/commands.js +499 -0
  231. package/dist/lib/commands.js.map +1 -0
  232. package/dist/lib/convert.d.ts +11 -0
  233. package/dist/lib/convert.d.ts.map +1 -0
  234. package/dist/lib/convert.js +45 -0
  235. package/dist/lib/convert.js.map +1 -0
  236. package/dist/lib/daemon.d.ts +22 -0
  237. package/dist/lib/daemon.d.ts.map +1 -0
  238. package/dist/lib/daemon.js +311 -0
  239. package/dist/lib/daemon.js.map +1 -0
  240. package/dist/lib/drive-sync.d.ts +28 -0
  241. package/dist/lib/drive-sync.d.ts.map +1 -0
  242. package/dist/lib/drive-sync.js +193 -0
  243. package/dist/lib/drive-sync.js.map +1 -0
  244. package/dist/lib/exec.d.ts +85 -0
  245. package/dist/lib/exec.d.ts.map +1 -0
  246. package/dist/lib/exec.js +423 -0
  247. package/dist/lib/exec.js.map +1 -0
  248. package/dist/lib/factory.d.ts +57 -0
  249. package/dist/lib/factory.d.ts.map +1 -0
  250. package/dist/lib/factory.js +110 -0
  251. package/dist/lib/factory.js.map +1 -0
  252. package/dist/lib/git.d.ts +146 -0
  253. package/dist/lib/git.d.ts.map +1 -0
  254. package/dist/lib/git.js +635 -0
  255. package/dist/lib/git.js.map +1 -0
  256. package/dist/lib/help.d.ts +3 -0
  257. package/dist/lib/help.d.ts.map +1 -0
  258. package/dist/lib/help.js +63 -0
  259. package/dist/lib/help.js.map +1 -0
  260. package/dist/lib/hooks.d.ts +116 -0
  261. package/dist/lib/hooks.d.ts.map +1 -0
  262. package/dist/lib/hooks.js +837 -0
  263. package/dist/lib/hooks.js.map +1 -0
  264. package/dist/lib/manifest.d.ts +8 -0
  265. package/dist/lib/manifest.d.ts.map +1 -0
  266. package/dist/lib/manifest.js +36 -0
  267. package/dist/lib/manifest.js.map +1 -0
  268. package/dist/lib/markdown.d.ts +5 -0
  269. package/dist/lib/markdown.d.ts.map +1 -0
  270. package/dist/lib/markdown.js +11 -0
  271. package/dist/lib/markdown.js.map +1 -0
  272. package/dist/lib/mcp.d.ts +64 -0
  273. package/dist/lib/mcp.d.ts.map +1 -0
  274. package/dist/lib/mcp.js +327 -0
  275. package/dist/lib/mcp.js.map +1 -0
  276. package/dist/lib/memory-compile.d.ts +56 -0
  277. package/dist/lib/memory-compile.d.ts.map +1 -0
  278. package/dist/lib/memory-compile.js +167 -0
  279. package/dist/lib/memory-compile.js.map +1 -0
  280. package/dist/lib/memory.d.ts +56 -0
  281. package/dist/lib/memory.d.ts.map +1 -0
  282. package/dist/lib/memory.js +267 -0
  283. package/dist/lib/memory.js.map +1 -0
  284. package/dist/lib/models.d.ts +91 -0
  285. package/dist/lib/models.d.ts.map +1 -0
  286. package/dist/lib/models.js +706 -0
  287. package/dist/lib/models.js.map +1 -0
  288. package/dist/lib/permissions.d.ts +204 -0
  289. package/dist/lib/permissions.d.ts.map +1 -0
  290. package/dist/lib/permissions.js +1022 -0
  291. package/dist/lib/permissions.js.map +1 -0
  292. package/dist/lib/picker.d.ts +17 -0
  293. package/dist/lib/picker.d.ts.map +1 -0
  294. package/dist/lib/picker.js +95 -0
  295. package/dist/lib/picker.js.map +1 -0
  296. package/dist/lib/plugins.d.ts +73 -0
  297. package/dist/lib/plugins.d.ts.map +1 -0
  298. package/dist/lib/plugins.js +549 -0
  299. package/dist/lib/plugins.js.map +1 -0
  300. package/dist/lib/profiles-keychain.d.ts +3 -0
  301. package/dist/lib/profiles-keychain.d.ts.map +1 -0
  302. package/dist/lib/profiles-keychain.js +10 -0
  303. package/dist/lib/profiles-keychain.js.map +1 -0
  304. package/dist/lib/profiles-presets.d.ts +15 -0
  305. package/dist/lib/profiles-presets.d.ts.map +1 -0
  306. package/dist/lib/profiles-presets.js +95 -0
  307. package/dist/lib/profiles-presets.js.map +1 -0
  308. package/dist/lib/profiles.d.ts +35 -0
  309. package/dist/lib/profiles.d.ts.map +1 -0
  310. package/dist/lib/profiles.js +123 -0
  311. package/dist/lib/profiles.js.map +1 -0
  312. package/dist/lib/pty-client.d.ts +22 -0
  313. package/dist/lib/pty-client.d.ts.map +1 -0
  314. package/dist/lib/pty-client.js +181 -0
  315. package/dist/lib/pty-client.js.map +1 -0
  316. package/dist/lib/pty-server.d.ts +16 -0
  317. package/dist/lib/pty-server.d.ts.map +1 -0
  318. package/dist/lib/pty-server.js +422 -0
  319. package/dist/lib/pty-server.js.map +1 -0
  320. package/dist/lib/registry.d.ts +28 -0
  321. package/dist/lib/registry.d.ts.map +1 -0
  322. package/dist/lib/registry.js +203 -0
  323. package/dist/lib/registry.js.map +1 -0
  324. package/dist/lib/resources.d.ts +50 -0
  325. package/dist/lib/resources.d.ts.map +1 -0
  326. package/dist/lib/resources.js +103 -0
  327. package/dist/lib/resources.js.map +1 -0
  328. package/dist/lib/rotate.d.ts +52 -0
  329. package/dist/lib/rotate.d.ts.map +1 -0
  330. package/dist/lib/rotate.js +87 -0
  331. package/dist/lib/rotate.js.map +1 -0
  332. package/dist/lib/routines.d.ts +70 -0
  333. package/dist/lib/routines.d.ts.map +1 -0
  334. package/dist/lib/routines.js +325 -0
  335. package/dist/lib/routines.js.map +1 -0
  336. package/dist/lib/runner.d.ts +12 -0
  337. package/dist/lib/runner.d.ts.map +1 -0
  338. package/dist/lib/runner.js +311 -0
  339. package/dist/lib/runner.js.map +1 -0
  340. package/dist/lib/sandbox.d.ts +10 -0
  341. package/dist/lib/sandbox.d.ts.map +1 -0
  342. package/dist/lib/sandbox.js +201 -0
  343. package/dist/lib/sandbox.js.map +1 -0
  344. package/dist/lib/scheduler.d.ts +18 -0
  345. package/dist/lib/scheduler.d.ts.map +1 -0
  346. package/dist/lib/scheduler.js +69 -0
  347. package/dist/lib/scheduler.js.map +1 -0
  348. package/dist/lib/secrets-bundles.d.ts +29 -0
  349. package/dist/lib/secrets-bundles.d.ts.map +1 -0
  350. package/dist/lib/secrets-bundles.js +168 -0
  351. package/dist/lib/secrets-bundles.js.map +1 -0
  352. package/dist/lib/secrets.d.ts +27 -0
  353. package/dist/lib/secrets.d.ts.map +1 -0
  354. package/dist/lib/secrets.js +127 -0
  355. package/dist/lib/secrets.js.map +1 -0
  356. package/dist/lib/session/__tests__/db.test.d.ts +2 -0
  357. package/dist/lib/session/__tests__/db.test.d.ts.map +1 -0
  358. package/dist/lib/session/__tests__/db.test.js +54 -0
  359. package/dist/lib/session/__tests__/db.test.js.map +1 -0
  360. package/dist/lib/session/__tests__/discover.test.d.ts +2 -0
  361. package/dist/lib/session/__tests__/discover.test.d.ts.map +1 -0
  362. package/dist/lib/session/__tests__/discover.test.js +63 -0
  363. package/dist/lib/session/__tests__/discover.test.js.map +1 -0
  364. package/dist/lib/session/__tests__/prompt.test.d.ts +2 -0
  365. package/dist/lib/session/__tests__/prompt.test.d.ts.map +1 -0
  366. package/dist/lib/session/__tests__/prompt.test.js +44 -0
  367. package/dist/lib/session/__tests__/prompt.test.js.map +1 -0
  368. package/dist/lib/session/__tests__/render.test.d.ts +2 -0
  369. package/dist/lib/session/__tests__/render.test.d.ts.map +1 -0
  370. package/dist/lib/session/__tests__/render.test.js +602 -0
  371. package/dist/lib/session/__tests__/render.test.js.map +1 -0
  372. package/dist/lib/session/artifacts.d.ts +5 -0
  373. package/dist/lib/session/artifacts.d.ts.map +1 -0
  374. package/dist/lib/session/artifacts.js +75 -0
  375. package/dist/lib/session/artifacts.js.map +1 -0
  376. package/dist/lib/session/db.d.ts +118 -0
  377. package/dist/lib/session/db.d.ts.map +1 -0
  378. package/dist/lib/session/db.js +576 -0
  379. package/dist/lib/session/db.js.map +1 -0
  380. package/dist/lib/session/discover.d.ts +60 -0
  381. package/dist/lib/session/discover.d.ts.map +1 -0
  382. package/dist/lib/session/discover.js +1272 -0
  383. package/dist/lib/session/discover.js.map +1 -0
  384. package/dist/lib/session/parse.d.ts +23 -0
  385. package/dist/lib/session/parse.d.ts.map +1 -0
  386. package/dist/lib/session/parse.js +650 -0
  387. package/dist/lib/session/parse.js.map +1 -0
  388. package/dist/lib/session/prompt.d.ts +4 -0
  389. package/dist/lib/session/prompt.d.ts.map +1 -0
  390. package/dist/lib/session/prompt.js +64 -0
  391. package/dist/lib/session/prompt.js.map +1 -0
  392. package/dist/lib/session/prompt.test.d.ts +2 -0
  393. package/dist/lib/session/prompt.test.d.ts.map +1 -0
  394. package/dist/lib/session/prompt.test.js +57 -0
  395. package/dist/lib/session/prompt.test.js.map +1 -0
  396. package/dist/lib/session/render.d.ts +90 -0
  397. package/dist/lib/session/render.d.ts.map +1 -0
  398. package/dist/lib/session/render.js +778 -0
  399. package/dist/lib/session/render.js.map +1 -0
  400. package/dist/lib/session/team-filter.d.ts +26 -0
  401. package/dist/lib/session/team-filter.d.ts.map +1 -0
  402. package/dist/lib/session/team-filter.js +66 -0
  403. package/dist/lib/session/team-filter.js.map +1 -0
  404. package/dist/lib/session/team-filter.test.d.ts +2 -0
  405. package/dist/lib/session/team-filter.test.d.ts.map +1 -0
  406. package/dist/lib/session/team-filter.test.js +157 -0
  407. package/dist/lib/session/team-filter.test.js.map +1 -0
  408. package/dist/lib/session/types.d.ts +69 -0
  409. package/dist/lib/session/types.d.ts.map +1 -0
  410. package/dist/lib/session/types.js +2 -0
  411. package/dist/lib/session/types.js.map +1 -0
  412. package/dist/lib/shims.d.ts +228 -0
  413. package/dist/lib/shims.d.ts.map +1 -0
  414. package/dist/lib/shims.js +1170 -0
  415. package/dist/lib/shims.js.map +1 -0
  416. package/dist/lib/skills.d.ts +134 -0
  417. package/dist/lib/skills.d.ts.map +1 -0
  418. package/dist/lib/skills.js +783 -0
  419. package/dist/lib/skills.js.map +1 -0
  420. package/dist/lib/state.d.ts +53 -0
  421. package/dist/lib/state.d.ts.map +1 -0
  422. package/dist/lib/state.js +299 -0
  423. package/dist/lib/state.js.map +1 -0
  424. package/dist/lib/subagents.d.ts +75 -0
  425. package/dist/lib/subagents.d.ts.map +1 -0
  426. package/dist/lib/subagents.js +402 -0
  427. package/dist/lib/subagents.js.map +1 -0
  428. package/dist/lib/teams/agents.d.ts +146 -0
  429. package/dist/lib/teams/agents.d.ts.map +1 -0
  430. package/dist/lib/teams/agents.js +1072 -0
  431. package/dist/lib/teams/agents.js.map +1 -0
  432. package/dist/lib/teams/api.d.ts +77 -0
  433. package/dist/lib/teams/api.d.ts.map +1 -0
  434. package/dist/lib/teams/api.js +229 -0
  435. package/dist/lib/teams/api.js.map +1 -0
  436. package/dist/lib/teams/cloud.d.ts +11 -0
  437. package/dist/lib/teams/cloud.d.ts.map +1 -0
  438. package/dist/lib/teams/cloud.js +169 -0
  439. package/dist/lib/teams/cloud.js.map +1 -0
  440. package/dist/lib/teams/debug.d.ts +2 -0
  441. package/dist/lib/teams/debug.d.ts.map +1 -0
  442. package/dist/lib/teams/debug.js +6 -0
  443. package/dist/lib/teams/debug.js.map +1 -0
  444. package/dist/lib/teams/file_ops.d.ts +6 -0
  445. package/dist/lib/teams/file_ops.d.ts.map +1 -0
  446. package/dist/lib/teams/file_ops.js +59 -0
  447. package/dist/lib/teams/file_ops.js.map +1 -0
  448. package/dist/lib/teams/parsers.d.ts +5 -0
  449. package/dist/lib/teams/parsers.d.ts.map +1 -0
  450. package/dist/lib/teams/parsers.js +826 -0
  451. package/dist/lib/teams/parsers.js.map +1 -0
  452. package/dist/lib/teams/persistence.d.ts +28 -0
  453. package/dist/lib/teams/persistence.d.ts.map +1 -0
  454. package/dist/lib/teams/persistence.js +289 -0
  455. package/dist/lib/teams/persistence.js.map +1 -0
  456. package/dist/lib/teams/ralph.d.ts +8 -0
  457. package/dist/lib/teams/ralph.d.ts.map +1 -0
  458. package/dist/lib/teams/ralph.js +59 -0
  459. package/dist/lib/teams/ralph.js.map +1 -0
  460. package/dist/lib/teams/registry.d.ts +11 -0
  461. package/dist/lib/teams/registry.d.ts.map +1 -0
  462. package/dist/lib/teams/registry.js +56 -0
  463. package/dist/lib/teams/registry.js.map +1 -0
  464. package/dist/lib/teams/summarizer.d.ts +58 -0
  465. package/dist/lib/teams/summarizer.d.ts.map +1 -0
  466. package/dist/lib/teams/summarizer.js +766 -0
  467. package/dist/lib/teams/summarizer.js.map +1 -0
  468. package/dist/lib/template.d.ts +24 -0
  469. package/dist/lib/template.d.ts.map +1 -0
  470. package/dist/lib/template.js +57 -0
  471. package/dist/lib/template.js.map +1 -0
  472. package/dist/lib/types.d.ts +282 -0
  473. package/dist/lib/types.d.ts.map +1 -0
  474. package/dist/lib/types.js +18 -0
  475. package/dist/lib/types.js.map +1 -0
  476. package/dist/lib/usage.d.ts +73 -0
  477. package/dist/lib/usage.d.ts.map +1 -0
  478. package/dist/lib/usage.js +623 -0
  479. package/dist/lib/usage.js.map +1 -0
  480. package/dist/lib/versions.d.ts +248 -0
  481. package/dist/lib/versions.d.ts.map +1 -0
  482. package/dist/lib/versions.js +1737 -0
  483. package/dist/lib/versions.js.map +1 -0
  484. package/package.json +82 -0
  485. package/scripts/postinstall.js +72 -0
  486. package/scripts/rebuild-sqlite.sh +46 -0
@@ -0,0 +1,766 @@
1
+ import { extractFileOpsFromBash } from './file_ops.js';
2
+ function extractErrorFromRawEvents(events, maxChars = 500) {
3
+ const errorKeywords = ['error', 'Error', 'ERROR', 'failed', 'Failed', 'FAILED', 'exception', 'Exception'];
4
+ for (let i = events.length - 1; i >= Math.max(0, events.length - 20); i--) {
5
+ const event = events[i];
6
+ if (event.type === 'raw') {
7
+ const content = event.content || '';
8
+ if (typeof content === 'string') {
9
+ const contentLower = content.toLowerCase();
10
+ if (errorKeywords.some(keyword => contentLower.includes(keyword.toLowerCase()))) {
11
+ let errorMsg = content.trim();
12
+ if (errorMsg.length > maxChars) {
13
+ errorMsg = errorMsg.substring(0, maxChars - 3) + '...';
14
+ }
15
+ return errorMsg;
16
+ }
17
+ }
18
+ }
19
+ }
20
+ return null;
21
+ }
22
+ export const PRIORITY = {
23
+ critical: [
24
+ 'error',
25
+ 'result',
26
+ 'file_write',
27
+ 'file_delete',
28
+ 'file_create',
29
+ ],
30
+ important: [
31
+ 'tool_use',
32
+ 'bash',
33
+ 'file_read',
34
+ 'thinking',
35
+ 'message',
36
+ ],
37
+ verbose: [
38
+ 'thinking_delta',
39
+ 'message_delta',
40
+ 'init',
41
+ 'turn_start',
42
+ 'user_message',
43
+ 'raw',
44
+ ],
45
+ };
46
+ /**
47
+ * Collapse sequential events of the same type into summary entries.
48
+ * Returns a cleaner list of events suitable for output.
49
+ */
50
+ export function collapseEvents(events, maxEvents = 20) {
51
+ if (events.length === 0)
52
+ return [];
53
+ const collapsed = [];
54
+ let i = 0;
55
+ while (i < events.length) {
56
+ const event = events[i];
57
+ const eventType = event.type || 'unknown';
58
+ // For thinking events, collapse sequential ones
59
+ if (eventType === 'thinking') {
60
+ let count = 1;
61
+ let lastContent = event.content || '';
62
+ let j = i + 1;
63
+ while (j < events.length && events[j].type === 'thinking') {
64
+ count++;
65
+ if (events[j].content) {
66
+ lastContent = events[j].content;
67
+ }
68
+ j++;
69
+ }
70
+ if (count > 1) {
71
+ collapsed.push({
72
+ type: 'thinking_summary',
73
+ count: count,
74
+ last_content: lastContent.length > 200 ? lastContent.slice(-200) : lastContent,
75
+ timestamp: event.timestamp,
76
+ });
77
+ }
78
+ else if (event.content) {
79
+ collapsed.push(event);
80
+ }
81
+ i = j;
82
+ continue;
83
+ }
84
+ // For message events, keep the last content
85
+ if (eventType === 'message') {
86
+ collapsed.push({
87
+ type: 'message',
88
+ content: event.content?.length > 500 ? event.content.slice(-500) : event.content,
89
+ complete: event.complete,
90
+ timestamp: event.timestamp,
91
+ });
92
+ i++;
93
+ continue;
94
+ }
95
+ // Keep tool events as-is but truncate large content
96
+ if (['bash', 'file_write', 'file_read', 'file_create', 'file_delete', 'tool_use'].includes(eventType)) {
97
+ const cleaned = { ...event };
98
+ if (cleaned.command && cleaned.command.length > 200) {
99
+ cleaned.command = cleaned.command.slice(0, 200) + '...';
100
+ }
101
+ collapsed.push(cleaned);
102
+ i++;
103
+ continue;
104
+ }
105
+ // Keep errors and results
106
+ if (['error', 'result'].includes(eventType)) {
107
+ collapsed.push(event);
108
+ i++;
109
+ continue;
110
+ }
111
+ // Skip other event types
112
+ i++;
113
+ }
114
+ // Return only the last N events
115
+ if (collapsed.length > maxEvents) {
116
+ return collapsed.slice(-maxEvents);
117
+ }
118
+ return collapsed;
119
+ }
120
+ /**
121
+ * Get a breakdown of tool calls by type.
122
+ */
123
+ export function getToolBreakdown(events) {
124
+ const breakdown = {};
125
+ for (const event of events) {
126
+ const eventType = event.type || '';
127
+ if (eventType === 'bash') {
128
+ breakdown['bash'] = (breakdown['bash'] || 0) + 1;
129
+ }
130
+ else if (eventType === 'file_write') {
131
+ breakdown['file_write'] = (breakdown['file_write'] || 0) + 1;
132
+ }
133
+ else if (eventType === 'file_read') {
134
+ breakdown['file_read'] = (breakdown['file_read'] || 0) + 1;
135
+ }
136
+ else if (eventType === 'file_create') {
137
+ breakdown['file_create'] = (breakdown['file_create'] || 0) + 1;
138
+ }
139
+ else if (eventType === 'file_delete') {
140
+ breakdown['file_delete'] = (breakdown['file_delete'] || 0) + 1;
141
+ }
142
+ else if (eventType === 'tool_use') {
143
+ const tool = event.tool || 'unknown';
144
+ breakdown[tool] = (breakdown[tool] || 0) + 1;
145
+ }
146
+ }
147
+ return breakdown;
148
+ }
149
+ export function groupAndFlattenEvents(events) {
150
+ if (events.length === 0)
151
+ return [];
152
+ const grouped = [];
153
+ let i = 0;
154
+ while (i < events.length) {
155
+ const event = events[i];
156
+ const eventType = event.type || 'unknown';
157
+ if (eventType === 'message' || eventType === 'thinking') {
158
+ let count = 1;
159
+ let combinedContent = event.content || '';
160
+ let j = i + 1;
161
+ while (j < events.length && events[j].type === eventType) {
162
+ count++;
163
+ if (events[j].content) {
164
+ combinedContent += (combinedContent ? '\n' : '') + events[j].content;
165
+ }
166
+ j++;
167
+ }
168
+ const flattened = {
169
+ type: eventType,
170
+ content: combinedContent.length > 1000 ? combinedContent.slice(-1000) : combinedContent,
171
+ };
172
+ if (count > 1) {
173
+ flattened.count = count;
174
+ }
175
+ grouped.push(flattened);
176
+ i = j;
177
+ continue;
178
+ }
179
+ if (['file_write', 'file_create', 'file_read', 'file_delete'].includes(eventType)) {
180
+ const path = event.path || '';
181
+ if (!path) {
182
+ i++;
183
+ continue;
184
+ }
185
+ const pathGroup = {
186
+ type: eventType,
187
+ path: path,
188
+ count: 1,
189
+ };
190
+ let j = i + 1;
191
+ while (j < events.length && events[j].type === eventType && events[j].path === path) {
192
+ pathGroup.count++;
193
+ j++;
194
+ }
195
+ grouped.push(pathGroup);
196
+ i = j;
197
+ continue;
198
+ }
199
+ if (eventType === 'bash') {
200
+ const command = event.command || '';
201
+ if (!command) {
202
+ i++;
203
+ continue;
204
+ }
205
+ const bashGroup = {
206
+ type: 'bash',
207
+ commands: [command],
208
+ count: 1,
209
+ };
210
+ let j = i + 1;
211
+ while (j < events.length && events[j].type === 'bash') {
212
+ bashGroup.commands.push(events[j].command || '');
213
+ bashGroup.count++;
214
+ j++;
215
+ }
216
+ if (bashGroup.commands.length > 5) {
217
+ bashGroup.commands = bashGroup.commands.slice(-5);
218
+ bashGroup.truncated = bashGroup.count - 5;
219
+ }
220
+ grouped.push(bashGroup);
221
+ i = j;
222
+ continue;
223
+ }
224
+ if (eventType === 'tool_use') {
225
+ const flattened = {
226
+ type: 'tool_use',
227
+ tool: event.tool || 'unknown',
228
+ };
229
+ if (event.name)
230
+ flattened.name = event.name;
231
+ if (event.input) {
232
+ const inputStr = typeof event.input === 'string' ? event.input : JSON.stringify(event.input);
233
+ flattened.input = inputStr.length > 200 ? inputStr.slice(0, 200) + '...' : inputStr;
234
+ }
235
+ grouped.push(flattened);
236
+ i++;
237
+ continue;
238
+ }
239
+ if (['error', 'result'].includes(eventType)) {
240
+ const flattened = {
241
+ type: eventType,
242
+ };
243
+ if (event.message)
244
+ flattened.message = event.message;
245
+ if (event.content)
246
+ flattened.content = event.content;
247
+ if (event.status)
248
+ flattened.status = event.status;
249
+ grouped.push(flattened);
250
+ i++;
251
+ continue;
252
+ }
253
+ i++;
254
+ }
255
+ return grouped;
256
+ }
257
+ export class AgentSummary {
258
+ agentId;
259
+ agentType;
260
+ status;
261
+ duration = null;
262
+ filesModified = new Set();
263
+ filesCreated = new Set();
264
+ filesRead = new Set();
265
+ filesDeleted = new Set();
266
+ toolsUsed = new Set();
267
+ toolCallCount = 0;
268
+ bashCommands = [];
269
+ errors = [];
270
+ warnings = [];
271
+ finalMessage = null;
272
+ eventCount = 0;
273
+ lastActivity = null;
274
+ eventsCache = [];
275
+ constructor(agentId, agentType, status, duration = null, eventCount = 0) {
276
+ this.agentId = agentId;
277
+ this.agentType = agentType;
278
+ this.status = status;
279
+ this.duration = duration;
280
+ this.eventCount = eventCount;
281
+ }
282
+ toDict(detailLevel = 'standard') {
283
+ const base = {
284
+ agent_id: this.agentId,
285
+ agent_type: this.agentType,
286
+ status: this.status,
287
+ };
288
+ if (detailLevel === 'brief') {
289
+ return {
290
+ ...base,
291
+ duration: this.duration,
292
+ tool_call_count: this.toolCallCount,
293
+ last_activity: this.lastActivity,
294
+ files_modified: Array.from(this.filesModified).slice(0, 5),
295
+ files_created: Array.from(this.filesCreated).slice(0, 5),
296
+ has_errors: this.errors.length > 0,
297
+ };
298
+ }
299
+ else if (detailLevel === 'standard') {
300
+ return {
301
+ ...base,
302
+ duration: this.duration,
303
+ files_modified: Array.from(this.filesModified),
304
+ files_created: Array.from(this.filesCreated),
305
+ tools_used: Array.from(this.toolsUsed),
306
+ tool_call_count: this.toolCallCount,
307
+ errors: this.errors.slice(0, 3),
308
+ final_message: this.truncate(this.finalMessage, 2000),
309
+ };
310
+ }
311
+ else {
312
+ return {
313
+ ...base,
314
+ duration: this.duration,
315
+ files_modified: Array.from(this.filesModified),
316
+ files_created: Array.from(this.filesCreated),
317
+ files_read: Array.from(this.filesRead),
318
+ files_deleted: Array.from(this.filesDeleted),
319
+ tools_used: Array.from(this.toolsUsed),
320
+ tool_call_count: this.toolCallCount,
321
+ bash_commands: this.bashCommands.slice(-10),
322
+ errors: this.errors,
323
+ warnings: this.warnings,
324
+ final_message: this.finalMessage,
325
+ event_count: this.eventCount,
326
+ last_activity: this.lastActivity,
327
+ };
328
+ }
329
+ }
330
+ truncate(text, maxLen) {
331
+ if (!text)
332
+ return null;
333
+ if (text.length <= maxLen)
334
+ return text;
335
+ return text.substring(0, maxLen - 3) + '...';
336
+ }
337
+ }
338
+ export function summarizeEvents(agentId, agentType, status, events, duration = null) {
339
+ const summary = new AgentSummary(agentId, agentType, status, duration, events.length);
340
+ summary.eventsCache = events;
341
+ summary.agentId = agentId;
342
+ summary.agentType = agentType;
343
+ summary.status = status;
344
+ for (const event of events) {
345
+ const eventType = event.type || 'unknown';
346
+ summary.lastActivity = eventType;
347
+ if (eventType === 'file_write') {
348
+ const path = event.path || '';
349
+ if (path) {
350
+ summary.filesModified.add(path);
351
+ summary.toolCallCount++;
352
+ }
353
+ }
354
+ else if (eventType === 'file_create') {
355
+ const path = event.path || '';
356
+ if (path) {
357
+ summary.filesCreated.add(path);
358
+ summary.toolCallCount++;
359
+ }
360
+ }
361
+ else if (eventType === 'file_read') {
362
+ const path = event.path || '';
363
+ if (path) {
364
+ summary.filesRead.add(path);
365
+ summary.toolCallCount++;
366
+ }
367
+ }
368
+ else if (eventType === 'file_delete') {
369
+ const path = event.path || '';
370
+ if (path) {
371
+ summary.filesDeleted.add(path);
372
+ summary.toolCallCount++;
373
+ }
374
+ }
375
+ else if (eventType === 'directory_list') {
376
+ summary.toolCallCount++;
377
+ }
378
+ else if (eventType === 'tool_use') {
379
+ const tool = event.tool || 'unknown';
380
+ summary.toolsUsed.add(tool);
381
+ summary.toolCallCount++;
382
+ }
383
+ else if (eventType === 'bash') {
384
+ const command = event.command || '';
385
+ summary.toolsUsed.add('bash');
386
+ if (command) {
387
+ summary.bashCommands.push(command);
388
+ const [filesRead, filesWritten, filesDeleted] = extractFileOpsFromBash(command);
389
+ for (const path of filesRead) {
390
+ summary.filesRead.add(path);
391
+ }
392
+ for (const path of filesWritten) {
393
+ summary.filesModified.add(path);
394
+ }
395
+ for (const path of filesDeleted) {
396
+ summary.filesDeleted.add(path);
397
+ }
398
+ }
399
+ summary.toolCallCount++;
400
+ }
401
+ else if (eventType === 'message') {
402
+ const content = event.content || '';
403
+ if (content) {
404
+ summary.finalMessage = content;
405
+ }
406
+ }
407
+ else if (eventType === 'error') {
408
+ let errorMsg = null;
409
+ for (const key of ['message', 'content', 'error', 'error_message', 'details']) {
410
+ if (event[key]) {
411
+ errorMsg = String(event[key]);
412
+ break;
413
+ }
414
+ }
415
+ if (!errorMsg) {
416
+ errorMsg = extractErrorFromRawEvents(summary.eventsCache);
417
+ }
418
+ if (errorMsg) {
419
+ if (errorMsg.length > 500) {
420
+ errorMsg = errorMsg.substring(0, 497) + '...';
421
+ }
422
+ summary.errors.push(errorMsg);
423
+ }
424
+ }
425
+ else if (eventType === 'warning') {
426
+ const warningMsg = event.message || event.content || '';
427
+ if (warningMsg) {
428
+ summary.warnings.push(warningMsg);
429
+ }
430
+ }
431
+ else if (eventType === 'result') {
432
+ if (event.status === 'error') {
433
+ let errorMsg = null;
434
+ for (const key of ['message', 'error', 'error_message', 'error_details', 'details']) {
435
+ if (event[key]) {
436
+ errorMsg = String(event[key]);
437
+ break;
438
+ }
439
+ }
440
+ if (!errorMsg) {
441
+ errorMsg = extractErrorFromRawEvents(summary.eventsCache);
442
+ }
443
+ if (errorMsg) {
444
+ if (errorMsg.length > 500) {
445
+ errorMsg = errorMsg.substring(0, 497) + '...';
446
+ }
447
+ summary.errors.push(errorMsg);
448
+ }
449
+ }
450
+ if (!summary.duration && event.duration_ms) {
451
+ const durationMs = event.duration_ms;
452
+ const seconds = durationMs / 1000;
453
+ if (seconds < 60) {
454
+ if (seconds % 1 === 0) {
455
+ summary.duration = `${Math.floor(seconds)} seconds`;
456
+ }
457
+ else {
458
+ summary.duration = `${seconds.toFixed(1)} seconds`;
459
+ }
460
+ }
461
+ else {
462
+ const minutes = seconds / 60;
463
+ summary.duration = `${minutes.toFixed(1)} minutes`;
464
+ }
465
+ }
466
+ }
467
+ }
468
+ return summary;
469
+ }
470
+ export function getDelta(agentId, agentType, status, events, since // Optional: ISO timestamp (string) or event index (number)
471
+ ) {
472
+ // Filter events by timestamp (string) or index (number)
473
+ let newEvents;
474
+ let sinceEvent = 0;
475
+ if (since === undefined || since === null) {
476
+ // No filter - return all events
477
+ newEvents = events;
478
+ }
479
+ else if (typeof since === 'number') {
480
+ // Backward compatibility: event index
481
+ sinceEvent = since;
482
+ newEvents = events.slice(sinceEvent);
483
+ }
484
+ else if (typeof since === 'string') {
485
+ // New behavior: timestamp filtering
486
+ const sinceDate = new Date(since);
487
+ newEvents = events.filter((e) => {
488
+ if (!e.timestamp)
489
+ return false;
490
+ const eventDate = new Date(e.timestamp);
491
+ return eventDate > sinceDate;
492
+ });
493
+ }
494
+ else {
495
+ newEvents = events;
496
+ }
497
+ if (newEvents.length === 0) {
498
+ return {
499
+ agent_id: agentId,
500
+ status: status,
501
+ since_event: sinceEvent, // For backward compatibility
502
+ new_events_count: 0,
503
+ has_changes: false,
504
+ new_files_created: [],
505
+ new_files_modified: [],
506
+ new_files_read: [],
507
+ new_files_deleted: [],
508
+ new_bash_commands: [],
509
+ new_messages: [],
510
+ new_tool_count: 0,
511
+ new_errors: [],
512
+ };
513
+ }
514
+ const summary = summarizeEvents(agentId, agentType, status, newEvents);
515
+ return {
516
+ agent_id: agentId,
517
+ agent_type: agentType,
518
+ status: status,
519
+ since_event: sinceEvent, // For backward compatibility
520
+ new_events_count: newEvents.length,
521
+ current_event_count: sinceEvent + newEvents.length, // For backward compatibility
522
+ has_changes: true,
523
+ new_files_created: Array.from(summary.filesCreated),
524
+ new_files_modified: Array.from(summary.filesModified),
525
+ new_files_read: Array.from(summary.filesRead),
526
+ new_files_deleted: Array.from(summary.filesDeleted),
527
+ new_bash_commands: summary.bashCommands.slice(-15),
528
+ new_messages: getLastMessages(newEvents, 5),
529
+ new_tool_count: summary.toolCallCount,
530
+ new_tool_calls: newEvents // For backward compatibility
531
+ .filter((e) => ['tool_use', 'bash', 'file_write'].includes(e.type))
532
+ .slice(-5)
533
+ .map((e) => `${e.tool || 'unknown'}: ${e.command || e.path || ''}`),
534
+ latest_message: summary.finalMessage, // For backward compatibility
535
+ new_errors: summary.errors,
536
+ };
537
+ }
538
+ export function filterEventsByPriority(events, includeLevels = null) {
539
+ if (!includeLevels) {
540
+ includeLevels = ['critical', 'important'];
541
+ }
542
+ const allowedTypes = new Set();
543
+ for (const level of includeLevels) {
544
+ const types = PRIORITY[level] || [];
545
+ for (const type of types) {
546
+ allowedTypes.add(type);
547
+ }
548
+ }
549
+ return events.filter(e => allowedTypes.has(e.type));
550
+ }
551
+ export function getLastTool(events) {
552
+ if (events.length === 0)
553
+ return null;
554
+ const lastEvent = events[events.length - 1];
555
+ const eventType = lastEvent.type || '';
556
+ const validTypes = ['tool_use', 'bash', 'file_write', 'file_create', 'file_read', 'file_delete', 'message', 'error', 'result'];
557
+ if (validTypes.includes(eventType)) {
558
+ return eventType;
559
+ }
560
+ return null;
561
+ }
562
+ export function getToolUses(events) {
563
+ const toolUses = [];
564
+ for (const event of events) {
565
+ if (event.type === 'tool_use') {
566
+ const tool = event.tool || 'unknown';
567
+ const args = event.args || {};
568
+ toolUses.push({ tool, args });
569
+ }
570
+ }
571
+ return toolUses;
572
+ }
573
+ export function getLastMessages(events, count = 3) {
574
+ const messages = [];
575
+ let currentBuffer = '';
576
+ let isCollecting = false;
577
+ for (const event of events) {
578
+ if (event.type === 'message') {
579
+ const content = event.content || '';
580
+ // For streaming events (delta=true), content fragments should be joined.
581
+ // We don't add newlines because these are likely parts of the same sentence/block.
582
+ currentBuffer += content;
583
+ isCollecting = true;
584
+ // If we hit an explicitly complete message, treat it as a boundary
585
+ if (event.complete) {
586
+ if (currentBuffer.trim()) {
587
+ messages.push(currentBuffer);
588
+ }
589
+ currentBuffer = '';
590
+ isCollecting = false;
591
+ }
592
+ }
593
+ else {
594
+ // Any non-message event breaks the message stream
595
+ if (isCollecting) {
596
+ if (currentBuffer.trim()) {
597
+ messages.push(currentBuffer);
598
+ }
599
+ currentBuffer = '';
600
+ isCollecting = false;
601
+ }
602
+ }
603
+ }
604
+ // Handle any remaining buffer at the end
605
+ if (isCollecting && currentBuffer.trim()) {
606
+ messages.push(currentBuffer);
607
+ }
608
+ return messages.slice(-count);
609
+ }
610
+ export function getQuickStatus(agentId, agentType, status, events) {
611
+ const filesCreatedSet = new Set();
612
+ const filesModifiedSet = new Set();
613
+ const filesDeletedSet = new Set();
614
+ const filesReadSet = new Set();
615
+ let toolCount = 0;
616
+ let hasErrors = false;
617
+ const commands = [];
618
+ let lastMessage = null;
619
+ for (const event of events) {
620
+ const eventType = event.type || '';
621
+ if (eventType === 'message') {
622
+ const content = event.content || '';
623
+ if (content) {
624
+ lastMessage = content;
625
+ }
626
+ }
627
+ else if (eventType === 'file_create') {
628
+ const path = event.path || '';
629
+ if (path) {
630
+ filesCreatedSet.add(path);
631
+ }
632
+ toolCount++;
633
+ }
634
+ else if (eventType === 'file_write') {
635
+ const path = event.path || '';
636
+ if (path) {
637
+ filesModifiedSet.add(path);
638
+ }
639
+ toolCount++;
640
+ }
641
+ else if (eventType === 'file_delete') {
642
+ const path = event.path || '';
643
+ if (path) {
644
+ filesDeletedSet.add(path);
645
+ }
646
+ toolCount++;
647
+ }
648
+ else if (eventType === 'file_read') {
649
+ const path = event.path || '';
650
+ if (path) {
651
+ filesReadSet.add(path);
652
+ }
653
+ toolCount++;
654
+ }
655
+ else if (eventType === 'bash') {
656
+ toolCount++;
657
+ const cmd = event.command || '';
658
+ if (cmd) {
659
+ commands.push(cmd.length > 100 ? cmd.substring(0, 97) + '...' : cmd);
660
+ const [filesRead, filesWritten, filesDeleted] = extractFileOpsFromBash(cmd);
661
+ for (const path of filesRead) {
662
+ filesReadSet.add(path);
663
+ }
664
+ for (const path of filesWritten) {
665
+ filesModifiedSet.add(path);
666
+ }
667
+ for (const path of filesDeleted) {
668
+ filesDeletedSet.add(path);
669
+ }
670
+ }
671
+ }
672
+ else if (eventType === 'directory_list') {
673
+ toolCount++;
674
+ }
675
+ else if (['tool_use'].includes(eventType)) {
676
+ toolCount++;
677
+ }
678
+ else if (eventType === 'error' || (eventType === 'result' && event.status === 'error')) {
679
+ hasErrors = true;
680
+ }
681
+ }
682
+ return {
683
+ agent_id: agentId,
684
+ agent_type: agentType,
685
+ status: status,
686
+ files_created: filesCreatedSet.size,
687
+ files_modified: filesModifiedSet.size,
688
+ files_deleted: filesDeletedSet.size,
689
+ files_read: filesReadSet.size,
690
+ tool_count: toolCount,
691
+ last_commands: commands.slice(-3),
692
+ has_errors: hasErrors,
693
+ last_message: lastMessage,
694
+ };
695
+ }
696
+ export function getStatusSummary(agentId, agentType, status, events, duration = null) {
697
+ if (events.length === 0) {
698
+ if (status === 'running') {
699
+ return 'Just started, no activity yet';
700
+ }
701
+ return 'No activity';
702
+ }
703
+ let fileCount = 0;
704
+ let bashCount = 0;
705
+ let toolCount = 0;
706
+ let hasErrors = false;
707
+ for (const event of events) {
708
+ const eventType = event.type || '';
709
+ if (['file_write', 'file_create', 'file_delete'].includes(eventType)) {
710
+ fileCount++;
711
+ }
712
+ else if (eventType === 'bash') {
713
+ bashCount++;
714
+ }
715
+ else if (['tool_use', 'file_read'].includes(eventType)) {
716
+ toolCount++;
717
+ }
718
+ else if (['error', 'result'].includes(eventType)) {
719
+ if (event.status === 'error') {
720
+ hasErrors = true;
721
+ }
722
+ }
723
+ }
724
+ const totalTools = bashCount + toolCount;
725
+ const parts = [];
726
+ if (status === 'running') {
727
+ parts.push('Running');
728
+ }
729
+ else if (status === 'completed') {
730
+ if (hasErrors) {
731
+ parts.push('Completed with errors');
732
+ }
733
+ else {
734
+ parts.push('Completed successfully');
735
+ }
736
+ }
737
+ else if (status === 'failed') {
738
+ parts.push('Failed');
739
+ }
740
+ else if (status === 'stopped') {
741
+ parts.push('Stopped');
742
+ }
743
+ if (fileCount > 0) {
744
+ parts.push(`modified ${fileCount} file${fileCount !== 1 ? 's' : ''}`);
745
+ }
746
+ if (bashCount > 0) {
747
+ parts.push(`used bash ${bashCount} time${bashCount !== 1 ? 's' : ''}`);
748
+ }
749
+ if (toolCount > 0 && bashCount === 0) {
750
+ parts.push(`used ${toolCount} tool${toolCount !== 1 ? 's' : ''}`);
751
+ }
752
+ if (totalTools > 0 && bashCount > 0) {
753
+ parts.push(`used ${totalTools} tool${totalTools !== 1 ? 's' : ''}`);
754
+ }
755
+ if (hasErrors && status === 'running') {
756
+ parts.push('has errors');
757
+ }
758
+ if (parts.length === 0) {
759
+ if (status === 'running') {
760
+ return `Running, ${events.length} event${events.length !== 1 ? 's' : ''} so far`;
761
+ }
762
+ return status.charAt(0).toUpperCase() + status.slice(1);
763
+ }
764
+ return parts.join(', ');
765
+ }
766
+ //# sourceMappingURL=summarizer.js.map