agent-relay 1.1.0 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/.gitattributes +3 -0
  2. package/.nvmrc +1 -0
  3. package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.json +65 -0
  4. package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.md +37 -0
  5. package/.trajectories/completed/2026-01/traj_1k5if5snst2e.json +65 -0
  6. package/.trajectories/completed/2026-01/traj_1k5if5snst2e.md +37 -0
  7. package/.trajectories/completed/2026-01/traj_1rp3rges5811.json +49 -0
  8. package/.trajectories/completed/2026-01/traj_1rp3rges5811.md +31 -0
  9. package/.trajectories/completed/2026-01/traj_22bhyulruouw.json +113 -0
  10. package/.trajectories/completed/2026-01/traj_22bhyulruouw.md +57 -0
  11. package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.json +53 -0
  12. package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.md +32 -0
  13. package/.trajectories/completed/2026-01/traj_3t0440mjeunc.json +26 -0
  14. package/.trajectories/completed/2026-01/traj_3t0440mjeunc.md +6 -0
  15. package/.trajectories/completed/2026-01/traj_45x9494d9xnr.json +47 -0
  16. package/.trajectories/completed/2026-01/traj_45x9494d9xnr.md +32 -0
  17. package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.json +53 -0
  18. package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.md +32 -0
  19. package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.json +59 -0
  20. package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.md +33 -0
  21. package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.json +53 -0
  22. package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.md +32 -0
  23. package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.json +48 -0
  24. package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.md +24 -0
  25. package/.trajectories/completed/2026-01/traj_7ludwvz45veh.json +209 -0
  26. package/.trajectories/completed/2026-01/traj_7ludwvz45veh.md +97 -0
  27. package/.trajectories/completed/2026-01/traj_9921cuhel0pj.json +48 -0
  28. package/.trajectories/completed/2026-01/traj_9921cuhel0pj.md +24 -0
  29. package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.json +49 -0
  30. package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.md +23 -0
  31. package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.json +53 -0
  32. package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.md +32 -0
  33. package/.trajectories/completed/2026-01/traj_cxofprm2m2en.json +49 -0
  34. package/.trajectories/completed/2026-01/traj_cxofprm2m2en.md +31 -0
  35. package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.json +26 -0
  36. package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.md +6 -0
  37. package/.trajectories/completed/2026-01/traj_dfuvww9pege5.json +59 -0
  38. package/.trajectories/completed/2026-01/traj_dfuvww9pege5.md +37 -0
  39. package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.json +77 -0
  40. package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.md +42 -0
  41. package/.trajectories/completed/2026-01/traj_gjdre5voouod.json +53 -0
  42. package/.trajectories/completed/2026-01/traj_gjdre5voouod.md +32 -0
  43. package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.json +25 -0
  44. package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.md +15 -0
  45. package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.json +101 -0
  46. package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.md +44 -0
  47. package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.json +22 -0
  48. package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.md +5 -0
  49. package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.json +53 -0
  50. package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.md +32 -0
  51. package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.json +25 -0
  52. package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.md +15 -0
  53. package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.json +53 -0
  54. package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.md +32 -0
  55. package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.json +53 -0
  56. package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.md +32 -0
  57. package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.json +48 -0
  58. package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.md +24 -0
  59. package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.json +53 -0
  60. package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.md +32 -0
  61. package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.json +77 -0
  62. package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.md +42 -0
  63. package/.trajectories/completed/2026-01/traj_qft54mi7nfor.json +53 -0
  64. package/.trajectories/completed/2026-01/traj_qft54mi7nfor.md +32 -0
  65. package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.json +83 -0
  66. package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.md +47 -0
  67. package/.trajectories/completed/2026-01/traj_rd9toccj18a0.json +59 -0
  68. package/.trajectories/completed/2026-01/traj_rd9toccj18a0.md +37 -0
  69. package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.json +48 -0
  70. package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.md +16 -0
  71. package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.json +59 -0
  72. package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.md +37 -0
  73. package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.json +53 -0
  74. package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.md +32 -0
  75. package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.json +84 -0
  76. package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.md +109 -0
  77. package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.json +53 -0
  78. package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.md +32 -0
  79. package/.trajectories/completed/2026-01/traj_v87hypnongqx.json +71 -0
  80. package/.trajectories/completed/2026-01/traj_v87hypnongqx.md +42 -0
  81. package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.json +53 -0
  82. package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.md +32 -0
  83. package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.json +20 -0
  84. package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.md +6 -0
  85. package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.json +175 -0
  86. package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.md +82 -0
  87. package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.json +47 -0
  88. package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.md +32 -0
  89. package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.json +59 -0
  90. package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.md +37 -0
  91. package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.json +53 -0
  92. package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.md +32 -0
  93. package/.trajectories/index.json +314 -0
  94. package/ARCHITECTURE.md +1245 -0
  95. package/README.md +1 -1
  96. package/TESTING.md +278 -0
  97. package/deploy/init-db.sql +5 -0
  98. package/deploy/scripts/setup-fly-workspaces.sh +69 -0
  99. package/deploy/scripts/setup-railway.sh +75 -0
  100. package/deploy/workspace/entrypoint-browser.sh +118 -0
  101. package/deploy/workspace/entrypoint.sh +348 -0
  102. package/deploy/workspace/git-credential-relay +111 -0
  103. package/dist/bridge/spawner.d.ts +53 -0
  104. package/dist/bridge/spawner.js +203 -19
  105. package/dist/bridge/types.d.ts +12 -0
  106. package/dist/cli/index.js +618 -5
  107. package/dist/cloud/api/auth.d.ts +3 -2
  108. package/dist/cloud/api/auth.js +10 -98
  109. package/dist/cloud/api/billing.js +30 -9
  110. package/dist/cloud/api/cli-pty-runner.d.ts +54 -0
  111. package/dist/cloud/api/cli-pty-runner.js +119 -0
  112. package/dist/cloud/api/codex-auth-helper.d.ts +15 -0
  113. package/dist/cloud/api/codex-auth-helper.js +100 -0
  114. package/dist/cloud/api/generic-webhooks.d.ts +8 -0
  115. package/dist/cloud/api/generic-webhooks.js +129 -0
  116. package/dist/cloud/api/git.d.ts +8 -0
  117. package/dist/cloud/api/git.js +152 -0
  118. package/dist/cloud/api/github-app.d.ts +11 -0
  119. package/dist/cloud/api/github-app.js +189 -0
  120. package/dist/cloud/api/middleware/planLimits.d.ts +7 -0
  121. package/dist/cloud/api/middleware/planLimits.js +39 -1
  122. package/dist/cloud/api/monitoring.d.ts +11 -0
  123. package/dist/cloud/api/monitoring.js +578 -0
  124. package/dist/cloud/api/nango-auth.d.ts +9 -0
  125. package/dist/cloud/api/nango-auth.js +377 -0
  126. package/dist/cloud/api/onboarding.d.ts +8 -1
  127. package/dist/cloud/api/onboarding.js +313 -119
  128. package/dist/cloud/api/policy.d.ts +8 -0
  129. package/dist/cloud/api/policy.js +229 -0
  130. package/dist/cloud/api/providers.js +114 -42
  131. package/dist/cloud/api/repos.d.ts +1 -0
  132. package/dist/cloud/api/repos.js +186 -0
  133. package/dist/cloud/api/test-helpers.d.ts +10 -0
  134. package/dist/cloud/api/test-helpers.js +575 -0
  135. package/dist/cloud/api/webhooks.d.ts +8 -0
  136. package/dist/cloud/api/webhooks.js +645 -0
  137. package/dist/cloud/api/workspaces.js +320 -12
  138. package/dist/cloud/billing/plans.js +32 -19
  139. package/dist/cloud/billing/types.d.ts +9 -3
  140. package/dist/cloud/config.d.ts +9 -2
  141. package/dist/cloud/config.js +13 -4
  142. package/dist/cloud/db/drizzle.d.ts +84 -1
  143. package/dist/cloud/db/drizzle.js +470 -0
  144. package/dist/cloud/db/index.d.ts +9 -4
  145. package/dist/cloud/db/index.js +11 -3
  146. package/dist/cloud/db/schema.d.ts +3283 -556
  147. package/dist/cloud/db/schema.js +314 -1
  148. package/dist/cloud/index.d.ts +1 -0
  149. package/dist/cloud/index.js +2 -0
  150. package/dist/cloud/provisioner/index.d.ts +56 -0
  151. package/dist/cloud/provisioner/index.js +676 -34
  152. package/dist/cloud/server.d.ts +1 -0
  153. package/dist/cloud/server.js +362 -13
  154. package/dist/cloud/services/auto-scaler.d.ts +152 -0
  155. package/dist/cloud/services/auto-scaler.js +439 -0
  156. package/dist/cloud/services/capacity-manager.d.ts +148 -0
  157. package/dist/cloud/services/capacity-manager.js +449 -0
  158. package/dist/cloud/services/ci-agent-spawner.d.ts +49 -0
  159. package/dist/cloud/services/ci-agent-spawner.js +373 -0
  160. package/dist/cloud/services/index.d.ts +12 -0
  161. package/dist/cloud/services/index.js +15 -0
  162. package/dist/cloud/services/mention-handler.d.ts +65 -0
  163. package/dist/cloud/services/mention-handler.js +405 -0
  164. package/dist/cloud/services/nango.d.ts +186 -0
  165. package/dist/cloud/services/nango.js +344 -0
  166. package/dist/cloud/services/persistence.d.ts +131 -0
  167. package/dist/cloud/services/persistence.js +200 -0
  168. package/dist/cloud/services/planLimits.d.ts +37 -0
  169. package/dist/cloud/services/planLimits.js +86 -5
  170. package/dist/cloud/services/scaling-orchestrator.d.ts +159 -0
  171. package/dist/cloud/services/scaling-orchestrator.js +502 -0
  172. package/dist/cloud/services/scaling-policy.d.ts +121 -0
  173. package/dist/cloud/services/scaling-policy.js +415 -0
  174. package/dist/cloud/vault/index.js +1 -1
  175. package/dist/cloud/webhooks/index.d.ts +24 -0
  176. package/dist/cloud/webhooks/index.js +29 -0
  177. package/dist/cloud/webhooks/parsers/github.d.ts +8 -0
  178. package/dist/cloud/webhooks/parsers/github.js +234 -0
  179. package/dist/cloud/webhooks/parsers/index.d.ts +23 -0
  180. package/dist/cloud/webhooks/parsers/index.js +30 -0
  181. package/dist/cloud/webhooks/parsers/linear.d.ts +9 -0
  182. package/dist/cloud/webhooks/parsers/linear.js +258 -0
  183. package/dist/cloud/webhooks/parsers/slack.d.ts +9 -0
  184. package/dist/cloud/webhooks/parsers/slack.js +214 -0
  185. package/dist/cloud/webhooks/responders/github.d.ts +8 -0
  186. package/dist/cloud/webhooks/responders/github.js +73 -0
  187. package/dist/cloud/webhooks/responders/index.d.ts +23 -0
  188. package/dist/cloud/webhooks/responders/index.js +30 -0
  189. package/dist/cloud/webhooks/responders/linear.d.ts +9 -0
  190. package/dist/cloud/webhooks/responders/linear.js +149 -0
  191. package/dist/cloud/webhooks/responders/slack.d.ts +20 -0
  192. package/dist/cloud/webhooks/responders/slack.js +178 -0
  193. package/dist/cloud/webhooks/router.d.ts +25 -0
  194. package/dist/cloud/webhooks/router.js +504 -0
  195. package/dist/cloud/webhooks/rules-engine.d.ts +24 -0
  196. package/dist/cloud/webhooks/rules-engine.js +287 -0
  197. package/dist/cloud/webhooks/types.d.ts +186 -0
  198. package/dist/cloud/webhooks/types.js +8 -0
  199. package/dist/continuity/formatter.d.ts +51 -0
  200. package/dist/continuity/formatter.js +313 -0
  201. package/dist/continuity/handoff-store.d.ts +67 -0
  202. package/dist/continuity/handoff-store.js +472 -0
  203. package/dist/continuity/index.d.ts +45 -0
  204. package/dist/continuity/index.js +48 -0
  205. package/dist/continuity/ledger-store.d.ts +110 -0
  206. package/dist/continuity/ledger-store.js +500 -0
  207. package/dist/continuity/manager.d.ts +178 -0
  208. package/dist/continuity/manager.js +562 -0
  209. package/dist/continuity/parser.d.ts +76 -0
  210. package/dist/continuity/parser.js +579 -0
  211. package/dist/continuity/types.d.ts +180 -0
  212. package/dist/continuity/types.js +9 -0
  213. package/dist/daemon/agent-manager.d.ts +27 -0
  214. package/dist/daemon/agent-manager.js +107 -6
  215. package/dist/daemon/agent-registry.d.ts +32 -0
  216. package/dist/daemon/agent-registry.js +42 -2
  217. package/dist/daemon/api.d.ts +12 -0
  218. package/dist/daemon/api.js +131 -2
  219. package/dist/daemon/cli-auth.d.ts +67 -0
  220. package/dist/daemon/cli-auth.js +537 -0
  221. package/dist/daemon/cloud-sync.js +9 -7
  222. package/dist/daemon/orchestrator.js +30 -0
  223. package/dist/daemon/router.d.ts +5 -0
  224. package/dist/daemon/router.js +78 -26
  225. package/dist/daemon/server.d.ts +5 -0
  226. package/dist/daemon/server.js +9 -1
  227. package/dist/daemon/services/browser-testing.d.ts +88 -0
  228. package/dist/daemon/services/browser-testing.js +244 -0
  229. package/dist/daemon/services/container-spawner.d.ts +135 -0
  230. package/dist/daemon/services/container-spawner.js +313 -0
  231. package/dist/daemon/types.d.ts +5 -1
  232. package/dist/dashboard/out/404.html +1 -1
  233. package/dist/dashboard/out/_next/static/chunks/116-2502180def231162.js +1 -0
  234. package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +1 -0
  235. package/dist/dashboard/out/_next/static/chunks/699-3b1cd6618a45d259.js +1 -0
  236. package/dist/dashboard/out/_next/static/chunks/724-2dae7627550ab88f.js +9 -0
  237. package/dist/dashboard/out/_next/static/chunks/766-1f2dd8cb7f766b0b.js +1 -0
  238. package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-3fdfa60e53f2810d.js +1 -0
  239. package/dist/dashboard/out/_next/static/chunks/app/app/page-e6381e5a6e1fbcfd.js +1 -0
  240. package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-3538dfe0ffe984b8.js +1 -0
  241. package/dist/dashboard/out/_next/static/chunks/app/history/{page-b6edd4dde8d08194.js → page-abb9ab2d329f56e9.js} +1 -1
  242. package/dist/dashboard/out/_next/static/chunks/app/layout-c0d118c0f92d969c.js +1 -0
  243. package/dist/dashboard/out/_next/static/chunks/app/login/page-c22d080201cbd9fb.js +1 -0
  244. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-67a3e98d9a43a6ed.js +1 -0
  245. package/dist/dashboard/out/_next/static/chunks/app/page-77e9c65420a06cfb.js +1 -0
  246. package/dist/dashboard/out/_next/static/chunks/app/pricing/page-b08ed1c34d14434a.js +1 -0
  247. package/dist/dashboard/out/_next/static/chunks/app/providers/page-e88bc117ef7671c3.js +1 -0
  248. package/dist/dashboard/out/_next/static/chunks/app/signup/page-68d34f50baa8ab6b.js +1 -0
  249. package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
  250. package/dist/dashboard/out/_next/static/chunks/{main-app-5d692157a8eb1fd9.js → main-app-6e8e8d3ef4e0192a.js} +1 -1
  251. package/dist/dashboard/out/_next/static/chunks/{main-c2f423b9c9f4591b.js → main-ed4e1fb6f29c34cf.js} +1 -1
  252. package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +1 -0
  253. package/dist/dashboard/out/_next/static/css/29852f26181969a0.css +1 -0
  254. package/dist/dashboard/out/_next/static/css/7c3ae9e8617d42a5.css +1 -0
  255. package/dist/dashboard/out/app/onboarding.html +1 -0
  256. package/dist/dashboard/out/app/onboarding.txt +7 -0
  257. package/dist/dashboard/out/app.html +1 -14
  258. package/dist/dashboard/out/app.txt +2 -2
  259. package/dist/dashboard/out/connect-repos.html +1 -0
  260. package/dist/dashboard/out/connect-repos.txt +7 -0
  261. package/dist/dashboard/out/history.html +1 -1
  262. package/dist/dashboard/out/history.txt +2 -2
  263. package/dist/dashboard/out/index.html +1 -1
  264. package/dist/dashboard/out/index.txt +2 -2
  265. package/dist/dashboard/out/login.html +6 -0
  266. package/dist/dashboard/out/login.txt +7 -0
  267. package/dist/dashboard/out/metrics.html +1 -1
  268. package/dist/dashboard/out/metrics.txt +2 -2
  269. package/dist/dashboard/out/pricing.html +3 -3
  270. package/dist/dashboard/out/pricing.txt +2 -2
  271. package/dist/dashboard/out/providers.html +1 -0
  272. package/dist/dashboard/out/providers.txt +7 -0
  273. package/dist/dashboard/out/signup.html +6 -0
  274. package/dist/dashboard/out/signup.txt +7 -0
  275. package/dist/dashboard-server/server.js +1308 -8
  276. package/dist/hooks/emitter.d.ts +40 -0
  277. package/dist/hooks/emitter.js +63 -0
  278. package/dist/hooks/index.d.ts +3 -0
  279. package/dist/hooks/index.js +3 -0
  280. package/dist/hooks/registry.d.ts +173 -0
  281. package/dist/hooks/registry.js +476 -0
  282. package/dist/hooks/trajectory-hooks.d.ts +52 -0
  283. package/dist/hooks/trajectory-hooks.js +183 -0
  284. package/dist/hooks/types.d.ts +141 -0
  285. package/dist/index.d.ts +2 -0
  286. package/dist/index.js +3 -0
  287. package/dist/memory/adapters/index.d.ts +8 -0
  288. package/dist/memory/adapters/index.js +8 -0
  289. package/dist/memory/adapters/inmemory.d.ts +59 -0
  290. package/dist/memory/adapters/inmemory.js +195 -0
  291. package/dist/memory/adapters/supermemory.d.ts +71 -0
  292. package/dist/memory/adapters/supermemory.js +338 -0
  293. package/dist/memory/factory.d.ts +48 -0
  294. package/dist/memory/factory.js +143 -0
  295. package/dist/memory/index.d.ts +32 -0
  296. package/dist/memory/index.js +32 -0
  297. package/dist/memory/memory-hooks.d.ts +60 -0
  298. package/dist/memory/memory-hooks.js +313 -0
  299. package/dist/memory/service.d.ts +49 -0
  300. package/dist/memory/service.js +146 -0
  301. package/dist/memory/types.d.ts +195 -0
  302. package/dist/memory/types.js +8 -0
  303. package/dist/policy/agent-policy.d.ts +225 -0
  304. package/dist/policy/agent-policy.js +665 -0
  305. package/dist/policy/cloud-policy-fetcher.d.ts +12 -0
  306. package/dist/policy/cloud-policy-fetcher.js +64 -0
  307. package/dist/resiliency/crash-insights.d.ts +156 -0
  308. package/dist/resiliency/crash-insights.js +492 -0
  309. package/dist/resiliency/gossip-health.d.ts +137 -0
  310. package/dist/resiliency/gossip-health.js +241 -0
  311. package/dist/resiliency/index.d.ts +5 -0
  312. package/dist/resiliency/index.js +5 -0
  313. package/dist/resiliency/leader-watchdog.d.ts +109 -0
  314. package/dist/resiliency/leader-watchdog.js +189 -0
  315. package/dist/resiliency/memory-monitor.d.ts +172 -0
  316. package/dist/resiliency/memory-monitor.js +593 -0
  317. package/dist/resiliency/stateless-lead.d.ts +149 -0
  318. package/dist/resiliency/stateless-lead.js +308 -0
  319. package/dist/resiliency/supervisor.d.ts +38 -0
  320. package/dist/resiliency/supervisor.js +122 -0
  321. package/dist/shared/cli-auth-config.d.ts +91 -0
  322. package/dist/shared/cli-auth-config.js +264 -0
  323. package/dist/storage/adapter.d.ts +1 -1
  324. package/dist/trajectory/config.d.ts +84 -0
  325. package/dist/trajectory/config.js +163 -0
  326. package/dist/trajectory/index.d.ts +8 -0
  327. package/dist/trajectory/index.js +8 -0
  328. package/dist/trajectory/integration.d.ts +292 -0
  329. package/dist/trajectory/integration.js +834 -0
  330. package/dist/utils/logger.js +1 -1
  331. package/dist/utils/project-namespace.d.ts +24 -0
  332. package/dist/utils/project-namespace.js +84 -0
  333. package/dist/wrapper/parser.d.ts +10 -0
  334. package/dist/wrapper/parser.js +100 -33
  335. package/dist/wrapper/pty-wrapper.d.ts +197 -16
  336. package/dist/wrapper/pty-wrapper.js +943 -106
  337. package/dist/wrapper/shared.d.ts +165 -0
  338. package/dist/wrapper/shared.js +270 -0
  339. package/dist/wrapper/tmux-wrapper.d.ts +73 -11
  340. package/dist/wrapper/tmux-wrapper.js +541 -120
  341. package/package.json +16 -16
  342. package/scripts/postinstall.js +60 -0
  343. package/test-push.txt +1 -0
  344. package/bin/tmux +0 -0
  345. package/dist/bridge/config.d.ts.map +0 -1
  346. package/dist/bridge/config.js.map +0 -1
  347. package/dist/bridge/index.d.ts.map +0 -1
  348. package/dist/bridge/index.js.map +0 -1
  349. package/dist/bridge/multi-project-client.d.ts.map +0 -1
  350. package/dist/bridge/multi-project-client.js.map +0 -1
  351. package/dist/bridge/shadow-cli.d.ts.map +0 -1
  352. package/dist/bridge/shadow-cli.js.map +0 -1
  353. package/dist/bridge/shadow-config.d.ts.map +0 -1
  354. package/dist/bridge/shadow-config.js.map +0 -1
  355. package/dist/bridge/spawner.d.ts.map +0 -1
  356. package/dist/bridge/spawner.js.map +0 -1
  357. package/dist/bridge/teams-config.d.ts.map +0 -1
  358. package/dist/bridge/teams-config.js.map +0 -1
  359. package/dist/bridge/types.d.ts.map +0 -1
  360. package/dist/bridge/types.js.map +0 -1
  361. package/dist/bridge/utils.d.ts.map +0 -1
  362. package/dist/bridge/utils.js.map +0 -1
  363. package/dist/cli/index.d.ts.map +0 -1
  364. package/dist/cli/index.js.map +0 -1
  365. package/dist/cloud/api/auth.d.ts.map +0 -1
  366. package/dist/cloud/api/auth.js.map +0 -1
  367. package/dist/cloud/api/billing.d.ts.map +0 -1
  368. package/dist/cloud/api/billing.js.map +0 -1
  369. package/dist/cloud/api/coordinators.d.ts.map +0 -1
  370. package/dist/cloud/api/coordinators.js.map +0 -1
  371. package/dist/cloud/api/daemons.d.ts.map +0 -1
  372. package/dist/cloud/api/daemons.js.map +0 -1
  373. package/dist/cloud/api/middleware/planLimits.d.ts.map +0 -1
  374. package/dist/cloud/api/middleware/planLimits.js.map +0 -1
  375. package/dist/cloud/api/onboarding.d.ts.map +0 -1
  376. package/dist/cloud/api/onboarding.js.map +0 -1
  377. package/dist/cloud/api/providers.d.ts.map +0 -1
  378. package/dist/cloud/api/providers.js.map +0 -1
  379. package/dist/cloud/api/repos.d.ts.map +0 -1
  380. package/dist/cloud/api/repos.js.map +0 -1
  381. package/dist/cloud/api/teams.d.ts.map +0 -1
  382. package/dist/cloud/api/teams.js.map +0 -1
  383. package/dist/cloud/api/usage.d.ts.map +0 -1
  384. package/dist/cloud/api/usage.js.map +0 -1
  385. package/dist/cloud/api/workspaces.d.ts.map +0 -1
  386. package/dist/cloud/api/workspaces.js.map +0 -1
  387. package/dist/cloud/billing/index.d.ts.map +0 -1
  388. package/dist/cloud/billing/index.js.map +0 -1
  389. package/dist/cloud/billing/plans.d.ts.map +0 -1
  390. package/dist/cloud/billing/plans.js.map +0 -1
  391. package/dist/cloud/billing/service.d.ts.map +0 -1
  392. package/dist/cloud/billing/service.js.map +0 -1
  393. package/dist/cloud/billing/types.d.ts.map +0 -1
  394. package/dist/cloud/billing/types.js.map +0 -1
  395. package/dist/cloud/config.d.ts.map +0 -1
  396. package/dist/cloud/config.js.map +0 -1
  397. package/dist/cloud/db/drizzle.d.ts.map +0 -1
  398. package/dist/cloud/db/drizzle.js.map +0 -1
  399. package/dist/cloud/db/index.d.ts.map +0 -1
  400. package/dist/cloud/db/index.js.map +0 -1
  401. package/dist/cloud/db/schema.d.ts.map +0 -1
  402. package/dist/cloud/db/schema.js.map +0 -1
  403. package/dist/cloud/index.d.ts.map +0 -1
  404. package/dist/cloud/index.js.map +0 -1
  405. package/dist/cloud/provisioner/index.d.ts.map +0 -1
  406. package/dist/cloud/provisioner/index.js.map +0 -1
  407. package/dist/cloud/server.d.ts.map +0 -1
  408. package/dist/cloud/server.js.map +0 -1
  409. package/dist/cloud/services/coordinator.d.ts.map +0 -1
  410. package/dist/cloud/services/coordinator.js.map +0 -1
  411. package/dist/cloud/services/planLimits.d.ts.map +0 -1
  412. package/dist/cloud/services/planLimits.js.map +0 -1
  413. package/dist/cloud/vault/index.d.ts.map +0 -1
  414. package/dist/cloud/vault/index.js.map +0 -1
  415. package/dist/daemon/agent-manager.d.ts.map +0 -1
  416. package/dist/daemon/agent-manager.js.map +0 -1
  417. package/dist/daemon/agent-registry.d.ts.map +0 -1
  418. package/dist/daemon/agent-registry.js.map +0 -1
  419. package/dist/daemon/api.d.ts.map +0 -1
  420. package/dist/daemon/api.js.map +0 -1
  421. package/dist/daemon/auth.d.ts.map +0 -1
  422. package/dist/daemon/auth.js.map +0 -1
  423. package/dist/daemon/cloud-sync.d.ts.map +0 -1
  424. package/dist/daemon/cloud-sync.js.map +0 -1
  425. package/dist/daemon/connection.d.ts.map +0 -1
  426. package/dist/daemon/connection.js.map +0 -1
  427. package/dist/daemon/index.d.ts.map +0 -1
  428. package/dist/daemon/index.js.map +0 -1
  429. package/dist/daemon/orchestrator.d.ts.map +0 -1
  430. package/dist/daemon/orchestrator.js.map +0 -1
  431. package/dist/daemon/registry.d.ts.map +0 -1
  432. package/dist/daemon/registry.js.map +0 -1
  433. package/dist/daemon/router.d.ts.map +0 -1
  434. package/dist/daemon/router.js.map +0 -1
  435. package/dist/daemon/server.d.ts.map +0 -1
  436. package/dist/daemon/server.js.map +0 -1
  437. package/dist/daemon/types.d.ts.map +0 -1
  438. package/dist/daemon/types.js.map +0 -1
  439. package/dist/daemon/workspace-manager.d.ts.map +0 -1
  440. package/dist/daemon/workspace-manager.js.map +0 -1
  441. package/dist/dashboard/out/_next/static/chunks/693-7b3301d8f6bc5014.js +0 -1
  442. package/dist/dashboard/out/_next/static/chunks/713-f78477eb185f1f4d.js +0 -1
  443. package/dist/dashboard/out/_next/static/chunks/766-e53e1cfe39b0b5b5.js +0 -1
  444. package/dist/dashboard/out/_next/static/chunks/900-037c64bfd797fb2a.js +0 -1
  445. package/dist/dashboard/out/_next/static/chunks/app/app/page-e3d9e1f4466b9bae.js +0 -1
  446. package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +0 -1
  447. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-e68825a81db67ba1.js +0 -1
  448. package/dist/dashboard/out/_next/static/chunks/app/page-cc108bf68c8a657f.js +0 -1
  449. package/dist/dashboard/out/_next/static/chunks/app/pricing/page-d80e03a5297f95b6.js +0 -1
  450. package/dist/dashboard/out/_next/static/chunks/webpack-a5acc2831d094776.js +0 -1
  451. package/dist/dashboard/out/_next/static/css/79b80143647a07d7.css +0 -1
  452. package/dist/dashboard/out/_next/static/css/8cf277370ad48cfe.css +0 -1
  453. package/dist/dashboard-server/metrics.d.ts.map +0 -1
  454. package/dist/dashboard-server/metrics.js.map +0 -1
  455. package/dist/dashboard-server/needs-attention.d.ts.map +0 -1
  456. package/dist/dashboard-server/needs-attention.js.map +0 -1
  457. package/dist/dashboard-server/server.d.ts.map +0 -1
  458. package/dist/dashboard-server/server.js.map +0 -1
  459. package/dist/dashboard-server/start.d.ts.map +0 -1
  460. package/dist/dashboard-server/start.js.map +0 -1
  461. package/dist/hooks/inbox-check/hook.d.ts.map +0 -1
  462. package/dist/hooks/inbox-check/hook.js.map +0 -1
  463. package/dist/hooks/inbox-check/index.d.ts.map +0 -1
  464. package/dist/hooks/inbox-check/index.js.map +0 -1
  465. package/dist/hooks/inbox-check/types.d.ts.map +0 -1
  466. package/dist/hooks/inbox-check/types.js.map +0 -1
  467. package/dist/hooks/inbox-check/utils.d.ts.map +0 -1
  468. package/dist/hooks/inbox-check/utils.js.map +0 -1
  469. package/dist/hooks/index.d.ts.map +0 -1
  470. package/dist/hooks/index.js.map +0 -1
  471. package/dist/hooks/types.d.ts.map +0 -1
  472. package/dist/hooks/types.js.map +0 -1
  473. package/dist/index.d.ts.map +0 -1
  474. package/dist/index.js.map +0 -1
  475. package/dist/protocol/framing.d.ts.map +0 -1
  476. package/dist/protocol/framing.js.map +0 -1
  477. package/dist/protocol/index.d.ts.map +0 -1
  478. package/dist/protocol/index.js.map +0 -1
  479. package/dist/protocol/types.d.ts.map +0 -1
  480. package/dist/protocol/types.js.map +0 -1
  481. package/dist/resiliency/context-persistence.d.ts.map +0 -1
  482. package/dist/resiliency/context-persistence.js.map +0 -1
  483. package/dist/resiliency/health-monitor.d.ts.map +0 -1
  484. package/dist/resiliency/health-monitor.js.map +0 -1
  485. package/dist/resiliency/index.d.ts.map +0 -1
  486. package/dist/resiliency/index.js.map +0 -1
  487. package/dist/resiliency/logger.d.ts.map +0 -1
  488. package/dist/resiliency/logger.js.map +0 -1
  489. package/dist/resiliency/metrics.d.ts.map +0 -1
  490. package/dist/resiliency/metrics.js.map +0 -1
  491. package/dist/resiliency/provider-context.d.ts.map +0 -1
  492. package/dist/resiliency/provider-context.js.map +0 -1
  493. package/dist/resiliency/supervisor.d.ts.map +0 -1
  494. package/dist/resiliency/supervisor.js.map +0 -1
  495. package/dist/state/agent-state.d.ts.map +0 -1
  496. package/dist/state/agent-state.js.map +0 -1
  497. package/dist/storage/adapter.d.ts.map +0 -1
  498. package/dist/storage/adapter.js.map +0 -1
  499. package/dist/storage/sqlite-adapter.d.ts.map +0 -1
  500. package/dist/storage/sqlite-adapter.js.map +0 -1
  501. package/dist/utils/agent-config.d.ts.map +0 -1
  502. package/dist/utils/agent-config.js.map +0 -1
  503. package/dist/utils/command-resolver.d.ts.map +0 -1
  504. package/dist/utils/command-resolver.js.map +0 -1
  505. package/dist/utils/index.d.ts.map +0 -1
  506. package/dist/utils/index.js.map +0 -1
  507. package/dist/utils/logger.d.ts.map +0 -1
  508. package/dist/utils/logger.js.map +0 -1
  509. package/dist/utils/name-generator.d.ts.map +0 -1
  510. package/dist/utils/name-generator.js.map +0 -1
  511. package/dist/utils/project-namespace.d.ts.map +0 -1
  512. package/dist/utils/project-namespace.js.map +0 -1
  513. package/dist/utils/tmux-resolver.d.ts.map +0 -1
  514. package/dist/utils/tmux-resolver.js.map +0 -1
  515. package/dist/utils/update-checker.d.ts.map +0 -1
  516. package/dist/utils/update-checker.js.map +0 -1
  517. package/dist/wrapper/client.d.ts.map +0 -1
  518. package/dist/wrapper/client.js.map +0 -1
  519. package/dist/wrapper/inbox.d.ts.map +0 -1
  520. package/dist/wrapper/inbox.js.map +0 -1
  521. package/dist/wrapper/index.d.ts.map +0 -1
  522. package/dist/wrapper/index.js.map +0 -1
  523. package/dist/wrapper/parser.d.ts.map +0 -1
  524. package/dist/wrapper/parser.js.map +0 -1
  525. package/dist/wrapper/pty-wrapper.d.ts.map +0 -1
  526. package/dist/wrapper/pty-wrapper.js.map +0 -1
  527. package/dist/wrapper/tmux-wrapper.d.ts.map +0 -1
  528. package/dist/wrapper/tmux-wrapper.js.map +0 -1
  529. package/docs/AGENTS.md +0 -513
  530. package/docs/ARCHITECTURE_DECISIONS.md +0 -175
  531. package/docs/CHANGELOG.md +0 -11
  532. package/docs/CLI-SIMPLIFICATION-COMPLETE.md +0 -48
  533. package/docs/CLOUD-ARCHITECTURE.md +0 -652
  534. package/docs/CLOUD-ONBOARDING-DESIGN.md +0 -1983
  535. package/docs/COMPETITIVE_ANALYSIS.md +0 -897
  536. package/docs/CONTRIBUTING.md +0 -151
  537. package/docs/DESIGN_BRIDGE_STAFFING.md +0 -878
  538. package/docs/DESIGN_V2.md +0 -1079
  539. package/docs/INTEGRATION-GUIDE.md +0 -926
  540. package/docs/MONETIZATION.md +0 -1679
  541. package/docs/PROPOSAL-trajectories.md +0 -1582
  542. package/docs/PROTOCOL.md +0 -325
  543. package/docs/SCALING_ANALYSIS.md +0 -280
  544. package/docs/TESTING_PRESENCE_FEATURES.md +0 -327
  545. package/docs/TMUX_IMPLEMENTATION_NOTES.md +0 -364
  546. package/docs/TMUX_IMPROVEMENTS.md +0 -968
  547. package/docs/agent-relay-snippet.md +0 -168
  548. package/docs/competitive-analysis-mcp-agent-mail.md +0 -389
  549. package/docs/dashboard-v2-plan.md +0 -179
  550. package/docs/guides/CLOUD.md +0 -236
  551. package/docs/guides/LOCAL.md +0 -535
  552. package/docs/guides/SELF-HOSTED.md +0 -494
  553. package/docs/proposals/shadow-as-subagent.md +0 -765
  554. package/docs/proposals/slack-bot-integration.md +0 -1457
  555. package/docs/removable-code-analysis.md +0 -24
  556. package/scripts/dev/PUBLIC_RELEASE_PLAN.md +0 -88
  557. package/scripts/dev/dev-team-setup.sh +0 -431
  558. package/scripts/e2e-test.sh +0 -119
  559. package/scripts/games/game-protocol.md +0 -79
  560. package/scripts/games/hearts-setup.sh +0 -264
  561. package/scripts/tictactoe-setup.sh +0 -181
  562. /package/dist/dashboard/out/_next/static/chunks/{117-b2cd8d6485aacf2b.js → 117-f7b8ab0809342e77.js} +0 -0
  563. /package/dist/dashboard/out/_next/static/chunks/{648-8f3f26864ce515e5.js → 648-5cc6e1921389a58a.js} +0 -0
  564. /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-0b990dbb71d72a98.js → page-53b8a69f76db17d0.js} +0 -0
  565. /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-bf46c09eb57e019c.js → fd9d1056-609918ca7b6280bb.js} +0 -0
  566. /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → wPgKJtcOmTFLpUncDg16A}/_buildManifest.js +0 -0
  567. /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → wPgKJtcOmTFLpUncDg16A}/_ssgManifest.js +0 -0
