agent-relay 2.0.22 → 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 (391) 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 +19 -1
  13. package/packages/daemon/package.json +12 -12
  14. package/packages/hooks/package.json +4 -4
  15. package/packages/mcp/package.json +2 -2
  16. package/packages/memory/package.json +2 -2
  17. package/packages/policy/package.json +2 -2
  18. package/packages/protocol/package.json +1 -1
  19. package/packages/resiliency/package.json +1 -1
  20. package/packages/sdk/package.json +2 -2
  21. package/packages/spawner/package.json +1 -1
  22. package/packages/state/package.json +1 -1
  23. package/packages/storage/package.json +2 -2
  24. package/packages/telemetry/package.json +1 -1
  25. package/packages/trajectory/package.json +2 -2
  26. package/packages/user-directory/package.json +2 -2
  27. package/packages/utils/dist/update-checker.js +4 -0
  28. package/packages/utils/package.json +1 -1
  29. package/packages/wrapper/package.json +6 -6
  30. package/deploy/workspace/codex.config.toml +0 -20
  31. package/deploy/workspace/entrypoint-browser.sh +0 -118
  32. package/deploy/workspace/entrypoint.sh +0 -612
  33. package/deploy/workspace/gh-credential-relay +0 -90
  34. package/deploy/workspace/gh-relay +0 -156
  35. package/deploy/workspace/git-credential-relay +0 -330
  36. package/deploy/workspace/git-credential-relay.test.sh +0 -230
  37. package/dist/dashboard/out/404.html +0 -1
  38. package/dist/dashboard/out/_next/static/91mkGYq3qbG8WHE6VytQ8/_buildManifest.js +0 -1
  39. package/dist/dashboard/out/_next/static/91mkGYq3qbG8WHE6VytQ8/_ssgManifest.js +0 -1
  40. package/dist/dashboard/out/_next/static/chunks/116-a883fca163f3a5bc.js +0 -1
  41. package/dist/dashboard/out/_next/static/chunks/117-c8afed19e821a35d.js +0 -2
  42. package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +0 -1
  43. package/dist/dashboard/out/_next/static/chunks/320-a6304232cd0ee2ce.js +0 -1
  44. package/dist/dashboard/out/_next/static/chunks/532-bace199897eeab37.js +0 -9
  45. package/dist/dashboard/out/_next/static/chunks/631-16b905e5920f9b59.js +0 -1
  46. package/dist/dashboard/out/_next/static/chunks/648-acb2ff9f77cbfbd3.js +0 -1
  47. package/dist/dashboard/out/_next/static/chunks/766-2aea80818f7eb0d8.js +0 -1
  48. package/dist/dashboard/out/_next/static/chunks/83-26d2bde54616ee90.js +0 -1
  49. package/dist/dashboard/out/_next/static/chunks/847-f1f467060f32afff.js +0 -1
  50. package/dist/dashboard/out/_next/static/chunks/891-5cb1513eeb97a891.js +0 -1
  51. package/dist/dashboard/out/_next/static/chunks/app/_not-found/page-60501fddbafba9dc.js +0 -1
  52. package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-9914652442f7e4fb.js +0 -1
  53. package/dist/dashboard/out/_next/static/chunks/app/app/page-366fb7c078d4e9e0.js +0 -1
  54. package/dist/dashboard/out/_next/static/chunks/app/cloud/link/page-fa1d5842aa90e8a6.js +0 -1
  55. package/dist/dashboard/out/_next/static/chunks/app/complete-profile/page-dd64bbdf66b639cd.js +0 -1
  56. package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-113060009ef35bc2.js +0 -1
  57. package/dist/dashboard/out/_next/static/chunks/app/history/page-9965d2483011b846.js +0 -1
  58. package/dist/dashboard/out/_next/static/chunks/app/layout-6b91e33784c20610.js +0 -1
  59. package/dist/dashboard/out/_next/static/chunks/app/login/page-435eceb0073be027.js +0 -1
  60. package/dist/dashboard/out/_next/static/chunks/app/metrics/page-1e37ef8e73940b40.js +0 -1
  61. package/dist/dashboard/out/_next/static/chunks/app/page-8119d4246743574e.js +0 -1
  62. package/dist/dashboard/out/_next/static/chunks/app/pricing/page-9db3ebdfa567a7c9.js +0 -1
  63. package/dist/dashboard/out/_next/static/chunks/app/providers/page-ecb16ffd3b36262b.js +0 -1
  64. package/dist/dashboard/out/_next/static/chunks/app/providers/setup/[provider]/page-4dbe33f0f7691b7c.js +0 -1
  65. package/dist/dashboard/out/_next/static/chunks/app/signup/page-c7a0a28341365ae0.js +0 -1
  66. package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +0 -18
  67. package/dist/dashboard/out/_next/static/chunks/fd9d1056-609918ca7b6280bb.js +0 -1
  68. package/dist/dashboard/out/_next/static/chunks/framework-f66176bb897dc684.js +0 -1
  69. package/dist/dashboard/out/_next/static/chunks/main-311c3db74dcfadb7.js +0 -1
  70. package/dist/dashboard/out/_next/static/chunks/main-app-fdbeb09028f57c9f.js +0 -1
  71. package/dist/dashboard/out/_next/static/chunks/pages/_app-72b849fbd24ac258.js +0 -1
  72. package/dist/dashboard/out/_next/static/chunks/pages/_error-7ba65e1336b92748.js +0 -1
  73. package/dist/dashboard/out/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
  74. package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +0 -1
  75. package/dist/dashboard/out/_next/static/css/4034f236dd1a3178.css +0 -1
  76. package/dist/dashboard/out/_next/static/css/6892f8422896ef7a.css +0 -1
  77. package/dist/dashboard/out/alt-logos/agent-relay-logo-128.png +0 -0
  78. package/dist/dashboard/out/alt-logos/agent-relay-logo-256.png +0 -0
  79. package/dist/dashboard/out/alt-logos/agent-relay-logo-32.png +0 -0
  80. package/dist/dashboard/out/alt-logos/agent-relay-logo-512.png +0 -0
  81. package/dist/dashboard/out/alt-logos/agent-relay-logo-64.png +0 -0
  82. package/dist/dashboard/out/alt-logos/agent-relay-logo.svg +0 -45
  83. package/dist/dashboard/out/alt-logos/logo.svg +0 -38
  84. package/dist/dashboard/out/alt-logos/monogram-logo-128.png +0 -0
  85. package/dist/dashboard/out/alt-logos/monogram-logo-256.png +0 -0
  86. package/dist/dashboard/out/alt-logos/monogram-logo-32.png +0 -0
  87. package/dist/dashboard/out/alt-logos/monogram-logo-512.png +0 -0
  88. package/dist/dashboard/out/alt-logos/monogram-logo-64.png +0 -0
  89. package/dist/dashboard/out/alt-logos/monogram-logo.svg +0 -38
  90. package/dist/dashboard/out/app/onboarding.html +0 -1
  91. package/dist/dashboard/out/app/onboarding.txt +0 -7
  92. package/dist/dashboard/out/app.html +0 -1
  93. package/dist/dashboard/out/app.txt +0 -7
  94. package/dist/dashboard/out/apple-icon.png +0 -0
  95. package/dist/dashboard/out/cloud/link.html +0 -1
  96. package/dist/dashboard/out/cloud/link.txt +0 -7
  97. package/dist/dashboard/out/complete-profile.html +0 -5
  98. package/dist/dashboard/out/complete-profile.txt +0 -7
  99. package/dist/dashboard/out/connect-repos.html +0 -1
  100. package/dist/dashboard/out/connect-repos.txt +0 -7
  101. package/dist/dashboard/out/history.html +0 -1
  102. package/dist/dashboard/out/history.txt +0 -7
  103. package/dist/dashboard/out/index.html +0 -1
  104. package/dist/dashboard/out/index.txt +0 -7
  105. package/dist/dashboard/out/login.html +0 -5
  106. package/dist/dashboard/out/login.txt +0 -7
  107. package/dist/dashboard/out/metrics.html +0 -1
  108. package/dist/dashboard/out/metrics.txt +0 -7
  109. package/dist/dashboard/out/pricing.html +0 -13
  110. package/dist/dashboard/out/pricing.txt +0 -7
  111. package/dist/dashboard/out/providers/setup/claude.html +0 -1
  112. package/dist/dashboard/out/providers/setup/claude.txt +0 -8
  113. package/dist/dashboard/out/providers/setup/codex.html +0 -1
  114. package/dist/dashboard/out/providers/setup/codex.txt +0 -8
  115. package/dist/dashboard/out/providers/setup/cursor.html +0 -1
  116. package/dist/dashboard/out/providers/setup/cursor.txt +0 -8
  117. package/dist/dashboard/out/providers.html +0 -1
  118. package/dist/dashboard/out/providers.txt +0 -7
  119. package/dist/dashboard/out/signup.html +0 -6
  120. package/dist/dashboard/out/signup.txt +0 -7
  121. package/dist/src/dashboard-server/index.d.ts +0 -8
  122. package/dist/src/dashboard-server/index.js +0 -8
  123. package/packages/dashboard/README.md +0 -48
  124. package/packages/dashboard/dist/health-worker-manager.d.ts +0 -62
  125. package/packages/dashboard/dist/health-worker-manager.js +0 -144
  126. package/packages/dashboard/dist/health-worker.d.ts +0 -9
  127. package/packages/dashboard/dist/health-worker.js +0 -79
  128. package/packages/dashboard/dist/index.d.ts +0 -20
  129. package/packages/dashboard/dist/index.js +0 -19
  130. package/packages/dashboard/dist/metrics.d.ts +0 -105
  131. package/packages/dashboard/dist/metrics.js +0 -193
  132. package/packages/dashboard/dist/needs-attention.d.ts +0 -24
  133. package/packages/dashboard/dist/needs-attention.js +0 -78
  134. package/packages/dashboard/dist/server.d.ts +0 -25
  135. package/packages/dashboard/dist/server.js +0 -5270
  136. package/packages/dashboard/dist/start.d.ts +0 -6
  137. package/packages/dashboard/dist/start.js +0 -13
  138. package/packages/dashboard/dist/types/threading.d.ts +0 -8
  139. package/packages/dashboard/dist/types/threading.js +0 -2
  140. package/packages/dashboard/dist/user-bridge.d.ts +0 -154
  141. package/packages/dashboard/dist/user-bridge.js +0 -372
  142. package/packages/dashboard/package.json +0 -65
  143. package/packages/dashboard/ui/app/app/onboarding/page.tsx +0 -394
  144. package/packages/dashboard/ui/app/app/page.tsx +0 -667
  145. package/packages/dashboard/ui/app/apple-icon.png +0 -0
  146. package/packages/dashboard/ui/app/cloud/link/page.tsx +0 -464
  147. package/packages/dashboard/ui/app/complete-profile/page.tsx +0 -204
  148. package/packages/dashboard/ui/app/connect-repos/page.tsx +0 -410
  149. package/packages/dashboard/ui/app/favicon.png +0 -0
  150. package/packages/dashboard/ui/app/globals.css +0 -59
  151. package/packages/dashboard/ui/app/history/page.tsx +0 -658
  152. package/packages/dashboard/ui/app/layout.tsx +0 -25
  153. package/packages/dashboard/ui/app/login/page.tsx +0 -424
  154. package/packages/dashboard/ui/app/metrics/page.tsx +0 -751
  155. package/packages/dashboard/ui/app/page.tsx +0 -59
  156. package/packages/dashboard/ui/app/pricing/page.tsx +0 -7
  157. package/packages/dashboard/ui/app/providers/page.tsx +0 -193
  158. package/packages/dashboard/ui/app/providers/setup/[provider]/ProviderSetupClient.tsx +0 -148
  159. package/packages/dashboard/ui/app/providers/setup/[provider]/constants.ts +0 -35
  160. package/packages/dashboard/ui/app/providers/setup/[provider]/page.tsx +0 -42
  161. package/packages/dashboard/ui/app/signup/page.tsx +0 -533
  162. package/packages/dashboard/ui/index.ts +0 -49
  163. package/packages/dashboard/ui/landing/LandingPage.tsx +0 -713
  164. package/packages/dashboard/ui/landing/PricingPage.tsx +0 -559
  165. package/packages/dashboard/ui/landing/index.ts +0 -6
  166. package/packages/dashboard/ui/landing/styles.css +0 -2850
  167. package/packages/dashboard/ui/lib/agent-merge.ts +0 -35
  168. package/packages/dashboard/ui/lib/api.ts +0 -1155
  169. package/packages/dashboard/ui/lib/cloudApi.ts +0 -877
  170. package/packages/dashboard/ui/lib/colors.ts +0 -218
  171. package/packages/dashboard/ui/lib/hierarchy.ts +0 -242
  172. package/packages/dashboard/ui/lib/stuckDetection.ts +0 -142
  173. package/packages/dashboard/ui/next-env.d.ts +0 -5
  174. package/packages/dashboard/ui/next.config.js +0 -41
  175. package/packages/dashboard/ui/package-lock.json +0 -2882
  176. package/packages/dashboard/ui/package.json +0 -33
  177. package/packages/dashboard/ui/postcss.config.js +0 -5
  178. package/packages/dashboard/ui/react-components/ActivityFeed.tsx +0 -216
  179. package/packages/dashboard/ui/react-components/AddWorkspaceModal.tsx +0 -170
  180. package/packages/dashboard/ui/react-components/AgentCard.tsx +0 -587
  181. package/packages/dashboard/ui/react-components/AgentList.tsx +0 -411
  182. package/packages/dashboard/ui/react-components/AgentProfilePanel.tsx +0 -564
  183. package/packages/dashboard/ui/react-components/App.tsx +0 -3033
  184. package/packages/dashboard/ui/react-components/BillingPanel.tsx +0 -922
  185. package/packages/dashboard/ui/react-components/BillingResult.tsx +0 -447
  186. package/packages/dashboard/ui/react-components/BroadcastComposer.tsx +0 -690
  187. package/packages/dashboard/ui/react-components/ChannelAdminPanel.tsx +0 -773
  188. package/packages/dashboard/ui/react-components/ChannelBrowser.tsx +0 -385
  189. package/packages/dashboard/ui/react-components/ChannelChat.tsx +0 -261
  190. package/packages/dashboard/ui/react-components/ChannelSidebar.tsx +0 -399
  191. package/packages/dashboard/ui/react-components/CloudSessionProvider.tsx +0 -130
  192. package/packages/dashboard/ui/react-components/CommandPalette.tsx +0 -815
  193. package/packages/dashboard/ui/react-components/ConfirmationDialog.tsx +0 -133
  194. package/packages/dashboard/ui/react-components/ConversationHistory.tsx +0 -518
  195. package/packages/dashboard/ui/react-components/CoordinatorPanel.tsx +0 -944
  196. package/packages/dashboard/ui/react-components/DecisionQueue.tsx +0 -717
  197. package/packages/dashboard/ui/react-components/DirectMessageView.tsx +0 -164
  198. package/packages/dashboard/ui/react-components/FileAutocomplete.tsx +0 -368
  199. package/packages/dashboard/ui/react-components/FleetOverview.tsx +0 -278
  200. package/packages/dashboard/ui/react-components/LogViewer.tsx +0 -310
  201. package/packages/dashboard/ui/react-components/LogViewerPanel.tsx +0 -482
  202. package/packages/dashboard/ui/react-components/Logo.tsx +0 -284
  203. package/packages/dashboard/ui/react-components/MentionAutocomplete.tsx +0 -384
  204. package/packages/dashboard/ui/react-components/MessageComposer.tsx +0 -457
  205. package/packages/dashboard/ui/react-components/MessageList.tsx +0 -649
  206. package/packages/dashboard/ui/react-components/MessageSenderName.tsx +0 -91
  207. package/packages/dashboard/ui/react-components/MessageStatusIndicator.tsx +0 -142
  208. package/packages/dashboard/ui/react-components/NewConversationModal.tsx +0 -400
  209. package/packages/dashboard/ui/react-components/NotificationToast.tsx +0 -488
  210. package/packages/dashboard/ui/react-components/OnlineUsersIndicator.tsx +0 -164
  211. package/packages/dashboard/ui/react-components/Pagination.tsx +0 -124
  212. package/packages/dashboard/ui/react-components/PricingPlans.tsx +0 -386
  213. package/packages/dashboard/ui/react-components/ProjectList.tsx +0 -625
  214. package/packages/dashboard/ui/react-components/ProviderAuthFlow.tsx +0 -853
  215. package/packages/dashboard/ui/react-components/ProviderConnectionList.tsx +0 -378
  216. package/packages/dashboard/ui/react-components/ProvisioningProgress.tsx +0 -730
  217. package/packages/dashboard/ui/react-components/RepoAccessPanel.tsx +0 -549
  218. package/packages/dashboard/ui/react-components/ServerCard.tsx +0 -202
  219. package/packages/dashboard/ui/react-components/SessionExpiredModal.tsx +0 -128
  220. package/packages/dashboard/ui/react-components/SpawnModal.tsx +0 -804
  221. package/packages/dashboard/ui/react-components/TaskAssignmentUI.tsx +0 -375
  222. package/packages/dashboard/ui/react-components/TerminalProviderSetup.tsx +0 -608
  223. package/packages/dashboard/ui/react-components/ThemeProvider.tsx +0 -325
  224. package/packages/dashboard/ui/react-components/ThinkingIndicator.tsx +0 -231
  225. package/packages/dashboard/ui/react-components/ThreadList.tsx +0 -198
  226. package/packages/dashboard/ui/react-components/ThreadPanel.tsx +0 -346
  227. package/packages/dashboard/ui/react-components/TrajectoryViewer.tsx +0 -698
  228. package/packages/dashboard/ui/react-components/TypingIndicator.tsx +0 -69
  229. package/packages/dashboard/ui/react-components/UsageBanner.tsx +0 -231
  230. package/packages/dashboard/ui/react-components/UserProfilePanel.tsx +0 -233
  231. package/packages/dashboard/ui/react-components/WorkspaceContext.tsx +0 -107
  232. package/packages/dashboard/ui/react-components/WorkspaceSelector.tsx +0 -234
  233. package/packages/dashboard/ui/react-components/WorkspaceStatusIndicator.tsx +0 -370
  234. package/packages/dashboard/ui/react-components/XTermInteractive.tsx +0 -510
  235. package/packages/dashboard/ui/react-components/XTermLogViewer.tsx +0 -719
  236. package/packages/dashboard/ui/react-components/channels/ChannelDialogs.tsx +0 -1411
  237. package/packages/dashboard/ui/react-components/channels/ChannelHeader.tsx +0 -317
  238. package/packages/dashboard/ui/react-components/channels/ChannelMessageList.tsx +0 -463
  239. package/packages/dashboard/ui/react-components/channels/ChannelViewV1.tsx +0 -146
  240. package/packages/dashboard/ui/react-components/channels/MessageInput.tsx +0 -288
  241. package/packages/dashboard/ui/react-components/channels/SearchInput.tsx +0 -172
  242. package/packages/dashboard/ui/react-components/channels/SearchResults.tsx +0 -336
  243. package/packages/dashboard/ui/react-components/channels/api.ts +0 -697
  244. package/packages/dashboard/ui/react-components/channels/index.ts +0 -76
  245. package/packages/dashboard/ui/react-components/channels/mockApi.ts +0 -344
  246. package/packages/dashboard/ui/react-components/channels/types.ts +0 -566
  247. package/packages/dashboard/ui/react-components/hooks/index.ts +0 -57
  248. package/packages/dashboard/ui/react-components/hooks/useAgentLogs.ts +0 -394
  249. package/packages/dashboard/ui/react-components/hooks/useAgents.ts +0 -127
  250. package/packages/dashboard/ui/react-components/hooks/useBroadcastDedup.ts +0 -86
  251. package/packages/dashboard/ui/react-components/hooks/useChannelAdmin.ts +0 -329
  252. package/packages/dashboard/ui/react-components/hooks/useChannelBrowser.ts +0 -239
  253. package/packages/dashboard/ui/react-components/hooks/useChannelCommands.ts +0 -138
  254. package/packages/dashboard/ui/react-components/hooks/useChannels.ts +0 -328
  255. package/packages/dashboard/ui/react-components/hooks/useDebounce.ts +0 -29
  256. package/packages/dashboard/ui/react-components/hooks/useDirectMessage.ts +0 -141
  257. package/packages/dashboard/ui/react-components/hooks/useMessages.ts +0 -309
  258. package/packages/dashboard/ui/react-components/hooks/useOrchestrator.ts +0 -364
  259. package/packages/dashboard/ui/react-components/hooks/usePinnedAgents.ts +0 -140
  260. package/packages/dashboard/ui/react-components/hooks/usePresence.ts +0 -340
  261. package/packages/dashboard/ui/react-components/hooks/useRecentRepos.ts +0 -130
  262. package/packages/dashboard/ui/react-components/hooks/useSession.ts +0 -209
  263. package/packages/dashboard/ui/react-components/hooks/useTrajectory.ts +0 -265
  264. package/packages/dashboard/ui/react-components/hooks/useWebSocket.ts +0 -169
  265. package/packages/dashboard/ui/react-components/hooks/useWorkspaceMembers.ts +0 -120
  266. package/packages/dashboard/ui/react-components/hooks/useWorkspaceRepos.ts +0 -73
  267. package/packages/dashboard/ui/react-components/hooks/useWorkspaceStatus.ts +0 -237
  268. package/packages/dashboard/ui/react-components/index.ts +0 -81
  269. package/packages/dashboard/ui/react-components/layout/Header.tsx +0 -355
  270. package/packages/dashboard/ui/react-components/layout/RepoContextHeader.tsx +0 -361
  271. package/packages/dashboard/ui/react-components/layout/Sidebar.archive.test.tsx +0 -126
  272. package/packages/dashboard/ui/react-components/layout/Sidebar.test.tsx +0 -691
  273. package/packages/dashboard/ui/react-components/layout/Sidebar.tsx +0 -930
  274. package/packages/dashboard/ui/react-components/layout/index.ts +0 -7
  275. package/packages/dashboard/ui/react-components/settings/BillingSettingsPanel.tsx +0 -564
  276. package/packages/dashboard/ui/react-components/settings/SettingsPage.tsx +0 -544
  277. package/packages/dashboard/ui/react-components/settings/TeamSettingsPanel.tsx +0 -560
  278. package/packages/dashboard/ui/react-components/settings/WorkspaceSettingsPanel.tsx +0 -1386
  279. package/packages/dashboard/ui/react-components/settings/index.ts +0 -11
  280. package/packages/dashboard/ui/react-components/settings/types.ts +0 -53
  281. package/packages/dashboard/ui/react-components/utils/messageFormatting.tsx +0 -370
  282. package/packages/dashboard/ui/tailwind.config.js +0 -148
  283. package/packages/dashboard/ui/types/index.ts +0 -304
  284. package/packages/dashboard/ui/types/threading.ts +0 -7
  285. package/packages/dashboard/ui-dist/404.html +0 -1
  286. package/packages/dashboard/ui-dist/_next/static/91mkGYq3qbG8WHE6VytQ8/_buildManifest.js +0 -1
  287. package/packages/dashboard/ui-dist/_next/static/91mkGYq3qbG8WHE6VytQ8/_ssgManifest.js +0 -1
  288. package/packages/dashboard/ui-dist/_next/static/T2rV14eEU5OweDeV29SvG/_buildManifest.js +0 -1
  289. package/packages/dashboard/ui-dist/_next/static/T2rV14eEU5OweDeV29SvG/_ssgManifest.js +0 -1
  290. package/packages/dashboard/ui-dist/_next/static/chunks/116-a883fca163f3a5bc.js +0 -1
  291. package/packages/dashboard/ui-dist/_next/static/chunks/117-c8afed19e821a35d.js +0 -2
  292. package/packages/dashboard/ui-dist/_next/static/chunks/282-980c2eb8fff20123.js +0 -1
  293. package/packages/dashboard/ui-dist/_next/static/chunks/320-a6304232cd0ee2ce.js +0 -1
  294. package/packages/dashboard/ui-dist/_next/static/chunks/532-bace199897eeab37.js +0 -9
  295. package/packages/dashboard/ui-dist/_next/static/chunks/631-16b905e5920f9b59.js +0 -1
  296. package/packages/dashboard/ui-dist/_next/static/chunks/648-acb2ff9f77cbfbd3.js +0 -1
  297. package/packages/dashboard/ui-dist/_next/static/chunks/766-2aea80818f7eb0d8.js +0 -1
  298. package/packages/dashboard/ui-dist/_next/static/chunks/83-26d2bde54616ee90.js +0 -1
  299. package/packages/dashboard/ui-dist/_next/static/chunks/847-f1f467060f32afff.js +0 -1
  300. package/packages/dashboard/ui-dist/_next/static/chunks/891-5cb1513eeb97a891.js +0 -1
  301. package/packages/dashboard/ui-dist/_next/static/chunks/app/_not-found/page-60501fddbafba9dc.js +0 -1
  302. package/packages/dashboard/ui-dist/_next/static/chunks/app/app/onboarding/page-9914652442f7e4fb.js +0 -1
  303. package/packages/dashboard/ui-dist/_next/static/chunks/app/app/page-366fb7c078d4e9e0.js +0 -1
  304. package/packages/dashboard/ui-dist/_next/static/chunks/app/cloud/link/page-fa1d5842aa90e8a6.js +0 -1
  305. package/packages/dashboard/ui-dist/_next/static/chunks/app/complete-profile/page-dd64bbdf66b639cd.js +0 -1
  306. package/packages/dashboard/ui-dist/_next/static/chunks/app/connect-repos/page-113060009ef35bc2.js +0 -1
  307. package/packages/dashboard/ui-dist/_next/static/chunks/app/history/page-9965d2483011b846.js +0 -1
  308. package/packages/dashboard/ui-dist/_next/static/chunks/app/layout-6b91e33784c20610.js +0 -1
  309. package/packages/dashboard/ui-dist/_next/static/chunks/app/login/page-435eceb0073be027.js +0 -1
  310. package/packages/dashboard/ui-dist/_next/static/chunks/app/metrics/page-1e37ef8e73940b40.js +0 -1
  311. package/packages/dashboard/ui-dist/_next/static/chunks/app/page-8119d4246743574e.js +0 -1
  312. package/packages/dashboard/ui-dist/_next/static/chunks/app/pricing/page-9db3ebdfa567a7c9.js +0 -1
  313. package/packages/dashboard/ui-dist/_next/static/chunks/app/providers/page-ecb16ffd3b36262b.js +0 -1
  314. package/packages/dashboard/ui-dist/_next/static/chunks/app/providers/setup/[provider]/page-4dbe33f0f7691b7c.js +0 -1
  315. package/packages/dashboard/ui-dist/_next/static/chunks/app/signup/page-c7a0a28341365ae0.js +0 -1
  316. package/packages/dashboard/ui-dist/_next/static/chunks/e868780c-48e5f147c90a3a41.js +0 -18
  317. package/packages/dashboard/ui-dist/_next/static/chunks/fd9d1056-609918ca7b6280bb.js +0 -1
  318. package/packages/dashboard/ui-dist/_next/static/chunks/framework-f66176bb897dc684.js +0 -1
  319. package/packages/dashboard/ui-dist/_next/static/chunks/main-311c3db74dcfadb7.js +0 -1
  320. package/packages/dashboard/ui-dist/_next/static/chunks/main-app-fdbeb09028f57c9f.js +0 -1
  321. package/packages/dashboard/ui-dist/_next/static/chunks/pages/_app-72b849fbd24ac258.js +0 -1
  322. package/packages/dashboard/ui-dist/_next/static/chunks/pages/_error-7ba65e1336b92748.js +0 -1
  323. package/packages/dashboard/ui-dist/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
  324. package/packages/dashboard/ui-dist/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +0 -1
  325. package/packages/dashboard/ui-dist/_next/static/css/4034f236dd1a3178.css +0 -1
  326. package/packages/dashboard/ui-dist/_next/static/css/6892f8422896ef7a.css +0 -1
  327. package/packages/dashboard/ui-dist/_next/static/l8L2OscDSR2vsMIlWcC48/_buildManifest.js +0 -1
  328. package/packages/dashboard/ui-dist/_next/static/l8L2OscDSR2vsMIlWcC48/_ssgManifest.js +0 -1
  329. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-128.png +0 -0
  330. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-256.png +0 -0
  331. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-32.png +0 -0
  332. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-512.png +0 -0
  333. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo-64.png +0 -0
  334. package/packages/dashboard/ui-dist/alt-logos/agent-relay-logo.svg +0 -45
  335. package/packages/dashboard/ui-dist/alt-logos/logo.svg +0 -38
  336. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-128.png +0 -0
  337. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-256.png +0 -0
  338. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-32.png +0 -0
  339. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-512.png +0 -0
  340. package/packages/dashboard/ui-dist/alt-logos/monogram-logo-64.png +0 -0
  341. package/packages/dashboard/ui-dist/alt-logos/monogram-logo.svg +0 -38
  342. package/packages/dashboard/ui-dist/app/onboarding.html +0 -1
  343. package/packages/dashboard/ui-dist/app/onboarding.txt +0 -7
  344. package/packages/dashboard/ui-dist/app.html +0 -1
  345. package/packages/dashboard/ui-dist/app.txt +0 -7
  346. package/packages/dashboard/ui-dist/apple-icon.png +0 -0
  347. package/packages/dashboard/ui-dist/cloud/link.html +0 -1
  348. package/packages/dashboard/ui-dist/cloud/link.txt +0 -7
  349. package/packages/dashboard/ui-dist/complete-profile.html +0 -5
  350. package/packages/dashboard/ui-dist/complete-profile.txt +0 -7
  351. package/packages/dashboard/ui-dist/connect-repos.html +0 -1
  352. package/packages/dashboard/ui-dist/connect-repos.txt +0 -7
  353. package/packages/dashboard/ui-dist/history.html +0 -1
  354. package/packages/dashboard/ui-dist/history.txt +0 -7
  355. package/packages/dashboard/ui-dist/index.html +0 -1
  356. package/packages/dashboard/ui-dist/index.txt +0 -7
  357. package/packages/dashboard/ui-dist/login.html +0 -5
  358. package/packages/dashboard/ui-dist/login.txt +0 -7
  359. package/packages/dashboard/ui-dist/metrics.html +0 -1
  360. package/packages/dashboard/ui-dist/metrics.txt +0 -7
  361. package/packages/dashboard/ui-dist/pricing.html +0 -13
  362. package/packages/dashboard/ui-dist/pricing.txt +0 -7
  363. package/packages/dashboard/ui-dist/providers/setup/claude.html +0 -1
  364. package/packages/dashboard/ui-dist/providers/setup/claude.txt +0 -8
  365. package/packages/dashboard/ui-dist/providers/setup/codex.html +0 -1
  366. package/packages/dashboard/ui-dist/providers/setup/codex.txt +0 -8
  367. package/packages/dashboard/ui-dist/providers/setup/cursor.html +0 -1
  368. package/packages/dashboard/ui-dist/providers/setup/cursor.txt +0 -8
  369. package/packages/dashboard/ui-dist/providers.html +0 -1
  370. package/packages/dashboard/ui-dist/providers.txt +0 -7
  371. package/packages/dashboard/ui-dist/signup.html +0 -6
  372. package/packages/dashboard/ui-dist/signup.txt +0 -7
  373. package/packages/dashboard-server/dist/health-worker-manager.d.ts +0 -62
  374. package/packages/dashboard-server/dist/health-worker-manager.js +0 -144
  375. package/packages/dashboard-server/dist/health-worker.d.ts +0 -9
  376. package/packages/dashboard-server/dist/health-worker.js +0 -79
  377. package/packages/dashboard-server/dist/index.d.ts +0 -18
  378. package/packages/dashboard-server/dist/index.js +0 -17
  379. package/packages/dashboard-server/dist/metrics.d.ts +0 -105
  380. package/packages/dashboard-server/dist/metrics.js +0 -193
  381. package/packages/dashboard-server/dist/needs-attention.d.ts +0 -24
  382. package/packages/dashboard-server/dist/needs-attention.js +0 -78
  383. package/packages/dashboard-server/dist/server.d.ts +0 -25
  384. package/packages/dashboard-server/dist/server.js +0 -5158
  385. package/packages/dashboard-server/dist/start.d.ts +0 -6
  386. package/packages/dashboard-server/dist/start.js +0 -13
  387. package/packages/dashboard-server/dist/types/threading.d.ts +0 -8
  388. package/packages/dashboard-server/dist/types/threading.js +0 -2
  389. package/packages/dashboard-server/dist/user-bridge.d.ts +0 -158
  390. package/packages/dashboard-server/dist/user-bridge.js +0 -390
  391. package/packages/dashboard-server/package.json +0 -55
