slackhive 0.1.37 → 0.1.39

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 (542) hide show
  1. package/.dockerignore +14 -0
  2. package/.env.example +44 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.yml +65 -0
  4. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.yml +38 -0
  6. package/.github/PULL_REQUEST_TEMPLATE.md +27 -0
  7. package/.github/dependabot.yml +20 -0
  8. package/.github/workflows/audit.yml +149 -0
  9. package/.github/workflows/ci.yml +135 -0
  10. package/CHANGELOG.md +52 -0
  11. package/CODE_OF_CONDUCT.md +37 -0
  12. package/CONTRIBUTING.md +204 -0
  13. package/LICENSE +21 -0
  14. package/README.md +19 -0
  15. package/SECURITY.md +47 -0
  16. package/apps/runner/Dockerfile +33 -0
  17. package/apps/runner/dist/__tests__/channel-restrictions.test.d.ts +8 -0
  18. package/apps/runner/dist/__tests__/channel-restrictions.test.js +63 -0
  19. package/apps/runner/dist/__tests__/channel-restrictions.test.js.map +1 -0
  20. package/apps/runner/dist/__tests__/claude-handler-resolve.test.d.ts +20 -0
  21. package/apps/runner/dist/__tests__/claude-handler-resolve.test.js +178 -0
  22. package/apps/runner/dist/__tests__/claude-handler-resolve.test.js.map +1 -0
  23. package/apps/runner/dist/__tests__/compile-claude-md.test.d.ts +13 -0
  24. package/apps/runner/dist/__tests__/compile-claude-md.test.js +144 -0
  25. package/apps/runner/dist/__tests__/compile-claude-md.test.js.map +1 -0
  26. package/apps/runner/dist/__tests__/memory-sync.test.d.ts +11 -0
  27. package/apps/runner/dist/__tests__/memory-sync.test.js +56 -0
  28. package/apps/runner/dist/__tests__/memory-sync.test.js.map +1 -0
  29. package/apps/runner/dist/__tests__/slack-file-support.test.d.ts +9 -0
  30. package/apps/runner/dist/__tests__/slack-file-support.test.js +271 -0
  31. package/apps/runner/dist/__tests__/slack-file-support.test.js.map +1 -0
  32. package/apps/runner/dist/__tests__/slack-formatting.test.d.ts +12 -0
  33. package/apps/runner/dist/__tests__/slack-formatting.test.js +400 -0
  34. package/apps/runner/dist/__tests__/slack-formatting.test.js.map +1 -0
  35. package/apps/runner/dist/__tests__/thread-context.test.d.ts +12 -0
  36. package/apps/runner/dist/__tests__/thread-context.test.js +182 -0
  37. package/apps/runner/dist/__tests__/thread-context.test.js.map +1 -0
  38. package/apps/runner/dist/agent-runner.d.ts +118 -0
  39. package/apps/runner/dist/agent-runner.js +352 -0
  40. package/apps/runner/dist/agent-runner.js.map +1 -0
  41. package/apps/runner/dist/claude-handler.d.ts +122 -0
  42. package/apps/runner/dist/claude-handler.js +402 -0
  43. package/apps/runner/dist/claude-handler.js.map +1 -0
  44. package/apps/runner/dist/compile-claude-md.d.ts +59 -0
  45. package/apps/runner/dist/compile-claude-md.js +291 -0
  46. package/apps/runner/dist/compile-claude-md.js.map +1 -0
  47. package/apps/runner/dist/correction-handler.d.ts +46 -0
  48. package/apps/runner/dist/correction-handler.js +162 -0
  49. package/apps/runner/dist/correction-handler.js.map +1 -0
  50. package/apps/runner/dist/correction-manager.d.ts +53 -0
  51. package/apps/runner/dist/correction-manager.js +241 -0
  52. package/apps/runner/dist/correction-manager.js.map +1 -0
  53. package/apps/runner/dist/db.d.ts +193 -0
  54. package/apps/runner/dist/db.js +492 -0
  55. package/apps/runner/dist/db.js.map +1 -0
  56. package/apps/runner/dist/index.d.ts +9 -0
  57. package/apps/runner/dist/index.js +43 -0
  58. package/apps/runner/dist/index.js.map +1 -0
  59. package/apps/runner/dist/job-scheduler.d.ts +57 -0
  60. package/apps/runner/dist/job-scheduler.js +150 -0
  61. package/apps/runner/dist/job-scheduler.js.map +1 -0
  62. package/apps/runner/dist/logger.d.ts +32 -0
  63. package/apps/runner/dist/logger.js +52 -0
  64. package/apps/runner/dist/logger.js.map +1 -0
  65. package/apps/runner/dist/mcp-process-manager.d.ts +38 -0
  66. package/apps/runner/dist/mcp-process-manager.js +189 -0
  67. package/apps/runner/dist/mcp-process-manager.js.map +1 -0
  68. package/apps/runner/dist/memory-mcp.d.ts +14 -0
  69. package/apps/runner/dist/memory-mcp.js +88 -0
  70. package/apps/runner/dist/memory-mcp.js.map +1 -0
  71. package/apps/runner/dist/memory-watcher.d.ts +78 -0
  72. package/apps/runner/dist/memory-watcher.js +220 -0
  73. package/apps/runner/dist/memory-watcher.js.map +1 -0
  74. package/apps/runner/dist/slack-handler.d.ts +120 -0
  75. package/apps/runner/dist/slack-handler.js +843 -0
  76. package/apps/runner/dist/slack-handler.js.map +1 -0
  77. package/apps/runner/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  78. package/apps/runner/package.json +42 -0
  79. package/apps/runner/src/__tests__/channel-restrictions.test.ts +75 -0
  80. package/apps/runner/src/__tests__/claude-handler-resolve.test.ts +160 -0
  81. package/apps/runner/src/__tests__/compile-claude-md.test.ts +139 -0
  82. package/apps/runner/src/__tests__/memory-sync.test.ts +59 -0
  83. package/apps/runner/src/__tests__/slack-file-support.test.ts +376 -0
  84. package/apps/runner/src/__tests__/slack-formatting.test.ts +495 -0
  85. package/apps/runner/src/__tests__/thread-context.test.ts +215 -0
  86. package/apps/runner/src/agent-runner.ts +397 -0
  87. package/apps/runner/src/claude-handler.ts +475 -0
  88. package/apps/runner/src/compile-claude-md.ts +283 -0
  89. package/apps/runner/src/correction-handler.ts +191 -0
  90. package/apps/runner/src/correction-manager.ts +285 -0
  91. package/apps/runner/src/db.ts +604 -0
  92. package/apps/runner/src/index.ts +46 -0
  93. package/apps/runner/src/job-scheduler.ts +165 -0
  94. package/apps/runner/src/logger.ts +49 -0
  95. package/apps/runner/src/mcp-process-manager.ts +195 -0
  96. package/apps/runner/src/memory-mcp.ts +85 -0
  97. package/apps/runner/src/memory-watcher.ts +215 -0
  98. package/apps/runner/src/slack-handler.ts +929 -0
  99. package/apps/runner/tsconfig.json +17 -0
  100. package/apps/runner/vitest.config.mts +17 -0
  101. package/apps/web/.eslintrc.json +3 -0
  102. package/apps/web/.next/app-build-manifest.json +323 -0
  103. package/apps/web/.next/app-path-routes-manifest.json +46 -0
  104. package/apps/web/.next/build-manifest.json +33 -0
  105. package/apps/web/.next/cache/.previewinfo +1 -0
  106. package/apps/web/.next/cache/.rscinfo +1 -0
  107. package/apps/web/.next/cache/webpack/client-production/0.pack +0 -0
  108. package/apps/web/.next/cache/webpack/client-production/1.pack +0 -0
  109. package/apps/web/.next/cache/webpack/client-production/2.pack +0 -0
  110. package/apps/web/.next/cache/webpack/client-production/3.pack +0 -0
  111. package/apps/web/.next/cache/webpack/client-production/4.pack +0 -0
  112. package/apps/web/.next/cache/webpack/client-production/index.pack +0 -0
  113. package/apps/web/.next/cache/webpack/client-production/index.pack.old +0 -0
  114. package/apps/web/.next/cache/webpack/edge-server-production/0.pack +0 -0
  115. package/apps/web/.next/cache/webpack/edge-server-production/1.pack +0 -0
  116. package/apps/web/.next/cache/webpack/edge-server-production/index.pack +0 -0
  117. package/apps/web/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  118. package/apps/web/.next/cache/webpack/server-production/0.pack +0 -0
  119. package/apps/web/.next/cache/webpack/server-production/1.pack +0 -0
  120. package/apps/web/.next/cache/webpack/server-production/2.pack +0 -0
  121. package/apps/web/.next/cache/webpack/server-production/index.pack +0 -0
  122. package/apps/web/.next/cache/webpack/server-production/index.pack.old +0 -0
  123. package/apps/web/.next/diagnostics/build-diagnostics.json +6 -0
  124. package/apps/web/.next/diagnostics/framework.json +1 -0
  125. package/apps/web/.next/package.json +1 -0
  126. package/apps/web/.next/react-loadable-manifest.json +1 -0
  127. package/apps/web/.next/server/app/_not-found/page.js +2 -0
  128. package/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -0
  129. package/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  130. package/apps/web/.next/server/app/agents/[slug]/page.js +4 -0
  131. package/apps/web/.next/server/app/agents/[slug]/page.js.nft.json +1 -0
  132. package/apps/web/.next/server/app/agents/[slug]/page_client-reference-manifest.js +1 -0
  133. package/apps/web/.next/server/app/agents/new/page.js +2 -0
  134. package/apps/web/.next/server/app/agents/new/page.js.nft.json +1 -0
  135. package/apps/web/.next/server/app/agents/new/page_client-reference-manifest.js +1 -0
  136. package/apps/web/.next/server/app/api/agents/[id]/access/route.js +1 -0
  137. package/apps/web/.next/server/app/api/agents/[id]/access/route.js.nft.json +1 -0
  138. package/apps/web/.next/server/app/api/agents/[id]/access/route_client-reference-manifest.js +1 -0
  139. package/apps/web/.next/server/app/api/agents/[id]/claude-md/route.js +6 -0
  140. package/apps/web/.next/server/app/api/agents/[id]/claude-md/route.js.nft.json +1 -0
  141. package/apps/web/.next/server/app/api/agents/[id]/claude-md/route_client-reference-manifest.js +1 -0
  142. package/apps/web/.next/server/app/api/agents/[id]/logs/route.js +3 -0
  143. package/apps/web/.next/server/app/api/agents/[id]/logs/route.js.nft.json +1 -0
  144. package/apps/web/.next/server/app/api/agents/[id]/logs/route_client-reference-manifest.js +1 -0
  145. package/apps/web/.next/server/app/api/agents/[id]/manifest/route.js +1 -0
  146. package/apps/web/.next/server/app/api/agents/[id]/manifest/route.js.nft.json +1 -0
  147. package/apps/web/.next/server/app/api/agents/[id]/manifest/route_client-reference-manifest.js +1 -0
  148. package/apps/web/.next/server/app/api/agents/[id]/mcps/route.js +1 -0
  149. package/apps/web/.next/server/app/api/agents/[id]/mcps/route.js.nft.json +1 -0
  150. package/apps/web/.next/server/app/api/agents/[id]/mcps/route_client-reference-manifest.js +1 -0
  151. package/apps/web/.next/server/app/api/agents/[id]/memories/[memId]/route.js +1 -0
  152. package/apps/web/.next/server/app/api/agents/[id]/memories/[memId]/route.js.nft.json +1 -0
  153. package/apps/web/.next/server/app/api/agents/[id]/memories/[memId]/route_client-reference-manifest.js +1 -0
  154. package/apps/web/.next/server/app/api/agents/[id]/memories/route.js +1 -0
  155. package/apps/web/.next/server/app/api/agents/[id]/memories/route.js.nft.json +1 -0
  156. package/apps/web/.next/server/app/api/agents/[id]/memories/route_client-reference-manifest.js +1 -0
  157. package/apps/web/.next/server/app/api/agents/[id]/permissions/route.js +1 -0
  158. package/apps/web/.next/server/app/api/agents/[id]/permissions/route.js.nft.json +1 -0
  159. package/apps/web/.next/server/app/api/agents/[id]/permissions/route_client-reference-manifest.js +1 -0
  160. package/apps/web/.next/server/app/api/agents/[id]/reload/route.js +1 -0
  161. package/apps/web/.next/server/app/api/agents/[id]/reload/route.js.nft.json +1 -0
  162. package/apps/web/.next/server/app/api/agents/[id]/reload/route_client-reference-manifest.js +1 -0
  163. package/apps/web/.next/server/app/api/agents/[id]/restrictions/route.js +1 -0
  164. package/apps/web/.next/server/app/api/agents/[id]/restrictions/route.js.nft.json +1 -0
  165. package/apps/web/.next/server/app/api/agents/[id]/restrictions/route_client-reference-manifest.js +1 -0
  166. package/apps/web/.next/server/app/api/agents/[id]/route.js +33 -0
  167. package/apps/web/.next/server/app/api/agents/[id]/route.js.nft.json +1 -0
  168. package/apps/web/.next/server/app/api/agents/[id]/route_client-reference-manifest.js +1 -0
  169. package/apps/web/.next/server/app/api/agents/[id]/skills/[skillId]/route.js +1 -0
  170. package/apps/web/.next/server/app/api/agents/[id]/skills/[skillId]/route.js.nft.json +1 -0
  171. package/apps/web/.next/server/app/api/agents/[id]/skills/[skillId]/route_client-reference-manifest.js +1 -0
  172. package/apps/web/.next/server/app/api/agents/[id]/skills/route.js +1 -0
  173. package/apps/web/.next/server/app/api/agents/[id]/skills/route.js.nft.json +1 -0
  174. package/apps/web/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -0
  175. package/apps/web/.next/server/app/api/agents/[id]/slack-info/route.js +1 -0
  176. package/apps/web/.next/server/app/api/agents/[id]/slack-info/route.js.nft.json +1 -0
  177. package/apps/web/.next/server/app/api/agents/[id]/slack-info/route_client-reference-manifest.js +1 -0
  178. package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/restore/route.js +1 -0
  179. package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/restore/route.js.nft.json +1 -0
  180. package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/restore/route_client-reference-manifest.js +1 -0
  181. package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/route.js +1 -0
  182. package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/route.js.nft.json +1 -0
  183. package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/route_client-reference-manifest.js +1 -0
  184. package/apps/web/.next/server/app/api/agents/[id]/snapshots/route.js +1 -0
  185. package/apps/web/.next/server/app/api/agents/[id]/snapshots/route.js.nft.json +1 -0
  186. package/apps/web/.next/server/app/api/agents/[id]/snapshots/route_client-reference-manifest.js +1 -0
  187. package/apps/web/.next/server/app/api/agents/[id]/start/route.js +1 -0
  188. package/apps/web/.next/server/app/api/agents/[id]/start/route.js.nft.json +1 -0
  189. package/apps/web/.next/server/app/api/agents/[id]/start/route_client-reference-manifest.js +1 -0
  190. package/apps/web/.next/server/app/api/agents/[id]/stop/route.js +1 -0
  191. package/apps/web/.next/server/app/api/agents/[id]/stop/route.js.nft.json +1 -0
  192. package/apps/web/.next/server/app/api/agents/[id]/stop/route_client-reference-manifest.js +1 -0
  193. package/apps/web/.next/server/app/api/agents/route.js +91 -0
  194. package/apps/web/.next/server/app/api/agents/route.js.nft.json +1 -0
  195. package/apps/web/.next/server/app/api/agents/route_client-reference-manifest.js +1 -0
  196. package/apps/web/.next/server/app/api/auth/login/route.js +1 -0
  197. package/apps/web/.next/server/app/api/auth/login/route.js.nft.json +1 -0
  198. package/apps/web/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -0
  199. package/apps/web/.next/server/app/api/auth/logout/route.js +1 -0
  200. package/apps/web/.next/server/app/api/auth/logout/route.js.nft.json +1 -0
  201. package/apps/web/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -0
  202. package/apps/web/.next/server/app/api/auth/me/route.js +1 -0
  203. package/apps/web/.next/server/app/api/auth/me/route.js.nft.json +1 -0
  204. package/apps/web/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -0
  205. package/apps/web/.next/server/app/api/auth/users/[id]/route.js +1 -0
  206. package/apps/web/.next/server/app/api/auth/users/[id]/route.js.nft.json +1 -0
  207. package/apps/web/.next/server/app/api/auth/users/[id]/route_client-reference-manifest.js +1 -0
  208. package/apps/web/.next/server/app/api/auth/users/route.js +1 -0
  209. package/apps/web/.next/server/app/api/auth/users/route.js.nft.json +1 -0
  210. package/apps/web/.next/server/app/api/auth/users/route_client-reference-manifest.js +1 -0
  211. package/apps/web/.next/server/app/api/env-vars/[key]/route.js +1 -0
  212. package/apps/web/.next/server/app/api/env-vars/[key]/route.js.nft.json +1 -0
  213. package/apps/web/.next/server/app/api/env-vars/[key]/route_client-reference-manifest.js +1 -0
  214. package/apps/web/.next/server/app/api/env-vars/route.js +1 -0
  215. package/apps/web/.next/server/app/api/env-vars/route.js.nft.json +1 -0
  216. package/apps/web/.next/server/app/api/env-vars/route_client-reference-manifest.js +1 -0
  217. package/apps/web/.next/server/app/api/jobs/[id]/route.js +1 -0
  218. package/apps/web/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -0
  219. package/apps/web/.next/server/app/api/jobs/[id]/route_client-reference-manifest.js +1 -0
  220. package/apps/web/.next/server/app/api/jobs/[id]/runs/route.js +1 -0
  221. package/apps/web/.next/server/app/api/jobs/[id]/runs/route.js.nft.json +1 -0
  222. package/apps/web/.next/server/app/api/jobs/[id]/runs/route_client-reference-manifest.js +1 -0
  223. package/apps/web/.next/server/app/api/jobs/route.js +1 -0
  224. package/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -0
  225. package/apps/web/.next/server/app/api/jobs/route_client-reference-manifest.js +1 -0
  226. package/apps/web/.next/server/app/api/mcps/[id]/route.js +1 -0
  227. package/apps/web/.next/server/app/api/mcps/[id]/route.js.nft.json +1 -0
  228. package/apps/web/.next/server/app/api/mcps/[id]/route_client-reference-manifest.js +1 -0
  229. package/apps/web/.next/server/app/api/mcps/[id]/test/route.js +1 -0
  230. package/apps/web/.next/server/app/api/mcps/[id]/test/route.js.nft.json +1 -0
  231. package/apps/web/.next/server/app/api/mcps/[id]/test/route_client-reference-manifest.js +1 -0
  232. package/apps/web/.next/server/app/api/mcps/route.js +1 -0
  233. package/apps/web/.next/server/app/api/mcps/route.js.nft.json +1 -0
  234. package/apps/web/.next/server/app/api/mcps/route_client-reference-manifest.js +1 -0
  235. package/apps/web/.next/server/app/api/settings/route.js +1 -0
  236. package/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -0
  237. package/apps/web/.next/server/app/api/settings/route_client-reference-manifest.js +1 -0
  238. package/apps/web/.next/server/app/icon.svg/route.js +1 -0
  239. package/apps/web/.next/server/app/icon.svg/route.js.nft.json +1 -0
  240. package/apps/web/.next/server/app/jobs/page.js +2 -0
  241. package/apps/web/.next/server/app/jobs/page.js.nft.json +1 -0
  242. package/apps/web/.next/server/app/jobs/page_client-reference-manifest.js +1 -0
  243. package/apps/web/.next/server/app/login/page.js +2 -0
  244. package/apps/web/.next/server/app/login/page.js.nft.json +1 -0
  245. package/apps/web/.next/server/app/login/page_client-reference-manifest.js +1 -0
  246. package/apps/web/.next/server/app/page.js +2 -0
  247. package/apps/web/.next/server/app/page.js.nft.json +1 -0
  248. package/apps/web/.next/server/app/page_client-reference-manifest.js +1 -0
  249. package/apps/web/.next/server/app/settings/env-vars/page.js +2 -0
  250. package/apps/web/.next/server/app/settings/env-vars/page.js.nft.json +1 -0
  251. package/apps/web/.next/server/app/settings/env-vars/page_client-reference-manifest.js +1 -0
  252. package/apps/web/.next/server/app/settings/mcps/page.js +2 -0
  253. package/apps/web/.next/server/app/settings/mcps/page.js.nft.json +1 -0
  254. package/apps/web/.next/server/app/settings/mcps/page_client-reference-manifest.js +1 -0
  255. package/apps/web/.next/server/app/settings/page.js +2 -0
  256. package/apps/web/.next/server/app/settings/page.js.nft.json +1 -0
  257. package/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -0
  258. package/apps/web/.next/server/app-paths-manifest.json +46 -0
  259. package/apps/web/.next/server/chunks/1157.js +9 -0
  260. package/apps/web/.next/server/chunks/2287.js +1 -0
  261. package/apps/web/.next/server/chunks/3444.js +1 -0
  262. package/apps/web/.next/server/chunks/383.js +6 -0
  263. package/apps/web/.next/server/chunks/4012.js +58 -0
  264. package/apps/web/.next/server/chunks/6791.js +1 -0
  265. package/apps/web/.next/server/chunks/7171.js +1 -0
  266. package/apps/web/.next/server/chunks/8819.js +22 -0
  267. package/apps/web/.next/server/edge-runtime-webpack.js +2 -0
  268. package/apps/web/.next/server/edge-runtime-webpack.js.map +1 -0
  269. package/apps/web/.next/server/interception-route-rewrite-manifest.js +1 -0
  270. package/apps/web/.next/server/middleware-build-manifest.js +1 -0
  271. package/apps/web/.next/server/middleware-manifest.json +32 -0
  272. package/apps/web/.next/server/middleware-react-loadable-manifest.js +1 -0
  273. package/apps/web/.next/server/next-font-manifest.js +1 -0
  274. package/apps/web/.next/server/next-font-manifest.json +1 -0
  275. package/apps/web/.next/server/pages/_app.js +1 -0
  276. package/apps/web/.next/server/pages/_app.js.nft.json +1 -0
  277. package/apps/web/.next/server/pages/_document.js +1 -0
  278. package/apps/web/.next/server/pages/_document.js.nft.json +1 -0
  279. package/apps/web/.next/server/pages/_error.js +19 -0
  280. package/apps/web/.next/server/pages/_error.js.nft.json +1 -0
  281. package/apps/web/.next/server/pages-manifest.json +5 -0
  282. package/apps/web/.next/server/server-reference-manifest.js +1 -0
  283. package/apps/web/.next/server/server-reference-manifest.json +1 -0
  284. package/apps/web/.next/server/src/middleware.js +14 -0
  285. package/apps/web/.next/server/src/middleware.js.map +1 -0
  286. package/apps/web/.next/server/webpack-runtime.js +1 -0
  287. package/apps/web/.next/static/chunks/18-90b700ea37b686a2.js +1 -0
  288. package/apps/web/.next/static/chunks/87c73c54-24122e7b92478d00.js +1 -0
  289. package/apps/web/.next/static/chunks/9664-af80478aa73ba424.js +1 -0
  290. package/apps/web/.next/static/chunks/app/_not-found/page-b9cee17ed89ca24a.js +1 -0
  291. package/apps/web/.next/static/chunks/app/agents/[slug]/page-18369fc3fe1a9a7b.js +1 -0
  292. package/apps/web/.next/static/chunks/app/agents/new/page-bf11cf8901c7e2cd.js +1 -0
  293. package/apps/web/.next/static/chunks/app/api/agents/[id]/access/route-07f0f73ac9839899.js +1 -0
  294. package/apps/web/.next/static/chunks/app/api/agents/[id]/claude-md/route-07f0f73ac9839899.js +1 -0
  295. package/apps/web/.next/static/chunks/app/api/agents/[id]/logs/route-07f0f73ac9839899.js +1 -0
  296. package/apps/web/.next/static/chunks/app/api/agents/[id]/manifest/route-07f0f73ac9839899.js +1 -0
  297. package/apps/web/.next/static/chunks/app/api/agents/[id]/mcps/route-07f0f73ac9839899.js +1 -0
  298. package/apps/web/.next/static/chunks/app/api/agents/[id]/memories/[memId]/route-07f0f73ac9839899.js +1 -0
  299. package/apps/web/.next/static/chunks/app/api/agents/[id]/memories/route-07f0f73ac9839899.js +1 -0
  300. package/apps/web/.next/static/chunks/app/api/agents/[id]/permissions/route-07f0f73ac9839899.js +1 -0
  301. package/apps/web/.next/static/chunks/app/api/agents/[id]/reload/route-07f0f73ac9839899.js +1 -0
  302. package/apps/web/.next/static/chunks/app/api/agents/[id]/restrictions/route-07f0f73ac9839899.js +1 -0
  303. package/apps/web/.next/static/chunks/app/api/agents/[id]/route-07f0f73ac9839899.js +1 -0
  304. package/apps/web/.next/static/chunks/app/api/agents/[id]/skills/[skillId]/route-07f0f73ac9839899.js +1 -0
  305. package/apps/web/.next/static/chunks/app/api/agents/[id]/skills/route-07f0f73ac9839899.js +1 -0
  306. package/apps/web/.next/static/chunks/app/api/agents/[id]/slack-info/route-07f0f73ac9839899.js +1 -0
  307. package/apps/web/.next/static/chunks/app/api/agents/[id]/snapshots/[sid]/restore/route-07f0f73ac9839899.js +1 -0
  308. package/apps/web/.next/static/chunks/app/api/agents/[id]/snapshots/[sid]/route-07f0f73ac9839899.js +1 -0
  309. package/apps/web/.next/static/chunks/app/api/agents/[id]/snapshots/route-07f0f73ac9839899.js +1 -0
  310. package/apps/web/.next/static/chunks/app/api/agents/[id]/start/route-07f0f73ac9839899.js +1 -0
  311. package/apps/web/.next/static/chunks/app/api/agents/[id]/stop/route-07f0f73ac9839899.js +1 -0
  312. package/apps/web/.next/static/chunks/app/api/agents/route-07f0f73ac9839899.js +1 -0
  313. package/apps/web/.next/static/chunks/app/api/auth/login/route-07f0f73ac9839899.js +1 -0
  314. package/apps/web/.next/static/chunks/app/api/auth/logout/route-07f0f73ac9839899.js +1 -0
  315. package/apps/web/.next/static/chunks/app/api/auth/me/route-07f0f73ac9839899.js +1 -0
  316. package/apps/web/.next/static/chunks/app/api/auth/users/[id]/route-07f0f73ac9839899.js +1 -0
  317. package/apps/web/.next/static/chunks/app/api/auth/users/route-07f0f73ac9839899.js +1 -0
  318. package/apps/web/.next/static/chunks/app/api/env-vars/[key]/route-07f0f73ac9839899.js +1 -0
  319. package/apps/web/.next/static/chunks/app/api/env-vars/route-07f0f73ac9839899.js +1 -0
  320. package/apps/web/.next/static/chunks/app/api/jobs/[id]/route-07f0f73ac9839899.js +1 -0
  321. package/apps/web/.next/static/chunks/app/api/jobs/[id]/runs/route-07f0f73ac9839899.js +1 -0
  322. package/apps/web/.next/static/chunks/app/api/jobs/route-07f0f73ac9839899.js +1 -0
  323. package/apps/web/.next/static/chunks/app/api/mcps/[id]/route-07f0f73ac9839899.js +1 -0
  324. package/apps/web/.next/static/chunks/app/api/mcps/[id]/test/route-07f0f73ac9839899.js +1 -0
  325. package/apps/web/.next/static/chunks/app/api/mcps/route-07f0f73ac9839899.js +1 -0
  326. package/apps/web/.next/static/chunks/app/api/settings/route-07f0f73ac9839899.js +1 -0
  327. package/apps/web/.next/static/chunks/app/jobs/page-f5aa89a47c50efd8.js +1 -0
  328. package/apps/web/.next/static/chunks/app/layout-2079f4964aa7314e.js +1 -0
  329. package/apps/web/.next/static/chunks/app/login/layout-07f0f73ac9839899.js +1 -0
  330. package/apps/web/.next/static/chunks/app/login/page-aa259283dc38e8f9.js +1 -0
  331. package/apps/web/.next/static/chunks/app/page-e83437b608104dff.js +1 -0
  332. package/apps/web/.next/static/chunks/app/settings/env-vars/page-06479dbdfb78b76b.js +1 -0
  333. package/apps/web/.next/static/chunks/app/settings/mcps/page-75650686ed6490c7.js +1 -0
  334. package/apps/web/.next/static/chunks/app/settings/page-e1e62fc41ff6cddd.js +1 -0
  335. package/apps/web/.next/static/chunks/framework-811407f832a33072.js +1 -0
  336. package/apps/web/.next/static/chunks/main-3f1cddbdd67b1546.js +1 -0
  337. package/apps/web/.next/static/chunks/main-app-cebd8a6a5ccbf72d.js +1 -0
  338. package/apps/web/.next/static/chunks/pages/_app-50fa07b56b2d29ac.js +1 -0
  339. package/apps/web/.next/static/chunks/pages/_error-fed8688bdd23f211.js +1 -0
  340. package/apps/web/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  341. package/apps/web/.next/static/chunks/webpack-6c05566dba553c97.js +1 -0
  342. package/apps/web/.next/static/css/15371687405525e2.css +5 -0
  343. package/apps/web/.next/static/ikfNbLhuw7jntn35bz0lk/_buildManifest.js +1 -0
  344. package/apps/web/.next/static/ikfNbLhuw7jntn35bz0lk/_ssgManifest.js +1 -0
  345. package/apps/web/.next/trace +5 -0
  346. package/apps/web/.next/types/app/agents/[slug]/page.ts +84 -0
  347. package/apps/web/.next/types/app/agents/new/page.ts +84 -0
  348. package/apps/web/.next/types/app/api/agents/[id]/access/route.ts +347 -0
  349. package/apps/web/.next/types/app/api/agents/[id]/claude-md/route.ts +347 -0
  350. package/apps/web/.next/types/app/api/agents/[id]/logs/route.ts +347 -0
  351. package/apps/web/.next/types/app/api/agents/[id]/manifest/route.ts +347 -0
  352. package/apps/web/.next/types/app/api/agents/[id]/mcps/route.ts +347 -0
  353. package/apps/web/.next/types/app/api/agents/[id]/memories/[memId]/route.ts +347 -0
  354. package/apps/web/.next/types/app/api/agents/[id]/memories/route.ts +347 -0
  355. package/apps/web/.next/types/app/api/agents/[id]/permissions/route.ts +347 -0
  356. package/apps/web/.next/types/app/api/agents/[id]/reload/route.ts +347 -0
  357. package/apps/web/.next/types/app/api/agents/[id]/restrictions/route.ts +347 -0
  358. package/apps/web/.next/types/app/api/agents/[id]/route.ts +347 -0
  359. package/apps/web/.next/types/app/api/agents/[id]/skills/[skillId]/route.ts +347 -0
  360. package/apps/web/.next/types/app/api/agents/[id]/skills/route.ts +347 -0
  361. package/apps/web/.next/types/app/api/agents/[id]/slack-info/route.ts +347 -0
  362. package/apps/web/.next/types/app/api/agents/[id]/snapshots/[sid]/restore/route.ts +347 -0
  363. package/apps/web/.next/types/app/api/agents/[id]/snapshots/[sid]/route.ts +347 -0
  364. package/apps/web/.next/types/app/api/agents/[id]/snapshots/route.ts +347 -0
  365. package/apps/web/.next/types/app/api/agents/[id]/start/route.ts +347 -0
  366. package/apps/web/.next/types/app/api/agents/[id]/stop/route.ts +347 -0
  367. package/apps/web/.next/types/app/api/agents/route.ts +347 -0
  368. package/apps/web/.next/types/app/api/auth/login/route.ts +347 -0
  369. package/apps/web/.next/types/app/api/auth/logout/route.ts +347 -0
  370. package/apps/web/.next/types/app/api/auth/me/route.ts +347 -0
  371. package/apps/web/.next/types/app/api/auth/users/[id]/route.ts +347 -0
  372. package/apps/web/.next/types/app/api/auth/users/route.ts +347 -0
  373. package/apps/web/.next/types/app/api/env-vars/[key]/route.ts +347 -0
  374. package/apps/web/.next/types/app/api/env-vars/route.ts +347 -0
  375. package/apps/web/.next/types/app/api/jobs/[id]/route.ts +347 -0
  376. package/apps/web/.next/types/app/api/jobs/[id]/runs/route.ts +347 -0
  377. package/apps/web/.next/types/app/api/jobs/route.ts +347 -0
  378. package/apps/web/.next/types/app/api/mcps/[id]/route.ts +347 -0
  379. package/apps/web/.next/types/app/api/mcps/[id]/test/route.ts +347 -0
  380. package/apps/web/.next/types/app/api/mcps/route.ts +347 -0
  381. package/apps/web/.next/types/app/api/settings/route.ts +347 -0
  382. package/apps/web/.next/types/app/jobs/page.ts +84 -0
  383. package/apps/web/.next/types/app/login/layout.ts +84 -0
  384. package/apps/web/.next/types/app/login/page.ts +84 -0
  385. package/apps/web/.next/types/app/page.ts +84 -0
  386. package/apps/web/.next/types/app/settings/env-vars/page.ts +84 -0
  387. package/apps/web/.next/types/app/settings/mcps/page.ts +84 -0
  388. package/apps/web/.next/types/app/settings/page.ts +84 -0
  389. package/apps/web/.next/types/cache-life.d.ts +141 -0
  390. package/apps/web/.next/types/package.json +1 -0
  391. package/apps/web/.next/types/routes.d.ts +114 -0
  392. package/apps/web/.next/types/validator.ts +448 -0
  393. package/apps/web/Dockerfile +37 -0
  394. package/apps/web/next-env.d.ts +6 -0
  395. package/apps/web/next.config.js +6 -0
  396. package/apps/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  397. package/apps/web/package.json +48 -0
  398. package/apps/web/postcss.config.js +3 -0
  399. package/apps/web/public/logo.svg +17 -0
  400. package/apps/web/src/app/agents/[slug]/page.tsx +2235 -0
  401. package/apps/web/src/app/agents/new/page.tsx +1161 -0
  402. package/apps/web/src/app/api/agents/[id]/access/route.ts +76 -0
  403. package/apps/web/src/app/api/agents/[id]/claude-md/route.ts +111 -0
  404. package/apps/web/src/app/api/agents/[id]/logs/route.ts +84 -0
  405. package/apps/web/src/app/api/agents/[id]/manifest/route.ts +32 -0
  406. package/apps/web/src/app/api/agents/[id]/mcps/route.ts +73 -0
  407. package/apps/web/src/app/api/agents/[id]/memories/[memId]/route.ts +31 -0
  408. package/apps/web/src/app/api/agents/[id]/memories/route.ts +56 -0
  409. package/apps/web/src/app/api/agents/[id]/permissions/route.ts +74 -0
  410. package/apps/web/src/app/api/agents/[id]/reload/route.ts +33 -0
  411. package/apps/web/src/app/api/agents/[id]/restrictions/route.ts +85 -0
  412. package/apps/web/src/app/api/agents/[id]/route.ts +81 -0
  413. package/apps/web/src/app/api/agents/[id]/skills/[skillId]/route.ts +52 -0
  414. package/apps/web/src/app/api/agents/[id]/skills/route.ts +80 -0
  415. package/apps/web/src/app/api/agents/[id]/slack-info/route.ts +38 -0
  416. package/apps/web/src/app/api/agents/[id]/snapshots/[sid]/restore/route.ts +61 -0
  417. package/apps/web/src/app/api/agents/[id]/snapshots/[sid]/route.ts +53 -0
  418. package/apps/web/src/app/api/agents/[id]/snapshots/route.ts +84 -0
  419. package/apps/web/src/app/api/agents/[id]/start/route.ts +35 -0
  420. package/apps/web/src/app/api/agents/[id]/stop/route.ts +35 -0
  421. package/apps/web/src/app/api/agents/route.ts +99 -0
  422. package/apps/web/src/app/api/auth/login/route.ts +39 -0
  423. package/apps/web/src/app/api/auth/logout/route.ts +21 -0
  424. package/apps/web/src/app/api/auth/me/route.ts +24 -0
  425. package/apps/web/src/app/api/auth/users/[id]/route.ts +48 -0
  426. package/apps/web/src/app/api/auth/users/route.ts +63 -0
  427. package/apps/web/src/app/api/env-vars/[key]/route.ts +66 -0
  428. package/apps/web/src/app/api/env-vars/route.ts +59 -0
  429. package/apps/web/src/app/api/jobs/[id]/route.ts +51 -0
  430. package/apps/web/src/app/api/jobs/[id]/runs/route.ts +24 -0
  431. package/apps/web/src/app/api/jobs/route.ts +42 -0
  432. package/apps/web/src/app/api/mcps/[id]/route.ts +60 -0
  433. package/apps/web/src/app/api/mcps/[id]/test/route.ts +195 -0
  434. package/apps/web/src/app/api/mcps/route.ts +72 -0
  435. package/apps/web/src/app/api/settings/route.ts +42 -0
  436. package/apps/web/src/app/globals.css +124 -0
  437. package/apps/web/src/app/icon.svg +17 -0
  438. package/apps/web/src/app/jobs/page.tsx +543 -0
  439. package/apps/web/src/app/layout-shell.tsx +89 -0
  440. package/apps/web/src/app/layout.tsx +18 -0
  441. package/apps/web/src/app/login/layout.tsx +9 -0
  442. package/apps/web/src/app/login/page.tsx +150 -0
  443. package/apps/web/src/app/page.tsx +573 -0
  444. package/apps/web/src/app/settings/env-vars/page.tsx +216 -0
  445. package/apps/web/src/app/settings/mcps/page.tsx +763 -0
  446. package/apps/web/src/app/settings/page.tsx +528 -0
  447. package/apps/web/src/app/sidebar.tsx +345 -0
  448. package/apps/web/src/lib/__tests__/api-guard.test.ts +189 -0
  449. package/apps/web/src/lib/__tests__/auth.test.ts +262 -0
  450. package/apps/web/src/lib/__tests__/boss-registry.test.ts +323 -0
  451. package/apps/web/src/lib/__tests__/compile.test.ts +161 -0
  452. package/apps/web/src/lib/__tests__/db-agent-hierarchy.test.ts +136 -0
  453. package/apps/web/src/lib/__tests__/db-env-vars.test.ts +216 -0
  454. package/apps/web/src/lib/__tests__/db-restrictions.test.ts +117 -0
  455. package/apps/web/src/lib/__tests__/db.integration.test.ts +271 -0
  456. package/apps/web/src/lib/__tests__/diff.test.ts +102 -0
  457. package/apps/web/src/lib/__tests__/mcp-mask.test.ts +274 -0
  458. package/apps/web/src/lib/__tests__/skill-templates.test.ts +237 -0
  459. package/apps/web/src/lib/__tests__/slack-manifest.test.ts +105 -0
  460. package/apps/web/src/lib/api-guard.ts +68 -0
  461. package/apps/web/src/lib/auth-context.tsx +71 -0
  462. package/apps/web/src/lib/auth.ts +128 -0
  463. package/apps/web/src/lib/boss-registry.ts +90 -0
  464. package/apps/web/src/lib/compile.ts +51 -0
  465. package/apps/web/src/lib/db.ts +1196 -0
  466. package/apps/web/src/lib/diff.ts +43 -0
  467. package/apps/web/src/lib/mcp-mask.ts +91 -0
  468. package/apps/web/src/lib/portal.tsx +23 -0
  469. package/apps/web/src/lib/skill-templates.ts +148 -0
  470. package/apps/web/src/lib/slack-manifest.ts +85 -0
  471. package/apps/web/src/middleware.ts +68 -0
  472. package/apps/web/tailwind.config.js +6 -0
  473. package/apps/web/tsconfig.json +23 -0
  474. package/apps/web/vitest.config.mts +21 -0
  475. package/cli/.claude/settings.local.json +6 -0
  476. package/cli/README.md +281 -0
  477. package/cli/node_modules/.package-lock.json +427 -0
  478. package/cli/node_modules/commander/LICENSE +22 -0
  479. package/cli/node_modules/commander/Readme.md +1157 -0
  480. package/cli/node_modules/commander/esm.mjs +16 -0
  481. package/cli/node_modules/commander/index.js +24 -0
  482. package/cli/node_modules/commander/lib/argument.js +149 -0
  483. package/cli/node_modules/commander/lib/command.js +2509 -0
  484. package/cli/node_modules/commander/lib/error.js +39 -0
  485. package/cli/node_modules/commander/lib/help.js +520 -0
  486. package/cli/node_modules/commander/lib/option.js +330 -0
  487. package/cli/node_modules/commander/lib/suggestSimilar.js +101 -0
  488. package/cli/node_modules/commander/package-support.json +16 -0
  489. package/cli/node_modules/commander/package.json +84 -0
  490. package/cli/node_modules/commander/typings/esm.d.mts +3 -0
  491. package/cli/node_modules/commander/typings/index.d.ts +969 -0
  492. package/cli/package-lock.json +449 -0
  493. package/cli/package.json +44 -0
  494. package/cli/src/commands/init.ts +514 -0
  495. package/cli/src/commands/manage.ts +115 -0
  496. package/cli/src/index.ts +63 -0
  497. package/cli/tsconfig.json +14 -0
  498. package/docker-compose.yml +122 -0
  499. package/docs/agents/boss-agents.mdx +108 -0
  500. package/docs/agents/creating-agents.mdx +132 -0
  501. package/docs/agents/memory.mdx +113 -0
  502. package/docs/agents/tools.mdx +103 -0
  503. package/docs/configuration/env-vars.mdx +166 -0
  504. package/docs/configuration/mcp-servers.mdx +203 -0
  505. package/docs/configuration/slack-app.mdx +175 -0
  506. package/docs/docs.json +79 -0
  507. package/docs/favicon.svg +17 -0
  508. package/docs/features/history.mdx +60 -0
  509. package/docs/features/import-export.mdx +77 -0
  510. package/docs/features/logs.mdx +131 -0
  511. package/docs/features/multi-workspace.mdx +90 -0
  512. package/docs/features/scheduled-jobs.mdx +231 -0
  513. package/docs/features/users.mdx +92 -0
  514. package/docs/introduction.mdx +160 -0
  515. package/docs/logo/dark.svg +17 -0
  516. package/docs/logo/light.svg +17 -0
  517. package/docs/logo/wide-dark.svg +12 -0
  518. package/docs/logo/wide-light.svg +12 -0
  519. package/docs/quickstart.mdx +270 -0
  520. package/docs/self-hosting/docker.mdx +151 -0
  521. package/docs/self-hosting/production.mdx +176 -0
  522. package/package.json +20 -36
  523. package/packages/shared/dist/index.d.ts +8 -0
  524. package/packages/shared/dist/index.d.ts.map +1 -0
  525. package/packages/shared/dist/index.js +24 -0
  526. package/packages/shared/dist/index.js.map +1 -0
  527. package/packages/shared/dist/types.d.ts +584 -0
  528. package/packages/shared/dist/types.d.ts.map +1 -0
  529. package/packages/shared/dist/types.js +39 -0
  530. package/packages/shared/dist/types.js.map +1 -0
  531. package/packages/shared/package.json +15 -0
  532. package/packages/shared/src/db/schema.sql +354 -0
  533. package/packages/shared/src/index.ts +8 -0
  534. package/packages/shared/src/types.ts +683 -0
  535. package/packages/shared/tsconfig.json +17 -0
  536. package/scripts/dev.sh +45 -0
  537. /package/{dist → cli/dist}/commands/init.d.ts +0 -0
  538. /package/{dist → cli/dist}/commands/init.js +0 -0
  539. /package/{dist → cli/dist}/commands/manage.d.ts +0 -0
  540. /package/{dist → cli/dist}/commands/manage.js +0 -0
  541. /package/{dist → cli/dist}/index.d.ts +0 -0
  542. /package/{dist → cli/dist}/index.js +0 -0