@@ -140,4 +140,145 @@ export interface HookConfig {
140
140
  * Handler function signature for programmatic hooks
141
141
  */
142
142
  export type HookHandler = (context: HookContext) => HookResult | Promise<HookResult>;
143
+ /**
144
+ * Extended context for session start hooks
145
+ */
146
+ export interface SessionStartContext extends HookContext {
147
+ /** Task description if agent was started with a task */
148
+ task?: string;
149
+ /** Task ID if linked to external system */
150
+ taskId?: string;
151
+ /** Task source (e.g., 'beads', 'linear', 'github') */
152
+ taskSource?: string;
153
+ }
154
+ /**
155
+ * Extended context for session end hooks
156
+ */
157
+ export interface SessionEndContext extends HookContext {
158
+ /** Exit code if available */
159
+ exitCode?: number;
160
+ /** Duration of the session in milliseconds */
161
+ duration: number;
162
+ /** Whether the session ended gracefully */
163
+ graceful: boolean;
164
+ }
165
+ /**
166
+ * Extended context for output hooks
167
+ */
168
+ export interface OutputContext extends HookContext {
169
+ /** Cleaned output (ANSI codes stripped) */
170
+ content: string;
171
+ /** Raw output with ANSI codes */
172
+ rawContent: string;
173
+ /** Whether this is a complete line */
174
+ isComplete: boolean;
175
+ }
176
+ /**
177
+ * Extended context for message received hooks
178
+ */
179
+ export interface MessageReceivedContext extends HookContext {
180
+ /** Sender agent name */
181
+ from: string;
182
+ /** Message body */
183
+ body: string;
184
+ /** Message ID */
185
+ messageId: string;
186
+ /** Thread ID if threaded */
187
+ thread?: string;
188
+ }
189
+ /**
190
+ * Extended context for message sent hooks
191
+ */
192
+ export interface MessageSentContext extends HookContext {
193
+ /** Target agent name */
194
+ to: string;
195
+ /** Message body */
196
+ body: string;
197
+ /** Thread ID if threaded */
198
+ thread?: string;
199
+ }
200
+ /**
201
+ * Extended context for idle hooks
202
+ */
203
+ export interface IdleContext extends HookContext {
204
+ /** Duration of inactivity in milliseconds */
205
+ idleDuration: number;
206
+ /** Number of times idle hook has fired this session */
207
+ idleCount: number;
208
+ }
209
+ /**
210
+ * Extended context for error hooks
211
+ */
212
+ export interface ErrorContext extends HookContext {
213
+ /** The error that occurred */
214
+ error: Error;
215
+ /** Phase where error occurred (e.g., 'output', 'message', 'tool') */
216
+ phase?: string;
217
+ }
218
+ /**
219
+ * Lifecycle hook handler types
220
+ */
221
+ export type OnSessionStartHook = (ctx: SessionStartContext) => Promise<HookResult | void> | HookResult | void;
222
+ export type OnSessionEndHook = (ctx: SessionEndContext) => Promise<HookResult | void> | HookResult | void;
223
+ export type OnOutputHook = (ctx: OutputContext) => Promise<HookResult | void> | HookResult | void;
224
+ export type OnMessageReceivedHook = (ctx: MessageReceivedContext) => Promise<HookResult | void> | HookResult | void;
225
+ export type OnMessageSentHook = (ctx: MessageSentContext) => Promise<HookResult | void> | HookResult | void;
226
+ export type OnIdleHook = (ctx: IdleContext) => Promise<HookResult | void> | HookResult | void;
227
+ export type OnErrorHook = (ctx: ErrorContext) => Promise<HookResult | void> | HookResult | void;
228
+ /**
229
+ * Lifecycle hook definitions for registration
230
+ */
231
+ export interface LifecycleHooks {
232
+ onSessionStart?: OnSessionStartHook | OnSessionStartHook[];
233
+ onSessionEnd?: OnSessionEndHook | OnSessionEndHook[];
234
+ onOutput?: OnOutputHook | OnOutputHook[];
235
+ onMessageReceived?: OnMessageReceivedHook | OnMessageReceivedHook[];
236
+ onMessageSent?: OnMessageSentHook | OnMessageSentHook[];
237
+ onIdle?: OnIdleHook | OnIdleHook[];
238
+ onError?: OnErrorHook | OnErrorHook[];
239
+ }
240
+ /**
241
+ * Lifecycle hook event names
242
+ */
243
+ export type LifecycleHookEvent = 'sessionStart' | 'sessionEnd' | 'output' | 'messageReceived' | 'messageSent' | 'idle' | 'error';
244
+ /**
245
+ * Pattern handler for custom namespaces (e.g., @deploy:, @notify:)
246
+ */
247
+ export type PatternHandler = (target: string, message: string, ctx: HookContext) => Promise<HookResult | void> | HookResult | void;
248
+ /**
249
+ * Memory configuration for hooks
250
+ */
251
+ export interface HooksMemoryConfig {
252
+ /** Memory adapter type: 'inmemory', 'supermemory', etc. */
253
+ type?: string;
254
+ /** API key for external memory services */
255
+ apiKey?: string;
256
+ /** Custom API endpoint */
257
+ endpoint?: string;
258
+ /** Whether to inject memories on session start */
259
+ injectOnStart?: boolean;
260
+ /** Maximum memories to inject on start */
261
+ maxStartMemories?: number;
262
+ /** Whether to prompt for memory save on session end */
263
+ promptOnEnd?: boolean;
264
+ /** Whether to auto-save detected learnings (default: true) */
265
+ autoSave?: boolean;
266
+ /** Whether to track learnings for session-end summary (default: true) */
267
+ autoSaveOnEnd?: boolean;
268
+ }
269
+ /**
270
+ * Full hooks configuration
271
+ */
272
+ export interface HooksConfig {
273
+ /** Lifecycle hooks */
274
+ hooks?: LifecycleHooks;
275
+ /** Pattern handlers by namespace */
276
+ patterns?: Record<string, PatternHandler | 'builtin'>;
277
+ /** Idle timeout in milliseconds (default: 30000) */
278
+ idleTimeout?: number;
279
+ /** Whether to enable trajectory tracking hooks */
280
+ trajectoryTracking?: boolean;
281
+ /** Memory system configuration */
282
+ memory?: HooksMemoryConfig | boolean;
283
+ }
143
284
  //# sourceMappingURL=types.d.ts.map
package/dist/index.d.ts CHANGED
@@ -6,5 +6,7 @@ export * from './protocol/index.js';
6
6
  export * from './daemon/index.js';
7
7
  export * from './wrapper/index.js';
8
8
  export * from './utils/index.js';
9
+ export * from './hooks/index.js';
9
10
  export { type StoredMessage, type MessageQuery, type StorageAdapter, type StorageConfig, } from './storage/adapter.js';
11
+ export { type MemoryAdapter, type MemoryEntry, type MemoryConfig, type MemoryService, type MemorySearchQuery, type AddMemoryOptions, type MemoryResult, createMemoryAdapter, createMemoryService, createMemoryHooks, getMemoryHooks, InMemoryAdapter, SupermemoryAdapter, } from './memory/index.js';
10
12
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -6,4 +6,7 @@ export * from './protocol/index.js';
6
6
  export * from './daemon/index.js';
7
7
  export * from './wrapper/index.js';
8
8
  export * from './utils/index.js';
9
+ export * from './hooks/index.js';
10
+ // Memory types and adapters for external consumers
11
+ export { createMemoryAdapter, createMemoryService, createMemoryHooks, getMemoryHooks, InMemoryAdapter, SupermemoryAdapter, } from './memory/index.js';
9
12
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Memory Adapters
3
+ *
4
+ * Export all available memory adapter implementations.
5
+ */
6
+ export { InMemoryAdapter, type InMemoryAdapterOptions } from './inmemory.js';
7
+ export { SupermemoryAdapter, type SupermemoryAdapterOptions } from './supermemory.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Memory Adapters
3
+ *
4
+ * Export all available memory adapter implementations.
5
+ */
6
+ export { InMemoryAdapter } from './inmemory.js';
7
+ export { SupermemoryAdapter } from './supermemory.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,59 @@
1
+ /**
2
+ * In-Memory Memory Adapter
3
+ *
4
+ * A simple in-memory implementation of the MemoryAdapter interface.
5
+ * Useful for testing and development. Does not persist across restarts.
6
+ *
7
+ * For semantic search, this adapter uses simple keyword matching.
8
+ * For production use with semantic search, use SupermemoryAdapter or similar.
9
+ */
10
+ import type { MemoryAdapter, MemoryEntry, MemorySearchQuery, AddMemoryOptions, MemoryResult } from '../types.js';
11
+ /**
12
+ * Options for the InMemoryAdapter
13
+ */
14
+ export interface InMemoryAdapterOptions {
15
+ /** Maximum number of memories to store (default: 1000) */
16
+ maxMemories?: number;
17
+ /** Default agent ID */
18
+ defaultAgentId?: string;
19
+ /** Default project ID */
20
+ defaultProjectId?: string;
21
+ }
22
+ /**
23
+ * In-memory storage adapter for memories
24
+ */
25
+ export declare class InMemoryAdapter implements MemoryAdapter {
26
+ readonly type = "inmemory";
27
+ private memories;
28
+ private maxMemories;
29
+ private defaultAgentId?;
30
+ private defaultProjectId?;
31
+ constructor(options?: InMemoryAdapterOptions);
32
+ init(): Promise<void>;
33
+ add(content: string, options?: AddMemoryOptions): Promise<MemoryResult>;
34
+ search(query: MemorySearchQuery): Promise<MemoryEntry[]>;
35
+ get(id: string): Promise<MemoryEntry | null>;
36
+ delete(id: string): Promise<MemoryResult>;
37
+ update(id: string, content: string, options?: Partial<AddMemoryOptions>): Promise<MemoryResult>;
38
+ list(options?: {
39
+ limit?: number;
40
+ agentId?: string;
41
+ projectId?: string;
42
+ }): Promise<MemoryEntry[]>;
43
+ clear(options?: {
44
+ agentId?: string;
45
+ projectId?: string;
46
+ before?: number;
47
+ }): Promise<MemoryResult>;
48
+ stats(): Promise<{
49
+ totalCount: number;
50
+ byAgent?: Record<string, number>;
51
+ byProject?: Record<string, number>;
52
+ }>;
53
+ close(): Promise<void>;
54
+ /**
55
+ * Remove oldest memories when over limit
56
+ */
57
+ private pruneOldest;
58
+ }
59
+ //# sourceMappingURL=inmemory.d.ts.map
@@ -0,0 +1,195 @@
1
+ /**
2
+ * In-Memory Memory Adapter
3
+ *
4
+ * A simple in-memory implementation of the MemoryAdapter interface.
5
+ * Useful for testing and development. Does not persist across restarts.
6
+ *
7
+ * For semantic search, this adapter uses simple keyword matching.
8
+ * For production use with semantic search, use SupermemoryAdapter or similar.
9
+ */
10
+ import { randomUUID } from 'node:crypto';
11
+ /**
12
+ * In-memory storage adapter for memories
13
+ */
14
+ export class InMemoryAdapter {
15
+ type = 'inmemory';
16
+ memories = new Map();
17
+ maxMemories;
18
+ defaultAgentId;
19
+ defaultProjectId;
20
+ constructor(options = {}) {
21
+ this.maxMemories = options.maxMemories ?? 1000;
22
+ this.defaultAgentId = options.defaultAgentId;
23
+ this.defaultProjectId = options.defaultProjectId;
24
+ }
25
+ async init() {
26
+ // No initialization needed for in-memory storage
27
+ }
28
+ async add(content, options) {
29
+ const id = randomUUID();
30
+ const now = Date.now();
31
+ const entry = {
32
+ id,
33
+ content,
34
+ createdAt: now,
35
+ lastAccessedAt: now,
36
+ tags: options?.tags,
37
+ source: options?.source ?? 'agent',
38
+ agentId: options?.agentId ?? this.defaultAgentId,
39
+ projectId: options?.projectId ?? this.defaultProjectId,
40
+ sessionId: options?.sessionId,
41
+ metadata: options?.metadata,
42
+ };
43
+ this.memories.set(id, entry);
44
+ // Prune if over limit
45
+ if (this.memories.size > this.maxMemories) {
46
+ this.pruneOldest();
47
+ }
48
+ return { success: true, id };
49
+ }
50
+ async search(query) {
51
+ const results = [];
52
+ const queryLower = query.query.toLowerCase();
53
+ const queryTerms = queryLower.split(/\s+/).filter(t => t.length > 2);
54
+ for (const entry of this.memories.values()) {
55
+ // Apply filters
56
+ if (query.agentId && entry.agentId !== query.agentId)
57
+ continue;
58
+ if (query.projectId && entry.projectId !== query.projectId)
59
+ continue;
60
+ if (query.since && entry.createdAt < query.since)
61
+ continue;
62
+ if (query.before && entry.createdAt > query.before)
63
+ continue;
64
+ if (query.tags && query.tags.length > 0) {
65
+ if (!entry.tags || !query.tags.some(t => entry.tags.includes(t))) {
66
+ continue;
67
+ }
68
+ }
69
+ // Simple keyword-based scoring
70
+ const contentLower = entry.content.toLowerCase();
71
+ let score = 0;
72
+ // Exact phrase match gets highest score
73
+ if (contentLower.includes(queryLower)) {
74
+ score += 0.5;
75
+ }
76
+ // Term frequency scoring
77
+ for (const term of queryTerms) {
78
+ const matches = (contentLower.match(new RegExp(term, 'gi')) || []).length;
79
+ score += matches * 0.1;
80
+ }
81
+ // Normalize score to 0-1 range
82
+ score = Math.min(1, score);
83
+ if (score > 0 && (!query.minScore || score >= query.minScore)) {
84
+ // Update last accessed time
85
+ entry.lastAccessedAt = Date.now();
86
+ results.push({ ...entry, score });
87
+ }
88
+ }
89
+ // Sort by score descending
90
+ results.sort((a, b) => b.score - a.score);
91
+ // Apply limit
92
+ const limit = query.limit ?? 10;
93
+ return results.slice(0, limit);
94
+ }
95
+ async get(id) {
96
+ const entry = this.memories.get(id);
97
+ if (entry) {
98
+ entry.lastAccessedAt = Date.now();
99
+ return { ...entry };
100
+ }
101
+ return null;
102
+ }
103
+ async delete(id) {
104
+ const deleted = this.memories.delete(id);
105
+ return {
106
+ success: deleted,
107
+ id,
108
+ error: deleted ? undefined : 'Memory not found',
109
+ };
110
+ }
111
+ async update(id, content, options) {
112
+ const existing = this.memories.get(id);
113
+ if (!existing) {
114
+ return { success: false, error: 'Memory not found' };
115
+ }
116
+ const updated = {
117
+ ...existing,
118
+ content,
119
+ lastAccessedAt: Date.now(),
120
+ ...(options?.tags && { tags: options.tags }),
121
+ ...(options?.metadata && { metadata: { ...existing.metadata, ...options.metadata } }),
122
+ };
123
+ this.memories.set(id, updated);
124
+ return { success: true, id };
125
+ }
126
+ async list(options) {
127
+ const results = [];
128
+ for (const entry of this.memories.values()) {
129
+ if (options?.agentId && entry.agentId !== options.agentId)
130
+ continue;
131
+ if (options?.projectId && entry.projectId !== options.projectId)
132
+ continue;
133
+ results.push({ ...entry });
134
+ }
135
+ // Sort by creation time descending
136
+ results.sort((a, b) => b.createdAt - a.createdAt);
137
+ const limit = options?.limit ?? 50;
138
+ return results.slice(0, limit);
139
+ }
140
+ async clear(options) {
141
+ let _count = 0;
142
+ const toDelete = [];
143
+ for (const [id, entry] of this.memories.entries()) {
144
+ let shouldDelete = true;
145
+ if (options?.agentId && entry.agentId !== options.agentId) {
146
+ shouldDelete = false;
147
+ }
148
+ if (options?.projectId && entry.projectId !== options.projectId) {
149
+ shouldDelete = false;
150
+ }
151
+ if (options?.before && entry.createdAt >= options.before) {
152
+ shouldDelete = false;
153
+ }
154
+ if (shouldDelete) {
155
+ toDelete.push(id);
156
+ }
157
+ }
158
+ for (const id of toDelete) {
159
+ this.memories.delete(id);
160
+ _count++;
161
+ }
162
+ return { success: true };
163
+ }
164
+ async stats() {
165
+ const byAgent = {};
166
+ const byProject = {};
167
+ for (const entry of this.memories.values()) {
168
+ if (entry.agentId) {
169
+ byAgent[entry.agentId] = (byAgent[entry.agentId] ?? 0) + 1;
170
+ }
171
+ if (entry.projectId) {
172
+ byProject[entry.projectId] = (byProject[entry.projectId] ?? 0) + 1;
173
+ }
174
+ }
175
+ return {
176
+ totalCount: this.memories.size,
177
+ byAgent,
178
+ byProject,
179
+ };
180
+ }
181
+ async close() {
182
+ this.memories.clear();
183
+ }
184
+ /**
185
+ * Remove oldest memories when over limit
186
+ */
187
+ pruneOldest() {
188
+ const sorted = Array.from(this.memories.entries()).sort(([, a], [, b]) => a.createdAt - b.createdAt);
189
+ const toRemove = sorted.slice(0, this.memories.size - this.maxMemories);
190
+ for (const [id] of toRemove) {
191
+ this.memories.delete(id);
192
+ }
193
+ }
194
+ }
195
+ //# sourceMappingURL=inmemory.js.map
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Supermemory.ai Memory Adapter
3
+ *
4
+ * Integration with supermemory.ai for semantic memory storage and retrieval.
5
+ * Provides AI-optimized search with embedding-based similarity.
6
+ *
7
+ * @see https://supermemory.ai/docs
8
+ */
9
+ import type { MemoryAdapter, MemoryEntry, MemorySearchQuery, AddMemoryOptions, MemoryResult } from '../types.js';
10
+ /**
11
+ * Options for the Supermemory adapter
12
+ */
13
+ export interface SupermemoryAdapterOptions {
14
+ /** API key for supermemory.ai (required) */
15
+ apiKey: string;
16
+ /** API endpoint (default: https://api.supermemory.ai) */
17
+ endpoint?: string;
18
+ /** Container/namespace for memories (optional) */
19
+ container?: string;
20
+ /** Default agent ID */
21
+ defaultAgentId?: string;
22
+ /** Default project ID */
23
+ defaultProjectId?: string;
24
+ /** Request timeout in ms (default: 30000) */
25
+ timeout?: number;
26
+ }
27
+ /**
28
+ * Supermemory.ai adapter for semantic memory storage
29
+ */
30
+ export declare class SupermemoryAdapter implements MemoryAdapter {
31
+ readonly type = "supermemory";
32
+ private apiKey;
33
+ private endpoint;
34
+ private container?;
35
+ private defaultAgentId?;
36
+ private defaultProjectId?;
37
+ private timeout;
38
+ private initialized;
39
+ constructor(options: SupermemoryAdapterOptions);
40
+ init(): Promise<void>;
41
+ add(content: string, options?: AddMemoryOptions): Promise<MemoryResult>;
42
+ search(query: MemorySearchQuery): Promise<MemoryEntry[]>;
43
+ get(id: string): Promise<MemoryEntry | null>;
44
+ delete(id: string): Promise<MemoryResult>;
45
+ update(id: string, content: string, options?: Partial<AddMemoryOptions>): Promise<MemoryResult>;
46
+ list(options?: {
47
+ limit?: number;
48
+ agentId?: string;
49
+ projectId?: string;
50
+ }): Promise<MemoryEntry[]>;
51
+ clear(options?: {
52
+ agentId?: string;
53
+ projectId?: string;
54
+ before?: number;
55
+ }): Promise<MemoryResult>;
56
+ stats(): Promise<{
57
+ totalCount: number;
58
+ byAgent?: Record<string, number>;
59
+ byProject?: Record<string, number>;
60
+ }>;
61
+ close(): Promise<void>;
62
+ /**
63
+ * Make a fetch request to the Supermemory API
64
+ */
65
+ private fetch;
66
+ /**
67
+ * Convert a Supermemory document to a MemoryEntry
68
+ */
69
+ private documentToMemoryEntry;
70
+ }
71
+ //# sourceMappingURL=supermemory.d.ts.map