@agent-relay/dashboard-server 2.0.83-beta.0 → 2.0.85

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 (397) hide show
  1. package/dist/index.d.ts +3 -21
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -23
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/attachment-storage.d.ts +10 -0
  6. package/dist/lib/attachment-storage.d.ts.map +1 -0
  7. package/dist/lib/attachment-storage.js +53 -0
  8. package/dist/lib/attachment-storage.js.map +1 -0
  9. package/dist/lib/broadcast.d.ts +18 -0
  10. package/dist/lib/broadcast.d.ts.map +1 -0
  11. package/dist/lib/broadcast.js +118 -0
  12. package/dist/lib/broadcast.js.map +1 -0
  13. package/dist/lib/channel-state.d.ts +32 -0
  14. package/dist/lib/channel-state.d.ts.map +1 -0
  15. package/dist/lib/channel-state.js +146 -0
  16. package/dist/lib/channel-state.js.map +1 -0
  17. package/dist/lib/cli-auth.d.ts +40 -0
  18. package/dist/lib/cli-auth.d.ts.map +1 -0
  19. package/dist/lib/cli-auth.js +144 -0
  20. package/dist/lib/cli-auth.js.map +1 -0
  21. package/dist/lib/cloud-persistence.d.ts +6 -0
  22. package/dist/lib/cloud-persistence.d.ts.map +1 -0
  23. package/dist/lib/cloud-persistence.js +130 -0
  24. package/dist/lib/cloud-persistence.js.map +1 -0
  25. package/dist/lib/data-assembly.d.ts +136 -0
  26. package/dist/lib/data-assembly.d.ts.map +1 -0
  27. package/dist/lib/data-assembly.js +550 -0
  28. package/dist/lib/data-assembly.js.map +1 -0
  29. package/dist/lib/file-search.d.ts +8 -0
  30. package/dist/lib/file-search.d.ts.map +1 -0
  31. package/dist/lib/file-search.js +90 -0
  32. package/dist/lib/file-search.js.map +1 -0
  33. package/dist/lib/identity.d.ts +54 -0
  34. package/dist/lib/identity.d.ts.map +1 -0
  35. package/dist/lib/identity.js +124 -0
  36. package/dist/lib/identity.js.map +1 -0
  37. package/dist/lib/log-line-cleaner.d.ts +20 -0
  38. package/dist/lib/log-line-cleaner.d.ts.map +1 -0
  39. package/dist/lib/log-line-cleaner.js +117 -0
  40. package/dist/lib/log-line-cleaner.js.map +1 -0
  41. package/dist/lib/log-reader.d.ts +14 -0
  42. package/dist/lib/log-reader.d.ts.map +1 -0
  43. package/dist/lib/log-reader.js +80 -0
  44. package/dist/lib/log-reader.js.map +1 -0
  45. package/dist/lib/message-id.d.ts +30 -0
  46. package/dist/lib/message-id.d.ts.map +1 -0
  47. package/dist/lib/message-id.js +50 -0
  48. package/dist/lib/message-id.js.map +1 -0
  49. package/dist/lib/process-metrics.d.ts +11 -0
  50. package/dist/lib/process-metrics.d.ts.map +1 -0
  51. package/dist/lib/process-metrics.js +252 -0
  52. package/dist/lib/process-metrics.js.map +1 -0
  53. package/dist/lib/proxy-route-table.d.ts +16 -0
  54. package/dist/lib/proxy-route-table.d.ts.map +1 -0
  55. package/dist/lib/proxy-route-table.js +73 -0
  56. package/dist/lib/proxy-route-table.js.map +1 -0
  57. package/dist/lib/send-strategy.d.ts +62 -0
  58. package/dist/lib/send-strategy.d.ts.map +1 -0
  59. package/dist/lib/send-strategy.js +136 -0
  60. package/dist/lib/send-strategy.js.map +1 -0
  61. package/dist/lib/server-state.d.ts +115 -0
  62. package/dist/lib/server-state.d.ts.map +1 -0
  63. package/dist/lib/server-state.js +138 -0
  64. package/dist/lib/server-state.js.map +1 -0
  65. package/dist/lib/spawned-agents.d.ts +35 -0
  66. package/dist/lib/spawned-agents.d.ts.map +1 -0
  67. package/dist/lib/spawned-agents.js +340 -0
  68. package/dist/lib/spawned-agents.js.map +1 -0
  69. package/dist/lib/types.d.ts +123 -0
  70. package/dist/lib/types.d.ts.map +1 -0
  71. package/dist/lib/types.js +12 -0
  72. package/dist/lib/types.js.map +1 -0
  73. package/dist/lib/utils.d.ts +71 -0
  74. package/dist/lib/utils.d.ts.map +1 -0
  75. package/dist/lib/utils.js +332 -0
  76. package/dist/lib/utils.js.map +1 -0
  77. package/dist/lib/websocket-runtime.d.ts +17 -0
  78. package/dist/lib/websocket-runtime.d.ts.map +1 -0
  79. package/dist/lib/websocket-runtime.js +76 -0
  80. package/dist/lib/websocket-runtime.js.map +1 -0
  81. package/dist/mocks/fixtures.d.ts +2 -2
  82. package/dist/mocks/fixtures.js +1 -1
  83. package/dist/mocks/routes.d.ts.map +1 -1
  84. package/dist/mocks/routes.js +30 -3
  85. package/dist/mocks/routes.js.map +1 -1
  86. package/dist/mocks/types.d.ts +1 -1
  87. package/dist/mocks/types.js +1 -1
  88. package/dist/proxy-server.d.ts +7 -33
  89. package/dist/proxy-server.d.ts.map +1 -1
  90. package/dist/proxy-server.js +353 -201
  91. package/dist/proxy-server.js.map +1 -1
  92. package/dist/relaycast-provider-helpers.d.ts +41 -0
  93. package/dist/relaycast-provider-helpers.d.ts.map +1 -0
  94. package/dist/relaycast-provider-helpers.js +285 -0
  95. package/dist/relaycast-provider-helpers.js.map +1 -0
  96. package/dist/relaycast-provider-types.d.ts +117 -0
  97. package/dist/relaycast-provider-types.d.ts.map +1 -0
  98. package/dist/relaycast-provider-types.js +6 -0
  99. package/dist/relaycast-provider-types.js.map +1 -0
  100. package/dist/relaycast-provider.d.ts +48 -0
  101. package/dist/relaycast-provider.d.ts.map +1 -0
  102. package/dist/relaycast-provider.js +293 -0
  103. package/dist/relaycast-provider.js.map +1 -0
  104. package/dist/routes/agents.d.ts +7 -0
  105. package/dist/routes/agents.d.ts.map +1 -0
  106. package/dist/routes/agents.js +180 -0
  107. package/dist/routes/agents.js.map +1 -0
  108. package/dist/routes/auth.d.ts +45 -0
  109. package/dist/routes/auth.d.ts.map +1 -0
  110. package/dist/routes/auth.js +261 -0
  111. package/dist/routes/auth.js.map +1 -0
  112. package/dist/routes/broker-proxy.d.ts +7 -0
  113. package/dist/routes/broker-proxy.d.ts.map +1 -0
  114. package/dist/routes/broker-proxy.js +114 -0
  115. package/dist/routes/broker-proxy.js.map +1 -0
  116. package/dist/routes/channels-integrated.d.ts +84 -0
  117. package/dist/routes/channels-integrated.d.ts.map +1 -0
  118. package/dist/routes/channels-integrated.js +644 -0
  119. package/dist/routes/channels-integrated.js.map +1 -0
  120. package/dist/routes/channels.d.ts +7 -0
  121. package/dist/routes/channels.d.ts.map +1 -0
  122. package/dist/routes/channels.js +457 -0
  123. package/dist/routes/channels.js.map +1 -0
  124. package/dist/routes/data.d.ts +7 -0
  125. package/dist/routes/data.d.ts.map +1 -0
  126. package/dist/routes/data.js +108 -0
  127. package/dist/routes/data.js.map +1 -0
  128. package/dist/routes/decisions.d.ts +31 -0
  129. package/dist/routes/decisions.d.ts.map +1 -0
  130. package/dist/routes/decisions.js +109 -0
  131. package/dist/routes/decisions.js.map +1 -0
  132. package/dist/routes/fleet.d.ts +24 -0
  133. package/dist/routes/fleet.d.ts.map +1 -0
  134. package/dist/routes/fleet.js +131 -0
  135. package/dist/routes/fleet.js.map +1 -0
  136. package/dist/routes/health.d.ts +7 -0
  137. package/dist/routes/health.d.ts.map +1 -0
  138. package/dist/routes/health.js +55 -0
  139. package/dist/routes/health.js.map +1 -0
  140. package/dist/routes/history-relaycast.d.ts +8 -0
  141. package/dist/routes/history-relaycast.d.ts.map +1 -0
  142. package/dist/routes/history-relaycast.js +165 -0
  143. package/dist/routes/history-relaycast.js.map +1 -0
  144. package/dist/routes/history.d.ts +13 -0
  145. package/dist/routes/history.d.ts.map +1 -0
  146. package/dist/routes/history.js +205 -0
  147. package/dist/routes/history.js.map +1 -0
  148. package/dist/routes/messaging.d.ts +34 -0
  149. package/dist/routes/messaging.d.ts.map +1 -0
  150. package/dist/routes/messaging.js +306 -0
  151. package/dist/routes/messaging.js.map +1 -0
  152. package/dist/routes/metrics.d.ts +26 -0
  153. package/dist/routes/metrics.d.ts.map +1 -0
  154. package/dist/routes/metrics.js +276 -0
  155. package/dist/routes/metrics.js.map +1 -0
  156. package/dist/routes/reactions.d.ts +9 -0
  157. package/dist/routes/reactions.d.ts.map +1 -0
  158. package/dist/routes/reactions.js +76 -0
  159. package/dist/routes/reactions.js.map +1 -0
  160. package/dist/routes/relay-config.d.ts +4 -0
  161. package/dist/routes/relay-config.d.ts.map +1 -0
  162. package/dist/routes/relay-config.js +81 -0
  163. package/dist/routes/relay-config.js.map +1 -0
  164. package/dist/routes/settings.d.ts +6 -0
  165. package/dist/routes/settings.d.ts.map +1 -0
  166. package/dist/routes/settings.js +119 -0
  167. package/dist/routes/settings.js.map +1 -0
  168. package/dist/routes/spawn.d.ts +74 -0
  169. package/dist/routes/spawn.d.ts.map +1 -0
  170. package/dist/routes/spawn.js +520 -0
  171. package/dist/routes/spawn.js.map +1 -0
  172. package/dist/routes/system.d.ts +21 -0
  173. package/dist/routes/system.d.ts.map +1 -0
  174. package/dist/routes/system.js +186 -0
  175. package/dist/routes/system.js.map +1 -0
  176. package/dist/routes/tasks.d.ts +27 -0
  177. package/dist/routes/tasks.d.ts.map +1 -0
  178. package/dist/routes/tasks.js +103 -0
  179. package/dist/routes/tasks.js.map +1 -0
  180. package/dist/routes/thread-replies.d.ts +7 -0
  181. package/dist/routes/thread-replies.d.ts.map +1 -0
  182. package/dist/routes/thread-replies.js +178 -0
  183. package/dist/routes/thread-replies.js.map +1 -0
  184. package/dist/routes/ui.d.ts +6 -0
  185. package/dist/routes/ui.d.ts.map +1 -0
  186. package/dist/routes/ui.js +114 -0
  187. package/dist/routes/ui.js.map +1 -0
  188. package/dist/server.d.ts.map +1 -1
  189. package/dist/server.js +304 -6152
  190. package/dist/server.js.map +1 -1
  191. package/dist/services/broker-spawn-reader.d.ts +1 -1
  192. package/dist/services/broker-spawn-reader.d.ts.map +1 -1
  193. package/dist/services/broker-spawn-reader.js +3 -2
  194. package/dist/services/broker-spawn-reader.js.map +1 -1
  195. package/dist/services/health-worker-manager.d.ts +9 -60
  196. package/dist/services/health-worker-manager.d.ts.map +1 -1
  197. package/dist/services/health-worker-manager.js +18 -148
  198. package/dist/services/health-worker-manager.js.map +1 -1
  199. package/dist/services/index.d.ts +3 -3
  200. package/dist/services/index.d.ts.map +1 -1
  201. package/dist/services/index.js +3 -3
  202. package/dist/services/index.js.map +1 -1
  203. package/dist/services/metrics.d.ts +11 -104
  204. package/dist/services/metrics.d.ts.map +1 -1
  205. package/dist/services/metrics.js +21 -190
  206. package/dist/services/metrics.js.map +1 -1
  207. package/dist/services/needs-attention.d.ts +21 -22
  208. package/dist/services/needs-attention.d.ts.map +1 -1
  209. package/dist/services/needs-attention.js +46 -71
  210. package/dist/services/needs-attention.js.map +1 -1
  211. package/dist/services/user-bridge.d.ts +0 -3
  212. package/dist/services/user-bridge.d.ts.map +1 -1
  213. package/dist/services/user-bridge.js +0 -5
  214. package/dist/services/user-bridge.js.map +1 -1
  215. package/dist/start.d.ts +4 -4
  216. package/dist/start.js +97 -89
  217. package/dist/start.js.map +1 -1
  218. package/dist/types/index.d.ts +11 -21
  219. package/dist/types/index.d.ts.map +1 -1
  220. package/dist/websocket/bridge.d.ts +12 -0
  221. package/dist/websocket/bridge.d.ts.map +1 -0
  222. package/dist/websocket/bridge.js +33 -0
  223. package/dist/websocket/bridge.js.map +1 -0
  224. package/dist/websocket/logs.d.ts +30 -0
  225. package/dist/websocket/logs.d.ts.map +1 -0
  226. package/dist/websocket/logs.js +577 -0
  227. package/dist/websocket/logs.js.map +1 -0
  228. package/dist/websocket/main.d.ts +15 -0
  229. package/dist/websocket/main.d.ts.map +1 -0
  230. package/dist/websocket/main.js +84 -0
  231. package/dist/websocket/main.js.map +1 -0
  232. package/dist/websocket/mock.d.ts +6 -0
  233. package/dist/websocket/mock.d.ts.map +1 -0
  234. package/dist/websocket/mock.js +49 -0
  235. package/dist/websocket/mock.js.map +1 -0
  236. package/dist/websocket/presence.d.ts +74 -0
  237. package/dist/websocket/presence.d.ts.map +1 -0
  238. package/dist/websocket/presence.js +330 -0
  239. package/dist/websocket/presence.js.map +1 -0
  240. package/dist/websocket/proxy.d.ts +6 -0
  241. package/dist/websocket/proxy.d.ts.map +1 -0
  242. package/dist/websocket/proxy.js +39 -0
  243. package/dist/websocket/proxy.js.map +1 -0
  244. package/dist/websocket/standalone.d.ts +17 -0
  245. package/dist/websocket/standalone.d.ts.map +1 -0
  246. package/dist/websocket/standalone.js +268 -0
  247. package/dist/websocket/standalone.js.map +1 -0
  248. package/out/404.html +1 -1
  249. package/out/_next/static/{TnAI-TAQ4-bNJRL3Ln3NB → 49XhcS8k_e8607S7KBMwA}/_buildManifest.js +1 -1
  250. package/out/_next/static/chunks/1028-53c5a7e2453505f8.js +1 -0
  251. package/out/_next/static/chunks/1528-78b17000a7e10bc6.js +2 -0
  252. package/out/_next/static/chunks/1695-4a5d33ba715e09b4.js +1 -0
  253. package/out/_next/static/chunks/1705-36c2180d00a4a569.js +1 -0
  254. package/out/_next/static/chunks/1dd3208c-e1f87c7b3dc1a820.js +1 -0
  255. package/out/_next/static/chunks/3663-47290254b8f6f5dd.js +1 -0
  256. package/out/_next/static/chunks/3677-4b225baf4801d9b9.js +73 -0
  257. package/out/_next/static/chunks/5118-de1c8f968feab8e2.js +1 -0
  258. package/out/_next/static/chunks/5888-15cbe97c90ed5fae.js +1 -0
  259. package/out/_next/static/chunks/6773-a45343a98df3abb5.js +1 -0
  260. package/out/_next/static/chunks/6940-b824612b605e79b3.js +9 -0
  261. package/out/_next/static/chunks/7894-f4a15249082a680d.js +1 -0
  262. package/out/_next/static/chunks/9175-b3617c1e5cbfed0e.js +1 -0
  263. package/out/_next/static/chunks/9372-1a804b8d08c7a236.js +1 -0
  264. package/out/_next/static/chunks/{ab6c8a12-0a58072fbb505134.js → ab6c8a12-91438a812d94ecf0.js} +1 -1
  265. package/out/_next/static/chunks/app/_not-found/page-8e8842f82d204726.js +1 -0
  266. package/out/_next/static/chunks/app/about/page-b78577a7da8fa459.js +1 -0
  267. package/out/_next/static/chunks/app/app/[[...slug]]/page-3dffd65b6344f53e.js +1 -0
  268. package/out/_next/static/chunks/app/app/onboarding/page-b89be9aa6264a5e1.js +1 -0
  269. package/out/_next/static/chunks/app/blog/go-to-bed-wake-up-to-a-finished-product/page-fbd00893ef69e499.js +1 -0
  270. package/out/_next/static/chunks/app/blog/let-them-cook-multi-agent-orchestration/page-de2ea13649d0b6d3.js +1 -0
  271. package/out/_next/static/chunks/app/blog/page-a08e263c57a156fa.js +1 -0
  272. package/out/_next/static/chunks/app/careers/page-02228e1d6969b232.js +1 -0
  273. package/out/_next/static/chunks/app/changelog/page-1b5c1d79efc6e53a.js +1 -0
  274. package/out/_next/static/chunks/app/cloud/link/page-99654edffffb3af2.js +1 -0
  275. package/out/_next/static/chunks/app/complete-profile/page-59d146e5ddeafc5c.js +1 -0
  276. package/out/_next/static/chunks/app/connect-repos/page-995e16a976a6632c.js +1 -0
  277. package/out/_next/static/chunks/app/contact/page-273396a5ad57bcee.js +1 -0
  278. package/out/_next/static/chunks/app/dev/cli-tools/page-a71b80dcb2d5fc8d.js +1 -0
  279. package/out/_next/static/chunks/app/dev/log-viewer/page-46a6151ae1be0796.js +1 -0
  280. package/out/_next/static/chunks/app/docs/page-7c7cb603b24b7c40.js +1 -0
  281. package/out/_next/static/chunks/app/history/page-0c5cab1dab4e8886.js +1 -0
  282. package/out/_next/static/chunks/app/layout-96d72ba8ef8a43a0.js +1 -0
  283. package/out/_next/static/chunks/app/login/page-0ccbab34213df842.js +1 -0
  284. package/out/_next/static/chunks/app/metrics/page-8616272aeab9c8b0.js +1 -0
  285. package/out/_next/static/chunks/app/page-09ce10603ad9a251.js +1 -0
  286. package/out/_next/static/chunks/app/pricing/page-91c975079120c941.js +1 -0
  287. package/out/_next/static/chunks/app/privacy/{page-c21d51ac2dee3a88.js → page-a49ab271cc686644.js} +1 -1
  288. package/out/_next/static/chunks/app/providers/{page-59114505f4353512.js → page-d775d6eb5bc29e96.js} +1 -1
  289. package/out/_next/static/chunks/app/providers/setup/[provider]/page-ec4ef3cd80de807e.js +1 -0
  290. package/out/_next/static/chunks/app/security/page-d9da9bd9191e8f95.js +1 -0
  291. package/out/_next/static/chunks/app/signup/page-930eca0bf5fd299d.js +1 -0
  292. package/out/_next/static/chunks/app/terms/page-3e4827620b98613c.js +1 -0
  293. package/out/_next/static/chunks/framework-648e1ae7da590300.js +1 -0
  294. package/out/_next/static/chunks/{main-acb1b24265295d6a.js → main-2b1990080c292d92.js} +1 -1
  295. package/out/_next/static/chunks/main-app-9f6b7ff9e754a8f5.js +1 -0
  296. package/out/_next/static/chunks/pages/_app-a077b72e02273ab1.js +1 -0
  297. package/out/_next/static/chunks/pages/_error-84001666436a04e4.js +1 -0
  298. package/out/_next/static/chunks/{webpack-dd93b81e2659669c.js → webpack-7586035f1585f2db.js} +1 -1
  299. package/out/_next/static/css/eb9fc69d1e3d2bed.css +1 -0
  300. package/out/about.html +2 -2
  301. package/out/about.txt +2 -2
  302. package/out/app/onboarding.html +1 -1
  303. package/out/app/onboarding.txt +2 -2
  304. package/out/app.html +1 -1
  305. package/out/app.txt +2 -2
  306. package/out/blog/go-to-bed-wake-up-to-a-finished-product.html +3 -3
  307. package/out/blog/go-to-bed-wake-up-to-a-finished-product.txt +1 -1
  308. package/out/blog/let-them-cook-multi-agent-orchestration.html +2 -2
  309. package/out/blog/let-them-cook-multi-agent-orchestration.txt +2 -2
  310. package/out/blog.html +2 -2
  311. package/out/blog.txt +1 -1
  312. package/out/careers.html +2 -2
  313. package/out/careers.txt +2 -2
  314. package/out/changelog.html +2 -2
  315. package/out/changelog.txt +2 -2
  316. package/out/cloud/link.html +1 -1
  317. package/out/cloud/link.txt +2 -2
  318. package/out/complete-profile.html +2 -2
  319. package/out/complete-profile.txt +2 -2
  320. package/out/connect-repos.html +1 -1
  321. package/out/connect-repos.txt +2 -2
  322. package/out/contact.html +2 -2
  323. package/out/contact.txt +2 -2
  324. package/out/dev/cli-tools.html +1 -0
  325. package/out/dev/cli-tools.txt +7 -0
  326. package/out/dev/log-viewer.html +23 -0
  327. package/out/dev/log-viewer.txt +7 -0
  328. package/out/docs.html +2 -2
  329. package/out/docs.txt +2 -2
  330. package/out/history.html +1 -1
  331. package/out/history.txt +2 -2
  332. package/out/index.html +1 -1
  333. package/out/index.txt +2 -2
  334. package/out/login.html +2 -2
  335. package/out/login.txt +2 -2
  336. package/out/metrics.html +1 -1
  337. package/out/metrics.txt +2 -2
  338. package/out/pricing.html +2 -2
  339. package/out/pricing.txt +2 -2
  340. package/out/privacy.html +2 -2
  341. package/out/privacy.txt +2 -2
  342. package/out/providers/setup/claude.html +1 -1
  343. package/out/providers/setup/claude.txt +2 -2
  344. package/out/providers/setup/codex.html +1 -1
  345. package/out/providers/setup/codex.txt +2 -2
  346. package/out/providers/setup/cursor.html +1 -1
  347. package/out/providers/setup/cursor.txt +2 -2
  348. package/out/providers.html +1 -1
  349. package/out/providers.txt +2 -2
  350. package/out/security.html +2 -2
  351. package/out/security.txt +2 -2
  352. package/out/signup.html +2 -2
  353. package/out/signup.txt +2 -2
  354. package/out/terms.html +2 -2
  355. package/out/terms.txt +2 -2
  356. package/package.json +10 -11
  357. package/out/_next/static/chunks/11-9a2993a37266dcb3.js +0 -9
  358. package/out/_next/static/chunks/118-ae2b650136a5a5fc.js +0 -1
  359. package/out/_next/static/chunks/1dd3208c-40ab0fc0f60392b8.js +0 -1
  360. package/out/_next/static/chunks/202-fc0763dd7488e58f.js +0 -1
  361. package/out/_next/static/chunks/259-83b77fa1b91ba5aa.js +0 -1
  362. package/out/_next/static/chunks/407-0c82986cf79c8ecb.js +0 -1
  363. package/out/_next/static/chunks/528-f5f676996d613c25.js +0 -2
  364. package/out/_next/static/chunks/663-ddb04081febc3678.js +0 -1
  365. package/out/_next/static/chunks/687-88b6b139a6bb0e2e.js +0 -1
  366. package/out/_next/static/chunks/695-51d25b1988644374.js +0 -1
  367. package/out/_next/static/chunks/773-54a2641043c81e55.js +0 -1
  368. package/out/_next/static/chunks/app/_not-found/page-6da9b72091e5b511.js +0 -1
  369. package/out/_next/static/chunks/app/about/page-fff7c6457683f243.js +0 -1
  370. package/out/_next/static/chunks/app/app/[[...slug]]/page-f7eca1b66fb4249b.js +0 -1
  371. package/out/_next/static/chunks/app/app/onboarding/page-129abc5da2e67971.js +0 -1
  372. package/out/_next/static/chunks/app/blog/go-to-bed-wake-up-to-a-finished-product/page-5d5f28fd126b692f.js +0 -1
  373. package/out/_next/static/chunks/app/blog/let-them-cook-multi-agent-orchestration/page-b194f207fbd91862.js +0 -1
  374. package/out/_next/static/chunks/app/blog/page-b9bd9d8703fca76a.js +0 -1
  375. package/out/_next/static/chunks/app/careers/page-a4bd8d5f4de8f4eb.js +0 -1
  376. package/out/_next/static/chunks/app/changelog/page-9a1f6ad1743d63c5.js +0 -1
  377. package/out/_next/static/chunks/app/cloud/link/page-0844c5699b027c3b.js +0 -1
  378. package/out/_next/static/chunks/app/complete-profile/page-39ed5a67916beb87.js +0 -1
  379. package/out/_next/static/chunks/app/connect-repos/page-297eddee0c39f2a3.js +0 -1
  380. package/out/_next/static/chunks/app/contact/page-3c1dd8690217fade.js +0 -1
  381. package/out/_next/static/chunks/app/docs/page-1875e981f2c3fd13.js +0 -1
  382. package/out/_next/static/chunks/app/history/page-2d5c5695c9e8b40c.js +0 -1
  383. package/out/_next/static/chunks/app/layout-0a4b99656da25511.js +0 -1
  384. package/out/_next/static/chunks/app/login/page-f69c076f5a6fc520.js +0 -1
  385. package/out/_next/static/chunks/app/metrics/page-bebbee055669a17e.js +0 -1
  386. package/out/_next/static/chunks/app/page-0ee604f7070d14c0.js +0 -1
  387. package/out/_next/static/chunks/app/pricing/page-eeae7d594af333b6.js +0 -1
  388. package/out/_next/static/chunks/app/providers/setup/[provider]/page-daf9b3e05e77ae19.js +0 -1
  389. package/out/_next/static/chunks/app/security/page-cd562730fe84a0a2.js +0 -1
  390. package/out/_next/static/chunks/app/signup/page-c242ca08101a84ff.js +0 -1
  391. package/out/_next/static/chunks/app/terms/page-c7001720e7941dc6.js +0 -1
  392. package/out/_next/static/chunks/framework-3664cab31236a9fa.js +0 -1
  393. package/out/_next/static/chunks/main-app-7f73a939a312a228.js +0 -1
  394. package/out/_next/static/chunks/pages/_app-10a93ab5b7c32eb3.js +0 -1
  395. package/out/_next/static/chunks/pages/_error-2d792b2a41857be4.js +0 -1
  396. package/out/_next/static/css/8968d98ed4c4d33f.css +0 -1
  397. /package/out/_next/static/{TnAI-TAQ4-bNJRL3Ln3NB → 49XhcS8k_e8607S7KBMwA}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawned-agents.js","sourceRoot":"","sources":["../../src/lib/spawned-agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Shared types for the dashboard server.