@@ -0,0 +1,2 @@
1
+ (()=>{var a={};a.id=8247,a.ids=[8247],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17766:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(78157),e=c(31768),f=c(98314);let g=(0,c(81744).A)("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);function h(){let{canEdit:a}=(0,f.A)(),[b,c]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)({key:"",value:"",description:""}),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(""),t=()=>{i(!0),fetch("/api/env-vars").then(a=>a.json()).then(c).catch(()=>{}).finally(()=>i(!1))},u=()=>{m({key:"",value:"",description:""}),o(null),k(!1),s("")},v=async()=>{if(!l.key)return void s("Key is required");if(!n&&!l.value)return void s("Value is required");q(!0),s("");try{let a;if(n){let b={};l.value&&(b.value=l.value),void 0!==l.description&&(b.description=l.description),a=await fetch(`/api/env-vars/${n}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)})}else a=await fetch("/api/env-vars",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!a.ok){let b=await a.json();throw Error(b.error??"Failed")}u(),t()}catch(a){s(a.message)}finally{q(!1)}},w=async a=>{confirm(`Delete "${a}"? MCPs referencing it will stop receiving this value.`)&&(await fetch(`/api/env-vars/${a}`,{method:"DELETE"}),t())},x={width:"100%",background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:7,padding:"8px 11px",color:"var(--text)",fontSize:13,fontFamily:"var(--font-sans)",outline:"none",boxSizing:"border-box",transition:"border-color 0.15s"};return(0,d.jsxs)("div",{style:{padding:"32px 36px",maxWidth:860},className:"fade-up",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",justifyContent:"space-between",marginBottom:28},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--muted)",marginBottom:4},children:"Settings"}),(0,d.jsx)("h1",{style:{margin:0,fontSize:22,fontWeight:600,letterSpacing:"-0.02em",color:"var(--text)"},children:"Env Vars"}),(0,d.jsx)("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--muted)"},children:"Named secrets for MCP servers — values are write-only, never shown after saving"})]}),a&&!j&&(0,d.jsxs)("button",{onClick:()=>k(!0),style:{display:"inline-flex",alignItems:"center",gap:6,background:"var(--accent)",color:"#fff",padding:"8px 16px",borderRadius:8,border:"none",fontSize:13,fontWeight:500,cursor:"pointer",fontFamily:"var(--font-sans)"},onMouseEnter:a=>a.currentTarget.style.opacity="0.85",onMouseLeave:a=>a.currentTarget.style.opacity="1",children:[(0,d.jsx)("span",{style:{fontSize:16,lineHeight:1,marginTop:-1},children:"+"}),"Add Env Var"]})]}),j&&(0,d.jsxs)("div",{style:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:14,padding:28,marginBottom:20},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:18},children:[(0,d.jsx)("h2",{style:{margin:0,fontSize:16,fontWeight:600,color:"var(--text)"},children:n?`Edit ${n}`:"New Env Var"}),(0,d.jsx)("button",{onClick:u,style:{background:"none",border:"none",color:"var(--muted)",fontSize:18,cursor:"pointer"},children:"\xd7"})]}),r&&(0,d.jsx)("div",{style:{fontSize:12,color:"#dc2626",background:"rgba(220,38,38,0.06)",padding:"8px 12px",borderRadius:6,marginBottom:14},children:r}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:"Key *"}),(0,d.jsx)("input",{value:l.key,onChange:a=>m(b=>({...b,key:a.target.value.toUpperCase().replace(/[^A-Z0-9_]/g,"_")})),placeholder:"REDSHIFT_DATABASE_URL",readOnly:!!n,style:{...x,fontFamily:"var(--font-mono)",opacity:n?.6:1},onFocus:a=>a.currentTarget.style.borderColor="var(--accent)",onBlur:a=>a.currentTarget.style.borderColor="var(--border)"}),(0,d.jsx)("p",{style:{margin:"3px 0 0",fontSize:11,color:"var(--subtle)"},children:"Uppercase letters, digits, underscores"})]}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:["Value ",n?(0,d.jsx)("span",{style:{fontWeight:400},children:"(leave blank to keep existing)"}):"*"]}),(0,d.jsx)("input",{type:"password",value:l.value,onChange:a=>m(b=>({...b,value:a.target.value})),placeholder:n?"••••••••":"Enter secret value",style:{...x,fontFamily:"var(--font-mono)"},onFocus:a=>a.currentTarget.style.borderColor="var(--accent)",onBlur:a=>a.currentTarget.style.borderColor="var(--border)"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:"Description"}),(0,d.jsx)("input",{value:l.description,onChange:a=>m(b=>({...b,description:a.target.value})),placeholder:"What is this secret used for?",style:x,onFocus:a=>a.currentTarget.style.borderColor="var(--accent)",onBlur:a=>a.currentTarget.style.borderColor="var(--border)"})]})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:10,marginTop:20},children:[(0,d.jsx)("button",{onClick:v,disabled:p,style:{background:p?"var(--border)":"var(--accent)",color:"#fff",border:"none",borderRadius:7,padding:"9px 22px",fontSize:13,fontWeight:500,cursor:p?"not-allowed":"pointer",fontFamily:"var(--font-sans)"},children:p?"Saving…":n?"Update":"Save"}),(0,d.jsx)("button",{onClick:u,style:{background:"transparent",color:"var(--muted)",border:"1px solid var(--border)",borderRadius:7,padding:"9px 22px",fontSize:13,cursor:"pointer",fontFamily:"var(--font-sans)"},children:"Cancel"})]})]}),h?(0,d.jsx)("div",{style:{color:"var(--muted)",fontSize:13},children:"Loading…"}):0!==b.length||j?(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:12,overflow:"hidden"},children:b.map((c,e)=>(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"13px 16px",borderBottom:e<b.length-1?"1px solid var(--border)":"none",transition:"background 0.12s"},onMouseEnter:a=>a.currentTarget.style.background="rgba(255,255,255,0.02)",onMouseLeave:a=>a.currentTarget.style.background="transparent",children:[(0,d.jsx)("code",{style:{fontSize:12.5,fontFamily:"var(--font-mono)",fontWeight:600,color:"var(--text)",flexShrink:0},children:c.key}),(0,d.jsx)("span",{style:{flex:1,fontSize:12,color:"var(--muted)",fontStyle:c.description?"normal":"italic"},children:c.description??"No description"}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--subtle)",flexShrink:0},children:new Date(c.updatedAt).toLocaleDateString()}),a&&(0,d.jsx)("button",{onClick:()=>{o(c.key),m({key:c.key,value:"",description:c.description??""}),k(!0)},style:{background:"none",border:"none",color:"var(--accent)",fontSize:12,cursor:"pointer",fontFamily:"var(--font-sans)",padding:"3px 8px",borderRadius:5},children:"Edit"}),a&&(0,d.jsx)("button",{onClick:()=>w(c.key),style:{background:"none",border:"none",color:"#ef4444",fontSize:12,cursor:"pointer",fontFamily:"var(--font-sans)",padding:"3px 8px",borderRadius:5},children:"Delete"})]},c.key))}):(0,d.jsxs)("div",{style:{border:"1px dashed var(--border)",borderRadius:12,padding:"48px",textAlign:"center",color:"var(--subtle)"},children:[(0,d.jsx)("div",{style:{marginBottom:10,color:"var(--subtle)"},children:(0,d.jsx)(g,{size:28})}),(0,d.jsx)("p",{style:{margin:"0 0 4px",fontSize:15,fontWeight:500,color:"var(--muted)"},children:"No env vars yet"}),(0,d.jsx)("p",{style:{margin:"0 0 16px",fontSize:13},children:"Add secrets here and reference them in MCP configs instead of pasting raw values."}),a&&(0,d.jsx)("button",{onClick:()=>k(!0),style:{background:"var(--accent)",color:"#fff",border:"none",borderRadius:8,padding:"8px 20px",fontSize:13,fontWeight:500,cursor:"pointer",fontFamily:"var(--font-sans)"},children:"Add First Env Var"})]})]})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66303:(a,b,c)=>{Promise.resolve().then(c.bind(c,17766))},69124:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(73653),e=c(97714),f=c(85250),g=c(37587),h=c(22369),i=c(1889),j=c(96232),k=c(22841),l=c(46537),m=c(46027),n=c(78559),o=c(75928),p=c(19374),q=c(65971),r=c(261),s=c(79898),t=c(32967),u=c(26713),v=c(40139),w=c(14248),x=c(59580),y=c(57749),z=c(53123),A=c(89745),B=c(86439),C=c(58671),D=c.n(C),E=c(18283),F=c(39818),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["settings",{children:["env-vars",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,90652)),"/home/admin/aman/slackhive/apps/web/src/app/settings/env-vars/page.tsx"]}]},{}]},{metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,91946))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,47570)),"/home/admin/aman/slackhive/apps/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,58671,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,17983,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,15034,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,54693,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,91946))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]}.children,I=["/home/admin/aman/slackhive/apps/web/src/app/settings/env-vars/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/env-vars/page",pathname:"/settings/env-vars",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/settings/env-vars/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},81744:(a,b,c)=>{"use strict";c.d(b,{A:()=>h});var d=c(31768);let e=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var f={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let g=(0,d.forwardRef)(({color:a="currentColor",size:b=24,strokeWidth:c=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,d.createElement)("svg",{ref:l,...f,width:b,height:b,stroke:a,strokeWidth:g?24*Number(c)/Number(b):c,className:e("lucide",h),...k},[...j.map(([a,b])=>(0,d.createElement)(a,b)),...Array.isArray(i)?i:[i]])),h=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...f},h)=>(0,d.createElement)(g,{ref:h,iconNode:b,className:e(`lucide-${a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,c),...f}));return c.displayName=`${a}`,c}},84455:(a,b,c)=>{Promise.resolve().then(c.bind(c,90652))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90652:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/admin/aman/slackhive/apps/web/src/app/settings/env-vars/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/admin/aman/slackhive/apps/web/src/app/settings/env-vars/page.tsx","default")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[8819,1157,7171],()=>b(b.s=69124));module.exports=c})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../webpack-runtime.js","../../../chunks/8819.js","../../../chunks/1157.js","../../../chunks/7171.js","page_client-reference-manifest.js"]}
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/settings/env-vars/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"25":{"*":{"id":"42747","name":"*","chunks":[],"async":false}},"540":{"*":{"id":"56186","name":"*","chunks":[],"async":false}},"1012":{"*":{"id":"64596","name":"*","chunks":[],"async":false}},"2339":{"*":{"id":"54351","name":"*","chunks":[],"async":false}},"2734":{"*":{"id":"17766","name":"*","chunks":[],"async":false}},"3602":{"*":{"id":"9449","name":"*","chunks":[],"async":false}},"4029":{"*":{"id":"59670","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"48365","name":"*","chunks":[],"async":false}},"5104":{"*":{"id":"56676","name":"*","chunks":[],"async":false}},"5183":{"*":{"id":"71107","name":"*","chunks":[],"async":false}},"5293":{"*":{"id":"67805","name":"*","chunks":[],"async":false}},"5341":{"*":{"id":"27561","name":"*","chunks":[],"async":false}},"5535":{"*":{"id":"67337","name":"*","chunks":[],"async":false}},"6505":{"*":{"id":"97225","name":"*","chunks":[],"async":false}},"7158":{"*":{"id":"47569","name":"*","chunks":[],"async":false}},"9084":{"*":{"id":"93704","name":"*","chunks":[],"async":false}},"9187":{"*":{"id":"25898","name":"*","chunks":[],"async":false}},"9827":{"*":{"id":"60904","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/admin/aman/slackhive/node_modules/next/dist/client/components/builtin/global-error.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/client-page.js":{"id":1012,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/client-page.js":{"id":1012,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/client-segment.js":{"id":540,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/client-segment.js":{"id":540,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":5293,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":5293,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/layout-router.js":{"id":5341,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/layout-router.js":{"id":5341,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":7158,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":7158,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/render-from-template-context.js":{"id":25,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":25,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/lib/framework/boundary-components.js":{"id":5104,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":5104,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6505,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6505,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/globals.css":{"id":8761,"name":"*","chunks":["9664","static/chunks/9664-af80478aa73ba424.js","7177","static/chunks/app/layout-2079f4964aa7314e.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/layout-shell.tsx":{"id":3602,"name":"*","chunks":["9664","static/chunks/9664-af80478aa73ba424.js","7177","static/chunks/app/layout-2079f4964aa7314e.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/agents/[slug]/page.tsx":{"id":4029,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/agents/new/page.tsx":{"id":9084,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/jobs/page.tsx":{"id":9827,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/page.tsx":{"id":2339,"name":"*","chunks":["9664","static/chunks/9664-af80478aa73ba424.js","8974","static/chunks/app/page-e83437b608104dff.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/settings/env-vars/page.tsx":{"id":2734,"name":"*","chunks":["8247","static/chunks/app/settings/env-vars/page-06479dbdfb78b76b.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/settings/mcps/page.tsx":{"id":9187,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/settings/page.tsx":{"id":5183,"name":"*","chunks":["4662","static/chunks/app/settings/page-e1e62fc41ff6cddd.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/login/page.tsx":{"id":5535,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/admin/aman/slackhive/apps/web/src/":[],"/home/admin/aman/slackhive/apps/web/src/app/layout":[{"inlined":false,"path":"static/css/15371687405525e2.css"}],"/home/admin/aman/slackhive/apps/web/src/app/page":[],"/home/admin/aman/slackhive/apps/web/src/app/settings/page":[],"/home/admin/aman/slackhive/apps/web/src/app/settings/env-vars/page":[]},"rscModuleMapping":{"25":{"*":{"id":"72041","name":"*","chunks":[],"async":false}},"540":{"*":{"id":"88248","name":"*","chunks":[],"async":false}},"1012":{"*":{"id":"56542","name":"*","chunks":[],"async":false}},"2339":{"*":{"id":"17129","name":"*","chunks":[],"async":false}},"2734":{"*":{"id":"90652","name":"*","chunks":[],"async":false}},"3602":{"*":{"id":"79955","name":"*","chunks":[],"async":false}},"4029":{"*":{"id":"94256","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"58671","name":"*","chunks":[],"async":false}},"5104":{"*":{"id":"95094","name":"*","chunks":[],"async":false}},"5183":{"*":{"id":"98273","name":"*","chunks":[],"async":false}},"5293":{"*":{"id":"49743","name":"*","chunks":[],"async":false}},"5341":{"*":{"id":"96231","name":"*","chunks":[],"async":false}},"5535":{"*":{"id":"10863","name":"*","chunks":[],"async":false}},"6505":{"*":{"id":"67487","name":"*","chunks":[],"async":false}},"7158":{"*":{"id":"10959","name":"*","chunks":[],"async":false}},"8761":{"*":{"id":"14276","name":"*","chunks":[],"async":false}},"9084":{"*":{"id":"37283","name":"*","chunks":[],"async":false}},"9187":{"*":{"id":"38145","name":"*","chunks":[],"async":false}},"9827":{"*":{"id":"61320","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"25":{"*":{"id":"42747","name":"*","chunks":[],"async":false}},"540":{"*":{"id":"56186","name":"*","chunks":[],"async":false}},"1012":{"*":{"id":"64596","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"48365","name":"*","chunks":[],"async":false}},"5104":{"*":{"id":"56676","name":"*","chunks":[],"async":false}},"5293":{"*":{"id":"67805","name":"*","chunks":[],"async":false}},"5341":{"*":{"id":"27561","name":"*","chunks":[],"async":false}},"6505":{"*":{"id":"97225","name":"*","chunks":[],"async":false}},"7158":{"*":{"id":"47569","name":"*","chunks":[],"async":false}}}}
@@ -0,0 +1,2 @@
1
+ (()=>{var a={};a.id=5894,a.ids=[5894],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},25898:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i});var d=c(78157),e=c(31768),f=c(98314);let g=(0,c(81744).A)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),h={name:"",uiType:"stdio",description:"",enabled:!0,command:"",args:"",envEntries:[],tsSource:"// MCP server TypeScript source\n// See: https://modelcontextprotocol.io/docs\n",url:"",headerEntries:[]};function i(){let{canEdit:a}=(0,f.A)(),[b,c]=(0,e.useState)([]),[i,o]=(0,e.useState)(!0),[p,q]=(0,e.useState)(h),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)([]),[B,C]=(0,e.useState)({}),D=async()=>{o(!0);try{let a=await fetch("/api/mcps");c(await a.json())}finally{o(!1)}},E=a=>Object.fromEntries(a.filter(a=>"value"===a.mode&&a.key).map(a=>[a.key,a.val])),F=a=>Object.fromEntries(a.filter(a=>"ref"===a.mode&&a.key&&a.val).map(a=>[a.key,a.val])),G=async a=>{a.preventDefault(),s(!0),u("");try{let a,b=await fetch(v?`/api/mcps/${v}`:"/api/mcps",{method:v?"PATCH":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:p.name,type:(a=p.uiType,"typescript"===a?"stdio":a),description:p.description||void 0,enabled:p.enabled,config:(a=>{if("typescript"===a.uiType){let b=E(a.envEntries),c=F(a.envEntries),d={command:"tsx",tsSource:a.tsSource};return Object.keys(b).length>0&&(d.env=b),Object.keys(c).length>0&&(d.envRefs=c),d}if("stdio"===a.uiType){let b={command:a.command};a.args.trim()&&(b.args=a.args.split(",").map(a=>a.trim()).filter(Boolean));let c=E(a.envEntries),d=F(a.envEntries);return Object.keys(c).length>0&&(b.env=c),Object.keys(d).length>0&&(b.envRefs=d),b}let b={url:a.url},c={},d={};for(let b of a.headerEntries)b.name&&("value"===b.mode?c[b.name]=b.val:(c[b.name]=b.prefix,d[b.name]=b.val));return Object.keys(c).length>0&&(b.headers=c),Object.keys(d).length>0&&(b.envRefs=d),b})(p)})});if(!b.ok){let a=await b.json();throw Error(a.error??"Failed")}K(),await D()}catch(a){u(a.message)}finally{s(!1)}},H=async a=>{confirm("Remove this MCP server from the catalog?")&&(await fetch(`/api/mcps/${a}`,{method:"DELETE"}),D())},I=async a=>{await fetch(`/api/mcps/${a.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!a.enabled})}),D()},J=async a=>{C(b=>({...b,[a.id]:"testing"}));try{let b=await fetch(`/api/mcps/${a.id}/test`,{method:"POST"}),c=await b.json();C(b=>({...b,[a.id]:c}))}catch{C(b=>({...b,[a.id]:{ok:!1,error:"Request failed"}}))}},K=()=>{q(h),w(null),y(!1),u("")},L=(a,b)=>q(c=>({...c,[a]:b})),M=()=>q(a=>({...a,envEntries:[...a.envEntries,{key:"",mode:"value",val:""}]})),N=a=>q(b=>({...b,envEntries:b.envEntries.filter((b,c)=>c!==a)})),O=(a,b)=>q(c=>({...c,envEntries:c.envEntries.map((c,d)=>d===a?{...c,...b}:c)}));return(0,d.jsxs)("div",{style:{padding:"32px 36px",maxWidth:860},className:"fade-up",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",justifyContent:"space-between",marginBottom:28},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--muted)",marginBottom:4},children:"Settings"}),(0,d.jsx)("h1",{style:{margin:0,fontSize:22,fontWeight:600,letterSpacing:"-0.02em",color:"var(--text)"},children:"MCP Catalog"}),(0,d.jsxs)("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--muted)"},children:[b.length," server",1!==b.length?"s":""," \xb7 available to all agents"]})]}),a&&!x&&(0,d.jsxs)("button",{onClick:()=>y(!0),style:{display:"inline-flex",alignItems:"center",gap:6,background:"var(--accent)",color:"#fff",padding:"8px 16px",borderRadius:8,border:"none",fontSize:13,fontWeight:500,cursor:"pointer",fontFamily:"var(--font-sans)",transition:"opacity 0.15s"},onMouseEnter:a=>a.currentTarget.style.opacity="0.85",onMouseLeave:a=>a.currentTarget.style.opacity="1",children:[(0,d.jsx)("span",{style:{fontSize:16,lineHeight:1,marginTop:-1},children:"+"}),"Add Server"]})]}),i?(0,d.jsx)("div",{style:{color:"var(--muted)",fontSize:13},children:"Loading…"}):0!==b.length||x?(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:12,overflow:"hidden",marginBottom:20},children:b.map((c,e)=>(0,d.jsx)(l,{server:c,isLast:e===b.length-1,onEdit:()=>(a=>{let b=a.config,c="string"==typeof b.tsSource,d=b.env??{},e=b.envRefs??{},f=[...Object.entries(d).map(([a,b])=>({key:a,mode:"value",val:b})),...Object.entries(e).map(([a,b])=>({key:a,mode:"ref",val:b}))],g=b.headers??{},i=b.envRefs??{},j=Object.entries(g).map(([a,b])=>void 0!==i[a]?{name:a,mode:"ref",val:i[a],prefix:b}:{name:a,mode:"value",val:b,prefix:""});q({name:a.name,uiType:c?"typescript":a.type,description:a.description??"",enabled:a.enabled,command:b.command??"",args:Array.isArray(b.args)?b.args.join(", "):"",envEntries:f,tsSource:c?b.tsSource:h.tsSource,url:b.url??"",headerEntries:j}),w(a.id),y(!0)})(c),onDelete:()=>H(c.id),onToggle:()=>I(c),onTest:()=>J(c),testResult:B[c.id],canEdit:a},c.id))}):(0,d.jsxs)("div",{style:{border:"1px dashed var(--border)",borderRadius:12,padding:"48px",textAlign:"center",color:"var(--subtle)"},children:[(0,d.jsx)("div",{style:{marginBottom:10,color:"var(--subtle)"},children:(0,d.jsx)(g,{size:28})}),(0,d.jsx)("p",{style:{margin:"0 0 4px",fontSize:15,fontWeight:500,color:"var(--muted)"},children:"No MCP servers yet"}),(0,d.jsx)("p",{style:{margin:"0 0 16px",fontSize:13},children:"Add servers to the catalog to enable agent tools."}),a&&(0,d.jsx)("button",{onClick:()=>y(!0),style:{background:"var(--accent)",color:"#fff",border:"none",borderRadius:8,padding:"8px 20px",fontSize:13,fontWeight:500,cursor:"pointer",fontFamily:"var(--font-sans)"},children:"Add First Server"})]}),x&&(0,d.jsxs)("div",{style:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:14,padding:"28px",marginTop:4},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:20},children:[(0,d.jsx)("h2",{style:{margin:0,fontSize:16,fontWeight:600,color:"var(--text)"},children:v?"Edit Server":"Add MCP Server"}),(0,d.jsx)("button",{onClick:K,style:{background:"none",border:"none",cursor:"pointer",color:"var(--muted)",fontSize:18,fontFamily:"var(--font-sans)"},children:"\xd7"})]}),t&&(0,d.jsx)("div",{style:{background:"rgba(239,68,68,0.1)",border:"1px solid rgba(239,68,68,0.25)",borderRadius:7,padding:"9px 13px",marginBottom:16,fontSize:13,color:"#f87171"},children:t}),(0,d.jsxs)("form",{onSubmit:G,children:[(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:14,marginBottom:14},children:[(0,d.jsxs)(m,{label:"Name *",required:!0,children:[(0,d.jsx)("input",{value:p.name,onChange:a=>L("name",a.target.value),placeholder:"redshift-mcp",required:!0,...n()}),(0,d.jsxs)("small",{style:{color:"var(--subtle)",fontSize:11,marginTop:3,display:"block"},children:["Tool pattern: ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:"mcp__name__tool"})]})]}),(0,d.jsx)(m,{label:"Transport Type",children:(0,d.jsxs)("select",{value:p.uiType,onChange:a=>L("uiType",a.target.value),...n(),children:[(0,d.jsx)("option",{value:"stdio",children:"stdio — local subprocess"}),(0,d.jsx)("option",{value:"typescript",children:"TypeScript — inline script"}),(0,d.jsx)("option",{value:"sse",children:"SSE — remote Server-Sent Events"}),(0,d.jsx)("option",{value:"http",children:"HTTP — remote HTTP transport"})]})})]}),(0,d.jsx)(m,{label:"Description",style:{marginBottom:14},children:(0,d.jsx)("input",{value:p.description,onChange:a=>L("description",a.target.value),placeholder:"What does this MCP server provide?",...n()})}),"stdio"===p.uiType&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(m,{label:"Command *",style:{marginBottom:14},children:(0,d.jsx)("input",{value:p.command,onChange:a=>L("command",a.target.value),placeholder:"node",required:!0,...n("var(--font-mono)")})}),(0,d.jsx)(m,{label:"Arguments",hint:"Comma-separated",style:{marginBottom:14},children:(0,d.jsx)("input",{value:p.args,onChange:a=>L("args",a.target.value),placeholder:"/path/to/server.js, --port, 3000",...n("var(--font-mono)")})}),(0,d.jsx)(j,{entries:p.envEntries,envVarKeys:z,onAdd:M,onRemove:N,onUpdate:O})]}),"typescript"===p.uiType&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(m,{label:"TypeScript Source *",style:{marginBottom:14},hint:"The runner saves this to disk and executes it with tsx. Must implement the MCP stdio protocol.",children:(0,d.jsx)("textarea",{value:p.tsSource,onChange:a=>L("tsSource",a.target.value),rows:14,required:!0,...n("var(--font-mono)")})}),(0,d.jsx)(j,{entries:p.envEntries,envVarKeys:z,onAdd:M,onRemove:N,onUpdate:O})]}),("sse"===p.uiType||"http"===p.uiType)&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(m,{label:"URL *",style:{marginBottom:14},children:(0,d.jsx)("input",{value:p.url,onChange:a=>L("url",a.target.value),placeholder:"https://mcp.example.com/sse",required:!0,type:"url",...n("var(--font-mono)")})}),(0,d.jsx)(k,{entries:p.headerEntries,envVarKeys:z,onAdd:()=>q(a=>({...a,headerEntries:[...a.headerEntries,{name:"",mode:"value",val:"",prefix:""}]})),onRemove:a=>q(b=>({...b,headerEntries:b.headerEntries.filter((b,c)=>c!==a)})),onUpdate:(a,b)=>q(c=>({...c,headerEntries:c.headerEntries.map((c,d)=>d===a?{...c,...b}:c)}))})]}),(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:9,cursor:"pointer",marginBottom:20},children:[(0,d.jsx)("input",{type:"checkbox",checked:p.enabled,onChange:a=>L("enabled",a.target.checked),style:{accentColor:"var(--accent)",width:14,height:14}}),(0,d.jsx)("span",{style:{fontSize:13,color:"var(--muted)"},children:"Enabled — available for agents to use"})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:10},children:[(0,d.jsx)("button",{type:"submit",disabled:r,style:{background:r?"var(--border)":"var(--accent)",color:"#fff",border:"none",borderRadius:7,padding:"9px 22px",fontSize:13,fontWeight:500,cursor:r?"not-allowed":"pointer",fontFamily:"var(--font-sans)",transition:"opacity 0.15s"},children:r?"Saving…":v?"Update Server":"Add Server"}),(0,d.jsx)("button",{type:"button",onClick:K,style:{background:"transparent",color:"var(--muted)",border:"1px solid var(--border)",borderRadius:7,padding:"9px 22px",fontSize:13,cursor:"pointer",fontFamily:"var(--font-sans)"},children:"Cancel"})]})]})]})]})}function j({entries:a,envVarKeys:b,onAdd:c,onRemove:e,onUpdate:f}){return(0,d.jsxs)("div",{style:{marginBottom:14},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:6},children:[(0,d.jsx)("label",{style:{fontSize:12,fontWeight:500,color:"var(--muted)"},children:"Environment Variables"}),(0,d.jsx)("button",{type:"button",onClick:c,style:{background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--muted)",fontSize:11,padding:"2px 10px",cursor:"pointer",fontFamily:"var(--font-sans)"},children:"+ Add"})]}),0===a.length?(0,d.jsx)("p",{style:{fontSize:12,color:"var(--subtle)",margin:0,fontStyle:"italic"},children:"No env vars — click + Add to inject variables into the subprocess."}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:a.map((a,c)=>(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr auto 1fr auto",gap:6,alignItems:"center"},children:[(0,d.jsx)("input",{value:a.key,onChange:a=>f(c,{key:a.target.value}),placeholder:"KEY_NAME",style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 9px",color:"var(--text)",fontSize:12.5,fontFamily:"var(--font-mono)",outline:"none"}}),(0,d.jsxs)("select",{value:a.mode,onChange:a=>f(c,{mode:a.target.value,val:""}),style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 8px",color:"var(--muted)",fontSize:11.5,fontFamily:"var(--font-sans)",cursor:"pointer",outline:"none"},children:[(0,d.jsx)("option",{value:"value",children:"Custom value"}),(0,d.jsx)("option",{value:"ref",children:"From env vars"})]}),"value"===a.mode?(0,d.jsx)("input",{type:"password",value:a.val,onChange:a=>f(c,{val:a.target.value}),placeholder:"********"===a.val?"Current value hidden":"Enter value",style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 9px",color:"var(--text)",fontSize:12.5,fontFamily:"var(--font-mono)",outline:"none"}}):(0,d.jsxs)("select",{value:a.val,onChange:a=>f(c,{val:a.target.value}),style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 9px",color:a.val?"var(--text)":"var(--subtle)",fontSize:12.5,fontFamily:"var(--font-mono)",outline:"none",cursor:"pointer"},children:[(0,d.jsx)("option",{value:"",children:"— pick env var —"}),b.map(a=>(0,d.jsx)("option",{value:a,children:a},a)),0===b.length&&(0,d.jsx)("option",{disabled:!0,children:"No env vars — add in Settings → Env Vars"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>e(c),style:{background:"none",border:"none",color:"#ef4444",fontSize:14,cursor:"pointer",padding:"4px 6px",lineHeight:1},children:"\xd7"})]},c))})]})}function k({entries:a,envVarKeys:b,onAdd:c,onRemove:e,onUpdate:f}){return(0,d.jsxs)("div",{style:{marginBottom:14},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:6},children:[(0,d.jsx)("label",{style:{fontSize:12,fontWeight:500,color:"var(--muted)"},children:"Headers"}),(0,d.jsx)("button",{type:"button",onClick:c,style:{background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--muted)",fontSize:11,padding:"2px 10px",cursor:"pointer",fontFamily:"var(--font-sans)"},children:"+ Add"})]}),0===a.length?(0,d.jsx)("p",{style:{fontSize:12,color:"var(--subtle)",margin:0,fontStyle:"italic"},children:"No headers — click + Add to include HTTP headers (e.g. Authorization)."}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:a.map((a,c)=>(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr auto 1fr auto",gap:6,alignItems:"center"},children:[(0,d.jsx)("input",{value:a.name,onChange:a=>f(c,{name:a.target.value}),placeholder:"Authorization",style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 9px",color:"var(--text)",fontSize:12.5,fontFamily:"var(--font-mono)",outline:"none"}}),(0,d.jsxs)("select",{value:a.mode,onChange:a=>f(c,{mode:a.target.value,val:"",prefix:""}),style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 8px",color:"var(--muted)",fontSize:11.5,fontFamily:"var(--font-sans)",cursor:"pointer",outline:"none"},children:[(0,d.jsx)("option",{value:"value",children:"Static value"}),(0,d.jsx)("option",{value:"ref",children:"From env var"})]}),"value"===a.mode?(0,d.jsx)("input",{value:a.val,onChange:a=>f(c,{val:a.target.value}),placeholder:"authorization"===a.name.toLowerCase()?"Bearer sk-...":"value",style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 9px",color:"var(--text)",fontSize:12.5,fontFamily:"var(--font-mono)",outline:"none"}}):(0,d.jsxs)("select",{value:a.val,onChange:a=>f(c,{val:a.target.value}),style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 9px",color:a.val?"var(--text)":"var(--subtle)",fontSize:12.5,fontFamily:"var(--font-mono)",outline:"none",cursor:"pointer"},children:[(0,d.jsx)("option",{value:"",children:"— pick env var —"}),b.map(a=>(0,d.jsx)("option",{value:a,children:a},a)),0===b.length&&(0,d.jsx)("option",{disabled:!0,children:"No env vars — add in Settings → Env Vars"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>e(c),style:{background:"none",border:"none",color:"#ef4444",fontSize:14,cursor:"pointer",padding:"4px 6px",lineHeight:1},children:"\xd7"})]}),"ref"===a.mode&&(0,d.jsxs)("div",{style:{paddingLeft:2,display:"flex",alignItems:"center",gap:6},children:[(0,d.jsx)("span",{style:{fontSize:11,color:"var(--subtle)",whiteSpace:"nowrap"},children:"Prefix (optional):"}),(0,d.jsx)("input",{value:a.prefix,onChange:a=>f(c,{prefix:a.target.value}),placeholder:'e.g. "Bearer "',style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,padding:"4px 9px",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",outline:"none",width:180}}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--subtle)"},children:"+ value of env var"})]})]},c))})]})}function l({server:a,isLast:b,onEdit:c,onDelete:e,onToggle:f,onTest:g,testResult:h,canEdit:i}){let j=a.config,k="string"==typeof j.tsSource,l="stdio"===a.type?k?"[TypeScript inline script]":`${j.command} ${Array.isArray(j.args)?j.args.join(" "):""}`.trim():String(j.url??""),m=Object.keys(j.env??{}).length+Object.keys(j.envRefs??{}).length;return(0,d.jsxs)("div",{style:{borderBottom:b?"none":"1px solid var(--border)",opacity:a.enabled?1:.55},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"13px 16px",transition:"background 0.12s"},onMouseEnter:a=>a.currentTarget.style.background="rgba(255,255,255,0.02)",onMouseLeave:a=>a.currentTarget.style.background="transparent",children:[(0,d.jsx)("span",{style:{fontSize:10.5,fontFamily:"var(--font-mono)",fontWeight:500,background:"var(--border)",color:"var(--muted)",padding:"2px 8px",borderRadius:5,flexShrink:0,letterSpacing:"0.02em"},children:k?"ts":a.type}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,d.jsx)("span",{style:{fontSize:13.5,fontWeight:600,color:"var(--text)"},children:a.name}),!a.enabled&&(0,d.jsx)("span",{style:{fontSize:10.5,color:"var(--subtle)",background:"var(--border)",padding:"1px 6px",borderRadius:4},children:"disabled"}),m>0&&(0,d.jsxs)("span",{style:{fontSize:10.5,color:"var(--muted)",background:"var(--surface-2)",padding:"1px 6px",borderRadius:4,border:"1px solid var(--border)"},children:[m," env var",1!==m?"s":""]})]}),a.description&&(0,d.jsx)("p",{style:{margin:"1px 0 0",fontSize:12,color:"var(--muted)"},children:a.description}),(0,d.jsx)("p",{style:{margin:"2px 0 0",fontSize:11.5,color:"var(--subtle)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:6,flexShrink:0,alignItems:"center"},children:[(0,d.jsx)(o,{onClick:g,color:"var(--muted)",disabled:!1,children:"testing"===h?"Testing…":"Test"}),(0,d.jsx)(o,{onClick:f,color:"var(--muted)",disabled:!i,children:a.enabled?"Disable":"Enable"}),i&&(0,d.jsx)(o,{onClick:c,color:"var(--accent)",children:"Edit"}),i&&(0,d.jsx)(o,{onClick:e,color:"#ef4444",children:"Delete"})]})]}),h&&"testing"!==h&&(0,d.jsxs)("div",{style:{margin:"0 16px 10px",padding:"8px 12px",borderRadius:7,fontSize:12,background:h.ok?"rgba(5,150,105,0.08)":"rgba(239,68,68,0.08)",border:`1px solid ${h.ok?"rgba(5,150,105,0.25)":"rgba(239,68,68,0.25)"}`,color:h.ok?"#059669":"#ef4444"},children:[h.ok?"✓ ":"✗ ",h.ok?h.message:h.error]})]})}function m({label:a,hint:b,children:c,style:e,required:f}){return(0,d.jsxs)("div",{style:e,children:[(0,d.jsxs)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:[a,f&&(0,d.jsx)("span",{style:{color:"#ef4444",marginLeft:2},children:"*"})]}),c,b&&(0,d.jsx)("p",{style:{margin:"3px 0 0",fontSize:11,color:"var(--subtle)"},children:b})]})}function n(a="var(--font-sans)"){return{style:{width:"100%",background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:7,padding:"8px 11px",color:"var(--text)",fontSize:13,fontFamily:a,outline:"none",resize:"vertical",transition:"border-color 0.15s"},onFocus:a=>a.currentTarget.style.borderColor="var(--accent)",onBlur:a=>a.currentTarget.style.borderColor="var(--border)"}}function o({children:a,onClick:b,color:c,disabled:e}){return(0,d.jsx)("button",{onClick:b,disabled:e,style:{background:"none",border:"none",cursor:e?"not-allowed":"pointer",opacity:e?.4:1,fontSize:12,color:c??"var(--muted)",fontFamily:"var(--font-sans)",padding:"3px 8px",borderRadius:5,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="rgba(255,255,255,0.06)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent"},children:a})}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27450:(a,b,c)=>{Promise.resolve().then(c.bind(c,38145))},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},38145:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/admin/aman/slackhive/apps/web/src/app/settings/mcps/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/admin/aman/slackhive/apps/web/src/app/settings/mcps/page.tsx","default")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},61730:(a,b,c)=>{Promise.resolve().then(c.bind(c,25898))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70252:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(73653),e=c(97714),f=c(85250),g=c(37587),h=c(22369),i=c(1889),j=c(96232),k=c(22841),l=c(46537),m=c(46027),n=c(78559),o=c(75928),p=c(19374),q=c(65971),r=c(261),s=c(79898),t=c(32967),u=c(26713),v=c(40139),w=c(14248),x=c(59580),y=c(57749),z=c(53123),A=c(89745),B=c(86439),C=c(58671),D=c.n(C),E=c(18283),F=c(39818),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["settings",{children:["mcps",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,38145)),"/home/admin/aman/slackhive/apps/web/src/app/settings/mcps/page.tsx"]}]},{}]},{metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,91946))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,47570)),"/home/admin/aman/slackhive/apps/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,58671,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,17983,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,15034,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,54693,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,91946))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]}.children,I=["/home/admin/aman/slackhive/apps/web/src/app/settings/mcps/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/mcps/page",pathname:"/settings/mcps",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/settings/mcps/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},81744:(a,b,c)=>{"use strict";c.d(b,{A:()=>h});var d=c(31768);let e=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var f={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let g=(0,d.forwardRef)(({color:a="currentColor",size:b=24,strokeWidth:c=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,d.createElement)("svg",{ref:l,...f,width:b,height:b,stroke:a,strokeWidth:g?24*Number(c)/Number(b):c,className:e("lucide",h),...k},[...j.map(([a,b])=>(0,d.createElement)(a,b)),...Array.isArray(i)?i:[i]])),h=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...f},h)=>(0,d.createElement)(g,{ref:h,iconNode:b,className:e(`lucide-${a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,c),...f}));return c.displayName=`${a}`,c}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[8819,1157,7171],()=>b(b.s=70252));module.exports=c})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../webpack-runtime.js","../../../chunks/8819.js","../../../chunks/1157.js","../../../chunks/7171.js","page_client-reference-manifest.js"]}
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/settings/mcps/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"25":{"*":{"id":"42747","name":"*","chunks":[],"async":false}},"540":{"*":{"id":"56186","name":"*","chunks":[],"async":false}},"1012":{"*":{"id":"64596","name":"*","chunks":[],"async":false}},"2339":{"*":{"id":"54351","name":"*","chunks":[],"async":false}},"2734":{"*":{"id":"17766","name":"*","chunks":[],"async":false}},"3602":{"*":{"id":"9449","name":"*","chunks":[],"async":false}},"4029":{"*":{"id":"59670","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"48365","name":"*","chunks":[],"async":false}},"5104":{"*":{"id":"56676","name":"*","chunks":[],"async":false}},"5183":{"*":{"id":"71107","name":"*","chunks":[],"async":false}},"5293":{"*":{"id":"67805","name":"*","chunks":[],"async":false}},"5341":{"*":{"id":"27561","name":"*","chunks":[],"async":false}},"5535":{"*":{"id":"67337","name":"*","chunks":[],"async":false}},"6505":{"*":{"id":"97225","name":"*","chunks":[],"async":false}},"7158":{"*":{"id":"47569","name":"*","chunks":[],"async":false}},"9084":{"*":{"id":"93704","name":"*","chunks":[],"async":false}},"9187":{"*":{"id":"25898","name":"*","chunks":[],"async":false}},"9827":{"*":{"id":"60904","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/admin/aman/slackhive/node_modules/next/dist/client/components/builtin/global-error.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/client-page.js":{"id":1012,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/client-page.js":{"id":1012,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/client-segment.js":{"id":540,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/client-segment.js":{"id":540,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":5293,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":5293,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/layout-router.js":{"id":5341,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/layout-router.js":{"id":5341,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":7158,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":7158,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/render-from-template-context.js":{"id":25,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":25,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/lib/framework/boundary-components.js":{"id":5104,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":5104,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6505,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6505,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/globals.css":{"id":8761,"name":"*","chunks":["9664","static/chunks/9664-af80478aa73ba424.js","7177","static/chunks/app/layout-2079f4964aa7314e.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/layout-shell.tsx":{"id":3602,"name":"*","chunks":["9664","static/chunks/9664-af80478aa73ba424.js","7177","static/chunks/app/layout-2079f4964aa7314e.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/agents/[slug]/page.tsx":{"id":4029,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/agents/new/page.tsx":{"id":9084,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/jobs/page.tsx":{"id":9827,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/page.tsx":{"id":2339,"name":"*","chunks":["9664","static/chunks/9664-af80478aa73ba424.js","8974","static/chunks/app/page-e83437b608104dff.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/settings/env-vars/page.tsx":{"id":2734,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/settings/mcps/page.tsx":{"id":9187,"name":"*","chunks":["5894","static/chunks/app/settings/mcps/page-75650686ed6490c7.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/settings/page.tsx":{"id":5183,"name":"*","chunks":["4662","static/chunks/app/settings/page-e1e62fc41ff6cddd.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/login/page.tsx":{"id":5535,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/admin/aman/slackhive/apps/web/src/":[],"/home/admin/aman/slackhive/apps/web/src/app/layout":[{"inlined":false,"path":"static/css/15371687405525e2.css"}],"/home/admin/aman/slackhive/apps/web/src/app/page":[],"/home/admin/aman/slackhive/apps/web/src/app/settings/page":[],"/home/admin/aman/slackhive/apps/web/src/app/settings/mcps/page":[]},"rscModuleMapping":{"25":{"*":{"id":"72041","name":"*","chunks":[],"async":false}},"540":{"*":{"id":"88248","name":"*","chunks":[],"async":false}},"1012":{"*":{"id":"56542","name":"*","chunks":[],"async":false}},"2339":{"*":{"id":"17129","name":"*","chunks":[],"async":false}},"2734":{"*":{"id":"90652","name":"*","chunks":[],"async":false}},"3602":{"*":{"id":"79955","name":"*","chunks":[],"async":false}},"4029":{"*":{"id":"94256","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"58671","name":"*","chunks":[],"async":false}},"5104":{"*":{"id":"95094","name":"*","chunks":[],"async":false}},"5183":{"*":{"id":"98273","name":"*","chunks":[],"async":false}},"5293":{"*":{"id":"49743","name":"*","chunks":[],"async":false}},"5341":{"*":{"id":"96231","name":"*","chunks":[],"async":false}},"5535":{"*":{"id":"10863","name":"*","chunks":[],"async":false}},"6505":{"*":{"id":"67487","name":"*","chunks":[],"async":false}},"7158":{"*":{"id":"10959","name":"*","chunks":[],"async":false}},"8761":{"*":{"id":"14276","name":"*","chunks":[],"async":false}},"9084":{"*":{"id":"37283","name":"*","chunks":[],"async":false}},"9187":{"*":{"id":"38145","name":"*","chunks":[],"async":false}},"9827":{"*":{"id":"61320","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"25":{"*":{"id":"42747","name":"*","chunks":[],"async":false}},"540":{"*":{"id":"56186","name":"*","chunks":[],"async":false}},"1012":{"*":{"id":"64596","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"48365","name":"*","chunks":[],"async":false}},"5104":{"*":{"id":"56676","name":"*","chunks":[],"async":false}},"5293":{"*":{"id":"67805","name":"*","chunks":[],"async":false}},"5341":{"*":{"id":"27561","name":"*","chunks":[],"async":false}},"6505":{"*":{"id":"97225","name":"*","chunks":[],"async":false}},"7158":{"*":{"id":"47569","name":"*","chunks":[],"async":false}}}}
@@ -0,0 +1,2 @@
1
+ (()=>{var a={};a.id=4662,a.ids=[4662],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1274:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(73653),e=c(97714),f=c(85250),g=c(37587),h=c(22369),i=c(1889),j=c(96232),k=c(22841),l=c(46537),m=c(46027),n=c(78559),o=c(75928),p=c(19374),q=c(65971),r=c(261),s=c(79898),t=c(32967),u=c(26713),v=c(40139),w=c(14248),x=c(59580),y=c(57749),z=c(53123),A=c(89745),B=c(86439),C=c(58671),D=c.n(C),E=c(18283),F=c(39818),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,98273)),"/home/admin/aman/slackhive/apps/web/src/app/settings/page.tsx"]}]},{metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,91946))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,47570)),"/home/admin/aman/slackhive/apps/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,58671,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,17983,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,15034,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,54693,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,91946))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]}.children,I=["/home/admin/aman/slackhive/apps/web/src/app/settings/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/page",pathname:"/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/settings/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71107:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i});var d=c(78157),e=c(31768),f=c(90784),g=c(98314);let h={appName:"SlackHive",tagline:"AI agent teams on Slack",logoUrl:"",dashboardTitle:"Welcome to SlackHive"};function i(){let{canEdit:a,canManageUsers:b}=(0,g.A)(),[c,f]=(0,e.useState)("general");return(0,d.jsxs)("div",{className:"fade-up",style:{padding:"36px 40px"},children:[(0,d.jsxs)("div",{style:{marginBottom:24},children:[(0,d.jsx)("h1",{style:{fontSize:22,fontWeight:700,color:"var(--text)",letterSpacing:"-0.02em",margin:0},children:"Settings"}),(0,d.jsx)("p",{style:{fontSize:13,color:"var(--muted)",marginTop:4},children:"Configure platform branding, appearance, and access."})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:0,borderBottom:"1px solid var(--border)",marginBottom:24},children:[(0,d.jsx)(l,{active:"general"===c,onClick:()=>f("general"),children:"General"}),b&&(0,d.jsx)(l,{active:"users"===c,onClick:()=>f("users"),children:"Users"})]}),"general"===c&&(0,d.jsx)(j,{}),"users"===c&&b&&(0,d.jsx)(k,{})]})}function j(){let[a,b]=(0,e.useState)(h.appName),[c,f]=(0,e.useState)(h.tagline),[g,i]=(0,e.useState)(h.logoUrl),[j,k]=(0,e.useState)(h.dashboardTitle),[l,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)("");async function s(a,b){p(!0);try{await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a,value:b})}),r("Saved"),setTimeout(()=>r(""),2e3)}finally{p(!1)}}async function t(){p(!0);try{await Promise.all([fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:"appName",value:a})}),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:"tagline",value:c})}),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:"logoUrl",value:g})}),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:"dashboardTitle",value:j})})]),r("All settings saved"),setTimeout(()=>r(""),2e3)}finally{p(!1)}}return(0,d.jsxs)(d.Fragment,{children:[q&&(0,d.jsx)("div",{style:{position:"fixed",top:20,right:20,zIndex:999,background:"var(--accent)",color:"#fff",padding:"8px 16px",borderRadius:8,fontSize:13,fontWeight:500,boxShadow:"var(--shadow-md)"},children:q}),(0,d.jsxs)(m,{title:"Branding",children:[(0,d.jsx)(n,{label:"App Name",hint:"Displayed in the sidebar header and browser tab.",value:a,onChange:b,onBlur:()=>s("appName",a)}),(0,d.jsx)(n,{label:"Tagline",hint:"Short description shown below the app name.",value:c,onChange:f,onBlur:()=>s("tagline",c)}),(0,d.jsx)(n,{label:"Logo URL",hint:"URL to a square image (28\xd728). Leave empty for the default icon.",value:g,onChange:i,onBlur:()=>s("logoUrl",g)}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginTop:4},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:500,color:"var(--muted)"},children:"Preview:"}),(0,d.jsx)("img",{src:g||"/logo.svg",alt:"Logo",style:{width:28,height:28,borderRadius:8,objectFit:"cover"}}),!g&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--subtle)",fontStyle:"italic"},children:"Using default logo"})]})]}),(0,d.jsx)(m,{title:"Dashboard",children:(0,d.jsx)(n,{label:"Dashboard Title",hint:"Main heading on the dashboard page.",value:j,onChange:k,onBlur:()=>s("dashboardTitle",j)})}),(0,d.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:8},children:(0,d.jsx)(o,{onClick:t,loading:l,children:"Save All"})})]})}function k(){let[a,b]=(0,e.useState)([]),[c,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)({username:"",password:"",role:"viewer"}),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)({}),[x,y]=(0,e.useState)(null),z=()=>{i(!0),Promise.all([fetch("/api/auth/users").then(a=>a.json()),fetch("/api/agents").then(a=>a.json())]).then(([a,c])=>{b(a),g(c)}).catch(()=>{}).finally(()=>i(!1))},A=async()=>{if(!l.username||!l.password)return void o("Username and password required");q(!0),o("");try{let a=await fetch("/api/auth/users",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)}),b=await a.json();if(!a.ok)return void o(b.error||"Failed");k(!1),m({username:"",password:"",role:"viewer"}),z()}finally{q(!1)}},B=async(a,b)=>{confirm(`Delete user "${b}"?`)&&(await fetch(`/api/auth/users/${a}`,{method:"DELETE"}),z())},C=async(a,b)=>{s(a),await fetch(`/api/auth/users/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({role:b})}),s(null),z()},D=async a=>{if(t===a)return void u(null);if(u(a),v[a])return;y(a);let b=new Set;await Promise.all(c.map(async c=>{let d=await fetch(`/api/agents/${c.id}/access`),e=await d.json();e.writeUsers?.some(b=>b.userId===a)&&b.add(c.id)})),w(c=>({...c,[a]:b})),y(null)},E=async(a,b,c)=>{await fetch(`/api/agents/${b}/access`,{method:c?"DELETE":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:a})}),w(d=>{let e=new Set(d[a]);return c?e.delete(b):e.add(b),{...d,[a]:e}})};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16},children:[(0,d.jsx)("p",{style:{margin:0,fontSize:13,color:"var(--muted)"},children:"Manage platform access. Superadmin is configured via environment variables."}),(0,d.jsxs)("button",{onClick:()=>k(!0),style:{display:"inline-flex",alignItems:"center",gap:6,background:"var(--accent)",color:"#fff",padding:"8px 16px",borderRadius:8,fontSize:13,fontWeight:500,border:"none",cursor:"pointer",fontFamily:"var(--font-sans)",flexShrink:0},children:[(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:(0,d.jsx)("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})}),"Add User"]})]}),h?(0,d.jsx)("p",{style:{color:"var(--muted)",fontSize:13},children:"Loading..."}):(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"12px 16px",borderBottom:a.length>0?"1px solid var(--border)":"none",background:"var(--surface-2)"},children:[(0,d.jsx)("div",{style:{width:28,height:28,borderRadius:8,background:"#171717",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:600,color:"#fff"},children:"S"}),(0,d.jsxs)("div",{style:{flex:1},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:500,color:"var(--text)"},children:"admin"}),(0,d.jsx)("div",{style:{fontSize:11,color:"var(--muted)"},children:"Environment variable"})]}),(0,d.jsx)("span",{style:{fontSize:10,fontWeight:600,letterSpacing:"0.04em",textTransform:"uppercase",color:"#d97706",background:"rgba(217,119,6,0.1)",padding:"2px 8px",borderRadius:4},children:"superadmin"})]}),a.map((b,e)=>(0,d.jsxs)("div",{style:{borderBottom:e<a.length-1?"1px solid var(--border)":"none"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"12px 16px"},children:[(0,d.jsx)("div",{style:{width:28,height:28,borderRadius:8,flexShrink:0,background:"admin"===b.role?"#171717":"editor"===b.role?"#059669":"var(--surface-2)",border:"admin"===b.role?"none":"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:600,color:"admin"===b.role?"#fff":"var(--text)"},children:b.username.charAt(0).toUpperCase()}),(0,d.jsxs)("div",{style:{flex:1},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:500,color:"var(--text)"},children:b.username}),(0,d.jsxs)("div",{style:{fontSize:11,color:"var(--muted)"},children:["Created ",new Date(b.createdAt).toLocaleDateString()]})]}),(0,d.jsxs)("select",{value:b.role,disabled:r===b.id,onChange:a=>C(b.id,a.target.value),style:{fontSize:11,fontWeight:600,padding:"3px 8px",borderRadius:5,border:"1px solid var(--border)",cursor:"pointer",background:"admin"===b.role?"rgba(37,99,235,0.1)":"editor"===b.role?"rgba(5,150,105,0.1)":"var(--surface-2)",color:"admin"===b.role?"#2563eb":"editor"===b.role?"#059669":"var(--muted)",fontFamily:"var(--font-sans)",outline:"none",opacity:r===b.id?.5:1},children:[(0,d.jsx)("option",{value:"admin",children:"admin"}),(0,d.jsx)("option",{value:"editor",children:"editor"}),(0,d.jsx)("option",{value:"viewer",children:"viewer"})]}),"editor"===b.role&&(0,d.jsx)("button",{onClick:()=>D(b.id),style:{background:t===b.id?"rgba(59,130,246,0.1)":"var(--surface-2)",border:"1px solid var(--border)",borderRadius:6,color:t===b.id?"var(--accent)":"var(--muted)",fontSize:11,fontWeight:500,cursor:"pointer",padding:"3px 10px",fontFamily:"var(--font-sans)"},children:"Agent Access"}),"viewer"===b.role&&(0,d.jsx)("span",{title:"Viewers are read-only — write access grants only apply to editors",style:{fontSize:11,fontWeight:500,padding:"3px 10px",borderRadius:6,border:"1px solid var(--border)",color:"var(--subtle)",background:"var(--surface-2)",opacity:.5},children:"Agent Access"}),(0,d.jsx)("button",{onClick:()=>B(b.id,b.username),style:{background:"none",border:"none",color:"#dc2626",fontSize:12,cursor:"pointer",opacity:.6,fontFamily:"var(--font-sans)",transition:"opacity 0.12s"},onMouseEnter:a=>a.currentTarget.style.opacity="1",onMouseLeave:a=>a.currentTarget.style.opacity="0.6",children:"Delete"})]}),t===b.id&&(0,d.jsxs)("div",{style:{margin:"0 16px 12px",padding:"14px 16px",borderRadius:8,background:"var(--surface-2)",border:"1px solid var(--border)"},children:[(0,d.jsxs)("p",{style:{margin:"0 0 10px",fontSize:12,color:"var(--muted)",fontWeight:600},children:["Write access — check agents this user can edit",(0,d.jsx)("span",{style:{fontWeight:400,color:"var(--subtle)",marginLeft:6},children:"(own created agents always have write)"})]}),x===b.id?(0,d.jsx)("p",{style:{fontSize:12,color:"var(--subtle)",margin:0},children:"Loading…"}):(0,d.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:[c.map(a=>{let c=v[b.id]?.has(a.id)??!1;return(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:12,color:c?"var(--accent)":"var(--muted)",background:c?"rgba(59,130,246,0.08)":"var(--surface)",border:`1px solid ${c?"rgba(59,130,246,0.3)":"var(--border)"}`,borderRadius:6,padding:"4px 10px",transition:"all 0.12s"},children:[(0,d.jsx)("input",{type:"checkbox",checked:c,onChange:()=>E(b.id,a.id,c),style:{accentColor:"var(--accent)",cursor:"pointer"}}),a.name]},a.id)}),0===c.length&&(0,d.jsx)("span",{style:{fontSize:12,color:"var(--subtle)"},children:"No agents yet"})]})]})]},b.id)),0===a.length&&(0,d.jsx)("div",{style:{padding:"20px 16px",textAlign:"center",color:"var(--muted)",fontSize:13},children:"No additional users. Only the superadmin account exists."})]}),j&&(0,d.jsx)(f.Z,{children:(0,d.jsx)("div",{style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,backdropFilter:"blur(2px)"},children:(0,d.jsxs)("div",{style:{background:"#fff",borderRadius:14,border:"1px solid var(--border)",padding:28,width:380,boxShadow:"var(--shadow-lg)",display:"flex",flexDirection:"column",gap:16,maxHeight:"90vh",overflow:"auto"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,d.jsx)("h3",{style:{margin:0,fontSize:16,fontWeight:600,color:"var(--text)"},children:"New User"}),(0,d.jsx)("button",{onClick:()=>{k(!1),o("")},style:{background:"none",border:"none",color:"var(--muted)",fontSize:18,cursor:"pointer"},children:"\xd7"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:"Username"}),(0,d.jsx)("input",{type:"text",value:l.username,onChange:a=>m(b=>({...b,username:a.target.value})),style:{width:"100%",padding:"8px 12px",borderRadius:7,border:"1px solid var(--border)",fontSize:13,outline:"none",boxSizing:"border-box",fontFamily:"var(--font-sans)"}})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:"Password"}),(0,d.jsx)("input",{type:"password",value:l.password,onChange:a=>m(b=>({...b,password:a.target.value})),style:{width:"100%",padding:"8px 12px",borderRadius:7,border:"1px solid var(--border)",fontSize:13,outline:"none",boxSizing:"border-box",fontFamily:"var(--font-sans)"}})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:"Role"}),(0,d.jsxs)("select",{value:l.role,onChange:a=>m(b=>({...b,role:a.target.value})),style:{width:"100%",padding:"8px 12px",borderRadius:7,border:"1px solid var(--border)",fontSize:13,outline:"none",fontFamily:"var(--font-sans)",background:"#fff"},children:[(0,d.jsx)("option",{value:"viewer",children:"Viewer — read-only access"}),(0,d.jsx)("option",{value:"editor",children:"Editor — create/edit agents, jobs, settings"}),(0,d.jsx)("option",{value:"admin",children:"Admin — full access including user management"})]})]}),n&&(0,d.jsx)("div",{style:{fontSize:12,color:"#dc2626",background:"rgba(220,38,38,0.06)",padding:"6px 10px",borderRadius:6},children:n}),(0,d.jsxs)("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[(0,d.jsx)("button",{onClick:()=>{k(!1),o("")},style:{padding:"8px 16px",borderRadius:7,border:"1px solid var(--border)",background:"#fff",fontSize:13,cursor:"pointer",fontFamily:"var(--font-sans)"},children:"Cancel"}),(0,d.jsx)("button",{onClick:A,disabled:p,style:{padding:"8px 18px",borderRadius:7,border:"none",background:"var(--accent)",color:"#fff",fontSize:13,fontWeight:500,cursor:"pointer",fontFamily:"var(--font-sans)"},children:p?"Creating...":"Create User"})]})]})})})]})}function l({active:a,onClick:b,children:c}){return(0,d.jsx)("button",{onClick:b,style:{background:"none",border:"none",cursor:"pointer",padding:"10px 16px",fontSize:13,color:a?"var(--text)":"var(--muted)",fontWeight:a?600:400,fontFamily:"var(--font-sans)",position:"relative",transition:"color 0.15s",borderBottom:a?"2px solid var(--accent)":"2px solid transparent",marginBottom:-1},children:c})}function m({title:a,children:b}){return(0,d.jsxs)("div",{style:{marginBottom:22,paddingBottom:22,borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--muted)",letterSpacing:"0.06em",textTransform:"uppercase",marginBottom:14},children:a}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:b})]})}function n({label:a,value:b,onChange:c,onBlur:e,hint:f}){return(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:a}),(0,d.jsx)("input",{type:"text",value:b,onChange:a=>c(a.target.value),onBlur:a=>{a.currentTarget.style.borderColor="var(--border)",e?.()},style:{width:"100%",background:"var(--surface)",border:"1px solid var(--border)",borderRadius:7,padding:"8px 11px",color:"var(--text)",fontSize:13,fontFamily:"var(--font-sans)",outline:"none",transition:"border-color 0.15s",boxSizing:"border-box"},onFocus:a=>a.currentTarget.style.borderColor="var(--accent)"}),f&&(0,d.jsx)("p",{style:{margin:"4px 0 0",fontSize:11,color:"var(--subtle)"},children:f})]})}function o({children:a,onClick:b,loading:c}){return(0,d.jsx)("button",{onClick:b,disabled:c,style:{background:c?"var(--border)":"var(--accent)",color:"#fff",border:"none",borderRadius:7,padding:"8px 18px",fontSize:13,fontWeight:500,cursor:c?"not-allowed":"pointer",fontFamily:"var(--font-sans)",transition:"opacity 0.15s"},onMouseEnter:a=>{c||(a.currentTarget.style.opacity="0.85")},onMouseLeave:a=>{a.currentTarget.style.opacity="1"},children:c?"Saving...":a})}},80316:(a,b,c)=>{Promise.resolve().then(c.bind(c,98273))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90044:(a,b,c)=>{Promise.resolve().then(c.bind(c,71107))},90784:(a,b,c)=>{"use strict";c.d(b,{Z:()=>f});var d=c(31768),e=c(65081);function f({children:a}){let[b,c]=(0,d.useState)(!1);return b?(0,e.createPortal)(a,document.body):null}},98273:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/admin/aman/slackhive/apps/web/src/app/settings/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/admin/aman/slackhive/apps/web/src/app/settings/page.tsx","default")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[8819,1157,7171],()=>b(b.s=1274));module.exports=c})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../webpack-runtime.js","../../chunks/8819.js","../../chunks/1157.js","../../chunks/7171.js","page_client-reference-manifest.js"]}
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/settings/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"25":{"*":{"id":"42747","name":"*","chunks":[],"async":false}},"540":{"*":{"id":"56186","name":"*","chunks":[],"async":false}},"1012":{"*":{"id":"64596","name":"*","chunks":[],"async":false}},"2339":{"*":{"id":"54351","name":"*","chunks":[],"async":false}},"2734":{"*":{"id":"17766","name":"*","chunks":[],"async":false}},"3602":{"*":{"id":"9449","name":"*","chunks":[],"async":false}},"4029":{"*":{"id":"59670","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"48365","name":"*","chunks":[],"async":false}},"5104":{"*":{"id":"56676","name":"*","chunks":[],"async":false}},"5183":{"*":{"id":"71107","name":"*","chunks":[],"async":false}},"5293":{"*":{"id":"67805","name":"*","chunks":[],"async":false}},"5341":{"*":{"id":"27561","name":"*","chunks":[],"async":false}},"5535":{"*":{"id":"67337","name":"*","chunks":[],"async":false}},"6505":{"*":{"id":"97225","name":"*","chunks":[],"async":false}},"7158":{"*":{"id":"47569","name":"*","chunks":[],"async":false}},"9084":{"*":{"id":"93704","name":"*","chunks":[],"async":false}},"9187":{"*":{"id":"25898","name":"*","chunks":[],"async":false}},"9827":{"*":{"id":"60904","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/admin/aman/slackhive/node_modules/next/dist/client/components/builtin/global-error.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":4431,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/client-page.js":{"id":1012,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/client-page.js":{"id":1012,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/client-segment.js":{"id":540,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/client-segment.js":{"id":540,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":5293,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":5293,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/layout-router.js":{"id":5341,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/layout-router.js":{"id":5341,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":7158,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":7158,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/client/components/render-from-template-context.js":{"id":25,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":25,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/lib/framework/boundary-components.js":{"id":5104,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":5104,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6505,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6505,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/globals.css":{"id":8761,"name":"*","chunks":["9664","static/chunks/9664-af80478aa73ba424.js","7177","static/chunks/app/layout-2079f4964aa7314e.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/layout-shell.tsx":{"id":3602,"name":"*","chunks":["9664","static/chunks/9664-af80478aa73ba424.js","7177","static/chunks/app/layout-2079f4964aa7314e.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/agents/[slug]/page.tsx":{"id":4029,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/agents/new/page.tsx":{"id":9084,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/jobs/page.tsx":{"id":9827,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/page.tsx":{"id":2339,"name":"*","chunks":["9664","static/chunks/9664-af80478aa73ba424.js","8974","static/chunks/app/page-e83437b608104dff.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/settings/env-vars/page.tsx":{"id":2734,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/settings/mcps/page.tsx":{"id":9187,"name":"*","chunks":[],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/settings/page.tsx":{"id":5183,"name":"*","chunks":["4662","static/chunks/app/settings/page-e1e62fc41ff6cddd.js"],"async":false},"/home/admin/aman/slackhive/apps/web/src/app/login/page.tsx":{"id":5535,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/admin/aman/slackhive/apps/web/src/":[],"/home/admin/aman/slackhive/apps/web/src/app/layout":[{"inlined":false,"path":"static/css/15371687405525e2.css"}],"/home/admin/aman/slackhive/apps/web/src/app/page":[],"/home/admin/aman/slackhive/apps/web/src/app/settings/page":[]},"rscModuleMapping":{"25":{"*":{"id":"72041","name":"*","chunks":[],"async":false}},"540":{"*":{"id":"88248","name":"*","chunks":[],"async":false}},"1012":{"*":{"id":"56542","name":"*","chunks":[],"async":false}},"2339":{"*":{"id":"17129","name":"*","chunks":[],"async":false}},"2734":{"*":{"id":"90652","name":"*","chunks":[],"async":false}},"3602":{"*":{"id":"79955","name":"*","chunks":[],"async":false}},"4029":{"*":{"id":"94256","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"58671","name":"*","chunks":[],"async":false}},"5104":{"*":{"id":"95094","name":"*","chunks":[],"async":false}},"5183":{"*":{"id":"98273","name":"*","chunks":[],"async":false}},"5293":{"*":{"id":"49743","name":"*","chunks":[],"async":false}},"5341":{"*":{"id":"96231","name":"*","chunks":[],"async":false}},"5535":{"*":{"id":"10863","name":"*","chunks":[],"async":false}},"6505":{"*":{"id":"67487","name":"*","chunks":[],"async":false}},"7158":{"*":{"id":"10959","name":"*","chunks":[],"async":false}},"8761":{"*":{"id":"14276","name":"*","chunks":[],"async":false}},"9084":{"*":{"id":"37283","name":"*","chunks":[],"async":false}},"9187":{"*":{"id":"38145","name":"*","chunks":[],"async":false}},"9827":{"*":{"id":"61320","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"25":{"*":{"id":"42747","name":"*","chunks":[],"async":false}},"540":{"*":{"id":"56186","name":"*","chunks":[],"async":false}},"1012":{"*":{"id":"64596","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"48365","name":"*","chunks":[],"async":false}},"5104":{"*":{"id":"56676","name":"*","chunks":[],"async":false}},"5293":{"*":{"id":"67805","name":"*","chunks":[],"async":false}},"5341":{"*":{"id":"27561","name":"*","chunks":[],"async":false}},"6505":{"*":{"id":"97225","name":"*","chunks":[],"async":false}},"7158":{"*":{"id":"47569","name":"*","chunks":[],"async":false}}}}
@@ -0,0 +1,46 @@
1
+ {
2
+ "/api/agents/[id]/access/route": "app/api/agents/[id]/access/route.js",
3
+ "/api/agents/[id]/logs/route": "app/api/agents/[id]/logs/route.js",
4
+ "/api/agents/[id]/manifest/route": "app/api/agents/[id]/manifest/route.js",
5
+ "/api/agents/[id]/mcps/route": "app/api/agents/[id]/mcps/route.js",
6
+ "/api/agents/[id]/memories/[memId]/route": "app/api/agents/[id]/memories/[memId]/route.js",
7
+ "/api/agents/[id]/memories/route": "app/api/agents/[id]/memories/route.js",
8
+ "/api/agents/[id]/permissions/route": "app/api/agents/[id]/permissions/route.js",
9
+ "/api/agents/[id]/reload/route": "app/api/agents/[id]/reload/route.js",
10
+ "/api/agents/[id]/skills/[skillId]/route": "app/api/agents/[id]/skills/[skillId]/route.js",
11
+ "/_not-found/page": "app/_not-found/page.js",
12
+ "/api/agents/[id]/snapshots/[sid]/restore/route": "app/api/agents/[id]/snapshots/[sid]/restore/route.js",
13
+ "/api/agents/[id]/restrictions/route": "app/api/agents/[id]/restrictions/route.js",
14
+ "/api/agents/[id]/skills/route": "app/api/agents/[id]/skills/route.js",
15
+ "/api/agents/route": "app/api/agents/route.js",
16
+ "/api/agents/[id]/slack-info/route": "app/api/agents/[id]/slack-info/route.js",
17
+ "/api/agents/[id]/snapshots/[sid]/route": "app/api/agents/[id]/snapshots/[sid]/route.js",
18
+ "/api/agents/[id]/snapshots/route": "app/api/agents/[id]/snapshots/route.js",
19
+ "/api/auth/login/route": "app/api/auth/login/route.js",
20
+ "/api/auth/me/route": "app/api/auth/me/route.js",
21
+ "/api/auth/logout/route": "app/api/auth/logout/route.js",
22
+ "/api/auth/users/[id]/route": "app/api/auth/users/[id]/route.js",
23
+ "/api/auth/users/route": "app/api/auth/users/route.js",
24
+ "/api/agents/[id]/start/route": "app/api/agents/[id]/start/route.js",
25
+ "/api/env-vars/[key]/route": "app/api/env-vars/[key]/route.js",
26
+ "/api/jobs/[id]/route": "app/api/jobs/[id]/route.js",
27
+ "/api/jobs/[id]/runs/route": "app/api/jobs/[id]/runs/route.js",
28
+ "/api/jobs/route": "app/api/jobs/route.js",
29
+ "/api/mcps/[id]/route": "app/api/mcps/[id]/route.js",
30
+ "/api/mcps/[id]/test/route": "app/api/mcps/[id]/test/route.js",
31
+ "/api/env-vars/route": "app/api/env-vars/route.js",
32
+ "/api/mcps/route": "app/api/mcps/route.js",
33
+ "/api/settings/route": "app/api/settings/route.js",
34
+ "/api/agents/[id]/route": "app/api/agents/[id]/route.js",
35
+ "/api/agents/[id]/stop/route": "app/api/agents/[id]/stop/route.js",
36
+ "/icon.svg/route": "app/icon.svg/route.js",
37
+ "/api/agents/[id]/claude-md/route": "app/api/agents/[id]/claude-md/route.js",
38
+ "/agents/[slug]/page": "app/agents/[slug]/page.js",
39
+ "/agents/new/page": "app/agents/new/page.js",
40
+ "/jobs/page": "app/jobs/page.js",
41
+ "/page": "app/page.js",
42
+ "/settings/env-vars/page": "app/settings/env-vars/page.js",
43
+ "/settings/mcps/page": "app/settings/mcps/page.js",
44
+ "/settings/page": "app/settings/page.js",
45
+ "/login/page": "app/login/page.js"
46
+ }