agent-relay 2.0.21 → 2.0.23

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 (412) hide show
  1. package/bin/relay-pty-linux-arm64 +0 -0
  2. package/dist/src/cli/index.d.ts +3 -3
  3. package/dist/src/cli/index.js +31 -100
  4. package/package.json +22 -29
  5. package/packages/api-types/package.json +1 -1
  6. package/packages/bridge/package.json +8 -8
  7. package/packages/cli-tester/package.json +1 -1
  8. package/packages/cloud/dist/server.js +25 -4
  9. package/packages/cloud/package.json +6 -6
  10. package/packages/config/package.json +2 -2
  11. package/packages/continuity/package.json +1 -1
  12. package/packages/daemon/dist/orchestrator.js +21 -1
  13. package/packages/daemon/dist/router.d.ts +5 -0
  14. package/packages/daemon/dist/router.js +31 -0
  15. package/packages/daemon/dist/server.d.ts +5 -0
  16. package/packages/daemon/dist/server.js +131 -1
  17. package/packages/daemon/package.json +12 -12
  18. package/packages/hooks/package.json +4 -4
  19. package/packages/mcp/dist/client.d.ts +15 -0
  20. package/packages/mcp/dist/client.js +9 -0
  21. package/packages/mcp/dist/server.js +13 -1
  22. package/packages/mcp/dist/tools/index.d.ts +2 -0
  23. package/packages/mcp/dist/tools/index.js +2 -0
  24. package/packages/mcp/dist/tools/relay-connected.d.ts +17 -0
  25. package/packages/mcp/dist/tools/relay-connected.js +40 -0
  26. package/packages/mcp/dist/tools/relay-remove-agent.d.ts +20 -0
  27. package/packages/mcp/dist/tools/relay-remove-agent.js +50 -0
  28. package/packages/mcp/package.json +2 -2
  29. package/packages/memory/package.json +2 -2
  30. package/packages/policy/package.json +2 -2
  31. package/packages/protocol/dist/types.d.ts +46 -1
  32. package/packages/protocol/package.json +1 -1
  33. package/packages/resiliency/package.json +1 -1
  34. package/packages/sdk/dist/client.d.ts +22 -1
  35. package/packages/sdk/dist/client.js +31 -0
  36. package/packages/sdk/dist/protocol/index.d.ts +1 -1
  37. package/packages/sdk/dist/protocol/types.d.ts +35 -1
  38. package/packages/sdk/package.json +2 -2
  39. package/packages/spawner/package.json +1 -1
  40. package/packages/state/package.json +1 -1
  41. package/packages/storage/dist/adapter.d.ts +4 -0
  42. package/packages/storage/dist/sqlite-adapter.d.ts +10 -0
  43. package/packages/storage/dist/sqlite-adapter.js +26 -0
  44. package/packages/storage/package.json +2 -2
  45. package/packages/telemetry/package.json +1 -1
  46. package/packages/trajectory/package.json +2 -2
  47. package/packages/user-directory/package.json +2 -2
  48. package/packages/utils/dist/update-checker.js +4 -0
  49. package/packages/utils/package.json +1 -1
  50. package/packages/wrapper/package.json +6 -6
  51. package/deploy/workspace/codex.config.toml +0 -20
  52. package/deploy/workspace/entrypoint-browser.sh +0 -118
  53. package/deploy/workspace/entrypoint.sh +0 -612
  54. package/deploy/workspace/gh-credential-relay +0 -90
  55. package/deploy/workspace/gh-relay +0 -156
  56. package/deploy/workspace/git-credential-relay +0 -330
  57. package/deploy/workspace/git-credential-relay.test.sh +0 -230
  58. package/dist/dashboard/out/404.html +0 -1
  59. package/dist/dashboard/out/_next/static/7MZPqYkVGw3EGzVBkVmY9/_buildManifest.js +0 -1
  60. package/dist/dashboard/out/_next/static/7MZPqYkVGw3EGzVBkVmY9/_ssgManifest.js +0 -1
  61. package/dist/dashboard/out/_next/static/chunks/116-a883fca163f3a5bc.js +0 -1
  62. package/dist/dashboard/out/_next/static/chunks/117-c8afed19e821a35d.js +0 -2
  63. package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +0 -1
  64. package/dist/dashboard/out/_next/static/chunks/320-a6304232cd0ee2ce.js +0 -1
  65. package/dist/dashboard/out/_next/static/chunks/532-bace199897eeab37.js +0 -9
  66. package/dist/dashboard/out/_next/static/chunks/631-16b905e5920f9b59.js +0 -1
  67. package/dist/dashboard/out/_next/static/chunks/648-acb2ff9f77cbfbd3.js +0 -1
  68. package/dist/dashboard/out/_next/static/chunks/766-2aea80818f7eb0d8.js +0 -1
  69. package/dist/dashboard/out/_next/static/chunks/83-26d2bde54616ee90.js +0 -1
  70. package/dist/dashboard/out/_next/static/chunks/847-f1f467060f32afff.js +0 -1
  71. package/dist/dashboard/out/_next/static/chunks/891-5cb1513eeb97a891.js +0 -1
  72. package/dist/dashboard/out/_next/static/chunks/app/_not-found/page-60501fddbafba9dc.js +0 -1
  73. package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-9914652442f7e4fb.js +0 -1
  74. package/dist/dashboard/out/_next/static/chunks/app/app/page-366fb7c078d4e9e0.js +0 -1
  75. package/dist/dashboard/out/_next/static/chunks/app/cloud/link/page-fa1d5842aa90e8a6.js +0 -1
  76. package/dist/dashboard/out/_next/static/chunks/app/complete-profile/page-dd64bbdf66b639cd.js +0 -1
  77. package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-113060009ef35bc2.js +0 -1
  78. package/dist/dashboard/out/_next/static/chunks/app/history/page-9965d2483011b846.js +0 -1
  79. package/dist/dashboard/out/_next/static/chunks/app/layout-6b91e33784c20610.js +0 -1
  80. package/dist/dashboard/out/_next/static/chunks/app/login/page-435eceb0073be027.js +0 -1
  81. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-1e37ef8e73940b40.js +0 -1
  82. package/dist/dashboard/out/_next/static/chunks/app/page-8119d4246743574e.js +0 -1
  83. package/dist/dashboard/out/_next/static/chunks/app/pricing/page-9db3ebdfa567a7c9.js +0 -1
  84. package/dist/dashboard/out/_next/static/chunks/app/providers/page-ecb16ffd3b36262b.js +0 -1
  85. package/dist/dashboard/out/_next/static/chunks/app/providers/setup/[provider]/page-4dbe33f0f7691b7c.js +0 -1
  86. package/dist/dashboard/out/_next/static/chunks/app/signup/page-c7a0a28341365ae0.js +0 -1
  87. package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +0 -18
  88. package/dist/dashboard/out/_next/static/chunks/fd9d1056-609918ca7b6280bb.js +0 -1
  89. package/dist/dashboard/out/_next/static/chunks/framework-f66176bb897dc684.js +0 -1
  90. package/dist/dashboard/out/_next/static/chunks/main-311c3db74dcfadb7.js +0 -1
  91. package/dist/dashboard/out/_next/static/chunks/main-app-fdbeb09028f57c9f.js +0 -1
  92. package/dist/dashboard/out/_next/static/chunks/pages/_app-72b849fbd24ac258.js +0 -1
  93. package/dist/dashboard/out/_next/static/chunks/pages/_error-7ba65e1336b92748.js +0 -1
  94. package/dist/dashboard/out/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
  95. package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +0 -1
  96. package/dist/dashboard/out/_next/static/css/4034f236dd1a3178.css +0 -1
  97. package/dist/dashboard/out/_next/static/css/6892f8422896ef7a.css +0 -1
  98. package/dist/dashboard/out/alt-logos/agent-relay-logo-128.png +0 -0
  99. package/dist/dashboard/out/alt-logos/agent-relay-logo-256.png +0 -0
  100. package/dist/dashboard/out/alt-logos/agent-relay-logo-32.png +0 -0
  101. package/dist/dashboard/out/alt-logos/agent-relay-logo-512.png +0 -0
  102. package/dist/dashboard/out/alt-logos/agent-relay-logo-64.png +0 -0
  103. package/dist/dashboard/out/alt-logos/agent-relay-logo.svg +0 -45
  104. package/dist/dashboard/out/alt-logos/logo.svg +0 -38
  105. package/dist/dashboard/out/alt-logos/monogram-logo-128.png +0 -0
  106. package/dist/dashboard/out/alt-logos/monogram-logo-256.png +0 -0
  107. package/dist/dashboard/out/alt-logos/monogram-logo-32.png +0 -0
  108. package/dist/dashboard/out/alt-logos/monogram-logo-512.png +0 -0
  109. package/dist/dashboard/out/alt-logos/monogram-logo-64.png +0 -0
  110. package/dist/dashboard/out/alt-logos/monogram-logo.svg +0 -38
  111. package/dist/dashboard/out/app/onboarding.html +0 -1
  112. package/dist/dashboard/out/app/onboarding.txt +0 -7
  113. package/dist/dashboard/out/app.html +0 -1
  114. package/dist/dashboard/out/app.txt +0 -7
  115. package/dist/dashboard/out/apple-icon.png +0 -0
  116. package/dist/dashboard/out/cloud/link.html +0 -1
  117. package/dist/dashboard/out/cloud/link.txt +0 -7
  118. package/dist/dashboard/out/complete-profile.html +0 -5
  119. package/dist/dashboard/out/complete-profile.txt +0 -7
  120. package/dist/dashboard/out/connect-repos.html +0 -1
  121. package/dist/dashboard/out/connect-repos.txt +0 -7
  122. package/dist/dashboard/out/history.html +0 -1
  123. package/dist/dashboard/out/history.txt +0 -7
  124. package/dist/dashboard/out/index.html +0 -1
  125. package/dist/dashboard/out/index.txt +0 -7
  126. package/dist/dashboard/out/login.html +0 -5
  127. package/dist/dashboard/out/login.txt +0 -7
  128. package/dist/dashboard/out/metrics.html +0 -1
  129. package/dist/dashboard/out/metrics.txt +0 -7
  130. package/dist/dashboard/out/pricing.html +0 -13
  131. package/dist/dashboard/out/pricing.txt +0 -7
  132. package/dist/dashboard/out/providers/setup/claude.html +0 -1
  133. package/dist/dashboard/out/providers/setup/claude.txt +0 -8
  134. package/dist/dashboard/out/providers/setup/codex.html +0 -1
  135. package/dist/dashboard/out/providers/setup/codex.txt +0 -8
  136. package/dist/dashboard/out/providers/setup/cursor.html +0 -1
  137. package/dist/dashboard/out/providers/setup/cursor.txt +0 -8
  138. package/dist/dashboard/out/providers.html +0 -1
  139. package/dist/dashboard/out/providers.txt +0 -7
  140. package/dist/dashboard/out/signup.html +0 -6
  141. package/dist/dashboard/out/signup.txt +0 -7
  142. package/dist/src/dashboard-server/index.d.ts +0 -8
  143. package/dist/src/dashboard-server/index.js +0 -8
  144. package/packages/dashboard/README.md +0 -48
  145. package/packages/dashboard/dist/health-worker-manager.d.ts +0 -62
  146. package/packages/dashboard/dist/health-worker-manager.js +0 -144
  147. package/packages/dashboard/dist/health-worker.d.ts +0 -9
  148. package/packages/dashboard/dist/health-worker.js +0 -79
  149. package/packages/dashboard/dist/index.d.ts +0 -20
  150. package/packages/dashboard/dist/index.js +0 -19
  151. package/packages/dashboard/dist/metrics.d.ts +0 -105
  152. package/packages/dashboard/dist/metrics.js +0 -193
  153. package/packages/dashboard/dist/needs-attention.d.ts +0 -24
  154. package/packages/dashboard/dist/needs-attention.js +0 -78
  155. package/packages/dashboard/dist/server.d.ts +0 -25
  156. package/packages/dashboard/dist/server.js +0 -5270
  157. package/packages/dashboard/dist/start.d.ts +0 -6
  158. package/packages/dashboard/dist/start.js +0 -13
  159. package/packages/dashboard/dist/types/threading.d.ts +0 -8
  160. package/packages/dashboard/dist/types/threading.js +0 -2
  161. package/packages/dashboard/dist/user-bridge.d.ts +0 -154
  162. package/packages/dashboard/dist/user-bridge.js +0 -372
  163. package/packages/dashboard/package.json +0 -65
  164. package/packages/dashboard/ui/app/app/onboarding/page.tsx +0 -394
  165. package/packages/dashboard/ui/app/app/page.tsx +0 -667
  166. package/packages/dashboard/ui/app/apple-icon.png +0 -0
  167. package/packages/dashboard/ui/app/cloud/link/page.tsx +0 -464
  168. package/packages/dashboard/ui/app/complete-profile/page.tsx +0 -204
  169. package/packages/dashboard/ui/app/connect-repos/page.tsx +0 -410
  170. package/packages/dashboard/ui/app/favicon.png +0 -0
  171. package/packages/dashboard/ui/app/globals.css +0 -59
  172. package/packages/dashboard/ui/app/history/page.tsx +0 -658
  173. package/packages/dashboard/ui/app/layout.tsx +0 -25
  174. package/packages/dashboard/ui/app/login/page.tsx +0 -424
  175. package/packages/dashboard/ui/app/metrics/page.tsx +0 -751
  176. package/packages/dashboard/ui/app/page.tsx +0 -59
  177. package/packages/dashboard/ui/app/pricing/page.tsx +0 -7
  178. package/packages/dashboard/ui/app/providers/page.tsx +0 -193
  179. package/packages/dashboard/ui/app/providers/setup/[provider]/ProviderSetupClient.tsx +0 -148
  180. package/packages/dashboard/ui/app/providers/setup/[provider]/constants.ts +0 -35
  181. package/packages/dashboard/ui/app/providers/setup/[provider]/page.tsx +0 -42
  182. package/packages/dashboard/ui/app/signup/page.tsx +0 -533
  183. package/packages/dashboard/ui/index.ts +0 -49
  184. package/packages/dashboard/ui/landing/LandingPage.tsx +0 -713
  185. package/packages/dashboard/ui/landing/PricingPage.tsx +0 -559
  186. package/packages/dashboard/ui/landing/index.ts +0 -6
  187. package/packages/dashboard/ui/landing/styles.css +0 -2850
  188. package/packages/dashboard/ui/lib/agent-merge.ts +0 -35
  189. package/packages/dashboard/ui/lib/api.ts +0 -1155
  190. package/packages/dashboard/ui/lib/cloudApi.ts +0 -877
  191. package/packages/dashboard/ui/lib/colors.ts +0 -218
  192. package/packages/dashboard/ui/lib/hierarchy.ts +0 -242
  193. package/packages/dashboard/ui/lib/stuckDetection.ts +0 -142
  194. package/packages/dashboard/ui/next-env.d.ts +0 -5
  195. package/packages/dashboard/ui/next.config.js +0 -41
  196. package/packages/dashboard/ui/package-lock.json +0 -2882
  197. package/packages/dashboard/ui/package.json +0 -33
  198. package/packages/dashboard/ui/postcss.config.js +0 -5
  199. package/packages/dashboard/ui/react-components/ActivityFeed.tsx +0 -216
  200. package/packages/dashboard/ui/react-components/AddWorkspaceModal.tsx +0 -170
  201. package/packages/dashboard/ui/react-components/AgentCard.tsx +0 -587
  202. package/packages/dashboard/ui/react-components/AgentList.tsx +0 -411
  203. package/packages/dashboard/ui/react-components/AgentProfilePanel.tsx +0 -564
  204. package/packages/dashboard/ui/react-components/App.tsx +0 -3033
  205. package/packages/dashboard/ui/react-components/BillingPanel.tsx +0 -922
  206. package/packages/dashboard/ui/react-components/BillingResult.tsx +0 -447
  207. package/packages/dashboard/ui/react-components/BroadcastComposer.tsx +0 -690
  208. package/packages/dashboard/ui/react-components/ChannelAdminPanel.tsx +0 -773
  209. package/packages/dashboard/ui/react-components/ChannelBrowser.tsx +0 -385
  210. package/packages/dashboard/ui/react-components/ChannelChat.tsx +0 -261
  211. package/packages/dashboard/ui/react-components/ChannelSidebar.tsx +0 -399
  212. package/packages/dashboard/ui/react-components/CloudSessionProvider.tsx +0 -130
  213. package/packages/dashboard/ui/react-components/CommandPalette.tsx +0 -815
  214. package/packages/dashboard/ui/react-components/ConfirmationDialog.tsx +0 -133
  215. package/packages/dashboard/ui/react-components/ConversationHistory.tsx +0 -518
  216. package/packages/dashboard/ui/react-components/CoordinatorPanel.tsx +0 -944
  217. package/packages/dashboard/ui/react-components/DecisionQueue.tsx +0 -717
  218. package/packages/dashboard/ui/react-components/DirectMessageView.tsx +0 -164
  219. package/packages/dashboard/ui/react-components/FileAutocomplete.tsx +0 -368
  220. package/packages/dashboard/ui/react-components/FleetOverview.tsx +0 -278
  221. package/packages/dashboard/ui/react-components/LogViewer.tsx +0 -310
  222. package/packages/dashboard/ui/react-components/LogViewerPanel.tsx +0 -482
  223. package/packages/dashboard/ui/react-components/Logo.tsx +0 -284
  224. package/packages/dashboard/ui/react-components/MentionAutocomplete.tsx +0 -384
  225. package/packages/dashboard/ui/react-components/MessageComposer.tsx +0 -457
  226. package/packages/dashboard/ui/react-components/MessageList.tsx +0 -649
  227. package/packages/dashboard/ui/react-components/MessageSenderName.tsx +0 -91
  228. package/packages/dashboard/ui/react-components/MessageStatusIndicator.tsx +0 -142
  229. package/packages/dashboard/ui/react-components/NewConversationModal.tsx +0 -400
  230. package/packages/dashboard/ui/react-components/NotificationToast.tsx +0 -488
  231. package/packages/dashboard/ui/react-components/OnlineUsersIndicator.tsx +0 -164
  232. package/packages/dashboard/ui/react-components/Pagination.tsx +0 -124
  233. package/packages/dashboard/ui/react-components/PricingPlans.tsx +0 -386
  234. package/packages/dashboard/ui/react-components/ProjectList.tsx +0 -625
  235. package/packages/dashboard/ui/react-components/ProviderAuthFlow.tsx +0 -853
  236. package/packages/dashboard/ui/react-components/ProviderConnectionList.tsx +0 -378
  237. package/packages/dashboard/ui/react-components/ProvisioningProgress.tsx +0 -730
  238. package/packages/dashboard/ui/react-components/RepoAccessPanel.tsx +0 -549
  239. package/packages/dashboard/ui/react-components/ServerCard.tsx +0 -202
  240. package/packages/dashboard/ui/react-components/SessionExpiredModal.tsx +0 -128
  241. package/packages/dashboard/ui/react-components/SpawnModal.tsx +0 -804
  242. package/packages/dashboard/ui/react-components/TaskAssignmentUI.tsx +0 -375
  243. package/packages/dashboard/ui/react-components/TerminalProviderSetup.tsx +0 -608
  244. package/packages/dashboard/ui/react-components/ThemeProvider.tsx +0 -325
  245. package/packages/dashboard/ui/react-components/ThinkingIndicator.tsx +0 -231
  246. package/packages/dashboard/ui/react-components/ThreadList.tsx +0 -198
  247. package/packages/dashboard/ui/react-components/ThreadPanel.tsx +0 -346
  248. package/packages/dashboard/ui/react-components/TrajectoryViewer.tsx +0 -698
  249. package/packages/dashboard/ui/react-components/TypingIndicator.tsx +0 -69
  250. package/packages/dashboard/ui/react-components/UsageBanner.tsx +0 -231
  251. package/packages/dashboard/ui/react-components/UserProfilePanel.tsx +0 -233
  252. package/packages/dashboard/ui/react-components/WorkspaceContext.tsx +0 -107
  253. package/packages/dashboard/ui/react-components/WorkspaceSelector.tsx +0 -234
  254. package/packages/dashboard/ui/react-components/WorkspaceStatusIndicator.tsx +0 -370
  255. package/packages/dashboard/ui/react-components/XTermInteractive.tsx +0 -510
  256. package/packages/dashboard/ui/react-components/XTermLogViewer.tsx +0 -719
  257. package/packages/dashboard/ui/react-components/channels/ChannelDialogs.tsx +0 -1411
  258. package/packages/dashboard/ui/react-components/channels/ChannelHeader.tsx +0 -317
  259. package/packages/dashboard/ui/react-components/channels/ChannelMessageList.tsx +0 -463
  260. package/packages/dashboard/ui/react-components/channels/ChannelViewV1.tsx +0 -146
  261. package/packages/dashboard/ui/react-components/channels/MessageInput.tsx +0 -288
  262. package/packages/dashboard/ui/react-components/channels/SearchInput.tsx +0 -172
  263. package/packages/dashboard/ui/react-components/channels/SearchResults.tsx +0 -336
  264. package/packages/dashboard/ui/react-components/channels/api.ts +0 -697
  265. package/packages/dashboard/ui/react-components/channels/index.ts +0 -76
  266. package/packages/dashboard/ui/react-components/channels/mockApi.ts +0 -344
  267. package/packages/dashboard/ui/react-components/channels/types.ts +0 -566
  268. package/packages/dashboard/ui/react-components/hooks/index.ts +0 -57
  269. package/packages/dashboard/ui/react-components/hooks/useAgentLogs.ts +0 -394
  270. package/packages/dashboard/ui/react-components/hooks/useAgents.ts +0 -127
  271. package/packages/dashboard/ui/react-components/hooks/useBroadcastDedup.ts +0 -86
  272. package/packages/dashboard/ui/react-components/hooks/useChannelAdmin.ts +0 -329
  273. package/packages/dashboard/ui/react-components/hooks/useChannelBrowser.ts +0 -239
  274. package/packages/dashboard/ui/react-components/hooks/useChannelCommands.ts +0 -138
  275. package/packages/dashboard/ui/react-components/hooks/useChannels.ts +0 -328
  276. package/packages/dashboard/ui/react-components/hooks/useDebounce.ts +0 -29
  277. package/packages/dashboard/ui/react-components/hooks/useDirectMessage.ts +0 -141
  278. package/packages/dashboard/ui/react-components/hooks/useMessages.ts +0 -309
  279. package/packages/dashboard/ui/react-components/hooks/useOrchestrator.ts +0 -364
  280. package/packages/dashboard/ui/react-components/hooks/usePinnedAgents.ts +0 -140
  281. package/packages/dashboard/ui/react-components/hooks/usePresence.ts +0 -340
  282. package/packages/dashboard/ui/react-components/hooks/useRecentRepos.ts +0 -130
  283. package/packages/dashboard/ui/react-components/hooks/useSession.ts +0 -209
  284. package/packages/dashboard/ui/react-components/hooks/useTrajectory.ts +0 -265
  285. package/packages/dashboard/ui/react-components/hooks/useWebSocket.ts +0 -169
  286. package/packages/dashboard/ui/react-components/hooks/useWorkspaceMembers.ts +0 -120
  287. package/packages/dashboard/ui/react-components/hooks/useWorkspaceRepos.ts +0 -73
  288. package/packages/dashboard/ui/react-components/hooks/useWorkspaceStatus.ts +0 -237
  289. package/packages/dashboard/ui/react-components/index.ts +0 -81
  290. package/packages/dashboard/ui/react-components/layout/Header.tsx +0 -355
  291. package/packages/dashboard/ui/react-components/layout/RepoContextHeader.tsx +0 -361
  292. package/packages/dashboard/ui/react-components/layout/Sidebar.archive.test.tsx +0 -126
  293. package/packages/dashboard/ui/react-components/layout/Sidebar.test.tsx +0 -691
  294. package/packages/dashboard/ui/react-components/layout/Sidebar.tsx +0 -930
  295. package/packages/dashboard/ui/react-components/layout/index.ts +0 -7
  296. package/packages/dashboard/ui/react-components/settings/BillingSettingsPanel.tsx +0 -564
  297. package/packages/dashboard/ui/react-components/settings/SettingsPage.tsx +0 -544
  298. package/packages/dashboard/ui/react-components/settings/TeamSettingsPanel.tsx +0 -560
  299. package/packages/dashboard/ui/react-components/settings/WorkspaceSettingsPanel.tsx +0 -1386
  300. package/packages/dashboard/ui/react-components/settings/index.ts +0 -11
  301. package/packages/dashboard/ui/react-components/settings/types.ts +0 -53
  302. package/packages/dashboard/ui/react-components/utils/messageFormatting.tsx +0 -370
  303. package/packages/dashboard/ui/tailwind.config.js +0 -148
  304. package/packages/dashboard/ui/types/index.ts +0 -304
  305. package/packages/dashboard/ui/types/threading.ts +0 -7
  306. package/packages/dashboard/ui-dist/404.html +0 -1
  307. package/packages/dashboard/ui-dist/_next/static/7MZPqYkVGw3EGzVBkVmY9/_buildManifest.js +0 -1
  308. package/packages/dashboard/ui-dist/_next/static/7MZPqYkVGw3EGzVBkVmY9/_ssgManifest.js +0 -1
  309. package/packages/dashboard/ui-dist/_next/static/chunks/116-a883fca163f3a5bc.js +0 -1
  310. package/packages/dashboard/ui-dist/_next/static/chunks/117-c8afed19e821a35d.js +0 -2
  311. package/packages/dashboard/ui-dist/_next/static/chunks/282-980c2eb8fff20123.js +0 -1
  312. package/packages/dashboard/ui-dist/_next/static/chunks/320-a6304232cd0ee2ce.js +0 -1
  313. package/packages/dashboard/ui-dist/_next/static/chunks/532-bace199897eeab37.js +0 -9
  314. package/packages/dashboard/ui-dist/_next/static/chunks/631-16b905e5920f9b59.js +0 -1
  315. package/packages/dashboard/ui-dist/_next/static/chunks/648-acb2ff9f77cbfbd3.js +0 -1
  316. package/packages/dashboard/ui-dist/_next/static/chunks/766-2aea80818f7eb0d8.js +0 -1
  317. package/packages/dashboard/ui-dist/_next/static/chunks/83-26d2bde54616ee90.js +0 -1
  318. package/packages/dashboard/ui-dist/_next/static/chunks/847-f1f467060f32afff.js +0 -1
  319. package/packages/dashboard/ui-dist/_next/static/chunks/891-5cb1513eeb97a891.js +0 -1
  320. package/packages/dashboard/ui-dist/_next/static/chunks/app/_not-found/page-60501fddbafba9dc.js +0 -1
  321. package/packages/dashboard/ui-dist/_next/static/chunks/app/app/onboarding/page-9914652442f7e4fb.js +0 -1
  322. package/packages/dashboard/ui-dist/_next/static/chunks/app/app/page-366fb7c078d4e9e0.js +0 -1
  323. package/packages/dashboard/ui-dist/_next/static/chunks/app/cloud/link/page-fa1d5842aa90e8a6.js +0 -1
  324. package/packages/dashboard/ui-dist/_next/static/chunks/app/complete-profile/page-dd64bbdf66b639cd.js +0 -1
  325. package/packages/dashboard/ui-dist/_next/static/chunks/app/connect-repos/page-113060009ef35bc2.js +0 -1
  326. package/packages/dashboard/ui-dist/_next/static/chunks/app/history/page-9965d2483011b846.js +0 -1
  327. package/packages/dashboard/ui-dist/_next/static/chunks/app/layout-6b91e33784c20610.js +0 -1
  328. package/packages/dashboard/ui-dist/_next/static/chunks/app/login/page-435eceb0073be027.js +0 -1
  329. package/packages/dashboard/ui-dist/_next/static/chunks/app/metrics/page-1e37ef8e73940b40.js +0 -1
  330. package/packages/dashboard/ui-dist/_next/static/chunks/app/page-8119d4246743574e.js +0 -1
  331. package/packages/dashboard/ui-dist/_next/static/chunks/app/pricing/page-9db3ebdfa567a7c9.js +0 -1
  332. package/packages/dashboard/ui-dist/_next/static/chunks/app/providers/page-ecb16ffd3b36262b.js +0 -1
  333. package/packages/dashboard/ui-dist/_next/static/chunks/app/providers/setup/[provider]/page-4dbe33f0f7691b7c.js +0 -1
  334. package/packages/dashboard/ui-dist/_next/static/chunks/app/signup/page-c7a0a28341365ae0.js +0 -1
  335. package/packages/dashboard/ui-dist/_next/static/chunks/e868780c-48e5f147c90a3a41.js +0 -18
  336. package/packages/dashboard/ui-dist/_next/static/chunks/fd9d1056-609918ca7b6280bb.js +0 -1
  337. package/packages/dashboard/ui-dist/_next/static/chunks/framework-f66176bb897dc684.js +0 -1
  338. package/packages/dashboard/ui-dist/_next/static/chunks/main-311c3db74dcfadb7.js +0 -1
  339. package/packages/dashboard/ui-dist/_next/static/chunks/main-app-fdbeb09028f57c9f.js +0 -1
  340. package/packages/dashboard/ui-dist/_next/static/chunks/pages/_app-72b849fbd24ac258.js +0 -1
  341. package/packages/dashboard/ui-dist/_next/static/chunks/pages/_error-7ba65e1336b92748.js +0 -1
  342. package/packages/dashboard/ui-dist/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
  343. package/packages/dashboard/ui-dist/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +0 -1
  344. package/packages/dashboard/ui-dist/_next/static/css/4034f236dd1a3178.css +0 -1
  345. package/packages/dashboard/ui-dist/_next/static/css/6892f8422896ef7a.css +0 -1
  346. package/packages/dashboard/ui-dist/_next/static/iJ3Uiz3IrqUJL7IxKZHiV/_buildManifest.js +0 -1
  347. package/packages/dashboard/ui-dist/_next/static/iJ3Uiz3IrqUJL7IxKZHiV/_ssgManifest.js +0 -1
  348. package/packages/dashboard/ui-dist/_next/static/l-jd878zUJ_IlraqEWMZc/_buildManifest.js +0 -1
  349. package/packages/dashboard/ui-dist/_next/static/l-jd878zUJ_IlraqEWMZc/_ssgManifest.js +0 -1
  350. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-128.png +0 -0
  351. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-256.png +0 -0
  352. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-32.png +0 -0
  353. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-512.png +0 -0
  354. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-64.png +0 -0
  355. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo.svg +0 -45
  356. package/packages/dashboard/ui-dist/alt-logos/logo.svg +0 -38
  357. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-128.png +0 -0
  358. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-256.png +0 -0
  359. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-32.png +0 -0
  360. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-512.png +0 -0
  361. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-64.png +0 -0
  362. package/packages/dashboard/ui-dist/alt-logos/monogram-logo.svg +0 -38
  363. package/packages/dashboard/ui-dist/app/onboarding.html +0 -1
  364. package/packages/dashboard/ui-dist/app/onboarding.txt +0 -7
  365. package/packages/dashboard/ui-dist/app.html +0 -1
  366. package/packages/dashboard/ui-dist/app.txt +0 -7
  367. package/packages/dashboard/ui-dist/apple-icon.png +0 -0
  368. package/packages/dashboard/ui-dist/cloud/link.html +0 -1
  369. package/packages/dashboard/ui-dist/cloud/link.txt +0 -7
  370. package/packages/dashboard/ui-dist/complete-profile.html +0 -5
  371. package/packages/dashboard/ui-dist/complete-profile.txt +0 -7
  372. package/packages/dashboard/ui-dist/connect-repos.html +0 -1
  373. package/packages/dashboard/ui-dist/connect-repos.txt +0 -7
  374. package/packages/dashboard/ui-dist/history.html +0 -1
  375. package/packages/dashboard/ui-dist/history.txt +0 -7
  376. package/packages/dashboard/ui-dist/index.html +0 -1
  377. package/packages/dashboard/ui-dist/index.txt +0 -7
  378. package/packages/dashboard/ui-dist/login.html +0 -5
  379. package/packages/dashboard/ui-dist/login.txt +0 -7
  380. package/packages/dashboard/ui-dist/metrics.html +0 -1
  381. package/packages/dashboard/ui-dist/metrics.txt +0 -7
  382. package/packages/dashboard/ui-dist/pricing.html +0 -13
  383. package/packages/dashboard/ui-dist/pricing.txt +0 -7
  384. package/packages/dashboard/ui-dist/providers/setup/claude.html +0 -1
  385. package/packages/dashboard/ui-dist/providers/setup/claude.txt +0 -8
  386. package/packages/dashboard/ui-dist/providers/setup/codex.html +0 -1
  387. package/packages/dashboard/ui-dist/providers/setup/codex.txt +0 -8
  388. package/packages/dashboard/ui-dist/providers/setup/cursor.html +0 -1
  389. package/packages/dashboard/ui-dist/providers/setup/cursor.txt +0 -8
  390. package/packages/dashboard/ui-dist/providers.html +0 -1
  391. package/packages/dashboard/ui-dist/providers.txt +0 -7
  392. package/packages/dashboard/ui-dist/signup.html +0 -6
  393. package/packages/dashboard/ui-dist/signup.txt +0 -7
  394. package/packages/dashboard-server/dist/health-worker-manager.d.ts +0 -62
  395. package/packages/dashboard-server/dist/health-worker-manager.js +0 -144
  396. package/packages/dashboard-server/dist/health-worker.d.ts +0 -9
  397. package/packages/dashboard-server/dist/health-worker.js +0 -79
  398. package/packages/dashboard-server/dist/index.d.ts +0 -18
  399. package/packages/dashboard-server/dist/index.js +0 -17
  400. package/packages/dashboard-server/dist/metrics.d.ts +0 -105
  401. package/packages/dashboard-server/dist/metrics.js +0 -193
  402. package/packages/dashboard-server/dist/needs-attention.d.ts +0 -24
  403. package/packages/dashboard-server/dist/needs-attention.js +0 -78
  404. package/packages/dashboard-server/dist/server.d.ts +0 -25
  405. package/packages/dashboard-server/dist/server.js +0 -5158
  406. package/packages/dashboard-server/dist/start.d.ts +0 -6
  407. package/packages/dashboard-server/dist/start.js +0 -13
  408. package/packages/dashboard-server/dist/types/threading.d.ts +0 -8
  409. package/packages/dashboard-server/dist/types/threading.js +0 -2
  410. package/packages/dashboard-server/dist/user-bridge.d.ts +0 -158
  411. package/packages/dashboard-server/dist/user-bridge.js +0 -390
  412. package/packages/dashboard-server/package.json +0 -55