@@ -1,124 +0,0 @@
1
- /**
2
- * Pagination Component
3
- *
4
- * A reusable pagination control with page numbers and navigation.
5
- */
6
-
7
- import React, { useMemo } from 'react';
8
-
9
- export interface PaginationProps {
10
- currentPage: number;
11
- totalPages: number;
12
- onPageChange: (page: number) => void;
13
- maxVisiblePages?: number;
14
- }
15
-
16
- export function Pagination({
17
- currentPage,
18
- totalPages,
19
- onPageChange,
20
- maxVisiblePages = 5,
21
- }: PaginationProps) {
22
- const pages = useMemo(() => {
23
- if (totalPages <= maxVisiblePages) {
24
- return Array.from({ length: totalPages }, (_, i) => i + 1);
25
- }
26
-
27
- const half = Math.floor(maxVisiblePages / 2);
28
- let start = Math.max(1, currentPage - half);
29
- let end = Math.min(totalPages, start + maxVisiblePages - 1);
30
-
31
- if (end - start + 1 < maxVisiblePages) {
32
- start = Math.max(1, end - maxVisiblePages + 1);
33
- }
34
-
35
- const result: (number | 'ellipsis-start' | 'ellipsis-end')[] = [];
36
-
37
- if (start > 1) {
38
- result.push(1);
39
- if (start > 2) {
40
- result.push('ellipsis-start');
41
- }
42
- }
43
-
44
- for (let i = start; i <= end; i++) {
45
- result.push(i);
46
- }
47
-
48
- if (end < totalPages) {
49
- if (end < totalPages - 1) {
50
- result.push('ellipsis-end');
51
- }
52
- result.push(totalPages);
53
- }
54
-
55
- return result;
56
- }, [currentPage, totalPages, maxVisiblePages]);
57
-
58
- if (totalPages <= 1) {
59
- return null;
60
- }
61
-
62
- return (
63
- <nav className="flex items-center justify-center gap-1" aria-label="Pagination">
64
- {/* Previous button */}
65
- <button
66
- onClick={() => onPageChange(currentPage - 1)}
67
- disabled={currentPage === 1}
68
- className="px-2 py-1.5 text-sm rounded-md border border-sidebar-border text-text-secondary hover:bg-sidebar-border disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
69
- aria-label="Previous page"
70
- >
71
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
72
- <polyline points="15 18 9 12 15 6" />
73
- </svg>
74
- </button>
75
-
76
- {/* Page numbers */}
77
- <div className="flex items-center gap-1">
78
- {pages.map((page, index) => {
79
- if (page === 'ellipsis-start' || page === 'ellipsis-end') {
80
- return (
81
- <span
82
- key={page}
83
- className="px-2 py-1 text-sm text-text-muted"
84
- >
85
- ...
86
- </span>
87
- );
88
- }
89
-
90
- const isActive = page === currentPage;
91
- return (
92
- <button
93
- key={page}
94
- onClick={() => onPageChange(page)}
95
- className={`
96
- min-w-[32px] px-2 py-1.5 text-sm rounded-md border transition-colors
97
- ${isActive
98
- ? 'bg-accent-cyan text-bg-deep border-accent-cyan font-medium'
99
- : 'border-sidebar-border text-text-secondary hover:bg-sidebar-border'
100
- }
101
- `}
102
- aria-label={`Page ${page}`}
103
- aria-current={isActive ? 'page' : undefined}
104
- >
105
- {page}
106
- </button>
107
- );
108
- })}
109
- </div>
110
-
111
- {/* Next button */}
112
- <button
113
- onClick={() => onPageChange(currentPage + 1)}
114
- disabled={currentPage === totalPages}
115
- className="px-2 py-1.5 text-sm rounded-md border border-sidebar-border text-text-secondary hover:bg-sidebar-border disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
116
- aria-label="Next page"
117
- >
118
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
119
- <polyline points="9 18 15 12 9 6" />
120
- </svg>
121
- </button>
122
- </nav>
123
- );
124
- }
@@ -1,386 +0,0 @@
1
- /**
2
- * Pricing Plans Component
3
- *
4
- * Displays available subscription plans with features and pricing.
5
- */
6
-
7
- import React, { useState } from 'react';
8
-
9
- export interface Plan {
10
- id: string;
11
- name: string;
12
- description: string;
13
- priceMonthly: number;
14
- priceYearly: number;
15
- limits: {
16
- maxWorkspaces: number;
17
- maxAgentsPerWorkspace: number;
18
- maxTeamMembers: number;
19
- maxStorageGB: number;
20
- maxComputeHoursPerMonth: number;
21
- customDomains: boolean;
22
- prioritySupport: boolean;
23
- sla: boolean;
24
- ssoEnabled: boolean;
25
- auditLogs: boolean;
26
- };
27
- features: string[];
28
- }
29
-
30
- export interface PricingPlansProps {
31
- plans: Plan[];
32
- currentPlan?: string;
33
- onSelectPlan: (planId: string, interval: 'month' | 'year') => void;
34
- isLoading?: boolean;
35
- }
36
-
37
- export function PricingPlans({
38
- plans,
39
- currentPlan = 'free',
40
- onSelectPlan,
41
- isLoading = false,
42
- }: PricingPlansProps) {
43
- const [billingInterval, setBillingInterval] = useState<'month' | 'year'>('month');
44
-
45
- const formatPrice = (cents: number) => {
46
- if (cents === 0) return 'Free';
47
- return `$${(cents / 100).toFixed(0)}`;
48
- };
49
-
50
- const formatLimit = (value: number) => {
51
- if (value === -1) return 'Unlimited';
52
- return value.toString();
53
- };
54
-
55
- return (
56
- <div className="pricing-plans">
57
- {/* Billing Toggle */}
58
- <div className="billing-toggle">
59
- <button
60
- className={`toggle-btn ${billingInterval === 'month' ? 'active' : ''}`}
61
- onClick={() => setBillingInterval('month')}
62
- >
63
- Monthly
64
- </button>
65
- <button
66
- className={`toggle-btn ${billingInterval === 'year' ? 'active' : ''}`}
67
- onClick={() => setBillingInterval('year')}
68
- >
69
- Yearly
70
- <span className="save-badge">Save 17%</span>
71
- </button>
72
- </div>
73
-
74
- {/* Plans Grid */}
75
- <div className="plans-grid">
76
- {plans.map((plan) => {
77
- const isCurrent = plan.id === currentPlan;
78
- const price = billingInterval === 'month' ? plan.priceMonthly : plan.priceYearly;
79
- const monthlyEquivalent = billingInterval === 'year' ? plan.priceYearly / 12 : plan.priceMonthly;
80
-
81
- return (
82
- <div
83
- key={plan.id}
84
- className={`plan-card ${isCurrent ? 'current' : ''} ${plan.id === 'pro' ? 'popular' : ''}`}
85
- >
86
- {plan.id === 'pro' && <div className="popular-badge">Most Popular</div>}
87
- {isCurrent && <div className="current-badge">Current Plan</div>}
88
-
89
- <div className="plan-header">
90
- <h3 className="plan-name">{plan.name}</h3>
91
- <p className="plan-description">{plan.description}</p>
92
- </div>
93
-
94
- <div className="plan-pricing">
95
- <span className="plan-price">{formatPrice(monthlyEquivalent)}</span>
96
- {price > 0 && (
97
- <span className="plan-period">
98
- /month{billingInterval === 'year' && ', billed yearly'}
99
- </span>
100
- )}
101
- </div>
102
-
103
- <ul className="plan-features">
104
- {plan.features.map((feature, i) => (
105
- <li key={i}>
106
- <CheckIcon />
107
- <span>{feature}</span>
108
- </li>
109
- ))}
110
- </ul>
111
-
112
- <div className="plan-limits">
113
- <div className="limit-item">
114
- <span className="limit-label">Workspaces</span>
115
- <span className="limit-value">{formatLimit(plan.limits.maxWorkspaces)}</span>
116
- </div>
117
- <div className="limit-item">
118
- <span className="limit-label">Agents/Workspace</span>
119
- <span className="limit-value">{formatLimit(plan.limits.maxAgentsPerWorkspace)}</span>
120
- </div>
121
- <div className="limit-item">
122
- <span className="limit-label">Team Members</span>
123
- <span className="limit-value">{formatLimit(plan.limits.maxTeamMembers)}</span>
124
- </div>
125
- <div className="limit-item">
126
- <span className="limit-label">Storage</span>
127
- <span className="limit-value">{formatLimit(plan.limits.maxStorageGB)} GB</span>
128
- </div>
129
- </div>
130
-
131
- <button
132
- className={`plan-button ${isCurrent ? 'current' : ''} ${plan.id === 'free' ? 'free' : ''}`}
133
- onClick={() => onSelectPlan(plan.id, billingInterval)}
134
- disabled={isCurrent || isLoading}
135
- >
136
- {isLoading ? (
137
- 'Loading...'
138
- ) : isCurrent ? (
139
- 'Current Plan'
140
- ) : plan.id === 'free' ? (
141
- 'Downgrade'
142
- ) : plan.id === 'enterprise' ? (
143
- 'Contact Sales'
144
- ) : (
145
- 'Upgrade'
146
- )}
147
- </button>
148
- </div>
149
- );
150
- })}
151
- </div>
152
- </div>
153
- );
154
- }
155
-
156
- function CheckIcon() {
157
- return (
158
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
159
- <polyline points="20 6 9 17 4 12" />
160
- </svg>
161
- );
162
- }
163
-
164
- export const pricingPlansStyles = `
165
- .pricing-plans {
166
- max-width: 1200px;
167
- margin: 0 auto;
168
- padding: 24px;
169
- }
170
-
171
- .billing-toggle {
172
- display: flex;
173
- justify-content: center;
174
- gap: 4px;
175
- margin-bottom: 32px;
176
- background: #2a2a3e;
177
- padding: 4px;
178
- border-radius: 8px;
179
- width: fit-content;
180
- margin-left: auto;
181
- margin-right: auto;
182
- }
183
-
184
- .toggle-btn {
185
- padding: 10px 20px;
186
- background: transparent;
187
- border: none;
188
- border-radius: 6px;
189
- color: #8d8d8e;
190
- font-size: 14px;
191
- cursor: pointer;
192
- transition: all 0.2s;
193
- display: flex;
194
- align-items: center;
195
- gap: 8px;
196
- }
197
-
198
- .toggle-btn.active {
199
- background: #00c896;
200
- color: #1a1a2e;
201
- }
202
-
203
- .save-badge {
204
- font-size: 11px;
205
- padding: 2px 6px;
206
- background: rgba(0, 200, 150, 0.2);
207
- border-radius: 4px;
208
- color: #00c896;
209
- }
210
-
211
- .toggle-btn.active .save-badge {
212
- background: rgba(26, 26, 46, 0.3);
213
- color: #1a1a2e;
214
- }
215
-
216
- .plans-grid {
217
- display: grid;
218
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
219
- gap: 24px;
220
- }
221
-
222
- .plan-card {
223
- background: #1a1a2e;
224
- border: 1px solid #2a2a3e;
225
- border-radius: 12px;
226
- padding: 24px;
227
- position: relative;
228
- transition: all 0.2s;
229
- }
230
-
231
- .plan-card:hover {
232
- border-color: #3a3a4e;
233
- }
234
-
235
- .plan-card.popular {
236
- border-color: #00c896;
237
- }
238
-
239
- .plan-card.current {
240
- border-color: #1264a3;
241
- }
242
-
243
- .popular-badge,
244
- .current-badge {
245
- position: absolute;
246
- top: -12px;
247
- left: 50%;
248
- transform: translateX(-50%);
249
- padding: 4px 12px;
250
- border-radius: 12px;
251
- font-size: 12px;
252
- font-weight: 500;
253
- white-space: nowrap;
254
- }
255
-
256
- .popular-badge {
257
- background: #00c896;
258
- color: #1a1a2e;
259
- }
260
-
261
- .current-badge {
262
- background: #1264a3;
263
- color: white;
264
- }
265
-
266
- .plan-header {
267
- margin-bottom: 20px;
268
- }
269
-
270
- .plan-name {
271
- margin: 0 0 8px;
272
- font-size: 20px;
273
- font-weight: 600;
274
- color: #e8e8e8;
275
- }
276
-
277
- .plan-description {
278
- margin: 0;
279
- font-size: 14px;
280
- color: #8d8d8e;
281
- }
282
-
283
- .plan-pricing {
284
- margin-bottom: 24px;
285
- }
286
-
287
- .plan-price {
288
- font-size: 36px;
289
- font-weight: 700;
290
- color: #e8e8e8;
291
- }
292
-
293
- .plan-period {
294
- font-size: 14px;
295
- color: #8d8d8e;
296
- margin-left: 4px;
297
- }
298
-
299
- .plan-features {
300
- list-style: none;
301
- padding: 0;
302
- margin: 0 0 24px;
303
- }
304
-
305
- .plan-features li {
306
- display: flex;
307
- align-items: flex-start;
308
- gap: 10px;
309
- padding: 8px 0;
310
- font-size: 14px;
311
- color: #b8b8b8;
312
- }
313
-
314
- .plan-features li svg {
315
- color: #00c896;
316
- flex-shrink: 0;
317
- margin-top: 2px;
318
- }
319
-
320
- .plan-limits {
321
- padding: 16px 0;
322
- border-top: 1px solid #2a2a3e;
323
- margin-bottom: 24px;
324
- }
325
-
326
- .limit-item {
327
- display: flex;
328
- justify-content: space-between;
329
- padding: 6px 0;
330
- font-size: 13px;
331
- }
332
-
333
- .limit-label {
334
- color: #8d8d8e;
335
- }
336
-
337
- .limit-value {
338
- color: #e8e8e8;
339
- font-weight: 500;
340
- }
341
-
342
- .plan-button {
343
- width: 100%;
344
- padding: 12px 24px;
345
- border: none;
346
- border-radius: 8px;
347
- font-size: 14px;
348
- font-weight: 500;
349
- cursor: pointer;
350
- transition: all 0.2s;
351
- background: #00c896;
352
- color: #1a1a2e;
353
- }
354
-
355
- .plan-button:hover:not(:disabled) {
356
- background: #00a87d;
357
- }
358
-
359
- .plan-button.current {
360
- background: #2a2a3e;
361
- color: #8d8d8e;
362
- cursor: default;
363
- }
364
-
365
- .plan-button.free {
366
- background: transparent;
367
- border: 1px solid #3a3a4e;
368
- color: #8d8d8e;
369
- }
370
-
371
- .plan-button.free:hover:not(:disabled) {
372
- background: rgba(255, 255, 255, 0.05);
373
- border-color: #4a4a5e;
374
- }
375
-
376
- .plan-button:disabled {
377
- opacity: 0.6;
378
- cursor: not-allowed;
379
- }
380
-
381
- @media (max-width: 768px) {
382
- .plans-grid {
383
- grid-template-columns: 1fr;
384
- }
385
- }
386
- `;