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,605 @@
1
+ # Tmux-Orchestrator vs Agent Relay: Competitive Analysis
2
+
3
+ A comprehensive comparison of tmux-based multi-agent orchestration approaches.
4
+
5
+ ---
6
+
7
+ ## Executive Summary
8
+
9
+ | Dimension | Tmux-Orchestrator | Agent Relay |
10
+ |-----------|-------------------|-------------|
11
+ | **Primary Language** | Python (80.5%) + Shell (19.5%) | TypeScript/Node.js |
12
+ | **Core Philosophy** | Autonomous scheduling ("self-triggering agents") | Real-time messaging ("peer-to-peer communication") |
13
+ | **Communication** | tmux send-keys with timing delays | Unix socket + PTY injection |
14
+ | **Agent Hierarchy** | Fixed 3-tier (Orchestrator→PM→Engineer) | Flexible (any structure) |
15
+ | **State Management** | Git commits + context notes | SQLite + optional cloud sync |
16
+ | **Scaling Target** | Multi-project, multi-team | Single project (~50 agents) |
17
+ | **Complexity** | Low (~5 scripts) | Moderate (6 architectural layers) |
18
+ | **Setup** | Manual tmux session creation | `npm install`, daemon auto-start |
19
+
20
+ **Key Finding:** Tmux-Orchestrator pioneered the concept of 24/7 autonomous Claude agents using tmux persistence, but relies on manual shell scripting for coordination. Agent Relay provides a more sophisticated communication layer while maintaining the tmux foundation.
21
+
22
+ ---
23
+
24
+ ## 1. Architectural Philosophy
25
+
26
+ ### Tmux-Orchestrator: "The Factory Model"
27
+
28
+ Tmux-Orchestrator treats multi-agent coordination as an **industrial process** with rigid role separation:
29
+
30
+ ```
31
+ ┌─────────────────────────────────────────────────────────────┐
32
+ │ ORCHESTRATOR (1) │
33
+ │ • Global coordination across projects │
34
+ │ • Knowledge sharing between teams │
35
+ │ • High-level progress monitoring │
36
+ └─────────────────────────┬───────────────────────────────────┘
37
+
38
+ ┌─────────────────┼─────────────────┐
39
+ ▼ ▼ ▼
40
+ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐
41
+ │ PROJECT │ │ PROJECT │ │ PROJECT │
42
+ │ MANAGER │ │ MANAGER │ │ MANAGER │
43
+ │ (per repo) │ │ (per repo) │ │ (per repo) │
44
+ └───────┬───────┘ └───────┬───────┘ └───────┬───────┘
45
+ │ │ │
46
+ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐
47
+ ▼ ▼ ▼ ▼ ▼ ▼
48
+ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
49
+ │ ENG │ │ ENG │ │ ENG │ │ ENG │ │ ENG │ │ ENG │
50
+ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘
51
+ ```
52
+
53
+ **Core Principles:**
54
+ 1. **Role Specialization** - Each tier has distinct responsibilities
55
+ 2. **Context Window Management** - Hierarchy prevents single-agent overload
56
+ 3. **Autonomous Scheduling** - Agents trigger their own check-ins
57
+ 4. **Persistent Execution** - Work continues when developers disconnect
58
+
59
+ ### Agent Relay: "The Postal Service Model"
60
+
61
+ Agent Relay treats coordination as a **communication problem** with flexible topology:
62
+
63
+ ```
64
+ ┌─────────────────────────────────────────────────────────────┐
65
+ │ DAEMON (Router) │
66
+ │ Unix Socket + WebSocket Server │
67
+ └─────────────────────────┬───────────────────────────────────┘
68
+
69
+ ┌──────────────────────┼──────────────────────┐
70
+ │ │ │
71
+ ▼ ▼ ▼
72
+ ┌──────────┐ ┌──────────┐ ┌──────────┐
73
+ │ Agent A │ ←───→ │ Agent B │ ←──────→ │ Agent C │
74
+ │ (Lead) │ │ (Worker) │ │ (Worker) │
75
+ └──────────┘ └──────────┘ └──────────┘
76
+ ↑ │
77
+ └───────────────────────────────────────┘
78
+ Direct peer-to-peer messaging
79
+ ```
80
+
81
+ **Core Principles:**
82
+ 1. **Any Topology** - Roles defined by convention, not enforcement
83
+ 2. **Direct Communication** - Agents message each other without intermediaries
84
+ 3. **Zero Modification** - Works with unmodified CLI agents
85
+ 4. **Real-Time Messaging** - <5ms latency via Unix socket
86
+
87
+ ---
88
+
89
+ ## 2. Communication Mechanisms
90
+
91
+ ### Tmux-Orchestrator: Shell Script + Timing
92
+
93
+ **Primary tool: `send-claude-message.sh`**
94
+
95
+ ```bash
96
+ #!/bin/bash
97
+ # Usage: ./send-claude-message.sh session:window "message"
98
+ TARGET=$1
99
+ MESSAGE=$2
100
+
101
+ tmux send-keys -t "$TARGET" "$MESSAGE"
102
+ sleep 0.5 # Critical delay for message parsing
103
+ tmux send-keys -t "$TARGET" Enter
104
+ ```
105
+
106
+ **Characteristics:**
107
+ - Shell-based, simple to understand
108
+ - Fixed timing delays (0.5s between message and Enter)
109
+ - Target format: `session_name:window_index`
110
+ - No message queuing or delivery confirmation
111
+ - No persistence of message history
112
+
113
+ **Self-scheduling with notes:**
114
+
115
+ ```bash
116
+ # schedule_with_note.sh [minutes] "[actionable instruction]"
117
+ ./schedule_with_note.sh 30 "Review PR and update status"
118
+ ```
119
+
120
+ ### Agent Relay: Pattern Detection + Unix Socket
121
+
122
+ **Primary mechanism: Output parsing**
123
+
124
+ ```
125
+ Agent output: "->relay:Alice Let's discuss the API design"
126
+ ↓ Pattern detection
127
+ RelayClient extracts message
128
+ ↓ Unix socket IPC
129
+ Daemon routes to Alice
130
+ ↓ tmux send-keys
131
+ Alice receives via PTY injection
132
+ ```
133
+
134
+ **Characteristics:**
135
+ - Pattern-based (`->relay:`) - no SDK needed
136
+ - Sub-5ms latency via Unix Domain Socket
137
+ - Message queuing and persistence
138
+ - Delivery acknowledgment
139
+ - Full message history in SQLite
140
+
141
+ **Comparison:**
142
+
143
+ | Aspect | Tmux-Orchestrator | Agent Relay |
144
+ |--------|-------------------|-------------|
145
+ | **Message Format** | Raw text | Structured envelope |
146
+ | **Latency** | ~500ms (timing delay) | <5ms |
147
+ | **Delivery Guarantee** | None | ACK/NACK |
148
+ | **History** | None | SQLite persistence |
149
+ | **Addressing** | `session:window` | Agent name |
150
+ | **Broadcast** | Manual loop | `->relay:*` |
151
+
152
+ ---
153
+
154
+ ## 3. Agent Lifecycle Management
155
+
156
+ ### Tmux-Orchestrator: Manual with Convention
157
+
158
+ **Creating agents:**
159
+ ```bash
160
+ # Create tmux session for project
161
+ tmux new-session -d -s myproject
162
+
163
+ # Launch Project Manager in window 0
164
+ tmux send-keys -t myproject:0 "claude" Enter
165
+
166
+ # PM creates Engineer in new window
167
+ # (PM runs these commands via Claude)
168
+ tmux new-window -t myproject -c /path/to/project
169
+ tmux send-keys -t myproject:1 "claude --task='Implement feature X'" Enter
170
+ ```
171
+
172
+ **Self-scheduling (autonomous check-ins):**
173
+ ```bash
174
+ # Agent schedules itself for 30 minutes later
175
+ ./schedule_with_note.sh 30 "Check progress on feature X"
176
+ ```
177
+
178
+ **Window awareness:**
179
+ ```bash
180
+ # Agent discovers its own location
181
+ tmux display-message -p "#{session_name}:#{window_index}"
182
+ ```
183
+
184
+ ### Agent Relay: Daemon-Managed
185
+
186
+ **Creating agents:**
187
+ ```bash
188
+ # Start daemon (auto if not running)
189
+ agent-relay up
190
+
191
+ # Wrap agent (auto-registers with daemon)
192
+ agent-relay wrap --name Alice claude
193
+
194
+ # Spawn from another agent
195
+ ->relay:spawn Worker claude "Implement feature X"
196
+ ```
197
+
198
+ **Lifecycle visibility:**
199
+ - Dashboard shows all active agents
200
+ - Presence tracking (online/offline/idle)
201
+ - Session summaries for recovery
202
+
203
+ **Comparison:**
204
+
205
+ | Aspect | Tmux-Orchestrator | Agent Relay |
206
+ |--------|-------------------|-------------|
207
+ | **Agent Creation** | Manual tmux commands | `wrap` or `spawn` command |
208
+ | **Registration** | None (implicit) | Explicit HELLO handshake |
209
+ | **Discovery** | Know window names | `agents.json` + dashboard |
210
+ | **Health Check** | Manual inspection | Heartbeat monitoring |
211
+ | **Recovery** | Context notes | Session summaries |
212
+
213
+ ---
214
+
215
+ ## 4. Workflow & Task Management
216
+
217
+ ### Tmux-Orchestrator: Specification-Driven
218
+
219
+ **Project Specification (Markdown):**
220
+ ```markdown
221
+ # Project: Auth System
222
+
223
+ ## Goals
224
+ - Implement JWT authentication
225
+ - Add refresh token support
226
+
227
+ ## Constraints
228
+ - Must use existing User model
229
+ - No external auth providers
230
+
231
+ ## Deliverables
232
+ 1. /api/login endpoint
233
+ 2. /api/refresh endpoint
234
+ 3. Auth middleware
235
+ 4. Unit tests
236
+
237
+ ## Success Criteria
238
+ - All tests pass
239
+ - No security vulnerabilities
240
+ ```
241
+
242
+ **Git Discipline (Mandatory):**
243
+ - Commit every 30 minutes minimum
244
+ - Feature branches for new work
245
+ - Descriptive commit messages
246
+ - Tag stable versions
247
+
248
+ **Escalation Pattern:**
249
+ - 3 message exchanges maximum before escalation
250
+ - PM→Orchestrator for cross-project issues
251
+ - Async standups instead of meetings
252
+
253
+ ### Agent Relay: Message-Based Coordination
254
+
255
+ **No built-in workflow system** - pure messaging:
256
+
257
+ ```
258
+ ->relay:Worker TASK: Implement /api/login endpoint
259
+
260
+ ->relay:Lead STATUS: Working on login endpoint
261
+
262
+ ->relay:Lead DONE: Login endpoint complete, ready for review
263
+
264
+ ->relay:Reviewer REVIEW: Please check src/auth/login.ts
265
+ ```
266
+
267
+ **Conventions (not enforced):**
268
+ - `TASK:` for assignments
269
+ - `STATUS:` for updates
270
+ - `DONE:` for completion
271
+ - `ACK:` for acknowledgment
272
+ - `QUESTION:` for clarification
273
+
274
+ **Comparison:**
275
+
276
+ | Aspect | Tmux-Orchestrator | Agent Relay |
277
+ |--------|-------------------|-------------|
278
+ | **Task Definition** | Markdown specs | Free-form messages |
279
+ | **Progress Tracking** | Git commits | Message history |
280
+ | **Escalation** | Fixed rules | Ad-hoc |
281
+ | **Quality Gates** | PM checklists | None built-in |
282
+ | **Audit Trail** | Git history | SQLite + optional Git |
283
+
284
+ ---
285
+
286
+ ## 5. Scaling & Multi-Project
287
+
288
+ ### Tmux-Orchestrator: Separate Sessions
289
+
290
+ **Multi-project architecture:**
291
+ ```
292
+ tmux sessions:
293
+ ├── project-a (PM in :0, Engineers in :1, :2)
294
+ ├── project-b (PM in :0, Engineers in :1)
295
+ └── orchestrator (Coordinates all)
296
+ ```
297
+
298
+ **Cross-project intelligence:**
299
+ - Orchestrator shares patterns between projects
300
+ - Solutions discovered in one project applied to others
301
+ - Global learning repository (LEARNINGS.md)
302
+
303
+ ### Agent Relay: Bridge Mode
304
+
305
+ **Multi-project via bridge:**
306
+ ```bash
307
+ agent-relay bridge ~/auth ~/frontend ~/api
308
+ ```
309
+
310
+ **Addressing:**
311
+ ```
312
+ ->relay:frontend:Designer Update the login UI
313
+ ->relay:*:lead Question about API design
314
+ ```
315
+
316
+ **Comparison:**
317
+
318
+ | Aspect | Tmux-Orchestrator | Agent Relay |
319
+ |--------|-------------------|-------------|
320
+ | **Multi-Project** | Separate tmux sessions | Bridge mode |
321
+ | **Cross-Project Messaging** | Via Orchestrator | Direct with project:agent |
322
+ | **Knowledge Sharing** | LEARNINGS.md file | Optional cloud sync |
323
+ | **Setup Complexity** | Manual session management | Single bridge command |
324
+
325
+ ---
326
+
327
+ ## 6. Pros & Cons
328
+
329
+ ### Tmux-Orchestrator
330
+
331
+ **Pros:**
332
+ 1. **Simple conceptually** - Just shell scripts and tmux
333
+ 2. **24/7 autonomy** - Agents work without supervision
334
+ 3. **Role clarity** - Fixed hierarchy prevents confusion
335
+ 4. **Git-native** - Progress tracked via commits
336
+ 5. **Zero dependencies** - Only needs tmux + Claude CLI
337
+ 6. **Pioneered the approach** - Proved the concept works
338
+ 7. **Multi-project coordination** - Orchestrator shares knowledge
339
+
340
+ **Cons:**
341
+ 1. **No message persistence** - Lost on session end
342
+ 2. **Fixed hierarchy** - Can't adapt topology
343
+ 3. **Manual setup** - Each tmux session created by hand
344
+ 4. **No delivery confirmation** - Hope messages arrive
345
+ 5. **Timing-dependent** - 500ms delays add up
346
+ 6. **No dashboard** - Inspect tmux manually
347
+ 7. **Fragile scripting** - Shell edge cases break things
348
+
349
+ ### Agent Relay
350
+
351
+ **Pros:**
352
+ 1. **Real-time messaging** - <5ms latency
353
+ 2. **Message persistence** - SQLite history
354
+ 3. **Flexible topology** - Any structure works
355
+ 4. **Visual dashboard** - Real-time monitoring
356
+ 5. **Delivery guarantees** - ACK/NACK system
357
+ 6. **Zero-config agents** - Pattern detection
358
+ 7. **Bridge mode** - Multi-project coordination
359
+ 8. **Session continuity** - Summaries for recovery
360
+
361
+ **Cons:**
362
+ 1. **More infrastructure** - Daemon, SQLite, etc.
363
+ 2. **Node.js dependency** - Heavier than shell
364
+ 3. **No built-in workflows** - Pure messaging
365
+ 4. **Single project default** - Bridge for multi-project
366
+ 5. **No enforced discipline** - Git commits optional
367
+ 6. **Learning curve** - More concepts than scripts
368
+
369
+ ---
370
+
371
+ ## 7. Key Learnings for Relay
372
+
373
+ ### Ideas to Adopt
374
+
375
+ 1. **Self-Scheduling Pattern**
376
+ ```
377
+ ->relay:schedule 30m "Check progress on feature X"
378
+ ```
379
+ - Allow agents to schedule their own check-ins
380
+ - Persist schedules to survive restarts
381
+ - Dashboard shows upcoming scheduled messages
382
+
383
+ 2. **Enforced Git Discipline**
384
+ - Add hooks for "commit required every 30 min"
385
+ - Track last commit time per agent
386
+ - Dashboard warning when overdue
387
+ - Block new task assignment without recent commit
388
+
389
+ 3. **Specification Templates**
390
+ - Built-in project spec format
391
+ - Parse and track deliverables
392
+ - Link messages to spec items
393
+ - Progress view against spec
394
+
395
+ 4. **LEARNINGS.md Pattern**
396
+ - Shared knowledge repository across agents
397
+ - Auto-extract insights from agent conversations
398
+ - Searchable via `->relay:learn "topic"`
399
+
400
+ 5. **Escalation Rules**
401
+ - Configurable max exchanges before escalation
402
+ - Auto-notify lead after threshold
403
+ - Thread-based tracking
404
+
405
+ 6. **Context Notes for Scheduling**
406
+ - When scheduling, include context summary
407
+ - Inject context when schedule fires
408
+ - Better continuity than raw message
409
+
410
+ ### Ideas to Evaluate
411
+
412
+ 1. **Fixed Hierarchy Option**
413
+ - Optional enforcement of Orchestrator→PM→Engineer
414
+ - Validation that messages follow hierarchy
415
+ - Could reduce chaos in large teams
416
+
417
+ 2. **Window Location Awareness**
418
+ - Track which tmux session:window each agent is in
419
+ - Allow `->relay:window:1` addressing
420
+ - Useful for legacy tmux users
421
+
422
+ 3. **Per-Project Sessions**
423
+ - Separate daemon per project by default
424
+ - Bridge only when needed
425
+ - Simpler mental model
426
+
427
+ ---
428
+
429
+ ## 8. Architectural Recommendations
430
+
431
+ ### Short-term Improvements
432
+
433
+ 1. **Add Self-Scheduling Command**
434
+ ```typescript
435
+ // New pattern: ->relay:schedule TIME MESSAGE
436
+ // Agent schedules a message to itself
437
+ ->relay:schedule 30m "Review PR status"
438
+
439
+ // Implementation: Store in SQLite, daemon fires at time
440
+ interface ScheduledMessage {
441
+ id: string;
442
+ fireAt: number;
443
+ to: string;
444
+ content: string;
445
+ context?: string;
446
+ }
447
+ ```
448
+
449
+ 2. **Add Commit Tracking**
450
+ ```typescript
451
+ // Track last commit time per agent
452
+ // Dashboard shows: "Alice: last commit 45m ago (WARNING)"
453
+ // Optional hook: block task assignment if >60m since commit
454
+ ```
455
+
456
+ 3. **Add Context Notes to Spawn**
457
+ ```
458
+ ->relay:spawn Worker claude <<<
459
+ TASK: Implement /api/login
460
+ CONTEXT: Using JWT, see src/auth/utils.ts for helpers
461
+ SPEC: Must pass all tests in tests/auth/
462
+ >>>
463
+ ```
464
+
465
+ ### Medium-term Improvements
466
+
467
+ 1. **Specification Tracking**
468
+ ```yaml
469
+ # .relay/spec.yaml
470
+ deliverables:
471
+ - id: login-endpoint
472
+ description: "/api/login endpoint"
473
+ assigned: Worker
474
+ status: in_progress
475
+ tests: ["tests/auth/login.test.ts"]
476
+ ```
477
+
478
+ 2. **Learning Repository Integration**
479
+ ```
480
+ # Auto-capture learnings from conversations
481
+ ->relay:learn "JWT refresh tokens need 7-day expiry for mobile apps"
482
+
483
+ # Query learnings
484
+ ->relay:recall "JWT refresh token best practices"
485
+ ```
486
+
487
+ 3. **Escalation Rules Engine**
488
+ ```yaml
489
+ # .relay/escalation.yaml
490
+ rules:
491
+ - after: 3 messages
492
+ if: no_resolution
493
+ notify: lead
494
+ - after: 30 minutes
495
+ if: blocked
496
+ notify: orchestrator
497
+ ```
498
+
499
+ ### Long-term Vision
500
+
501
+ **Hybrid Approach:**
502
+
503
+ ```
504
+ ┌─────────────────────────────────────────────────────────────┐
505
+ │ Agent Relay + Tmux-Orchestrator Hybrid │
506
+ ├─────────────────────────────────────────────────────────────┤
507
+ │ ┌─────────────────────────────────────────────────────────┐ │
508
+ │ │ agent-relay daemon (communication) │ │
509
+ │ │ • Real-time messaging (<5ms) │ │
510
+ │ │ • Message persistence │ │
511
+ │ │ • Dashboard monitoring │ │
512
+ │ └─────────────────────────────────────────────────────────┘ │
513
+ │ │ │
514
+ │ ┌─────────────────────────────────────────────────────────┐ │
515
+ │ │ Orchestration Layer (from Tmux-Orchestrator) │ │
516
+ │ │ • Self-scheduling system │ │
517
+ │ │ • Git commit enforcement │ │
518
+ │ │ • Specification tracking │ │
519
+ │ │ • Escalation rules │ │
520
+ │ │ • Learning repository │ │
521
+ │ └─────────────────────────────────────────────────────────┘ │
522
+ │ │ │
523
+ │ ┌─────────────────────────────────────────────────────────┐ │
524
+ │ │ tmux sessions (execution) │ │
525
+ │ │ • Persistent agent processes │ │
526
+ │ │ • Hierarchical project structure │ │
527
+ │ │ • 24/7 autonomous operation │ │
528
+ │ └─────────────────────────────────────────────────────────┘ │
529
+ └─────────────────────────────────────────────────────────────┘
530
+ ```
531
+
532
+ ---
533
+
534
+ ## 9. Solution Rankings
535
+
536
+ ### Best for Each Use Case
537
+
538
+ | If you need... | Tmux-Orchestrator | Agent Relay | Winner |
539
+ |----------------|-------------------|-------------|--------|
540
+ | **24/7 autonomous operation** | Native design | Supported | Tie |
541
+ | **Real-time messaging** | ~500ms delays | <5ms | Relay |
542
+ | **Multi-project coordination** | Via Orchestrator | Bridge mode | Tie |
543
+ | **Minimal dependencies** | Just tmux + bash | Node.js daemon | Tmux |
544
+ | **Message persistence** | None | SQLite | Relay |
545
+ | **Visual monitoring** | tmux inspection | Web dashboard | Relay |
546
+ | **Delivery confirmation** | None | ACK/NACK | Relay |
547
+ | **Built-in workflows** | Spec + escalation | None | Tmux |
548
+ | **Git discipline** | Enforced by convention | Optional | Tmux |
549
+ | **Flexible topology** | Fixed 3-tier | Any structure | Relay |
550
+ | **Learning curve** | Low (shell scripts) | Moderate | Tmux |
551
+
552
+ ### Overall Assessment
553
+
554
+ **Tmux-Orchestrator is better for:**
555
+ - Teams that want minimal tooling
556
+ - Projects with clear hierarchical structure
557
+ - Those prioritizing simplicity over features
558
+ - Users comfortable with shell scripting
559
+
560
+ **Agent Relay is better for:**
561
+ - Teams needing real-time coordination
562
+ - Projects requiring message history
563
+ - Users wanting visual monitoring
564
+ - Flexible team structures
565
+
566
+ ---
567
+
568
+ ## 10. Conclusion
569
+
570
+ Tmux-Orchestrator and Agent Relay represent two generations of tmux-based agent orchestration:
571
+
572
+ **Tmux-Orchestrator** (First Generation):
573
+ - Proved the concept of autonomous 24/7 Claude agents
574
+ - Simple shell scripts + tmux persistence
575
+ - Fixed hierarchy solves context window problem
576
+ - Git discipline ensures work is preserved
577
+ - Limited by lack of real-time communication
578
+
579
+ **Agent Relay** (Second Generation):
580
+ - Builds on the tmux foundation
581
+ - Adds real-time messaging layer
582
+ - Provides persistence and monitoring
583
+ - Enables flexible topologies
584
+ - Could benefit from workflow features
585
+
586
+ **Recommendation:**
587
+
588
+ Agent Relay should adopt key innovations from Tmux-Orchestrator:
589
+
590
+ | Priority | Feature | Effort | Impact |
591
+ |----------|---------|--------|--------|
592
+ | P0 | Self-scheduling system | Medium | High |
593
+ | P0 | Git commit tracking | Low | Medium |
594
+ | P1 | Context notes for continuity | Low | Medium |
595
+ | P1 | Specification tracking | Medium | High |
596
+ | P2 | Escalation rules engine | Medium | Medium |
597
+ | P2 | Learning repository | High | High |
598
+ | P3 | Fixed hierarchy mode | Low | Low |
599
+
600
+ The ideal future combines Agent Relay's communication sophistication with Tmux-Orchestrator's workflow discipline.
601
+
602
+ ---
603
+
604
+ *Analysis generated 2026-01-04*
605
+ *Based on Tmux-Orchestrator repository (github.com/Jedward23/Tmux-Orchestrator) and Agent Relay source code*
Binary file