agent-relay 1.0.22 → 1.2.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 (613) hide show
  1. package/README.md +1 -1
  2. package/dist/bridge/shadow-cli.d.ts +17 -0
  3. package/dist/bridge/shadow-cli.d.ts.map +1 -0
  4. package/dist/bridge/shadow-cli.js +75 -0
  5. package/dist/bridge/shadow-cli.js.map +1 -0
  6. package/dist/bridge/shadow-config.d.ts +87 -0
  7. package/dist/bridge/shadow-config.d.ts.map +1 -0
  8. package/dist/bridge/shadow-config.js +134 -0
  9. package/dist/bridge/shadow-config.js.map +1 -0
  10. package/dist/bridge/spawner.d.ts +68 -1
  11. package/dist/bridge/spawner.d.ts.map +1 -1
  12. package/dist/bridge/spawner.js +360 -16
  13. package/dist/bridge/spawner.js.map +1 -1
  14. package/dist/bridge/types.d.ts +67 -0
  15. package/dist/bridge/types.d.ts.map +1 -1
  16. package/dist/cli/index.js +1196 -15
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/cloud/api/auth.d.ts +20 -0
  19. package/dist/cloud/api/auth.d.ts.map +1 -0
  20. package/dist/cloud/api/auth.js +128 -0
  21. package/dist/cloud/api/auth.js.map +1 -0
  22. package/dist/cloud/api/billing.d.ts +17 -0
  23. package/dist/cloud/api/billing.d.ts.map +1 -0
  24. package/dist/cloud/api/billing.js +353 -0
  25. package/dist/cloud/api/billing.js.map +1 -0
  26. package/dist/cloud/api/cli-pty-runner.d.ts +54 -0
  27. package/dist/cloud/api/cli-pty-runner.d.ts.map +1 -0
  28. package/dist/cloud/api/cli-pty-runner.js +119 -0
  29. package/dist/cloud/api/cli-pty-runner.js.map +1 -0
  30. package/dist/cloud/api/coordinators.d.ts +8 -0
  31. package/dist/cloud/api/coordinators.d.ts.map +1 -0
  32. package/dist/cloud/api/coordinators.js +347 -0
  33. package/dist/cloud/api/coordinators.js.map +1 -0
  34. package/dist/cloud/api/daemons.d.ts +12 -0
  35. package/dist/cloud/api/daemons.d.ts.map +1 -0
  36. package/dist/cloud/api/daemons.js +320 -0
  37. package/dist/cloud/api/daemons.js.map +1 -0
  38. package/dist/cloud/api/generic-webhooks.d.ts +8 -0
  39. package/dist/cloud/api/generic-webhooks.d.ts.map +1 -0
  40. package/dist/cloud/api/generic-webhooks.js +129 -0
  41. package/dist/cloud/api/generic-webhooks.js.map +1 -0
  42. package/dist/cloud/api/git.d.ts +8 -0
  43. package/dist/cloud/api/git.d.ts.map +1 -0
  44. package/dist/cloud/api/git.js +131 -0
  45. package/dist/cloud/api/git.js.map +1 -0
  46. package/dist/cloud/api/github-app.d.ts +11 -0
  47. package/dist/cloud/api/github-app.d.ts.map +1 -0
  48. package/dist/cloud/api/github-app.js +189 -0
  49. package/dist/cloud/api/github-app.js.map +1 -0
  50. package/dist/cloud/api/middleware/planLimits.d.ts +43 -0
  51. package/dist/cloud/api/middleware/planLimits.d.ts.map +1 -0
  52. package/dist/cloud/api/middleware/planLimits.js +202 -0
  53. package/dist/cloud/api/middleware/planLimits.js.map +1 -0
  54. package/dist/cloud/api/monitoring.d.ts +11 -0
  55. package/dist/cloud/api/monitoring.d.ts.map +1 -0
  56. package/dist/cloud/api/monitoring.js +578 -0
  57. package/dist/cloud/api/monitoring.js.map +1 -0
  58. package/dist/cloud/api/nango-auth.d.ts +9 -0
  59. package/dist/cloud/api/nango-auth.d.ts.map +1 -0
  60. package/dist/cloud/api/nango-auth.js +377 -0
  61. package/dist/cloud/api/nango-auth.js.map +1 -0
  62. package/dist/cloud/api/onboarding.d.ts +15 -0
  63. package/dist/cloud/api/onboarding.d.ts.map +1 -0
  64. package/dist/cloud/api/onboarding.js +588 -0
  65. package/dist/cloud/api/onboarding.js.map +1 -0
  66. package/dist/cloud/api/policy.d.ts +8 -0
  67. package/dist/cloud/api/policy.d.ts.map +1 -0
  68. package/dist/cloud/api/policy.js +229 -0
  69. package/dist/cloud/api/policy.js.map +1 -0
  70. package/dist/cloud/api/providers.d.ts +7 -0
  71. package/dist/cloud/api/providers.d.ts.map +1 -0
  72. package/dist/cloud/api/providers.js +507 -0
  73. package/dist/cloud/api/providers.js.map +1 -0
  74. package/dist/cloud/api/repos.d.ts +7 -0
  75. package/dist/cloud/api/repos.d.ts.map +1 -0
  76. package/dist/cloud/api/repos.js +314 -0
  77. package/dist/cloud/api/repos.js.map +1 -0
  78. package/dist/cloud/api/teams.d.ts +7 -0
  79. package/dist/cloud/api/teams.d.ts.map +1 -0
  80. package/dist/cloud/api/teams.js +279 -0
  81. package/dist/cloud/api/teams.js.map +1 -0
  82. package/dist/cloud/api/test-helpers.d.ts +10 -0
  83. package/dist/cloud/api/test-helpers.d.ts.map +1 -0
  84. package/dist/cloud/api/test-helpers.js +575 -0
  85. package/dist/cloud/api/test-helpers.js.map +1 -0
  86. package/dist/cloud/api/usage.d.ts +7 -0
  87. package/dist/cloud/api/usage.d.ts.map +1 -0
  88. package/dist/cloud/api/usage.js +98 -0
  89. package/dist/cloud/api/usage.js.map +1 -0
  90. package/dist/cloud/api/webhooks.d.ts +7 -0
  91. package/dist/cloud/api/webhooks.d.ts.map +1 -0
  92. package/dist/cloud/api/webhooks.js +496 -0
  93. package/dist/cloud/api/webhooks.js.map +1 -0
  94. package/dist/cloud/api/workspaces.d.ts +7 -0
  95. package/dist/cloud/api/workspaces.d.ts.map +1 -0
  96. package/dist/cloud/api/workspaces.js +727 -0
  97. package/dist/cloud/api/workspaces.js.map +1 -0
  98. package/dist/cloud/billing/index.d.ts +9 -0
  99. package/dist/cloud/billing/index.d.ts.map +1 -0
  100. package/dist/cloud/billing/index.js +9 -0
  101. package/dist/cloud/billing/index.js.map +1 -0
  102. package/dist/cloud/billing/plans.d.ts +39 -0
  103. package/dist/cloud/billing/plans.d.ts.map +1 -0
  104. package/dist/cloud/billing/plans.js +245 -0
  105. package/dist/cloud/billing/plans.js.map +1 -0
  106. package/dist/cloud/billing/service.d.ts +80 -0
  107. package/dist/cloud/billing/service.d.ts.map +1 -0
  108. package/dist/cloud/billing/service.js +388 -0
  109. package/dist/cloud/billing/service.js.map +1 -0
  110. package/dist/cloud/billing/types.d.ts +141 -0
  111. package/dist/cloud/billing/types.d.ts.map +1 -0
  112. package/dist/cloud/billing/types.js +7 -0
  113. package/dist/cloud/billing/types.js.map +1 -0
  114. package/dist/cloud/config.d.ts +66 -0
  115. package/dist/cloud/config.d.ts.map +1 -0
  116. package/dist/cloud/config.js +92 -0
  117. package/dist/cloud/config.js.map +1 -0
  118. package/dist/cloud/db/drizzle.d.ts +215 -0
  119. package/dist/cloud/db/drizzle.d.ts.map +1 -0
  120. package/dist/cloud/db/drizzle.js +1083 -0
  121. package/dist/cloud/db/drizzle.js.map +1 -0
  122. package/dist/cloud/db/index.d.ts +35 -0
  123. package/dist/cloud/db/index.d.ts.map +1 -0
  124. package/dist/cloud/db/index.js +52 -0
  125. package/dist/cloud/db/index.js.map +1 -0
  126. package/dist/cloud/db/schema.d.ts +4519 -0
  127. package/dist/cloud/db/schema.d.ts.map +1 -0
  128. package/dist/cloud/db/schema.js +547 -0
  129. package/dist/cloud/db/schema.js.map +1 -0
  130. package/dist/cloud/index.d.ts +12 -0
  131. package/dist/cloud/index.d.ts.map +1 -0
  132. package/dist/cloud/index.js +39 -0
  133. package/dist/cloud/index.js.map +1 -0
  134. package/dist/cloud/provisioner/index.d.ts +75 -0
  135. package/dist/cloud/provisioner/index.d.ts.map +1 -0
  136. package/dist/cloud/provisioner/index.js +977 -0
  137. package/dist/cloud/provisioner/index.js.map +1 -0
  138. package/dist/cloud/server.d.ts +17 -0
  139. package/dist/cloud/server.d.ts.map +1 -0
  140. package/dist/cloud/server.js +534 -0
  141. package/dist/cloud/server.js.map +1 -0
  142. package/dist/cloud/services/auto-scaler.d.ts +152 -0
  143. package/dist/cloud/services/auto-scaler.d.ts.map +1 -0
  144. package/dist/cloud/services/auto-scaler.js +439 -0
  145. package/dist/cloud/services/auto-scaler.js.map +1 -0
  146. package/dist/cloud/services/capacity-manager.d.ts +148 -0
  147. package/dist/cloud/services/capacity-manager.d.ts.map +1 -0
  148. package/dist/cloud/services/capacity-manager.js +449 -0
  149. package/dist/cloud/services/capacity-manager.js.map +1 -0
  150. package/dist/cloud/services/ci-agent-spawner.d.ts +49 -0
  151. package/dist/cloud/services/ci-agent-spawner.d.ts.map +1 -0
  152. package/dist/cloud/services/ci-agent-spawner.js +373 -0
  153. package/dist/cloud/services/ci-agent-spawner.js.map +1 -0
  154. package/dist/cloud/services/coordinator.d.ts +62 -0
  155. package/dist/cloud/services/coordinator.d.ts.map +1 -0
  156. package/dist/cloud/services/coordinator.js +389 -0
  157. package/dist/cloud/services/coordinator.js.map +1 -0
  158. package/dist/cloud/services/index.d.ts +12 -0
  159. package/dist/cloud/services/index.d.ts.map +1 -0
  160. package/dist/cloud/services/index.js +15 -0
  161. package/dist/cloud/services/index.js.map +1 -0
  162. package/dist/cloud/services/mention-handler.d.ts +65 -0
  163. package/dist/cloud/services/mention-handler.d.ts.map +1 -0
  164. package/dist/cloud/services/mention-handler.js +405 -0
  165. package/dist/cloud/services/mention-handler.js.map +1 -0
  166. package/dist/cloud/services/nango.d.ts +126 -0
  167. package/dist/cloud/services/nango.d.ts.map +1 -0
  168. package/dist/cloud/services/nango.js +191 -0
  169. package/dist/cloud/services/nango.js.map +1 -0
  170. package/dist/cloud/services/persistence.d.ts +131 -0
  171. package/dist/cloud/services/persistence.d.ts.map +1 -0
  172. package/dist/cloud/services/persistence.js +200 -0
  173. package/dist/cloud/services/persistence.js.map +1 -0
  174. package/dist/cloud/services/planLimits.d.ts +125 -0
  175. package/dist/cloud/services/planLimits.d.ts.map +1 -0
  176. package/dist/cloud/services/planLimits.js +282 -0
  177. package/dist/cloud/services/planLimits.js.map +1 -0
  178. package/dist/cloud/services/scaling-orchestrator.d.ts +159 -0
  179. package/dist/cloud/services/scaling-orchestrator.d.ts.map +1 -0
  180. package/dist/cloud/services/scaling-orchestrator.js +502 -0
  181. package/dist/cloud/services/scaling-orchestrator.js.map +1 -0
  182. package/dist/cloud/services/scaling-policy.d.ts +121 -0
  183. package/dist/cloud/services/scaling-policy.d.ts.map +1 -0
  184. package/dist/cloud/services/scaling-policy.js +415 -0
  185. package/dist/cloud/services/scaling-policy.js.map +1 -0
  186. package/dist/cloud/vault/index.d.ts +76 -0
  187. package/dist/cloud/vault/index.d.ts.map +1 -0
  188. package/dist/cloud/vault/index.js +219 -0
  189. package/dist/cloud/vault/index.js.map +1 -0
  190. package/dist/cloud/webhooks/index.d.ts +24 -0
  191. package/dist/cloud/webhooks/index.d.ts.map +1 -0
  192. package/dist/cloud/webhooks/index.js +29 -0
  193. package/dist/cloud/webhooks/index.js.map +1 -0
  194. package/dist/cloud/webhooks/parsers/github.d.ts +8 -0
  195. package/dist/cloud/webhooks/parsers/github.d.ts.map +1 -0
  196. package/dist/cloud/webhooks/parsers/github.js +234 -0
  197. package/dist/cloud/webhooks/parsers/github.js.map +1 -0
  198. package/dist/cloud/webhooks/parsers/index.d.ts +23 -0
  199. package/dist/cloud/webhooks/parsers/index.d.ts.map +1 -0
  200. package/dist/cloud/webhooks/parsers/index.js +30 -0
  201. package/dist/cloud/webhooks/parsers/index.js.map +1 -0
  202. package/dist/cloud/webhooks/parsers/linear.d.ts +9 -0
  203. package/dist/cloud/webhooks/parsers/linear.d.ts.map +1 -0
  204. package/dist/cloud/webhooks/parsers/linear.js +258 -0
  205. package/dist/cloud/webhooks/parsers/linear.js.map +1 -0
  206. package/dist/cloud/webhooks/parsers/slack.d.ts +9 -0
  207. package/dist/cloud/webhooks/parsers/slack.d.ts.map +1 -0
  208. package/dist/cloud/webhooks/parsers/slack.js +214 -0
  209. package/dist/cloud/webhooks/parsers/slack.js.map +1 -0
  210. package/dist/cloud/webhooks/responders/github.d.ts +8 -0
  211. package/dist/cloud/webhooks/responders/github.d.ts.map +1 -0
  212. package/dist/cloud/webhooks/responders/github.js +73 -0
  213. package/dist/cloud/webhooks/responders/github.js.map +1 -0
  214. package/dist/cloud/webhooks/responders/index.d.ts +23 -0
  215. package/dist/cloud/webhooks/responders/index.d.ts.map +1 -0
  216. package/dist/cloud/webhooks/responders/index.js +30 -0
  217. package/dist/cloud/webhooks/responders/index.js.map +1 -0
  218. package/dist/cloud/webhooks/responders/linear.d.ts +9 -0
  219. package/dist/cloud/webhooks/responders/linear.d.ts.map +1 -0
  220. package/dist/cloud/webhooks/responders/linear.js +149 -0
  221. package/dist/cloud/webhooks/responders/linear.js.map +1 -0
  222. package/dist/cloud/webhooks/responders/slack.d.ts +20 -0
  223. package/dist/cloud/webhooks/responders/slack.d.ts.map +1 -0
  224. package/dist/cloud/webhooks/responders/slack.js +178 -0
  225. package/dist/cloud/webhooks/responders/slack.js.map +1 -0
  226. package/dist/cloud/webhooks/router.d.ts +25 -0
  227. package/dist/cloud/webhooks/router.d.ts.map +1 -0
  228. package/dist/cloud/webhooks/router.js +504 -0
  229. package/dist/cloud/webhooks/router.js.map +1 -0
  230. package/dist/cloud/webhooks/rules-engine.d.ts +24 -0
  231. package/dist/cloud/webhooks/rules-engine.d.ts.map +1 -0
  232. package/dist/cloud/webhooks/rules-engine.js +287 -0
  233. package/dist/cloud/webhooks/rules-engine.js.map +1 -0
  234. package/dist/cloud/webhooks/types.d.ts +186 -0
  235. package/dist/cloud/webhooks/types.d.ts.map +1 -0
  236. package/dist/cloud/webhooks/types.js +8 -0
  237. package/dist/cloud/webhooks/types.js.map +1 -0
  238. package/dist/continuity/formatter.d.ts +51 -0
  239. package/dist/continuity/formatter.d.ts.map +1 -0
  240. package/dist/continuity/formatter.js +313 -0
  241. package/dist/continuity/formatter.js.map +1 -0
  242. package/dist/continuity/handoff-store.d.ts +67 -0
  243. package/dist/continuity/handoff-store.d.ts.map +1 -0
  244. package/dist/continuity/handoff-store.js +472 -0
  245. package/dist/continuity/handoff-store.js.map +1 -0
  246. package/dist/continuity/index.d.ts +45 -0
  247. package/dist/continuity/index.d.ts.map +1 -0
  248. package/dist/continuity/index.js +48 -0
  249. package/dist/continuity/index.js.map +1 -0
  250. package/dist/continuity/ledger-store.d.ts +110 -0
  251. package/dist/continuity/ledger-store.d.ts.map +1 -0
  252. package/dist/continuity/ledger-store.js +500 -0
  253. package/dist/continuity/ledger-store.js.map +1 -0
  254. package/dist/continuity/manager.d.ts +178 -0
  255. package/dist/continuity/manager.d.ts.map +1 -0
  256. package/dist/continuity/manager.js +562 -0
  257. package/dist/continuity/manager.js.map +1 -0
  258. package/dist/continuity/parser.d.ts +76 -0
  259. package/dist/continuity/parser.d.ts.map +1 -0
  260. package/dist/continuity/parser.js +579 -0
  261. package/dist/continuity/parser.js.map +1 -0
  262. package/dist/continuity/types.d.ts +180 -0
  263. package/dist/continuity/types.d.ts.map +1 -0
  264. package/dist/continuity/types.js +9 -0
  265. package/dist/continuity/types.js.map +1 -0
  266. package/dist/daemon/agent-manager.d.ts +114 -0
  267. package/dist/daemon/agent-manager.d.ts.map +1 -0
  268. package/dist/daemon/agent-manager.js +513 -0
  269. package/dist/daemon/agent-manager.js.map +1 -0
  270. package/dist/daemon/agent-registry.d.ts +34 -0
  271. package/dist/daemon/agent-registry.d.ts.map +1 -1
  272. package/dist/daemon/agent-registry.js +45 -2
  273. package/dist/daemon/agent-registry.js.map +1 -1
  274. package/dist/daemon/api.d.ts +81 -0
  275. package/dist/daemon/api.d.ts.map +1 -0
  276. package/dist/daemon/api.js +554 -0
  277. package/dist/daemon/api.js.map +1 -0
  278. package/dist/daemon/cli-auth.d.ts +67 -0
  279. package/dist/daemon/cli-auth.d.ts.map +1 -0
  280. package/dist/daemon/cli-auth.js +537 -0
  281. package/dist/daemon/cli-auth.js.map +1 -0
  282. package/dist/daemon/cloud-sync.d.ts +101 -0
  283. package/dist/daemon/cloud-sync.d.ts.map +1 -0
  284. package/dist/daemon/cloud-sync.js +263 -0
  285. package/dist/daemon/cloud-sync.js.map +1 -0
  286. package/dist/daemon/index.d.ts +4 -0
  287. package/dist/daemon/index.d.ts.map +1 -1
  288. package/dist/daemon/index.js +6 -0
  289. package/dist/daemon/index.js.map +1 -1
  290. package/dist/daemon/orchestrator.d.ts +155 -0
  291. package/dist/daemon/orchestrator.d.ts.map +1 -0
  292. package/dist/daemon/orchestrator.js +766 -0
  293. package/dist/daemon/orchestrator.js.map +1 -0
  294. package/dist/daemon/router.d.ts +29 -0
  295. package/dist/daemon/router.d.ts.map +1 -1
  296. package/dist/daemon/router.js +143 -21
  297. package/dist/daemon/router.js.map +1 -1
  298. package/dist/daemon/server.d.ts +42 -0
  299. package/dist/daemon/server.d.ts.map +1 -1
  300. package/dist/daemon/server.js +199 -16
  301. package/dist/daemon/server.js.map +1 -1
  302. package/dist/daemon/services/browser-testing.d.ts +88 -0
  303. package/dist/daemon/services/browser-testing.d.ts.map +1 -0
  304. package/dist/daemon/services/browser-testing.js +244 -0
  305. package/dist/daemon/services/browser-testing.js.map +1 -0
  306. package/dist/daemon/services/container-spawner.d.ts +135 -0
  307. package/dist/daemon/services/container-spawner.d.ts.map +1 -0
  308. package/dist/daemon/services/container-spawner.js +313 -0
  309. package/dist/daemon/services/container-spawner.js.map +1 -0
  310. package/dist/daemon/types.d.ts +131 -0
  311. package/dist/daemon/types.d.ts.map +1 -0
  312. package/dist/daemon/types.js +6 -0
  313. package/dist/daemon/types.js.map +1 -0
  314. package/dist/daemon/workspace-manager.d.ts +75 -0
  315. package/dist/daemon/workspace-manager.d.ts.map +1 -0
  316. package/dist/daemon/workspace-manager.js +289 -0
  317. package/dist/daemon/workspace-manager.js.map +1 -0
  318. package/dist/dashboard/out/404.html +1 -1
  319. package/dist/dashboard/out/_next/static/chunks/116-2502180def231162.js +1 -0
  320. package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +1 -0
  321. package/dist/dashboard/out/_next/static/chunks/480-2d4111711d4e473c.js +1 -0
  322. package/dist/dashboard/out/_next/static/chunks/724-73c1ee5f60abe860.js +9 -0
  323. package/dist/dashboard/out/_next/static/chunks/766-c3a14283c88d815b.js +1 -0
  324. package/dist/dashboard/out/_next/static/chunks/app/app/page-7120be68bea622f3.js +1 -0
  325. package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-dc2e3a1a22478efc.js +1 -0
  326. package/dist/dashboard/out/_next/static/chunks/app/history/page-56a8b4616a90dc43.js +1 -0
  327. package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +1 -0
  328. package/dist/dashboard/out/_next/static/chunks/app/login/page-3eac37ea6f5dd153.js +1 -0
  329. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-1081dd190a331a91.js +1 -0
  330. package/dist/dashboard/out/_next/static/chunks/app/page-daf87e86f783f980.js +1 -0
  331. package/dist/dashboard/out/_next/static/chunks/app/pricing/page-4d72d5a5d8a9b618.js +1 -0
  332. package/dist/dashboard/out/_next/static/chunks/app/providers/page-b68a681526eb145e.js +1 -0
  333. package/dist/dashboard/out/_next/static/chunks/app/signup/page-fee4ed1709070bcd.js +1 -0
  334. package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
  335. package/dist/dashboard/out/_next/static/chunks/{main-e0a1f53fe0617a63.js → main-97850e03d723ea8c.js} +1 -1
  336. package/dist/dashboard/out/_next/static/chunks/main-app-5d692157a8eb1fd9.js +1 -0
  337. package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +1 -0
  338. package/dist/dashboard/out/_next/static/css/29852f26181969a0.css +1 -0
  339. package/dist/dashboard/out/_next/static/css/411ce23ffeae9f76.css +1 -0
  340. package/dist/dashboard/out/alt-logos/agent-relay-logo-128.png +0 -0
  341. package/dist/dashboard/out/alt-logos/agent-relay-logo-256.png +0 -0
  342. package/dist/dashboard/out/alt-logos/agent-relay-logo-32.png +0 -0
  343. package/dist/dashboard/out/alt-logos/agent-relay-logo-512.png +0 -0
  344. package/dist/dashboard/out/alt-logos/agent-relay-logo-64.png +0 -0
  345. package/dist/dashboard/out/alt-logos/agent-relay-logo.svg +45 -0
  346. package/dist/dashboard/out/alt-logos/logo.svg +38 -0
  347. package/dist/dashboard/out/alt-logos/monogram-logo-128.png +0 -0
  348. package/dist/dashboard/out/alt-logos/monogram-logo-256.png +0 -0
  349. package/dist/dashboard/out/alt-logos/monogram-logo-32.png +0 -0
  350. package/dist/dashboard/out/alt-logos/monogram-logo-512.png +0 -0
  351. package/dist/dashboard/out/alt-logos/monogram-logo-64.png +0 -0
  352. package/dist/dashboard/out/alt-logos/monogram-logo.svg +38 -0
  353. package/dist/dashboard/out/app.html +1 -0
  354. package/dist/dashboard/out/app.txt +7 -0
  355. package/dist/dashboard/out/connect-repos.html +1 -0
  356. package/dist/dashboard/out/connect-repos.txt +7 -0
  357. package/dist/dashboard/out/history.html +1 -0
  358. package/dist/dashboard/out/history.txt +7 -0
  359. package/dist/dashboard/out/index.html +1 -1
  360. package/dist/dashboard/out/index.txt +2 -2
  361. package/dist/dashboard/out/login.html +6 -0
  362. package/dist/dashboard/out/login.txt +7 -0
  363. package/dist/dashboard/out/metrics.html +1 -515
  364. package/dist/dashboard/out/metrics.txt +2 -2
  365. package/dist/dashboard/out/pricing.html +13 -0
  366. package/dist/dashboard/out/pricing.txt +7 -0
  367. package/dist/dashboard/out/providers.html +1 -0
  368. package/dist/dashboard/out/providers.txt +7 -0
  369. package/dist/dashboard/out/signup.html +6 -0
  370. package/dist/dashboard/out/signup.txt +7 -0
  371. package/dist/dashboard-server/metrics.d.ts.map +1 -1
  372. package/dist/dashboard-server/metrics.js +3 -2
  373. package/dist/dashboard-server/metrics.js.map +1 -1
  374. package/dist/dashboard-server/server.d.ts.map +1 -1
  375. package/dist/dashboard-server/server.js +2653 -130
  376. package/dist/dashboard-server/server.js.map +1 -1
  377. package/dist/hooks/emitter.d.ts +40 -0
  378. package/dist/hooks/emitter.d.ts.map +1 -0
  379. package/dist/hooks/emitter.js +63 -0
  380. package/dist/hooks/emitter.js.map +1 -0
  381. package/dist/hooks/index.d.ts +3 -0
  382. package/dist/hooks/index.d.ts.map +1 -1
  383. package/dist/hooks/index.js +3 -0
  384. package/dist/hooks/index.js.map +1 -1
  385. package/dist/hooks/registry.d.ts +173 -0
  386. package/dist/hooks/registry.d.ts.map +1 -0
  387. package/dist/hooks/registry.js +476 -0
  388. package/dist/hooks/registry.js.map +1 -0
  389. package/dist/hooks/trajectory-hooks.d.ts +52 -0
  390. package/dist/hooks/trajectory-hooks.d.ts.map +1 -0
  391. package/dist/hooks/trajectory-hooks.js +183 -0
  392. package/dist/hooks/trajectory-hooks.js.map +1 -0
  393. package/dist/hooks/types.d.ts +141 -0
  394. package/dist/hooks/types.d.ts.map +1 -1
  395. package/dist/index.d.ts +2 -0
  396. package/dist/index.d.ts.map +1 -1
  397. package/dist/index.js +3 -0
  398. package/dist/index.js.map +1 -1
  399. package/dist/memory/adapters/index.d.ts +8 -0
  400. package/dist/memory/adapters/index.d.ts.map +1 -0
  401. package/dist/memory/adapters/index.js +8 -0
  402. package/dist/memory/adapters/index.js.map +1 -0
  403. package/dist/memory/adapters/inmemory.d.ts +59 -0
  404. package/dist/memory/adapters/inmemory.d.ts.map +1 -0
  405. package/dist/memory/adapters/inmemory.js +195 -0
  406. package/dist/memory/adapters/inmemory.js.map +1 -0
  407. package/dist/memory/adapters/supermemory.d.ts +71 -0
  408. package/dist/memory/adapters/supermemory.d.ts.map +1 -0
  409. package/dist/memory/adapters/supermemory.js +338 -0
  410. package/dist/memory/adapters/supermemory.js.map +1 -0
  411. package/dist/memory/factory.d.ts +48 -0
  412. package/dist/memory/factory.d.ts.map +1 -0
  413. package/dist/memory/factory.js +143 -0
  414. package/dist/memory/factory.js.map +1 -0
  415. package/dist/memory/index.d.ts +32 -0
  416. package/dist/memory/index.d.ts.map +1 -0
  417. package/dist/memory/index.js +32 -0
  418. package/dist/memory/index.js.map +1 -0
  419. package/dist/memory/memory-hooks.d.ts +60 -0
  420. package/dist/memory/memory-hooks.d.ts.map +1 -0
  421. package/dist/memory/memory-hooks.js +313 -0
  422. package/dist/memory/memory-hooks.js.map +1 -0
  423. package/dist/memory/service.d.ts +49 -0
  424. package/dist/memory/service.d.ts.map +1 -0
  425. package/dist/memory/service.js +146 -0
  426. package/dist/memory/service.js.map +1 -0
  427. package/dist/memory/types.d.ts +195 -0
  428. package/dist/memory/types.d.ts.map +1 -0
  429. package/dist/memory/types.js +8 -0
  430. package/dist/memory/types.js.map +1 -0
  431. package/dist/policy/agent-policy.d.ts +225 -0
  432. package/dist/policy/agent-policy.d.ts.map +1 -0
  433. package/dist/policy/agent-policy.js +665 -0
  434. package/dist/policy/agent-policy.js.map +1 -0
  435. package/dist/policy/cloud-policy-fetcher.d.ts +12 -0
  436. package/dist/policy/cloud-policy-fetcher.d.ts.map +1 -0
  437. package/dist/policy/cloud-policy-fetcher.js +64 -0
  438. package/dist/policy/cloud-policy-fetcher.js.map +1 -0
  439. package/dist/protocol/types.d.ts +10 -1
  440. package/dist/protocol/types.d.ts.map +1 -1
  441. package/dist/resiliency/context-persistence.d.ts +140 -0
  442. package/dist/resiliency/context-persistence.d.ts.map +1 -0
  443. package/dist/resiliency/context-persistence.js +397 -0
  444. package/dist/resiliency/context-persistence.js.map +1 -0
  445. package/dist/resiliency/crash-insights.d.ts +156 -0
  446. package/dist/resiliency/crash-insights.d.ts.map +1 -0
  447. package/dist/resiliency/crash-insights.js +492 -0
  448. package/dist/resiliency/crash-insights.js.map +1 -0
  449. package/dist/resiliency/gossip-health.d.ts +137 -0
  450. package/dist/resiliency/gossip-health.d.ts.map +1 -0
  451. package/dist/resiliency/gossip-health.js +241 -0
  452. package/dist/resiliency/gossip-health.js.map +1 -0
  453. package/dist/resiliency/health-monitor.d.ts +97 -0
  454. package/dist/resiliency/health-monitor.d.ts.map +1 -0
  455. package/dist/resiliency/health-monitor.js +291 -0
  456. package/dist/resiliency/health-monitor.js.map +1 -0
  457. package/dist/resiliency/index.d.ts +68 -0
  458. package/dist/resiliency/index.d.ts.map +1 -0
  459. package/dist/resiliency/index.js +68 -0
  460. package/dist/resiliency/index.js.map +1 -0
  461. package/dist/resiliency/leader-watchdog.d.ts +109 -0
  462. package/dist/resiliency/leader-watchdog.d.ts.map +1 -0
  463. package/dist/resiliency/leader-watchdog.js +189 -0
  464. package/dist/resiliency/leader-watchdog.js.map +1 -0
  465. package/dist/resiliency/logger.d.ts +114 -0
  466. package/dist/resiliency/logger.d.ts.map +1 -0
  467. package/dist/resiliency/logger.js +250 -0
  468. package/dist/resiliency/logger.js.map +1 -0
  469. package/dist/resiliency/memory-monitor.d.ts +172 -0
  470. package/dist/resiliency/memory-monitor.d.ts.map +1 -0
  471. package/dist/resiliency/memory-monitor.js +593 -0
  472. package/dist/resiliency/memory-monitor.js.map +1 -0
  473. package/dist/resiliency/metrics.d.ts +115 -0
  474. package/dist/resiliency/metrics.d.ts.map +1 -0
  475. package/dist/resiliency/metrics.js +239 -0
  476. package/dist/resiliency/metrics.js.map +1 -0
  477. package/dist/resiliency/provider-context.d.ts +100 -0
  478. package/dist/resiliency/provider-context.d.ts.map +1 -0
  479. package/dist/resiliency/provider-context.js +360 -0
  480. package/dist/resiliency/provider-context.js.map +1 -0
  481. package/dist/resiliency/stateless-lead.d.ts +149 -0
  482. package/dist/resiliency/stateless-lead.d.ts.map +1 -0
  483. package/dist/resiliency/stateless-lead.js +308 -0
  484. package/dist/resiliency/stateless-lead.js.map +1 -0
  485. package/dist/resiliency/supervisor.d.ts +147 -0
  486. package/dist/resiliency/supervisor.d.ts.map +1 -0
  487. package/dist/resiliency/supervisor.js +459 -0
  488. package/dist/resiliency/supervisor.js.map +1 -0
  489. package/dist/shared/cli-auth-config.d.ts +91 -0
  490. package/dist/shared/cli-auth-config.d.ts.map +1 -0
  491. package/dist/shared/cli-auth-config.js +264 -0
  492. package/dist/shared/cli-auth-config.js.map +1 -0
  493. package/dist/storage/adapter.d.ts +3 -1
  494. package/dist/storage/adapter.d.ts.map +1 -1
  495. package/dist/storage/adapter.js +12 -2
  496. package/dist/storage/adapter.js.map +1 -1
  497. package/dist/storage/sqlite-adapter.d.ts.map +1 -1
  498. package/dist/storage/sqlite-adapter.js +18 -14
  499. package/dist/storage/sqlite-adapter.js.map +1 -1
  500. package/dist/trajectory/config.d.ts +84 -0
  501. package/dist/trajectory/config.d.ts.map +1 -0
  502. package/dist/trajectory/config.js +163 -0
  503. package/dist/trajectory/config.js.map +1 -0
  504. package/dist/trajectory/index.d.ts +8 -0
  505. package/dist/trajectory/index.d.ts.map +1 -0
  506. package/dist/trajectory/index.js +8 -0
  507. package/dist/trajectory/index.js.map +1 -0
  508. package/dist/trajectory/integration.d.ts +292 -0
  509. package/dist/trajectory/integration.d.ts.map +1 -0
  510. package/dist/trajectory/integration.js +834 -0
  511. package/dist/trajectory/integration.js.map +1 -0
  512. package/dist/utils/index.d.ts +1 -0
  513. package/dist/utils/index.d.ts.map +1 -1
  514. package/dist/utils/index.js +1 -0
  515. package/dist/utils/index.js.map +1 -1
  516. package/dist/utils/logger.d.ts +40 -0
  517. package/dist/utils/logger.d.ts.map +1 -0
  518. package/dist/utils/logger.js +84 -0
  519. package/dist/utils/logger.js.map +1 -0
  520. package/dist/utils/project-namespace.d.ts +24 -0
  521. package/dist/utils/project-namespace.d.ts.map +1 -1
  522. package/dist/utils/project-namespace.js +84 -0
  523. package/dist/utils/project-namespace.js.map +1 -1
  524. package/dist/wrapper/client.d.ts +16 -1
  525. package/dist/wrapper/client.d.ts.map +1 -1
  526. package/dist/wrapper/client.js +32 -1
  527. package/dist/wrapper/client.js.map +1 -1
  528. package/dist/wrapper/parser.d.ts +13 -0
  529. package/dist/wrapper/parser.d.ts.map +1 -1
  530. package/dist/wrapper/parser.js +217 -47
  531. package/dist/wrapper/parser.js.map +1 -1
  532. package/dist/wrapper/pty-wrapper.d.ts +219 -17
  533. package/dist/wrapper/pty-wrapper.d.ts.map +1 -1
  534. package/dist/wrapper/pty-wrapper.js +1050 -104
  535. package/dist/wrapper/pty-wrapper.js.map +1 -1
  536. package/dist/wrapper/shared.d.ts +165 -0
  537. package/dist/wrapper/shared.d.ts.map +1 -0
  538. package/dist/wrapper/shared.js +270 -0
  539. package/dist/wrapper/shared.js.map +1 -0
  540. package/dist/wrapper/tmux-wrapper.d.ts +78 -11
  541. package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
  542. package/dist/wrapper/tmux-wrapper.js +567 -106
  543. package/dist/wrapper/tmux-wrapper.js.map +1 -1
  544. package/docs/CLOUD-ARCHITECTURE.md +804 -0
  545. package/docs/CLOUD-ONBOARDING-DESIGN.md +1983 -0
  546. package/docs/HOOKS_API.md +394 -0
  547. package/docs/WRAPPER_EVENTS.md +358 -0
  548. package/docs/agent-policy-snippet.md +40 -0
  549. package/docs/agent-relay-protocol.md +238 -0
  550. package/docs/agent-relay-snippet.md +115 -6
  551. package/docs/archive/EXECUTIVE_SUMMARY.md +358 -0
  552. package/docs/archive/ROADMAP.md +329 -0
  553. package/docs/archive/TESTING_PRESENCE_FEATURES.md +327 -0
  554. package/docs/competitive/GASTOWN.md +451 -0
  555. package/docs/{COMPETITIVE_ANALYSIS.md → competitive/OVERVIEW.md} +1 -0
  556. package/docs/competitive/README.md +34 -0
  557. package/docs/competitive/TMUX_ORCHESTRATOR.md +605 -0
  558. package/docs/dashboard.png +0 -0
  559. package/docs/design/ci-failure-webhooks.md +812 -0
  560. package/docs/design/comprehensive-integrations.md +238 -0
  561. package/docs/design/e2b-sandbox-integration.md +504 -0
  562. package/docs/design/github-app-permissions.md +264 -0
  563. package/docs/guides/CLOUD.md +236 -0
  564. package/docs/guides/LOCAL.md +535 -0
  565. package/docs/guides/SELF-HOSTED.md +494 -0
  566. package/docs/local-testing.md +428 -0
  567. package/docs/proposals/continuous-claude-integration.md +622 -0
  568. package/docs/proposals/custom-commands.md +368 -0
  569. package/docs/proposals/shadow-as-subagent.md +765 -0
  570. package/docs/proposals/slack-bot-integration.md +1457 -0
  571. package/docs/tasks/global-skills-system.tasks.md +230 -0
  572. package/docs/tasks/webhook-integrations.tasks.md +184 -0
  573. package/docs/tasks/workspace-capabilities.tasks.md +121 -0
  574. package/docs/testing/RESILIENCY-TEST-PLAN-2026-01-01.md +366 -0
  575. package/package.json +45 -7
  576. package/scripts/cloud-setup.sh +96 -0
  577. package/scripts/manual-qa.sh +293 -0
  578. package/scripts/postinstall.js +60 -0
  579. package/scripts/run-cloud-qa.sh +220 -0
  580. package/scripts/test-cli-auth/Dockerfile +44 -0
  581. package/scripts/test-cli-auth/Dockerfile.real +79 -0
  582. package/scripts/test-cli-auth/README.md +286 -0
  583. package/scripts/test-cli-auth/ci-test-real-clis.ts +251 -0
  584. package/scripts/test-cli-auth/ci-test-runner.ts +263 -0
  585. package/scripts/test-cli-auth/mock-cli.sh +147 -0
  586. package/scripts/test-cli-auth/package.json +14 -0
  587. package/scripts/test-cli-auth/test-oauth-flow.ts +220 -0
  588. package/scripts/test-pty-input-auto.js +222 -0
  589. package/scripts/test-pty-input.js +150 -0
  590. package/dist/dashboard/out/_next/static/chunks/app/layout-c9d8c5d95e48c6bf.js +0 -1
  591. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-8aa9936bc6c771ab.js +0 -1
  592. package/dist/dashboard/out/_next/static/chunks/app/page-4498be09a5157759.js +0 -1
  593. package/dist/dashboard/out/_next/static/chunks/main-app-bae2e535de00de50.js +0 -1
  594. package/dist/dashboard/out/_next/static/chunks/webpack-c81f7fd28659d64f.js +0 -1
  595. package/dist/dashboard/out/_next/static/css/50ed6996e3df7bdd.css +0 -1
  596. /package/dist/dashboard/out/_next/static/{DXFA-jj8wb3PcY5DX2xcU → H5aWG0udPB4iOUIl_gytz}/_buildManifest.js +0 -0
  597. /package/dist/dashboard/out/_next/static/{DXFA-jj8wb3PcY5DX2xcU → H5aWG0udPB4iOUIl_gytz}/_ssgManifest.js +0 -0
  598. /package/dist/dashboard/out/_next/static/chunks/{117-3bef7b19f3e60751.js → 117-b100311aff8d5c61.js} +0 -0
  599. /package/dist/dashboard/out/_next/static/chunks/{648-6cf686106c891ad3.js → 648-a13d3c2b1be45466.js} +0 -0
  600. /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-8ff6572bc7c9bc61.js → page-a4973f3e3c82fb67.js} +0 -0
  601. /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-26bd8d656b496dba.js → fd9d1056-bf46c09eb57e019c.js} +0 -0
  602. /package/docs/{CHANGELOG.md → archive/CHANGELOG.md} +0 -0
  603. /package/docs/{CLI-SIMPLIFICATION-COMPLETE.md → archive/CLI-SIMPLIFICATION-COMPLETE.md} +0 -0
  604. /package/docs/{DESIGN_BRIDGE_STAFFING.md → archive/DESIGN_BRIDGE_STAFFING.md} +0 -0
  605. /package/docs/{DESIGN_V2.md → archive/DESIGN_V2.md} +0 -0
  606. /package/docs/{MONETIZATION.md → archive/MONETIZATION.md} +0 -0
  607. /package/docs/{PROPOSAL-trajectories.md → archive/PROPOSAL-trajectories.md} +0 -0
  608. /package/docs/{SCALING_ANALYSIS.md → archive/SCALING_ANALYSIS.md} +0 -0
  609. /package/docs/{TMUX_IMPLEMENTATION_NOTES.md → archive/TMUX_IMPLEMENTATION_NOTES.md} +0 -0
  610. /package/docs/{TMUX_IMPROVEMENTS.md → archive/TMUX_IMPROVEMENTS.md} +0 -0
  611. /package/docs/{dashboard-v2-plan.md → archive/dashboard-v2-plan.md} +0 -0
  612. /package/docs/{removable-code-analysis.md → archive/removable-code-analysis.md} +0 -0
  613. /package/docs/{competitive-analysis-mcp-agent-mail.md → competitive/MCP_AGENT_MAIL.md} +0 -0