3
+ */
4
+ import type { Express } from 'express';
5
+ import type { Server } from 'http';
6
+ import type { WebSocketServer } from 'ws';
7
+ import type { AgentStatus, Message, RelaycastConfig } from '../relaycast-provider.js';
8
+ export type DashboardMode = 'proxy' | 'standalone' | 'mock';
9
+ export interface DashboardSnapshot {
10
+ agents: AgentStatus[];
11
+ users: AgentStatus[];
12
+ messages: Message[];
13
+ activity: Message[];
14
+ sessions: Array<Record<string, unknown>>;
15
+ summaries: Array<Record<string, unknown>>;
16
+ }
17
+ export interface DashboardChannel {
18
+ id: string;
19
+ name: string;
20
+ description?: string;
21
+ topic?: string;
22
+ visibility: 'public' | 'private';
23
+ status: 'active' | 'archived';
24
+ createdAt: string;
25
+ createdBy: string;
26
+ memberCount: number;
27
+ unreadCount: number;
28
+ hasMentions: boolean;
29
+ isDm: boolean;
30
+ }
31
+ export interface FileSearchResult {
32
+ path: string;
33
+ name: string;
34
+ isDirectory: boolean;
35
+ }
36
+ export interface SpawnedAgentSummary {
37
+ name: string;
38
+ cli: string;
39
+ model?: string;
40
+ cwd?: string;
41
+ pid?: number;
42
+ online?: boolean;
43
+ }
44
+ export interface SpawnedAgentNamesResult {
45
+ names: Set<string>;
46
+ agents: SpawnedAgentSummary[];
47
+ hasSpawnedList: boolean;
48
+ }
49
+ export interface LocalStateAgentSummary {
50
+ name: string;
51
+ cli: string;
52
+ startedAt: string;
53
+ online: boolean;
54
+ pid?: number;
55
+ cwd?: string;
56
+ }
57
+ export declare const EMPTY_DASHBOARD_SNAPSHOT: DashboardSnapshot;
58
+ export interface DashboardServerOptions {
59
+ /** Port to listen on (default: 3888) */
60
+ port?: number;
61
+ /** Relay broker URL for proxy mode */
62
+ relayUrl?: string;
63
+ /** Path to static files directory (default: ../out) */
64
+ staticDir?: string;
65
+ /** Data directory containing relaycast.json credentials */
66
+ dataDir?: string;
67
+ /** Relaycast API key — overrides relaycast.json and RELAY_API_KEY env var */
68
+ relayApiKey?: string;
69
+ /** Enable verbose logging */
70
+ verbose?: boolean;
71
+ /** Run in mock mode (no relay broker required) */
72
+ mock?: boolean;
73
+ /** CORS allowed origins (comma-separated, or '*' for all) */
74
+ corsOrigins?: string;
75
+ /** Request timeout in milliseconds (default: 30000) */
76
+ requestTimeout?: number;
77
+ }
78
+ export interface DashboardServer {
79
+ app: Express;
80
+ server: Server;
81
+ wss: WebSocketServer;
82
+ close: () => Promise<void>;
83
+ mode: DashboardMode;
84
+ setRelayApiKey: (apiKey: string) => void;
85
+ }
86
+ /**
87
+ * Shared context passed to route registration functions.
88
+ */
89
+ export interface RouteContext {
90
+ mode: DashboardMode;
91
+ dataDir: string;
92
+ staticDir: string;
93
+ verbose: boolean;
94
+ relayUrl: string | undefined;
95
+ brokerProxyEnabled: boolean;
96
+ resolveRelaycastConfig: () => RelaycastConfig | null;
97
+ setRelayApiKey: (apiKey: string) => void;
98
+ getRelaycastSnapshot: () => Promise<DashboardSnapshot>;
99
+ getRelaycastChannels: () => Promise<{
100
+ channels: DashboardChannel[];
101
+ archivedChannels: DashboardChannel[];
102
+ }>;
103
+ sendRelaycastMessage: (params: {
104
+ to: string;
105
+ message: string;
106
+ from?: string;
107
+ thread?: string;
108
+ }) => Promise<{
109
+ success: true;
110
+ messageId: string;
111
+ } | {
112
+ success: false;
113
+ status: number;
114
+ error: string;
115
+ }>;
116
+ getSpawnedAgents: () => Promise<{
117
+ names: Set<string> | null;
118
+ agents: SpawnedAgentSummary[] | null;
119
+ }>;
120
+ getLocalAgentNames: () => Set<string> | null;
121
+ filterPhantomAgents: (agents: AgentStatus[], spawnedAgentNames: Set<string> | null, localAgentNames: Set<string> | null) => AgentStatus[];
122
+ }
123
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEtF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,wBAAwB,EAAE,iBAOtC,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,eAAe,CAAC;IACrB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sBAAsB,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;IACrD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,oBAAoB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvD,oBAAoB,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAAC,gBAAgB,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC,CAAC;IAC5G,oBAAoB,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CACxG;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CACzF,CAAC;IACF,gBAAgB,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACrG,kBAAkB,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC7C,mBAAmB,EAAE,CACnB,MAAM,EAAE,WAAW,EAAE,EACrB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EACrC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,KAChC,WAAW,EAAE,CAAC;CACpB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared types for the dashboard server.
3
+ */
4
+ export const EMPTY_DASHBOARD_SNAPSHOT = {
5
+ agents: [],
6
+ users: [],
7
+ messages: [],
8
+ activity: [],
9
+ sessions: [],
10
+ summaries: [],
11
+ };
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+DH,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;CACd,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Pure utility functions and constants extracted from proxy-server.ts.
3
+ */
4
+ import type { Response } from 'express';
5
+ import type { DashboardChannel } from './types.js';
6
+ export declare const PHANTOM_OFFLINE_MAX_AGE_MS: number;
7
+ export declare const SPAWNED_CACHE_TTL_MS = 3000;
8
+ export declare const STANDALONE_WS_POLL_MS = 3000;
9
+ export declare const WORKFLOW_BOOTSTRAP_TASK = "You are connected to Agent Relay. Wait for relay messages and respond using Relaycast MCP tools.";
10
+ export declare const WORKFLOW_CONVENTIONS: string;
11
+ export declare function normalizeRelayUrl(relayUrl: string | undefined): string | undefined;
12
+ export declare function withWorkflowConventions(task: string | undefined, includeWorkflowConventions: boolean): string | undefined;
13
+ export declare function parseTimestamp(value: string | undefined): number | null;
14
+ export declare function countOnlineAgents(agents: Array<{
15
+ status?: string;
16
+ }>): number;
17
+ export { normalizeName } from './identity.js';
18
+ export declare function isDirectRecipient(target: string): boolean;
19
+ export declare function parseCommandDescriptor(rawCli: string | undefined, rawArgs?: unknown, rawModel?: string): {
20
+ cli: string;
21
+ args: string[];
22
+ model?: string;
23
+ };
24
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
25
+ export declare function normalizeChannelTarget(channel: string): string;
26
+ export declare function normalizeChannelName(channel: string): string;
27
+ export declare function parseInviteMembers(invites: unknown): Array<{
28
+ id: string;
29
+ type: 'user' | 'agent';
30
+ }>;
31
+ export declare function mapChannelForDashboard(channel: {
32
+ id: string;
33
+ name: string;
34
+ topic: string | null;
35
+ member_count?: number;
36
+ created_at: string;
37
+ is_archived: boolean;
38
+ }): DashboardChannel;
39
+ export declare function sendHtmlFileOrFallback(res: Response, filePath: string, fallbackHtml?: string, statusIfMissing?: number): void;
40
+ /**
41
+ * Get the host to bind to.
42
+ * In cloud environments, bind to '::' (IPv6 any) which also accepts IPv4 on dual-stack.
43
+ */
44
+ export declare function getBindHost(): string | undefined;
45
+ export declare function isPidAlive(pid: number): boolean;
46
+ export declare function toIsoTimestamp(epochSeconds: unknown): string;
47
+ export interface TeamWorkerLike {
48
+ name: string;
49
+ team?: string;
50
+ }
51
+ export interface TeamSpawnReaderLike {
52
+ getActiveWorkers(): TeamWorkerLike[];
53
+ }
54
+ export interface UserBridgeLike {
55
+ isUserRegistered(username: string): boolean;
56
+ }
57
+ /**
58
+ * Check if an agent has heartbeated recently in agents.json.
59
+ */
60
+ export declare function isAgentOnline(teamDir: string, agentName: string): boolean;
61
+ export declare function isRemoteAgent(teamDir: string, agentName: string): boolean;
62
+ export declare function isRemoteUser(teamDir: string, username: string): boolean;
63
+ export declare function isUserOnline(teamDir: string, username: string, onlineUsers: Map<string, unknown>, userBridge?: UserBridgeLike): boolean;
64
+ export declare function isRecipientOnline(teamDir: string, name: string, onlineUsers: Map<string, unknown>, userBridge?: UserBridgeLike): boolean;
65
+ /**
66
+ * Resolve team members from teams config, active workers, and agents.json.
67
+ */
68
+ export declare function getTeamMembers(teamName: string, projectRoot: string | undefined, dataDir: string, teamDir: string, spawnReader?: TeamSpawnReaderLike): string[];
69
+ export declare function isValidUsername(username: unknown): username is string;
70
+ export declare function isValidAvatarUrl(url: unknown): url is string | undefined;
71
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,0BAA0B,QAAgB,CAAC;AACxD,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,eAAO,MAAM,uBAAuB,qGACgE,CAAC;AACrG,eAAO,MAAM,oBAAoB,QAOrB,CAAC;AAEb,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAKlF;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,0BAA0B,EAAE,OAAO,GAClC,MAAM,GAAG,SAAS,CAepB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIvE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAI5E;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,CAAC,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAqCjD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO9D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAiClG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,gBAAgB,CAiBnB;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,SAAM,GACpB,IAAI,CAYN;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,SAAS,CAUhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAK5D;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,IAAI,cAAc,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAgBzE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAazE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAavE;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAGT;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,mBAAmB,GAChC,MAAM,EAAE,CAkCV;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,MAAM,CAQrE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,GAAG,SAAS,CAiBxE"}
@@ -0,0 +1,332 @@
1
+ /**
2
+ * Pure utility functions and constants extracted from proxy-server.ts.
3
+ */
4
+ import fs from 'fs';
5
+ import path from 'path';
6
+ import { loadTeamsConfig } from '@agent-relay/config';
7
+ export const PHANTOM_OFFLINE_MAX_AGE_MS = 5 * 60 * 1000;
8
+ export const SPAWNED_CACHE_TTL_MS = 3000;
9
+ export const STANDALONE_WS_POLL_MS = 3000;
10
+ export const WORKFLOW_BOOTSTRAP_TASK = 'You are connected to Agent Relay. Wait for relay messages and respond using Relaycast MCP tools.';
11
+ export const WORKFLOW_CONVENTIONS = [
12
+ 'Messaging requirements:',
13
+ '- When you receive `Relay message from <sender> ...`, reply using `relay_send(to: "<sender>", message: "...")`.',
14
+ '- Send `ACK: ...` when you receive a task.',
15
+ '- Send `DONE: ...` when the task is complete.',
16
+ '- Do not reply only in terminal text; send the response via relay_send.',
17
+ '- Use relay_inbox() and relay_who() when context is missing.',
18
+ ].join('\n');
19
+ export function normalizeRelayUrl(relayUrl) {
20
+ if (!relayUrl)
21
+ return undefined;
22
+ const trimmed = relayUrl.trim();
23
+ if (!trimmed)
24
+ return undefined;
25
+ return trimmed.replace(/\/+$/, '');
26
+ }
27
+ export function withWorkflowConventions(task, includeWorkflowConventions) {
28
+ const normalized = typeof task === 'string' ? task.trim() : '';
29
+ if (!includeWorkflowConventions) {
30
+ return normalized.length > 0 ? normalized : undefined;
31
+ }
32
+ if (normalized.length === 0) {
33
+ return `${WORKFLOW_BOOTSTRAP_TASK}\n\n${WORKFLOW_CONVENTIONS}`;
34
+ }
35
+ const lower = normalized.toLowerCase();
36
+ const alreadyConfigured = lower.includes('relay_send(') || (lower.includes('ack:') && lower.includes('done:'));
37
+ return alreadyConfigured ? normalized : `${normalized}\n\n${WORKFLOW_CONVENTIONS}`;
38
+ }
39
+ export function parseTimestamp(value) {
40
+ if (!value)
41
+ return null;
42
+ const timestamp = new Date(value).getTime();
43
+ return Number.isNaN(timestamp) ? null : timestamp;
44
+ }
45
+ export function countOnlineAgents(agents) {
46
+ return agents.reduce((count, agent) => {
47
+ return (agent.status ?? '').toLowerCase() === 'online' ? count + 1 : count;
48
+ }, 0);
49
+ }
50
+ export { normalizeName } from './identity.js';
51
+ export function isDirectRecipient(target) {
52
+ const trimmed = target.trim();
53
+ if (!trimmed)
54
+ return false;
55
+ return !trimmed.startsWith('#') && !trimmed.startsWith('dm:');
56
+ }
57
+ export function parseCommandDescriptor(rawCli, rawArgs, rawModel) {
58
+ const cliSource = typeof rawCli === 'string' ? rawCli.trim() : '';
59
+ const cliTokens = cliSource ? cliSource.split(/\s+/) : [];
60
+ const cli = cliTokens[0] ?? 'unknown';
61
+ const inlineArgs = cliTokens.slice(1);
62
+ const extraArgs = Array.isArray(rawArgs)
63
+ ? rawArgs.filter((arg) => typeof arg === 'string' && arg.trim().length > 0)
64
+ : [];
65
+ const combinedArgs = [...inlineArgs, ...extraArgs];
66
+ const filteredArgs = [];
67
+ let model = typeof rawModel === 'string' && rawModel.trim() ? rawModel.trim() : undefined;
68
+ for (let index = 0; index < combinedArgs.length; index += 1) {
69
+ const arg = combinedArgs[index];
70
+ if (arg === '--model') {
71
+ const next = combinedArgs[index + 1];
72
+ if (!model && typeof next === 'string' && next.trim()) {
73
+ model = next.trim();
74
+ }
75
+ index += 1;
76
+ continue;
77
+ }
78
+ if (arg.startsWith('--model=')) {
79
+ if (!model) {
80
+ const value = arg.slice('--model='.length).trim();
81
+ if (value) {
82
+ model = value;
83
+ }
84
+ }
85
+ continue;
86
+ }
87
+ filteredArgs.push(arg);
88
+ }
89
+ return { cli, args: filteredArgs, model };
90
+ }
91
+ export function isRecord(value) {
92
+ return typeof value === 'object' && value !== null;
93
+ }
94
+ export function normalizeChannelTarget(channel) {
95
+ const trimmed = channel.trim();
96
+ if (!trimmed)
97
+ return '';
98
+ if (trimmed.startsWith('#') || trimmed.startsWith('dm:')) {
99
+ return trimmed;
100
+ }
101
+ return `#${trimmed}`;
102
+ }
103
+ export function normalizeChannelName(channel) {
104
+ const target = normalizeChannelTarget(channel);
105
+ if (target.startsWith('#')) {
106
+ return target.slice(1);
107
+ }
108
+ return target;
109
+ }
110
+ export function parseInviteMembers(invites) {
111
+ if (typeof invites === 'string') {
112
+ return invites
113
+ .split(',')
114
+ .map((value) => value.trim())
115
+ .filter(Boolean)
116
+ .map((id) => ({ id, type: 'agent' }));
117
+ }
118
+ if (Array.isArray(invites)) {
119
+ return invites
120
+ .map((item) => {
121
+ if (typeof item === 'string') {
122
+ const id = item.trim();
123
+ return id ? { id, type: 'agent' } : null;
124
+ }
125
+ if (!isRecord(item) || typeof item.id !== 'string') {
126
+ return null;
127
+ }
128
+ const id = item.id.trim();
129
+ if (!id) {
130
+ return null;
131
+ }
132
+ const type = item.type === 'user' ? 'user' : 'agent';
133
+ return { id, type };
134
+ })
135
+ .filter((item) => item !== null);
136
+ }
137
+ return [];
138
+ }
139
+ export function mapChannelForDashboard(channel) {
140
+ const channelId = channel.name.startsWith('#') ? channel.name : `#${channel.name}`;
141
+ return {
142
+ id: channelId,
143
+ name: channel.name,
144
+ description: channel.topic ?? undefined,
145
+ topic: channel.topic ?? undefined,
146
+ visibility: 'public',
147
+ status: channel.is_archived ? 'archived' : 'active',
148
+ createdAt: channel.created_at,
149
+ createdBy: 'system',
150
+ memberCount: channel.member_count ?? 0,
151
+ unreadCount: 0,
152
+ hasMentions: false,
153
+ isDm: channel.name.startsWith('dm:'),
154
+ };
155
+ }
156
+ export function sendHtmlFileOrFallback(res, filePath, fallbackHtml, statusIfMissing = 404) {
157
+ if (fs.existsSync(filePath)) {
158
+ res.sendFile(path.resolve(filePath));
159
+ return;
160
+ }
161
+ if (fallbackHtml) {
162
+ res.type('html').send(fallbackHtml);
163
+ return;
164
+ }
165
+ res.status(statusIfMissing).json({ error: 'Not found' });
166
+ }
167
+ /**
168
+ * Get the host to bind to.
169
+ * In cloud environments, bind to '::' (IPv6 any) which also accepts IPv4 on dual-stack.
170
+ */
171
+ export function getBindHost() {
172
+ if (process.env.BIND_HOST) {
173
+ return process.env.BIND_HOST;
174
+ }
175
+ const isCloudEnvironment = process.env.FLY_APP_NAME ||
176
+ process.env.WORKSPACE_ID ||
177
+ process.env.RELAY_WORKSPACE_ID ||
178
+ process.env.RUNNING_IN_DOCKER === 'true';
179
+ return isCloudEnvironment ? '::' : undefined;
180
+ }
181
+ export function isPidAlive(pid) {
182
+ try {
183
+ process.kill(pid, 0);
184
+ return true;
185
+ }
186
+ catch {
187
+ return false;
188
+ }
189
+ }
190
+ export function toIsoTimestamp(epochSeconds) {
191
+ if (typeof epochSeconds !== 'number' || !Number.isFinite(epochSeconds) || epochSeconds <= 0) {
192
+ return new Date(0).toISOString();
193
+ }
194
+ return new Date(epochSeconds * 1000).toISOString();
195
+ }
196
+ /**
197
+ * Check if an agent has heartbeated recently in agents.json.
198
+ */
199
+ export function isAgentOnline(teamDir, agentName) {
200
+ if (agentName === '*')
201
+ return true;
202
+ const agentsPath = path.join(teamDir, 'agents.json');
203
+ if (!fs.existsSync(agentsPath))
204
+ return false;
205
+ try {
206
+ const data = JSON.parse(fs.readFileSync(agentsPath, 'utf-8'));
207
+ const agent = data.agents?.find((a) => a.name === agentName);
208
+ if (!agent || !agent.lastSeen)
209
+ return false;
210
+ const thirtySecondsAgo = Date.now() - 30 * 1000;
211
+ return new Date(agent.lastSeen).getTime() > thirtySecondsAgo;
212
+ }
213
+ catch {
214
+ return false;
215
+ }
216
+ }
217
+ export function isRemoteAgent(teamDir, agentName) {
218
+ const remoteAgentsPath = path.join(teamDir, 'remote-agents.json');
219
+ if (!fs.existsSync(remoteAgentsPath))
220
+ return false;
221
+ try {
222
+ const data = JSON.parse(fs.readFileSync(remoteAgentsPath, 'utf-8'));
223
+ if (data.updatedAt && Date.now() - data.updatedAt > 60 * 1000) {
224
+ return false;
225
+ }
226
+ return data.agents?.some((a) => a.name === agentName) ?? false;
227
+ }
228
+ catch {
229
+ return false;
230
+ }
231
+ }
232
+ export function isRemoteUser(teamDir, username) {
233
+ const remoteUsersPath = path.join(teamDir, 'remote-users.json');
234
+ if (!fs.existsSync(remoteUsersPath))
235
+ return false;
236
+ try {
237
+ const data = JSON.parse(fs.readFileSync(remoteUsersPath, 'utf-8'));
238
+ if (data.updatedAt && Date.now() - data.updatedAt > 60 * 1000) {
239
+ return false;
240
+ }
241
+ return data.users?.some((u) => u.name === username) ?? false;
242
+ }
243
+ catch {
244
+ return false;
245
+ }
246
+ }
247
+ export function isUserOnline(teamDir, username, onlineUsers, userBridge) {
248
+ if (username === '*')
249
+ return true;
250
+ return onlineUsers.has(username) || userBridge?.isUserRegistered(username) === true || isRemoteUser(teamDir, username);
251
+ }
252
+ export function isRecipientOnline(teamDir, name, onlineUsers, userBridge) {
253
+ return (isAgentOnline(teamDir, name) ||
254
+ isRemoteAgent(teamDir, name) ||
255
+ isUserOnline(teamDir, name, onlineUsers, userBridge));
256
+ }
257
+ /**
258
+ * Resolve team members from teams config, active workers, and agents.json.
259
+ */
260
+ export function getTeamMembers(teamName, projectRoot, dataDir, teamDir, spawnReader) {
261
+ const members = new Set();
262
+ const teamsConfig = loadTeamsConfig(projectRoot || dataDir);
263
+ if (teamsConfig && teamsConfig.team === teamName) {
264
+ for (const agent of teamsConfig.agents) {
265
+ members.add(agent.name);
266
+ }
267
+ }
268
+ if (spawnReader) {
269
+ const activeWorkers = spawnReader.getActiveWorkers();
270
+ for (const worker of activeWorkers) {
271
+ if (worker.team === teamName) {
272
+ members.add(worker.name);
273
+ }
274
+ }
275
+ }
276
+ const agentsPath = path.join(teamDir, 'agents.json');
277
+ if (fs.existsSync(agentsPath)) {
278
+ try {
279
+ const data = JSON.parse(fs.readFileSync(agentsPath, 'utf-8'));
280
+ for (const agent of (data.agents || [])) {
281
+ if (agent.team === teamName) {
282
+ members.add(agent.name);
283
+ }
284
+ }
285
+ }
286
+ catch {
287
+ // Ignore parse errors.
288
+ }
289
+ }
290
+ return Array.from(members);
291
+ }
292
+ export function isValidUsername(username) {
293
+ if (typeof username !== 'string')
294
+ return false;
295
+ if (username.length === 0 || username.length > 50)
296
+ return false;
297
+ if (!/^[a-zA-Z0-9]/.test(username) || !/[a-zA-Z0-9]$/.test(username))
298
+ return false;
299
+ if (!/^[a-zA-Z0-9][a-zA-Z0-9 _.-]*[a-zA-Z0-9]$/.test(username) && username.length > 1)
300
+ return false;
301
+ if (username.length === 1 && !/^[a-zA-Z0-9]$/.test(username))
302
+ return false;
303
+ if (/ /.test(username))
304
+ return false;
305
+ return true;
306
+ }
307
+ export function isValidAvatarUrl(url) {
308
+ if (url === undefined || url === null)
309
+ return true;
310
+ if (typeof url !== 'string')
311
+ return false;
312
+ try {
313
+ const parsed = new URL(url);
314
+ if (parsed.protocol !== 'https:')
315
+ return false;
316
+ if (parsed.hostname === 'avatars.githubusercontent.com' ||
317
+ parsed.hostname === 'github.com' ||
318
+ parsed.hostname.endsWith('.githubusercontent.com'))
319
+ return true;
320
+ if (parsed.hostname === 'www.gravatar.com' ||
321
+ parsed.hostname === 'gravatar.com' ||
322
+ parsed.hostname === 'secure.gravatar.com')
323
+ return true;
324
+ if (parsed.hostname === 'ui-avatars.com')
325
+ return true;
326
+ return false;
327
+ }
328
+ catch {
329
+ return false;
330
+ }
331
+ }
332
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Server } from 'http';
2
+ import type { WebSocket, WebSocketServer } from 'ws';
3
+ export interface WebSocketRuntimeDeps {
4
+ server: Server;
5
+ wss: WebSocketServer;
6
+ wssBridge: WebSocketServer;
7
+ wssLogs: WebSocketServer;
8
+ wssPresence: WebSocketServer;
9
+ mainClientAlive: WeakMap<WebSocket, boolean>;
10
+ bridgeClientAlive: WeakMap<WebSocket, boolean>;
11
+ debug: (message: string) => void;
12
+ }
13
+ /**
14
+ * Configure ping/pong health checks, HTTP upgrade routing, and server-level WS error handlers.
15
+ */
16
+ export declare function setupWebSocketRuntime(deps: WebSocketRuntimeDeps): void;
17
+ //# sourceMappingURL=websocket-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-runtime.d.ts","sourceRoot":"","sources":["../../src/lib/websocket-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,eAAe,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,eAAe,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,iBAAiB,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CA4FtE"}