@@ -1,730 +0,0 @@
1
- /**
2
- * ProvisioningProgress - A visually striking progress indicator for workspace provisioning
3
- *
4
- * Design: Terminal-inspired with holographic accents, featuring a vertical stage timeline
5
- * with animated connections, pulsing indicators, and a typewriter terminal output effect.
6
- */
7
- import React, { useState, useEffect, useMemo } from 'react';
8
-
9
- export interface ProvisioningStage {
10
- id: string;
11
- name: string;
12
- description: string;
13
- estimatedSeconds: number;
14
- icon: string;
15
- }
16
-
17
- export interface ProvisioningProgressProps {
18
- /** Current stage ID from backend, or null if unknown */
19
- currentStage?: string | null;
20
- /** Whether provisioning has started */
21
- isProvisioning: boolean;
22
- /** Workspace name being provisioned */
23
- workspaceName?: string;
24
- /** Error message if provisioning failed */
25
- error?: string | null;
26
- /** Callback when user wants to cancel */
27
- onCancel?: () => void;
28
- }
29
-
30
- const PROVISIONING_STAGES: ProvisioningStage[] = [
31
- {
32
- id: 'creating',
33
- name: 'Initialize',
34
- description: 'Creating workspace container',
35
- estimatedSeconds: 5,
36
- icon: '◈',
37
- },
38
- {
39
- id: 'networking',
40
- name: 'Network',
41
- description: 'Configuring DNS & IP allocation',
42
- estimatedSeconds: 8,
43
- icon: '◇',
44
- },
45
- {
46
- id: 'secrets',
47
- name: 'Secure',
48
- description: 'Encrypting credentials',
49
- estimatedSeconds: 3,
50
- icon: '◆',
51
- },
52
- {
53
- id: 'machine',
54
- name: 'Deploy',
55
- description: 'Launching cloud instance',
56
- estimatedSeconds: 25,
57
- icon: '▣',
58
- },
59
- {
60
- id: 'booting',
61
- name: 'Boot',
62
- description: 'Starting relay services',
63
- estimatedSeconds: 20,
64
- icon: '▢',
65
- },
66
- {
67
- id: 'health',
68
- name: 'Verify',
69
- description: 'Running health checks',
70
- estimatedSeconds: 15,
71
- icon: '◉',
72
- },
73
- ];
74
-
75
- // Terminal-style loading messages
76
- const TERMINAL_MESSAGES = [
77
- '> Establishing secure connection...',
78
- '> Allocating compute resources...',
79
- '> Configuring agent protocols...',
80
- '> Initializing relay daemon...',
81
- '> Syncing workspace state...',
82
- '> Warming up inference engine...',
83
- '> Connecting to neural mesh...',
84
- '> Deploying agent swarm...',
85
- ];
86
-
87
- export function ProvisioningProgress({
88
- currentStage,
89
- isProvisioning,
90
- workspaceName,
91
- error,
92
- onCancel,
93
- }: ProvisioningProgressProps) {
94
- const [elapsedSeconds, setElapsedSeconds] = useState(0);
95
- const [terminalLines, setTerminalLines] = useState<string[]>([]);
96
- const [cursorVisible, setCursorVisible] = useState(true);
97
-
98
- // Track elapsed time
99
- useEffect(() => {
100
- if (!isProvisioning) {
101
- setElapsedSeconds(0);
102
- return;
103
- }
104
- const interval = setInterval(() => {
105
- setElapsedSeconds((prev) => prev + 1);
106
- }, 1000);
107
- return () => clearInterval(interval);
108
- }, [isProvisioning]);
109
-
110
- // Cursor blink
111
- useEffect(() => {
112
- const interval = setInterval(() => {
113
- setCursorVisible((prev) => !prev);
114
- }, 530);
115
- return () => clearInterval(interval);
116
- }, []);
117
-
118
- // Add terminal messages over time
119
- useEffect(() => {
120
- if (!isProvisioning) {
121
- setTerminalLines([]);
122
- return;
123
- }
124
-
125
- const addMessage = () => {
126
- const randomMsg = TERMINAL_MESSAGES[Math.floor(Math.random() * TERMINAL_MESSAGES.length)];
127
- setTerminalLines((prev) => [...prev.slice(-4), randomMsg]);
128
- };
129
-
130
- addMessage(); // Initial message
131
- const interval = setInterval(addMessage, 3500);
132
- return () => clearInterval(interval);
133
- }, [isProvisioning]);
134
-
135
- // Calculate current stage index
136
- const currentStageIndex = useMemo(() => {
137
- if (currentStage) {
138
- const idx = PROVISIONING_STAGES.findIndex((s) => s.id === currentStage);
139
- return idx >= 0 ? idx : 0;
140
- }
141
- // Estimate based on elapsed time
142
- let accumulated = 0;
143
- for (let i = 0; i < PROVISIONING_STAGES.length; i++) {
144
- accumulated += PROVISIONING_STAGES[i].estimatedSeconds;
145
- if (elapsedSeconds < accumulated) return i;
146
- }
147
- return PROVISIONING_STAGES.length - 1;
148
- }, [currentStage, elapsedSeconds]);
149
-
150
- // Calculate progress
151
- const totalEstimatedSeconds = useMemo(
152
- () => PROVISIONING_STAGES.reduce((sum, s) => sum + s.estimatedSeconds, 0),
153
- []
154
- );
155
-
156
- const progressPercent = useMemo(() => {
157
- return Math.min(95, Math.round((elapsedSeconds / totalEstimatedSeconds) * 100));
158
- }, [elapsedSeconds, totalEstimatedSeconds]);
159
-
160
- const formatTime = (seconds: number) => {
161
- const mins = Math.floor(seconds / 60);
162
- const secs = seconds % 60;
163
- return mins > 0 ? `${mins}:${secs.toString().padStart(2, '0')}` : `0:${secs.toString().padStart(2, '0')}`;
164
- };
165
-
166
- if (error) {
167
- return (
168
- <div className="prov-container prov-error">
169
- <div className="error-glitch">
170
- <span className="error-icon">✕</span>
171
- </div>
172
- <h3 className="error-title">PROVISIONING FAILED</h3>
173
- <p className="error-message">{error}</p>
174
- {onCancel && (
175
- <button onClick={onCancel} className="retry-btn">
176
- <span>RETRY</span>
177
- </button>
178
- )}
179
- <style>{errorStyles}</style>
180
- </div>
181
- );
182
- }
183
-
184
- return (
185
- <div className="prov-container">
186
- {/* Ambient background effects */}
187
- <div className="ambient-glow" />
188
- <div className="scan-line" />
189
-
190
- {/* Header */}
191
- <header className="prov-header">
192
- <div className="header-badge">PROVISIONING</div>
193
- <h1 className="header-title">
194
- {workspaceName || 'Workspace'}
195
- </h1>
196
- <div className="header-meta">
197
- <span className="meta-time">{formatTime(elapsedSeconds)}</span>
198
- <span className="meta-sep">•</span>
199
- <span className="meta-percent">{progressPercent}%</span>
200
- </div>
201
- </header>
202
-
203
- {/* Progress bar */}
204
- <div className="progress-track">
205
- <div
206
- className="progress-fill"
207
- style={{ width: `${progressPercent}%` }}
208
- />
209
- <div
210
- className="progress-glow"
211
- style={{ left: `${progressPercent}%` }}
212
- />
213
- </div>
214
-
215
- {/* Stage timeline */}
216
- <div className="stages-timeline">
217
- {PROVISIONING_STAGES.map((stage, index) => {
218
- const isCompleted = index < currentStageIndex;
219
- const isCurrent = index === currentStageIndex;
220
- const isPending = index > currentStageIndex;
221
-
222
- return (
223
- <div
224
- key={stage.id}
225
- className={`stage-row ${isCompleted ? 'completed' : ''} ${isCurrent ? 'current' : ''} ${isPending ? 'pending' : ''}`}
226
- >
227
- {/* Connector */}
228
- {index > 0 && (
229
- <div className={`stage-connector ${isCompleted ? 'active' : ''}`}>
230
- <div className="connector-line" />
231
- {isCompleted && <div className="connector-pulse" />}
232
- </div>
233
- )}
234
-
235
- {/* Node */}
236
- <div className="stage-node">
237
- <span className="node-icon">{stage.icon}</span>
238
- {isCurrent && <div className="node-ring" />}
239
- </div>
240
-
241
- {/* Content */}
242
- <div className="stage-content">
243
- <span className="stage-name">{stage.name}</span>
244
- {isCurrent && (
245
- <span className="stage-desc">{stage.description}</span>
246
- )}
247
- </div>
248
-
249
- {/* Status */}
250
- <div className="stage-status">
251
- {isCompleted && <span className="status-done">DONE</span>}
252
- {isCurrent && <span className="status-active">ACTIVE</span>}
253
- {isPending && <span className="status-wait">~{stage.estimatedSeconds}s</span>}
254
- </div>
255
- </div>
256
- );
257
- })}
258
- </div>
259
-
260
- {/* Terminal output */}
261
- <div className="terminal-window">
262
- <div className="terminal-header">
263
- <span className="terminal-dot red" />
264
- <span className="terminal-dot yellow" />
265
- <span className="terminal-dot green" />
266
- <span className="terminal-title">agent-relay</span>
267
- </div>
268
- <div className="terminal-body">
269
- {terminalLines.map((line, i) => (
270
- <div key={i} className="terminal-line" style={{ animationDelay: `${i * 0.1}s` }}>
271
- {line}
272
- </div>
273
- ))}
274
- <div className="terminal-cursor">
275
- <span className="cursor-prompt">$</span>
276
- <span className={`cursor-block ${cursorVisible ? 'visible' : ''}`}>_</span>
277
- </div>
278
- </div>
279
- </div>
280
-
281
- {/* Cancel button */}
282
- {onCancel && (
283
- <button onClick={onCancel} className="cancel-btn">
284
- Cancel
285
- </button>
286
- )}
287
-
288
- <style>{mainStyles}</style>
289
- </div>
290
- );
291
- }
292
-
293
- const mainStyles = `
294
- .prov-container {
295
- position: relative;
296
- display: flex;
297
- flex-direction: column;
298
- gap: 24px;
299
- padding: 40px 32px;
300
- background: linear-gradient(145deg, rgba(10, 15, 25, 0.95) 0%, rgba(5, 10, 18, 0.98) 100%);
301
- border: 1px solid rgba(6, 182, 212, 0.15);
302
- border-radius: 16px;
303
- overflow: hidden;
304
- font-family: 'SF Mono', 'JetBrains Mono', 'Fira Code', monospace;
305
- }
306
-
307
- /* Ambient effects */
308
- .ambient-glow {
309
- position: absolute;
310
- top: -100px;
311
- left: 50%;
312
- transform: translateX(-50%);
313
- width: 300px;
314
- height: 200px;
315
- background: radial-gradient(ellipse, rgba(6, 182, 212, 0.12) 0%, transparent 70%);
316
- pointer-events: none;
317
- }
318
-
319
- .scan-line {
320
- position: absolute;
321
- top: 0;
322
- left: 0;
323
- right: 0;
324
- height: 2px;
325
- background: linear-gradient(90deg, transparent, rgba(6, 182, 212, 0.4), transparent);
326
- animation: scanMove 3s ease-in-out infinite;
327
- pointer-events: none;
328
- }
329
-
330
- @keyframes scanMove {
331
- 0%, 100% { top: 0; opacity: 0.5; }
332
- 50% { top: 100%; opacity: 0.2; }
333
- }
334
-
335
- /* Header */
336
- .prov-header {
337
- text-align: center;
338
- position: relative;
339
- z-index: 1;
340
- }
341
-
342
- .header-badge {
343
- display: inline-block;
344
- padding: 4px 12px;
345
- background: rgba(6, 182, 212, 0.1);
346
- border: 1px solid rgba(6, 182, 212, 0.3);
347
- border-radius: 4px;
348
- font-size: 10px;
349
- font-weight: 600;
350
- letter-spacing: 2px;
351
- color: #06b6d4;
352
- margin-bottom: 12px;
353
- }
354
-
355
- .header-title {
356
- font-size: 22px;
357
- font-weight: 600;
358
- color: #f1f5f9;
359
- margin: 0 0 8px 0;
360
- letter-spacing: -0.5px;
361
- }
362
-
363
- .header-meta {
364
- display: flex;
365
- align-items: center;
366
- justify-content: center;
367
- gap: 8px;
368
- font-size: 13px;
369
- color: #64748b;
370
- }
371
-
372
- .meta-time {
373
- font-variant-numeric: tabular-nums;
374
- }
375
-
376
- .meta-percent {
377
- color: #06b6d4;
378
- font-weight: 500;
379
- }
380
-
381
- .meta-sep {
382
- opacity: 0.3;
383
- }
384
-
385
- /* Progress bar */
386
- .progress-track {
387
- position: relative;
388
- height: 4px;
389
- background: rgba(100, 116, 139, 0.2);
390
- border-radius: 2px;
391
- overflow: visible;
392
- }
393
-
394
- .progress-fill {
395
- height: 100%;
396
- background: linear-gradient(90deg, #0891b2, #06b6d4, #22d3ee);
397
- border-radius: 2px;
398
- transition: width 0.5s ease;
399
- }
400
-
401
- .progress-glow {
402
- position: absolute;
403
- top: 50%;
404
- transform: translate(-50%, -50%);
405
- width: 8px;
406
- height: 8px;
407
- background: #22d3ee;
408
- border-radius: 50%;
409
- box-shadow: 0 0 16px rgba(34, 211, 238, 0.6);
410
- transition: left 0.5s ease;
411
- }
412
-
413
- /* Stages */
414
- .stages-timeline {
415
- display: flex;
416
- flex-direction: column;
417
- gap: 0;
418
- padding: 16px 0;
419
- }
420
-
421
- .stage-row {
422
- display: grid;
423
- grid-template-columns: 40px 1fr auto;
424
- align-items: center;
425
- gap: 12px;
426
- padding: 10px 0;
427
- position: relative;
428
- }
429
-
430
- .stage-connector {
431
- position: absolute;
432
- left: 19px;
433
- top: -10px;
434
- width: 2px;
435
- height: 20px;
436
- }
437
-
438
- .connector-line {
439
- width: 100%;
440
- height: 100%;
441
- background: rgba(100, 116, 139, 0.3);
442
- transition: background 0.3s ease;
443
- }
444
-
445
- .stage-connector.active .connector-line {
446
- background: linear-gradient(180deg, #06b6d4, rgba(6, 182, 212, 0.3));
447
- }
448
-
449
- .connector-pulse {
450
- position: absolute;
451
- top: 0;
452
- left: 0;
453
- width: 100%;
454
- height: 100%;
455
- background: linear-gradient(180deg, rgba(34, 211, 238, 0.8), transparent);
456
- animation: pulseLine 1.5s ease-out infinite;
457
- }
458
-
459
- @keyframes pulseLine {
460
- 0% { opacity: 1; transform: translateY(-100%); }
461
- 100% { opacity: 0; transform: translateY(100%); }
462
- }
463
-
464
- .stage-node {
465
- width: 40px;
466
- height: 40px;
467
- display: flex;
468
- align-items: center;
469
- justify-content: center;
470
- position: relative;
471
- }
472
-
473
- .node-icon {
474
- font-size: 18px;
475
- color: #475569;
476
- transition: all 0.3s ease;
477
- }
478
-
479
- .stage-row.completed .node-icon {
480
- color: #06b6d4;
481
- }
482
-
483
- .stage-row.current .node-icon {
484
- color: #22d3ee;
485
- text-shadow: 0 0 12px rgba(34, 211, 238, 0.5);
486
- }
487
-
488
- .node-ring {
489
- position: absolute;
490
- inset: 4px;
491
- border: 2px solid rgba(34, 211, 238, 0.4);
492
- border-radius: 50%;
493
- animation: ringPulse 2s ease-in-out infinite;
494
- }
495
-
496
- @keyframes ringPulse {
497
- 0%, 100% { transform: scale(1); opacity: 1; }
498
- 50% { transform: scale(1.2); opacity: 0.5; }
499
- }
500
-
501
- .stage-content {
502
- display: flex;
503
- flex-direction: column;
504
- gap: 2px;
505
- min-width: 0;
506
- }
507
-
508
- .stage-name {
509
- font-size: 13px;
510
- font-weight: 500;
511
- color: #64748b;
512
- text-transform: uppercase;
513
- letter-spacing: 0.5px;
514
- transition: color 0.3s ease;
515
- }
516
-
517
- .stage-row.completed .stage-name {
518
- color: #475569;
519
- }
520
-
521
- .stage-row.current .stage-name {
522
- color: #f1f5f9;
523
- }
524
-
525
- .stage-desc {
526
- font-size: 11px;
527
- color: #64748b;
528
- animation: fadeSlideIn 0.3s ease;
529
- }
530
-
531
- @keyframes fadeSlideIn {
532
- from { opacity: 0; transform: translateX(-8px); }
533
- to { opacity: 1; transform: translateX(0); }
534
- }
535
-
536
- .stage-status {
537
- font-size: 10px;
538
- font-weight: 600;
539
- letter-spacing: 1px;
540
- }
541
-
542
- .status-done {
543
- color: #06b6d4;
544
- }
545
-
546
- .status-active {
547
- color: #22d3ee;
548
- animation: blink 1s ease-in-out infinite;
549
- }
550
-
551
- @keyframes blink {
552
- 0%, 100% { opacity: 1; }
553
- 50% { opacity: 0.5; }
554
- }
555
-
556
- .status-wait {
557
- color: #475569;
558
- font-variant-numeric: tabular-nums;
559
- }
560
-
561
- /* Terminal */
562
- .terminal-window {
563
- background: rgba(0, 0, 0, 0.4);
564
- border: 1px solid rgba(100, 116, 139, 0.2);
565
- border-radius: 8px;
566
- overflow: hidden;
567
- }
568
-
569
- .terminal-header {
570
- display: flex;
571
- align-items: center;
572
- gap: 6px;
573
- padding: 8px 12px;
574
- background: rgba(30, 41, 59, 0.5);
575
- border-bottom: 1px solid rgba(100, 116, 139, 0.15);
576
- }
577
-
578
- .terminal-dot {
579
- width: 10px;
580
- height: 10px;
581
- border-radius: 50%;
582
- }
583
-
584
- .terminal-dot.red { background: #ef4444; }
585
- .terminal-dot.yellow { background: #eab308; }
586
- .terminal-dot.green { background: #22c55e; }
587
-
588
- .terminal-title {
589
- margin-left: auto;
590
- font-size: 11px;
591
- color: #64748b;
592
- }
593
-
594
- .terminal-body {
595
- padding: 12px;
596
- min-height: 100px;
597
- }
598
-
599
- .terminal-line {
600
- font-size: 12px;
601
- color: #94a3b8;
602
- padding: 2px 0;
603
- animation: typeIn 0.3s ease;
604
- }
605
-
606
- @keyframes typeIn {
607
- from { opacity: 0; transform: translateY(4px); }
608
- to { opacity: 1; transform: translateY(0); }
609
- }
610
-
611
- .terminal-cursor {
612
- display: flex;
613
- align-items: center;
614
- gap: 4px;
615
- margin-top: 8px;
616
- }
617
-
618
- .cursor-prompt {
619
- color: #06b6d4;
620
- font-weight: 600;
621
- }
622
-
623
- .cursor-block {
624
- color: #22d3ee;
625
- opacity: 0;
626
- transition: opacity 0.1s;
627
- }
628
-
629
- .cursor-block.visible {
630
- opacity: 1;
631
- }
632
-
633
- /* Cancel button */
634
- .cancel-btn {
635
- align-self: center;
636
- padding: 8px 20px;
637
- background: transparent;
638
- border: 1px solid rgba(100, 116, 139, 0.3);
639
- border-radius: 6px;
640
- color: #64748b;
641
- font-family: inherit;
642
- font-size: 12px;
643
- cursor: pointer;
644
- transition: all 0.2s ease;
645
- }
646
-
647
- .cancel-btn:hover {
648
- border-color: rgba(239, 68, 68, 0.5);
649
- color: #ef4444;
650
- }
651
- `;
652
-
653
- const errorStyles = `
654
- .prov-container.prov-error {
655
- display: flex;
656
- flex-direction: column;
657
- align-items: center;
658
- gap: 16px;
659
- padding: 48px 32px;
660
- background: linear-gradient(145deg, rgba(25, 10, 10, 0.95) 0%, rgba(15, 5, 8, 0.98) 100%);
661
- border: 1px solid rgba(239, 68, 68, 0.2);
662
- border-radius: 16px;
663
- text-align: center;
664
- font-family: 'SF Mono', 'JetBrains Mono', monospace;
665
- }
666
-
667
- .error-glitch {
668
- position: relative;
669
- width: 64px;
670
- height: 64px;
671
- display: flex;
672
- align-items: center;
673
- justify-content: center;
674
- background: rgba(239, 68, 68, 0.1);
675
- border: 1px solid rgba(239, 68, 68, 0.3);
676
- border-radius: 12px;
677
- }
678
-
679
- .error-icon {
680
- font-size: 28px;
681
- color: #ef4444;
682
- animation: glitch 0.3s ease infinite;
683
- }
684
-
685
- @keyframes glitch {
686
- 0%, 100% { transform: translate(0); }
687
- 25% { transform: translate(-2px, 1px); }
688
- 50% { transform: translate(2px, -1px); }
689
- 75% { transform: translate(-1px, -1px); }
690
- }
691
-
692
- .error-title {
693
- font-size: 14px;
694
- font-weight: 600;
695
- letter-spacing: 2px;
696
- color: #ef4444;
697
- margin: 0;
698
- }
699
-
700
- .error-message {
701
- font-size: 13px;
702
- color: #94a3b8;
703
- max-width: 350px;
704
- margin: 0;
705
- line-height: 1.5;
706
- }
707
-
708
- .retry-btn {
709
- margin-top: 8px;
710
- padding: 10px 28px;
711
- background: linear-gradient(135deg, rgba(239, 68, 68, 0.2) 0%, rgba(220, 38, 38, 0.2) 100%);
712
- border: 1px solid rgba(239, 68, 68, 0.4);
713
- border-radius: 6px;
714
- color: #ef4444;
715
- font-family: inherit;
716
- font-size: 12px;
717
- font-weight: 600;
718
- letter-spacing: 1px;
719
- cursor: pointer;
720
- transition: all 0.2s ease;
721
- }
722
-
723
- .retry-btn:hover {
724
- background: linear-gradient(135deg, rgba(239, 68, 68, 0.3) 0%, rgba(220, 38, 38, 0.3) 100%);
725
- border-color: rgba(239, 68, 68, 0.6);
726
- transform: translateY(-1px);
727
- }
728
- `;
729
-
730
- export default ProvisioningProgress;