@shepai/cli 1.182.1 → 1.183.0
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/apis/json-schema/Application.yaml +7 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts +3 -3
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.js +13 -21
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts +19 -3
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.js +37 -4
- package/dist/packages/core/src/application/use-cases/applications/resume-application-workflow.use-case.d.ts +30 -0
- package/dist/packages/core/src/application/use-cases/applications/resume-application-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/resume-application-workflow.use-case.js +122 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +8 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +5 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.js +4 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/058-add-setup-complete-to-applications.d.ts +5 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/058-add-setup-complete-to-applications.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/058-add-setup-complete-to-applications.js +10 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/059-add-agent-session-id-to-applications.d.ts +5 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/059-add-agent-session-id-to-applications.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/059-add-agent-session-id-to-applications.js +10 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.js +10 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +4 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.js +4 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.js +4 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +11 -6
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts +2 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.js +2 -2
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +3 -2
- package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts +16 -5
- package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/pr-branding.js +38 -7
- package/dist/src/presentation/web/app/api/applications/[id]/resume/route.d.ts +20 -0
- package/dist/src/presentation/web/app/api/applications/[id]/resume/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/resume/route.js +25 -0
- package/dist/src/presentation/web/app/api/applications/[id]/route.d.ts +19 -0
- package/dist/src/presentation/web/app/api/applications/[id]/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/route.js +46 -0
- package/dist/src/presentation/web/app/api/applications/route.d.ts +9 -0
- package/dist/src/presentation/web/app/api/applications/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/route.js +20 -0
- package/dist/src/presentation/web/app/application/[id]/page.d.ts +4 -4
- package/dist/src/presentation/web/app/application/[id]/page.d.ts.map +1 -1
- package/dist/src/presentation/web/app/application/[id]/page.js +2 -61
- package/dist/src/presentation/web/app/applications/page.d.ts +2 -0
- package/dist/src/presentation/web/app/applications/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/applications/page.js +5 -0
- package/dist/src/presentation/web/components/assistant-ui/thread.js +2 -2
- package/dist/src/presentation/web/components/common/application-node/application-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/application-node/application-node.js +3 -37
- package/dist/src/presentation/web/components/features/application-page/application-page-loader.d.ts +4 -0
- package/dist/src/presentation/web/components/features/application-page/application-page-loader.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/application-page-loader.js +47 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/application-page/application-page.js +75 -54
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.js +1 -0
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts +3 -1
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.js +6 -2
- package/dist/src/presentation/web/components/features/applications/application-card.d.ts +7 -0
- package/dist/src/presentation/web/components/features/applications/application-card.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/applications/application-card.js +82 -0
- package/dist/src/presentation/web/components/features/applications/application-card.stories.d.ts +13 -0
- package/dist/src/presentation/web/components/features/applications/application-card.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/applications/application-card.stories.js +69 -0
- package/dist/src/presentation/web/components/features/applications/applications-page-client.d.ts +5 -0
- package/dist/src/presentation/web/components/features/applications/applications-page-client.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/applications/applications-page-client.js +28 -0
- package/dist/src/presentation/web/components/features/applications/applications-page-client.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/features/applications/applications-page-client.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/applications/applications-page-client.stories.js +93 -0
- package/dist/src/presentation/web/components/features/chat/ChatComposer.d.ts +3 -1
- package/dist/src/presentation/web/components/features/chat/ChatComposer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatComposer.js +2 -2
- package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts +3 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.js +4 -3
- package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts +6 -1
- package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/StepTracker.js +23 -20
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +3 -2
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +3 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +2 -2
- package/dist/src/presentation/web/components/features/settings/language-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/language-settings-section.js +1 -0
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.js +5 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +23 -3
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
- package/dist/src/presentation/web/lib/derive-app-status.d.ts +23 -0
- package/dist/src/presentation/web/lib/derive-app-status.d.ts.map +1 -0
- package/dist/src/presentation/web/lib/derive-app-status.js +89 -0
- package/dist/src/presentation/web/lib/i18n.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/i18n.js +3 -0
- package/dist/translations/ar/web.json +2 -1
- package/dist/translations/de/web.json +2 -1
- package/dist/translations/en/web.json +2 -1
- package/dist/translations/es/web.json +2 -1
- package/dist/translations/fr/web.json +2 -1
- package/dist/translations/he/web.json +2 -1
- package/dist/translations/pt/web.json +2 -1
- package/dist/translations/ru/web.json +2 -1
- package/dist/translations/uk/web.json +2 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +4 -0
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/routes-manifest.json +28 -0
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +32 -32
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +33 -33
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +41 -41
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +41 -41
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/chat/page.js +5 -5
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +33 -33
- package/web/.next/server/app/(dashboard)/create/page.js +5 -5
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +41 -41
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +5 -5
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +41 -41
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +5 -5
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/page.js +5 -5
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +5 -5
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +5 -5
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error/page.js +1 -1
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/_not-found/page.js +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/applications/[id]/resume/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/resume/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/resume/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/resume/route.js +7 -0
- package/web/.next/server/app/api/applications/[id]/resume/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/resume/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/resume/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/applications/[id]/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/route.js +7 -0
- package/web/.next/server/app/api/applications/[id]/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/applications/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/route.js +7 -0
- package/web/.next/server/app/api/applications/route.js.map +5 -0
- package/web/.next/server/app/api/applications/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +45 -30
- package/web/.next/server/app/application/[id]/page.js +3 -3
- package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
- package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/applications/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/applications/page/build-manifest.json +18 -0
- package/web/.next/server/app/applications/page/next-font-manifest.json +6 -0
- package/web/.next/server/app/applications/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/applications/page/server-reference-manifest.json +230 -0
- package/web/.next/server/app/applications/page.js +19 -0
- package/web/.next/server/app/applications/page.js.map +5 -0
- package/web/.next/server/app/applications/page.js.nft.json +1 -0
- package/web/.next/server/app/applications/page_client-reference-manifest.js +2 -0
- package/web/.next/server/app/features/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/features/page.js +1 -1
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/settings/page.js +1 -1
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/skills/page.js +1 -1
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/tools/page.js +1 -1
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/version/page.js +1 -1
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +4 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_applications_[id]_route_actions_e31b426d.js +3 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_applications_[id]_route_actions_e31b426d.js.map +1 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_applications_route_actions_2b7d20d0.js +3 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_applications_route_actions_2b7d20d0.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__3bb635e8._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__3bb635e8._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__ac0027b4._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__ac0027b4._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__b2a4bfcc._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c8f90b29._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__ce82df38._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__ce82df38._.js.map +1 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_resume_route_actions_3a66d646.js +3 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_resume_route_actions_3a66d646.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4f9eef62.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4f9eef62.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_ffa16a22.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_ffa16a22.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_a1a998f9.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_a1a998f9.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__04f4895b._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__04f4895b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__347fd0f6._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__347fd0f6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__46dd2baf._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__46dd2baf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__73cb4ff6._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__73cb4ff6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__87bc4dac._.js → [root-of-the-server]__86ff0bc5._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__91c50abe._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__91c50abe._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a48af49f._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a48af49f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d5e22d1a._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__7aa484f5._.js.map → [root-of-the-server]__d5e22d1a._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e0aa2bcb._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e0aa2bcb._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e265da61._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ef0b8905._.js +12 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ef0b8905._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f5614810._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__090f24cb._.js.map → [root-of-the-server]__f5614810._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fe5db6b2._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fe5db6b2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_037e85c7._.js +3 -0
- package/web/.next/server/chunks/ssr/_037e85c7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_774cbf7d._.js → _133ae3de._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_774cbf7d._.js.map → _133ae3de._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_1879404a._.js +1 -1
- package/web/.next/server/chunks/ssr/_1879404a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_29b8ed64._.js +3 -0
- package/web/.next/server/chunks/ssr/_29b8ed64._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_2bc302d1._.js +3 -0
- package/web/.next/server/chunks/ssr/_2bc302d1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_35294e79._.js +3 -0
- package/web/.next/server/chunks/ssr/_35294e79._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_3683083e._.js +3 -0
- package/web/.next/server/chunks/ssr/_3683083e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_4b57bcc3._.js +9 -0
- package/web/.next/server/chunks/ssr/_4b57bcc3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_519d77a9._.js +3 -0
- package/web/.next/server/chunks/ssr/_519d77a9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_82db03fd._.js +3 -0
- package/web/.next/server/chunks/ssr/_82db03fd._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_8c3086bf._.js +3 -0
- package/web/.next/server/chunks/ssr/_8c3086bf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_9173e475._.js +21 -0
- package/web/.next/server/chunks/ssr/_9173e475._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_946a7fc6._.js +1 -1
- package/web/.next/server/chunks/ssr/_946a7fc6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_81e7a131._.js → _a08047ef._.js} +2 -2
- package/web/.next/server/chunks/ssr/_a08047ef._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_bc03ac82._.js +4 -0
- package/web/.next/server/chunks/ssr/_bc03ac82._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_d4c0792b._.js +3 -0
- package/web/.next/server/chunks/ssr/_d4c0792b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_e61d032d._.js +3 -0
- package/web/.next/server/chunks/ssr/_e61d032d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_e65abbd1._.js +3 -0
- package/web/.next/server/chunks/ssr/_e65abbd1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js +1 -1
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_28a53b5d._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_28a53b5d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_47181610._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_47181610._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_5d3f4199._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_5d3f4199._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_61d96ba8._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_61d96ba8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6994959a._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6994959a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_77dadf68._.js +32 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_77dadf68._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_c3f6f57e.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_c3f6f57e.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_8514dfcd._.js +32 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_8514dfcd._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_b95ed206._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_b95ed206._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_c543cf3e._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_c543cf3e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_dropdown-menu_tsx_229332e3._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_dropdown-menu_tsx_229332e3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/translations_1562ae1a._.js +3 -0
- package/web/.next/server/chunks/ssr/translations_1562ae1a._.js.map +1 -0
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +184 -72
- package/web/.next/static/chunks/019e71634c720ede.js +1 -0
- package/web/.next/static/chunks/040c5ff84a8ae1a3.js +7 -0
- package/web/.next/static/chunks/092ac28f5a4422a0.js +19 -0
- package/web/.next/static/chunks/0bd78b0cf1c1421f.js +1 -0
- package/web/.next/static/chunks/{996e4ea45364bf3c.js → 18c21c4f9f58b69a.js} +3 -3
- package/web/.next/static/chunks/2b5aea3575387b3a.js +1 -0
- package/web/.next/static/chunks/2cbe80f8e84d59a8.js +1 -0
- package/web/.next/static/chunks/{503d2e86f83285f9.js → 3219b06f6a34e573.js} +1 -1
- package/web/.next/static/chunks/37e434e579ecfa02.js +1 -0
- package/web/.next/static/chunks/4a7cf3b09e0495a4.js +1 -0
- package/web/.next/static/chunks/{83fc7ea32e18c9a5.js → 4ea617a22e21fb04.js} +1 -1
- package/web/.next/static/chunks/54d1d5a646a12d76.js +1 -0
- package/web/.next/static/chunks/{9e9b60f127270dfd.js → 553be530f22710a7.js} +1 -1
- package/web/.next/static/chunks/5795b9f399523c9e.js +1 -0
- package/web/.next/static/chunks/{d488e6b5cbbc6833.js → 6a88df64eaeb6322.js} +1 -1
- package/web/.next/static/chunks/{2fe20598e1b4793a.js → 6b2859ea368e7df3.js} +3 -3
- package/web/.next/static/chunks/6d8cae68371a845d.js +1 -0
- package/web/.next/static/chunks/{a2601dbbcb657c7d.js → 78607d521d916531.js} +1 -1
- package/web/.next/static/chunks/{7bf6ed16395220c4.js → 7d5a7551d452463d.js} +2 -2
- package/web/.next/static/chunks/80e778136b2f4c92.js +1 -0
- package/web/.next/static/chunks/a62fb058d660bea3.js +3 -0
- package/web/.next/static/chunks/adf16efe8bac05e9.css +1 -0
- package/web/.next/static/chunks/b0474319e5a50043.js +1 -0
- package/web/.next/static/chunks/b85532fb1545927c.js +5 -0
- package/web/.next/static/chunks/e0ae4dbd97b7af4c.js +1 -0
- package/web/.next/static/chunks/{2af89379fde6831d.js → f70998ac93012aef.js} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__090f24cb._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js +0 -12
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7aa484f5._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__87bc4dac._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0277d3b5._.js +0 -21
- package/web/.next/server/chunks/ssr/_0277d3b5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_44531b76._.js +0 -9
- package/web/.next/server/chunks/ssr/_44531b76._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5dec4047._.js +0 -3
- package/web/.next/server/chunks/ssr/_5dec4047._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_73aa3b20._.js +0 -3
- package/web/.next/server/chunks/ssr/_73aa3b20._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_81e7a131._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_869a3a15._.js +0 -3
- package/web/.next/server/chunks/ssr/_869a3a15._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_b227ff50._.js +0 -3
- package/web/.next/server/chunks/ssr/_b227ff50._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_d75dcb43._.js +0 -3
- package/web/.next/server/chunks/ssr/_d75dcb43._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_e071ba48._.js +0 -3
- package/web/.next/server/chunks/ssr/_e071ba48._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_eff1b518._.js +0 -3
- package/web/.next/server/chunks/ssr/_eff1b518._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f227429a._.js +0 -3
- package/web/.next/server/chunks/ssr/_f227429a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +0 -32
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js.map +0 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +0 -3
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +0 -1
- package/web/.next/static/chunks/06b9d6dbf635c370.css +0 -1
- package/web/.next/static/chunks/1ae0cf5be30ef398.js +0 -1
- package/web/.next/static/chunks/3a71cab38909921e.js +0 -1
- package/web/.next/static/chunks/4e53adb5d07b7e3d.js +0 -1
- package/web/.next/static/chunks/5e7ac3508bef115f.js +0 -1
- package/web/.next/static/chunks/761a7c542b358739.js +0 -1
- package/web/.next/static/chunks/927442d2628f6e22.js +0 -1
- package/web/.next/static/chunks/a31f2264cedb23e9.js +0 -1
- package/web/.next/static/chunks/abf7d1b66555b758.js +0 -7
- package/web/.next/static/chunks/b99506a6f7bc2fa8.js +0 -1
- package/web/.next/static/chunks/d984d1d8d506291c.js +0 -7
- package/web/.next/static/chunks/e843a0d8e8c645c4.js +0 -1
- package/web/.next/static/chunks/f5ed0232d50b1ec8.js +0 -19
- /package/web/.next/static/{6GBQ7MHEYpZbJzqULwvXh → t-O8eMjJCUhhtd6CgtTXI}/_buildManifest.js +0 -0
- /package/web/.next/static/{6GBQ7MHEYpZbJzqULwvXh → t-O8eMjJCUhhtd6CgtTXI}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{6GBQ7MHEYpZbJzqULwvXh → t-O8eMjJCUhhtd6CgtTXI}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/message-square.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/globe.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/bot.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevron-up.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevron-down.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-check.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/use-merged-ref.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/deployment-id.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/wrench.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/trash-2.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/user.ts","../../../../../../../src/presentation/web/hooks/use-attachments.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/send-horizontal.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/copy.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/download.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/x.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/check.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-separator%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Bre_339be71113696df74cf881e475ee3eb9/node_modules/%40radix-ui/react-separator/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/separator.tsx","../../../../../../../src/presentation/web/hooks/use-sound.ts","../../../../../../../src/presentation/web/hooks/use-sound-enabled.ts","../../../../../../../src/presentation/web/hooks/use-sound-action.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-alert.ts","../../../../../../../src/presentation/web/hooks/feature-flags-context.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n key: '18887p',\n },\n ],\n];\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageSquare = createLucideIcon('message-square', __iconNode);\n\nexport default MessageSquare;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20', key: '13o1zl' }],\n ['path', { d: 'M2 12h20', key: '9i4pu4' }],\n];\n\n/**\n * @component @name Globe\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/globe\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Globe = createLucideIcon('globe', __iconNode);\n\nexport default Globe;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 8V4H8', key: 'hb8ula' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2', key: 'enze0r' }],\n ['path', { d: 'M2 14h2', key: 'vft8re' }],\n ['path', { d: 'M20 14h2', key: '4cs60a' }],\n ['path', { d: 'M15 13v2', key: '1xurst' }],\n ['path', { d: 'M9 13v2', key: 'rq6x2g' }],\n];\n\n/**\n * @component @name Bot\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bot = createLucideIcon('bot', __iconNode);\n\nexport default Bot;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm18 15-6-6-6 6', key: '153udz' }]];\n\n/**\n * @component @name ChevronUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronUp = createLucideIcon('chevron-up', __iconNode);\n\nexport default ChevronUp;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }]];\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('chevron-down', __iconNode);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n];\n\n/**\n * @component @name CircleCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleCheck = createLucideIcon('circle-check', __iconNode);\n\nexport default CircleCheck;\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","// This could also be a variable instead of a function, but some unit tests want to change the ID at\n// runtime. Even though that would never happen in a real deployment.\nexport function getDeploymentId(): string | undefined {\n return process.env.NEXT_DEPLOYMENT_ID\n}\n\nexport function getDeploymentIdQueryOrEmptyString(): string {\n let deploymentId = getDeploymentId()\n if (deploymentId) {\n return `?dpl=${deploymentId}`\n }\n return ''\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z',\n key: '1ngwbx',\n },\n ],\n];\n\n/**\n * @component @name Wrench\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/wrench\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Wrench = createLucideIcon('wrench', __iconNode);\n\nexport default Wrench;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M10 11v6', key: 'nco0om' }],\n ['path', { d: 'M14 11v6', key: 'outv1u' }],\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6', key: 'miytrc' }],\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2', key: 'e791ji' }],\n];\n\n/**\n * @component @name Trash2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash2 = createLucideIcon('trash-2', __iconNode);\n\nexport default Trash2;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2', key: '975kel' }],\n ['circle', { cx: '12', cy: '7', r: '4', key: '17ys0d' }],\n];\n\n/**\n * @component @name User\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst User = createLucideIcon('user', __iconNode);\n\nexport default User;\n","'use client';\n\nimport { useState, useCallback, useRef } from 'react';\n\nconst MAX_FILE_SIZE = 10 * 1024 * 1024; // 10 MB\n\n/** Minimal set of known-safe extensions (same as feature-create-drawer). */\nconst ALLOWED_EXTENSIONS = new Set([\n 'txt',\n 'md',\n 'csv',\n 'json',\n 'yaml',\n 'yml',\n 'xml',\n 'html',\n 'css',\n 'js',\n 'ts',\n 'jsx',\n 'tsx',\n 'py',\n 'rb',\n 'go',\n 'rs',\n 'java',\n 'kt',\n 'c',\n 'cpp',\n 'h',\n 'hpp',\n 'cs',\n 'swift',\n 'sh',\n 'bash',\n 'zsh',\n 'fish',\n 'ps1',\n 'bat',\n 'cmd',\n 'sql',\n 'graphql',\n 'proto',\n 'toml',\n 'ini',\n 'cfg',\n 'conf',\n 'env',\n 'dockerfile',\n 'makefile',\n 'cmake',\n 'gradle',\n 'sbt',\n 'lock',\n 'sum',\n 'mod',\n 'png',\n 'jpg',\n 'jpeg',\n 'gif',\n 'svg',\n 'webp',\n 'bmp',\n 'ico',\n 'avif',\n 'pdf',\n 'doc',\n 'docx',\n 'xls',\n 'xlsx',\n 'ppt',\n 'pptx',\n 'odt',\n 'ods',\n 'odp',\n 'zip',\n 'tar',\n 'gz',\n 'bz2',\n 'xz',\n '7z',\n 'rar',\n 'log',\n 'diff',\n 'patch',\n]);\n\nfunction getExtension(filename: string): string | null {\n const idx = filename.lastIndexOf('.');\n return idx > 0 ? filename.slice(idx + 1).toLowerCase() : null;\n}\n\nexport interface FormAttachment {\n id: string;\n name: string;\n size: number;\n mimeType: string;\n path: string;\n loading?: boolean;\n notes?: string;\n}\n\nexport function useAttachments() {\n const [attachments, setAttachments] = useState<FormAttachment[]>([]);\n const [uploadError, setUploadError] = useState<string | null>(null);\n const [isDragOver, setIsDragOver] = useState(false);\n const dragCounterRef = useRef(0);\n const sessionIdRef = useRef(crypto.randomUUID());\n\n const handleFiles = useCallback(async (fileList: File[]) => {\n setUploadError(null);\n\n for (const file of fileList) {\n if (file.size > MAX_FILE_SIZE) {\n setUploadError(`\"${file.name}\" exceeds 10 MB limit`);\n return;\n }\n const ext = getExtension(file.name);\n if (ext && !ALLOWED_EXTENSIONS.has(ext)) {\n setUploadError(`File type \"${ext}\" is not allowed`);\n return;\n }\n }\n\n for (const file of fileList) {\n const tempId = crypto.randomUUID();\n\n setAttachments((prev) => [\n ...prev,\n {\n id: tempId,\n name: file.name,\n size: file.size,\n mimeType: file.type || 'application/octet-stream',\n path: '',\n loading: true,\n },\n ]);\n\n try {\n const formData = new FormData();\n formData.append('file', file);\n formData.append('sessionId', sessionIdRef.current);\n\n const res = await fetch('/api/attachments/upload', {\n method: 'POST',\n body: formData,\n });\n\n if (!res.ok) {\n const body = await res.json().catch(() => ({ error: 'Upload failed' }));\n setAttachments((prev) => prev.filter((a) => a.id !== tempId));\n setUploadError(body.error ?? 'Upload failed');\n return;\n }\n\n const uploaded = await res.json();\n setAttachments((prev) => {\n const isDupe = prev.some((a) => a.id !== tempId && a.path === uploaded.path);\n if (isDupe) return prev.filter((a) => a.id !== tempId);\n return prev.map((a) =>\n a.id === tempId ? { ...uploaded, id: tempId, loading: false } : a\n );\n });\n } catch {\n setAttachments((prev) => prev.filter((a) => a.id !== tempId));\n setUploadError('Upload failed');\n }\n }\n }, []);\n\n const handleDragEnter = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n dragCounterRef.current += 1;\n if (dragCounterRef.current === 1) setIsDragOver(true);\n }, []);\n\n const handleDragLeave = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n dragCounterRef.current -= 1;\n if (dragCounterRef.current === 0) setIsDragOver(false);\n }, []);\n\n const handleDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n dragCounterRef.current = 0;\n setIsDragOver(false);\n const files = Array.from(e.dataTransfer.files);\n if (files.length > 0) void handleFiles(files);\n },\n [handleFiles]\n );\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent) => {\n const items = e.clipboardData?.items;\n if (!items) return;\n const files: File[] = [];\n for (const item of Array.from(items)) {\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (file) files.push(file);\n }\n }\n if (files.length > 0) {\n e.preventDefault();\n void handleFiles(files);\n }\n },\n [handleFiles]\n );\n\n const removeAttachment = useCallback((id: string) => {\n setAttachments((prev) => prev.filter((a) => a.id !== id));\n }, []);\n\n const updateNotes = useCallback((id: string, notes: string) => {\n setAttachments((prev) => prev.map((a) => (a.id === id ? { ...a, notes } : a)));\n }, []);\n\n const addAttachment = useCallback((file: Omit<FormAttachment, 'loading'>) => {\n setAttachments((prev) => {\n const isDupe = prev.some((a) => a.path === file.path);\n if (isDupe) return prev;\n return [...prev, { ...file, loading: false }];\n });\n }, []);\n\n const clearAttachments = useCallback(() => {\n setAttachments([]);\n setUploadError(null);\n }, []);\n\n const completedAttachments = attachments.filter((a) => !a.loading);\n\n return {\n attachments,\n completedAttachments,\n uploadError,\n isDragOver,\n handleFiles,\n handleDragEnter,\n handleDragLeave,\n handleDragOver,\n handleDrop,\n handlePaste,\n addAttachment,\n removeAttachment,\n updateNotes,\n clearAttachments,\n };\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z',\n key: '117uat',\n },\n ],\n ['path', { d: 'M6 12h16', key: 's4cdu5' }],\n];\n\n/**\n * @component @name SendHorizontal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/send-horizontal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SendHorizontal = createLucideIcon('send-horizontal', __iconNode);\n\nexport default SendHorizontal;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n 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',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n];\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon('triangle-alert', __iconNode);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2', key: '17jyea' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2', key: 'zix9uf' }],\n];\n\n/**\n * @component @name Copy\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/copy\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Copy = createLucideIcon('copy', __iconNode);\n\nexport default Copy;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }]];\n\n/**\n * @component @name Circle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Circle = createLucideIcon('circle', __iconNode);\n\nexport default Circle;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 15V3', key: 'm9g1x1' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4', key: 'ih7n3h' }],\n ['path', { d: 'm7 10 5 5 5-5', key: 'brsn70' }],\n];\n\n/**\n * @component @name Download\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/download\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Download = createLucideIcon('download', __iconNode);\n\nexport default Download;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n];\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('x', __iconNode);\n\nexport default X;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Separator as SeparatorPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","'use client';\n\nimport { useCallback, useEffect, useRef } from 'react';\nimport { useSoundEnabled } from './use-sound-enabled';\n\nconst SOUND_NAMES = [\n 'button',\n 'caution',\n 'celebration',\n 'disabled',\n 'notification',\n 'progress_loop',\n 'ringtone_loop',\n 'select',\n 'swipe',\n 'swipe_01',\n 'swipe_02',\n 'swipe_03',\n 'swipe_04',\n 'swipe_05',\n 'tap_01',\n 'tap_02',\n 'tap_03',\n 'tap_04',\n 'tap_05',\n 'toggle_off',\n 'toggle_on',\n 'transition_down',\n 'transition_up',\n 'type_01',\n 'type_02',\n 'type_03',\n 'type_04',\n 'type_05',\n] as const;\n\nexport type SoundName = (typeof SOUND_NAMES)[number];\n\nexport interface UseSoundOptions {\n volume?: number;\n loop?: boolean;\n}\n\nexport interface UseSoundResult {\n play: () => void;\n stop: () => void;\n isPlaying: boolean;\n}\n\n// Module-level cache: Audio objects are created once per sound name and reused\n// across component mounts to avoid re-downloading WAV files on every drawer open.\nconst audioCache = new Map<SoundName, HTMLAudioElement>();\n\nfunction getOrCreateAudio(name: SoundName): HTMLAudioElement {\n let audio = audioCache.get(name);\n if (!audio) {\n audio = new Audio(`/sounds/${name}.wav`);\n audio.preload = 'auto';\n audioCache.set(name, audio);\n }\n return audio;\n}\n\nexport function useSound(name: SoundName, options: UseSoundOptions = {}): UseSoundResult {\n const { volume = 1, loop = false } = options;\n const { enabled } = useSoundEnabled();\n const audioRef = useRef<HTMLAudioElement | null>(null);\n const isPlayingRef = useRef(false);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const audio = getOrCreateAudio(name);\n audio.loop = loop;\n audio.volume = Math.max(0, Math.min(1, volume));\n audio.addEventListener('ended', () => {\n isPlayingRef.current = false;\n });\n audioRef.current = audio;\n\n return () => {\n audio.pause();\n audioRef.current = null;\n isPlayingRef.current = false;\n };\n }, [name, loop, volume]);\n\n const play = useCallback(() => {\n if (!enabled) return;\n const audio = audioRef.current;\n if (!audio) return;\n audio.currentTime = 0;\n audio.play()?.catch((err) => {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(`[useSound] play(\"${name}\") blocked:`, err.message);\n }\n });\n isPlayingRef.current = true;\n }, [enabled, name]);\n\n const stop = useCallback(() => {\n const audio = audioRef.current;\n if (!audio) return;\n audio.pause();\n audio.currentTime = 0;\n isPlayingRef.current = false;\n }, []);\n\n return { play, stop, isPlaying: isPlayingRef.current };\n}\n\n/** All available sound names for enumeration (e.g. in Storybook). */\nexport { SOUND_NAMES };\n","'use client';\n\nimport { useCallback, useEffect, useState } from 'react';\n\nconst STORAGE_KEY = 'shep-sound-enabled';\nconst SYNC_EVENT = 'shep:sound-toggle';\n\nexport interface UseSoundEnabledResult {\n enabled: boolean;\n toggle: () => void;\n}\n\nexport function useSoundEnabled(): UseSoundEnabledResult {\n const [enabled, setEnabled] = useState(true);\n\n useEffect(() => {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored === 'false') setEnabled(false);\n\n // Sync across all useSoundEnabled instances in the same tab\n const onSync = (e: Event) => {\n setEnabled((e as CustomEvent<boolean>).detail);\n };\n window.addEventListener(SYNC_EVENT, onSync);\n return () => window.removeEventListener(SYNC_EVENT, onSync);\n }, []);\n\n const toggle = useCallback(() => {\n const next = !enabled;\n localStorage.setItem(STORAGE_KEY, String(next));\n setEnabled(next);\n window.dispatchEvent(new CustomEvent(SYNC_EVENT, { detail: next }));\n }, [enabled]);\n\n return { enabled, toggle };\n}\n","'use client';\n\nimport { useSound, type SoundName } from './use-sound';\nimport type { UseSoundResult } from './use-sound';\n\n/* ------------------------------------------------------------------ */\n/* Sound Action Map — single source of truth for action → sound */\n/* ------------------------------------------------------------------ */\n\n/** Maps semantic UI actions to their sound name and volume. */\nexport const SOUND_ACTION_MAP = {\n // Navigation (volume 0.2) — subtle taps for frequent interactions\n navigate: { sound: 'tap_01', volume: 0.2 },\n 'menu-item': { sound: 'tap_01', volume: 0.2 },\n\n // Toggles & selections (volume 0.3) — moderate feedback\n select: { sound: 'select', volume: 0.3 },\n 'toggle-on': { sound: 'toggle_on', volume: 0.3 },\n 'toggle-off': { sound: 'toggle_off', volume: 0.3 },\n click: { sound: 'tap_01', volume: 0.3 },\n cancel: { sound: 'transition_down', volume: 0.3 },\n expand: { sound: 'tap_01', volume: 0.2 },\n collapse: { sound: 'tap_01', volume: 0.2 },\n 'menu-open': { sound: 'select', volume: 0.3 },\n copy: { sound: 'select', volume: 0.3 },\n\n // Drawers & transitions (volume 0.4) — noticeable transitions\n 'drawer-open': { sound: 'transition_up', volume: 0.4 },\n 'drawer-close': { sound: 'transition_down', volume: 0.4 },\n submit: { sound: 'button', volume: 0.4 },\n\n // Significant actions (volume 0.5) — prominent feedback\n approve: { sound: 'celebration', volume: 0.5 },\n reject: { sound: 'caution', volume: 0.5 },\n create: { sound: 'transition_up', volume: 0.5 },\n delete: { sound: 'transition_down', volume: 0.5 },\n 'notification-success': { sound: 'celebration', volume: 0.5 },\n 'notification-error': { sound: 'caution', volume: 0.5 },\n 'notification-warning': { sound: 'notification', volume: 0.5 },\n 'notification-info': { sound: 'button', volume: 0.5 },\n} as const satisfies Record<string, { sound: SoundName; volume: number }>;\n\n/** Union of all semantic action names available in the sound system. */\nexport type SoundAction = keyof typeof SOUND_ACTION_MAP;\n\n/**\n * Returns `{ play, stop, isPlaying }` for the given semantic action.\n * Sound name and volume are resolved from `SOUND_ACTION_MAP`.\n */\nexport function useSoundAction(action: SoundAction): UseSoundResult {\n const { sound, volume } = SOUND_ACTION_MAP[action];\n return useSound(sound, { volume });\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12', key: '1pkeuh' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16', key: '4dfq90' }],\n];\n\n/**\n * @component @name CircleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleAlert = createLucideIcon('circle-alert', __iconNode);\n\nexport default CircleAlert;\n","'use client';\n\nimport { createContext, useContext, type ReactNode } from 'react';\nimport type { FeatureFlagsState } from '@/lib/feature-flags';\n\nconst defaultFlags: FeatureFlagsState = {\n skills: false,\n envDeploy: true,\n debug: false,\n githubImport: false,\n adoptBranch: false,\n gitRebaseSync: false,\n reactFileManager: false,\n inventory: false,\n};\n\nconst FeatureFlagsContext = createContext<FeatureFlagsState>(defaultFlags);\n\ninterface FeatureFlagsProviderProps {\n children: ReactNode;\n flags: FeatureFlagsState;\n}\n\n/**\n * Provides server-resolved feature flags to all client components.\n * Initialized in the root layout with values from the DB singleton,\n * avoiding client-side fallback to environment variables.\n */\nexport function FeatureFlagsProvider({ children, flags }: FeatureFlagsProviderProps) {\n return <FeatureFlagsContext.Provider value={flags}>{children}</FeatureFlagsContext.Provider>;\n}\n\n/**\n * Read feature flags from context. Returns all-flags-off defaults\n * when used outside a FeatureFlagsProvider (e.g., Storybook, tests).\n */\nexport function useFeatureFlags(): FeatureFlagsState {\n return useContext(FeatureFlagsContext);\n}\n"],"names":["useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","warnOnce","_","process","env","NODE_ENV","warnings","Set","msg","has","console","warn","add","getDeploymentId","getDeploymentIdQueryOrEmptyString","NEXT_DEPLOYMENT_ID","deploymentId"],"mappings":"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","ignoreList":[0,1,2,3,4,6,7,8,9,10,11,13,15,16,18,19,20,25]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[71238,a=>{"use strict";let b=(0,a.i(25700).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",()=>b],71238)},63698,a=>{"use strict";let b=(0,a.i(25700).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],63698)},50490,a=>{"use strict";let b=(0,a.i(25700).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>b],50490)},5698,a=>{"use strict";let b=(0,a.i(25700).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",()=>b],5698)},66691,45751,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(25674);let e=(0,d.createServerReference)("4019f70a0543cf0486aa16490cbe978f2a34a2347e",d.callServer,void 0,d.findSourceMapURL,"deployFeature"),f=(0,d.createServerReference)("40b3ff55d8c6015de48f42ddd0a47a270c41d82366",d.callServer,void 0,d.findSourceMapURL,"deployRepository"),g=(0,d.createServerReference)("4083635fcd972ab212a5a17bf919c30711e14955c3",d.callServer,void 0,d.findSourceMapURL,"deployApplication"),h=(0,d.createServerReference)("402f3ec754226496bb37e1bf882a17def51cf8ccb8",d.callServer,void 0,d.findSourceMapURL,"stopDeployment"),i=(0,d.createServerReference)("40ae71a74448e4f534011f66f784be8cc3005391e7",d.callServer,void 0,d.findSourceMapURL,"getDeploymentStatus");var j=a.i(87139);let k={status:null,url:null,targetType:null,hydrated:!1,deployLoading:!1,stopLoading:!1,deployError:null};class l{entries=new Map;listeners=new Map;globalListeners=new Set;hydrate(a){let b=new Set;for(let c of a)b.add(c.targetId),this.update(c.targetId,{status:c.state,url:c.url,targetType:c.targetType,hydrated:!0});for(let[a,c]of this.entries)!b.has(a)&&c.hydrated&&null!==c.status?this.update(a,{status:null,url:null}):b.has(a)||c.hydrated||this.update(a,{hydrated:!0})}getEntry(a){return this.entries.get(a)??k}update(a,b){let c={...this.entries.get(a)??k,...b};this.entries.set(a,c),this.notify(a)}setStatus(a,b){null===b?this.update(a,{status:null,url:null,hydrated:!0}):this.update(a,{status:b.state,url:b.url,hydrated:!0})}subscribe(a,b){let c=this.listeners.get(a);return c||(c=new Set,this.listeners.set(a,c)),c.add(b),()=>{c?.delete(b),c?.size===0&&this.listeners.delete(a)}}subscribeAll(a){return this.globalListeners.add(a),()=>{this.globalListeners.delete(a)}}notify(a){let b=this.listeners.get(a);if(b)for(let a of b)a();for(let a of this.globalListeners)a()}}a.s(["DeploymentStatusStore",()=>l,"EMPTY_ENTRY",0,k],45751);let m=(0,j.createLogger)("[DeploymentStatusProvider]"),n=new Set(["Booting","Ready"]),o=(0,c.createContext)(null);function p({initialDeployments:a,children:d}){let j=(0,c.useRef)(null);j.current||(j.current=new l,j.current.hydrate(a));let k=j.current;(0,c.useEffect)(()=>{k.hydrate(a)},[a,k]);let p=(0,c.useRef)(new Map),q=(0,c.useCallback)(a=>{let b=p.current.get(a);b&&(clearInterval(b),p.current.delete(a))},[]),r=(0,c.useCallback)(a=>{if(p.current.has(a))return;let b=setInterval(async()=>{let b;try{b=await i(a)}catch(b){m.warn(`poll failed for "${a}"`,b),k.setStatus(a,null),q(a);return}if(!b||"Stopped"===b.state){k.setStatus(a,null),q(a);return}k.setStatus(a,b)},3e3);p.current.set(a,b)},[k,q]);(0,c.useEffect)(()=>{let a=p.current,b=k.subscribeAll(()=>{for(let[b]of a){let a=k.getEntry(b);a.status&&n.has(a.status)||q(b)}});return()=>{for(let[,c]of(b(),a))clearInterval(c);a.clear()}},[k,q]);let s=(0,c.useCallback)(a=>{!a||k.getEntry(a).hydrated||(k.update(a,{hydrated:!0}),(async()=>{try{let b=await i(a);k.setStatus(a,b),b&&n.has(b.state)&&r(a)}catch(b){m.warn(`ensureHydrated failed for "${a}"`,b)}})())},[k,r]),t=(0,c.useCallback)(async a=>{k.update(a.targetId,{deployLoading:!0,deployError:null});try{let b="feature"===a.targetType?await e(a.targetId):"application"===a.targetType?await g(a.targetId):await f(a.repositoryPath);if(!b.success)return void k.update(a.targetId,{deployLoading:!1,deployError:b.error??"An unexpected error occurred"});k.update(a.targetId,{deployLoading:!1,status:b.state??null,url:null,hydrated:!0,targetType:a.targetType}),r(a.targetId)}catch(c){let b=c instanceof Error?c.message:"An unexpected error occurred";k.update(a.targetId,{deployLoading:!1,deployError:b})}},[k,r]),u=(0,c.useCallback)(async a=>{if(a){k.update(a,{stopLoading:!0});try{(await h(a)).success?(q(a),k.update(a,{stopLoading:!1,status:null,url:null})):k.update(a,{stopLoading:!1})}catch(b){m.warn("stop error (non-critical)",b),k.update(a,{stopLoading:!1})}}},[k,q]),v=(0,c.useMemo)(()=>({store:k,deploy:t,stop:u,ensureHydrated:s}),[k,t,u,s]);return(0,b.jsx)(o.Provider,{value:v,children:d})}function q(){let a=(0,c.useContext)(o);if(!a)throw Error("useDeploymentStatusContext must be used within a <DeploymentStatusProvider>");return a}function r(){let a=(0,c.useContext)(o);return a||s}let s={store:new l,deploy:async()=>{},stop:async()=>{},ensureHydrated:()=>{}};a.s(["DeploymentStatusProvider",()=>p,"useDeploymentStatusContext",()=>q,"useDeploymentStatusContextOptional",()=>r],66691)},18662,a=>{"use strict";var b=a.i(96960),c=a.i(66691);function d(){}function e(a){let{store:e,deploy:f,stop:g,ensureHydrated:h}=(0,c.useDeploymentStatusContextOptional)(),i=a?.targetId??"",j=(0,b.useCallback)(a=>i?e.subscribe(i,a):d,[e,i]),k=(0,b.useCallback)(()=>i?e.getEntry(i):e.getEntry(""),[e,i]),l=(0,b.useSyncExternalStore)(j,k,k);return(0,b.useEffect)(()=>{i&&h(i)},[i,h]),{deploy:(0,b.useCallback)(async()=>{a&&await f(a)},[f,a]),stop:(0,b.useCallback)(async()=>{i&&await g(i)},[g,i]),deployLoading:l.deployLoading,stopLoading:l.stopLoading,deployError:l.deployError,status:l.status,url:l.url}}a.s(["useDeployAction",()=>e])},78454,a=>{"use strict";a.i(24255),a.s([])},84117,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(85536);let e=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("bg-card text-card-foreground rounded-xl border shadow",a),...c}));e.displayName="Card";let f=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex flex-col space-y-1.5 p-6",a),...c}));f.displayName="CardHeader";let g=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("leading-none font-semibold tracking-tight",a),...c}));g.displayName="CardTitle";let h=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-muted-foreground text-sm",a),...c}));h.displayName="CardDescription";let i=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("p-6 pt-0",a),...c}));i.displayName="CardContent",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex items-center p-6 pt-0",a),...c})).displayName="CardFooter",a.s(["Card",()=>e,"CardContent",()=>i,"CardDescription",()=>h,"CardHeader",()=>f,"CardTitle",()=>g])},38702,16223,a=>{"use strict";var b=a.i(12656),c=a.i(85536);function d({icon:a,title:d,description:e,action:f,className:g,...h}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",g),...h,children:[a?(0,b.jsx)("div",{className:"text-muted-foreground",children:a}):null,(0,b.jsx)("h3",{className:"text-lg font-semibold",children:d}),e?(0,b.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:e}):null,f?(0,b.jsx)("div",{className:"mt-2",children:f}):null]})}a.s(["EmptyState",()=>d],16223),a.s([],38702)},55135,75550,a=>{"use strict";var b=a.i(12656),c=a.i(85536);function d({title:a,description:d,children:e,className:f}){return(0,b.jsxs)("header",{className:(0,c.cn)("flex items-center justify-between gap-4",f),children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:a}),d?(0,b.jsx)("p",{className:"text-muted-foreground",children:d}):null]}),e?(0,b.jsx)("div",{"data-slot":"actions",children:e}):null]})}a.s(["PageHeader",()=>d],75550),a.s([],55135)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_eff1b518._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/play.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/square.ts","../../../../../../../src/presentation/web/hooks/deployment-status-provider.tsx","../../../../../../../src/presentation/web/app/actions/data%3Aad9648%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A84a291%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A294b42%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3Ad7ed51%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A33a920%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/hooks/deployment-status-store.ts","../../../../../../../src/presentation/web/hooks/use-deploy-action.ts","../../../../../../../src/presentation/web/components/common/base-drawer/index.ts","../../../../../../../src/presentation/web/components/ui/card.tsx","../../../../../../../src/presentation/web/components/common/empty-state/empty-state.tsx","../../../../../../../src/presentation/web/components/common/page-header/page-header.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z',\n key: '10ikf1',\n },\n ],\n];\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('play', __iconNode);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n];\n\n/**\n * @component @name Square\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Square = createLucideIcon('square', __iconNode);\n\nexport default Square;\n","'use client';\n\n/**\n * DeploymentStatusProvider\n *\n * Wraps the dashboard with a shared deployment-status store seeded from\n * SSR data (ListDeploymentsUseCase via get-graph-data). All components\n * that call `useDeployAction(targetId)` subscribe to the same store, so\n * the \"click Run on node → tab shows URL instantly\" bug and the\n * \"URL lost after refresh\" bug are both resolved by construction.\n *\n * All business logic lives in use cases on the backend. This provider\n * owns only UI state transitions: which entries are hydrated, which are\n * loading, which have errors, and which need polling.\n */\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n type ReactNode,\n} from 'react';\nimport type { DeploymentStatusEntry } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport { deployFeature } from '@/app/actions/deploy-feature';\nimport { deployRepository } from '@/app/actions/deploy-repository';\nimport { deployApplication } from '@/app/actions/deploy-application';\nimport { stopDeployment } from '@/app/actions/stop-deployment';\nimport { getDeploymentStatus } from '@/app/actions/get-deployment-status';\nimport { createLogger } from '@/lib/logger';\nimport {\n DeploymentStatusStore,\n type DeploymentEntryState,\n EMPTY_ENTRY,\n} from './deployment-status-store';\n\nconst log = createLogger('[DeploymentStatusProvider]');\n\nconst POLL_INTERVAL_MS = 3000;\nconst ACTIVE_STATES: ReadonlySet<DeploymentState> = new Set([\n 'Booting',\n 'Ready',\n] as DeploymentState[]);\n\nexport interface DeployActionInput {\n targetId: string;\n targetType: 'feature' | 'repository' | 'application';\n repositoryPath: string;\n branch?: string;\n}\n\ninterface DeploymentContextValue {\n store: DeploymentStatusStore;\n deploy: (input: DeployActionInput) => Promise<void>;\n stop: (targetId: string) => Promise<void>;\n ensureHydrated: (targetId: string) => void;\n}\n\nconst DeploymentStatusContext = createContext<DeploymentContextValue | null>(null);\n\nexport function DeploymentStatusProvider({\n initialDeployments,\n children,\n}: {\n initialDeployments: DeploymentStatusEntry[];\n children: ReactNode;\n}) {\n // One store per provider instance. Stable across renders.\n const storeRef = useRef<DeploymentStatusStore | null>(null);\n if (!storeRef.current) {\n storeRef.current = new DeploymentStatusStore();\n storeRef.current.hydrate(initialDeployments);\n }\n const store = storeRef.current;\n\n // Re-hydrate when SSR data changes (e.g. after graph-data poll).\n useEffect(() => {\n store.hydrate(initialDeployments);\n }, [initialDeployments, store]);\n\n // ── Polling ──────────────────────────────────────────────────────────\n // One interval per targetId. Started when an entry becomes active\n // (Booting/Ready) and stopped when it is no longer active.\n const pollIntervalsRef = useRef<Map<string, ReturnType<typeof setInterval>>>(new Map());\n\n const stopPolling = useCallback((targetId: string) => {\n const existing = pollIntervalsRef.current.get(targetId);\n if (existing) {\n clearInterval(existing);\n pollIntervalsRef.current.delete(targetId);\n }\n }, []);\n\n const startPolling = useCallback(\n (targetId: string) => {\n if (pollIntervalsRef.current.has(targetId)) return;\n const interval = setInterval(async () => {\n let result;\n try {\n result = await getDeploymentStatus(targetId);\n } catch (err) {\n log.warn(`poll failed for \"${targetId}\"`, err);\n store.setStatus(targetId, null);\n stopPolling(targetId);\n return;\n }\n if (!result || result.state === 'Stopped') {\n store.setStatus(targetId, null);\n stopPolling(targetId);\n return;\n }\n store.setStatus(targetId, result);\n }, POLL_INTERVAL_MS);\n pollIntervalsRef.current.set(targetId, interval);\n },\n [store, stopPolling]\n );\n\n // Reconcile polling with store state on every change.\n useEffect(() => {\n const intervals = pollIntervalsRef.current;\n const reconcile = () => {\n // Stop polls for entries that are no longer active.\n for (const [targetId] of intervals) {\n const entry = store.getEntry(targetId);\n if (!entry.status || !ACTIVE_STATES.has(entry.status)) {\n stopPolling(targetId);\n }\n }\n };\n const unsubscribe = store.subscribeAll(reconcile);\n return () => {\n unsubscribe();\n for (const [, interval] of intervals) clearInterval(interval);\n intervals.clear();\n };\n }, [store, stopPolling]);\n\n // ── Mount hydration per targetId ─────────────────────────────────────\n // When a hook subscribes to a targetId that was not in the SSR hydration\n // (e.g. a stale page with deployments started in another tab), fetch its\n // status once from the backend via getDeploymentStatus → use case.\n const ensureHydrated = useCallback(\n (targetId: string) => {\n if (!targetId) return;\n const entry = store.getEntry(targetId);\n if (entry.hydrated) return;\n // Mark hydrated immediately to dedupe concurrent callers.\n store.update(targetId, { hydrated: true });\n void (async () => {\n try {\n const result = await getDeploymentStatus(targetId);\n store.setStatus(targetId, result);\n if (result && ACTIVE_STATES.has(result.state)) startPolling(targetId);\n } catch (err) {\n log.warn(`ensureHydrated failed for \"${targetId}\"`, err);\n }\n })();\n },\n [store, startPolling]\n );\n\n // ── Actions ──────────────────────────────────────────────────────────\n const deploy = useCallback(\n async (input: DeployActionInput) => {\n store.update(input.targetId, { deployLoading: true, deployError: null });\n try {\n const result =\n input.targetType === 'feature'\n ? await deployFeature(input.targetId)\n : input.targetType === 'application'\n ? await deployApplication(input.targetId)\n : await deployRepository(input.repositoryPath);\n if (!result.success) {\n store.update(input.targetId, {\n deployLoading: false,\n deployError: result.error ?? 'An unexpected error occurred',\n });\n return;\n }\n store.update(input.targetId, {\n deployLoading: false,\n status: result.state ?? null,\n url: null,\n hydrated: true,\n targetType: input.targetType,\n });\n startPolling(input.targetId);\n } catch (err) {\n const message = err instanceof Error ? err.message : 'An unexpected error occurred';\n store.update(input.targetId, { deployLoading: false, deployError: message });\n }\n },\n [store, startPolling]\n );\n\n const stop = useCallback(\n async (targetId: string) => {\n if (!targetId) return;\n store.update(targetId, { stopLoading: true });\n try {\n const result = await stopDeployment(targetId);\n if (result.success) {\n stopPolling(targetId);\n store.update(targetId, {\n stopLoading: false,\n status: null,\n url: null,\n });\n } else {\n store.update(targetId, { stopLoading: false });\n }\n } catch (err) {\n log.warn('stop error (non-critical)', err);\n store.update(targetId, { stopLoading: false });\n }\n },\n [store, stopPolling]\n );\n\n const value = useMemo<DeploymentContextValue>(\n () => ({ store, deploy, stop, ensureHydrated }),\n [store, deploy, stop, ensureHydrated]\n );\n\n return (\n <DeploymentStatusContext.Provider value={value}>{children}</DeploymentStatusContext.Provider>\n );\n}\n\nexport function useDeploymentStatusContext(): DeploymentContextValue {\n const ctx = useContext(DeploymentStatusContext);\n if (!ctx) {\n throw new Error('useDeploymentStatusContext must be used within a <DeploymentStatusProvider>');\n }\n return ctx;\n}\n\n/**\n * Non-throwing variant used by presentational hooks (e.g. useDeployAction)\n * that may render inside Storybook or other isolated contexts without\n * a provider. Returns a stub store/actions that do nothing.\n */\nexport function useDeploymentStatusContextOptional(): DeploymentContextValue {\n const ctx = useContext(DeploymentStatusContext);\n if (ctx) return ctx;\n return FALLBACK_CONTEXT;\n}\n\nconst FALLBACK_STORE = new DeploymentStatusStore();\nconst FALLBACK_CONTEXT: DeploymentContextValue = {\n store: FALLBACK_STORE,\n deploy: async () => {\n /* no-op */\n },\n stop: async () => {\n /* no-op */\n },\n ensureHydrated: () => {\n /* no-op */\n },\n};\n\nexport { EMPTY_ENTRY, type DeploymentEntryState };\n","/* __next_internal_action_entry_do_not_use__ [{\"4019f70a0543cf0486aa16490cbe978f2a34a2347e\":\"deployFeature\"},\"src/presentation/web/app/actions/deploy-feature.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4019f70a0543cf0486aa16490cbe978f2a34a2347e\",callServer,void 0,findSourceMapURL,\"deployFeature\");export{$$RSC_SERVER_ACTION_0 as deployFeature};","/* __next_internal_action_entry_do_not_use__ [{\"40b3ff55d8c6015de48f42ddd0a47a270c41d82366\":\"deployRepository\"},\"src/presentation/web/app/actions/deploy-repository.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40b3ff55d8c6015de48f42ddd0a47a270c41d82366\",callServer,void 0,findSourceMapURL,\"deployRepository\");export{$$RSC_SERVER_ACTION_0 as deployRepository};","/* __next_internal_action_entry_do_not_use__ [{\"4083635fcd972ab212a5a17bf919c30711e14955c3\":\"deployApplication\"},\"src/presentation/web/app/actions/deploy-application.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4083635fcd972ab212a5a17bf919c30711e14955c3\",callServer,void 0,findSourceMapURL,\"deployApplication\");export{$$RSC_SERVER_ACTION_0 as deployApplication};","/* __next_internal_action_entry_do_not_use__ [{\"402f3ec754226496bb37e1bf882a17def51cf8ccb8\":\"stopDeployment\"},\"src/presentation/web/app/actions/stop-deployment.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"402f3ec754226496bb37e1bf882a17def51cf8ccb8\",callServer,void 0,findSourceMapURL,\"stopDeployment\");export{$$RSC_SERVER_ACTION_0 as stopDeployment};","/* __next_internal_action_entry_do_not_use__ [{\"40ae71a74448e4f534011f66f784be8cc3005391e7\":\"getDeploymentStatus\"},\"src/presentation/web/app/actions/get-deployment-status.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40ae71a74448e4f534011f66f784be8cc3005391e7\",callServer,void 0,findSourceMapURL,\"getDeploymentStatus\");export{$$RSC_SERVER_ACTION_0 as getDeploymentStatus};","/**\n * Deployment Status Store\n *\n * External store (useSyncExternalStore-compatible) that holds the shared\n * deployment state keyed by targetId. Multiple components subscribed to\n * the same targetId see the same state — fixes the node/drawer-out-of-sync\n * bug and makes page-refresh hydration trivial.\n *\n * Mutation paths (deploy/stop/poll) go through server actions that wrap\n * use cases — this module stores state only and never contains business\n * logic.\n */\n\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport type {\n DeploymentStatus,\n DeploymentStatusEntry,\n} from '@shepai/core/application/ports/output/services/deployment-service.interface';\n\nexport interface DeploymentEntryState {\n status: DeploymentState | null;\n url: string | null;\n targetType: string | null;\n /** Whether mount-hydration (listDeployments / getDeploymentStatus) has completed for this targetId. */\n hydrated: boolean;\n deployLoading: boolean;\n stopLoading: boolean;\n deployError: string | null;\n}\n\nexport const EMPTY_ENTRY: DeploymentEntryState = {\n status: null,\n url: null,\n targetType: null,\n hydrated: false,\n deployLoading: false,\n stopLoading: false,\n deployError: null,\n};\n\ntype Listener = () => void;\n\nexport class DeploymentStatusStore {\n private entries = new Map<string, DeploymentEntryState>();\n private listeners = new Map<string, Set<Listener>>();\n private globalListeners = new Set<Listener>();\n\n /** Seed the store from SSR data (ListDeploymentsUseCase output). */\n hydrate(entries: DeploymentStatusEntry[]): void {\n // Mark every SSR entry as hydrated and merge into the map.\n const seen = new Set<string>();\n for (const entry of entries) {\n seen.add(entry.targetId);\n this.update(entry.targetId, {\n status: entry.state,\n url: entry.url,\n targetType: entry.targetType,\n hydrated: true,\n });\n }\n // Any previously tracked entries missing from the SSR list are stale —\n // mark them hydrated with null state so subscribers learn their\n // deployment is gone.\n for (const [targetId, existing] of this.entries) {\n if (!seen.has(targetId) && existing.hydrated && existing.status !== null) {\n this.update(targetId, { status: null, url: null });\n } else if (!seen.has(targetId) && !existing.hydrated) {\n this.update(targetId, { hydrated: true });\n }\n }\n }\n\n getEntry(targetId: string): DeploymentEntryState {\n return this.entries.get(targetId) ?? EMPTY_ENTRY;\n }\n\n update(targetId: string, patch: Partial<DeploymentEntryState>): void {\n const current = this.entries.get(targetId) ?? EMPTY_ENTRY;\n const next: DeploymentEntryState = { ...current, ...patch };\n this.entries.set(targetId, next);\n this.notify(targetId);\n }\n\n /** Apply a status snapshot (from a server action result) to a targetId. */\n setStatus(targetId: string, status: DeploymentStatus | null): void {\n if (status === null) {\n this.update(targetId, { status: null, url: null, hydrated: true });\n return;\n }\n this.update(targetId, {\n status: status.state,\n url: status.url,\n hydrated: true,\n });\n }\n\n subscribe(targetId: string, listener: Listener): () => void {\n let set = this.listeners.get(targetId);\n if (!set) {\n set = new Set();\n this.listeners.set(targetId, set);\n }\n set.add(listener);\n return () => {\n set?.delete(listener);\n if (set?.size === 0) this.listeners.delete(targetId);\n };\n }\n\n subscribeAll(listener: Listener): () => void {\n this.globalListeners.add(listener);\n return () => {\n this.globalListeners.delete(listener);\n };\n }\n\n private notify(targetId: string): void {\n const set = this.listeners.get(targetId);\n if (set) for (const l of set) l();\n for (const l of this.globalListeners) l();\n }\n}\n","'use client';\n\n/**\n * useDeployAction\n *\n * Thin subscriber to the shared DeploymentStatusProvider, scoped to one\n * targetId. All components that call this hook with the same targetId\n * see the same state — a click on a node updates the drawer instantly,\n * and state survives page refresh via SSR hydration.\n *\n * Business logic (start/stop/status) lives in backend use cases — this\n * hook contains zero decision-making code.\n */\n\nimport { useEffect, useSyncExternalStore, useCallback } from 'react';\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport {\n useDeploymentStatusContextOptional,\n type DeployActionInput,\n} from './deployment-status-provider';\n\nexport type { DeployActionInput };\n\n/** Stable no-op unsubscribe for hooks called with a null input. */\nfunction noop(): void {\n /* no-op */\n}\n\nexport interface DeployActionState {\n deploy: () => Promise<void>;\n stop: () => Promise<void>;\n deployLoading: boolean;\n stopLoading: boolean;\n deployError: string | null;\n status: DeploymentState | null;\n url: string | null;\n}\n\nexport function useDeployAction(input: DeployActionInput | null): DeployActionState {\n const { store, deploy, stop, ensureHydrated } = useDeploymentStatusContextOptional();\n const targetId = input?.targetId ?? '';\n\n // Subscribe to the store entry for this targetId.\n const subscribe = useCallback(\n (listener: () => void) => {\n if (!targetId) return noop;\n return store.subscribe(targetId, listener);\n },\n [store, targetId]\n );\n const getSnapshot = useCallback(\n () => (targetId ? store.getEntry(targetId) : store.getEntry('')),\n [store, targetId]\n );\n const entry = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n // On mount (or when targetId changes), ensure the entry is hydrated.\n useEffect(() => {\n if (targetId) ensureHydrated(targetId);\n }, [targetId, ensureHydrated]);\n\n const handleDeploy = useCallback(async () => {\n if (!input) return;\n await deploy(input);\n }, [deploy, input]);\n\n const handleStop = useCallback(async () => {\n if (!targetId) return;\n await stop(targetId);\n }, [stop, targetId]);\n\n return {\n deploy: handleDeploy,\n stop: handleStop,\n deployLoading: entry.deployLoading,\n stopLoading: entry.stopLoading,\n deployError: entry.deployError,\n status: entry.status,\n url: entry.url,\n };\n}\n","export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('bg-card text-card-foreground rounded-xl border shadow', className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n )\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n )\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n )\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","import type { ReactNode, HTMLAttributes } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n icon?: ReactNode;\n title: string;\n description?: string;\n action?: ReactNode;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n ...props\n}: EmptyStateProps) {\n return (\n <div\n className={cn('flex flex-col items-center gap-4 px-4 py-12 text-center', className)}\n {...props}\n >\n {icon ? <div className=\"text-muted-foreground\">{icon}</div> : null}\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n {description ? <p className=\"text-muted-foreground max-w-md text-sm\">{description}</p> : null}\n {action ? <div className=\"mt-2\">{action}</div> : null}\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface PageHeaderProps {\n title: string;\n description?: string;\n children?: React.ReactNode;\n className?: string;\n}\n\nexport function PageHeader({ title, description, children, className }: PageHeaderProps) {\n return (\n <header className={cn('flex items-center justify-between gap-4', className)}>\n <div className=\"space-y-1\">\n <h1 className=\"text-2xl font-bold tracking-tight\">{title}</h1>\n {description ? <p className=\"text-muted-foreground\">{description}</p> : null}\n </div>\n {children ? <div data-slot=\"actions\">{children}</div> : null}\n </header>\n );\n}\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[71238,a=>{"use strict";let b=(0,a.i(25700).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",()=>b],71238)},63698,a=>{"use strict";let b=(0,a.i(25700).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],63698)},50490,a=>{"use strict";let b=(0,a.i(25700).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>b],50490)},5698,a=>{"use strict";let b=(0,a.i(25700).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",()=>b],5698)},66691,45751,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(25674);let e=(0,d.createServerReference)("4019f70a0543cf0486aa16490cbe978f2a34a2347e",d.callServer,void 0,d.findSourceMapURL,"deployFeature"),f=(0,d.createServerReference)("40b3ff55d8c6015de48f42ddd0a47a270c41d82366",d.callServer,void 0,d.findSourceMapURL,"deployRepository"),g=(0,d.createServerReference)("4083635fcd972ab212a5a17bf919c30711e14955c3",d.callServer,void 0,d.findSourceMapURL,"deployApplication"),h=(0,d.createServerReference)("402f3ec754226496bb37e1bf882a17def51cf8ccb8",d.callServer,void 0,d.findSourceMapURL,"stopDeployment"),i=(0,d.createServerReference)("40ae71a74448e4f534011f66f784be8cc3005391e7",d.callServer,void 0,d.findSourceMapURL,"getDeploymentStatus");var j=a.i(87139);let k={status:null,url:null,targetType:null,hydrated:!1,deployLoading:!1,stopLoading:!1,deployError:null};class l{entries=new Map;listeners=new Map;globalListeners=new Set;hydrate(a){let b=new Set;for(let c of a)b.add(c.targetId),this.update(c.targetId,{status:c.state,url:c.url,targetType:c.targetType,hydrated:!0});for(let[a,c]of this.entries)!b.has(a)&&c.hydrated&&null!==c.status?this.update(a,{status:null,url:null}):b.has(a)||c.hydrated||this.update(a,{hydrated:!0})}getEntry(a){return this.entries.get(a)??k}update(a,b){let c={...this.entries.get(a)??k,...b};this.entries.set(a,c),this.notify(a)}setStatus(a,b){null===b?this.update(a,{status:null,url:null,hydrated:!0}):this.update(a,{status:b.state,url:b.url,hydrated:!0})}subscribe(a,b){let c=this.listeners.get(a);return c||(c=new Set,this.listeners.set(a,c)),c.add(b),()=>{c?.delete(b),c?.size===0&&this.listeners.delete(a)}}subscribeAll(a){return this.globalListeners.add(a),()=>{this.globalListeners.delete(a)}}notify(a){let b=this.listeners.get(a);if(b)for(let a of b)a();for(let a of this.globalListeners)a()}}a.s(["DeploymentStatusStore",()=>l,"EMPTY_ENTRY",0,k],45751);let m=(0,j.createLogger)("[DeploymentStatusProvider]"),n=new Set(["Booting","Ready"]),o=(0,c.createContext)(null);function p({initialDeployments:a,children:d}){let j=(0,c.useRef)(null);j.current||(j.current=new l,j.current.hydrate(a));let k=j.current;(0,c.useEffect)(()=>{k.hydrate(a)},[a,k]);let p=(0,c.useRef)(new Map),q=(0,c.useCallback)(a=>{let b=p.current.get(a);b&&(clearInterval(b),p.current.delete(a))},[]),r=(0,c.useCallback)(a=>{if(p.current.has(a))return;let b=setInterval(async()=>{let b;try{b=await i(a)}catch(b){m.warn(`poll failed for "${a}"`,b),k.setStatus(a,null),q(a);return}if(!b||"Stopped"===b.state){k.setStatus(a,null),q(a);return}k.setStatus(a,b)},3e3);p.current.set(a,b)},[k,q]);(0,c.useEffect)(()=>{let a=p.current,b=k.subscribeAll(()=>{for(let[b]of a){let a=k.getEntry(b);a.status&&n.has(a.status)||q(b)}});return()=>{for(let[,c]of(b(),a))clearInterval(c);a.clear()}},[k,q]);let s=(0,c.useCallback)(a=>{!a||k.getEntry(a).hydrated||(k.update(a,{hydrated:!0}),(async()=>{try{let b=await i(a);k.setStatus(a,b),b&&n.has(b.state)&&r(a)}catch(b){m.warn(`ensureHydrated failed for "${a}"`,b)}})())},[k,r]),t=(0,c.useCallback)(async a=>{k.update(a.targetId,{deployLoading:!0,deployError:null});try{let b="feature"===a.targetType?await e(a.targetId):"application"===a.targetType?await g(a.targetId):await f(a.repositoryPath);if(!b.success)return void k.update(a.targetId,{deployLoading:!1,deployError:b.error??"An unexpected error occurred"});k.update(a.targetId,{deployLoading:!1,status:b.state??null,url:null,hydrated:!0,targetType:a.targetType}),r(a.targetId)}catch(c){let b=c instanceof Error?c.message:"An unexpected error occurred";k.update(a.targetId,{deployLoading:!1,deployError:b})}},[k,r]),u=(0,c.useCallback)(async a=>{if(a){k.update(a,{stopLoading:!0});try{(await h(a)).success?(q(a),k.update(a,{stopLoading:!1,status:null,url:null})):k.update(a,{stopLoading:!1})}catch(b){m.warn("stop error (non-critical)",b),k.update(a,{stopLoading:!1})}}},[k,q]),v=(0,c.useMemo)(()=>({store:k,deploy:t,stop:u,ensureHydrated:s}),[k,t,u,s]);return(0,b.jsx)(o.Provider,{value:v,children:d})}function q(){let a=(0,c.useContext)(o);if(!a)throw Error("useDeploymentStatusContext must be used within a <DeploymentStatusProvider>");return a}function r(){let a=(0,c.useContext)(o);return a||s}let s={store:new l,deploy:async()=>{},stop:async()=>{},ensureHydrated:()=>{}};a.s(["DeploymentStatusProvider",()=>p,"useDeploymentStatusContext",()=>q,"useDeploymentStatusContextOptional",()=>r],66691)},18662,a=>{"use strict";var b=a.i(96960),c=a.i(66691);function d(){}function e(a){let{store:e,deploy:f,stop:g,ensureHydrated:h}=(0,c.useDeploymentStatusContextOptional)(),i=a?.targetId??"",j=(0,b.useCallback)(a=>i?e.subscribe(i,a):d,[e,i]),k=(0,b.useCallback)(()=>i?e.getEntry(i):e.getEntry(""),[e,i]),l=(0,b.useSyncExternalStore)(j,k,k);return(0,b.useEffect)(()=>{i&&h(i)},[i,h]),{deploy:(0,b.useCallback)(async()=>{a&&await f(a)},[f,a]),stop:(0,b.useCallback)(async()=>{i&&await g(i)},[g,i]),deployLoading:l.deployLoading,stopLoading:l.stopLoading,deployError:l.deployError,status:l.status,url:l.url}}a.s(["useDeployAction",()=>e])},53170,a=>{"use strict";let b=(0,a.i(25700).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);a.s(["GitBranch",()=>b],53170)},9955,a=>{"use strict";var b=a.i(76096);a.s(["Download",()=>b.default])},67075,a=>{"use strict";var b=a.i(2811);a.s(["CheckCircle2",()=>b.default])},21084,a=>{"use strict";let b=(0,a.i(25700).default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);a.s(["Package",()=>b],21084)},42983,a=>{"use strict";let b=(0,a.i(25700).default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);a.s(["Monitor",()=>b],42983)},87926,a=>{"use strict";let b=(0,a.i(25700).default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);a.s(["Rocket",()=>b],87926)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_f227429a._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/play.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/square.ts","../../../../../../../src/presentation/web/hooks/deployment-status-provider.tsx","../../../../../../../src/presentation/web/app/actions/data%3Aad9648%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A84a291%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A294b42%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3Ad7ed51%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A33a920%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/hooks/deployment-status-store.ts","../../../../../../../src/presentation/web/hooks/use-deploy-action.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/git-branch.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/package.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/monitor.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/rocket.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z',\n key: '10ikf1',\n },\n ],\n];\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('play', __iconNode);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n];\n\n/**\n * @component @name Square\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Square = createLucideIcon('square', __iconNode);\n\nexport default Square;\n","'use client';\n\n/**\n * DeploymentStatusProvider\n *\n * Wraps the dashboard with a shared deployment-status store seeded from\n * SSR data (ListDeploymentsUseCase via get-graph-data). All components\n * that call `useDeployAction(targetId)` subscribe to the same store, so\n * the \"click Run on node → tab shows URL instantly\" bug and the\n * \"URL lost after refresh\" bug are both resolved by construction.\n *\n * All business logic lives in use cases on the backend. This provider\n * owns only UI state transitions: which entries are hydrated, which are\n * loading, which have errors, and which need polling.\n */\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n type ReactNode,\n} from 'react';\nimport type { DeploymentStatusEntry } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport { deployFeature } from '@/app/actions/deploy-feature';\nimport { deployRepository } from '@/app/actions/deploy-repository';\nimport { deployApplication } from '@/app/actions/deploy-application';\nimport { stopDeployment } from '@/app/actions/stop-deployment';\nimport { getDeploymentStatus } from '@/app/actions/get-deployment-status';\nimport { createLogger } from '@/lib/logger';\nimport {\n DeploymentStatusStore,\n type DeploymentEntryState,\n EMPTY_ENTRY,\n} from './deployment-status-store';\n\nconst log = createLogger('[DeploymentStatusProvider]');\n\nconst POLL_INTERVAL_MS = 3000;\nconst ACTIVE_STATES: ReadonlySet<DeploymentState> = new Set([\n 'Booting',\n 'Ready',\n] as DeploymentState[]);\n\nexport interface DeployActionInput {\n targetId: string;\n targetType: 'feature' | 'repository' | 'application';\n repositoryPath: string;\n branch?: string;\n}\n\ninterface DeploymentContextValue {\n store: DeploymentStatusStore;\n deploy: (input: DeployActionInput) => Promise<void>;\n stop: (targetId: string) => Promise<void>;\n ensureHydrated: (targetId: string) => void;\n}\n\nconst DeploymentStatusContext = createContext<DeploymentContextValue | null>(null);\n\nexport function DeploymentStatusProvider({\n initialDeployments,\n children,\n}: {\n initialDeployments: DeploymentStatusEntry[];\n children: ReactNode;\n}) {\n // One store per provider instance. Stable across renders.\n const storeRef = useRef<DeploymentStatusStore | null>(null);\n if (!storeRef.current) {\n storeRef.current = new DeploymentStatusStore();\n storeRef.current.hydrate(initialDeployments);\n }\n const store = storeRef.current;\n\n // Re-hydrate when SSR data changes (e.g. after graph-data poll).\n useEffect(() => {\n store.hydrate(initialDeployments);\n }, [initialDeployments, store]);\n\n // ── Polling ──────────────────────────────────────────────────────────\n // One interval per targetId. Started when an entry becomes active\n // (Booting/Ready) and stopped when it is no longer active.\n const pollIntervalsRef = useRef<Map<string, ReturnType<typeof setInterval>>>(new Map());\n\n const stopPolling = useCallback((targetId: string) => {\n const existing = pollIntervalsRef.current.get(targetId);\n if (existing) {\n clearInterval(existing);\n pollIntervalsRef.current.delete(targetId);\n }\n }, []);\n\n const startPolling = useCallback(\n (targetId: string) => {\n if (pollIntervalsRef.current.has(targetId)) return;\n const interval = setInterval(async () => {\n let result;\n try {\n result = await getDeploymentStatus(targetId);\n } catch (err) {\n log.warn(`poll failed for \"${targetId}\"`, err);\n store.setStatus(targetId, null);\n stopPolling(targetId);\n return;\n }\n if (!result || result.state === 'Stopped') {\n store.setStatus(targetId, null);\n stopPolling(targetId);\n return;\n }\n store.setStatus(targetId, result);\n }, POLL_INTERVAL_MS);\n pollIntervalsRef.current.set(targetId, interval);\n },\n [store, stopPolling]\n );\n\n // Reconcile polling with store state on every change.\n useEffect(() => {\n const intervals = pollIntervalsRef.current;\n const reconcile = () => {\n // Stop polls for entries that are no longer active.\n for (const [targetId] of intervals) {\n const entry = store.getEntry(targetId);\n if (!entry.status || !ACTIVE_STATES.has(entry.status)) {\n stopPolling(targetId);\n }\n }\n };\n const unsubscribe = store.subscribeAll(reconcile);\n return () => {\n unsubscribe();\n for (const [, interval] of intervals) clearInterval(interval);\n intervals.clear();\n };\n }, [store, stopPolling]);\n\n // ── Mount hydration per targetId ─────────────────────────────────────\n // When a hook subscribes to a targetId that was not in the SSR hydration\n // (e.g. a stale page with deployments started in another tab), fetch its\n // status once from the backend via getDeploymentStatus → use case.\n const ensureHydrated = useCallback(\n (targetId: string) => {\n if (!targetId) return;\n const entry = store.getEntry(targetId);\n if (entry.hydrated) return;\n // Mark hydrated immediately to dedupe concurrent callers.\n store.update(targetId, { hydrated: true });\n void (async () => {\n try {\n const result = await getDeploymentStatus(targetId);\n store.setStatus(targetId, result);\n if (result && ACTIVE_STATES.has(result.state)) startPolling(targetId);\n } catch (err) {\n log.warn(`ensureHydrated failed for \"${targetId}\"`, err);\n }\n })();\n },\n [store, startPolling]\n );\n\n // ── Actions ──────────────────────────────────────────────────────────\n const deploy = useCallback(\n async (input: DeployActionInput) => {\n store.update(input.targetId, { deployLoading: true, deployError: null });\n try {\n const result =\n input.targetType === 'feature'\n ? await deployFeature(input.targetId)\n : input.targetType === 'application'\n ? await deployApplication(input.targetId)\n : await deployRepository(input.repositoryPath);\n if (!result.success) {\n store.update(input.targetId, {\n deployLoading: false,\n deployError: result.error ?? 'An unexpected error occurred',\n });\n return;\n }\n store.update(input.targetId, {\n deployLoading: false,\n status: result.state ?? null,\n url: null,\n hydrated: true,\n targetType: input.targetType,\n });\n startPolling(input.targetId);\n } catch (err) {\n const message = err instanceof Error ? err.message : 'An unexpected error occurred';\n store.update(input.targetId, { deployLoading: false, deployError: message });\n }\n },\n [store, startPolling]\n );\n\n const stop = useCallback(\n async (targetId: string) => {\n if (!targetId) return;\n store.update(targetId, { stopLoading: true });\n try {\n const result = await stopDeployment(targetId);\n if (result.success) {\n stopPolling(targetId);\n store.update(targetId, {\n stopLoading: false,\n status: null,\n url: null,\n });\n } else {\n store.update(targetId, { stopLoading: false });\n }\n } catch (err) {\n log.warn('stop error (non-critical)', err);\n store.update(targetId, { stopLoading: false });\n }\n },\n [store, stopPolling]\n );\n\n const value = useMemo<DeploymentContextValue>(\n () => ({ store, deploy, stop, ensureHydrated }),\n [store, deploy, stop, ensureHydrated]\n );\n\n return (\n <DeploymentStatusContext.Provider value={value}>{children}</DeploymentStatusContext.Provider>\n );\n}\n\nexport function useDeploymentStatusContext(): DeploymentContextValue {\n const ctx = useContext(DeploymentStatusContext);\n if (!ctx) {\n throw new Error('useDeploymentStatusContext must be used within a <DeploymentStatusProvider>');\n }\n return ctx;\n}\n\n/**\n * Non-throwing variant used by presentational hooks (e.g. useDeployAction)\n * that may render inside Storybook or other isolated contexts without\n * a provider. Returns a stub store/actions that do nothing.\n */\nexport function useDeploymentStatusContextOptional(): DeploymentContextValue {\n const ctx = useContext(DeploymentStatusContext);\n if (ctx) return ctx;\n return FALLBACK_CONTEXT;\n}\n\nconst FALLBACK_STORE = new DeploymentStatusStore();\nconst FALLBACK_CONTEXT: DeploymentContextValue = {\n store: FALLBACK_STORE,\n deploy: async () => {\n /* no-op */\n },\n stop: async () => {\n /* no-op */\n },\n ensureHydrated: () => {\n /* no-op */\n },\n};\n\nexport { EMPTY_ENTRY, type DeploymentEntryState };\n","/* __next_internal_action_entry_do_not_use__ [{\"4019f70a0543cf0486aa16490cbe978f2a34a2347e\":\"deployFeature\"},\"src/presentation/web/app/actions/deploy-feature.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4019f70a0543cf0486aa16490cbe978f2a34a2347e\",callServer,void 0,findSourceMapURL,\"deployFeature\");export{$$RSC_SERVER_ACTION_0 as deployFeature};","/* __next_internal_action_entry_do_not_use__ [{\"40b3ff55d8c6015de48f42ddd0a47a270c41d82366\":\"deployRepository\"},\"src/presentation/web/app/actions/deploy-repository.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40b3ff55d8c6015de48f42ddd0a47a270c41d82366\",callServer,void 0,findSourceMapURL,\"deployRepository\");export{$$RSC_SERVER_ACTION_0 as deployRepository};","/* __next_internal_action_entry_do_not_use__ [{\"4083635fcd972ab212a5a17bf919c30711e14955c3\":\"deployApplication\"},\"src/presentation/web/app/actions/deploy-application.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4083635fcd972ab212a5a17bf919c30711e14955c3\",callServer,void 0,findSourceMapURL,\"deployApplication\");export{$$RSC_SERVER_ACTION_0 as deployApplication};","/* __next_internal_action_entry_do_not_use__ [{\"402f3ec754226496bb37e1bf882a17def51cf8ccb8\":\"stopDeployment\"},\"src/presentation/web/app/actions/stop-deployment.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"402f3ec754226496bb37e1bf882a17def51cf8ccb8\",callServer,void 0,findSourceMapURL,\"stopDeployment\");export{$$RSC_SERVER_ACTION_0 as stopDeployment};","/* __next_internal_action_entry_do_not_use__ [{\"40ae71a74448e4f534011f66f784be8cc3005391e7\":\"getDeploymentStatus\"},\"src/presentation/web/app/actions/get-deployment-status.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40ae71a74448e4f534011f66f784be8cc3005391e7\",callServer,void 0,findSourceMapURL,\"getDeploymentStatus\");export{$$RSC_SERVER_ACTION_0 as getDeploymentStatus};","/**\n * Deployment Status Store\n *\n * External store (useSyncExternalStore-compatible) that holds the shared\n * deployment state keyed by targetId. Multiple components subscribed to\n * the same targetId see the same state — fixes the node/drawer-out-of-sync\n * bug and makes page-refresh hydration trivial.\n *\n * Mutation paths (deploy/stop/poll) go through server actions that wrap\n * use cases — this module stores state only and never contains business\n * logic.\n */\n\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport type {\n DeploymentStatus,\n DeploymentStatusEntry,\n} from '@shepai/core/application/ports/output/services/deployment-service.interface';\n\nexport interface DeploymentEntryState {\n status: DeploymentState | null;\n url: string | null;\n targetType: string | null;\n /** Whether mount-hydration (listDeployments / getDeploymentStatus) has completed for this targetId. */\n hydrated: boolean;\n deployLoading: boolean;\n stopLoading: boolean;\n deployError: string | null;\n}\n\nexport const EMPTY_ENTRY: DeploymentEntryState = {\n status: null,\n url: null,\n targetType: null,\n hydrated: false,\n deployLoading: false,\n stopLoading: false,\n deployError: null,\n};\n\ntype Listener = () => void;\n\nexport class DeploymentStatusStore {\n private entries = new Map<string, DeploymentEntryState>();\n private listeners = new Map<string, Set<Listener>>();\n private globalListeners = new Set<Listener>();\n\n /** Seed the store from SSR data (ListDeploymentsUseCase output). */\n hydrate(entries: DeploymentStatusEntry[]): void {\n // Mark every SSR entry as hydrated and merge into the map.\n const seen = new Set<string>();\n for (const entry of entries) {\n seen.add(entry.targetId);\n this.update(entry.targetId, {\n status: entry.state,\n url: entry.url,\n targetType: entry.targetType,\n hydrated: true,\n });\n }\n // Any previously tracked entries missing from the SSR list are stale —\n // mark them hydrated with null state so subscribers learn their\n // deployment is gone.\n for (const [targetId, existing] of this.entries) {\n if (!seen.has(targetId) && existing.hydrated && existing.status !== null) {\n this.update(targetId, { status: null, url: null });\n } else if (!seen.has(targetId) && !existing.hydrated) {\n this.update(targetId, { hydrated: true });\n }\n }\n }\n\n getEntry(targetId: string): DeploymentEntryState {\n return this.entries.get(targetId) ?? EMPTY_ENTRY;\n }\n\n update(targetId: string, patch: Partial<DeploymentEntryState>): void {\n const current = this.entries.get(targetId) ?? EMPTY_ENTRY;\n const next: DeploymentEntryState = { ...current, ...patch };\n this.entries.set(targetId, next);\n this.notify(targetId);\n }\n\n /** Apply a status snapshot (from a server action result) to a targetId. */\n setStatus(targetId: string, status: DeploymentStatus | null): void {\n if (status === null) {\n this.update(targetId, { status: null, url: null, hydrated: true });\n return;\n }\n this.update(targetId, {\n status: status.state,\n url: status.url,\n hydrated: true,\n });\n }\n\n subscribe(targetId: string, listener: Listener): () => void {\n let set = this.listeners.get(targetId);\n if (!set) {\n set = new Set();\n this.listeners.set(targetId, set);\n }\n set.add(listener);\n return () => {\n set?.delete(listener);\n if (set?.size === 0) this.listeners.delete(targetId);\n };\n }\n\n subscribeAll(listener: Listener): () => void {\n this.globalListeners.add(listener);\n return () => {\n this.globalListeners.delete(listener);\n };\n }\n\n private notify(targetId: string): void {\n const set = this.listeners.get(targetId);\n if (set) for (const l of set) l();\n for (const l of this.globalListeners) l();\n }\n}\n","'use client';\n\n/**\n * useDeployAction\n *\n * Thin subscriber to the shared DeploymentStatusProvider, scoped to one\n * targetId. All components that call this hook with the same targetId\n * see the same state — a click on a node updates the drawer instantly,\n * and state survives page refresh via SSR hydration.\n *\n * Business logic (start/stop/status) lives in backend use cases — this\n * hook contains zero decision-making code.\n */\n\nimport { useEffect, useSyncExternalStore, useCallback } from 'react';\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport {\n useDeploymentStatusContextOptional,\n type DeployActionInput,\n} from './deployment-status-provider';\n\nexport type { DeployActionInput };\n\n/** Stable no-op unsubscribe for hooks called with a null input. */\nfunction noop(): void {\n /* no-op */\n}\n\nexport interface DeployActionState {\n deploy: () => Promise<void>;\n stop: () => Promise<void>;\n deployLoading: boolean;\n stopLoading: boolean;\n deployError: string | null;\n status: DeploymentState | null;\n url: string | null;\n}\n\nexport function useDeployAction(input: DeployActionInput | null): DeployActionState {\n const { store, deploy, stop, ensureHydrated } = useDeploymentStatusContextOptional();\n const targetId = input?.targetId ?? '';\n\n // Subscribe to the store entry for this targetId.\n const subscribe = useCallback(\n (listener: () => void) => {\n if (!targetId) return noop;\n return store.subscribe(targetId, listener);\n },\n [store, targetId]\n );\n const getSnapshot = useCallback(\n () => (targetId ? store.getEntry(targetId) : store.getEntry('')),\n [store, targetId]\n );\n const entry = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n // On mount (or when targetId changes), ensure the entry is hydrated.\n useEffect(() => {\n if (targetId) ensureHydrated(targetId);\n }, [targetId, ensureHydrated]);\n\n const handleDeploy = useCallback(async () => {\n if (!input) return;\n await deploy(input);\n }, [deploy, input]);\n\n const handleStop = useCallback(async () => {\n if (!targetId) return;\n await stop(targetId);\n }, [stop, targetId]);\n\n return {\n deploy: handleDeploy,\n stop: handleStop,\n deployLoading: entry.deployLoading,\n stopLoading: entry.stopLoading,\n deployError: entry.deployError,\n status: entry.status,\n url: entry.url,\n };\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '6', x2: '6', y1: '3', y2: '15', key: '17qcm7' }],\n ['circle', { cx: '18', cy: '6', r: '3', key: '1h7g24' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['path', { d: 'M18 9a9 9 0 0 1-9 9', key: 'n2h4wq' }],\n];\n\n/**\n * @component @name GitBranch\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/git-branch\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GitBranch = createLucideIcon('git-branch', __iconNode);\n\nexport default GitBranch;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z',\n key: '1a0edw',\n },\n ],\n ['path', { d: 'M12 22V12', key: 'd0xqtd' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7', key: 'ousv84' }],\n ['path', { d: 'm7.5 4.27 9 5.15', key: '1c824w' }],\n];\n\n/**\n * @component @name Package\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/package\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Package = createLucideIcon('package', __iconNode);\n\nexport default Package;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2', key: '48i651' }],\n ['line', { x1: '8', x2: '16', y1: '21', y2: '21', key: '1svkeh' }],\n ['line', { x1: '12', x2: '12', y1: '17', y2: '21', key: 'vw1qmm' }],\n];\n\n/**\n * @component @name Monitor\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/monitor\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Monitor = createLucideIcon('monitor', __iconNode);\n\nexport default Monitor;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z',\n key: 'm3kijz',\n },\n ],\n [\n 'path',\n {\n d: 'm12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z',\n key: '1fmvmk',\n },\n ],\n ['path', { d: 'M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0', key: '1f8sc4' }],\n ['path', { d: 'M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5', key: 'qeys4' }],\n];\n\n/**\n * @component @name Rocket\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/rocket\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Rocket = createLucideIcon('rocket', __iconNode);\n\nexport default Rocket;\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3,12,13,14,15]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"4028cc39abb05ca7c18237aafb41d8134bdb40a3ab",null),a.s(["openFolder",()=>i])},24860,19720,a=>{"use strict";var b=a.i(92658),c=a.i(33244),d=a.i(12581);async function e(){let{workflow:a}=(0,c.getSettings)();return{approvalGates:{allowPrd:a.approvalGateDefaults.allowPrd,allowPlan:a.approvalGateDefaults.allowPlan,allowMerge:a.approvalGateDefaults.allowMerge},push:a.approvalGateDefaults.pushOnImplementationComplete,openPr:a.openPrOnImplementationComplete,ciWatchEnabled:a.ciWatchEnabled,enableEvidence:a.enableEvidence,commitEvidence:a.commitEvidence,fast:a.defaultFastMode,injectSkills:a.skillInjection?.enabled??!1}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"00d32d5310df3ff792dfc6d8b67395f5ae206a5d56",null),a.s(["getWorkflowDefaults",()=>e],24860);var f=a.i(96380);let g=new Set(["ADMIN","MAINTAIN","WRITE"]);async function h(a){try{let b=(0,f.resolve)("IGitHubRepositoryService"),c=await b.getViewerPermission(a);return{canPushDirectly:g.has(c)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"400ffd5690a8959d9374602bf4fb0609303f830c03",null),a.s(["getViewerPermission",()=>h],19720)},23761,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(24860),G=a.i(19720),H=a.i(77605);a.s([],29023),a.i(29023),a.s(["0017a3f596c2b90658bb19c5117be2b6f519bc1314",()=>e.pickFolder,"0032e72d1011d4e626b5503edd0fef331cb9e8ae13",()=>g.listGitHubOrganizations,"004f4e5ce8df8f01c0c63485e0ed0718133e1fa853",()=>c.checkAllAgentsStatus,"006509149fb6c2f415f8450c9088450072a014aa1a",()=>b.getAllAgentModels,"00d32d5310df3ff792dfc6d8b67395f5ae206a5d56",()=>F.getWorkflowDefaults,"40023dc327570cea6ff2a1177e996854851a51c089",()=>A.unarchiveFeature,"400ffd5690a8959d9374602bf4fb0609303f830c03",()=>G.getViewerPermission,"4019f70a0543cf0486aa16490cbe978f2a34a2347e",()=>i.deployFeature,"4028cc39abb05ca7c18237aafb41d8134bdb40a3ab",()=>p.openFolder,"402a9388c4c40595790daa4181cb39052554de06ed",()=>h.importGitHubRepository,"402f3ec754226496bb37e1bf882a17def51cf8ccb8",()=>l.stopDeployment,"403fbb28c13795acda94d00d80fca36290fbb3d9c4",()=>s.createProjectAndFeature,"40429c9cf912c02f17c2da08bf4e9db4d1a9081059",()=>x.resumeFeature,"4043971339eb4f84d2ca25693efa0c5145dce877af",()=>q.syncRepository,"40546ee39227e6e083b5ff161e95a54a24a3739a1c",()=>z.stopFeature,"406260b7003b9bf0cb14ef656aafd980487280c22c",()=>v.archiveFeature,"406858434b1d40a654474f652e273dacff0f114a8f",()=>n.openIde,"4083635fcd972ab212a5a17bf919c30711e14955c3",()=>k.deployApplication,"408c4683e7e38f8046c9dad7739ff677e837c2e436",()=>f.listGitHubRepositories,"409173b44abca96c719c7230f6de025f6d9bea0849",()=>o.openShell,"409f36190e2ab34a496a18a1119a535d506aa6c3c8",()=>y.startFeature,"40a6376439dd2da25ab983e84a2e327778f8f453f4",()=>u.createProjectFolder,"40ae71a74448e4f534011f66f784be8cc3005391e7",()=>m.getDeploymentStatus,"40af4871c7609c265aa4f2438b045c7abe38fe6e69",()=>E.getFeatureMetadata,"40b04b2895d648863306ce7d024b5e9baa6ef8ec7b",()=>B.addRepository,"40b3ff55d8c6015de48f42ddd0a47a270c41d82366",()=>j.deployRepository,"40b9d57439db23ee8fffe27f9307cddf7e203b1f95",()=>t.createApplication,"40c2edbd9855aa0f10159f7fa545c5225d6c235eba",()=>H.createFeature,"40c3fcb203be759711825a5cac090e83e5c3b8e45f",()=>r.getDeploymentLogs,"40ee07562b07beaa415ee4ea443c25c60934686a33",()=>D.deleteApplication,"6036bd2e834ebd0c4acfa043c83e1a1f595d949be9",()=>C.deleteRepository,"609c3cd490c6f827a214c5e775cde00e9cee2bd2da",()=>d.updateAgentAndModel,"7812c1aa0763b4d79f2e787daf598094ad499c8a1a",()=>w.deleteFeature],23761)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_presentation_web_36f2bc45._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/get-workflow-defaults.ts","../../../../../../../src/presentation/web/app/actions/get-viewer-permission.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/create/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\nexport interface WorkflowDefaults {\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n ciWatchEnabled: boolean;\n enableEvidence: boolean;\n commitEvidence: boolean;\n fast: boolean;\n injectSkills: boolean;\n}\n\nexport async function getWorkflowDefaults(): Promise<WorkflowDefaults> {\n const settings = getSettings();\n const { workflow } = settings;\n\n return {\n approvalGates: {\n allowPrd: workflow.approvalGateDefaults.allowPrd,\n allowPlan: workflow.approvalGateDefaults.allowPlan,\n allowMerge: workflow.approvalGateDefaults.allowMerge,\n },\n push: workflow.approvalGateDefaults.pushOnImplementationComplete,\n openPr: workflow.openPrOnImplementationComplete,\n ciWatchEnabled: workflow.ciWatchEnabled,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n fast: workflow.defaultFastMode,\n injectSkills: workflow.skillInjection?.enabled ?? false,\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IGitHubRepositoryService } from '@shepai/core/application/ports/output/services/github-repository-service.interface';\n\n/** Permissions that grant direct push access to a repository. */\nconst PUSH_PERMISSIONS = new Set(['ADMIN', 'MAINTAIN', 'WRITE']);\n\nexport async function getViewerPermission(repoPath: string): Promise<{ canPushDirectly: boolean }> {\n try {\n const service = resolve<IGitHubRepositoryService>('IGitHubRepositoryService');\n const permission = await service.getViewerPermission(repoPath);\n return { canPushDirectly: PUSH_PERMISSIONS.has(permission) };\n } catch {\n return { canPushDirectly: false };\n }\n}\n","export {getAllAgentModels as '006509149fb6c2f415f8450c9088450072a014aa1a'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '004f4e5ce8df8f01c0c63485e0ed0718133e1fa853'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '609c3cd490c6f827a214c5e775cde00e9cee2bd2da'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '0017a3f596c2b90658bb19c5117be2b6f519bc1314'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '408c4683e7e38f8046c9dad7739ff677e837c2e436'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '0032e72d1011d4e626b5503edd0fef331cb9e8ae13'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '402a9388c4c40595790daa4181cb39052554de06ed'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '4019f70a0543cf0486aa16490cbe978f2a34a2347e'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40b3ff55d8c6015de48f42ddd0a47a270c41d82366'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '4083635fcd972ab212a5a17bf919c30711e14955c3'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '402f3ec754226496bb37e1bf882a17def51cf8ccb8'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40ae71a74448e4f534011f66f784be8cc3005391e7'} from 'ACTIONS_MODULE11'\nexport {openIde as '406858434b1d40a654474f652e273dacff0f114a8f'} from 'ACTIONS_MODULE12'\nexport {openShell as '409173b44abca96c719c7230f6de025f6d9bea0849'} from 'ACTIONS_MODULE13'\nexport {openFolder as '4028cc39abb05ca7c18237aafb41d8134bdb40a3ab'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '4043971339eb4f84d2ca25693efa0c5145dce877af'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '40c3fcb203be759711825a5cac090e83e5c3b8e45f'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '403fbb28c13795acda94d00d80fca36290fbb3d9c4'} from 'ACTIONS_MODULE17'\nexport {createApplication as '40b9d57439db23ee8fffe27f9307cddf7e203b1f95'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40a6376439dd2da25ab983e84a2e327778f8f453f4'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '406260b7003b9bf0cb14ef656aafd980487280c22c'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '7812c1aa0763b4d79f2e787daf598094ad499c8a1a'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40429c9cf912c02f17c2da08bf4e9db4d1a9081059'} from 'ACTIONS_MODULE22'\nexport {startFeature as '409f36190e2ab34a496a18a1119a535d506aa6c3c8'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '40546ee39227e6e083b5ff161e95a54a24a3739a1c'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '40023dc327570cea6ff2a1177e996854851a51c089'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40b04b2895d648863306ce7d024b5e9baa6ef8ec7b'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6036bd2e834ebd0c4acfa043c83e1a1f595d949be9'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '40ee07562b07beaa415ee4ea443c25c60934686a33'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '40af4871c7609c265aa4f2438b045c7abe38fe6e69'} from 'ACTIONS_MODULE29'\nexport {getWorkflowDefaults as '00d32d5310df3ff792dfc6d8b67395f5ae206a5d56'} from 'ACTIONS_MODULE30'\nexport {getViewerPermission as '400ffd5690a8959d9374602bf4fb0609303f830c03'} from 'ACTIONS_MODULE31'\nexport {createFeature as '40c2edbd9855aa0f10159f7fa545c5225d6c235eba'} from 'ACTIONS_MODULE32'\nexport {getViewerPermission as '400ffd5690a8959d9374602bf4fb0609303f830c03'} from 'ACTIONS_MODULE31'\n"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"4028cc39abb05ca7c18237aafb41d8134bdb40a3ab",null),a.s(["openFolder",()=>i])},6509,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207);a.s([],9051),a.i(9051),a.s(["0017a3f596c2b90658bb19c5117be2b6f519bc1314",()=>e.pickFolder,"0032e72d1011d4e626b5503edd0fef331cb9e8ae13",()=>g.listGitHubOrganizations,"004f4e5ce8df8f01c0c63485e0ed0718133e1fa853",()=>c.checkAllAgentsStatus,"006509149fb6c2f415f8450c9088450072a014aa1a",()=>b.getAllAgentModels,"40023dc327570cea6ff2a1177e996854851a51c089",()=>A.unarchiveFeature,"4019f70a0543cf0486aa16490cbe978f2a34a2347e",()=>i.deployFeature,"4028cc39abb05ca7c18237aafb41d8134bdb40a3ab",()=>p.openFolder,"402a9388c4c40595790daa4181cb39052554de06ed",()=>h.importGitHubRepository,"402f3ec754226496bb37e1bf882a17def51cf8ccb8",()=>l.stopDeployment,"403fbb28c13795acda94d00d80fca36290fbb3d9c4",()=>s.createProjectAndFeature,"40429c9cf912c02f17c2da08bf4e9db4d1a9081059",()=>x.resumeFeature,"4043971339eb4f84d2ca25693efa0c5145dce877af",()=>q.syncRepository,"40546ee39227e6e083b5ff161e95a54a24a3739a1c",()=>z.stopFeature,"406260b7003b9bf0cb14ef656aafd980487280c22c",()=>v.archiveFeature,"406858434b1d40a654474f652e273dacff0f114a8f",()=>n.openIde,"4083635fcd972ab212a5a17bf919c30711e14955c3",()=>k.deployApplication,"408c4683e7e38f8046c9dad7739ff677e837c2e436",()=>f.listGitHubRepositories,"409173b44abca96c719c7230f6de025f6d9bea0849",()=>o.openShell,"409f36190e2ab34a496a18a1119a535d506aa6c3c8",()=>y.startFeature,"40a6376439dd2da25ab983e84a2e327778f8f453f4",()=>u.createProjectFolder,"40ae71a74448e4f534011f66f784be8cc3005391e7",()=>m.getDeploymentStatus,"40af4871c7609c265aa4f2438b045c7abe38fe6e69",()=>E.getFeatureMetadata,"40b04b2895d648863306ce7d024b5e9baa6ef8ec7b",()=>B.addRepository,"40b3ff55d8c6015de48f42ddd0a47a270c41d82366",()=>j.deployRepository,"40b9d57439db23ee8fffe27f9307cddf7e203b1f95",()=>t.createApplication,"40c3fcb203be759711825a5cac090e83e5c3b8e45f",()=>r.getDeploymentLogs,"40ee07562b07beaa415ee4ea443c25c60934686a33",()=>D.deleteApplication,"6036bd2e834ebd0c4acfa043c83e1a1f595d949be9",()=>C.deleteRepository,"609c3cd490c6f827a214c5e775cde00e9cee2bd2da",()=>d.updateAgentAndModel,"7812c1aa0763b4d79f2e787daf598094ad499c8a1a",()=>w.deleteFeature],6509)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_presentation_web_486908de._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/chat/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","export {getAllAgentModels as '006509149fb6c2f415f8450c9088450072a014aa1a'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '004f4e5ce8df8f01c0c63485e0ed0718133e1fa853'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '609c3cd490c6f827a214c5e775cde00e9cee2bd2da'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '0017a3f596c2b90658bb19c5117be2b6f519bc1314'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '408c4683e7e38f8046c9dad7739ff677e837c2e436'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '0032e72d1011d4e626b5503edd0fef331cb9e8ae13'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '402a9388c4c40595790daa4181cb39052554de06ed'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '4019f70a0543cf0486aa16490cbe978f2a34a2347e'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40b3ff55d8c6015de48f42ddd0a47a270c41d82366'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '4083635fcd972ab212a5a17bf919c30711e14955c3'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '402f3ec754226496bb37e1bf882a17def51cf8ccb8'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40ae71a74448e4f534011f66f784be8cc3005391e7'} from 'ACTIONS_MODULE11'\nexport {openIde as '406858434b1d40a654474f652e273dacff0f114a8f'} from 'ACTIONS_MODULE12'\nexport {openShell as '409173b44abca96c719c7230f6de025f6d9bea0849'} from 'ACTIONS_MODULE13'\nexport {openFolder as '4028cc39abb05ca7c18237aafb41d8134bdb40a3ab'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '4043971339eb4f84d2ca25693efa0c5145dce877af'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '40c3fcb203be759711825a5cac090e83e5c3b8e45f'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '403fbb28c13795acda94d00d80fca36290fbb3d9c4'} from 'ACTIONS_MODULE17'\nexport {createApplication as '40b9d57439db23ee8fffe27f9307cddf7e203b1f95'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40a6376439dd2da25ab983e84a2e327778f8f453f4'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '406260b7003b9bf0cb14ef656aafd980487280c22c'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '7812c1aa0763b4d79f2e787daf598094ad499c8a1a'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40429c9cf912c02f17c2da08bf4e9db4d1a9081059'} from 'ACTIONS_MODULE22'\nexport {startFeature as '409f36190e2ab34a496a18a1119a535d506aa6c3c8'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '40546ee39227e6e083b5ff161e95a54a24a3739a1c'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '40023dc327570cea6ff2a1177e996854851a51c089'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40b04b2895d648863306ce7d024b5e9baa6ef8ec7b'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6036bd2e834ebd0c4acfa043c83e1a1f595d949be9'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '40ee07562b07beaa415ee4ea443c25c60934686a33'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '40af4871c7609c265aa4f2438b045c7abe38fe6e69'} from 'ACTIONS_MODULE29'\n"],"names":[],"mappings":"wDAEA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,oBAMA,IAAM,EAAqF,CACzF,OAAQ,CAAE,IAAK,OAAQ,KAAM,AAAC,GAAM,CAAC,EAAE,AAAC,EACxC,MAAO,CAAE,IAAK,WAAY,KAAM,AAAC,GAAM,CAAC,EAAE,AAAC,EAC3C,MAAO,CAAE,IAAK,WAAY,KAAM,AAAC,GAAM,CAAC,EAAE,AAAC,CAC7C,EAEO,eAAe,EACpB,CAAsB,EAEtB,GAAI,CAAC,GAAkB,CAAC,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACjC,MAAO,CAAE,OADyC,EAChC,EAAO,MAAO,yCAA0C,EAG5E,GAAI,CACF,GAAI,CAAC,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACd,MAAO,CAAE,OADsB,EACb,EAAO,MAAO,qBAAsB,EAGxD,IAAM,EAAQ,CAAe,CAAC,CAAA,EAAA,EAAA,QAAA,AAAQ,IAAG,CACzC,GAAI,CAAC,EACH,KADU,CACH,CACL,SAAS,EACT,MAAO,CAAC,sBAAsB,EAAE,CAAA,EAAA,EAAA,QAAA,AAAQ,IAAA,CAAI,AAC9C,EAKF,IAAM,EAAa,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,GAEvB,EAAQ,CAAA,EAAA,EAAA,KAAA,AAAK,EAAC,EAAM,GAAG,CAAE,EAAM,IAAI,CAAC,GAAa,CACrD,UAAU,EACV,MAAO,QACT,GAIA,OAHA,EAAM,EAAE,CAAC,QAAS,IAAM,QACxB,EAAM,EAD8B,GACzB,GAEJ,CAAE,SAAS,EAAM,KAAM,CAAe,CAC/C,CAAE,MAAO,EAAgB,CAEvB,MAAO,CAAE,IANyE,IAMhE,GAAO,MADT,CACgB,YADC,MAAQ,EAAM,OAAO,CAAG,uBACjB,CAC1C,CACF,iCApCsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,uDCjBtB,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"4028cc39abb05ca7c18237aafb41d8134bdb40a3ab",null),a.s(["openFolder",()=>i])},35556,a=>{"use strict";var b=a.i(92658),c=a.i(74533),d=a.i(12057),e=a.i(12581);let f=(0,d.promisify)(c.execFile);async function g(a,b){let{stdout:c}=await f("git",b,{cwd:a,timeout:5e3});return c.trim()}async function h(a,b=8){if(!a.trim())return{commits:[],branches:[],remotes:[],tags:[],stashCount:0,currentBranch:"",diffStats:null,workingTree:{staged:0,modified:0,untracked:0},error:"Repository path is required"};let c=await Promise.allSettled([g(a,["log",`--max-count=${b}`,"--format=%H%x00%h%x00%s%x00%an%x00%cr","--no-color"]),g(a,["branch","--show-current"]),g(a,["branch","--sort=-committerdate","--format=%(HEAD)%(refname:short)%00%(committerdate:relative)","--no-color"]),g(a,["remote","-v"]),g(a,["tag","--sort=-creatordate","-l","--format=%(refname:short)"]),g(a,["stash","list"]),g(a,["status","--porcelain"]),g(a,["diff","HEAD","--shortstat"])]),d=a=>"fulfilled"===c[a].status?c[a].value:"",e=d(0).split("\n").filter(Boolean).map(a=>{let[b,c,d,e,f]=a.split("\0");return{hash:b,shortHash:c,subject:d,author:e,relativeDate:f}}),f=d(1);e.length>0&&f&&(e[0].branch=f);let i=d(2).split("\n").filter(Boolean).slice(0,10).map(a=>{let b=a.startsWith("*"),[c,d]=(b?a.slice(1):a).split("\0");return{name:c.trim(),isCurrent:b,lastCommitDate:d?.trim()??""}}),j=new Map;d(3).split("\n").filter(Boolean).forEach(a=>{let b=a.match(/^(\S+)\s+(\S+)\s+\(fetch\)/);if(b){let a=b[2].replace(/\/\/[^@]+@/,"//").replace(/x-access-token:[^@]+@/,"");j.set(b[1],a)}});let k=Array.from(j,([a,b])=>({name:a,url:b})),l=d(4).split("\n").filter(Boolean).slice(0,5),m=d(5).split("\n").filter(Boolean).length,n=d(6).split("\n").filter(Boolean),o={staged:0,modified:0,untracked:0};for(let a of n){let b=a[0],c=a[1];"?"===b&&"?"===c?o.untracked++:" "!==b&&"?"!==b&&o.staged++," "!==c&&"?"!==c&&o.modified++}let p=null,q=d(7);if(q){let a=q.match(/(\d+) file/),b=q.match(/(\d+) insertion/),c=q.match(/(\d+) deletion/);p={filesChanged:a?parseInt(a[1],10):0,insertions:b?parseInt(b[1],10):0,deletions:c?parseInt(c[1],10):0}}return{commits:e,branches:i,remotes:k,tags:l,stashCount:m,currentBranch:f,diffStats:p,workingTree:o}}async function i(a,b=10){let c=await h(a,b);return{entries:c.commits,error:c.error}}(0,e.ensureServerEntryExports)([h,i]),(0,b.registerServerReference)(h,"60a4767abdc16755d70c418c91b95be6f50d8c3bea",null),(0,b.registerServerReference)(i,"60c23a50f93e8e3e07e81b3dc3f27a7b3132dd854d",null),a.s(["getGitRepoInfo",()=>h])},12358,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(35556);a.s([],6524),a.i(6524),a.s(["0017a3f596c2b90658bb19c5117be2b6f519bc1314",()=>e.pickFolder,"0032e72d1011d4e626b5503edd0fef331cb9e8ae13",()=>g.listGitHubOrganizations,"004f4e5ce8df8f01c0c63485e0ed0718133e1fa853",()=>c.checkAllAgentsStatus,"006509149fb6c2f415f8450c9088450072a014aa1a",()=>b.getAllAgentModels,"40023dc327570cea6ff2a1177e996854851a51c089",()=>A.unarchiveFeature,"4019f70a0543cf0486aa16490cbe978f2a34a2347e",()=>i.deployFeature,"4028cc39abb05ca7c18237aafb41d8134bdb40a3ab",()=>p.openFolder,"402a9388c4c40595790daa4181cb39052554de06ed",()=>h.importGitHubRepository,"402f3ec754226496bb37e1bf882a17def51cf8ccb8",()=>l.stopDeployment,"403fbb28c13795acda94d00d80fca36290fbb3d9c4",()=>s.createProjectAndFeature,"40429c9cf912c02f17c2da08bf4e9db4d1a9081059",()=>x.resumeFeature,"4043971339eb4f84d2ca25693efa0c5145dce877af",()=>q.syncRepository,"40546ee39227e6e083b5ff161e95a54a24a3739a1c",()=>z.stopFeature,"406260b7003b9bf0cb14ef656aafd980487280c22c",()=>v.archiveFeature,"406858434b1d40a654474f652e273dacff0f114a8f",()=>n.openIde,"4083635fcd972ab212a5a17bf919c30711e14955c3",()=>k.deployApplication,"408c4683e7e38f8046c9dad7739ff677e837c2e436",()=>f.listGitHubRepositories,"409173b44abca96c719c7230f6de025f6d9bea0849",()=>o.openShell,"409f36190e2ab34a496a18a1119a535d506aa6c3c8",()=>y.startFeature,"40a6376439dd2da25ab983e84a2e327778f8f453f4",()=>u.createProjectFolder,"40ae71a74448e4f534011f66f784be8cc3005391e7",()=>m.getDeploymentStatus,"40af4871c7609c265aa4f2438b045c7abe38fe6e69",()=>E.getFeatureMetadata,"40b04b2895d648863306ce7d024b5e9baa6ef8ec7b",()=>B.addRepository,"40b3ff55d8c6015de48f42ddd0a47a270c41d82366",()=>j.deployRepository,"40b9d57439db23ee8fffe27f9307cddf7e203b1f95",()=>t.createApplication,"40c3fcb203be759711825a5cac090e83e5c3b8e45f",()=>r.getDeploymentLogs,"40ee07562b07beaa415ee4ea443c25c60934686a33",()=>D.deleteApplication,"6036bd2e834ebd0c4acfa043c83e1a1f595d949be9",()=>C.deleteRepository,"609c3cd490c6f827a214c5e775cde00e9cee2bd2da",()=>d.updateAgentAndModel,"60a4767abdc16755d70c418c91b95be6f50d8c3bea",()=>F.getGitRepoInfo,"7812c1aa0763b4d79f2e787daf598094ad499c8a1a",()=>w.deleteFeature],12358)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_presentation_web_5c3596bc._.js.map
|