@@ -0,0 +1,358 @@
1
+ # PtyWrapper Events
2
+
3
+ PtyWrapper extends Node.js EventEmitter and emits events for monitoring agent behavior, handling persistence, and debugging. This document describes all available events and how to use them.
4
+
5
+ ## Event Reference
6
+
7
+ ### `output`
8
+
9
+ Emitted for every chunk of output from the agent's PTY.
10
+
11
+ ```typescript
12
+ pty.on('output', (data: string) => {
13
+ console.log('Agent output:', data);
14
+ });
15
+ ```
16
+
17
+ **Parameters:**
18
+ - `data` (string): Raw output data from the PTY
19
+
20
+ **Use cases:**
21
+ - Live log streaming to dashboard
22
+ - Output capture for analysis
23
+ - Debugging agent behavior
24
+
25
+ ---
26
+
27
+ ### `exit`
28
+
29
+ Emitted when the agent process exits.
30
+
31
+ ```typescript
32
+ pty.on('exit', (code: number) => {
33
+ console.log(`Agent exited with code ${code}`);
34
+ });
35
+ ```
36
+
37
+ **Parameters:**
38
+ - `code` (number): Exit code of the process (0 = success)
39
+
40
+ **Use cases:**
41
+ - Cleanup resources
42
+ - Trigger restart logic
43
+ - Update agent status
44
+
45
+ ---
46
+
47
+ ### `error`
48
+
49
+ Emitted when an error occurs in the wrapper.
50
+
51
+ ```typescript
52
+ pty.on('error', (error: Error) => {
53
+ console.error('PTY error:', error);
54
+ });
55
+ ```
56
+
57
+ **Parameters:**
58
+ - `error` (Error): The error that occurred
59
+
60
+ **Use cases:**
61
+ - Error logging
62
+ - Alerting
63
+ - Graceful error handling
64
+
65
+ ---
66
+
67
+ ### `injection-failed`
68
+
69
+ Emitted when message injection fails after all retry attempts.
70
+
71
+ ```typescript
72
+ import type { InjectionFailedEvent } from './wrapper/pty-wrapper.js';
73
+
74
+ pty.on('injection-failed', (event: InjectionFailedEvent) => {
75
+ console.warn('Injection failed:', event);
76
+ });
77
+ ```
78
+
79
+ **Parameters:**
80
+ - `event.messageId` (string): ID of the failed message
81
+ - `event.from` (string): Sender of the message
82
+ - `event.attempts` (number): Number of injection attempts made
83
+
84
+ **Use cases:**
85
+ - Alert on delivery failures
86
+ - Fallback to inbox-based delivery
87
+ - Dashboard warning indicators
88
+
89
+ ---
90
+
91
+ ### `summary`
92
+
93
+ Emitted when the agent outputs a `[[SUMMARY]]` block. Used for cloud persistence.
94
+
95
+ ```typescript
96
+ import type { SummaryEvent } from './wrapper/pty-wrapper.js';
97
+
98
+ pty.on('summary', (event: SummaryEvent) => {
99
+ console.log(`${event.agentName} summary:`, event.summary);
100
+ });
101
+ ```
102
+
103
+ **Parameters:**
104
+ - `event.agentName` (string): Name of the agent
105
+ - `event.summary` (ParsedSummary): Parsed summary object
106
+ - `currentTask?` (string): What the agent is currently working on
107
+ - `completedTasks?` (string[]): List of completed tasks
108
+ - `decisions?` (string[]): Key decisions made
109
+ - `context?` (string): Additional context
110
+ - `files?` (string[]): Files being worked on
111
+
112
+ **Agent output format:**
113
+ ```
114
+ [[SUMMARY]]
115
+ {
116
+ "currentTask": "Implementing auth module",
117
+ "completedTasks": ["login flow", "session management"],
118
+ "context": "Using JWT for tokens",
119
+ "files": ["src/auth.ts", "src/session.ts"]
120
+ }
121
+ [[/SUMMARY]]
122
+ ```
123
+
124
+ **Use cases:**
125
+ - Persist agent progress to database
126
+ - Resume interrupted sessions
127
+ - Dashboard progress indicators
128
+
129
+ ---
130
+
131
+ ### `session-end`
132
+
133
+ Emitted when the agent outputs a `[[SESSION_END]]` block. Marks explicit session completion.
134
+
135
+ ```typescript
136
+ import type { SessionEndEvent } from './wrapper/pty-wrapper.js';
137
+
138
+ pty.on('session-end', (event: SessionEndEvent) => {
139
+ console.log(`${event.agentName} ended session:`, event.marker);
140
+ });
141
+ ```
142
+
143
+ **Parameters:**
144
+ - `event.agentName` (string): Name of the agent
145
+ - `event.marker` (SessionEndMarker): End marker object
146
+ - `summary?` (string): Final session summary
147
+ - `completedTasks?` (string[]): Tasks completed in session
148
+
149
+ **Agent output format:**
150
+ ```
151
+ [[SESSION_END]]
152
+ {
153
+ "summary": "Completed auth module implementation",
154
+ "completedTasks": ["login", "logout", "session management"]
155
+ }
156
+ [[/SESSION_END]]
157
+ ```
158
+
159
+ Or empty for clean close:
160
+ ```
161
+ [[SESSION_END]][[/SESSION_END]]
162
+ ```
163
+
164
+ **Use cases:**
165
+ - Close session in database
166
+ - Trigger cleanup
167
+ - Update billing/usage
168
+
169
+ ---
170
+
171
+ ## Cloud Persistence Integration
172
+
173
+ For cloud deployments, use `CloudPersistenceService` to automatically persist summary and session-end events to PostgreSQL:
174
+
175
+ ```typescript
176
+ import { PtyWrapper } from './wrapper/pty-wrapper.js';
177
+ import { CloudPersistenceService } from './cloud/services/persistence.js';
178
+
179
+ // Create persistence service
180
+ const persistence = new CloudPersistenceService({
181
+ workspaceId: 'workspace-123',
182
+ onSummaryPersisted: (agentName, summaryId) => {
183
+ console.log(`Summary saved: ${summaryId}`);
184
+ },
185
+ });
186
+
187
+ // Create and start PTY
188
+ const pty = new PtyWrapper(config);
189
+ await pty.start();
190
+
191
+ // Bind persistence to PTY - creates session record
192
+ const sessionId = await persistence.bindToPtyWrapper(pty);
193
+
194
+ // ... agent runs ...
195
+
196
+ // Cleanup when done
197
+ persistence.unbindFromPtyWrapper(pty);
198
+ ```
199
+
200
+ ### Database Schema
201
+
202
+ ```sql
203
+ -- Agent sessions
204
+ CREATE TABLE agent_sessions (
205
+ id UUID PRIMARY KEY,
206
+ workspace_id UUID NOT NULL REFERENCES workspaces(id),
207
+ agent_name VARCHAR(255) NOT NULL,
208
+ status VARCHAR(50) DEFAULT 'active',
209
+ started_at TIMESTAMPTZ DEFAULT NOW(),
210
+ ended_at TIMESTAMPTZ,
211
+ end_marker JSONB,
212
+ metadata JSONB DEFAULT '{}'
213
+ );
214
+
215
+ -- Agent summaries
216
+ CREATE TABLE agent_summaries (
217
+ id UUID PRIMARY KEY,
218
+ session_id UUID NOT NULL REFERENCES agent_sessions(id),
219
+ agent_name VARCHAR(255) NOT NULL,
220
+ summary JSONB NOT NULL,
221
+ created_at TIMESTAMPTZ DEFAULT NOW()
222
+ );
223
+ ```
224
+
225
+ ---
226
+
227
+ ## Daemon Event Integration
228
+
229
+ When using `AgentManager`, PtyWrapper events are automatically forwarded as daemon events:
230
+
231
+ | PtyWrapper Event | Daemon Event | Description |
232
+ |------------------|--------------|-------------|
233
+ | `summary` | `agent:summary` | Agent output a summary block |
234
+ | `session-end` | `agent:session-end` | Agent explicitly ended session |
235
+ | `injection-failed` | `agent:injection-failed` | Message delivery failed |
236
+
237
+ ```typescript
238
+ const manager = getAgentManager();
239
+
240
+ // Optional: Enable cloud persistence
241
+ manager.setCloudPersistence({
242
+ onSummary: async (agentId, event) => {
243
+ await db.saveSummary(agentId, event.summary);
244
+ },
245
+ onSessionEnd: async (agentId, event) => {
246
+ await db.endSession(agentId, event.marker);
247
+ },
248
+ });
249
+
250
+ // Daemon events are emitted to connected dashboard clients
251
+ manager.on('event', (event) => {
252
+ if (event.type === 'agent:summary') {
253
+ broadcastToClients(event);
254
+ }
255
+ });
256
+ ```
257
+
258
+ ---
259
+
260
+ ## Event Flow Diagram
261
+
262
+ ```
263
+ Agent Output
264
+
265
+
266
+ ┌───────────────┐
267
+ │ PtyWrapper │
268
+ │ handleOutput()│
269
+ └───────┬───────┘
270
+
271
+ ├──► emit('output', data)
272
+
273
+ ├──► parseRelayCommands()
274
+
275
+ ├──► checkForSummaryAndEmit()
276
+ │ │
277
+ │ ▼
278
+ │ emit('summary', event)
279
+ │ │
280
+ │ ▼
281
+ │ CloudPersistenceService
282
+ │ │
283
+ │ ▼
284
+ │ PostgreSQL
285
+
286
+ └──► checkForSessionEndAndEmit()
287
+
288
+
289
+ emit('session-end', event)
290
+ ```
291
+
292
+ ---
293
+
294
+ ## Best Practices
295
+
296
+ 1. **Always unbind on cleanup** - Call `persistence.unbindFromPtyWrapper(pty)` or the listeners will leak
297
+
298
+ 2. **Use resetSessionState() for reuse** - If reusing a wrapper instance, call `pty.resetSessionState()` to clear session-specific state
299
+
300
+ 3. **Handle async errors** - Event handlers for `summary` and `session-end` can be async, but errors should be caught
301
+
302
+ 4. **Deduplication is automatic** - PtyWrapper deduplicates summary events based on content, preventing repeated persistence of the same summary
303
+
304
+ ---
305
+
306
+ ## Environment Variables
307
+
308
+ Configure PtyWrapper and cloud persistence behavior via environment variables:
309
+
310
+ ### Summary Reminders
311
+
312
+ | Variable | Default | Description |
313
+ |----------|---------|-------------|
314
+ | `RELAY_SUMMARY_REMINDER_ENABLED` | `true` | Set to `false` to disable automatic summary reminders |
315
+ | `RELAY_SUMMARY_INTERVAL_MINUTES` | `15` | Minutes of activity before injecting a summary reminder |
316
+ | `RELAY_SUMMARY_MIN_OUTPUTS` | `50` | Minimum significant outputs before reminding |
317
+
318
+ Example:
319
+ ```bash
320
+ # Remind every 30 minutes after 100 outputs
321
+ export RELAY_SUMMARY_INTERVAL_MINUTES=30
322
+ export RELAY_SUMMARY_MIN_OUTPUTS=100
323
+
324
+ # Disable reminders entirely
325
+ export RELAY_SUMMARY_REMINDER_ENABLED=false
326
+ ```
327
+
328
+ ### Cloud Persistence (Pro+ Feature)
329
+
330
+ > **Note:** Session persistence is a premium feature requiring Pro plan or higher.
331
+ > In cloud deployments, access is enforced at the organization level via `canUseSessionPersistence()`.
332
+
333
+ | Variable | Default | Description |
334
+ |----------|---------|-------------|
335
+ | `RELAY_CLOUD_ENABLED` | `false` | Set to `true` to enable cloud persistence (for local dev/testing) |
336
+ | `RELAY_WORKSPACE_ID` | Auto-generated | UUID for workspace scoping (auto-generated from project path if not set) |
337
+ | `DATABASE_URL` | Required | PostgreSQL connection string (required when cloud enabled) |
338
+
339
+ **Local Development:**
340
+ ```bash
341
+ # Enable cloud persistence for local testing
342
+ export RELAY_CLOUD_ENABLED=true
343
+ export DATABASE_URL=postgresql://user:pass@localhost:5432/relay
344
+ export RELAY_WORKSPACE_ID=550e8400-e29b-41d4-a716-446655440000
345
+ ```
346
+
347
+ **Cloud Deployment:**
348
+ In cloud deployments, the `RELAY_CLOUD_ENABLED` env var is not used.
349
+ Instead, session persistence is enabled per-organization based on subscription:
350
+ - **Free plan:** Not available
351
+ - **Pro+ plans:** Session persistence enabled
352
+
353
+ ### Priority
354
+
355
+ Environment variables take precedence over programmatic config:
356
+ 1. Environment variable (highest priority)
357
+ 2. `PtyWrapperConfig.summaryReminder` option
358
+ 3. Default values (lowest priority)
@@ -0,0 +1,40 @@
1
+ # Agent Policy
2
+
3
+ You are operating under organizational agent policies. These policies govern your interactions with other agents and tools.
4
+
5
+ ## Your Permissions
6
+
7
+ Check the policy service for your specific permissions. If no explicit restrictions are defined, you have full permissions.
8
+
9
+ ## General Rules
10
+
11
+ 1. **Spawn Authorization**: Only spawn agents you are authorized to spawn. Check with Lead before spawning if unsure.
12
+
13
+ 2. **Message Routing**: Only message agents you are authorized to communicate with. Use proper channels.
14
+
15
+ 3. **Tool Usage**: Only use tools you are authorized to use. Read-only operations are generally safer.
16
+
17
+ 4. **Rate Limits**: Respect rate limits on messages. Don't spam other agents.
18
+
19
+ ## Restricted Agents
20
+
21
+ Workers and non-lead agents typically have these restrictions:
22
+ - Cannot spawn other agents without Lead approval
23
+ - Can only message Lead, Coordinator, and their assigned peers
24
+ - Limited to read-only tools unless explicitly granted write access
25
+
26
+ ## Lead Agents
27
+
28
+ Lead agents typically have elevated permissions:
29
+ - Can spawn Worker agents
30
+ - Can message all agents
31
+ - Can use all tools
32
+ - Responsible for enforcing policy on spawned agents
33
+
34
+ ## Enforcement
35
+
36
+ Policy violations are blocked at runtime. If your action is blocked, you'll receive a denial message explaining why. Do not attempt to circumvent policy restrictions.
37
+
38
+ ## Checking Your Policy
39
+
40
+ To see your current policy, ask Lead or check the dashboard at `/api/policy/:workspaceId`.
@@ -0,0 +1,238 @@
1
+ # Agent Relay Protocol (Internal)
2
+
3
+ Advanced agent-relay features for dashboard integration, session persistence, and trajectory tracking.
4
+
5
+ ## Session Persistence (Required)
6
+
7
+ Output these blocks to maintain session state. **The system monitors your output for these patterns.**
8
+
9
+ ### Progress Summary (Output Periodically)
10
+
11
+ When completing significant work, output a summary block:
12
+
13
+ ```
14
+ [[SUMMARY]]
15
+ {
16
+ "currentTask": "What you're working on now",
17
+ "completedTasks": ["task1", "task2"],
18
+ "context": "Important context for session recovery",
19
+ "files": ["src/file1.ts", "src/file2.ts"]
20
+ }
21
+ [[/SUMMARY]]
22
+ ```
23
+
24
+ **When to output:**
25
+ - After completing a major task
26
+ - Before long-running operations
27
+ - When switching to a different area of work
28
+ - Every 10-15 minutes of active work
29
+
30
+ ### Session End (Required on Completion)
31
+
32
+ When your work session is complete, output:
33
+
34
+ ```
35
+ [[SESSION_END]]
36
+ {
37
+ "summary": "Brief description of what was accomplished",
38
+ "completedTasks": ["task1", "task2", "task3"]
39
+ }
40
+ [[/SESSION_END]]
41
+ ```
42
+
43
+ Or for a simple close: `[[SESSION_END]]Work complete.[[/SESSION_END]]`
44
+
45
+ **This enables:**
46
+ - Session recovery if connection drops
47
+ - Progress tracking in dashboard
48
+ - Proper session cleanup in cloud
49
+
50
+ ## Session Continuity (Cross-Session)
51
+
52
+ Output `->continuity:` patterns to persist state across sessions. This is different from `[[SUMMARY]]` blocks - continuity creates permanent records that survive agent restarts.
53
+
54
+ ### Save Session State
55
+
56
+ Save your current state to the ledger:
57
+
58
+ ```
59
+ ->continuity:save <<<
60
+ Current task: Implementing user authentication
61
+ Completed: User model, JWT utils, Login endpoint
62
+ In progress: Logout endpoint, Token refresh
63
+ Key decisions: Using refresh tokens for security
64
+ Files: src/auth/jwt.ts:10-50, src/models/user.ts>>>
65
+ ```
66
+
67
+ To also create a permanent handoff document (recommended before long operations):
68
+
69
+ ```
70
+ ->continuity:save --handoff <<<
71
+ Current task: Implementing auth module
72
+ Completed: User model, JWT utils
73
+ Next steps: Login endpoint, Session middleware
74
+ Key decisions: JWT with refresh tokens, bcrypt for passwords
75
+ Files: src/auth/*.ts>>>
76
+ ```
77
+
78
+ ### Load Previous Context
79
+
80
+ Request your previous session context (auto-loaded on startup, but can request manually):
81
+
82
+ ```
83
+ ->continuity:load
84
+ ```
85
+
86
+ ### Search Past Work
87
+
88
+ Search across all previous handoffs:
89
+
90
+ ```
91
+ ->continuity:search "authentication patterns"
92
+ ->continuity:search "database migration"
93
+ ```
94
+
95
+ ### Mark Uncertain Items
96
+
97
+ Flag items that need verification in future sessions:
98
+
99
+ ```
100
+ ->continuity:uncertain "API rate limit handling unclear"
101
+ ```
102
+
103
+ ### When to Save
104
+
105
+ **Always save before:**
106
+ - Long-running operations (builds, tests, deployments)
107
+ - Context-heavy operations (might trigger compaction)
108
+ - Switching to a different task area
109
+ - Taking a break or ending session
110
+
111
+ **Good rhythm:**
112
+ - Save progress every 15-20 minutes of active work
113
+ - Use `--handoff` flag for major milestones
114
+ - Mark uncertainties as you encounter them
115
+
116
+ ## Work Trajectories (Required)
117
+
118
+ **Trajectory recording is MANDATORY for all agent work sessions.** Use Trail to record your work as a trajectory for future agents and humans to follow.
119
+
120
+ ### Enforcement
121
+
122
+ Trajectories are enforced via hooks:
123
+ - **onSessionStart** → Automatically calls `trail start` with task context
124
+ - **onSessionEnd** → Prompts for `trail complete` if trajectory is open
125
+
126
+ If hooks are not configured, you MUST manually call trail commands. Failure to record trajectories results in lost context for future agents.
127
+
128
+ ### When Starting Work
129
+
130
+ **REQUIRED: Call `trail start` BEFORE diving into implementation** - this captures your full journey, not just the end result.
131
+
132
+ Start a trajectory immediately when picking up a task:
133
+
134
+ ```bash
135
+ trail start "Implement user authentication"
136
+ ```
137
+
138
+ With external task reference (beads ID, ticket number):
139
+ ```bash
140
+ trail start "Fix login bug" --task "agent-relay-123"
141
+ ```
142
+
143
+ ### Recording Decisions
144
+
145
+ Record key decisions as you work:
146
+
147
+ ```bash
148
+ trail decision "Chose JWT over sessions" \
149
+ --reasoning "Stateless scaling requirements"
150
+ ```
151
+
152
+ For minor decisions, reasoning is optional:
153
+ ```bash
154
+ trail decision "Used existing auth middleware"
155
+ ```
156
+
157
+ **Record decisions when you:**
158
+ - Choose between alternatives
159
+ - Make architectural trade-offs
160
+ - Decide on an approach after investigation
161
+
162
+ ### Completing Work
163
+
164
+ **REQUIRED: Always close your trajectory before ending a session.** When done, complete with a retrospective:
165
+
166
+ ```bash
167
+ trail complete --summary "Added JWT auth with refresh tokens" --confidence 0.85
168
+ ```
169
+
170
+ **Confidence levels:**
171
+ - 0.9+ : High confidence, well-tested
172
+ - 0.7-0.9 : Good confidence, standard implementation
173
+ - 0.5-0.7 : Some uncertainty, edge cases possible
174
+ - <0.5 : Significant uncertainty, needs review
175
+
176
+ ### Abandoning Work
177
+
178
+ If you need to stop without completing:
179
+
180
+ ```bash
181
+ trail abandon --reason "Blocked by missing API credentials"
182
+ ```
183
+
184
+ ### Checking Status
185
+
186
+ View current trajectory:
187
+ ```bash
188
+ trail status
189
+ ```
190
+
191
+ ### Why Trail?
192
+
193
+ Your trajectory helps others understand:
194
+ - **What** you built (commits show this)
195
+ - **Why** you built it this way (trajectory shows this)
196
+ - **What alternatives** you considered
197
+ - **What challenges** you faced
198
+
199
+ Future agents can query past trajectories to learn from your decisions.
200
+
201
+ ## Cross-Project Messaging
202
+
203
+ When running in bridge mode (multiple projects connected), use `project:agent` format:
204
+
205
+ ```
206
+ ->relay:frontend:Designer <<<
207
+ Please update the login UI for the new auth flow>>>
208
+
209
+ ->relay:backend:lead <<<
210
+ API question - should we use REST or GraphQL?>>>
211
+
212
+ ->relay:shared-lib:* <<<
213
+ New utility functions available, please pull latest>>>
214
+ ```
215
+
216
+ **Format:** `->relay:project-id:agent-name`
217
+
218
+ **Special targets:**
219
+ - `->relay:project:lead` - Message the lead agent of that project
220
+ - `->relay:project:*` - Broadcast to all agents in that project
221
+ - `->relay:*:*` - Broadcast to ALL agents in ALL projects
222
+
223
+ **Cross-project threads:**
224
+ ```
225
+ ->relay:frontend:Designer [thread:auth-feature] <<<
226
+ UI mockups ready for review>>>
227
+ ```
228
+
229
+ ## Dashboard Integration
230
+
231
+ The dashboard automatically tracks:
232
+ - Agent presence and online status
233
+ - Message history and threads
234
+ - Session summaries from `[[SUMMARY]]` blocks
235
+ - Trajectory status from trail commands
236
+ - Coordinator panel for multi-agent orchestration
237
+
238
+ Agents can view their status at the dashboard URL provided at startup.