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.
- package/.dockerignore +14 -0
- package/.env.example +44 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +65 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +38 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +27 -0
- package/.github/dependabot.yml +20 -0
- package/.github/workflows/audit.yml +149 -0
- package/.github/workflows/ci.yml +135 -0
- package/CHANGELOG.md +52 -0
- package/CODE_OF_CONDUCT.md +37 -0
- package/CONTRIBUTING.md +204 -0
- package/LICENSE +21 -0
- package/README.md +19 -0
- package/SECURITY.md +47 -0
- package/apps/runner/Dockerfile +33 -0
- package/apps/runner/dist/__tests__/channel-restrictions.test.d.ts +8 -0
- package/apps/runner/dist/__tests__/channel-restrictions.test.js +63 -0
- package/apps/runner/dist/__tests__/channel-restrictions.test.js.map +1 -0
- package/apps/runner/dist/__tests__/claude-handler-resolve.test.d.ts +20 -0
- package/apps/runner/dist/__tests__/claude-handler-resolve.test.js +178 -0
- package/apps/runner/dist/__tests__/claude-handler-resolve.test.js.map +1 -0
- package/apps/runner/dist/__tests__/compile-claude-md.test.d.ts +13 -0
- package/apps/runner/dist/__tests__/compile-claude-md.test.js +144 -0
- package/apps/runner/dist/__tests__/compile-claude-md.test.js.map +1 -0
- package/apps/runner/dist/__tests__/memory-sync.test.d.ts +11 -0
- package/apps/runner/dist/__tests__/memory-sync.test.js +56 -0
- package/apps/runner/dist/__tests__/memory-sync.test.js.map +1 -0
- package/apps/runner/dist/__tests__/slack-file-support.test.d.ts +9 -0
- package/apps/runner/dist/__tests__/slack-file-support.test.js +271 -0
- package/apps/runner/dist/__tests__/slack-file-support.test.js.map +1 -0
- package/apps/runner/dist/__tests__/slack-formatting.test.d.ts +12 -0
- package/apps/runner/dist/__tests__/slack-formatting.test.js +400 -0
- package/apps/runner/dist/__tests__/slack-formatting.test.js.map +1 -0
- package/apps/runner/dist/__tests__/thread-context.test.d.ts +12 -0
- package/apps/runner/dist/__tests__/thread-context.test.js +182 -0
- package/apps/runner/dist/__tests__/thread-context.test.js.map +1 -0
- package/apps/runner/dist/agent-runner.d.ts +118 -0
- package/apps/runner/dist/agent-runner.js +352 -0
- package/apps/runner/dist/agent-runner.js.map +1 -0
- package/apps/runner/dist/claude-handler.d.ts +122 -0
- package/apps/runner/dist/claude-handler.js +402 -0
- package/apps/runner/dist/claude-handler.js.map +1 -0
- package/apps/runner/dist/compile-claude-md.d.ts +59 -0
- package/apps/runner/dist/compile-claude-md.js +291 -0
- package/apps/runner/dist/compile-claude-md.js.map +1 -0
- package/apps/runner/dist/correction-handler.d.ts +46 -0
- package/apps/runner/dist/correction-handler.js +162 -0
- package/apps/runner/dist/correction-handler.js.map +1 -0
- package/apps/runner/dist/correction-manager.d.ts +53 -0
- package/apps/runner/dist/correction-manager.js +241 -0
- package/apps/runner/dist/correction-manager.js.map +1 -0
- package/apps/runner/dist/db.d.ts +193 -0
- package/apps/runner/dist/db.js +492 -0
- package/apps/runner/dist/db.js.map +1 -0
- package/apps/runner/dist/index.d.ts +9 -0
- package/apps/runner/dist/index.js +43 -0
- package/apps/runner/dist/index.js.map +1 -0
- package/apps/runner/dist/job-scheduler.d.ts +57 -0
- package/apps/runner/dist/job-scheduler.js +150 -0
- package/apps/runner/dist/job-scheduler.js.map +1 -0
- package/apps/runner/dist/logger.d.ts +32 -0
- package/apps/runner/dist/logger.js +52 -0
- package/apps/runner/dist/logger.js.map +1 -0
- package/apps/runner/dist/mcp-process-manager.d.ts +38 -0
- package/apps/runner/dist/mcp-process-manager.js +189 -0
- package/apps/runner/dist/mcp-process-manager.js.map +1 -0
- package/apps/runner/dist/memory-mcp.d.ts +14 -0
- package/apps/runner/dist/memory-mcp.js +88 -0
- package/apps/runner/dist/memory-mcp.js.map +1 -0
- package/apps/runner/dist/memory-watcher.d.ts +78 -0
- package/apps/runner/dist/memory-watcher.js +220 -0
- package/apps/runner/dist/memory-watcher.js.map +1 -0
- package/apps/runner/dist/slack-handler.d.ts +120 -0
- package/apps/runner/dist/slack-handler.js +843 -0
- package/apps/runner/dist/slack-handler.js.map +1 -0
- package/apps/runner/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/apps/runner/package.json +42 -0
- package/apps/runner/src/__tests__/channel-restrictions.test.ts +75 -0
- package/apps/runner/src/__tests__/claude-handler-resolve.test.ts +160 -0
- package/apps/runner/src/__tests__/compile-claude-md.test.ts +139 -0
- package/apps/runner/src/__tests__/memory-sync.test.ts +59 -0
- package/apps/runner/src/__tests__/slack-file-support.test.ts +376 -0
- package/apps/runner/src/__tests__/slack-formatting.test.ts +495 -0
- package/apps/runner/src/__tests__/thread-context.test.ts +215 -0
- package/apps/runner/src/agent-runner.ts +397 -0
- package/apps/runner/src/claude-handler.ts +475 -0
- package/apps/runner/src/compile-claude-md.ts +283 -0
- package/apps/runner/src/correction-handler.ts +191 -0
- package/apps/runner/src/correction-manager.ts +285 -0
- package/apps/runner/src/db.ts +604 -0
- package/apps/runner/src/index.ts +46 -0
- package/apps/runner/src/job-scheduler.ts +165 -0
- package/apps/runner/src/logger.ts +49 -0
- package/apps/runner/src/mcp-process-manager.ts +195 -0
- package/apps/runner/src/memory-mcp.ts +85 -0
- package/apps/runner/src/memory-watcher.ts +215 -0
- package/apps/runner/src/slack-handler.ts +929 -0
- package/apps/runner/tsconfig.json +17 -0
- package/apps/runner/vitest.config.mts +17 -0
- package/apps/web/.eslintrc.json +3 -0
- package/apps/web/.next/app-build-manifest.json +323 -0
- package/apps/web/.next/app-path-routes-manifest.json +46 -0
- package/apps/web/.next/build-manifest.json +33 -0
- package/apps/web/.next/cache/.previewinfo +1 -0
- package/apps/web/.next/cache/.rscinfo +1 -0
- package/apps/web/.next/cache/webpack/client-production/0.pack +0 -0
- package/apps/web/.next/cache/webpack/client-production/1.pack +0 -0
- package/apps/web/.next/cache/webpack/client-production/2.pack +0 -0
- package/apps/web/.next/cache/webpack/client-production/3.pack +0 -0
- package/apps/web/.next/cache/webpack/client-production/4.pack +0 -0
- package/apps/web/.next/cache/webpack/client-production/index.pack +0 -0
- package/apps/web/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/apps/web/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/apps/web/.next/cache/webpack/edge-server-production/1.pack +0 -0
- package/apps/web/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/apps/web/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
- package/apps/web/.next/cache/webpack/server-production/0.pack +0 -0
- package/apps/web/.next/cache/webpack/server-production/1.pack +0 -0
- package/apps/web/.next/cache/webpack/server-production/2.pack +0 -0
- package/apps/web/.next/cache/webpack/server-production/index.pack +0 -0
- package/apps/web/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/apps/web/.next/diagnostics/build-diagnostics.json +6 -0
- package/apps/web/.next/diagnostics/framework.json +1 -0
- package/apps/web/.next/package.json +1 -0
- package/apps/web/.next/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/_not-found/page.js +2 -0
- package/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/agents/[slug]/page.js +4 -0
- package/apps/web/.next/server/app/agents/[slug]/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/agents/[slug]/page_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/agents/new/page.js +2 -0
- package/apps/web/.next/server/app/agents/new/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/agents/new/page_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/access/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/access/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/access/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/claude-md/route.js +6 -0
- package/apps/web/.next/server/app/api/agents/[id]/claude-md/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/claude-md/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/logs/route.js +3 -0
- package/apps/web/.next/server/app/api/agents/[id]/logs/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/logs/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/manifest/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/manifest/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/manifest/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/mcps/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/mcps/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/mcps/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/memories/[memId]/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/memories/[memId]/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/memories/[memId]/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/memories/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/memories/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/memories/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/permissions/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/permissions/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/permissions/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/reload/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/reload/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/reload/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/restrictions/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/restrictions/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/restrictions/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/route.js +33 -0
- package/apps/web/.next/server/app/api/agents/[id]/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/skills/[skillId]/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/skills/[skillId]/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/skills/[skillId]/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/skills/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/skills/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/slack-info/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/slack-info/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/slack-info/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/restore/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/restore/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/restore/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/snapshots/[sid]/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/snapshots/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/snapshots/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/snapshots/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/start/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/start/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/start/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/stop/route.js +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/stop/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/[id]/stop/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/agents/route.js +91 -0
- package/apps/web/.next/server/app/api/agents/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/agents/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/auth/login/route.js +1 -0
- package/apps/web/.next/server/app/api/auth/login/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/auth/logout/route.js +1 -0
- package/apps/web/.next/server/app/api/auth/logout/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/auth/me/route.js +1 -0
- package/apps/web/.next/server/app/api/auth/me/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/auth/users/[id]/route.js +1 -0
- package/apps/web/.next/server/app/api/auth/users/[id]/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/auth/users/[id]/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/auth/users/route.js +1 -0
- package/apps/web/.next/server/app/api/auth/users/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/auth/users/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/env-vars/[key]/route.js +1 -0
- package/apps/web/.next/server/app/api/env-vars/[key]/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/env-vars/[key]/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/env-vars/route.js +1 -0
- package/apps/web/.next/server/app/api/env-vars/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/env-vars/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/jobs/[id]/route.js +1 -0
- package/apps/web/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/jobs/[id]/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/jobs/[id]/runs/route.js +1 -0
- package/apps/web/.next/server/app/api/jobs/[id]/runs/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/jobs/[id]/runs/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/jobs/route.js +1 -0
- package/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/jobs/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/mcps/[id]/route.js +1 -0
- package/apps/web/.next/server/app/api/mcps/[id]/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/mcps/[id]/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/mcps/[id]/test/route.js +1 -0
- package/apps/web/.next/server/app/api/mcps/[id]/test/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/mcps/[id]/test/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/mcps/route.js +1 -0
- package/apps/web/.next/server/app/api/mcps/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/mcps/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/api/settings/route.js +1 -0
- package/apps/web/.next/server/app/api/settings/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/api/settings/route_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/icon.svg/route.js +1 -0
- package/apps/web/.next/server/app/icon.svg/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/jobs/page.js +2 -0
- package/apps/web/.next/server/app/jobs/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/jobs/page_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/login/page.js +2 -0
- package/apps/web/.next/server/app/login/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/login/page_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/page.js +2 -0
- package/apps/web/.next/server/app/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/page_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/settings/env-vars/page.js +2 -0
- package/apps/web/.next/server/app/settings/env-vars/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/settings/env-vars/page_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/settings/mcps/page.js +2 -0
- package/apps/web/.next/server/app/settings/mcps/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/settings/mcps/page_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app/settings/page.js +2 -0
- package/apps/web/.next/server/app/settings/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -0
- package/apps/web/.next/server/app-paths-manifest.json +46 -0
- package/apps/web/.next/server/chunks/1157.js +9 -0
- package/apps/web/.next/server/chunks/2287.js +1 -0
- package/apps/web/.next/server/chunks/3444.js +1 -0
- package/apps/web/.next/server/chunks/383.js +6 -0
- package/apps/web/.next/server/chunks/4012.js +58 -0
- package/apps/web/.next/server/chunks/6791.js +1 -0
- package/apps/web/.next/server/chunks/7171.js +1 -0
- package/apps/web/.next/server/chunks/8819.js +22 -0
- package/apps/web/.next/server/edge-runtime-webpack.js +2 -0
- package/apps/web/.next/server/edge-runtime-webpack.js.map +1 -0
- package/apps/web/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/apps/web/.next/server/middleware-build-manifest.js +1 -0
- package/apps/web/.next/server/middleware-manifest.json +32 -0
- package/apps/web/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/apps/web/.next/server/next-font-manifest.js +1 -0
- package/apps/web/.next/server/next-font-manifest.json +1 -0
- package/apps/web/.next/server/pages/_app.js +1 -0
- package/apps/web/.next/server/pages/_app.js.nft.json +1 -0
- package/apps/web/.next/server/pages/_document.js +1 -0
- package/apps/web/.next/server/pages/_document.js.nft.json +1 -0
- package/apps/web/.next/server/pages/_error.js +19 -0
- package/apps/web/.next/server/pages/_error.js.nft.json +1 -0
- package/apps/web/.next/server/pages-manifest.json +5 -0
- package/apps/web/.next/server/server-reference-manifest.js +1 -0
- package/apps/web/.next/server/server-reference-manifest.json +1 -0
- package/apps/web/.next/server/src/middleware.js +14 -0
- package/apps/web/.next/server/src/middleware.js.map +1 -0
- package/apps/web/.next/server/webpack-runtime.js +1 -0
- package/apps/web/.next/static/chunks/18-90b700ea37b686a2.js +1 -0
- package/apps/web/.next/static/chunks/87c73c54-24122e7b92478d00.js +1 -0
- package/apps/web/.next/static/chunks/9664-af80478aa73ba424.js +1 -0
- package/apps/web/.next/static/chunks/app/_not-found/page-b9cee17ed89ca24a.js +1 -0
- package/apps/web/.next/static/chunks/app/agents/[slug]/page-18369fc3fe1a9a7b.js +1 -0
- package/apps/web/.next/static/chunks/app/agents/new/page-bf11cf8901c7e2cd.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/access/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/claude-md/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/logs/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/manifest/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/mcps/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/memories/[memId]/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/memories/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/permissions/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/reload/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/restrictions/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/skills/[skillId]/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/skills/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/slack-info/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/snapshots/[sid]/restore/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/snapshots/[sid]/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/snapshots/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/start/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/[id]/stop/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/agents/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/auth/login/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/auth/logout/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/auth/me/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/auth/users/[id]/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/auth/users/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/env-vars/[key]/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/env-vars/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/jobs/[id]/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/jobs/[id]/runs/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/jobs/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/mcps/[id]/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/mcps/[id]/test/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/mcps/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/api/settings/route-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/jobs/page-f5aa89a47c50efd8.js +1 -0
- package/apps/web/.next/static/chunks/app/layout-2079f4964aa7314e.js +1 -0
- package/apps/web/.next/static/chunks/app/login/layout-07f0f73ac9839899.js +1 -0
- package/apps/web/.next/static/chunks/app/login/page-aa259283dc38e8f9.js +1 -0
- package/apps/web/.next/static/chunks/app/page-e83437b608104dff.js +1 -0
- package/apps/web/.next/static/chunks/app/settings/env-vars/page-06479dbdfb78b76b.js +1 -0
- package/apps/web/.next/static/chunks/app/settings/mcps/page-75650686ed6490c7.js +1 -0
- package/apps/web/.next/static/chunks/app/settings/page-e1e62fc41ff6cddd.js +1 -0
- package/apps/web/.next/static/chunks/framework-811407f832a33072.js +1 -0
- package/apps/web/.next/static/chunks/main-3f1cddbdd67b1546.js +1 -0
- package/apps/web/.next/static/chunks/main-app-cebd8a6a5ccbf72d.js +1 -0
- package/apps/web/.next/static/chunks/pages/_app-50fa07b56b2d29ac.js +1 -0
- package/apps/web/.next/static/chunks/pages/_error-fed8688bdd23f211.js +1 -0
- package/apps/web/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/apps/web/.next/static/chunks/webpack-6c05566dba553c97.js +1 -0
- package/apps/web/.next/static/css/15371687405525e2.css +5 -0
- package/apps/web/.next/static/ikfNbLhuw7jntn35bz0lk/_buildManifest.js +1 -0
- package/apps/web/.next/static/ikfNbLhuw7jntn35bz0lk/_ssgManifest.js +1 -0
- package/apps/web/.next/trace +5 -0
- package/apps/web/.next/types/app/agents/[slug]/page.ts +84 -0
- package/apps/web/.next/types/app/agents/new/page.ts +84 -0
- package/apps/web/.next/types/app/api/agents/[id]/access/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/claude-md/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/logs/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/manifest/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/mcps/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/memories/[memId]/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/memories/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/permissions/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/reload/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/restrictions/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/skills/[skillId]/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/skills/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/slack-info/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/snapshots/[sid]/restore/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/snapshots/[sid]/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/snapshots/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/start/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/[id]/stop/route.ts +347 -0
- package/apps/web/.next/types/app/api/agents/route.ts +347 -0
- package/apps/web/.next/types/app/api/auth/login/route.ts +347 -0
- package/apps/web/.next/types/app/api/auth/logout/route.ts +347 -0
- package/apps/web/.next/types/app/api/auth/me/route.ts +347 -0
- package/apps/web/.next/types/app/api/auth/users/[id]/route.ts +347 -0
- package/apps/web/.next/types/app/api/auth/users/route.ts +347 -0
- package/apps/web/.next/types/app/api/env-vars/[key]/route.ts +347 -0
- package/apps/web/.next/types/app/api/env-vars/route.ts +347 -0
- package/apps/web/.next/types/app/api/jobs/[id]/route.ts +347 -0
- package/apps/web/.next/types/app/api/jobs/[id]/runs/route.ts +347 -0
- package/apps/web/.next/types/app/api/jobs/route.ts +347 -0
- package/apps/web/.next/types/app/api/mcps/[id]/route.ts +347 -0
- package/apps/web/.next/types/app/api/mcps/[id]/test/route.ts +347 -0
- package/apps/web/.next/types/app/api/mcps/route.ts +347 -0
- package/apps/web/.next/types/app/api/settings/route.ts +347 -0
- package/apps/web/.next/types/app/jobs/page.ts +84 -0
- package/apps/web/.next/types/app/login/layout.ts +84 -0
- package/apps/web/.next/types/app/login/page.ts +84 -0
- package/apps/web/.next/types/app/page.ts +84 -0
- package/apps/web/.next/types/app/settings/env-vars/page.ts +84 -0
- package/apps/web/.next/types/app/settings/mcps/page.ts +84 -0
- package/apps/web/.next/types/app/settings/page.ts +84 -0
- package/apps/web/.next/types/cache-life.d.ts +141 -0
- package/apps/web/.next/types/package.json +1 -0
- package/apps/web/.next/types/routes.d.ts +114 -0
- package/apps/web/.next/types/validator.ts +448 -0
- package/apps/web/Dockerfile +37 -0
- package/apps/web/next-env.d.ts +6 -0
- package/apps/web/next.config.js +6 -0
- package/apps/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/apps/web/package.json +48 -0
- package/apps/web/postcss.config.js +3 -0
- package/apps/web/public/logo.svg +17 -0
- package/apps/web/src/app/agents/[slug]/page.tsx +2235 -0
- package/apps/web/src/app/agents/new/page.tsx +1161 -0
- package/apps/web/src/app/api/agents/[id]/access/route.ts +76 -0
- package/apps/web/src/app/api/agents/[id]/claude-md/route.ts +111 -0
- package/apps/web/src/app/api/agents/[id]/logs/route.ts +84 -0
- package/apps/web/src/app/api/agents/[id]/manifest/route.ts +32 -0
- package/apps/web/src/app/api/agents/[id]/mcps/route.ts +73 -0
- package/apps/web/src/app/api/agents/[id]/memories/[memId]/route.ts +31 -0
- package/apps/web/src/app/api/agents/[id]/memories/route.ts +56 -0
- package/apps/web/src/app/api/agents/[id]/permissions/route.ts +74 -0
- package/apps/web/src/app/api/agents/[id]/reload/route.ts +33 -0
- package/apps/web/src/app/api/agents/[id]/restrictions/route.ts +85 -0
- package/apps/web/src/app/api/agents/[id]/route.ts +81 -0
- package/apps/web/src/app/api/agents/[id]/skills/[skillId]/route.ts +52 -0
- package/apps/web/src/app/api/agents/[id]/skills/route.ts +80 -0
- package/apps/web/src/app/api/agents/[id]/slack-info/route.ts +38 -0
- package/apps/web/src/app/api/agents/[id]/snapshots/[sid]/restore/route.ts +61 -0
- package/apps/web/src/app/api/agents/[id]/snapshots/[sid]/route.ts +53 -0
- package/apps/web/src/app/api/agents/[id]/snapshots/route.ts +84 -0
- package/apps/web/src/app/api/agents/[id]/start/route.ts +35 -0
- package/apps/web/src/app/api/agents/[id]/stop/route.ts +35 -0
- package/apps/web/src/app/api/agents/route.ts +99 -0
- package/apps/web/src/app/api/auth/login/route.ts +39 -0
- package/apps/web/src/app/api/auth/logout/route.ts +21 -0
- package/apps/web/src/app/api/auth/me/route.ts +24 -0
- package/apps/web/src/app/api/auth/users/[id]/route.ts +48 -0
- package/apps/web/src/app/api/auth/users/route.ts +63 -0
- package/apps/web/src/app/api/env-vars/[key]/route.ts +66 -0
- package/apps/web/src/app/api/env-vars/route.ts +59 -0
- package/apps/web/src/app/api/jobs/[id]/route.ts +51 -0
- package/apps/web/src/app/api/jobs/[id]/runs/route.ts +24 -0
- package/apps/web/src/app/api/jobs/route.ts +42 -0
- package/apps/web/src/app/api/mcps/[id]/route.ts +60 -0
- package/apps/web/src/app/api/mcps/[id]/test/route.ts +195 -0
- package/apps/web/src/app/api/mcps/route.ts +72 -0
- package/apps/web/src/app/api/settings/route.ts +42 -0
- package/apps/web/src/app/globals.css +124 -0
- package/apps/web/src/app/icon.svg +17 -0
- package/apps/web/src/app/jobs/page.tsx +543 -0
- package/apps/web/src/app/layout-shell.tsx +89 -0
- package/apps/web/src/app/layout.tsx +18 -0
- package/apps/web/src/app/login/layout.tsx +9 -0
- package/apps/web/src/app/login/page.tsx +150 -0
- package/apps/web/src/app/page.tsx +573 -0
- package/apps/web/src/app/settings/env-vars/page.tsx +216 -0
- package/apps/web/src/app/settings/mcps/page.tsx +763 -0
- package/apps/web/src/app/settings/page.tsx +528 -0
- package/apps/web/src/app/sidebar.tsx +345 -0
- package/apps/web/src/lib/__tests__/api-guard.test.ts +189 -0
- package/apps/web/src/lib/__tests__/auth.test.ts +262 -0
- package/apps/web/src/lib/__tests__/boss-registry.test.ts +323 -0
- package/apps/web/src/lib/__tests__/compile.test.ts +161 -0
- package/apps/web/src/lib/__tests__/db-agent-hierarchy.test.ts +136 -0
- package/apps/web/src/lib/__tests__/db-env-vars.test.ts +216 -0
- package/apps/web/src/lib/__tests__/db-restrictions.test.ts +117 -0
- package/apps/web/src/lib/__tests__/db.integration.test.ts +271 -0
- package/apps/web/src/lib/__tests__/diff.test.ts +102 -0
- package/apps/web/src/lib/__tests__/mcp-mask.test.ts +274 -0
- package/apps/web/src/lib/__tests__/skill-templates.test.ts +237 -0
- package/apps/web/src/lib/__tests__/slack-manifest.test.ts +105 -0
- package/apps/web/src/lib/api-guard.ts +68 -0
- package/apps/web/src/lib/auth-context.tsx +71 -0
- package/apps/web/src/lib/auth.ts +128 -0
- package/apps/web/src/lib/boss-registry.ts +90 -0
- package/apps/web/src/lib/compile.ts +51 -0
- package/apps/web/src/lib/db.ts +1196 -0
- package/apps/web/src/lib/diff.ts +43 -0
- package/apps/web/src/lib/mcp-mask.ts +91 -0
- package/apps/web/src/lib/portal.tsx +23 -0
- package/apps/web/src/lib/skill-templates.ts +148 -0
- package/apps/web/src/lib/slack-manifest.ts +85 -0
- package/apps/web/src/middleware.ts +68 -0
- package/apps/web/tailwind.config.js +6 -0
- package/apps/web/tsconfig.json +23 -0
- package/apps/web/vitest.config.mts +21 -0
- package/cli/.claude/settings.local.json +6 -0
- package/cli/README.md +281 -0
- package/cli/node_modules/.package-lock.json +427 -0
- package/cli/node_modules/commander/LICENSE +22 -0
- package/cli/node_modules/commander/Readme.md +1157 -0
- package/cli/node_modules/commander/esm.mjs +16 -0
- package/cli/node_modules/commander/index.js +24 -0
- package/cli/node_modules/commander/lib/argument.js +149 -0
- package/cli/node_modules/commander/lib/command.js +2509 -0
- package/cli/node_modules/commander/lib/error.js +39 -0
- package/cli/node_modules/commander/lib/help.js +520 -0
- package/cli/node_modules/commander/lib/option.js +330 -0
- package/cli/node_modules/commander/lib/suggestSimilar.js +101 -0
- package/cli/node_modules/commander/package-support.json +16 -0
- package/cli/node_modules/commander/package.json +84 -0
- package/cli/node_modules/commander/typings/esm.d.mts +3 -0
- package/cli/node_modules/commander/typings/index.d.ts +969 -0
- package/cli/package-lock.json +449 -0
- package/cli/package.json +44 -0
- package/cli/src/commands/init.ts +514 -0
- package/cli/src/commands/manage.ts +115 -0
- package/cli/src/index.ts +63 -0
- package/cli/tsconfig.json +14 -0
- package/docker-compose.yml +122 -0
- package/docs/agents/boss-agents.mdx +108 -0
- package/docs/agents/creating-agents.mdx +132 -0
- package/docs/agents/memory.mdx +113 -0
- package/docs/agents/tools.mdx +103 -0
- package/docs/configuration/env-vars.mdx +166 -0
- package/docs/configuration/mcp-servers.mdx +203 -0
- package/docs/configuration/slack-app.mdx +175 -0
- package/docs/docs.json +79 -0
- package/docs/favicon.svg +17 -0
- package/docs/features/history.mdx +60 -0
- package/docs/features/import-export.mdx +77 -0
- package/docs/features/logs.mdx +131 -0
- package/docs/features/multi-workspace.mdx +90 -0
- package/docs/features/scheduled-jobs.mdx +231 -0
- package/docs/features/users.mdx +92 -0
- package/docs/introduction.mdx +160 -0
- package/docs/logo/dark.svg +17 -0
- package/docs/logo/light.svg +17 -0
- package/docs/logo/wide-dark.svg +12 -0
- package/docs/logo/wide-light.svg +12 -0
- package/docs/quickstart.mdx +270 -0
- package/docs/self-hosting/docker.mdx +151 -0
- package/docs/self-hosting/production.mdx +176 -0
- package/package.json +20 -36
- package/packages/shared/dist/index.d.ts +8 -0
- package/packages/shared/dist/index.d.ts.map +1 -0
- package/packages/shared/dist/index.js +24 -0
- package/packages/shared/dist/index.js.map +1 -0
- package/packages/shared/dist/types.d.ts +584 -0
- package/packages/shared/dist/types.d.ts.map +1 -0
- package/packages/shared/dist/types.js +39 -0
- package/packages/shared/dist/types.js.map +1 -0
- package/packages/shared/package.json +15 -0
- package/packages/shared/src/db/schema.sql +354 -0
- package/packages/shared/src/index.ts +8 -0
- package/packages/shared/src/types.ts +683 -0
- package/packages/shared/tsconfig.json +17 -0
- package/scripts/dev.sh +45 -0
- /package/{dist → cli/dist}/commands/init.d.ts +0 -0
- /package/{dist → cli/dist}/commands/init.js +0 -0
- /package/{dist → cli/dist}/commands/manage.d.ts +0 -0
- /package/{dist → cli/dist}/commands/manage.js +0 -0
- /package/{dist → cli/dist}/index.d.ts +0 -0
- /package/{dist → cli/dist}/index.js +0 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(()=>{var a={};a.id=1555,a.ids=[1555],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")},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")},32288:(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:["agents",{children:["[slug]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,94256)),"/home/admin/aman/slackhive/apps/web/src/app/agents/[slug]/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/agents/[slug]/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/agents/[slug]/page",pathname:"/agents/[slug]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/agents/[slug]/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}}},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")},45421:(a,b,c)=>{Promise.resolve().then(c.bind(c,59670))},59670:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>t});var d=c(78157),e=c(31768),f=c(81744);let g=(0,f.A)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]),h=(0,f.A)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]),i=(0,f.A)("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]),j=(0,f.A)("Camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]),k=(0,f.A)("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);var l=c(94496),m=c.n(l),n=c(71159),o=c(90784),p=c(98314);function q(a,b){let c=a.split("\n"),d=b.split("\n"),e=c.length,f=d.length,g=Array.from({length:e+1},()=>Array(f+1).fill(0));for(let a=1;a<=e;a++)for(let b=1;b<=f;b++)g[a][b]=c[a-1]===d[b-1]?g[a-1][b-1]+1:Math.max(g[a-1][b],g[a][b-1]);let h=[],i=e,j=f;for(;i>0||j>0;)i>0&&j>0&&c[i-1]===d[j-1]?(h.unshift({type:"same",line:c[i-1]}),i--,j--):j>0&&(0===i||g[i][j-1]>=g[i-1][j])?(h.unshift({type:"add",line:d[j-1]}),j--):(h.unshift({type:"remove",line:c[i-1]}),i--);return h}let r=[{id:"overview",label:"Overview"},{id:"skills",label:"Skills"},{id:"claude-md",label:"System Prompt"},{id:"mcps",label:"MCPs"},{id:"permissions",label:"Tools"},{id:"memory",label:"Memory"},{id:"logs",label:"Logs"},{id:"history",label:"History"}],s={running:"#16a34a",stopped:"var(--border-2)",error:"#ef4444"};function t({params:a}){let{slug:b}=(0,e.use)(a),{role:c,canManageUsers:f}=(0,p.A)(),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)([]),[n,q]=(0,e.useState)(!1),[t,y]=(0,e.useState)("overview"),[A,C]=(0,e.useState)(!0),[D,F]=(0,e.useState)(""),[G,H]=(0,e.useState)(!1),[I,O]=(0,e.useState)(null),[R,S]=(0,e.useState)(!1),[T,U]=(0,e.useState)(""),V=(0,e.useRef)(null),X=async a=>{if(!i)return;F("start"===a?"Starting…":"stop"===a?"Stopping…":"Reloading…"),await fetch(`/api/agents/${i.id}/${a}`,{method:"POST"});let b=await fetch(`/api/agents/${i.id}`);j(await b.json()),F("Done"),setTimeout(()=>F(""),2e3)},Y=async()=>{if(i){H(!0);try{let[a,b]=await Promise.all([fetch(`/api/agents/${i.id}/skills`),fetch(`/api/agents/${i.id}/claude-md`)]),c=await a.json(),d=await b.text(),e={version:1,exportedAt:new Date().toISOString(),claudeMd:d,skills:c.map(a=>({category:a.category,filename:a.filename,content:a.content,sortOrder:a.sortOrder}))},f=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),g=URL.createObjectURL(f),h=document.createElement("a");h.href=g,h.download=`${i.slug}-export.json`,h.click(),URL.revokeObjectURL(g)}finally{H(!1)}}},Z=async()=>{if(i&&I){S(!0);try{await fetch(`/api/agents/${i.id}/claude-md`,{method:"PUT",headers:{"Content-Type":"text/plain"},body:I.claudeMd}),await Promise.all(I.skills.map(a=>fetch(`/api/agents/${i.id}/skills?noSnapshot=1`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})));let a=await fetch(`/api/agents/${i.id}`).then(a=>a.json());j(a),O(null)}finally{S(!1)}}};if(A)return(0,d.jsx)(P,{});if(!i)return(0,d.jsx)(Q,{slug:b});let $=s[i.status]??"var(--border-2)";return(0,d.jsxs)("div",{style:{minHeight:"100vh"},className:"fade-up",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"28px 40px 0",borderBottom:"1px solid var(--border)",paddingBottom:0,flexWrap:"wrap",gap:12},children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:10,fontSize:12,color:"var(--muted)"},children:[(0,d.jsx)(m(),{href:"/",style:{color:"var(--muted)",textDecoration:"none"},children:"Agents"}),(0,d.jsx)("span",{style:{color:"var(--subtle)"},children:"/"}),(0,d.jsx)("span",{style:{color:"var(--text)"},children:i.name})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:16},children:[(0,d.jsx)("div",{style:{width:36,height:36,borderRadius:10,flexShrink:0,background:i.isBoss?"linear-gradient(135deg, #f59e0b 0%, #d97706 100%)":"linear-gradient(135deg, #3b82f6 0%, #6366f1 100%)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:14,fontWeight:700,color:"#fff"},children:i.name.charAt(0)}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,d.jsx)("h1",{style:{margin:0,fontSize:18,fontWeight:600,letterSpacing:"-0.02em",color:"var(--text)"},children:i.name}),i.isBoss&&(0,d.jsx)("span",{style:{fontSize:10,fontWeight:600,letterSpacing:"0.06em",background:"rgba(245,158,11,0.15)",color:"#f59e0b",padding:"2px 7px",borderRadius:5,border:"1px solid rgba(245,158,11,0.25)",textTransform:"uppercase"},children:"Boss"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,d.jsx)("div",{className:"running"===i.status?"status-running":"",style:{width:7,height:7,borderRadius:"50%",background:$}}),(0,d.jsx)("span",{style:{fontSize:12,color:$,fontWeight:500,textTransform:"capitalize"},children:i.status})]})]}),(0,d.jsxs)("div",{style:{fontFamily:"var(--font-mono)",fontSize:11.5,color:"var(--muted)",marginTop:1},children:["@",i.slug," \xb7 ",i.model.replace("claude-","").split("-20")[0]]})]})]})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,paddingBottom:16},children:[D&&(0,d.jsx)("span",{style:{fontSize:12,color:"var(--muted)"},children:D}),T&&(0,d.jsx)("span",{style:{fontSize:12,color:"var(--danger)"},children:T}),(0,d.jsx)(M,{title:"Export config",onClick:Y,loading:G,children:(0,d.jsx)(g,{size:15})}),n&&(0,d.jsx)(M,{title:"Import config",onClick:()=>V.current?.click(),children:(0,d.jsx)(h,{size:15})}),(0,d.jsx)("input",{ref:V,type:"file",accept:".json",style:{display:"none"},onChange:a=>{let b=a.target.files?.[0];if(!b)return;a.target.value="",U("");let c=new FileReader;c.onload=a=>{try{let b=JSON.parse(a.target?.result);if("string"!=typeof b.claudeMd||!Array.isArray(b.skills))return void U("Invalid export file");O(b)}catch{U("Could not parse file")}},c.readAsText(b)}}),(0,d.jsx)("div",{style:{width:1,height:20,background:"var(--border)",margin:"0 2px"}}),n&&"running"!==i.status&&(0,d.jsx)(N,{color:"#22c55e",onClick:()=>X("start"),children:"Start"}),n&&"running"===i.status&&(0,d.jsx)(N,{color:"var(--border-2)",textColor:"var(--muted)",onClick:()=>X("reload"),children:"Reload"}),n&&"running"===i.status&&(0,d.jsx)(N,{color:"#ef4444",onClick:()=>X("stop"),children:"Stop"})]})]}),I&&(0,d.jsx)(o.Z,{children:(0,d.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.45)",backdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>O(null),children:(0,d.jsxs)("div",{style:{background:"#fff",borderRadius:14,padding:"28px 32px",maxWidth:480,width:"90%",boxShadow:"0 20px 60px rgba(0,0,0,0.15)"},onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("h3",{style:{margin:"0 0 16px",fontSize:16,fontWeight:700,color:"var(--text)",letterSpacing:"-0.02em"},children:"Import agent config"}),(0,d.jsxs)("div",{style:{display:"flex",gap:10,padding:"12px 14px",marginBottom:16,background:"#fff1f2",border:"1.5px solid #fecdd3",borderRadius:8},children:[(0,d.jsx)("span",{style:{fontSize:16,flexShrink:0},children:"⚠️"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"#be123c",marginBottom:2},children:"This will overwrite current CLAUDE.md and skills"}),(0,d.jsx)("div",{style:{fontSize:12,color:"#9f1239"},children:"Existing CLAUDE.md will be replaced. Skills with matching category/filename will be overwritten. A snapshot is saved automatically before applying."})]})]}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:20},children:[I.exportedAt&&(0,d.jsx)(L,{label:"Exported at",value:new Date(I.exportedAt).toLocaleString()}),(0,d.jsx)(L,{label:"Skills",value:`${I.skills.length} skill${1!==I.skills.length?"s":""} will be upserted`})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:10},children:[(0,d.jsx)(J,{onClick:Z,loading:R,children:"Apply Import"}),(0,d.jsx)(K,{onClick:()=>O(null),children:"Cancel"})]})]})})}),(0,d.jsx)("div",{style:{display:"flex",gap:0,padding:"0 36px",borderBottom:"1px solid var(--border)",background:"var(--surface)",overflowX:"auto",WebkitOverflowScrolling:"touch"},children:r.map(a=>(0,d.jsx)("button",{onClick:()=>y(a.id),className:t===a.id?"tab-active":"",style:{background:"none",border:"none",cursor:"pointer",padding:"10px 14px",fontSize:13,color:t===a.id?"var(--text)":"var(--muted)",fontWeight:t===a.id?500:400,transition:"color 0.15s",fontFamily:"var(--font-sans)"},children:a.label},a.id))}),(0,d.jsxs)("div",{style:{padding:"28px 36px"},children:["overview"===t&&(0,d.jsx)(u,{agent:i,onUpdate:j,canEdit:n,allAgents:k,role:c}),"skills"===t&&(0,d.jsx)(w,{agentId:i.id,canEdit:n}),"claude-md"===t&&(0,d.jsx)(v,{agentId:i.id,canEdit:n}),"mcps"===t&&(0,d.jsx)(x,{agentId:i.id,canEdit:n}),"permissions"===t&&(0,d.jsx)(z,{agentId:i.id,canEdit:n}),"memory"===t&&(0,d.jsx)(B,{agentId:i.id,canEdit:n}),"logs"===t&&(0,d.jsx)(E,{agentId:i.id,slug:i.slug}),"history"===t&&(0,d.jsx)(W,{agentId:i.id,canEdit:n})]})]})}function u({agent:a,onUpdate:b,canEdit:c,allAgents:f,role:g}){let[h,i]=(0,e.useState)({name:a.name,description:a.description??"",persona:a.persona??"",model:a.model,slackBotToken:a.slackBotToken,slackAppToken:a.slackAppToken,slackSigningSecret:a.slackSigningSecret,isBoss:a.isBoss,reportsTo:a.reportsTo??[]}),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(""),[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),w=(0,n.useRouter)(),[x,y]=(0,e.useState)(""),z=async()=>{k(!0);try{let[c]=await Promise.all([fetch(`/api/agents/${a.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)}),fetch(`/api/agents/${a.id}/restrictions`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({allowedChannels:x.split("\n").map(a=>a.trim()).filter(Boolean)})})]),d=await c.json();c.ok?(b(d),m("Saved")):m(d.error??"Error")}finally{k(!1),setTimeout(()=>m(""),3e3)}},A=async()=>{let b=await fetch(`/api/agents/${a.id}/manifest`);p(JSON.stringify(await b.json(),null,2)),r(!0)},B=async()=>{if(!confirm(`Permanently delete agent "${a.name}"? This cannot be undone.`))return;t(!0);let b=await fetch(`/api/agents/${a.id}`,{method:"DELETE"});b.ok?w.push("/"):(m((await b.json()).error??"Delete failed"),t(!1))};return(0,d.jsxs)("div",{style:{maxWidth:640},className:"fade-up",children:[(0,d.jsxs)(F,{title:"Identity",children:[(0,d.jsxs)(G,{children:[(0,d.jsx)(H,{label:"Name",value:h.name,onChange:a=>i(b=>({...b,name:a})),readOnly:!c,hint:"This is the internal agent name. To update the Slack bot display name, change it in your Slack App settings → App Home."}),(0,d.jsx)(H,{label:"Model",value:h.model,onChange:a=>i(b=>({...b,model:a})),hint:"claude-opus-4-6 \xb7 claude-sonnet-4-6 \xb7 claude-haiku-4-5-20251001",readOnly:!c})]}),(0,d.jsx)(H,{label:"Description",value:h.description,onChange:a=>i(b=>({...b,description:a})),hint:"Shown to the boss agent for delegation decisions.",readOnly:!c}),(0,d.jsx)(I,{label:"Persona",value:h.persona,onChange:a=>i(b=>({...b,persona:a})),hint:"Injected into CLAUDE.md — who is this agent?",rows:4,readOnly:!c})]}),(0,d.jsxs)(F,{title:"Role & Hierarchy",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:500,color:"var(--text)",marginBottom:2},children:"Boss Agent"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--muted)"},children:"Boss agents orchestrate other agents and delegate tasks"})]}),(0,d.jsx)("button",{disabled:!c,onClick:()=>i(a=>({...a,isBoss:!a.isBoss})),style:{width:44,height:24,borderRadius:12,border:"none",background:h.isBoss?"#d97706":"var(--border-2)",cursor:c?"pointer":"default",position:"relative",transition:"background 0.2s",flexShrink:0},children:(0,d.jsx)("div",{style:{position:"absolute",top:3,left:h.isBoss?23:3,width:18,height:18,borderRadius:"50%",background:"#fff",transition:"left 0.2s",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}})})]}),!h.isBoss&&(()=>{let b=f.filter(b=>b.isBoss&&b.id!==a.id);return 0===b.length?(0,d.jsx)("div",{style:{fontSize:12,color:"var(--subtle)",fontStyle:"italic"},children:"No boss agents available. Create a boss agent first."}):(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:500,color:"var(--text)",marginBottom:6},children:"Reports To"}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:b.map(a=>{let b=h.reportsTo.includes(a.id);return(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",borderRadius:8,border:`1px solid ${b?"rgba(217,119,6,0.3)":"var(--border)"}`,background:b?"rgba(217,119,6,0.04)":"var(--surface)",cursor:c?"pointer":"default",transition:"all 0.15s"},children:[(0,d.jsx)("input",{type:"checkbox",checked:b,disabled:!c,onChange:()=>i(c=>({...c,reportsTo:b?c.reportsTo.filter(b=>b!==a.id):[...c.reportsTo,a.id]})),style:{accentColor:"#d97706",width:14,height:14}}),(0,d.jsx)("div",{style:{width:24,height:24,borderRadius:6,background:"#171717",display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:600,color:"#fff",flexShrink:0},children:a.name.charAt(0).toUpperCase()}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:500,color:"var(--text)"},children:a.name}),(0,d.jsxs)("div",{style:{fontSize:11,color:"var(--muted)",fontFamily:"var(--font-mono)"},children:["@",a.slug]})]}),b&&(0,d.jsx)("span",{style:{marginLeft:"auto",fontSize:10,fontWeight:600,color:"#d97706",letterSpacing:"0.04em",textTransform:"uppercase"},children:"Reports to"})]},a.id)})}),(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--subtle)",marginTop:8},children:"An agent can report to multiple bosses."})]})})()]}),(0,d.jsxs)(F,{title:"Slack Credentials",children:[(0,d.jsx)(H,{label:"Bot Token",value:h.slackBotToken,onChange:a=>i(b=>({...b,slackBotToken:a})),type:"password",readOnly:!c,hint:(0,d.jsxs)(d.Fragment,{children:["api.slack.com/apps → your app → ",(0,d.jsx)("strong",{children:"OAuth & Permissions"})," → Bot User OAuth Token"]})}),(0,d.jsx)(H,{label:"App-Level Token",value:h.slackAppToken,onChange:a=>i(b=>({...b,slackAppToken:a})),type:"password",readOnly:!c,hint:(0,d.jsxs)(d.Fragment,{children:["Basic Information → ",(0,d.jsx)("strong",{children:"App-Level Tokens"})," → Generate with scope ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:"connections:write"})]})}),(0,d.jsx)(H,{label:"Signing Secret",value:h.slackSigningSecret,onChange:a=>i(b=>({...b,slackSigningSecret:a})),type:"password",readOnly:!c,hint:"Basic Information → App Credentials → Signing Secret"}),u&&(0,d.jsxs)("div",{style:{background:"#f0fdf4",border:"1px solid #bbf7d0",borderRadius:7,padding:"10px 14px",fontSize:12},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:8},children:[(0,d.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",background:"#16a34a",flexShrink:0}}),(0,d.jsx)("span",{style:{color:"#15803d",fontWeight:600},children:"Connected to Slack"}),(0,d.jsx)("span",{style:{color:"#86efac",marginLeft:"auto",fontSize:11},children:u.teamName})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"max-content 1fr",gap:"4px 16px"},children:[(0,d.jsx)("span",{style:{color:"#6b7280"},children:"Display name"}),(0,d.jsx)("span",{style:{color:"#166534",fontWeight:500},children:u.displayName}),(0,d.jsx)("span",{style:{color:"#6b7280"},children:"@handle"}),(0,d.jsxs)("span",{style:{color:"#166534",fontFamily:"var(--font-mono)"},children:["@",u.handle]}),a.slackBotUserId&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{style:{color:"#6b7280"},children:"Bot User ID"}),(0,d.jsx)("span",{style:{color:"#166534",fontFamily:"var(--font-mono)"},children:a.slackBotUserId})]})]})]}),!u&&a.slackBotUserId&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,background:"#f0fdf4",border:"1px solid #bbf7d0",borderRadius:7,padding:"8px 12px",fontSize:12},children:[(0,d.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",background:"#16a34a",flexShrink:0}}),(0,d.jsx)("span",{style:{color:"#15803d"},children:"Connected \xb7"}),(0,d.jsxs)("span",{style:{color:"#166534",fontFamily:"var(--font-mono)"},children:["Bot User ID: ",a.slackBotUserId]})]})]}),(0,d.jsxs)(F,{title:"Allowed Channels",children:[(0,d.jsxs)("p",{style:{margin:"0 0 10px",fontSize:12.5,color:"var(--muted)",lineHeight:1.6},children:["Restrict this bot to specific Slack channels. Enter one Slack channel ID per line (e.g. ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:"C01234ABCDE"}),"). If empty, the bot responds in all channels it's invited to. When invited to a non-allowed channel, it will post a notice and leave automatically. Bot-initiated messages from scheduled jobs are not affected."]}),(0,d.jsx)("textarea",{value:x,onChange:a=>y(a.target.value),rows:4,readOnly:!c,placeholder:"C01234ABCDE\nC09876ZYXWV",style:{width:"100%",background:"var(--surface)",border:"1px solid var(--border)",borderRadius:8,padding:"10px 12px",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.7,outline:"none",resize:"vertical",boxSizing:"border-box"},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,alignItems:"center",flexWrap:"wrap"},children:[c&&(0,d.jsx)(J,{onClick:z,loading:j,children:"Save Changes"}),(0,d.jsx)(K,{onClick:A,children:"View Slack Manifest"}),l&&(0,d.jsx)("span",{style:{fontSize:12,color:"#16a34a"},children:l})]}),q&&(0,d.jsxs)("div",{style:{marginTop:20,background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"10px 16px",borderBottom:"1px solid var(--border)",background:"var(--surface-2)"},children:[(0,d.jsx)("span",{style:{fontSize:11.5,color:"var(--muted)",fontFamily:"var(--font-mono)"},children:"slack-manifest.json"}),(0,d.jsx)("button",{onClick:()=>navigator.clipboard.writeText(o),style:{fontSize:11.5,color:"var(--accent)",background:"none",border:"none",cursor:"pointer",fontFamily:"var(--font-sans)"},children:"Copy"})]}),(0,d.jsx)("pre",{style:{margin:0,padding:"16px",fontSize:11.5,color:"var(--accent)",fontFamily:"var(--font-mono)",overflow:"auto",maxHeight:320},children:o})]}),("admin"===g||"superadmin"===g)&&(0,d.jsxs)("div",{style:{marginTop:40,borderTop:"1px solid #fecaca",paddingTop:28},children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"#dc2626",letterSpacing:"0.08em",textTransform:"uppercase",marginBottom:16},children:"Danger Zone"}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",background:"#fff8f8",border:"1px solid #fecaca",borderRadius:8,padding:"14px 18px"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:500,color:"var(--text)",marginBottom:3},children:"Delete this agent"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--muted)"},children:"Permanently removes the agent, all its skills, memories, and history. This cannot be undone."})]}),(0,d.jsx)("button",{onClick:B,disabled:s,style:{flexShrink:0,marginLeft:24,padding:"8px 18px",borderRadius:7,border:"1px solid #dc2626",background:s?"#fef2f2":"#fff",color:"#dc2626",fontSize:13,fontWeight:600,cursor:s?"not-allowed":"pointer",fontFamily:"var(--font-sans)",whiteSpace:"nowrap"},children:s?"Deleting…":"Delete Agent"})]})]})]})}function v({agentId:a,canEdit:b}){let[c,f]=(0,e.useState)(""),[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(!0),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(""),q=async()=>{n(!0);try{let b=await fetch(`/api/agents/${a}/claude-md`,{method:"PUT",headers:{"Content-Type":"text/plain"},body:g});if(!b.ok)throw Error(await b.text());f(g),j(!1),p("Saved — agent will use this on next reload."),setTimeout(()=>p(""),4e3)}catch(a){p(`Error: ${a.message}`)}finally{n(!1)}};return k?(0,d.jsx)("p",{style:{color:"var(--muted)",fontSize:14},children:"Loading..."}):(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{style:{margin:0,fontSize:15,fontWeight:600},children:"CLAUDE.md"}),(0,d.jsx)("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--muted)"},children:i?"Editing raw system prompt — this overrides all individual skills.":"Compiled system prompt sent to Claude."})]}),(0,d.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[!i&&(0,d.jsxs)("span",{style:{fontSize:12,color:"var(--muted)",background:"var(--surface-2)",padding:"4px 10px",borderRadius:6,border:"1px solid var(--border)"},children:[(c.length/1024).toFixed(1)," KB \xb7 ",c.split("\n").length," lines"]}),i?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>{j(!1),h(c)},style:{padding:"6px 14px",borderRadius:7,border:"1px solid var(--border)",background:"var(--surface)",color:"var(--text)",fontSize:13,cursor:"pointer"},children:"Cancel"}),(0,d.jsx)("button",{onClick:q,disabled:m,style:{padding:"6px 16px",borderRadius:7,border:"none",background:"var(--accent)",color:"#fff",fontSize:13,fontWeight:600,cursor:"pointer",opacity:m?.7:1},children:m?"Saving…":"Save"})]}):b&&(0,d.jsx)("button",{onClick:()=>j(!0),style:{padding:"6px 16px",borderRadius:7,border:"1px solid var(--border)",background:"var(--surface)",color:"var(--text)",fontSize:13,cursor:"pointer"},children:"Edit"})]})]}),o&&(0,d.jsx)("p",{style:{fontSize:13,color:o.startsWith("Error")?"var(--danger)":"var(--success)",marginBottom:12},children:o}),i?(0,d.jsx)("textarea",{value:g,onChange:a=>h(a.target.value),style:{width:"100%",height:"70vh",background:"var(--surface)",border:"1px solid var(--accent)",borderRadius:10,padding:"20px 24px",fontSize:12.5,lineHeight:1.7,color:"var(--text)",fontFamily:"var(--font-mono)",resize:"vertical",outline:"none",boxSizing:"border-box"}}):(0,d.jsx)("pre",{style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:10,padding:"20px 24px",fontSize:12.5,lineHeight:1.7,overflowX:"auto",overflowY:"auto",maxHeight:"70vh",margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text)",fontFamily:"var(--font-mono)"},children:c})]})}function w({agentId:a,canEdit:b}){let[c,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(""),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)({category:"",filename:"",content:""}),s=()=>fetch(`/api/agents/${a}/skills`).then(a=>a.json()).then(f),t=async()=>{g&&(l(!0),await fetch(`/api/agents/${a}/skills`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:g.category,filename:g.filename,content:i,sortOrder:g.sortOrder})}),l(!1),n("Saved"),setTimeout(()=>n(""),2e3),s())},u=async b=>{confirm(`Delete ${b.category}/${b.filename}?`)&&(await fetch(`/api/agents/${a}/skills/${b.id}`,{method:"DELETE"}),g?.id===b.id&&(h(null),j("")),s())},v=async()=>{q.category&&q.filename&&(await fetch(`/api/agents/${a}/skills`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(q)}),p(!1),r({category:"",filename:"",content:""}),s())},w=c.reduce((a,b)=>((a[b.category]??=[]).push(b),a),{});return(0,d.jsxs)("div",{className:"fade-up",style:{display:"flex",gap:14,height:580},children:[(0,d.jsxs)("div",{style:{width:220,flexShrink:0,background:"var(--surface)",border:"1px solid var(--border)",borderRadius:10,overflow:"auto",display:"flex",flexDirection:"column"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--muted)",letterSpacing:"0.06em",textTransform:"uppercase"},children:"Files"}),b&&(0,d.jsx)("button",{onClick:()=>p(!0),style:{background:"none",border:"none",cursor:"pointer",fontSize:12,color:"var(--accent)",fontFamily:"var(--font-sans)"},children:"+ New"})]}),(0,d.jsx)("div",{style:{padding:"6px 6px",flex:1,overflow:"auto"},children:Object.entries(w).sort(([a],[b])=>a.localeCompare(b)).map(([a,c])=>(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{fontSize:10.5,color:"var(--subtle)",padding:"6px 6px 2px",fontFamily:"var(--font-mono)",letterSpacing:"0.02em"},children:[a,"/"]}),c.map(a=>(0,d.jsxs)("div",{onClick:()=>{h(a),j(a.content)},className:"skill-row",style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"5px 8px",borderRadius:6,cursor:"pointer",fontSize:12,fontFamily:"var(--font-mono)",background:g?.id===a.id?"rgba(59,130,246,0.12)":"transparent",color:g?.id===a.id?"var(--accent)":"var(--muted)",transition:"background 0.12s, color 0.12s"},onMouseEnter:b=>{g?.id!==a.id&&(b.currentTarget.style.background="rgba(255,255,255,0.04)");let c=b.currentTarget.querySelector(".delete-btn");c&&(c.style.opacity="1")},onMouseLeave:b=>{g?.id!==a.id&&(b.currentTarget.style.background="transparent");let c=b.currentTarget.querySelector(".delete-btn");c&&(c.style.opacity="0")},children:[(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.filename}),b&&(0,d.jsx)("button",{onClick:b=>{b.stopPropagation(),u(a)},className:"delete-btn",style:{background:"none",border:"none",cursor:"pointer",color:"#ef4444",fontSize:14,opacity:0,transition:"opacity 0.12s",fontFamily:"var(--font-sans)",lineHeight:1,padding:"0 2px",flexShrink:0},children:"\xd7"})]},a.id))]},a))})]}),(0,d.jsx)("div",{style:{flex:1,background:"var(--surface)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",overflow:"hidden"},children:g?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",borderBottom:"1px solid var(--border)",background:"var(--surface-2)"},children:[(0,d.jsxs)("span",{style:{fontSize:12,color:"var(--muted)",fontFamily:"var(--font-mono)"},children:[g.category,"/",g.filename]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[m&&(0,d.jsx)("span",{style:{fontSize:11.5,color:"#16a34a"},children:m}),b&&(0,d.jsx)("button",{onClick:t,disabled:k,style:{background:k?"var(--border)":"var(--accent)",color:"#fff",border:"none",borderRadius:6,padding:"5px 14px",fontSize:12,fontWeight:500,cursor:k?"not-allowed":"pointer",fontFamily:"var(--font-sans)"},children:k?"Saving…":"Save"})]})]}),(0,d.jsx)("textarea",{value:i,onChange:a=>j(a.target.value),readOnly:!b,style:{flex:1,border:"none",outline:"none",resize:"none",background:"transparent",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:12.5,lineHeight:1.65,padding:"16px",caretColor:"var(--accent)"},spellCheck:!1})]}):(0,d.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--subtle)",fontSize:13},children:"Select a file to edit"})}),o&&(0,d.jsxs)(O,{title:"New Skill File",onClose:()=>p(!1),children:[(0,d.jsx)(H,{label:"Category",value:q.category,onChange:a=>r(b=>({...b,category:a})),hint:"e.g. 00-core"}),(0,d.jsx)(H,{label:"Filename",value:q.filename,onChange:a=>r(b=>({...b,filename:a})),hint:"e.g. identity.md"}),(0,d.jsx)(I,{label:"Content (optional)",value:q.content,onChange:a=>r(b=>({...b,content:a})),rows:4}),(0,d.jsxs)("div",{style:{display:"flex",gap:8,marginTop:4},children:[(0,d.jsx)(J,{onClick:v,children:"Create"}),(0,d.jsx)(K,{onClick:()=>p(!1),children:"Cancel"})]})]})]})}function x({agentId:a,canEdit:b}){let[c,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(new Set),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),n=async()=>{j(!0),await fetch(`/api/agents/${a}/mcps`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpIds:[...g]})}),j(!1),l("Saved & reload triggered"),setTimeout(()=>l(""),3e3)};return(0,d.jsxs)("div",{style:{maxWidth:560},className:"fade-up",children:[(0,d.jsx)("p",{style:{margin:"0 0 16px",fontSize:13,color:"var(--muted)"},children:"Select MCP servers from the platform catalog to enable for this agent."}),(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:10,overflow:"hidden",marginBottom:16},children:0===c.length?(0,d.jsxs)("div",{style:{padding:"24px",textAlign:"center",color:"var(--muted)",fontSize:13},children:["No MCP servers yet."," ",(0,d.jsx)(m(),{href:"/settings/mcps",style:{color:"var(--accent)",textDecoration:"none"},children:"Add some →"})]}):c.map((a,e)=>(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:12,padding:"13px 16px",cursor:a.enabled?"pointer":"not-allowed",borderBottom:e<c.length-1?"1px solid var(--border)":"none",background:"transparent",transition:"background 0.12s",opacity:a.enabled?1:.45},onMouseEnter:b=>{a.enabled&&(b.currentTarget.style.background="rgba(255,255,255,0.03)")},onMouseLeave:a=>{a.currentTarget.style.background="transparent"},children:[(0,d.jsx)("input",{type:"checkbox",checked:g.has(a.id),onChange:()=>{let b;return b=a.id,h(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},disabled:!a.enabled||!b,style:{accentColor:"var(--accent)",width:14,height:14,flexShrink:0}}),(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,fontWeight:500,color:"var(--text)"},children:a.name}),(0,d.jsx)("span",{style:{fontSize:10.5,fontFamily:"var(--font-mono)",color:"var(--muted)",background:"var(--border)",padding:"1px 6px",borderRadius:4},children:a.type}),!a.enabled&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--subtle)"},children:"disabled"})]}),a.description&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--muted)",marginTop:1},children:a.description})]})]},a.id))}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[b&&(0,d.jsx)(J,{onClick:n,loading:i,children:"Save Assignments"}),k&&(0,d.jsx)("span",{style:{fontSize:12,color:"#16a34a"},children:k})]})]})}let y=["Read","Write","Edit","Bash","Glob","Grep","WebFetch","WebSearch"];function z({agentId:a,canEdit:b}){let[c,f]=(0,e.useState)(""),[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),m=async()=>{j(!0),await fetch(`/api/agents/${a}/permissions`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({allowedTools:c.split("\n").map(a=>a.trim()).filter(Boolean),deniedTools:g.split("\n").map(a=>a.trim()).filter(Boolean)})}),j(!1),l("Saved & reload triggered"),setTimeout(()=>l(""),3e3)};return(0,d.jsxs)("div",{style:{maxWidth:660},className:"fade-up",children:[(0,d.jsxs)("div",{style:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:10,padding:"12px 16px",marginBottom:18},children:[(0,d.jsx)("div",{style:{fontSize:11,color:"var(--muted)",marginBottom:8,fontWeight:500,letterSpacing:"0.04em",textTransform:"uppercase"},children:"Quick add built-in tools"}),(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:y.map(a=>(0,d.jsx)("button",{onClick:()=>((a,b)=>{let d=("allowed"===b?c:g).split("\n").map(a=>a.trim()).filter(Boolean);d.includes(a)||("allowed"===b?f:h)([...d,a].join("\n"))})(a,"allowed"),disabled:!b,style:{background:"var(--border)",border:"1px solid var(--border-2)",color:"var(--text)",padding:"3px 10px",borderRadius:5,fontSize:11.5,fontFamily:"var(--font-mono)",cursor:"pointer",transition:"background 0.12s, border-color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--border-2)",a.currentTarget.style.borderColor="var(--accent)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--border)",a.currentTarget.style.borderColor="var(--border-2)"},children:a},a))}),(0,d.jsxs)("p",{style:{margin:"8px 0 0",fontSize:11,color:"var(--subtle)"},children:["MCP tools pattern: ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",color:"var(--muted)"},children:"mcp__serverName__toolName"})]})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:14,marginBottom:16},children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:6},children:["Allowed Tools ",(0,d.jsx)("span",{style:{color:"var(--subtle)",fontWeight:400},children:"\xb7 one per line"})]}),(0,d.jsx)("textarea",{value:c,onChange:a=>f(a.target.value),rows:12,readOnly:!b,style:{width:"100%",background:"var(--surface)",border:"1px solid var(--border)",borderRadius:8,padding:"10px 12px",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.7,outline:"none",resize:"vertical"},onFocus:a=>a.currentTarget.style.borderColor="var(--accent)",onBlur:a=>a.currentTarget.style.borderColor="var(--border)",placeholder:"Read\nWrite\nmcp__redshift-mcp__query"})]}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:6},children:["Denied Tools ",(0,d.jsx)("span",{style:{color:"var(--subtle)",fontWeight:400},children:"\xb7 overrides allowed"})]}),(0,d.jsx)("textarea",{value:g,onChange:a=>h(a.target.value),rows:12,readOnly:!b,style:{width:"100%",background:"var(--surface)",border:"1px solid var(--border)",borderRadius:8,padding:"10px 12px",color:"var(--danger)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.7,outline:"none",resize:"vertical"},onFocus:a=>a.currentTarget.style.borderColor="#ef4444",onBlur:a=>a.currentTarget.style.borderColor="var(--border)",placeholder:"Bash"})]})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[b&&(0,d.jsx)(J,{onClick:m,loading:i,children:"Save Permissions"}),k&&(0,d.jsx)("span",{style:{fontSize:12,color:"#16a34a"},children:k})]})]})}let A={user:{bg:"#f3f0ff",color:"#7c3aed"},feedback:{bg:"#eff6ff",color:"#2563eb"},project:{bg:"#fffbeb",color:"#b45309"},reference:{bg:"#f0fdf4",color:"#15803d"}};function B({agentId:a,canEdit:b}){let[c,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(new Set),j=async b=>{await fetch(`/api/agents/${a}/memories/${b}`,{method:"DELETE"}),fetch(`/api/agents/${a}/memories`).then(a=>a.json()).then(f)},k=c.reduce((a,b)=>((a[b.type]??=[]).push(b),a),{});return 0===c.length?(0,d.jsxs)("div",{className:"fade-up",style:{display:"flex",flexDirection:"column",alignItems:"center",paddingTop:80,color:"var(--muted)"},children:[(0,d.jsx)(i,{size:36,style:{marginBottom:12,color:"var(--border-2)"}}),(0,d.jsx)("p",{style:{margin:"0 0 4px",fontSize:15,fontWeight:600,color:"var(--text)",textAlign:"center"},children:"No memories yet"}),(0,d.jsx)("p",{style:{fontSize:13,color:"var(--muted)",maxWidth:300,margin:"0",textAlign:"center"},children:"The agent will automatically accumulate memories as it interacts in Slack."})]}):(0,d.jsxs)("div",{style:{maxWidth:720},className:"fade-up",children:[(0,d.jsxs)("div",{style:{fontSize:13,color:"var(--muted)",marginBottom:18},children:[c.length," memories across ",Object.keys(k).length," categories"]}),["feedback","user","project","reference"].map(a=>{let c=k[a];if(!c?.length)return null;let e=A[a]??{bg:"var(--border)",color:"var(--muted)"};return(0,d.jsxs)("div",{style:{marginBottom:20},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,d.jsx)("span",{style:{fontSize:10.5,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",background:e.bg,color:e.color,padding:"2px 8px",borderRadius:5},children:a}),(0,d.jsx)("span",{style:{fontSize:11.5,color:"var(--subtle)"},children:c.length})]}),(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:c.map((a,e)=>(0,d.jsxs)("div",{style:{borderBottom:e<c.length-1?"1px solid var(--border)":"none"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 14px",cursor:"pointer"},onClick:()=>{let b;return b=a.id,h(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:11,color:"var(--subtle)"},children:g.has(a.id)?"▼":"▶"}),(0,d.jsx)("span",{style:{fontSize:13,color:"var(--text)",fontWeight:500,fontFamily:"var(--font-mono)"},children:a.name})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,d.jsx)("span",{style:{fontSize:11,color:"var(--subtle)"},children:new Date(a.updatedAt).toLocaleDateString()}),b&&(0,d.jsx)("button",{onClick:b=>{b.stopPropagation(),j(a.id)},style:{background:"none",border:"none",cursor:"pointer",color:"#ef4444",fontSize:13,opacity:.5,transition:"opacity 0.12s",fontFamily:"var(--font-sans)"},onMouseEnter:a=>a.currentTarget.style.opacity="1",onMouseLeave:a=>a.currentTarget.style.opacity="0.5",children:"Delete"})]})]}),g.has(a.id)&&(0,d.jsx)("pre",{style:{margin:0,padding:"12px 14px",background:"var(--surface-2)",borderTop:"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:11.5,color:"var(--muted)",whiteSpace:"pre-wrap",lineHeight:1.6},children:a.content})]},a.id))})]},a)})]})}let C={all:{label:"ALL",color:"#6b7280",bg:"#f3f4f6",border:"#e5e7eb",rowBg:"transparent"},info:{label:"INFO",color:"#1d4ed8",bg:"#eff6ff",border:"#bfdbfe",rowBg:"transparent"},debug:{label:"DEBUG",color:"#9ca3af",bg:"#f9fafb",border:"#e5e7eb",rowBg:"transparent"},warn:{label:"WARN",color:"#92400e",bg:"#fffbeb",border:"#fde68a",rowBg:"#fffdf0"},error:{label:"ERR",color:"#991b1b",bg:"#fef2f2",border:"#fecaca",rowBg:"#fff8f8"}};function D({log:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(!1),h=C[a.level],i=Object.keys(a.fields).length>0,j="error"===a.level?"#7f1d1d":"warn"===a.level?"#78350f":"debug"===a.level?"#9ca3af":"var(--text)";return(0,d.jsxs)("div",{onClick:()=>c(a=>!a),onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),style:{cursor:"pointer",background:f||b?"var(--surface-2)":h.rowBg,borderLeft:`3px solid ${b?h.border:"transparent"}`,borderBottom:"1px solid var(--border)",transition:"background 0.1s"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"5px 10px",minHeight:28},children:[(0,d.jsx)("span",{style:{color:"var(--subtle)",flexShrink:0,fontSize:10.5,fontVariantNumeric:"tabular-nums",minWidth:68},children:a.time}),(0,d.jsx)("span",{style:{flexShrink:0,fontSize:9.5,fontWeight:700,letterSpacing:"0.06em",padding:"1px 6px",borderRadius:3,border:`1px solid ${h.border}`,background:h.bg,color:h.color,minWidth:34,textAlign:"center"},children:h.label}),(0,d.jsx)("span",{style:{flex:1,color:j,fontSize:11.5,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:a.message}),!b&&i&&(0,d.jsxs)("span",{style:{flexShrink:0,display:"flex",gap:3},children:[Object.keys(a.fields).slice(0,3).map(a=>(0,d.jsx)("span",{style:{fontSize:9.5,color:"var(--muted)",background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:3,padding:"0 4px"},children:a},a)),Object.keys(a.fields).length>3&&(0,d.jsxs)("span",{style:{fontSize:9.5,color:"var(--subtle)"},children:["+",Object.keys(a.fields).length-3]})]}),(0,d.jsx)("span",{style:{flexShrink:0,color:"var(--subtle)",fontSize:9,transform:b?"rotate(90deg)":"none",transition:"transform 0.15s"},children:"▶"})]}),b&&(0,d.jsxs)("div",{style:{padding:"8px 14px 12px 92px",borderTop:"1px solid var(--border)",background:"var(--surface-2)"},children:[a.message.includes("\n")&&(0,d.jsx)("pre",{style:{margin:"0 0 10px",color:"var(--text)",fontSize:11.5,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a.message}),i&&(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:"max-content 1fr",gap:"4px 16px",marginBottom:8},children:Object.entries(a.fields).map(([a,b])=>(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{style:{color:"var(--accent)",fontSize:11,fontWeight:500},children:a},`k-${a}`),(0,d.jsx)("span",{style:{color:"var(--muted)",fontSize:11,wordBreak:"break-all"},children:b},`v-${a}`)]}))}),a.raw&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{style:{fontSize:10,color:"var(--subtle)",marginTop:8,marginBottom:4},children:"Raw"}),(0,d.jsx)("pre",{style:{margin:0,padding:"8px 10px",background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:4,fontSize:10.5,color:"var(--muted)",whiteSpace:"pre-wrap",wordBreak:"break-all",maxHeight:180,overflow:"auto"},children:a.raw})]})]})]})}function E({agentId:a,slug:b}){let[c,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)("all"),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(!0),o=(0,e.useRef)(null),p=(0,e.useRef)(null),q=c.reduce((a,b)=>(a[b.level]=(a[b.level]??0)+1,a),{all:c.length,error:0,warn:0,info:0,debug:0}),r=c.filter(a=>{if("all"!==i&&a.level!==i)return!1;if(k){let b=k.toLowerCase();return a.message.toLowerCase().includes(b)||Object.values(a.fields).some(a=>a.toLowerCase().includes(b))}return!0});return(0,d.jsxs)("div",{className:"fade-up",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8,flexWrap:"wrap"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5},children:[(0,d.jsx)("div",{className:g?"status-running":"",style:{width:6,height:6,borderRadius:"50%",background:g?"#16a34a":"var(--border-2)"}}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--muted)"},children:g?"Live":"Disconnected"})]}),(0,d.jsx)("div",{style:{width:1,height:14,background:"var(--border)",margin:"0 2px"}}),["all","error","warn","info","debug"].map(a=>{let b=C[a],c=i===a;return(0,d.jsxs)("button",{onClick:()=>j(a),style:{padding:"2px 8px",borderRadius:4,border:`1px solid ${c?b.border:"var(--border)"}`,fontSize:10.5,fontFamily:"var(--font-sans)",cursor:"pointer",background:c?b.bg:"transparent",color:c?b.color:"var(--muted)",fontWeight:c?700:400,display:"flex",alignItems:"center",gap:4},children:[b.label,q[a]>0&&(0,d.jsx)("span",{style:{fontSize:9.5,opacity:.75},children:q[a]})]},a)}),(0,d.jsx)("input",{value:k,onChange:a=>l(a.target.value),placeholder:"Filter logs…",style:{padding:"3px 10px",borderRadius:4,border:"1px solid var(--border)",fontSize:11,fontFamily:"var(--font-mono)",background:"transparent",color:"var(--text)",outline:"none",width:180}}),(0,d.jsx)("button",{onClick:()=>f([]),style:{marginLeft:"auto",background:"none",border:"none",cursor:"pointer",fontSize:11,color:"var(--subtle)",fontFamily:"var(--font-sans)"},children:"Clear"})]}),(0,d.jsxs)("div",{ref:p,onScroll:a=>{let b=a.currentTarget;n(b.scrollTop+b.clientHeight>=b.scrollHeight-40)},style:{background:"#fff",border:"1px solid var(--border)",borderRadius:8,height:520,overflow:"auto",fontFamily:"var(--font-mono)"},children:[0===r.length?(0,d.jsx)("div",{style:{padding:"40px 20px",textAlign:"center",color:"var(--subtle)",fontSize:12},children:0===c.length?"Waiting for log lines…":"No matching lines."}):r.map((a,b)=>(0,d.jsx)(D,{log:a},b)),(0,d.jsx)("div",{ref:o})]}),(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginTop:5,padding:"0 2px"},children:[(0,d.jsxs)("span",{style:{fontSize:10.5,color:"var(--subtle)"},children:[r.length,r.length!==c.length?` / ${c.length}`:""," line",1!==r.length?"s":""]}),!m&&(0,d.jsx)("button",{onClick:()=>{n(!0),o.current?.scrollIntoView({behavior:"smooth"})},style:{fontSize:10.5,color:"var(--accent)",background:"none",border:"none",cursor:"pointer",fontFamily:"var(--font-sans)"},children:"↓ Jump to latest"})]})]})}function F({title:a,children:b}){return(0,d.jsxs)("div",{style:{marginBottom:32,paddingBottom:28,borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--muted)",letterSpacing:"0.08em",textTransform:"uppercase",marginBottom:16},children:a}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:b})]})}function G({children:a}){return(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:a})}function H({label:a,value:b,onChange:c,hint:e,type:f="text",readOnly:g}){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:f,value:b,onChange:a=>c(a.target.value),readOnly:g,style:{width:"100%",background:"var(--surface)",border:"1.5px solid var(--border)",borderRadius:"var(--radius)",padding:"10px 14px",color:"var(--text)",fontSize:14,fontFamily:"var(--font-sans)",outline:"none",transition:"border-color 0.15s"},onFocus:a=>a.currentTarget.style.borderColor="var(--accent)",onBlur:a=>a.currentTarget.style.borderColor="var(--border)"}),e&&(0,d.jsx)("p",{style:{margin:"5px 0 0",fontSize:12,color:"var(--subtle)"},children:e})]})}function I({label:a,value:b,onChange:c,hint:e,rows:f=3,readOnly:g}){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)("textarea",{value:b,onChange:a=>c(a.target.value),rows:f,readOnly:g,style:{width:"100%",background:"var(--surface)",border:"1.5px solid var(--border)",borderRadius:"var(--radius)",padding:"10px 14px",color:"var(--text)",fontSize:14,fontFamily:"var(--font-sans)",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)"}),e&&(0,d.jsx)("p",{style:{margin:"5px 0 0",fontSize:12,color:"var(--subtle)"},children:e})]})}function J({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:"var(--radius)",padding:"10px 22px",fontSize:14,fontWeight:600,letterSpacing:"-0.01em",cursor:c?"not-allowed":"pointer",fontFamily:"var(--font-sans)",boxShadow:c?"none":"var(--shadow-sm)",transition:"opacity 0.15s, transform 0.15s, box-shadow 0.15s"},onMouseEnter:a=>{c||(a.currentTarget.style.opacity="0.88",a.currentTarget.style.transform="translateY(-1px)",a.currentTarget.style.boxShadow="var(--shadow-hover)")},onMouseLeave:a=>{a.currentTarget.style.opacity="1",a.currentTarget.style.transform="translateY(0)",a.currentTarget.style.boxShadow="var(--shadow-sm)"},children:c?"Saving…":a})}function K({children:a,onClick:b,loading:c}){return(0,d.jsx)("button",{onClick:b,disabled:c,style:{background:"transparent",color:"var(--muted)",border:"1.5px solid var(--border-2)",borderRadius:"var(--radius)",padding:"10px 20px",fontSize:14,fontWeight:500,fontFamily:"var(--font-sans)",cursor:c?"default":"pointer",opacity:c?.6:1,transition:"border-color 0.15s, color 0.15s"},onMouseEnter:a=>{c||(a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border-2)",a.currentTarget.style.color="var(--muted)"},children:c?"…":a})}function L({label:a,value:b}){return(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:13},children:[(0,d.jsx)("span",{style:{color:"var(--muted)"},children:a}),(0,d.jsx)("span",{style:{color:"var(--text)",fontWeight:500},children:b})]})}function M({children:a,onClick:b,title:c,loading:e}){return(0,d.jsx)("button",{onClick:b,title:c,disabled:e,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,borderRadius:8,border:"1px solid var(--border)",background:"var(--surface)",color:"var(--muted)",cursor:e?"default":"pointer",opacity:e?.5:1,transition:"all 0.15s"},onMouseEnter:a=>{if(!e){let b=a.currentTarget;b.style.borderColor="var(--border-2)",b.style.color="var(--text)",b.style.background="var(--surface-2)"}},onMouseLeave:a=>{let b=a.currentTarget;b.style.borderColor="var(--border)",b.style.color="var(--muted)",b.style.background="var(--surface)"},children:e?(0,d.jsx)("span",{style:{fontSize:11},children:"…"}):a})}function N({children:a,onClick:b,color:c,textColor:e}){return(0,d.jsx)("button",{onClick:b,style:{background:c??"var(--border)",color:e??"#fff",border:"none",borderRadius:"var(--radius)",padding:"8px 18px",fontSize:13,fontWeight:600,cursor:"pointer",fontFamily:"var(--font-sans)",transition:"opacity 0.15s, transform 0.15s"},onMouseEnter:a=>{a.currentTarget.style.opacity="0.85",a.currentTarget.style.transform="translateY(-1px)"},onMouseLeave:a=>{a.currentTarget.style.opacity="1",a.currentTarget.style.transform="translateY(0)"},children:a})}function O({title:a,children:b,onClose:c}){return(0,d.jsx)(o.Z,{children:(0,d.jsx)("div",{style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.6)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,backdropFilter:"blur(4px)"},children:(0,d.jsxs)("div",{style:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:"var(--radius-lg)",padding:"28px",width:440,boxShadow:"var(--shadow-modal)",display:"flex",flexDirection:"column",gap:16,maxHeight:"90vh",overflow:"auto"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsx)("h3",{style:{margin:0,fontSize:15,fontWeight:600,color:"var(--text)"},children:a}),(0,d.jsx)("button",{onClick:c,style:{background:"none",border:"none",cursor:"pointer",color:"var(--muted)",fontSize:18,lineHeight:1,fontFamily:"var(--font-sans)"},children:"\xd7"})]}),b]})})})}function P(){return(0,d.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100vh",color:"var(--muted)",fontSize:13},children:"Loading…"})}function Q({slug:a}){return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",gap:12},children:[(0,d.jsxs)("p",{style:{color:"var(--muted)",fontSize:13},children:["Agent not found: ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:a})]}),(0,d.jsx)(m(),{href:"/",style:{color:"var(--accent)",fontSize:13,textDecoration:"none"},children:"← Back to dashboard"})]})}function R({snapshot:a,current:b}){let c=a.skillsJson,e=b?b.skillsJson:null,f=new Map(c.map(a=>[`${a.category}/${a.filename}`,a.content])),g=e?new Map(e.map(a=>[`${a.category}/${a.filename}`,a.content])):new Map,h=new Set([...f.keys(),...g.keys()]),i=[];for(let a of h){let b=f.get(a),c=g.get(a);void 0===b?i.push({key:a,status:"added"}):void 0===c?i.push({key:a,status:"removed"}):b!==c&&i.push({key:a,status:"modified",diff:q(b,c)})}return 0===i.length?(0,d.jsx)("p",{style:{fontSize:13,color:"var(--subtle)",margin:0},children:"No skill changes."}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:i.map(a=>(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"7px 12px",background:"var(--surface-2)",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},children:[(0,d.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"var(--text)"},children:a.key}),(0,d.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:4,fontWeight:600,background:"added"===a.status?"rgba(22,163,74,0.15)":"removed"===a.status?"rgba(239,68,68,0.15)":"rgba(234,179,8,0.15)",color:"added"===a.status?"#16a34a":"removed"===a.status?"#ef4444":"#ca8a04"},children:a.status})]}),a.diff&&(0,d.jsx)("pre",{style:{margin:0,padding:"10px 0",fontSize:11.5,fontFamily:"var(--font-mono)",lineHeight:1.6,overflow:"auto",maxHeight:320},children:a.diff.map((a,b)=>(0,d.jsxs)("div",{style:{padding:"0 12px",background:"add"===a.type?"rgba(22,163,74,0.1)":"remove"===a.type?"rgba(239,68,68,0.1)":"transparent",color:"add"===a.type?"#16a34a":"remove"===a.type?"#ef4444":"var(--muted)"},children:["add"===a.type?"+ ":"remove"===a.type?"- ":" ",a.line]},b))}),"added"===a.status&&(0,d.jsx)("p",{style:{margin:"8px 12px",fontSize:12,color:"#16a34a"},children:"File added since this snapshot."}),"removed"===a.status&&(0,d.jsx)("p",{style:{margin:"8px 12px",fontSize:12,color:"#ef4444"},children:"File deleted since this snapshot."})]},a.key))})}function S({snapshot:a,current:b}){let c=new Set(b?b.allowedTools:[]),e=new Set(b?b.deniedTools:[]),f=new Set(a.allowedTools),g=new Set(a.deniedTools),h=[...c].filter(a=>!f.has(a)),i=[...f].filter(a=>!c.has(a)),j=[...e].filter(a=>!g.has(a)),k=[...g].filter(a=>!e.has(a));if(!h.length&&!i.length&&!j.length&&!k.length)return(0,d.jsx)("p",{style:{fontSize:13,color:"var(--subtle)",margin:0},children:"No permission changes."});let l=(a,b,c)=>b.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--muted)",marginBottom:4},children:a}),(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:b.map(a=>(0,d.jsx)("span",{style:{fontSize:11.5,fontFamily:"var(--font-mono)",padding:"2px 8px",borderRadius:4,background:`${c}22`,color:c},children:a},a))})]},a);return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[l("Allowed tools added",h,"#16a34a"),l("Allowed tools removed",i,"#ef4444"),l("Denied tools added",j,"#ef4444"),l("Denied tools removed",k,"#16a34a")]})}function T({snapshot:a,current:b,allMcps:c}){let e=a=>c.find(b=>b.id===a)?.name??a,f=new Set(b?b.mcpIds:[]),g=new Set(a.mcpIds),h=[...f].filter(a=>!g.has(a)),i=[...g].filter(a=>!f.has(a));return h.length||i.length?(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[h.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"#16a34a",marginBottom:4},children:"Added"}),h.map(a=>(0,d.jsxs)("div",{style:{fontSize:12.5,color:"#16a34a"},children:["+ ",e(a)]},a))]}),i.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"#ef4444",marginBottom:4},children:"Removed"}),i.map(a=>(0,d.jsxs)("div",{style:{fontSize:12.5,color:"#ef4444"},children:["- ",e(a)]},a))]})]}):(0,d.jsx)("p",{style:{fontSize:13,color:"var(--subtle)",margin:0},children:"No MCP changes."})}let U={skills:{bg:"rgba(59,130,246,0.12)",color:"#3b82f6"},permissions:{bg:"rgba(234,179,8,0.12)",color:"#ca8a04"},mcps:{bg:"rgba(168,85,247,0.12)",color:"#a855f7"},"claude-md":{bg:"rgba(236,72,153,0.12)",color:"#ec4899"},manual:{bg:"rgba(22,163,74,0.12)",color:"#16a34a"}};function V({trigger:a}){let b=U[a]??{bg:"var(--surface-2)",color:"var(--muted)"};return(0,d.jsx)("span",{style:{fontSize:10.5,fontWeight:600,padding:"3px 8px",borderRadius:6,background:b.bg,color:b.color,letterSpacing:"0.03em"},children:{skills:"Skills",permissions:"Tools",mcps:"MCPs","claude-md":"System Prompt",manual:"Manual",restrictions:"Channels"}[a]??a})}function W({agentId:a,canEdit:b}){let[c,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(!0),[i,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)("__current__"),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)([]),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),D=async()=>{let b=window.prompt("Snapshot label (optional):")??"",c=await fetch(`/api/agents/${a}/snapshots`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:b||null})});if(c.ok){let a=await c.json();f(b=>[a,...b]),C("Snapshot created.")}},E=async b=>{window.confirm("Delete this snapshot?")&&(await fetch(`/api/agents/${a}/snapshots/${b}`,{method:"DELETE"}),f(a=>a.filter(a=>a.id!==b)),i===b&&(l(null),n(null)),C("Snapshot deleted."))},F=async b=>{if(!window.confirm(`Restore to snapshot from ${new Date(b.createdAt).toLocaleString()}?
|
|
3
|
+
|
|
4
|
+
This will replace current skills, permissions, and MCPs.`))return;y(!0);let c=await fetch(`/api/agents/${a}/snapshots/${b.id}/restore`,{method:"POST"});if(y(!1),c.ok)C("Restored. Agent is reloading.");else{let a=await c.json();C(`Restore failed: ${a.error}`)}},G=a=>{let b=new Date(a);return`${b.toLocaleDateString()} ${b.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}`},H="__current__"===o?t:r;return g?(0,d.jsxs)("div",{style:{display:"flex",gap:20,minHeight:500},children:[(0,d.jsxs)("div",{style:{width:280,flexShrink:0,display:"flex",flexDirection:"column",gap:8},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:6},children:[(0,d.jsx)("div",{style:{width:70,height:13,borderRadius:5,background:"var(--surface-2)"}}),(0,d.jsx)("div",{style:{width:110,height:30,borderRadius:8,background:"var(--surface-2)"}})]}),[1,2,3,4].map(a=>(0,d.jsxs)("div",{style:{background:"#fff",borderRadius:"var(--radius)",padding:"14px 16px",boxShadow:"var(--shadow-card)",opacity:1-(a-1)*.2},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:10},children:[(0,d.jsx)("div",{style:{width:70,height:18,borderRadius:6,background:"var(--surface-2)"}}),(0,d.jsx)("div",{style:{width:50,height:11,borderRadius:4,background:"var(--surface-2)"}})]}),(0,d.jsx)("div",{style:{width:"55%",height:11,borderRadius:4,background:"var(--surface-2)"}})]},a))]}),(0,d.jsx)("div",{style:{flex:1,background:"#fff",borderRadius:"var(--radius-lg)",boxShadow:"var(--shadow-card)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,d.jsx)("div",{style:{fontSize:13,color:"var(--subtle)"},children:"Loading history…"})})]}):(0,d.jsxs)("div",{style:{display:"flex",gap:20,minHeight:500,alignItems:"flex-start"},children:[(0,d.jsxs)("div",{style:{width:280,flexShrink:0},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12},children:[(0,d.jsxs)("span",{style:{fontSize:11,fontWeight:700,letterSpacing:"0.08em",color:"var(--subtle)",textTransform:"uppercase"},children:[c.length," snapshot",1!==c.length?"s":""]}),b&&(0,d.jsx)("button",{onClick:D,style:{background:"var(--accent)",color:"#fff",border:"none",borderRadius:"var(--radius-sm)",padding:"7px 13px",fontSize:12,fontWeight:600,cursor:"pointer",fontFamily:"var(--font-sans)",letterSpacing:"-0.01em",boxShadow:"var(--shadow-sm)",transition:"opacity 0.15s"},onMouseEnter:a=>a.currentTarget.style.opacity="0.85",onMouseLeave:a=>a.currentTarget.style.opacity="1",children:"+ Snapshot"})]}),B&&(0,d.jsx)("div",{style:{fontSize:12,color:"#16a34a",background:"#f0fdf4",border:"1px solid #bbf7d0",borderRadius:8,padding:"8px 12px",marginBottom:10},children:B}),0===c.length?(0,d.jsxs)("div",{style:{background:"#fff",borderRadius:"var(--radius)",boxShadow:"var(--shadow-card)",padding:"28px 20px",textAlign:"center"},children:[(0,d.jsx)(j,{size:22,style:{marginBottom:10,color:"var(--border-2)"}}),(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:6},children:"No snapshots yet"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--muted)",lineHeight:1.6},children:"Snapshots are saved automatically when you change skills, MCPs, or permissions."})]}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:c.map(a=>{let c=a.id===i;return(0,d.jsxs)("div",{onClick:()=>{l(c?null:a.id),p("__current__"),s(null)},style:{background:"#fff",borderRadius:"var(--radius)",boxShadow:c?"0 0 0 2px var(--accent), var(--shadow-card)":"var(--shadow-card)",padding:"13px 15px",cursor:"pointer",transition:"box-shadow 0.15s"},onMouseEnter:a=>{c||(a.currentTarget.style.boxShadow="var(--shadow-hover)")},onMouseLeave:a=>{c||(a.currentTarget.style.boxShadow="var(--shadow-card)")},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:7},children:[(0,d.jsx)(V,{trigger:a.trigger}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--subtle)",fontFamily:"var(--font-mono)"},children:a.createdBy})]}),(0,d.jsx)("div",{style:{fontSize:12.5,fontWeight:500,color:"var(--text)",marginBottom:4*!!a.label},children:G(a.createdAt)}),a.label&&(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--muted)",fontStyle:"italic",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.label}),c&&b&&(0,d.jsxs)("div",{style:{display:"flex",gap:7,marginTop:11,paddingTop:11,borderTop:"1px solid var(--border)"},onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("button",{onClick:()=>F(a),disabled:x,style:{flex:1,fontSize:12,padding:"6px 0",borderRadius:6,cursor:x?"not-allowed":"pointer",background:"#16a34a",color:"#fff",border:"none",fontFamily:"var(--font-sans)",fontWeight:600,transition:"opacity 0.15s"},onMouseEnter:a=>{x||(a.currentTarget.style.opacity="0.85")},onMouseLeave:a=>a.currentTarget.style.opacity="1",children:x?"Restoring…":"Restore"}),(0,d.jsx)("button",{onClick:()=>E(a.id),style:{fontSize:12,padding:"6px 12px",borderRadius:6,cursor:"pointer",background:"transparent",color:"var(--red)",border:"1.5px solid rgba(220,38,38,0.25)",fontFamily:"var(--font-sans)",fontWeight:500,transition:"all 0.15s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--red)",a.currentTarget.style.color="#fff",a.currentTarget.style.borderColor="var(--red)"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.color="var(--red)",a.currentTarget.style.borderColor="rgba(220,38,38,0.25)"},children:"Delete"})]})]},a.id)})})]}),z?(0,d.jsxs)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{background:"#fff",borderRadius:"var(--radius)",boxShadow:"var(--shadow-card)",padding:"14px 18px",display:"flex",alignItems:"center",gap:12},children:[(0,d.jsx)("div",{style:{width:90,height:14,borderRadius:4,background:"var(--surface-2)"}}),(0,d.jsx)("div",{style:{flex:1,height:34,borderRadius:8,background:"var(--surface-2)"}})]}),[120,80,60,200].map((a,b)=>(0,d.jsxs)("div",{style:{background:"#fff",borderRadius:"var(--radius)",boxShadow:"var(--shadow-card)",overflow:"hidden",opacity:1-.15*b},children:[(0,d.jsx)("div",{style:{padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:(0,d.jsx)("div",{style:{width:70,height:11,borderRadius:4,background:"var(--surface-2)"}})}),(0,d.jsx)("div",{style:{padding:"16px 18px"},children:(0,d.jsx)("div",{style:{height:a,borderRadius:6,background:"var(--surface-2)"}})})]},b))]}):m?(0,d.jsxs)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{style:{background:"#fff",borderRadius:"var(--radius)",boxShadow:"var(--shadow-card)",padding:"14px 18px",display:"flex",alignItems:"center",gap:12},children:[(0,d.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--muted)",letterSpacing:"0.02em",whiteSpace:"nowrap"},children:"Compare with"}),(0,d.jsxs)("select",{value:o,onChange:a=>p(a.target.value),style:{flex:1,fontSize:13,padding:"7px 12px",borderRadius:8,border:"1.5px solid var(--border)",background:"var(--surface-2)",color:"var(--text)",fontFamily:"var(--font-sans)",outline:"none",cursor:"pointer"},onFocus:a=>a.currentTarget.style.borderColor="var(--accent)",onBlur:a=>a.currentTarget.style.borderColor="var(--border)",children:[(0,d.jsx)("option",{value:"__current__",children:"Current state"}),c.filter(a=>a.id!==i).map(a=>(0,d.jsxs)("option",{value:a.id,children:[G(a.createdAt)," — ",a.trigger,a.label?` \xb7 ${a.label}`:""]},a.id))]})]}),H?[{title:"Skills",content:(0,d.jsx)(R,{snapshot:m,current:H})},{title:"Tools",content:(0,d.jsx)(S,{snapshot:m,current:H})},{title:"MCPs",content:(0,d.jsx)(T,{snapshot:m,current:H,allMcps:v})},{title:"System Prompt",content:(()=>{if(!m.compiledMd||!H.compiledMd)return(0,d.jsx)("p",{style:{fontSize:12.5,color:"var(--subtle)",margin:0},children:"Not available for this snapshot"});let a=q(m.compiledMd.trim(),H.compiledMd.trim());return a.some(a=>"same"!==a.type)?(0,d.jsx)("pre",{style:{margin:0,padding:"14px 16px",borderRadius:8,fontSize:12,fontFamily:"var(--font-mono)",background:"var(--surface-2)",border:"1px solid var(--border)",overflow:"auto",maxHeight:380,color:"var(--text)",lineHeight:1.7},children:a.map((a,b)=>(0,d.jsxs)("div",{style:{background:"add"===a.type?"rgba(34,197,94,0.12)":"remove"===a.type?"rgba(239,68,68,0.10)":"transparent",color:"add"===a.type?"#16a34a":"remove"===a.type?"#dc2626":"inherit",padding:"1px 6px",borderRadius:3,marginBottom:1},children:["add"===a.type?"+ ":"remove"===a.type?"- ":" ",a.line]},b))}):(0,d.jsx)("p",{style:{fontSize:12.5,color:"var(--subtle)",margin:0},children:"No changes"})})()}].map(({title:a,content:b})=>(0,d.jsxs)("div",{style:{background:"#fff",borderRadius:"var(--radius)",boxShadow:"var(--shadow-card)",overflow:"hidden"},children:[(0,d.jsx)("div",{style:{padding:"12px 18px",borderBottom:"1px solid var(--border)",fontSize:11,fontWeight:700,letterSpacing:"0.08em",color:"var(--muted)",textTransform:"uppercase"},children:a}),(0,d.jsx)("div",{style:{padding:"16px 18px"},children:b})]},a)):(0,d.jsx)("div",{style:{background:"#fff",borderRadius:"var(--radius)",boxShadow:"var(--shadow-card)",padding:"24px 18px",textAlign:"center",color:"var(--subtle)",fontSize:13},children:"Loading comparison…"})]}):(0,d.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",background:"#fff",borderRadius:"var(--radius-lg)",boxShadow:"var(--shadow-card)",gap:10,padding:40},children:[(0,d.jsx)(k,{size:32,style:{color:"var(--border-2)"}}),(0,d.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"var(--text)"},children:"Select a snapshot"}),(0,d.jsx)("div",{style:{fontSize:13,color:"var(--muted)",textAlign:"center",maxWidth:260,lineHeight:1.6},children:"Click any snapshot on the left to view what changed at that point in time."})]})]})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},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")},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}},94256:(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/agents/[slug]/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/agents/[slug]/page.tsx","default")},98157:(a,b,c)=>{Promise.resolve().then(c.bind(c,94256))}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[8819,1157,7171],()=>b(b.s=32288));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["/agents/[slug]/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":["9664","static/chunks/9664-af80478aa73ba424.js","1555","static/chunks/app/agents/%5Bslug%5D/page-18369fc3fe1a9a7b.js"],"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":[],"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/agents/[slug]/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=5700,a.ids=[5700],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")},6626:(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:["agents",{children:["new",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,37283)),"/home/admin/aman/slackhive/apps/web/src/app/agents/new/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/agents/new/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/agents/new/page",pathname:"/agents/new",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/agents/new/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}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16116:(a,b,c)=>{Promise.resolve().then(c.bind(c,37283))},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")},37283:(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/agents/new/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/agents/new/page.tsx","default")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},52773:(a,b,c)=>{"use strict";var d=Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]};Object.defineProperty(b,"__esModule",{value:!0}),function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)}(c(66228),b)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66228:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.BOSS_ADDITIONAL_SCOPES=b.DEFAULT_SLACK_BOT_SCOPES=b.AGENT_EVENTS_CHANNEL=void 0,b.AGENT_EVENTS_CHANNEL="agent:events",b.DEFAULT_SLACK_BOT_SCOPES=["app_mentions:read","channels:history","channels:read","chat:write","chat:write.public","files:read","files:write","groups:history","groups:read","im:history","im:read","im:write","mpim:read","reactions:read","reactions:write","users:read"],b.BOSS_ADDITIONAL_SCOPES=["channels:read","groups:read"]},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")},92148:(a,b,c)=>{Promise.resolve().then(c.bind(c,93704))},93704:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>p});var d=c(78157),e=c(31768),f=c.n(e),g=c(81744);let h=(0,g.A)("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),i=(0,g.A)("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),j=(0,g.A)("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var k=c(71159),l=c(52773);let m={name:"",slug:"",description:"",persona:"",model:"claude-opus-4-6",isBoss:!1,reportsToIds:[],slackBotToken:"",slackAppToken:"",slackSigningSecret:"",mcpServerIds:[],skillTemplate:"blank",importPayload:null},n=[{value:"claude-opus-4-6",label:"Opus 4.6",sub:"Most capable"},{value:"claude-sonnet-4-6",label:"Sonnet 4.6",sub:"Balanced"},{value:"claude-haiku-4-5-20251001",label:"Haiku 4.5",sub:"Fastest"}],o=[{value:"blank",label:"Blank",desc:"Minimal identity only"},{value:"data-analyst",label:"Data Analyst",desc:"SQL, Redshift, metrics"},{value:"writer",label:"Writer",desc:"Content & summaries"},{value:"developer",label:"Developer",desc:"Code review & dev"}];function p(){let a=(0,k.useRouter)(),[b,c]=(0,e.useState)(0),[f,g]=(0,e.useState)(m),[h,i]=(0,e.useState)([]),[j,l]=(0,e.useState)([]),[n,o]=(0,e.useState)(!1),[p,r]=(0,e.useState)(""),u=j.filter(a=>a.isBoss),v=a=>g(b=>({...b,...a})),w=f.isBoss?4:5,x=f.isBoss?["Name & Role","Slack App","Credentials","Review"]:["Name & Role","Slack App","Credentials","Tools","Review"],y=()=>0===b?!!(f.name&&f.slug):2!==b||!!(f.slackBotToken&&f.slackAppToken&&f.slackSigningSecret),z=async()=>{o(!0),r("");try{let b=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...f,reportsTo:f.isBoss?[]:f.reportsToIds})}),c=await b.json();if(!b.ok)return void r(c.error??"Failed to create agent");if(f.importPayload){let{claudeMd:a,skills:b}=f.importPayload;await fetch(`/api/agents/${c.id}/claude-md`,{method:"PUT",headers:{"Content-Type":"text/plain"},body:a}),await Promise.all(b.map(a=>fetch(`/api/agents/${c.id}/skills`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})))}a.push(`/agents/${c.slug}`)}finally{o(!1)}};return(0,d.jsxs)("div",{style:{minHeight:"100vh",display:"flex",flexDirection:"column"},children:[(0,d.jsxs)("div",{style:{padding:"18px 36px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:12,background:"var(--surface)"},children:[(0,d.jsx)("a",{href:"/",style:{color:"var(--muted)",textDecoration:"none",fontSize:12},children:"← Agents"}),(0,d.jsx)("span",{style:{color:"var(--border-2)"},children:"/"}),(0,d.jsx)("span",{style:{fontSize:13,color:"var(--text)",fontWeight:500},children:"New Agent"})]}),(0,d.jsxs)("div",{style:{flex:1,display:"flex",padding:"40px 36px",gap:36,maxWidth:860,width:"100%"},children:[(0,d.jsx)("div",{style:{width:180,flexShrink:0},children:(0,d.jsx)("div",{style:{position:"sticky",top:40},children:x.map((a,e)=>(0,d.jsxs)("div",{onClick:()=>e<b&&c(e),style:{display:"flex",alignItems:"center",gap:10,padding:"9px 0",cursor:e<b?"pointer":"default"},children:[(0,d.jsx)("div",{style:{width:26,height:26,borderRadius:"50%",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",fontSize:e<b?11:12,fontWeight:600,background:e<b?"var(--accent)":e===b?"rgba(59,130,246,0.15)":"var(--border)",color:e<b?"#fff":e===b?"var(--accent)":"var(--subtle)",border:e===b?"1.5px solid var(--accent)":"1.5px solid transparent",transition:"all 0.2s"},children:e<b?"✓":e+1}),(0,d.jsx)("span",{style:{fontSize:13,fontWeight:e===b?600:400,color:e===b?"var(--text)":e<b?"var(--muted)":"var(--subtle)",transition:"color 0.2s"},children:a})]},e))})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsxs)("div",{style:{background:"var(--surface)",borderRadius:"var(--radius-lg)",padding:"32px",boxShadow:"var(--shadow-card)"},className:"fade-up",children:[0===b&&(0,d.jsx)(q,{state:f,update:v,bosses:u}),1===b&&(0,d.jsx)(s,{state:f}),2===b&&(0,d.jsx)(t,{state:f,update:v}),3===b&&!f.isBoss&&(0,d.jsx)(C,{state:f,update:v,catalog:h}),(3===b&&f.isBoss||4===b)&&(0,d.jsx)(D,{state:f,update:v,catalog:h,agents:j})]},b),p&&(0,d.jsx)("div",{style:{marginTop:12,background:"rgba(239,68,68,0.1)",border:"1px solid rgba(239,68,68,0.3)",borderRadius:8,padding:"10px 14px",fontSize:13,color:"#f87171"},children:p}),(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginTop:16},children:[(0,d.jsx)("button",{onClick:()=>c(a=>Math.max(a-1,0)),disabled:0===b,style:{background:"transparent",color:0===b?"var(--subtle)":"var(--muted)",border:"1.5px solid var(--border)",borderRadius:"var(--radius)",padding:"10px 20px",fontSize:14,fontWeight:500,cursor:0===b?"not-allowed":"pointer",fontFamily:"var(--font-sans)",transition:"border-color 0.15s, color 0.15s"},onMouseEnter:a=>{b>0&&(a.currentTarget.style.color="var(--text)",a.currentTarget.style.borderColor="var(--border-2)")},onMouseLeave:a=>{a.currentTarget.style.color="var(--muted)",a.currentTarget.style.borderColor="var(--border)"},children:"← Back"}),b<w-1?(0,d.jsx)("button",{onClick:()=>c(a=>Math.min(a+1,w-1)),disabled:!y(),style:{background:y()?"var(--accent)":"var(--border)",color:"#fff",border:"none",borderRadius:"var(--radius)",padding:"10px 24px",fontSize:14,fontWeight:600,cursor:y()?"pointer":"not-allowed",fontFamily:"var(--font-sans)",transition:"opacity 0.15s, transform 0.15s",boxShadow:y()?"var(--shadow-sm)":"none",letterSpacing:"-0.01em"},onMouseEnter:a=>{y()&&(a.currentTarget.style.opacity="0.88",a.currentTarget.style.transform="translateY(-1px)")},onMouseLeave:a=>{a.currentTarget.style.opacity="1",a.currentTarget.style.transform="translateY(0)"},children:"Continue →"}):(0,d.jsx)("button",{onClick:z,disabled:n||!f.slackBotToken||!f.slackAppToken||!f.slackSigningSecret,style:{background:n?"var(--border)":"#16a34a",color:"#fff",border:"none",borderRadius:"var(--radius)",padding:"10px 24px",fontSize:14,fontWeight:600,cursor:n?"not-allowed":"pointer",fontFamily:"var(--font-sans)",transition:"opacity 0.15s, transform 0.15s",boxShadow:n?"none":"var(--shadow-sm)",letterSpacing:"-0.01em"},onMouseEnter:a=>{n||(a.currentTarget.style.opacity="0.88",a.currentTarget.style.transform="translateY(-1px)")},onMouseLeave:a=>{a.currentTarget.style.opacity="1",a.currentTarget.style.transform="translateY(0)"},children:n?"Creating…":"Create Agent"})]})]})]})]})}function q({state:a,update:b,bosses:c}){return(0,d.jsxs)("div",{children:[(0,d.jsx)(E,{step:1,title:"Name your agent",desc:"Give it a name and decide if it leads a team or works as a specialist."}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:14,marginBottom:14},children:[(0,d.jsx)(F,{label:"Agent Name *",value:a.name,placeholder:"e.g. GILFOYLE",onChange:a=>b({name:a,slug:a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")})}),(0,d.jsx)(F,{label:"Slug *",value:a.slug,placeholder:"e.g. gilfoyle",hint:"Lowercase, hyphens only",onChange:a=>b({slug:a.toLowerCase().replace(/[^a-z0-9-]/g,"")})})]}),(0,d.jsx)(F,{label:"Description",value:a.description,placeholder:"Data warehouse NLQ, Redshift queries, business metrics",hint:"Used by the boss to decide when to delegate here.",onChange:a=>b({description:a})}),(0,d.jsx)(G,{label:"Persona",value:a.persona,placeholder:"You are GILFOYLE, a cynical but brilliant data engineer…",hint:"Injected into CLAUDE.md as the agent's identity and personality.",rows:3,onChange:a=>b({persona:a})}),(0,d.jsxs)("div",{style:{marginBottom:14},children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:8},children:"Model"}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:8},children:n.map(c=>(0,d.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:2,padding:"10px 12px",border:`1px solid ${a.model===c.value?"var(--accent)":"var(--border)"}`,borderRadius:8,cursor:"pointer",background:a.model===c.value?"rgba(59,130,246,0.08)":"transparent",transition:"border-color 0.15s, background 0.15s"},children:[(0,d.jsx)("input",{type:"radio",name:"model",value:c.value,checked:a.model===c.value,onChange:()=>b({model:c.value}),style:{display:"none"}}),(0,d.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:a.model===c.value?"var(--accent)":"var(--text)"},children:c.label}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--subtle)"},children:c.sub})]},c.value))})]}),(0,d.jsx)("div",{style:{marginBottom:14},children:(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 14px",border:`1px solid ${a.isBoss?"var(--accent)":"var(--border)"}`,borderRadius:8,cursor:"pointer",background:a.isBoss?"rgba(59,130,246,0.08)":"transparent",transition:"all 0.15s"},children:[(0,d.jsx)("input",{type:"checkbox",checked:a.isBoss,onChange:a=>b({isBoss:a.target.checked,reportsToIds:[]}),style:{accentColor:"var(--accent)",width:14,height:14}}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:a.isBoss?"var(--accent)":"var(--text)"},children:"This agent is a Boss"}),(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--subtle)"},children:"Boss agents orchestrate specialists. Their CLAUDE.md is auto-generated from the team."})]})]})}),!a.isBoss&&(0,d.jsxs)("div",{style:{marginBottom:14},children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:6},children:"Reports to"}),0===c.length?(0,d.jsx)("div",{style:{border:"1px dashed var(--border)",borderRadius:8,padding:"12px 14px",fontSize:12.5,color:"var(--subtle)"},children:"No boss agents yet — create a boss first, or mark this agent as a boss above."}):(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:c.map((e,f)=>(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 14px",cursor:"pointer",borderBottom:f<c.length-1?"1px solid var(--border)":"none",background:a.reportsToIds.includes(e.id)?"rgba(59,130,246,0.06)":"transparent",transition:"background 0.12s"},children:[(0,d.jsx)("input",{type:"checkbox",checked:a.reportsToIds.includes(e.id),onChange:()=>{var c;return c=e.id,void b({reportsToIds:a.reportsToIds.includes(c)?a.reportsToIds.filter(a=>a!==c):[...a.reportsToIds,c]})},style:{accentColor:"var(--accent)",width:14,height:14}}),(0,d.jsx)("span",{style:{fontSize:13,color:"var(--text)"},children:e.name})]},e.id))}),a.reportsToIds.length>0&&(0,d.jsxs)("p",{style:{margin:"5px 0 0",fontSize:11,color:"var(--subtle)"},children:["This agent will appear in the team registry of ",a.reportsToIds.length," boss",a.reportsToIds.length>1?"es":"","."]})]})]})}function r({value:a,onChange:b,compact:c}){let[f,g]=(0,e.useState)(""),h=(0,e.useRef)(null),i=a=>{let c=a.target.files?.[0];if(!c)return;a.target.value="",g("");let d=new FileReader;d.onload=a=>{try{let c=JSON.parse(a.target?.result);if("string"!=typeof c.claudeMd||!Array.isArray(c.skills))return void g("Invalid file — must contain claudeMd (string) and skills (array)");if("number"!=typeof c.version)return void g("Invalid file — missing version field");b(c)}catch{g("Could not parse file — must be valid JSON")}},d.readAsText(c)};return c?(0,d.jsxs)("div",{children:[a?(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"#7c3aed"},children:"Config loaded"}),(0,d.jsxs)("div",{style:{fontSize:11.5,color:"var(--muted)"},children:[a.skills.length," skill",1!==a.skills.length?"s":""," \xb7 CLAUDE.md included"]})]}),(0,d.jsx)("button",{type:"button",onClick:()=>{b(null),g("")},style:{background:"none",border:"none",cursor:"pointer",fontSize:11.5,color:"var(--muted)",padding:"3px 6px"},children:"Remove"})]}):(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:1},children:"Import config"}),(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--subtle)"},children:"Load CLAUDE.md + skills from an exported agent"}),f&&(0,d.jsx)("div",{style:{fontSize:11,color:"var(--danger)",marginTop:3},children:f})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>h.current?.click(),style:{display:"flex",alignItems:"center",gap:5,flexShrink:0,padding:"6px 12px",borderRadius:6,border:"1px solid var(--border-2)",background:"#fff",fontSize:12,fontWeight:500,color:"var(--muted)",cursor:"pointer"},children:[(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:(0,d.jsx)("path",{d:"M8 2v9M4 7l4 4 4-4M2 13h12",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})}),"Choose file"]})]}),(0,d.jsx)("input",{ref:h,type:"file",accept:".json",style:{display:"none"},onChange:i})]}):(0,d.jsxs)("div",{style:{marginTop:20,padding:"14px 16px",borderRadius:10,border:`1.5px dashed ${a?"#8b5cf6":"var(--border-2)"}`,background:a?"rgba(139,92,246,0.03)":"var(--surface)",transition:"all 0.2s"},children:[a?(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,justifyContent:"space-between"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,d.jsx)("div",{style:{width:32,height:32,borderRadius:8,flexShrink:0,background:"rgba(139,92,246,0.1)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 16 16",fill:"none",children:[(0,d.jsx)("path",{d:"M9 2H4a1 1 0 00-1 1v10a1 1 0 001 1h8a1 1 0 001-1V6L9 2z",stroke:"#8b5cf6",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,d.jsx)("path",{d:"M9 2v4h4",stroke:"#8b5cf6",strokeWidth:"1.4",strokeLinejoin:"round"})]})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:500,color:"var(--text)"},children:"Config file loaded"}),(0,d.jsxs)("div",{style:{fontSize:11.5,color:"var(--muted)"},children:[a.skills.length," skill",1!==a.skills.length?"s":""," \xb7 CLAUDE.md included",a.exportedAt&&` \xb7 ${new Date(a.exportedAt).toLocaleDateString()}`]})]})]}),(0,d.jsx)("button",{type:"button",onClick:()=>{b(null),g("")},style:{background:"none",border:"none",cursor:"pointer",fontSize:11.5,color:"var(--muted)",padding:"4px 8px",borderRadius:5},children:"Remove"})]}):(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:500,color:"var(--text)",marginBottom:2},children:"Import from existing config"}),(0,d.jsx)("div",{style:{fontSize:12,color:"var(--muted)"},children:"Load CLAUDE.md + skills from a previously exported agent"}),f&&(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--danger)",marginTop:4},children:f})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>h.current?.click(),style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,padding:"7px 14px",borderRadius:7,border:"1.5px solid var(--border-2)",background:"#fff",fontSize:12.5,fontWeight:500,color:"var(--muted)",cursor:"pointer",transition:"all 0.15s"},onMouseEnter:a=>{a.currentTarget.style.borderColor="#8b5cf6",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border-2)",a.currentTarget.style.color="var(--muted)"},children:[(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",children:(0,d.jsx)("path",{d:"M8 2v9M4 7l4 4 4-4M2 13h12",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})}),"Choose file"]})]}),(0,d.jsx)("input",{ref:h,type:"file",accept:".json",style:{display:"none"},onChange:i})]})}function s({state:a}){let[b,c]=(0,e.useState)(!1),f=a.name?JSON.stringify(function(a){let b=[...new Set(a.isBoss?[...l.DEFAULT_SLACK_BOT_SCOPES,...l.BOSS_ADDITIONAL_SCOPES]:[...l.DEFAULT_SLACK_BOT_SCOPES])];return{display_information:{name:a.name,description:a.description??`${a.name} — Claude Code AI agent`,background_color:"#1a1a1a"},features:{bot_user:{display_name:a.name,always_online:!0},app_home:{home_tab_enabled:!1,messages_tab_enabled:!0,messages_tab_read_only_enabled:!1}},oauth_config:{scopes:{bot:b}},settings:{event_subscriptions:{bot_events:["app_mention","message.channels","message.groups","message.im","member_joined_channel"]},interactivity:{is_enabled:!1},socket_mode_enabled:!0,token_rotation_enabled:!1,org_deploy_enabled:!1}}}({name:a.name,description:a.description,isBoss:a.isBoss}),null,2):"{}";return(0,d.jsxs)("div",{children:[(0,d.jsx)(E,{step:2,title:"Create a Slack app",desc:"Paste this manifest into Slack — it configures everything automatically in about 2 minutes."}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:0,marginBottom:20},children:[{n:1,title:"Open api.slack.com/apps",body:(0,d.jsxs)(d.Fragment,{children:["Click ",(0,d.jsx)(B,{children:"Create New App"})," → ",(0,d.jsx)(B,{children:"From a manifest"})," and select your workspace."]})},{n:2,title:"Paste the manifest",body:(0,d.jsxs)(d.Fragment,{children:["Switch to the ",(0,d.jsx)(B,{children:"JSON"})," tab, paste the manifest below, click ",(0,d.jsx)(B,{children:"Next"})," → ",(0,d.jsx)(B,{children:"Create"}),"."]})},{n:3,title:"Install to workspace",body:(0,d.jsxs)(d.Fragment,{children:["In the sidebar go to ",(0,d.jsx)(B,{children:"Install App"})," → ",(0,d.jsx)(B,{children:"Install to Workspace"})," → Allow. This generates your Bot Token — it won't appear until you install."]})}].map(({n:a,title:b,body:c},e,f)=>(0,d.jsxs)("div",{style:{display:"flex",gap:0},children:[(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",width:32,flexShrink:0},children:[(0,d.jsx)("div",{style:{width:26,height:26,borderRadius:"50%",flexShrink:0,background:"var(--accent)",color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:700,zIndex:1},children:a}),e<f.length-1&&(0,d.jsx)("div",{style:{width:2,flex:1,background:"var(--border)",minHeight:20,marginTop:4}})]}),(0,d.jsxs)("div",{style:{paddingLeft:14,paddingBottom:20*(e<f.length-1),paddingTop:3},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:3},children:b}),(0,d.jsx)("div",{style:{fontSize:12.5,color:"var(--muted)",lineHeight:1.65},children:c})]})]},a))}),(0,d.jsxs)("div",{style:{background:"var(--surface-2)",border:"1.5px solid var(--border)",borderRadius:"var(--radius)",overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"10px 16px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("span",{style:{fontSize:11.5,color:"var(--muted)",fontFamily:"var(--font-mono)"},children:[a.name||"agent","-manifest.json"]}),(0,d.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(f),c(!0),setTimeout(()=>c(!1),2e3)},style:{background:b?"#dcfce7":"var(--accent)",color:b?"#16a34a":"#fff",border:"none",cursor:"pointer",fontSize:12,fontWeight:600,fontFamily:"var(--font-sans)",padding:"5px 12px",borderRadius:6,transition:"all 0.15s"},children:b?"✓ Copied!":"Copy manifest"})]}),(0,d.jsx)("pre",{style:{margin:0,padding:"16px",fontSize:11.5,color:"var(--accent)",fontFamily:"var(--font-mono)",overflow:"auto",maxHeight:260,lineHeight:1.6},children:f})]})]})}function t({state:a,update:b}){return(0,d.jsxs)("div",{children:[(0,d.jsx)(E,{step:3,title:"Add your tokens",desc:"Three values from your Slack app — paste each one below."}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,d.jsx)(u,{label:"Bot Token",prefix:"xoxb-",path:["OAuth & Permissions","Bot User OAuth Token"],screenshot:(0,d.jsx)(y,{}),placeholder:"xoxb-...",value:a.slackBotToken,onChange:a=>b({slackBotToken:a})}),(0,d.jsx)(u,{label:"App-Level Token",prefix:"xapp-",path:["Basic Information","App-Level Tokens"],note:(0,d.jsxs)(d.Fragment,{children:["Click ",(0,d.jsx)("strong",{children:"Generate Token and Scopes"}),", add scope ",(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)",fontSize:11,background:"rgba(59,130,246,0.08)",color:"var(--accent)",padding:"1px 6px",borderRadius:4},children:"connections:write"}),", then generate."]}),screenshot:(0,d.jsx)(z,{}),placeholder:"xapp-...",value:a.slackAppToken,onChange:a=>b({slackAppToken:a})}),(0,d.jsx)(u,{label:"Signing Secret",prefix:"",path:["Basic Information","App Credentials","Signing Secret"],screenshot:(0,d.jsx)(A,{}),placeholder:"abc123def...",value:a.slackSigningSecret,onChange:a=>b({slackSigningSecret:a})})]})]})}function u({label:a,prefix:b,path:c,note:g,screenshot:j,placeholder:k,value:l,onChange:m}){let[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),r=l.length>0,s=b?l.startsWith(b):l.length>=8;return(0,d.jsxs)("div",{style:{borderRadius:"var(--radius)",border:`1.5px solid ${r?s?"#86efac":"#fca5a5":"var(--border)"}`,background:"#fff",overflow:"hidden",transition:"border-color 0.2s"},children:[(0,d.jsxs)("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,minWidth:0},children:[(0,d.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"var(--text)",flexShrink:0},children:a}),(0,d.jsx)("div",{style:{display:"flex",alignItems:"center",gap:5,overflow:"hidden"},children:c.map((a,b)=>(0,d.jsxs)(f().Fragment,{children:[b>0&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--border-2)"},children:"›"}),(0,d.jsx)("span",{style:{fontSize:11.5,whiteSpace:"nowrap",color:b===c.length-1?"var(--muted)":"var(--subtle)",fontWeight:b===c.length-1?500:400},children:a})]},b))})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexShrink:0},children:[j&&(0,d.jsx)("button",{type:"button",onClick:()=>q(a=>!a),style:{background:p?"var(--surface-2)":"none",border:"1px solid var(--border)",borderRadius:5,padding:"3px 8px",cursor:"pointer",color:"var(--muted)",fontSize:11,fontWeight:500,fontFamily:"var(--font-sans)",transition:"all 0.15s"},children:p?"Hide guide":"Where?"}),r&&(0,d.jsx)("span",{style:{fontSize:12,fontWeight:700,color:s?"#16a34a":"#ef4444"},children:s?"✓":"✗"})]})]}),p&&j&&(0,d.jsx)("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--border)",background:"var(--surface-2)"},children:j}),g&&(0,d.jsx)("div",{style:{padding:"8px 16px",borderBottom:"1px solid var(--border)",fontSize:12,color:"var(--muted)",background:"var(--surface-2)",lineHeight:1.6},children:g}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"0 4px 0 16px",gap:6},children:[(0,d.jsx)("input",{type:n?"text":"password",value:l,onChange:a=>m(a.target.value),placeholder:k,style:{flex:1,background:"transparent",border:"none",padding:"12px 0",color:"var(--text)",fontSize:13,fontFamily:l?"var(--font-mono)":"var(--font-sans)",outline:"none"}}),(0,d.jsx)("button",{type:"button",onClick:()=>o(a=>!a),style:{background:"none",border:"none",cursor:"pointer",color:"var(--subtle)",fontSize:12,padding:"8px",fontFamily:"var(--font-sans)",lineHeight:1},children:n?(0,d.jsx)(h,{size:14}):(0,d.jsx)(i,{size:14})})]})]})}let v={wrap:{borderRadius:8,overflow:"hidden",border:"1px solid #e0e0e0",fontFamily:"Lato, -apple-system, sans-serif",fontSize:12},chrome:{background:"#f1f1f1",padding:"6px 10px",borderBottom:"1px solid #ddd",display:"flex",alignItems:"center",gap:8},urlBar:{flex:1,background:"#fff",border:"1px solid #ddd",borderRadius:4,padding:"3px 8px",fontSize:10.5,color:"#555",fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},sectionTitle:{fontSize:12,fontWeight:700,color:"#1d1c1d",marginBottom:10},token:{fontSize:11,fontFamily:"monospace",color:"#1d1c1d",letterSpacing:1},greenBtn:{background:"#007a5a",color:"#fff",border:"none",borderRadius:4,padding:"5px 10px",fontSize:11,fontWeight:700,cursor:"default",boxShadow:"0 0 0 3px rgba(0,122,90,0.25)"},badge:{background:"#e8f5f0",color:"#007a5a",border:"1px solid #b8dfd4",borderRadius:3,padding:"1px 6px",fontSize:10.5,fontWeight:600},highlight:{outline:"2.5px solid #007a5a",outlineOffset:2,borderRadius:4}};function w({url:a}){return(0,d.jsxs)("div",{style:v.chrome,children:[(0,d.jsx)("div",{style:{display:"flex",gap:4},children:["#ff5f57","#febc2e","#28c840"].map(a=>(0,d.jsx)("div",{style:{width:8,height:8,borderRadius:"50%",background:a}},a))}),(0,d.jsx)("div",{style:v.urlBar,children:a})]})}function x({url:a,activeNav:b,children:c}){return(0,d.jsxs)("div",{style:v.wrap,children:[(0,d.jsx)(w,{url:a}),(0,d.jsxs)("div",{style:{display:"flex",background:"#fff"},children:[(0,d.jsx)("div",{style:{width:148,background:"#f8f8f8",borderRight:"1px solid #e0e0e0",padding:"10px 0",flexShrink:0},children:["Basic Information","Socket Mode","Install App","OAuth & Permissions","Event Subscriptions","App Manifest"].map(a=>(0,d.jsx)("div",{style:{padding:"5px 12px",fontSize:11,cursor:"default",background:a===b?"#e8e8e8":"transparent",color:a===b?"#1d1c1d":"#616061",fontWeight:a===b?700:400,borderLeft:a===b?"2px solid #007a5a":"2px solid transparent"},children:a},a))}),(0,d.jsx)("div",{style:{flex:1,padding:"14px 16px",minWidth:0},children:c})]})]})}function y(){return(0,d.jsxs)(x,{url:"api.slack.com/apps/A.../oauth",activeNav:"OAuth & Permissions",children:[(0,d.jsxs)("div",{style:{background:"#fff8e6",border:"1px solid #f5c842",borderRadius:5,padding:"7px 10px",marginBottom:10,fontSize:11,color:"#7a5c00",lineHeight:1.5,display:"flex",alignItems:"flex-start",gap:6},children:[(0,d.jsx)(j,{size:12,style:{flexShrink:0,marginTop:1}}),(0,d.jsxs)("span",{children:["Token only appears after ",(0,d.jsx)("strong",{children:"Install to Workspace"})," (sidebar → Install App)"]})]}),(0,d.jsx)("div",{style:v.sectionTitle,children:"OAuth Tokens"}),(0,d.jsxs)("div",{style:{border:"1px solid #e8e8e8",borderRadius:5,overflow:"hidden"},children:[(0,d.jsxs)("div",{style:{padding:"8px 10px",background:"#fafafa",borderBottom:"1px solid #e8e8e8"},children:[(0,d.jsx)("div",{style:{fontSize:11,color:"#616061",marginBottom:1},children:"Bot User OAuth Token"}),(0,d.jsx)("div",{style:{...v.token,fontSize:10.5},children:"xoxb-••••••••••••-••••••••••••-••••••••••••"}),(0,d.jsx)("div",{style:{fontSize:10,color:"#616061",marginTop:2},children:"Access Level: Workspace"})]}),(0,d.jsx)("div",{style:{padding:"7px 10px",display:"flex",justifyContent:"flex-end"},children:(0,d.jsx)("button",{style:{...v.greenBtn,...v.highlight},children:"Copy"})})]})]})}function z(){return(0,d.jsxs)(x,{url:"api.slack.com/apps/A.../general",activeNav:"Basic Information",children:[(0,d.jsx)("div",{style:v.sectionTitle,children:"App-Level Tokens"}),(0,d.jsx)("div",{style:{fontSize:11,color:"#616061",marginBottom:10,lineHeight:1.5},children:"App-level tokens represent your app across organizations."}),(0,d.jsx)("div",{style:{marginBottom:10},children:(0,d.jsx)("button",{style:{...v.greenBtn,...v.highlight},children:"Generate Token and Scopes"})}),(0,d.jsxs)("div",{style:{border:"1px solid #e8e8e8",borderRadius:5,padding:"8px 10px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"#1d1c1d",marginBottom:4},children:"SlackHive"}),(0,d.jsx)("span",{style:v.badge,children:"connections:write"})]}),(0,d.jsx)("div",{style:v.token,children:"xapp-••••••••••••"})]})]})}function A(){return(0,d.jsxs)(x,{url:"api.slack.com/apps/A.../general",activeNav:"Basic Information",children:[(0,d.jsx)("div",{style:v.sectionTitle,children:"App Credentials"}),(0,d.jsx)("div",{style:{fontSize:11,color:"#616061",marginBottom:10,lineHeight:1.5},children:"These credentials allow your app to access the Slack API. Keep them secret."}),[{label:"App ID",value:"A0AN••••••9",mono:!0},{label:"Client ID",value:"9186••••••••••••••••",mono:!0},{label:"Client Secret",value:"••••••••••",mono:!0}].map(a=>(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",padding:"5px 0",borderBottom:"1px solid #f0f0f0",fontSize:11,color:"#616061"},children:[(0,d.jsx)("span",{children:a.label}),(0,d.jsx)("span",{style:{fontFamily:"monospace",color:"#1d1c1d"},children:a.value})]},a.label)),(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 10px",marginTop:6,border:"1px solid #e8e8e8",borderRadius:5,...v.highlight},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"#1d1c1d",marginBottom:2},children:"Signing Secret"}),(0,d.jsx)("div",{style:v.token,children:"••••••••••••••••••••••••"})]}),(0,d.jsx)("button",{style:v.greenBtn,children:"Show"})]})]})}function B({children:a}){return(0,d.jsx)("kbd",{style:{display:"inline-block",fontFamily:"var(--font-sans)",fontSize:11.5,fontWeight:600,background:"var(--surface-3)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:5,padding:"1px 7px",lineHeight:1.7,whiteSpace:"nowrap"},children:a})}function C({state:a,update:b,catalog:c}){return(0,d.jsxs)("div",{children:[(0,d.jsx)(E,{step:4,title:"Tools & Skills",desc:"Attach MCP servers and pick a starting skill template. You can change these anytime."}),(0,d.jsxs)("div",{style:{marginBottom:22},children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:8,letterSpacing:"0.06em",textTransform:"uppercase"},children:"MCP Servers"}),0===c.length?(0,d.jsxs)("div",{style:{border:"1px dashed var(--border)",borderRadius:8,padding:"16px",fontSize:12.5,color:"var(--subtle)",textAlign:"center"},children:["No MCP servers yet — you can add them after creation in ",(0,d.jsx)("strong",{style:{color:"var(--muted)"},children:"Settings → MCP Catalog"})]}):(0,d.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:c.map((e,f)=>(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:12,padding:"11px 14px",cursor:e.enabled?"pointer":"not-allowed",borderBottom:f<c.length-1?"1px solid var(--border)":"none",opacity:e.enabled?1:.4,transition:"background 0.12s"},onMouseEnter:a=>{e.enabled&&(a.currentTarget.style.background="rgba(255,255,255,0.03)")},onMouseLeave:a=>{a.currentTarget.style.background="transparent"},children:[(0,d.jsx)("input",{type:"checkbox",checked:a.mcpServerIds.includes(e.id),onChange:()=>{var c;return c=e.id,void b({mcpServerIds:a.mcpServerIds.includes(c)?a.mcpServerIds.filter(a=>a!==c):[...a.mcpServerIds,c]})},disabled:!e.enabled,style:{accentColor:"var(--accent)",width:14,height:14}}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,d.jsx)("span",{style:{fontSize:13,fontWeight:500,color:"var(--text)"},children:e.name}),(0,d.jsx)("span",{style:{fontSize:10.5,fontFamily:"var(--font-mono)",color:"var(--muted)",background:"var(--border)",padding:"1px 6px",borderRadius:4},children:e.type})]}),e.description&&(0,d.jsx)("p",{style:{margin:0,fontSize:11.5,color:"var(--subtle)"},children:e.description})]})]},e.id))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:8,letterSpacing:"0.06em",textTransform:"uppercase"},children:"Skill Template"}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:[o.map(c=>{let e=a.skillTemplate===c.value&&!a.importPayload;return(0,d.jsxs)("label",{style:{padding:"12px 14px",border:`1px solid ${e?"var(--accent)":"var(--border)"}`,borderRadius:8,cursor:"pointer",background:e?"rgba(59,130,246,0.08)":"transparent",transition:"all 0.15s"},children:[(0,d.jsx)("input",{type:"radio",name:"template",value:c.value,checked:e,onChange:()=>b({skillTemplate:c.value,importPayload:null}),style:{display:"none"}}),(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:e?"var(--accent)":"var(--text)",marginBottom:2},children:c.label}),(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--subtle)"},children:c.desc})]},c.value)}),(()=>{let c=!!a.importPayload;return(0,d.jsx)("div",{style:{padding:"12px 14px",border:`1px solid ${c?"#8b5cf6":"var(--border)"}`,borderRadius:8,background:c?"rgba(139,92,246,0.08)":"transparent",transition:"all 0.15s",gridColumn:"span 2"},children:(0,d.jsx)(r,{value:a.importPayload,onChange:a=>b({importPayload:a}),compact:!0})})})()]})]})]})}function D({state:a,update:b,catalog:c,agents:e}){let f=e.filter(b=>a.reportsToIds.includes(b.id)),g=c.filter(b=>a.mcpServerIds.includes(b.id)),h=a.importPayload?`Import (${a.importPayload.skills.length} skills)`:o.find(b=>b.value===a.skillTemplate)?.label??a.skillTemplate,i=a.isBoss?"—":f.length>0?f.map(a=>a.name).join(", "):"None";return(0,d.jsxs)("div",{children:[(0,d.jsx)(E,{step:a.isBoss?4:5,title:"Looks good?",desc:"Review the details below, then hit Create Agent to launch."}),(0,d.jsx)("div",{style:{background:"var(--surface-2)",border:"1px solid var(--border)",borderRadius:10,overflow:"hidden",marginBottom:18},children:[{label:"Name",value:a.name,mono:!1},{label:"Slug",value:`@${a.slug}`,mono:!0},{label:"Model",value:a.model,mono:!0},{label:"Role",value:a.isBoss?"Boss (orchestrator)":"Specialist",mono:!1},{label:"Reports to",value:i,mono:!1},{label:"Description",value:a.description||"—",mono:!1},{label:"Bot Token",value:`${a.slackBotToken.slice(0,12)}…`,mono:!0},{label:"App Token",value:`${a.slackAppToken.slice(0,12)}…`,mono:!0},{label:"Signing Secret",value:"••••••••",mono:!0},...!a.isBoss?[{label:"MCPs",value:g.length>0?g.map(a=>a.name).join(", "):"None",mono:!1},{label:"Skill Template",value:h,mono:!1}]:[{label:"Skills",value:"Auto-generated from team registry",mono:!1}]].map((a,b,c)=>(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:12,padding:"10px 16px",borderBottom:b<c.length-1?"1px solid var(--border)":"none"},children:[(0,d.jsx)("span",{style:{width:130,flexShrink:0,fontSize:12,color:"var(--subtle)"},children:a.label}),(0,d.jsx)("span",{style:{fontSize:13,color:"var(--text)",fontFamily:a.mono?"var(--font-mono)":"var(--font-sans)"},children:a.value})]},a.label))}),(0,d.jsx)("div",{style:{background:"#f0fdf4",border:"1px solid #bbf7d0",borderRadius:"var(--radius)",padding:"14px 16px",fontSize:13,color:"#15803d",lineHeight:1.65},children:"Once created, the runner picks up the agent automatically and connects to Slack. Manage skills, MCPs, and channel permissions from the agent detail page."})]})}function E({step:a,title:b,desc:c}){return(0,d.jsxs)("div",{style:{marginBottom:22},children:[(0,d.jsxs)("div",{style:{fontSize:11,fontWeight:600,color:"var(--accent)",letterSpacing:"0.08em",textTransform:"uppercase",marginBottom:4},children:["Step ",a]}),(0,d.jsx)("h2",{style:{margin:"0 0 4px",fontSize:18,fontWeight:700,color:"var(--text)",letterSpacing:"-0.02em"},children:b}),(0,d.jsx)("p",{style:{margin:0,fontSize:13,color:"var(--muted)"},children:c})]})}function F({label:a,value:b,onChange:c,placeholder:e,hint:f,type:g="text"}){return(0,d.jsxs)("div",{style:{marginBottom:14},children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:a}),(0,d.jsx)("input",{type:g,value:b,onChange:a=>c(a.target.value),placeholder:e,style:{width:"100%",background:"var(--surface-2)",border:"1.5px solid var(--border)",borderRadius:"var(--radius)",padding:"10px 14px",color:"var(--text)",fontSize:14,fontFamily:"var(--font-sans)",outline:"none",transition:"border-color 0.15s"},onFocus:a=>a.currentTarget.style.borderColor="var(--accent)",onBlur:a=>a.currentTarget.style.borderColor="var(--border)"}),f&&(0,d.jsx)("p",{style:{margin:"5px 0 0",fontSize:12,color:"var(--subtle)"},children:f})]})}function G({label:a,value:b,onChange:c,placeholder:e,hint:f,rows:g=3}){return(0,d.jsxs)("div",{style:{marginBottom:14},children:[(0,d.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:500,color:"var(--muted)",marginBottom:5},children:a}),(0,d.jsx)("textarea",{value:b,onChange:a=>c(a.target.value),placeholder:e,rows:g,style:{width:"100%",background:"var(--surface-2)",border:"1.5px solid var(--border)",borderRadius:"var(--radius)",padding:"10px 14px",color:"var(--text)",fontSize:14,fontFamily:"var(--font-sans)",outline:"none",resize:"vertical",transition:"border-color 0.15s",lineHeight:1.55},onFocus:a=>a.currentTarget.style.borderColor="var(--accent)",onBlur:a=>a.currentTarget.style.borderColor="var(--border)"}),f&&(0,d.jsx)("p",{style:{margin:"5px 0 0",fontSize:12,color:"var(--subtle)"},children:f})]})}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[8819,1157,7171],()=>b(b.s=6626));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["/agents/new/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":["5700","static/chunks/app/agents/new/page-bf11cf8901c7e2cd.js"],"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":[],"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/agents/new/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 @@
|
|
|
1
|
+
"use strict";(()=>{var a={};a.id=2231,a.ids=[2231],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17020:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>l,GET:()=>j,POST:()=>k});var e=c(53444),f=c(46494),g=c(16434),h=c(61822),i=a([f,g,h]);async function j(a,{params:b}){let{id:c}=await b,d=(0,h.K5)(a);if(!d)return e.NextResponse.json({error:"Unauthorized"},{status:401});if("admin"===d.role||"superadmin"===d.role){let[a,b]=await Promise.all([(0,g.jx)(c),(0,g.CF)()]);return e.NextResponse.json({writeUsers:a,allUsers:b.map(a=>({id:a.id,username:a.username,role:a.role}))})}let f=await (0,g.AN)(c,d.username,d.role);return e.NextResponse.json({canWrite:f})}async function k(a,{params:b}){let c=(0,f.F8)(a);if(c)return c;let{id:d}=await b,{userId:h}=await a.json().catch(()=>({}));return h?(await (0,g.NE)(d,h),new e.NextResponse(null,{status:204})):e.NextResponse.json({error:"userId required"},{status:400})}async function l(a,{params:b}){let c=(0,f.F8)(a);if(c)return c;let{id:d}=await b,{userId:h}=await a.json().catch(()=>({}));return h?(await (0,g.Hc)(d,h),new e.NextResponse(null,{status:204})):e.NextResponse.json({error:"userId required"},{status:400})}[f,g,h]=i.then?(await i)():i,d()}catch(a){d(a)}})},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28354:a=>{a.exports=require("util")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},34631:a=>{a.exports=require("tls")},41204:a=>{a.exports=require("string_decoder")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46494:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{F8:()=>i,k5:()=>k,oI:()=>j});var e=c(53444),f=c(61822),g=c(16434),h=a([f,g]);[f,g]=h.then?(await h)():h;let l={viewer:0,editor:1,admin:2,superadmin:3};function i(a){let b=(0,f.K5)(a);return b?(l[b.role]??-1)<l.editor?e.NextResponse.json({error:"Insufficient permissions"},{status:403}):null:e.NextResponse.json({error:"Not authenticated"},{status:401})}async function j(a,b){let c=(0,f.K5)(a);return c?await (0,g.AN)(b,c.username,c.role)?null:e.NextResponse.json({error:"Insufficient permissions"},{status:403}):e.NextResponse.json({error:"Not authenticated"},{status:401})}function k(a){let b=(0,f.K5)(a);return b?(l[b.role]??-1)<l.admin?e.NextResponse.json({error:"Insufficient permissions"},{status:403}):null:e.NextResponse.json({error:"Not authenticated"},{status:401})}d()}catch(a){d(a)}})},55511:a=>{a.exports=require("crypto")},61822:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$u:()=>k,Er:()=>l,K5:()=>m,Sg:()=>j,cl:()=>n,z4:()=>r});var e=c(55511),f=c(92287),g=c.n(f),h=c(16434),i=a([h]);if(h=(i.then?(await i)():i)[0],!process.env.CI&&(!process.env.AUTH_SECRET||!process.env.ADMIN_PASSWORD))throw Error("AUTH_SECRET and ADMIN_PASSWORD must be set in production. See .env.example.");let o=process.env.AUTH_SECRET||"change-this-secret-in-production",p=process.env.ADMIN_USERNAME||"admin",q=process.env.ADMIN_PASSWORD||"changeme",r="auth_session";function j(a){let b=Buffer.from(JSON.stringify(a)).toString("base64url"),c=e.createHmac("sha256",o).update(b).digest("base64url");return`${b}.${c}`}async function k(a,b){if(a===p&&b===q)return{username:a,role:"superadmin"};let c=await (0,h.JE)(a);return c&&await g().compare(b,c.passwordHash)?{username:c.username,role:c.role}:null}async function l(a){return g().hash(a,10)}function m(a){let b=(a.headers.get("cookie")||"").match(RegExp(`${r}=([^;]+)`));return b?function(a){let b=a.split(".");if(2!==b.length)return null;let[c,d]=b,f=e.createHmac("sha256",o).update(c).digest("base64url");if(d!==f)return null;try{return JSON.parse(Buffer.from(c,"base64url").toString())}catch{return null}}(decodeURIComponent(b[1])):null}function n(a,b){let c=m(a);if(!c)throw Error("Not authenticated");let d={viewer:0,editor:1,admin:2,superadmin:3};if((d[c.role]??-1)<(d[b]??0))throw Error("Insufficient permissions");return c}d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64939:a=>{a.exports=import("pg")},73590:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>x,patchFetch:()=>w,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var e=c(26421),f=c(97714),g=c(85681),h=c(22369),i=c(37587),j=c(261),k=c(46537),l=c(3463),m=c(1889),n=c(85250),o=c(23620),p=c(29790),q=c(67876),r=c(57749),s=c(86439),t=c(40139),u=c(17020),v=a([u]);u=(v.then?(await v)():v)[0];let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/agents/[id]/access/route",pathname:"/api/agents/[id]/access",filename:"route",bundlePath:"app/api/agents/[id]/access/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/admin/aman/slackhive/apps/web/src/app/api/agents/[id]/access/route.ts",nextConfigOutput:"",userland:u}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function w(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function x(a,b,c){var d;let e="/api/agents/[id]/access/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G=D,G="/index"===G?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.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=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},79551:a=>{a.exports=require("url")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[8819,6791,3444,2287,4012],()=>b(b.s=73590));module.exports=c})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../webpack-runtime.js","../../../../../chunks/8819.js","../../../../../chunks/6791.js","../../../../../chunks/3444.js","../../../../../chunks/2287.js","../../../../../chunks/4012.js","route_client-reference-manifest.js","../../../../../../../package.json","../../../../../../../../../packages/shared/package.json","../../../../../../../../../package.json"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/agents/[id]/access/route"]={"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":[],"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/api/agents/route":[],"/home/admin/aman/slackhive/apps/web/src/app/api/agents/[id]/route":[],"/home/admin/aman/slackhive/apps/web/src/app/api/agents/[id]/access/route":[]},"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}}}}
|