@shepai/cli 1.178.0 → 1.178.1-pr536.42a22c6
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 +40 -0
- package/apis/json-schema/ApplicationStatus.yaml +8 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts +17 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.js +6 -0
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts +29 -0
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.js +135 -0
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.d.ts +15 -0
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.js +45 -0
- package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.js +33 -0
- package/dist/packages/core/src/application/use-cases/applications/index.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/applications/index.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/index.js +10 -0
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.js +33 -0
- package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.d.ts +14 -0
- package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.js +33 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +42 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +6 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +32 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts +37 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.js +52 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.d.ts +5 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.js +34 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts +21 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.js +98 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +31 -5
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts +14 -0
- 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 +63 -0
- 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 +57 -10
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +11 -1
- package/dist/src/presentation/web/app/actions/check-all-agents-status.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/check-all-agents-status.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/check-all-agents-status.js +30 -0
- package/dist/src/presentation/web/app/actions/create-application.d.ts +13 -0
- package/dist/src/presentation/web/app/actions/create-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/create-application.js +20 -0
- package/dist/src/presentation/web/app/actions/create-project-and-feature.d.ts +20 -0
- package/dist/src/presentation/web/app/actions/create-project-and-feature.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/create-project-and-feature.js +84 -0
- package/dist/src/presentation/web/app/actions/delete-application.d.ts +4 -0
- package/dist/src/presentation/web/app/actions/delete-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/delete-application.js +16 -0
- package/dist/src/presentation/web/app/application/[id]/page.d.ts +11 -0
- package/dist/src/presentation/web/app/application/[id]/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/application/[id]/page.js +16 -0
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts +3 -1
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-graph-nodes.js +19 -0
- package/dist/src/presentation/web/components/common/application-node/application-node-config.d.ts +24 -0
- package/dist/src/presentation/web/components/common/application-node/application-node-config.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node-config.js +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.d.ts +7 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.js +41 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.stories.js +100 -0
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.js +1 -1
- package/dist/src/presentation/web/components/features/application-page/application-page.d.ts +8 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.js +86 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.js +51 -0
- package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatSheet.js +4 -2
- package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts +5 -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 +3 -3
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts +3 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +181 -120
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts +4 -16
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.js +16 -109
- 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 +21 -3
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +4 -0
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +25 -1
- package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts +2 -1
- package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-fab-actions.js +9 -2
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +2 -9
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +2 -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 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts +3 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +9 -4
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts +5 -0
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.js +37 -2
- package/dist/src/presentation/web/lib/derive-graph.d.ts +11 -1
- package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/derive-graph.js +35 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.js +1 -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 +1 -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 +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/routes-manifest.json +8 -0
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +96 -81
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +4 -3
- 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 +92 -77
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +4 -3
- 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 +98 -83
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +4 -3
- 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 +114 -99
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +4 -3
- 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 +114 -99
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +4 -3
- 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 +94 -79
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +4 -3
- 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 +94 -79
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +4 -3
- 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 +92 -77
- package/web/.next/server/app/(dashboard)/chat/page.js +4 -3
- 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 +98 -83
- package/web/.next/server/app/(dashboard)/create/page.js +4 -3
- 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 +114 -99
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +4 -3
- 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 +114 -99
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +4 -3
- 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 +92 -77
- package/web/.next/server/app/(dashboard)/page.js +4 -3
- 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 +94 -79
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +4 -3
- 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 +94 -79
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +4 -3
- 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 +27 -12
- package/web/.next/server/app/_not-found/page.js +2 -2
- 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/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
- package/web/.next/server/app/api/attachments/upload-from-path/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/app-paths-manifest.json +3 -0
- package/web/.next/server/app/application/[id]/page/build-manifest.json +18 -0
- package/web/.next/server/app/application/[id]/page/next-font-manifest.json +6 -0
- package/web/.next/server/app/application/[id]/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +110 -0
- package/web/.next/server/app/application/[id]/page.js +18 -0
- package/web/.next/server/app/application/[id]/page.js.map +5 -0
- package/web/.next/server/app/application/[id]/page.js.nft.json +1 -0
- package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +2 -0
- package/web/.next/server/app/features/page/server-reference-manifest.json +27 -12
- package/web/.next/server/app/features/page.js +2 -2
- 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 +33 -18
- package/web/.next/server/app/settings/page.js +2 -2
- 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 +41 -26
- package/web/.next/server/app/skills/page.js +2 -2
- 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 +37 -22
- package/web/.next/server/app/tools/page.js +2 -2
- 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 +27 -12
- package/web/.next/server/app/version/page.js +2 -2
- 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 +1 -0
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/{[root-of-the-server]__ea653642._.js → [root-of-the-server]__a5879003._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__ea653642._.js.map → [root-of-the-server]__a5879003._.js.map} +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_17d0c3c1.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_17d0c3c1.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_717a531e.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_717a531e.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_6ed3ab8b.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_6ed3ab8b.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/7f428_lucide-react_dist_esm_icons_281e0ef8._.js +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_281e0ef8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__00efb844._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__00efb844._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js → [root-of-the-server]__090f24cb._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js.map → [root-of-the-server]__090f24cb._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0d64745d._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0d64745d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__28c4e836._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__28c4e836._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3b7cba7e._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3b7cba7e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__63272afd._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__63272afd._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7e2919._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7e2919._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js → [root-of-the-server]__7aa484f5._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js.map → [root-of-the-server]__7aa484f5._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__964b00e8._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__964b00e8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__df7bfd53._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__df7bfd53._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f5f982ad._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f5f982ad._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.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/_2bea8166._.js +4 -0
- package/web/.next/server/chunks/ssr/_2bea8166._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_46a35540._.js +3 -0
- package/web/.next/server/chunks/ssr/_46a35540._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_4e42f1b7._.js +3 -0
- package/web/.next/server/chunks/ssr/_4e42f1b7._.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/_6dff070a._.js +3 -0
- package/web/.next/server/chunks/ssr/_6dff070a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_73e62e34._.js +7 -0
- package/web/.next/server/chunks/ssr/_73e62e34._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_83e1c526._.js → _946a7fc6._.js} +3 -3
- package/web/.next/server/chunks/ssr/_946a7fc6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_b0311e50._.js +3 -0
- package/web/.next/server/chunks/ssr/_b0311e50._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_b7a43c05._.js +1 -1
- package/web/.next/server/chunks/ssr/_b7a43c05._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d485d3b9._.js +3 -0
- package/web/.next/server/chunks/ssr/_d485d3b9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f3cd7f63._.js +9 -0
- package/web/.next/server/chunks/ssr/_f3cd7f63._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_496c9117._.js → _f86fc1bf._.js} +2 -2
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
- package/web/.next/server/chunks/ssr/_f8c55130._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f916587a._.js +3 -0
- package/web/.next/server/chunks/ssr/_f916587a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_49b9ba41._.js → _fb9934d4._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_49b9ba41._.js.map → _fb9934d4._.js.map} +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/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_2478c24c._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_2478c24c._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_25da4cf4._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_25da4cf4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_35084e19._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_35084e19._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_4ed08aa4._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_4ed08aa4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5149e11b.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5149e11b.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1619f987.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1619f987.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_1b3c83ff.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_1b3c83ff.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_a9f3bc05._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_a9f3bc05._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +32 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_b360e85a._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_b360e85a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
- 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_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.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/translations_23dd5e7e._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
- 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 +898 -701
- package/web/.next/static/chunks/{25a0d3f50b0a26c1.js → 04b48827bdc55056.js} +1 -1
- package/web/.next/static/chunks/07dd0cd365169ac6.js +1 -0
- package/web/.next/static/chunks/0dbc8228223540f0.js +1 -0
- package/web/.next/static/chunks/14742749d118b339.js +1 -0
- package/web/.next/static/chunks/{2cc487403c107f3f.js → 48b1ee6f9460e08a.js} +2 -2
- package/web/.next/static/chunks/54a8ad22d3f9a857.js +3 -0
- package/web/.next/static/chunks/57cc43fa9970f8d7.js +1 -0
- package/web/.next/static/chunks/63e6ce2311b8c44f.js +7 -0
- package/web/.next/static/chunks/73e5026c618f964b.css +1 -0
- package/web/.next/static/chunks/771b8283dff48366.js +5 -0
- package/web/.next/static/chunks/79f687a9b9f2dca3.js +1 -0
- package/web/.next/static/chunks/{35bf9838f21d1818.js → 82189e222fa39768.js} +1 -1
- package/web/.next/static/chunks/{e167803ac69c66c7.js → 9718f0d839d204ee.js} +1 -1
- package/web/.next/static/chunks/994f0ac30cd8661a.js +1 -0
- package/web/.next/static/chunks/a9dbf887ff5ea94d.js +1 -0
- package/web/.next/static/chunks/afd205387569eb16.js +1 -0
- package/web/.next/static/chunks/b99506a6f7bc2fa8.js +1 -0
- package/web/.next/static/chunks/{09edd35d194bec06.js → bcbae49e0f6d65ca.js} +3 -3
- package/web/.next/static/chunks/{5f57f0d80d3db147.js → c5e9b56c67a4f3d4.js} +1 -1
- package/web/.next/static/chunks/c9bd1dea77920749.js +1 -0
- package/web/.next/static/chunks/ce8d4b5094c4dd62.js +1 -0
- package/web/.next/static/chunks/e2644573ed9ceb22.js +1 -0
- package/web/.next/static/chunks/{36e3d626ed8defca.js → f202967c5b0ff87f.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__22d17c66._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__22d17c66._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__46b10380._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__46b10380._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8b512877._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8b512877._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__990dba2d._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__990dba2d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__cc9c7bbb._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__cc9c7bbb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_43ba79e7._.js +0 -3
- package/web/.next/server/chunks/ssr/_43ba79e7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_496c9117._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_64efdf53._.js +0 -3
- package/web/.next/server/chunks/ssr/_64efdf53._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_6abfa39e._.js +0 -3
- package/web/.next/server/chunks/ssr/_6abfa39e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7cb0396e._.js +0 -3
- package/web/.next/server/chunks/ssr/_7cb0396e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_83e1c526._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_d9c0a97a._.js +0 -7
- package/web/.next/server/chunks/ssr/_d9c0a97a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_e680c57c._.js +0 -9
- package/web/.next/server/chunks/ssr/_e680c57c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_06109d28._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_06109d28._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0bca70f8._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_0bca70f8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_367cdbe0._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_367cdbe0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_57fed7fd._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_57fed7fd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_7f567f6d._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_7f567f6d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_972f58d5._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_972f58d5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_a71b18a2._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_a71b18a2._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_bebe675e._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_bebe675e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c93e8bc6._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_c93e8bc6._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e729f44a._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_e729f44a._.js.map +0 -1
- package/web/.next/static/chunks/0b7251e5d717dd17.js +0 -1
- package/web/.next/static/chunks/0fd39d549d277843.js +0 -1
- package/web/.next/static/chunks/124b79a5d2a760fb.css +0 -1
- package/web/.next/static/chunks/4052a4971fbbac9c.js +0 -1
- package/web/.next/static/chunks/46e2693dbc9262fd.js +0 -5
- package/web/.next/static/chunks/5df9da8b40e298ee.js +0 -7
- package/web/.next/static/chunks/8286914ac835a1cc.js +0 -1
- package/web/.next/static/chunks/8777b2a0a2e85fd1.js +0 -3
- package/web/.next/static/chunks/8b0a9cb5109fe899.js +0 -1
- package/web/.next/static/chunks/971e52f3f386ccfd.js +0 -1
- package/web/.next/static/chunks/9e9cddf8e38342e8.js +0 -1
- package/web/.next/static/chunks/ac586c86d71187fc.js +0 -1
- package/web/.next/static/chunks/b63e6727c84f30e2.js +0 -1
- package/web/.next/static/chunks/c10c0d6d458453bc.js +0 -1
- package/web/.next/static/chunks/c6fdd161a9e5b554.js +0 -1
- /package/web/.next/static/{sfBZvlx-erv7S1C49vRSU → gxMya5XttXE_aSwszy4nE}/_buildManifest.js +0 -0
- /package/web/.next/static/{sfBZvlx-erv7S1C49vRSU → gxMya5XttXE_aSwszy4nE}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{sfBZvlx-erv7S1C49vRSU → gxMya5XttXE_aSwszy4nE}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[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","--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,"605c910df2a2a0a28b09fe72efcc23d23a51eaf801",null),(0,b.registerServerReference)(i,"6045b4fd28c8ef6c910d57be713fc7eea99cc64996",null),a.s(["getGitRepoInfo",()=>h])},7120,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(68670),l=a.i(85321),m=a.i(84095),n=a.i(56799),o=a.i(80496),p=a.i(93225),q=a.i(94691),r=a.i(77710),s=a.i(45395),t=a.i(76707),u=a.i(10528),v=a.i(50845),w=a.i(26604),x=a.i(54723),y=a.i(18942),z=a.i(42886),A=a.i(49560),B=a.i(39353),C=a.i(95072),D=a.i(29207),E=a.i(35556);a.s([],13822),a.i(13822),a.s(["00183231886190dba7a7ac26d26d32b0a206df6bcd",()=>e.pickFolder,"002b25882a63560fe3f920777693bb3bcdab0d43c4",()=>b.getAllAgentModels,"004842296acda5ee98d700503bd36d9eb5ce309719",()=>g.listGitHubOrganizations,"00fbf1baa0c12cac2662e0b167b94c1a8ecaa61aad",()=>c.checkAllAgentsStatus,"400452c3c18f06f7b9dd71dc3094db0bfc0beff2b4",()=>t.createProjectFolder,"4009c6c226ef9869393293b1201e321b437fb29b6c",()=>r.createProjectAndFeature,"400e055a899a89fc2159471e699d87a54e94228134",()=>z.unarchiveFeature,"401c3162ea1510487018b872bdc7d4944e6a273bb0",()=>p.syncRepository,"405faea6f92886e45c28beca2e0bc36a560ce601af",()=>i.deployFeature,"40610cb28afa5acf5d99471ad20a1a694ca407cf9f",()=>D.getFeatureMetadata,"406d784b38501a2ec837380f80020e68742f5cc291",()=>y.stopFeature,"4073d101c2600ae9928fc176534c425776bc85f61b",()=>n.openShell,"4082292053cd2f8f1fdd32f985b4255d565f013f40",()=>f.listGitHubRepositories,"40883435444f1a19cbd694a170415abe6c3988cd21",()=>w.resumeFeature,"409122e7eff17c8619c0d5142b8f2b4ea46acd384f",()=>q.getDeploymentLogs,"4091c417aa5cc0d712341fb3c24e46aa4749750d22",()=>h.importGitHubRepository,"40970629475cc7bb25797407cb6ce40eef108937e5",()=>j.deployRepository,"40a4f79ed2482b72834c0b2544c66bdab668d33276",()=>x.startFeature,"40b12777e8554506f0c21c9ff8bf312b0a468e87b2",()=>s.createApplication,"40bbc73ca9989a5bf566e3c1d4858f5962123bf616",()=>u.archiveFeature,"40bee59fd245a9b9ff9ec19b92ee9598c19ca0d682",()=>k.stopDeployment,"40cde1aa197dadce61becdcf738706c67bfff7cf64",()=>l.getDeploymentStatus,"40d27df89a125b0955680fc1e1280e16db6099dd57",()=>o.openFolder,"40de3a2e3307a2483ac765a1305162d82e87e9843d",()=>A.addRepository,"40e8d7550602fc992c70ee6516ec1ac6aaced031c8",()=>m.openIde,"40f9767b2ee2db1a974e2028782fba039e243485c1",()=>C.deleteApplication,"602c2303837f9930fc4175b6af94501a2eb27d643a",()=>B.deleteRepository,"604f107f9d0e471b0f25a659048a37873ad5fb928e",()=>d.updateAgentAndModel,"605c910df2a2a0a28b09fe72efcc23d23a51eaf801",()=>E.getGitRepoInfo,"78045eab03db3945e9737d77eb9a5bc0050199dcee",()=>v.deleteFeature],7120)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_presentation_web_a9f3bc05._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-git-log.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execFileAsync = promisify(execFile);\n\nasync function git(cwd: string, args: string[]): Promise<string> {\n const { stdout } = await execFileAsync('git', args, { cwd, timeout: 5000 });\n return stdout.trim();\n}\n\nexport interface GitLogEntry {\n hash: string;\n shortHash: string;\n subject: string;\n author: string;\n relativeDate: string;\n branch?: string;\n}\n\nexport interface GitBranchInfo {\n name: string;\n isCurrent: boolean;\n lastCommitDate: string;\n}\n\nexport interface GitRemoteInfo {\n name: string;\n url: string;\n}\n\nexport interface GitWorkingTreeStatus {\n staged: number;\n modified: number;\n untracked: number;\n}\n\nexport interface GitDiffStats {\n filesChanged: number;\n insertions: number;\n deletions: number;\n}\n\nexport interface GitRepoInfo {\n commits: GitLogEntry[];\n branches: GitBranchInfo[];\n remotes: GitRemoteInfo[];\n tags: string[];\n stashCount: number;\n currentBranch: string;\n diffStats: GitDiffStats | null;\n workingTree: GitWorkingTreeStatus;\n error?: string;\n}\n\nexport async function getGitRepoInfo(\n repositoryPath: string,\n commitLimit = 8\n): Promise<GitRepoInfo> {\n const empty: GitRepoInfo = {\n commits: [],\n branches: [],\n remotes: [],\n tags: [],\n stashCount: 0,\n currentBranch: '',\n diffStats: null,\n workingTree: { staged: 0, modified: 0, untracked: 0 },\n };\n\n if (!repositoryPath.trim()) {\n return { ...empty, error: 'Repository path is required' };\n }\n\n const results = await Promise.allSettled([\n // 0: commits\n git(repositoryPath, [\n 'log',\n `--max-count=${commitLimit}`,\n '--format=%H%x00%h%x00%s%x00%an%x00%cr',\n '--no-color',\n ]),\n // 1: current branch\n git(repositoryPath, ['branch', '--show-current']),\n // 2: branches with dates\n git(repositoryPath, [\n 'branch',\n '--sort=-committerdate',\n '--format=%(HEAD)%(refname:short)%00%(committerdate:relative)',\n '--no-color',\n ]),\n // 3: remotes\n git(repositoryPath, ['remote', '-v']),\n // 4: tags (recent 5)\n git(repositoryPath, ['tag', '--sort=-creatordate', '-l', '--format=%(refname:short)']),\n // 5: stash count\n git(repositoryPath, ['stash', 'list']),\n // 6: working tree status\n git(repositoryPath, ['status', '--porcelain']),\n // 7: diff stats (uncommitted)\n git(repositoryPath, ['diff', '--shortstat']),\n ]);\n\n const val = (i: number) => (results[i].status === 'fulfilled' ? results[i].value : '');\n\n // Parse commits\n const commits: GitLogEntry[] = val(0)\n .split('\\n')\n .filter(Boolean)\n .map((line: string) => {\n const [hash, shortHash, subject, author, relativeDate] = line.split('\\0');\n return { hash, shortHash, subject, author, relativeDate };\n });\n\n const currentBranch = val(1);\n if (commits.length > 0 && currentBranch) {\n commits[0].branch = currentBranch;\n }\n\n // Parse branches\n const branches: GitBranchInfo[] = val(2)\n .split('\\n')\n .filter(Boolean)\n .slice(0, 10)\n .map((line: string) => {\n const isCurrent = line.startsWith('*');\n const clean = isCurrent ? line.slice(1) : line;\n const [name, lastCommitDate] = clean.split('\\0');\n return { name: name.trim(), isCurrent, lastCommitDate: lastCommitDate?.trim() ?? '' };\n });\n\n // Parse remotes (dedup fetch/push)\n const remoteMap = new Map<string, string>();\n val(3)\n .split('\\n')\n .filter(Boolean)\n .forEach((line: string) => {\n const match = line.match(/^(\\S+)\\s+(\\S+)\\s+\\(fetch\\)/);\n if (match) {\n // Strip credentials/tokens from URL before sending to client\n const sanitized = match[2].replace(/\\/\\/[^@]+@/, '//').replace(/x-access-token:[^@]+@/, '');\n remoteMap.set(match[1], sanitized);\n }\n });\n const remotes: GitRemoteInfo[] = Array.from(remoteMap, ([name, url]) => ({ name, url }));\n\n // Parse tags (top 5)\n const tags = val(4).split('\\n').filter(Boolean).slice(0, 5);\n\n // Stash count\n const stashCount = val(5).split('\\n').filter(Boolean).length;\n\n // Working tree status\n const statusLines = val(6).split('\\n').filter(Boolean);\n const workingTree: GitWorkingTreeStatus = { staged: 0, modified: 0, untracked: 0 };\n for (const line of statusLines) {\n const x = line[0];\n const y = line[1];\n if (x === '?' && y === '?') workingTree.untracked++;\n else if (x !== ' ' && x !== '?') workingTree.staged++;\n if (y !== ' ' && y !== '?') workingTree.modified++;\n }\n\n // Diff stats\n let diffStats: GitDiffStats | null = null;\n const diffLine = val(7);\n if (diffLine) {\n const files = diffLine.match(/(\\d+) file/);\n const ins = diffLine.match(/(\\d+) insertion/);\n const del = diffLine.match(/(\\d+) deletion/);\n diffStats = {\n filesChanged: files ? parseInt(files[1], 10) : 0,\n insertions: ins ? parseInt(ins[1], 10) : 0,\n deletions: del ? parseInt(del[1], 10) : 0,\n };\n }\n\n return { commits, branches, remotes, tags, stashCount, currentBranch, diffStats, workingTree };\n}\n\n// Keep backward compat\nexport async function getGitLog(\n repositoryPath: string,\n limit = 10\n): Promise<{ entries: GitLogEntry[]; error?: string }> {\n const info = await getGitRepoInfo(repositoryPath, limit);\n return { entries: info.commits, error: info.error };\n}\n","export {getAllAgentModels as '002b25882a63560fe3f920777693bb3bcdab0d43c4'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '00fbf1baa0c12cac2662e0b167b94c1a8ecaa61aad'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '604f107f9d0e471b0f25a659048a37873ad5fb928e'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00183231886190dba7a7ac26d26d32b0a206df6bcd'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '4082292053cd2f8f1fdd32f985b4255d565f013f40'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '004842296acda5ee98d700503bd36d9eb5ce309719'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '4091c417aa5cc0d712341fb3c24e46aa4749750d22'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '405faea6f92886e45c28beca2e0bc36a560ce601af'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40970629475cc7bb25797407cb6ce40eef108937e5'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '40bee59fd245a9b9ff9ec19b92ee9598c19ca0d682'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '40cde1aa197dadce61becdcf738706c67bfff7cf64'} from 'ACTIONS_MODULE10'\nexport {openIde as '40e8d7550602fc992c70ee6516ec1ac6aaced031c8'} from 'ACTIONS_MODULE11'\nexport {openShell as '4073d101c2600ae9928fc176534c425776bc85f61b'} from 'ACTIONS_MODULE12'\nexport {openFolder as '40d27df89a125b0955680fc1e1280e16db6099dd57'} from 'ACTIONS_MODULE13'\nexport {syncRepository as '401c3162ea1510487018b872bdc7d4944e6a273bb0'} from 'ACTIONS_MODULE14'\nexport {getDeploymentLogs as '409122e7eff17c8619c0d5142b8f2b4ea46acd384f'} from 'ACTIONS_MODULE15'\nexport {createProjectAndFeature as '4009c6c226ef9869393293b1201e321b437fb29b6c'} from 'ACTIONS_MODULE16'\nexport {createApplication as '40b12777e8554506f0c21c9ff8bf312b0a468e87b2'} from 'ACTIONS_MODULE17'\nexport {createProjectFolder as '400452c3c18f06f7b9dd71dc3094db0bfc0beff2b4'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '40bbc73ca9989a5bf566e3c1d4858f5962123bf616'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '78045eab03db3945e9737d77eb9a5bc0050199dcee'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '40883435444f1a19cbd694a170415abe6c3988cd21'} from 'ACTIONS_MODULE21'\nexport {startFeature as '40a4f79ed2482b72834c0b2544c66bdab668d33276'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '406d784b38501a2ec837380f80020e68742f5cc291'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '400e055a899a89fc2159471e699d87a54e94228134'} from 'ACTIONS_MODULE24'\nexport {addRepository as '40de3a2e3307a2483ac765a1305162d82e87e9843d'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '602c2303837f9930fc4175b6af94501a2eb27d643a'} from 'ACTIONS_MODULE26'\nexport {deleteApplication as '40f9767b2ee2db1a974e2028782fba039e243485c1'} from 'ACTIONS_MODULE27'\nexport {getFeatureMetadata as '40610cb28afa5acf5d99471ad20a1a694ca407cf9f'} from 'ACTIONS_MODULE28'\nexport {getGitRepoInfo as '605c910df2a2a0a28b09fe72efcc23d23a51eaf801'} from 'ACTIONS_MODULE29'\n"],"names":[],"mappings":"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"}
|
package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module.exports=[84095,56799,80496,93225,77605,77710,45395,76707,10528,50845,26604,54723,18942,42886,49560,39353,95072,29207,a=>{"use strict";var b=a.i(92658),c=a.i(50227),d=a.i(33244),e=a.i(96380),f=a.i(12581);async function g(a){let{repositoryPath:b,branch:f}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};let g=(0,d.getSettings)().environment.defaultEditor,h=(0,e.resolve)("LaunchIdeUseCase"),i=await h.execute({editorId:g,repositoryPath:b,branch:f,checkAvailability:!0});return i.ok?{success:!0,editor:i.editorName,path:i.worktreePath}:{success:!1,error:i.message}}(0,f.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40e8d7550602fc992c70ee6516ec1ac6aaced031c8",null),a.s(["openIde",()=>g],84095);var h=a.i(2157),i=a.i(60526),j=a.i(74533),k=a.i(29918);let l={darwin:{cmd:"open",args:a=>["-a","Terminal",a]},linux:{cmd:"x-terminal-emulator",args:a=>[`--working-directory=${a}`]},win32:{cmd:"cmd.exe",args:a=>["/c","start","powershell","-NoExit","-Command",`Set-Location "${a}"`]}};async function m(a){let{repositoryPath:b,branch:f}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};try{let a=(0,d.getSettings)(),c=a.environment.shellPreference,g=a.environment.terminalPreference??"system",m=f?(0,k.computeWorktreePath)(b,f):b;if(!(0,h.existsSync)(m))return{success:!1,error:`Path does not exist: ${m}`};if("system"!==g)try{let a=(0,e.resolve)("IToolInstallerService").getTerminalOpenConfig(g);if(a?.openDirectory.includes("{dir}")){let b=a.openDirectory.replace("{dir}",m);if(a.shell){let a=(0,j.spawn)(b,[],{detached:!0,stdio:"ignore",shell:!0});a.on("error",()=>void 0),a.unref()}else{let[a,...c]=b.split(/\s+/),d=(0,j.spawn)(a,c,{detached:!0,stdio:"ignore"});d.on("error",()=>void 0),d.unref()}return{success:!0,path:m,shell:c}}}catch{}let n=l[(0,i.platform)()];if(!n)return{success:!1,error:`Unsupported platform: ${(0,i.platform)()}`};let o=(0,j.spawn)(n.cmd,n.args(m),{detached:!0,stdio:"ignore"});return o.on("error",()=>void 0),o.unref(),{success:!0,path:m,shell:c}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open shell"}}}(0,f.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"4073d101c2600ae9928fc176534c425776bc85f61b",null),a.s(["openShell",()=>m],56799);let n={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function o(a){if(!a||!(0,c.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,h.existsSync)(a))return{success:!1,error:"Directory not found"};let b=n[(0,i.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,i.platform)()}`};let d=(0,c.normalize)(a),e=(0,j.spawn)(b.cmd,b.args(d),{detached:!0,stdio:"ignore"});return e.on("error",()=>void 0),e.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}async function p(a){if(!a?.trim())return{success:!1,error:"Repository id is required"};try{let b=(0,e.resolve)("SyncRepositoryMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to sync repository"}}}async function q(a){let{description:b,repositoryPath:c,attachments:d,sessionId:f,approvalGates:g,push:h,openPr:i,parentId:j,fast:k,pending:l,forkAndPr:m,commitSpecs:n,ciWatchEnabled:o,enableEvidence:p,commitEvidence:q,agentType:r,model:s,rebaseBeforeBranch:t,injectSkills:u}=a;if(!b?.trim())return{error:"description is required"};if(!c?.trim())return{error:"repositoryPath is required"};let v=function(a,b){if(!b||0===b.length)return a;let c=b.map(a=>a.notes?.trim()?`@${a.path} [Note: ${a.notes.trim()}]`:`@${a.path}`).join(" ");return`${a}
|
|
2
|
+
|
|
3
|
+
${c}`}(b,d),w={allowPrd:g?.allowPrd??!1,allowPlan:g?.allowPlan??!1,allowMerge:g?.allowMerge??!1};try{let a=(0,e.resolve)("CreateFeatureUseCase"),{feature:d,shouldSpawn:g}=await a.createRecord({userInput:v,repositoryPath:c,approvalGates:w,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},description:b,...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...null!=t?{rebaseBeforeBranch:t}:{},...null!=u?{injectSkills:u}:{}});return a.initializeAndSpawn(d,{userInput:v,repositoryPath:c,approvalGates:w,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...f?{sessionId:f}:{},...null!=t?{rebaseBeforeBranch:t}:{},...null!=u?{injectSkills:u}:{}},g).catch(a=>{console.error("[createFeature] initializeAndSpawn failed:",a)}),{feature:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to create feature"}}}(0,f.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40d27df89a125b0955680fc1e1280e16db6099dd57",null),a.s(["openFolder",()=>o],80496),(0,f.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"401c3162ea1510487018b872bdc7d4944e6a273bb0",null),a.s(["syncRepository",()=>p],93225),(0,f.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"4000de0b8c297f6b29ad4b23025cda5be47e75f701",null),a.s(["createFeature",()=>q],77605);let r=`\
|
|
4
|
+
## Project Requirements
|
|
5
|
+
|
|
6
|
+
Build this as a **React application** using Vite as the build tool.
|
|
7
|
+
|
|
8
|
+
### Structure
|
|
9
|
+
- Initialize with \`npm create vite@latest . -- --template react-ts\` scaffolding
|
|
10
|
+
- Organize code into clear folders: \`src/components/\`, \`src/pages/\`, \`src/assets/\`
|
|
11
|
+
- Use TypeScript throughout
|
|
12
|
+
- Include a working \`package.json\` with all dependencies
|
|
13
|
+
|
|
14
|
+
### Design & UI
|
|
15
|
+
- Create a polished, production-quality interface — not a prototype
|
|
16
|
+
- Use modern CSS (CSS modules or Tailwind CSS) with thoughtful spacing, typography, and color
|
|
17
|
+
- Make it fully responsive (mobile-first)
|
|
18
|
+
- Add subtle micro-interactions: hover states, transitions, focus rings
|
|
19
|
+
- Use professional placeholder content (realistic text, not lorem ipsum)
|
|
20
|
+
- Pick a cohesive color palette and apply it consistently
|
|
21
|
+
|
|
22
|
+
### Quality
|
|
23
|
+
- Every component should be self-contained and reusable
|
|
24
|
+
- Include proper HTML semantics and accessibility (ARIA labels, alt text, keyboard nav)
|
|
25
|
+
- The app must start successfully with \`npm install && npm run dev\`
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## What to Build
|
|
30
|
+
`;async function s(a){let{description:b,attachments:c,agentType:d,model:f}=a;if(!b?.trim())return{error:"Description is required"};try{let g=(0,e.resolve)("CreateProjectUseCase"),h=await g.execute({name:b.trim().split(/\s+/).slice(0,6).join(" ")});if(!h.ok)return{error:h.error};let i=h.path,j=(0,e.resolve)("AddRepositoryUseCase"),k=await j.execute({path:i}),l=r+b.trim(),m=await q({description:l,repositoryPath:i,attachments:c,agentType:d,model:f,fast:a.fast});if(m.error)return{error:m.error};return{feature:m.feature,repository:k,repositoryPath:i}}catch(a){return{error:a instanceof Error?a.message:"Failed to create project"}}}async function t(a){if(!a.description?.trim())return{error:"Description is required"};try{let b=(0,e.resolve)("CreateApplicationUseCase"),c=await b.execute({description:a.description.trim(),agentType:a.agentType,modelOverride:a.modelOverride});return{application:c.application,repositoryPath:c.repositoryPath}}catch(a){return{error:a instanceof Error?a.message:"Failed to create application"}}}async function u(a){let b=(0,e.resolve)("CreateProjectUseCase"),c=await b.execute({name:a});return c.ok?{ok:!0,path:c.path}:{ok:!1,error:c.error}}async function v(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,e.resolve)("ArchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to archive feature"}}}async function w(a,b,c,d){if(!a?.trim())return{error:"id is required"};try{let f=(0,e.resolve)("DeleteFeatureUseCase"),g={};return void 0!==b&&(g.cleanup=b),void 0!==c&&(g.cascadeDelete=c),void 0!==d&&(g.closePr=d),{feature:Object.keys(g).length>0?await f.execute(a,g):await f.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete feature"}}}async function x(a){if(!a.trim())return{resumed:!1,error:"Feature id is required"};try{let b=(0,e.resolve)("ResumeFeatureUseCase");return await b.execute(a),{resumed:!0}}catch(a){return{resumed:!1,error:a instanceof Error?a.message:"Failed to resume feature"}}}async function y(a){if(!a.trim())return{started:!1,error:"Feature id is required"};try{let b=(0,e.resolve)("StartFeatureUseCase");return await b.execute(a),{started:!0}}catch(a){return{started:!1,error:a instanceof Error?a.message:"Failed to start feature"}}}async function z(a){if(!a.trim())return{stopped:!1,error:"Feature id is required"};try{let b=(0,e.resolve)("IAgentRunRepository"),c=(await b.list()).find(b=>b.featureId===a&&"completed"!==b.status&&"failed"!==b.status&&"interrupted"!==b.status&&"cancelled"!==b.status);if(!c)return{stopped:!1,error:"No active agent run found for this feature"};let d=(0,e.resolve)("StopAgentRunUseCase"),f=await d.execute(c.id);if(!f.stopped)return{stopped:!1,error:f.reason};return{stopped:!0}}catch(a){return{stopped:!1,error:a instanceof Error?a.message:"Failed to stop agent"}}}async function A(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,e.resolve)("UnarchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to unarchive feature"}}}async function B(a){let{path:b,name:c}=a;if(!b?.trim())return{error:"path is required"};try{let a=(0,e.resolve)("AddRepositoryUseCase");return{repository:await a.execute({path:b,name:c})}}catch(a){return{error:a instanceof Error?a.message:"Failed to add repository"}}}async function C(a,b){if(!a?.trim())return{success:!1,error:"id is required"};try{let c=(0,e.resolve)("DeleteRepositoryUseCase");return await c.execute(a,{deleteFromDisk:b?.deleteFromDisk===!0}),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete repository"}}}async function D(a){if(!a?.trim())return{error:"Application ID is required"};try{let b=(0,e.resolve)("DeleteApplicationUseCase");return await b.execute(a),{}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete application"}}}async function E(a){let b=(0,e.resolve)("IFeatureRepository"),c=await b.findById(a);return c?{name:c.name,description:c.description}:null}(0,f.ensureServerEntryExports)([s]),(0,b.registerServerReference)(s,"4009c6c226ef9869393293b1201e321b437fb29b6c",null),a.s(["createProjectAndFeature",()=>s],77710),(0,f.ensureServerEntryExports)([t]),(0,b.registerServerReference)(t,"40b12777e8554506f0c21c9ff8bf312b0a468e87b2",null),a.s(["createApplication",()=>t],45395),(0,f.ensureServerEntryExports)([u]),(0,b.registerServerReference)(u,"400452c3c18f06f7b9dd71dc3094db0bfc0beff2b4",null),a.s(["createProjectFolder",()=>u],76707),(0,f.ensureServerEntryExports)([v]),(0,b.registerServerReference)(v,"40bbc73ca9989a5bf566e3c1d4858f5962123bf616",null),a.s(["archiveFeature",()=>v],10528),(0,f.ensureServerEntryExports)([w]),(0,b.registerServerReference)(w,"78045eab03db3945e9737d77eb9a5bc0050199dcee",null),a.s(["deleteFeature",()=>w],50845),(0,f.ensureServerEntryExports)([x]),(0,b.registerServerReference)(x,"40883435444f1a19cbd694a170415abe6c3988cd21",null),a.s(["resumeFeature",()=>x],26604),(0,f.ensureServerEntryExports)([y]),(0,b.registerServerReference)(y,"40a4f79ed2482b72834c0b2544c66bdab668d33276",null),a.s(["startFeature",()=>y],54723),(0,f.ensureServerEntryExports)([z]),(0,b.registerServerReference)(z,"406d784b38501a2ec837380f80020e68742f5cc291",null),a.s(["stopFeature",()=>z],18942),(0,f.ensureServerEntryExports)([A]),(0,b.registerServerReference)(A,"400e055a899a89fc2159471e699d87a54e94228134",null),a.s(["unarchiveFeature",()=>A],42886),(0,f.ensureServerEntryExports)([B]),(0,b.registerServerReference)(B,"40de3a2e3307a2483ac765a1305162d82e87e9843d",null),a.s(["addRepository",()=>B],49560),(0,f.ensureServerEntryExports)([C]),(0,b.registerServerReference)(C,"602c2303837f9930fc4175b6af94501a2eb27d643a",null),a.s(["deleteRepository",()=>C],39353),(0,f.ensureServerEntryExports)([D]),(0,b.registerServerReference)(D,"40f9767b2ee2db1a974e2028782fba039e243485c1",null),a.s(["deleteApplication",()=>D],95072),(0,f.ensureServerEntryExports)([E]),(0,b.registerServerReference)(E,"40610cb28afa5acf5d99471ad20a1a694ca407cf9f",null),a.s(["getFeatureMetadata",()=>E],29207)}];
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map
|
package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-ide.ts","../../../../../../../src/presentation/web/app/actions/open-shell.ts","../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/sync-repository.ts","../../../../../../../src/presentation/web/app/actions/compose-user-input.ts","../../../../../../../src/presentation/web/app/actions/create-feature.ts","../../../../../../../src/presentation/web/app/actions/create-project-and-feature.ts","../../../../../../../src/presentation/web/app/actions/create-application.ts","../../../../../../../src/presentation/web/app/actions/create-project-folder.ts","../../../../../../../src/presentation/web/app/actions/archive-feature.ts","../../../../../../../src/presentation/web/app/actions/delete-feature.ts","../../../../../../../src/presentation/web/app/actions/resume-feature.ts","../../../../../../../src/presentation/web/app/actions/start-feature.ts","../../../../../../../src/presentation/web/app/actions/stop-feature.ts","../../../../../../../src/presentation/web/app/actions/unarchive-feature.ts","../../../../../../../src/presentation/web/app/actions/add-repository.ts","../../../../../../../src/presentation/web/app/actions/delete-repository.ts","../../../../../../../src/presentation/web/app/actions/delete-application.ts","../../../../../../../src/presentation/web/app/actions/get-feature-metadata.ts"],"sourcesContent":["'use server';\n\nimport { isAbsolute } from 'node:path';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport type { LaunchIdeUseCase } from '@shepai/core/application/use-cases/ide/launch-ide.use-case';\nimport { resolve } from '@/lib/server-container';\n\ninterface OpenIdeInput {\n repositoryPath: string;\n branch?: string;\n}\n\nexport async function openIde(\n input: OpenIdeInput\n): Promise<{ success: boolean; error?: string; editor?: string; path?: string }> {\n const { repositoryPath, branch } = input;\n\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n const settings = getSettings();\n const editor = settings.environment.defaultEditor;\n\n const useCase = resolve<LaunchIdeUseCase>('LaunchIdeUseCase');\n const result = await useCase.execute({\n editorId: editor,\n repositoryPath,\n branch,\n checkAvailability: true,\n });\n\n if (!result.ok) {\n return { success: false, error: result.message };\n }\n\n return { success: true, editor: result.editorName, path: result.worktreePath };\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute } from 'node:path';\nimport { spawn } from 'node:child_process';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport { computeWorktreePath } from '@shepai/core/infrastructure/services/ide-launchers/compute-worktree-path';\nimport { resolve } from '@/lib/server-container';\nimport type { IToolInstallerService } from '@shepai/core/application/ports/output/services/tool-installer.service';\n\n// Fallback commands for the \"system\" terminal when no tool metadata entry exists.\n// Uses 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 SYSTEM_TERMINAL_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> =\n {\n darwin: { cmd: 'open', args: (p) => ['-a', 'Terminal', p] },\n linux: { cmd: 'x-terminal-emulator', args: (p) => [`--working-directory=${p}`] },\n win32: {\n cmd: 'cmd.exe',\n args: (p) => ['/c', 'start', 'powershell', '-NoExit', '-Command', `Set-Location \"${p}\"`],\n },\n };\n\ninterface OpenShellInput {\n repositoryPath: string;\n branch?: string;\n}\n\nexport async function openShell(\n input: OpenShellInput\n): Promise<{ success: boolean; error?: string; path?: string; shell?: string }> {\n const { repositoryPath, branch } = input;\n\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n const settings = getSettings();\n const shell = settings.environment.shellPreference;\n const terminalPref = settings.environment.terminalPreference ?? 'system';\n const targetPath = branch ? computeWorktreePath(repositoryPath, branch) : repositoryPath;\n\n if (!existsSync(targetPath)) {\n return { success: false, error: `Path does not exist: ${targetPath}` };\n }\n\n // Try to find the terminal in tool metadata via DI container.\n // Using DI (not a direct import from tool-metadata) ensures that\n // TOOL_METADATA is read from the correct tools/ directory path — it is loaded once\n // in the Node.js CLI bootstrap context where import.meta.url resolves correctly.\n // Direct imports of tool-metadata break in standalone production builds.\n if (terminalPref !== 'system') {\n try {\n const service = resolve<IToolInstallerService>('IToolInstallerService');\n const config = service.getTerminalOpenConfig(terminalPref);\n\n if (config?.openDirectory.includes('{dir}')) {\n const resolved = config.openDirectory.replace('{dir}', targetPath);\n\n if (config.shell) {\n const child = spawn(resolved, [], {\n detached: true,\n stdio: 'ignore',\n shell: true,\n });\n child.on('error', () => undefined);\n child.unref();\n } else {\n const [command, ...args] = resolved.split(/\\s+/);\n const child = spawn(command, args, {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined);\n child.unref();\n }\n\n return { success: true, path: targetPath, shell };\n }\n } catch {\n // DI container not available — fall through to system terminal\n }\n }\n\n // Fallback to system terminal\n const entry = SYSTEM_TERMINAL_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n const child = spawn(entry.cmd, entry.args(targetPath), {\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: targetPath, shell };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open shell';\n return { success: false, error: message };\n }\n}\n","'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 { resolve } from '@/lib/server-container';\nimport type { SyncRepositoryMainUseCase } from '@shepai/core/application/use-cases/repositories/sync-repository-main.use-case';\n\nexport async function syncRepository(\n repositoryId: string\n): Promise<{ success: boolean; error?: string }> {\n if (!repositoryId?.trim()) {\n return { success: false, error: 'Repository id is required' };\n }\n\n try {\n const useCase = resolve<SyncRepositoryMainUseCase>('SyncRepositoryMainUseCase');\n await useCase.execute(repositoryId);\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to sync repository';\n return { success: false, error: message };\n }\n}\n","interface Attachment {\n path: string;\n name: string;\n notes?: string;\n}\n\nexport function composeUserInput(\n description: string,\n attachments: Attachment[] | undefined\n): string {\n if (!attachments || attachments.length === 0) {\n return description;\n }\n\n const refs = attachments\n .map((a) => (a.notes?.trim() ? `@${a.path} [Note: ${a.notes.trim()}]` : `@${a.path}`))\n .join(' ');\n return `${description}\\n\\n${refs}`;\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { CreateFeatureUseCase } from '@shepai/core/application/use-cases/features/create/create-feature.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\nimport { composeUserInput } from './compose-user-input';\n\ninterface Attachment {\n path: string;\n name: string;\n notes?: string;\n}\n\ninterface ApprovalGates {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n}\n\ninterface CreateFeatureInput {\n description: string;\n repositoryPath: string;\n attachments?: Attachment[];\n sessionId?: string;\n approvalGates?: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge?: boolean;\n };\n push?: boolean;\n openPr?: boolean;\n parentId?: string;\n /** When true, skip SDLC phases and implement directly from the prompt. */\n fast?: boolean;\n /** When true, create the feature in pending state (no agent spawned). */\n pending?: boolean;\n /** Fork repo and create PR to upstream at merge time. */\n forkAndPr?: boolean;\n /** Commit specs/evidences into the repo (default: true, auto-false when forkAndPr). */\n commitSpecs?: boolean;\n /** Enable CI watch/fix loop after push. */\n ciWatchEnabled?: boolean;\n /** Enable evidence collection after implementation. */\n enableEvidence?: boolean;\n /** Commit evidence to PR. */\n commitEvidence?: boolean;\n /** Optional agent type override for this feature run */\n agentType?: string;\n /** Optional model identifier for this feature run */\n model?: string;\n /** Sync main from remote before creating the feature branch (default: true). */\n rebaseBeforeBranch?: boolean;\n /** Inject curated skills into the feature worktree. */\n injectSkills?: boolean;\n}\n\nexport async function createFeature(\n input: CreateFeatureInput\n): Promise<{ feature?: Feature; error?: string }> {\n const {\n description,\n repositoryPath,\n attachments,\n sessionId,\n approvalGates,\n push,\n openPr,\n parentId,\n fast,\n pending,\n forkAndPr,\n commitSpecs,\n ciWatchEnabled,\n enableEvidence,\n commitEvidence,\n agentType,\n model,\n rebaseBeforeBranch,\n injectSkills,\n } = input;\n\n if (!description?.trim()) {\n return { error: 'description is required' };\n }\n\n if (!repositoryPath?.trim()) {\n return { error: 'repositoryPath is required' };\n }\n\n const userInput = composeUserInput(description, attachments);\n const gates: ApprovalGates = {\n allowPrd: approvalGates?.allowPrd ?? false,\n allowPlan: approvalGates?.allowPlan ?? false,\n allowMerge: approvalGates?.allowMerge ?? false,\n };\n\n try {\n const createFeatureUseCase = resolve<CreateFeatureUseCase>('CreateFeatureUseCase');\n\n // Phase 1 (fast): create DB record with real UUID — returns immediately\n const { feature, shouldSpawn } = await createFeatureUseCase.createRecord({\n userInput,\n repositoryPath,\n approvalGates: gates,\n push: push ?? false,\n openPr: openPr ?? false,\n ...(parentId ? { parentId } : {}),\n description,\n ...(fast ? { fast } : {}),\n ...(pending ? { pending } : {}),\n ...(forkAndPr != null ? { forkAndPr } : {}),\n ...(commitSpecs != null ? { commitSpecs } : {}),\n ...(ciWatchEnabled != null ? { ciWatchEnabled } : {}),\n ...(enableEvidence != null ? { enableEvidence } : {}),\n ...(commitEvidence != null ? { commitEvidence } : {}),\n ...(agentType ? { agentType } : {}),\n ...(model ? { model } : {}),\n ...(rebaseBeforeBranch != null ? { rebaseBeforeBranch } : {}),\n ...(injectSkills != null ? { injectSkills } : {}),\n });\n\n // Phase 2 (background): metadata generation, worktree, spec, agent spawn\n // Fire-and-forget — the UI gets the real feature ID immediately\n createFeatureUseCase\n .initializeAndSpawn(\n feature,\n {\n userInput,\n repositoryPath,\n approvalGates: gates,\n push: push ?? false,\n openPr: openPr ?? false,\n ...(parentId ? { parentId } : {}),\n ...(fast ? { fast } : {}),\n ...(pending ? { pending } : {}),\n ...(forkAndPr != null ? { forkAndPr } : {}),\n ...(commitSpecs != null ? { commitSpecs } : {}),\n ...(ciWatchEnabled != null ? { ciWatchEnabled } : {}),\n ...(enableEvidence != null ? { enableEvidence } : {}),\n ...(commitEvidence != null ? { commitEvidence } : {}),\n ...(agentType ? { agentType } : {}),\n ...(model ? { model } : {}),\n ...(sessionId ? { sessionId } : {}),\n ...(rebaseBeforeBranch != null ? { rebaseBeforeBranch } : {}),\n ...(injectSkills != null ? { injectSkills } : {}),\n },\n shouldSpawn\n )\n .catch((err: unknown) => {\n // eslint-disable-next-line no-console\n console.error('[createFeature] initializeAndSpawn failed:', err);\n });\n\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to create feature';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { CreateProjectUseCase } from '@shepai/core/application/use-cases/projects/create-project.use-case';\nimport type { AddRepositoryUseCase } from '@shepai/core/application/use-cases/repositories/add-repository.use-case';\nimport type { Feature, Repository } from '@shepai/core/domain/generated/output';\nimport { createFeature } from './create-feature';\n\ninterface QuickFeatureInput {\n description: string;\n attachments?: { path: string; name: string; notes?: string }[];\n agentType?: string;\n model?: string;\n fast?: boolean;\n}\n\n/**\n * Default project instructions prepended to the user's description.\n * These ensure that even a vague one-liner from a non-technical user\n * results in a well-structured, runnable React application.\n */\nconst PROJECT_PREAMBLE = `\\\n## Project Requirements\n\nBuild this as a **React application** using Vite as the build tool.\n\n### Structure\n- Initialize with \\`npm create vite@latest . -- --template react-ts\\` scaffolding\n- Organize code into clear folders: \\`src/components/\\`, \\`src/pages/\\`, \\`src/assets/\\`\n- Use TypeScript throughout\n- Include a working \\`package.json\\` with all dependencies\n\n### Design & UI\n- Create a polished, production-quality interface — not a prototype\n- Use modern CSS (CSS modules or Tailwind CSS) with thoughtful spacing, typography, and color\n- Make it fully responsive (mobile-first)\n- Add subtle micro-interactions: hover states, transitions, focus rings\n- Use professional placeholder content (realistic text, not lorem ipsum)\n- Pick a cohesive color palette and apply it consistently\n\n### Quality\n- Every component should be self-contained and reusable\n- Include proper HTML semantics and accessibility (ARIA labels, alt text, keyboard nav)\n- The app must start successfully with \\`npm install && npm run dev\\`\n\n---\n\n## What to Build\n`;\n\n/**\n * Derive a concise project name from a free-form description.\n * Takes the first handful of meaningful words — `CreateProjectUseCase`\n * will then slugify + cap length for the actual directory name.\n */\nfunction deriveProjectName(description: string): string {\n return description.trim().split(/\\s+/).slice(0, 6).join(' ');\n}\n\nexport async function createProjectAndFeature(input: QuickFeatureInput): Promise<{\n feature?: Feature;\n repository?: Repository;\n repositoryPath?: string;\n error?: string;\n}> {\n const { description, attachments, agentType, model } = input;\n\n if (!description?.trim()) {\n return { error: 'Description is required' };\n }\n\n try {\n const createProject = resolve<CreateProjectUseCase>('CreateProjectUseCase');\n const projectResult = await createProject.execute({\n name: deriveProjectName(description),\n });\n if (!projectResult.ok) {\n return { error: projectResult.error };\n }\n const projectPath = projectResult.path;\n\n const addRepo = resolve<AddRepositoryUseCase>('AddRepositoryUseCase');\n const repository = await addRepo.execute({ path: projectPath });\n\n // Enrich the user's prompt with project-quality instructions\n const enrichedDescription = PROJECT_PREAMBLE + description.trim();\n\n const featureResult = await createFeature({\n description: enrichedDescription,\n repositoryPath: projectPath,\n attachments,\n agentType,\n model,\n fast: input.fast,\n });\n\n if (featureResult.error) {\n return { error: featureResult.error };\n }\n\n return {\n feature: featureResult.feature,\n repository,\n repositoryPath: projectPath,\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to create project';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { CreateApplicationUseCase } from '@shepai/core/application/use-cases/applications/create-application.use-case';\nimport type { Application } from '@shepai/core/domain/generated/output';\n\ninterface CreateApplicationInput {\n description: string;\n agentType?: string;\n modelOverride?: string;\n}\n\nexport async function createApplication(\n input: CreateApplicationInput\n): Promise<{ application?: Application; repositoryPath?: string; error?: string }> {\n if (!input.description?.trim()) {\n return { error: 'Description is required' };\n }\n\n try {\n const useCase = resolve<CreateApplicationUseCase>('CreateApplicationUseCase');\n const result = await useCase.execute({\n description: input.description.trim(),\n agentType: input.agentType,\n modelOverride: input.modelOverride,\n });\n return { application: result.application, repositoryPath: result.repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to create application';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { CreateProjectUseCase } from '@shepai/core/application/use-cases/projects/create-project.use-case';\n\nexport interface CreateProjectFolderResult {\n ok: boolean;\n /** Absolute path to the created folder, normalized to forward slashes. */\n path?: string;\n error?: string;\n}\n\n/**\n * Thin server-action wrapper around CreateProjectUseCase. All slug rules,\n * existence checks, filesystem mutations, and git bootstrapping live in the\n * use case + IProjectScaffoldService adapter — see:\n *\n * packages/core/src/application/use-cases/projects/create-project.use-case.ts\n * packages/core/src/infrastructure/services/project-scaffold/fs-project-scaffold.service.ts\n */\nexport async function createProjectFolder(name: string): Promise<CreateProjectFolderResult> {\n const useCase = resolve<CreateProjectUseCase>('CreateProjectUseCase');\n const result = await useCase.execute({ name });\n if (!result.ok) {\n return { ok: false, error: result.error };\n }\n return { ok: true, path: result.path };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { ArchiveFeatureUseCase } from '@shepai/core/application/use-cases/features/archive-feature.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\nexport async function archiveFeature(\n featureId: string\n): Promise<{ feature?: Feature; error?: string }> {\n if (!featureId?.trim()) {\n return { error: 'id is required' };\n }\n\n try {\n const archiveFeatureUseCase = resolve<ArchiveFeatureUseCase>('ArchiveFeatureUseCase');\n const feature = await archiveFeatureUseCase.execute(featureId);\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to archive feature';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { DeleteFeatureUseCase } from '@shepai/core/application/use-cases/features/delete-feature.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\nexport async function deleteFeature(\n featureId: string,\n cleanup?: boolean,\n cascadeDelete?: boolean,\n closePr?: boolean\n): Promise<{ feature?: Feature; error?: string }> {\n if (!featureId?.trim()) {\n return { error: 'id is required' };\n }\n\n try {\n const deleteFeatureUseCase = resolve<DeleteFeatureUseCase>('DeleteFeatureUseCase');\n const options: { cleanup?: boolean; cascadeDelete?: boolean; closePr?: boolean } = {};\n if (cleanup !== undefined) options.cleanup = cleanup;\n if (cascadeDelete !== undefined) options.cascadeDelete = cascadeDelete;\n if (closePr !== undefined) options.closePr = closePr;\n const feature =\n Object.keys(options).length > 0\n ? await deleteFeatureUseCase.execute(featureId, options)\n : await deleteFeatureUseCase.execute(featureId);\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete feature';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { ResumeFeatureUseCase } from '@shepai/core/application/use-cases/features/resume-feature.use-case';\n\nexport async function resumeFeature(\n featureId: string\n): Promise<{ resumed: boolean; error?: string }> {\n if (!featureId.trim()) {\n return { resumed: false, error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<ResumeFeatureUseCase>('ResumeFeatureUseCase');\n await useCase.execute(featureId);\n return { resumed: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to resume feature';\n return { resumed: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { StartFeatureUseCase } from '@shepai/core/application/use-cases/features/start-feature.use-case';\n\nexport async function startFeature(\n featureId: string\n): Promise<{ started: boolean; error?: string }> {\n if (!featureId.trim()) {\n return { started: false, error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<StartFeatureUseCase>('StartFeatureUseCase');\n await useCase.execute(featureId);\n return { started: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to start feature';\n return { started: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { StopAgentRunUseCase } from '@shepai/core/application/use-cases/agents/stop-agent-run.use-case';\nimport type { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\n\nexport async function stopFeature(\n featureId: string\n): Promise<{ stopped: boolean; error?: string }> {\n if (!featureId.trim()) {\n return { stopped: false, error: 'Feature id is required' };\n }\n\n try {\n // Find the active agent run for this feature\n const runRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const allRuns = await runRepo.list();\n const activeRun = allRuns.find(\n (r) =>\n r.featureId === featureId &&\n r.status !== 'completed' &&\n r.status !== 'failed' &&\n r.status !== 'interrupted' &&\n r.status !== 'cancelled'\n );\n\n if (!activeRun) {\n return { stopped: false, error: 'No active agent run found for this feature' };\n }\n\n const useCase = resolve<StopAgentRunUseCase>('StopAgentRunUseCase');\n const result = await useCase.execute(activeRun.id);\n\n if (!result.stopped) {\n return { stopped: false, error: result.reason };\n }\n return { stopped: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to stop agent';\n return { stopped: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { UnarchiveFeatureUseCase } from '@shepai/core/application/use-cases/features/unarchive-feature.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\nexport async function unarchiveFeature(\n featureId: string\n): Promise<{ feature?: Feature; error?: string }> {\n if (!featureId?.trim()) {\n return { error: 'id is required' };\n }\n\n try {\n const unarchiveFeatureUseCase = resolve<UnarchiveFeatureUseCase>('UnarchiveFeatureUseCase');\n const feature = await unarchiveFeatureUseCase.execute(featureId);\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to unarchive feature';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { AddRepositoryUseCase } from '@shepai/core/application/use-cases/repositories/add-repository.use-case';\nimport type { Repository } from '@shepai/core/domain/generated/output';\n\ninterface AddRepositoryInput {\n path: string;\n name?: string;\n}\n\nexport async function addRepository(\n input: AddRepositoryInput\n): Promise<{ repository?: Repository; error?: string }> {\n const { path, name } = input;\n\n if (!path?.trim()) {\n return { error: 'path is required' };\n }\n\n try {\n const addRepoUseCase = resolve<AddRepositoryUseCase>('AddRepositoryUseCase');\n const repository = await addRepoUseCase.execute({ path, name });\n return { repository };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to add repository';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { DeleteRepositoryUseCase } from '@shepai/core/application/use-cases/repositories/delete-repository.use-case';\n\nexport interface DeleteRepositoryActionOptions {\n deleteFromDisk?: boolean;\n}\n\nexport async function deleteRepository(\n repositoryId: string,\n options?: DeleteRepositoryActionOptions\n): Promise<{ success: boolean; error?: string }> {\n if (!repositoryId?.trim()) {\n return { success: false, error: 'id is required' };\n }\n\n try {\n const useCase = resolve<DeleteRepositoryUseCase>('DeleteRepositoryUseCase');\n await useCase.execute(repositoryId, { deleteFromDisk: options?.deleteFromDisk === true });\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete repository';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { DeleteApplicationUseCase } from '@shepai/core/application/use-cases/applications/delete-application.use-case';\n\nexport async function deleteApplication(id: string): Promise<{ error?: string }> {\n if (!id?.trim()) {\n return { error: 'Application ID is required' };\n }\n\n try {\n const useCase = resolve<DeleteApplicationUseCase>('DeleteApplicationUseCase');\n await useCase.execute(id);\n return {};\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete application';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\n/**\n * Lightweight server action to fetch a single feature's name and description.\n * Used by the SSE effect to update node metadata after AI metadata generation\n * without a full graph reconcile (which can overwrite SSE-driven state).\n */\nexport async function getFeatureMetadata(\n featureId: string\n): Promise<{ name: string; description: string } | null> {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n if (!feature) return null;\n return { name: feature.name, description: feature.description };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[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,"005f39a5fbf52800fb30b81579c85b58306dde44b3",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,"4047017777ead6839bfd88221eaa25f954da3a71e2",null),a.s(["getViewerPermission",()=>h],19720)},93230,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(68670),l=a.i(85321),m=a.i(84095),n=a.i(56799),o=a.i(80496),p=a.i(93225),q=a.i(94691),r=a.i(77710),s=a.i(45395),t=a.i(76707),u=a.i(10528),v=a.i(50845),w=a.i(26604),x=a.i(54723),y=a.i(18942),z=a.i(42886),A=a.i(49560),B=a.i(39353),C=a.i(95072),D=a.i(29207),E=a.i(24860),F=a.i(19720),G=a.i(77605);a.s([],68669),a.i(68669),a.s(["00183231886190dba7a7ac26d26d32b0a206df6bcd",()=>e.pickFolder,"002b25882a63560fe3f920777693bb3bcdab0d43c4",()=>b.getAllAgentModels,"004842296acda5ee98d700503bd36d9eb5ce309719",()=>g.listGitHubOrganizations,"005f39a5fbf52800fb30b81579c85b58306dde44b3",()=>E.getWorkflowDefaults,"00fbf1baa0c12cac2662e0b167b94c1a8ecaa61aad",()=>c.checkAllAgentsStatus,"4000de0b8c297f6b29ad4b23025cda5be47e75f701",()=>G.createFeature,"400452c3c18f06f7b9dd71dc3094db0bfc0beff2b4",()=>t.createProjectFolder,"4009c6c226ef9869393293b1201e321b437fb29b6c",()=>r.createProjectAndFeature,"400e055a899a89fc2159471e699d87a54e94228134",()=>z.unarchiveFeature,"401c3162ea1510487018b872bdc7d4944e6a273bb0",()=>p.syncRepository,"4047017777ead6839bfd88221eaa25f954da3a71e2",()=>F.getViewerPermission,"405faea6f92886e45c28beca2e0bc36a560ce601af",()=>i.deployFeature,"40610cb28afa5acf5d99471ad20a1a694ca407cf9f",()=>D.getFeatureMetadata,"406d784b38501a2ec837380f80020e68742f5cc291",()=>y.stopFeature,"4073d101c2600ae9928fc176534c425776bc85f61b",()=>n.openShell,"4082292053cd2f8f1fdd32f985b4255d565f013f40",()=>f.listGitHubRepositories,"40883435444f1a19cbd694a170415abe6c3988cd21",()=>w.resumeFeature,"409122e7eff17c8619c0d5142b8f2b4ea46acd384f",()=>q.getDeploymentLogs,"4091c417aa5cc0d712341fb3c24e46aa4749750d22",()=>h.importGitHubRepository,"40970629475cc7bb25797407cb6ce40eef108937e5",()=>j.deployRepository,"40a4f79ed2482b72834c0b2544c66bdab668d33276",()=>x.startFeature,"40b12777e8554506f0c21c9ff8bf312b0a468e87b2",()=>s.createApplication,"40bbc73ca9989a5bf566e3c1d4858f5962123bf616",()=>u.archiveFeature,"40bee59fd245a9b9ff9ec19b92ee9598c19ca0d682",()=>k.stopDeployment,"40cde1aa197dadce61becdcf738706c67bfff7cf64",()=>l.getDeploymentStatus,"40d27df89a125b0955680fc1e1280e16db6099dd57",()=>o.openFolder,"40de3a2e3307a2483ac765a1305162d82e87e9843d",()=>A.addRepository,"40e8d7550602fc992c70ee6516ec1ac6aaced031c8",()=>m.openIde,"40f9767b2ee2db1a974e2028782fba039e243485c1",()=>C.deleteApplication,"602c2303837f9930fc4175b6af94501a2eb27d643a",()=>B.deleteRepository,"604f107f9d0e471b0f25a659048a37873ad5fb928e",()=>d.updateAgentAndModel,"78045eab03db3945e9737d77eb9a5bc0050199dcee",()=>v.deleteFeature],93230)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_presentation_web_b360e85a._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../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 { 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 '002b25882a63560fe3f920777693bb3bcdab0d43c4'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '00fbf1baa0c12cac2662e0b167b94c1a8ecaa61aad'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '604f107f9d0e471b0f25a659048a37873ad5fb928e'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00183231886190dba7a7ac26d26d32b0a206df6bcd'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '4082292053cd2f8f1fdd32f985b4255d565f013f40'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '004842296acda5ee98d700503bd36d9eb5ce309719'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '4091c417aa5cc0d712341fb3c24e46aa4749750d22'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '405faea6f92886e45c28beca2e0bc36a560ce601af'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40970629475cc7bb25797407cb6ce40eef108937e5'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '40bee59fd245a9b9ff9ec19b92ee9598c19ca0d682'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '40cde1aa197dadce61becdcf738706c67bfff7cf64'} from 'ACTIONS_MODULE10'\nexport {openIde as '40e8d7550602fc992c70ee6516ec1ac6aaced031c8'} from 'ACTIONS_MODULE11'\nexport {openShell as '4073d101c2600ae9928fc176534c425776bc85f61b'} from 'ACTIONS_MODULE12'\nexport {openFolder as '40d27df89a125b0955680fc1e1280e16db6099dd57'} from 'ACTIONS_MODULE13'\nexport {syncRepository as '401c3162ea1510487018b872bdc7d4944e6a273bb0'} from 'ACTIONS_MODULE14'\nexport {getDeploymentLogs as '409122e7eff17c8619c0d5142b8f2b4ea46acd384f'} from 'ACTIONS_MODULE15'\nexport {createProjectAndFeature as '4009c6c226ef9869393293b1201e321b437fb29b6c'} from 'ACTIONS_MODULE16'\nexport {createApplication as '40b12777e8554506f0c21c9ff8bf312b0a468e87b2'} from 'ACTIONS_MODULE17'\nexport {createProjectFolder as '400452c3c18f06f7b9dd71dc3094db0bfc0beff2b4'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '40bbc73ca9989a5bf566e3c1d4858f5962123bf616'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '78045eab03db3945e9737d77eb9a5bc0050199dcee'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '40883435444f1a19cbd694a170415abe6c3988cd21'} from 'ACTIONS_MODULE21'\nexport {startFeature as '40a4f79ed2482b72834c0b2544c66bdab668d33276'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '406d784b38501a2ec837380f80020e68742f5cc291'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '400e055a899a89fc2159471e699d87a54e94228134'} from 'ACTIONS_MODULE24'\nexport {addRepository as '40de3a2e3307a2483ac765a1305162d82e87e9843d'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '602c2303837f9930fc4175b6af94501a2eb27d643a'} from 'ACTIONS_MODULE26'\nexport {deleteApplication as '40f9767b2ee2db1a974e2028782fba039e243485c1'} from 'ACTIONS_MODULE27'\nexport {getFeatureMetadata as '40610cb28afa5acf5d99471ad20a1a694ca407cf9f'} from 'ACTIONS_MODULE28'\nexport {getWorkflowDefaults as '005f39a5fbf52800fb30b81579c85b58306dde44b3'} from 'ACTIONS_MODULE29'\nexport {getViewerPermission as '4047017777ead6839bfd88221eaa25f954da3a71e2'} from 'ACTIONS_MODULE30'\nexport {createFeature as '4000de0b8c297f6b29ad4b23025cda5be47e75f701'} from 'ACTIONS_MODULE31'\nexport {getViewerPermission as '4047017777ead6839bfd88221eaa25f954da3a71e2'} from 'ACTIONS_MODULE30'\n"],"names":[],"mappings":"8DAEA,EAAA,EAAA,CAAA,CAAA,oBAiBO,eAAe,IAEpB,GAAM,UAAE,CAAQ,CAAE,CADD,CAAA,CACI,CADJ,EAAA,WAAA,AAAW,IAG5B,MAAO,CACL,cAAe,CACb,SAAU,EAAS,oBAAoB,CAAC,QAAQ,CAChD,UAAW,EAAS,oBAAoB,CAAC,SAAS,CAClD,WAAY,EAAS,oBAAoB,CAAC,UAAU,AACtD,EACA,KAAM,EAAS,oBAAoB,CAAC,4BAA4B,CAChE,OAAQ,EAAS,8BAA8B,CAC/C,eAAgB,EAAS,cAAc,CACvC,eAAgB,EAAS,cAAc,CACvC,eAAgB,EAAS,cAAc,CACvC,KAAM,EAAS,eAAe,CAC9B,aAAc,EAAS,cAAc,EAAE,UAAW,CACpD,CACF,iCAlBsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,+CCjBtB,IAAA,EAAA,EAAA,CAAA,CAAA,OAIA,IAAM,EAAmB,IAAI,IAAI,CAAC,QAAS,WAAY,QAAQ,EAExD,eAAe,EAAoB,CAAgB,EACxD,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAA2B,4BAC5C,EAAa,MAAM,EAAQ,mBAAmB,CAAC,GACrD,MAAO,CAAE,gBAAiB,EAAiB,GAAG,CAAC,EAAY,CAC7D,CAAE,KAAM,CACN,MAAO,CAAE,iBAAiB,CAAM,CAClC,CACF,iCARsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,uECRtB,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,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[15638,a=>{"use strict";a.s(["ControlCenter",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call ControlCenter() from the server but ControlCenter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/control-center/control-center.tsx <module evaluation>","ControlCenter")},87979,a=>{"use strict";a.s(["ControlCenter",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call ControlCenter() from the server but ControlCenter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/control-center/control-center.tsx","ControlCenter")},35685,a=>{"use strict";a.i(15638);var b=a.i(87979);a.n(b)},79957,a=>{"use strict";a.s(["useControlCenterState",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call useControlCenterState() from the server but useControlCenterState is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/control-center/use-control-center-state.ts <module evaluation>","useControlCenterState")},81035,a=>{"use strict";a.s(["useControlCenterState",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call useControlCenterState() from the server but useControlCenterState is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/control-center/use-control-center-state.ts","useControlCenterState")},62858,a=>{"use strict";a.i(79957);var b=a.i(81035);a.n(b)},19981,a=>{"use strict";var b=a.i(92807),c=a.i(35685);a.i(62858);var d=a.i(74533),e=a.i(12057),f=a.i(37512),g=a.i(96380),h=a.i(33244),i=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports),j=i((a,b)=>{var c=Object.defineProperty,d=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports),e=(a,b,d)=>{let e;return(e="symbol"!=typeof b?b+"":b)in a?c(a,e,{enumerable:!0,configurable:!0,writable:!0,value:d}):a[e]=d},f=d((a,b)=>{function c(a,b){a[b]?a[b]++:a[b]=1}function d(a,b){--a[b]||delete a[b]}function f(a,b,c,d){var e=""+b,f=""+c;if(!a&&e>f){var g=e;e=f,f=g}return e+"\x01"+f+"\x01"+(void 0===d?"\0":d)}function g(a,b){return f(a,b.v,b.w,b.name)}b.exports=class{constructor(a){e(this,"_isDirected",!0),e(this,"_isMultigraph",!1),e(this,"_isCompound",!1),e(this,"_label"),e(this,"_defaultNodeLabelFn",()=>{}),e(this,"_defaultEdgeLabelFn",()=>{}),e(this,"_nodes",{}),e(this,"_in",{}),e(this,"_preds",{}),e(this,"_out",{}),e(this,"_sucs",{}),e(this,"_edgeObjs",{}),e(this,"_edgeLabels",{}),e(this,"_nodeCount",0),e(this,"_edgeCount",0),e(this,"_parent"),e(this,"_children"),a&&(this._isDirected=!Object.hasOwn(a,"directed")||a.directed,this._isMultigraph=!!Object.hasOwn(a,"multigraph")&&a.multigraph,this._isCompound=!!Object.hasOwn(a,"compound")&&a.compound),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(a){return this._label=a,this}graph(){return this._label}setDefaultNodeLabel(a){return this._defaultNodeLabelFn=a,"function"!=typeof a&&(this._defaultNodeLabelFn=()=>a),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var a=this;return this.nodes().filter(b=>0===Object.keys(a._in[b]).length)}sinks(){var a=this;return this.nodes().filter(b=>0===Object.keys(a._out[b]).length)}setNodes(a,b){var c=arguments,d=this;return a.forEach(function(a){c.length>1?d.setNode(a,b):d.setNode(a)}),this}setNode(a,b){return Object.hasOwn(this._nodes,a)?arguments.length>1&&(this._nodes[a]=b):(this._nodes[a]=arguments.length>1?b:this._defaultNodeLabelFn(a),this._isCompound&&(this._parent[a]="\0",this._children[a]={},this._children["\0"][a]=!0),this._in[a]={},this._preds[a]={},this._out[a]={},this._sucs[a]={},++this._nodeCount),this}node(a){return this._nodes[a]}hasNode(a){return Object.hasOwn(this._nodes,a)}removeNode(a){var b=this;if(Object.hasOwn(this._nodes,a)){var c=a=>b.removeEdge(b._edgeObjs[a]);delete this._nodes[a],this._isCompound&&(this._removeFromParentsChildList(a),delete this._parent[a],this.children(a).forEach(function(a){b.setParent(a)}),delete this._children[a]),Object.keys(this._in[a]).forEach(c),delete this._in[a],delete this._preds[a],Object.keys(this._out[a]).forEach(c),delete this._out[a],delete this._sucs[a],--this._nodeCount}return this}setParent(a,b){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(void 0===b)b="\0";else{b+="";for(var c=b;void 0!==c;c=this.parent(c))if(c===a)throw Error("Setting "+b+" as parent of "+a+" would create a cycle");this.setNode(b)}return this.setNode(a),this._removeFromParentsChildList(a),this._parent[a]=b,this._children[b][a]=!0,this}_removeFromParentsChildList(a){delete this._children[this._parent[a]][a]}parent(a){if(this._isCompound){var b=this._parent[a];if("\0"!==b)return b}}children(a="\0"){if(this._isCompound){var b=this._children[a];if(b)return Object.keys(b)}else{if("\0"===a)return this.nodes();if(this.hasNode(a))return[]}}predecessors(a){var b=this._preds[a];if(b)return Object.keys(b)}successors(a){var b=this._sucs[a];if(b)return Object.keys(b)}neighbors(a){var b=this.predecessors(a);if(b){let d=new Set(b);for(var c of this.successors(a))d.add(c);return Array.from(d.values())}}isLeaf(a){return 0===(this.isDirected()?this.successors(a):this.neighbors(a)).length}filterNodes(a){var b=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});b.setGraph(this.graph());var c=this;Object.entries(this._nodes).forEach(function([c,d]){a(c)&&b.setNode(c,d)}),Object.values(this._edgeObjs).forEach(function(a){b.hasNode(a.v)&&b.hasNode(a.w)&&b.setEdge(a,c.edge(a))});var d={};return this._isCompound&&b.nodes().forEach(a=>b.setParent(a,function a(e){var f=c.parent(e);return void 0===f||b.hasNode(f)?(d[e]=f,f):f in d?d[f]:a(f)}(a))),b}setDefaultEdgeLabel(a){return this._defaultEdgeLabelFn=a,"function"!=typeof a&&(this._defaultEdgeLabelFn=()=>a),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(a,b){var c=this,d=arguments;return a.reduce(function(a,e){return d.length>1?c.setEdge(a,e,b):c.setEdge(a,e),e}),this}setEdge(){var a,b,d,e,g=!1,h=arguments[0];"object"==typeof h&&null!==h&&"v"in h?(a=h.v,b=h.w,d=h.name,2==arguments.length&&(e=arguments[1],g=!0)):(a=h,b=arguments[1],d=arguments[3],arguments.length>2&&(e=arguments[2],g=!0)),a=""+a,b=""+b,void 0!==d&&(d=""+d);var i=f(this._isDirected,a,b,d);if(Object.hasOwn(this._edgeLabels,i))return g&&(this._edgeLabels[i]=e),this;if(void 0!==d&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(a),this.setNode(b),this._edgeLabels[i]=g?e:this._defaultEdgeLabelFn(a,b,d);var j=function(a,b,c,d){var e=""+b,f=""+c;if(!a&&e>f){var g=e;e=f,f=g}var h={v:e,w:f};return d&&(h.name=d),h}(this._isDirected,a,b,d);return a=j.v,b=j.w,Object.freeze(j),this._edgeObjs[i]=j,c(this._preds[b],a),c(this._sucs[a],b),this._in[b][i]=j,this._out[a][i]=j,this._edgeCount++,this}edge(a,b,c){var d=1==arguments.length?g(this._isDirected,arguments[0]):f(this._isDirected,a,b,c);return this._edgeLabels[d]}edgeAsObj(){let a=this.edge(...arguments);return"object"!=typeof a?{label:a}:a}hasEdge(a,b,c){var d=1==arguments.length?g(this._isDirected,arguments[0]):f(this._isDirected,a,b,c);return Object.hasOwn(this._edgeLabels,d)}removeEdge(a,b,c){var e=1==arguments.length?g(this._isDirected,arguments[0]):f(this._isDirected,a,b,c),h=this._edgeObjs[e];return h&&(a=h.v,b=h.w,delete this._edgeLabels[e],delete this._edgeObjs[e],d(this._preds[b],a),d(this._sucs[a],b),delete this._in[b][e],delete this._out[a][e],this._edgeCount--),this}inEdges(a,b){return this.isDirected()?this.filterEdges(this._in[a],a,b):this.nodeEdges(a,b)}outEdges(a,b){return this.isDirected()?this.filterEdges(this._out[a],a,b):this.nodeEdges(a,b)}nodeEdges(a,b){if(a in this._nodes)return this.filterEdges({...this._in[a],...this._out[a]},a,b)}filterEdges(a,b,c){if(a){var d=Object.values(a);return c?d.filter(function(a){return a.v===b&&a.w===c||a.v===c&&a.w===b}):d}}}}),g=d((a,b)=>{b.exports="3.0.2"}),h=d((a,b)=>{b.exports={Graph:f(),version:g()}}),i=d((a,b)=>{var c=f();b.exports={write:function(a){var b,c,d={options:{directed:a.isDirected(),multigraph:a.isMultigraph(),compound:a.isCompound()},nodes:(b=a).nodes().map(function(a){var c=b.node(a),d=b.parent(a),e={v:a};return void 0!==c&&(e.value=c),void 0!==d&&(e.parent=d),e}),edges:(c=a).edges().map(function(a){var b=c.edge(a),d={v:a.v,w:a.w};return void 0!==a.name&&(d.name=a.name),void 0!==b&&(d.value=b),d})};return void 0!==a.graph()&&(d.value=structuredClone(a.graph())),d},read:function(a){var b=new c(a.options).setGraph(a.value);return a.nodes.forEach(function(a){b.setNode(a.v,a.value),a.parent&&b.setParent(a.v,a.parent)}),a.edges.forEach(function(a){b.setEdge({v:a.v,w:a.w,name:a.name},a.value)}),b}}}),j=d((a,b)=>{b.exports=function(a,b,d,e){return function(a,b,c,d){var e={},f=!0,g=0,h=a.nodes(),i=function(a){var b=c(a);e[a.v].distance+b<e[a.w].distance&&(e[a.w]={distance:e[a.v].distance+b,predecessor:a.v},f=!0)},j=function(){h.forEach(function(a){d(a).forEach(function(b){var c=b.v===a?b.v:b.w,d=c===b.v?b.w:b.v;i({v:c,w:d})})})};h.forEach(function(a){e[a]={distance:a===b?0:1/0}});for(var k=h.length,l=1;l<k&&(f=!1,g++,j(),f);l++);if(g===k-1&&(f=!1,j(),f))throw Error("The graph contains a negative weight cycle");return e}(a,String(b),d||c,e||function(b){return a.outEdges(b)})};var c=()=>1}),k=d((a,b)=>{b.exports=function(a){var b,c={},d=[];return a.nodes().forEach(function(e){b=[],function d(e){Object.hasOwn(c,e)||(c[e]=!0,b.push(e),a.successors(e).forEach(d),a.predecessors(e).forEach(d))}(e),b.length&&d.push(b)}),d}}),l=d((a,b)=>{b.exports=class{constructor(){e(this,"_arr",[]),e(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(a){return a.key})}has(a){return Object.hasOwn(this._keyIndices,a)}priority(a){var b=this._keyIndices[a];if(void 0!==b)return this._arr[b].priority}min(){if(0===this.size())throw Error("Queue underflow");return this._arr[0].key}add(a,b){var c=this._keyIndices;if(!Object.hasOwn(c,a=String(a))){var d=this._arr,e=d.length;return c[a]=e,d.push({key:a,priority:b}),this._decrease(e),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var a=this._arr.pop();return delete this._keyIndices[a.key],this._heapify(0),a.key}decrease(a,b){var c=this._keyIndices[a];if(b>this._arr[c].priority)throw Error("New priority is greater than current priority. Key: "+a+" Old: "+this._arr[c].priority+" New: "+b);this._arr[c].priority=b,this._decrease(c)}_heapify(a){var b=this._arr,c=2*a,d=c+1,e=a;c<b.length&&(e=b[c].priority<b[e].priority?c:e,d<b.length&&(e=b[d].priority<b[e].priority?d:e),e!==a&&(this._swap(a,e),this._heapify(e)))}_decrease(a){for(var b,c=this._arr,d=c[a].priority;0!==a&&!(c[b=a>>1].priority<d);)this._swap(a,b),a=b}_swap(a,b){var c=this._arr,d=this._keyIndices,e=c[a],f=c[b];c[a]=f,c[b]=e,d[f.key]=a,d[e.key]=b}}}),m=d((a,b)=>{var c=l();b.exports=function(a,b,e,f){return function(a,b,d,e){var f,g,h={},i=new c,j=function(a){var b=a.v!==f?a.v:a.w,c=h[b],e=d(a),j=g.distance+e;if(e<0)throw Error("dijkstra does not allow negative edge weights. Bad edge: "+a+" Weight: "+e);j<c.distance&&(c.distance=j,c.predecessor=f,i.decrease(b,j))};for(a.nodes().forEach(function(a){var c=a===b?0:1/0;h[a]={distance:c},i.add(a,c)});i.size()>0&&(g=h[f=i.removeMin()]).distance!==1/0;)e(f).forEach(j);return h}(a,String(b),e||d,f||function(b){return a.outEdges(b)})};var d=()=>1}),n=d((a,b)=>{var c=m();b.exports=function(a,b,d){return a.nodes().reduce(function(e,f){return e[f]=c(a,f,b,d),e},{})}}),o=d((a,b)=>{b.exports=function(a,b,c){if(void 0!==a[b].predecessor)throw Error("Invalid source vertex");if(void 0===a[c].predecessor&&c!==b)throw Error("Invalid destination vertex");return{weight:a[c].distance,path:function(a,b,c){for(var d=[],e=c;e!==b;)d.push(e),e=a[e].predecessor;return d.push(b),d.reverse()}(a,b,c)}}}),p=d((a,b)=>{b.exports=function(a){var b=0,c=[],d={},e=[];return a.nodes().forEach(function(f){Object.hasOwn(d,f)||function f(g){var h=d[g]={onStack:!0,lowlink:b,index:b++};if(c.push(g),a.successors(g).forEach(function(a){Object.hasOwn(d,a)?d[a].onStack&&(h.lowlink=Math.min(h.lowlink,d[a].index)):(f(a),h.lowlink=Math.min(h.lowlink,d[a].lowlink))}),h.lowlink===h.index){var i,j=[];do d[i=c.pop()].onStack=!1,j.push(i);while(g!==i)e.push(j)}}(f)}),e}}),q=d((a,b)=>{var c=p();b.exports=function(a){return c(a).filter(function(b){return b.length>1||1===b.length&&a.hasEdge(b[0],b[0])})}}),r=d((a,b)=>{b.exports=function(a,b,d){var e,f,g,h,i;return e=a,f=b||c,g=d||function(b){return a.outEdges(b)},h={},(i=e.nodes()).forEach(function(a){h[a]={},h[a][a]={distance:0},i.forEach(function(b){a!==b&&(h[a][b]={distance:1/0})}),g(a).forEach(function(b){var c=b.v===a?b.w:b.v,d=f(b);h[a][c]={distance:d,predecessor:a}})}),i.forEach(function(a){var b=h[a];i.forEach(function(c){var d=h[c];i.forEach(function(c){var e=d[a],f=b[c],g=d[c],h=e.distance+f.distance;h<g.distance&&(g.distance=h,g.predecessor=f.predecessor)})})}),h};var c=()=>1}),s=d((a,b)=>{function c(a){var b={},c={},e=[];if(a.sinks().forEach(function f(g){if(Object.hasOwn(c,g))throw new d;Object.hasOwn(b,g)||(c[g]=!0,b[g]=!0,a.predecessors(g).forEach(f),delete c[g],e.push(g))}),Object.keys(b).length!==a.nodeCount())throw new d;return e}var d=class extends Error{constructor(){super(...arguments)}};b.exports=c,c.CycleException=d}),t=d((a,b)=>{var c=s();b.exports=function(a){try{c(a)}catch(a){if(a instanceof c.CycleException)return!1;throw a}return!0}}),u=d((a,b)=>{b.exports=function(a,b,c,d,e){Array.isArray(b)||(b=[b]);var f=(a.isDirected()?a.successors:a.neighbors).bind(a),g={};return b.forEach(function(b){if(!a.hasNode(b))throw Error("Graph does not have node: "+b);e=function a(b,c,d,e,f,g,h){return Object.hasOwn(e,c)||(e[c]=!0,d||(h=g(h,c)),f(c).forEach(function(c){h=a(b,c,d,e,f,g,h)}),d&&(h=g(h,c))),h}(a,b,"post"===c,g,f,d,e)}),e}}),v=d((a,b)=>{var c=u();b.exports=function(a,b,d){return c(a,b,d,function(a,b){return a.push(b),a},[])}}),w=d((a,b)=>{var c=v();b.exports=function(a,b){return c(a,b,"post")}}),x=d((a,b)=>{var c=v();b.exports=function(a,b){return c(a,b,"pre")}}),y=d((a,b)=>{var c=f(),d=l();b.exports=function(a,b){var e,f=new c,g={},h=new d;function i(a){var c=a.v===e?a.w:a.v,d=h.priority(c);if(void 0!==d){var f=b(a);f<d&&(g[c]=e,h.decrease(c,f))}}if(0===a.nodeCount())return f;a.nodes().forEach(function(a){h.add(a,1/0),f.setNode(a)}),h.decrease(a.nodes()[0],0);for(var j=!1;h.size()>0;){if(Object.hasOwn(g,e=h.removeMin()))f.setEdge(e,g[e]);else{if(j)throw Error("Input graph is not connected: "+a);j=!0}a.nodeEdges(e).forEach(i)}return f}}),z=d((a,b)=>{var c=m(),d=j();b.exports=function(a,b,e,f){return function(a,b,e,f){if(void 0===e)return c(a,b,e,f);for(var g=!1,h=a.nodes(),i=0;i<h.length;i++){for(var j=f(h[i]),k=0;k<j.length;k++){var l=j[k],m=l.v===h[i]?l.v:l.w,n=m===l.v?l.w:l.v;0>e({v:m,w:n})&&(g=!0)}if(g)return d(a,b,e,f)}return c(a,b,e,f)}(a,b,e,f||function(b){return a.outEdges(b)})}}),A=d((a,b)=>{b.exports={bellmanFord:j(),components:k(),dijkstra:m(),dijkstraAll:n(),extractPath:o(),findCycles:q(),floydWarshall:r(),isAcyclic:t(),postorder:w(),preorder:x(),prim:y(),shortestPaths:z(),reduce:u(),tarjan:p(),topsort:s()}}),B=h();b.exports={Graph:B.Graph,json:i(),alg:A(),version:B.version}}),k=i((a,b)=>{function c(a){a._prev._next=a._next,a._next._prev=a._prev,delete a._next,delete a._prev}function d(a,b){if("_next"!==a&&"_prev"!==a)return b}b.exports=class{constructor(){let a={};a._next=a._prev=a,this._sentinel=a}dequeue(){let a=this._sentinel,b=a._prev;if(b!==a)return c(b),b}enqueue(a){let b=this._sentinel;a._prev&&a._next&&c(a),a._next=b._next,b._next._prev=a,b._next=a,a._prev=b}toString(){let a=[],b=this._sentinel,c=b._prev;for(;c!==b;)a.push(JSON.stringify(c,d)),c=c._prev;return"["+a.join(", ")+"]"}}}),l=i((a,b)=>{var c=j().Graph,d=k();b.exports=function(a,b){var h,i;let j,k,l,m,n;if(1>=a.nodeCount())return[];let o=(h=a,i=b||e,j=new c,k=0,l=0,h.nodes().forEach(a=>{j.setNode(a,{v:a,in:0,out:0})}),h.edges().forEach(a=>{let b=j.edge(a.v,a.w)||0,c=i(a);j.setEdge(a.v,a.w,b+c),l=Math.max(l,j.node(a.v).out+=c),k=Math.max(k,j.node(a.w).in+=c)}),m=(function(a){let b=[];for(let c=0;c<a;c++)b.push(c);return b})(l+k+3).map(()=>new d),n=k+1,j.nodes().forEach(a=>{g(m,n,j.node(a))}),{graph:j,buckets:m,zeroIdx:n});return(function(a,b,c){let d=[],e=b[b.length-1],g=b[0],h;for(;a.nodeCount();){for(;h=g.dequeue();)f(a,b,c,h);for(;h=e.dequeue();)f(a,b,c,h);if(a.nodeCount()){for(let e=b.length-2;e>0;--e)if(h=b[e].dequeue()){d=d.concat(f(a,b,c,h,!0));break}}}return d})(o.graph,o.buckets,o.zeroIdx).flatMap(b=>a.outEdges(b.v,b.w))};var e=()=>1;function f(a,b,c,d,e){let f=e?[]:void 0;return a.inEdges(d.v).forEach(d=>{let h=a.edge(d),i=a.node(d.v);e&&f.push({v:d.v,w:d.w}),i.out-=h,g(b,c,i)}),a.outEdges(d.v).forEach(d=>{let e=a.edge(d),f=d.w,h=a.node(f);h.in-=e,g(b,c,h)}),a.removeNode(d.v),f}function g(a,b,c){c.out?c.in?a[c.out-c.in+b].enqueue(c):a[a.length-1].enqueue(c):a[0].enqueue(c)}}),m=i((a,b)=>{var c=j().Graph;function d(a,b,c,d){for(var e=d;a.hasNode(e);)e=h(d);return c.dummy=b,a.setNode(e,c),e}b.exports={addBorderNode:function(a,b,c,e){let f={width:0,height:0};return arguments.length>=4&&(f.rank=c,f.order=e),d(a,"border",f,b)},addDummyNode:d,applyWithChunking:e,asNonCompoundGraph:function(a){let b=new c({multigraph:a.isMultigraph()}).setGraph(a.graph());return a.nodes().forEach(c=>{a.children(c).length||b.setNode(c,a.node(c))}),a.edges().forEach(c=>{b.setEdge(c,a.edge(c))}),b},buildLayerMatrix:function(a){let b=i(f(a)+1).map(()=>[]);return a.nodes().forEach(c=>{let d=a.node(c),e=d.rank;void 0!==e&&(b[e][d.order]=c)}),b},intersectRect:function(a,b){let c,d,e=a.x,f=a.y,g=b.x-e,h=b.y-f,i=a.width/2,j=a.height/2;if(!g&&!h)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(h)*i>Math.abs(g)*j?(h<0&&(j=-j),c=j*g/h,d=j):(g<0&&(i=-i),c=i,d=i*h/g),{x:e+c,y:f+d}},mapValues:function(a,b){let c=b;return"string"==typeof b&&(c=a=>a[b]),Object.entries(a).reduce((a,[b,d])=>(a[b]=c(d,b),a),{})},maxRank:f,normalizeRanks:function(a){let b=e(Math.min,a.nodes().map(b=>{let c=a.node(b).rank;return void 0===c?Number.MAX_VALUE:c}));a.nodes().forEach(c=>{let d=a.node(c);Object.hasOwn(d,"rank")&&(d.rank-=b)})},notime:function(a,b){return b()},partition:function(a,b){let c={lhs:[],rhs:[]};return a.forEach(a=>{b(a)?c.lhs.push(a):c.rhs.push(a)}),c},pick:function(a,b){let c={};for(let d of b)void 0!==a[d]&&(c[d]=a[d]);return c},predecessorWeights:function(a){let b=a.nodes().map(b=>{let c={};return a.inEdges(b).forEach(b=>{c[b.v]=(c[b.v]||0)+a.edge(b).weight}),c});return k(a.nodes(),b)},range:i,removeEmptyRanks:function(a){let b=e(Math.min,a.nodes().map(b=>a.node(b).rank).filter(a=>void 0!==a)),c=[];a.nodes().forEach(d=>{let e=a.node(d).rank-b;c[e]||(c[e]=[]),c[e].push(d)});let d=0,f=a.graph().nodeRankFactor;Array.from(c).forEach((b,c)=>{void 0===b&&c%f!=0?--d:void 0!==b&&d&&b.forEach(b=>a.node(b).rank+=d)})},simplify:function(a){let b=new c().setGraph(a.graph());return a.nodes().forEach(c=>b.setNode(c,a.node(c))),a.edges().forEach(c=>{let d=b.edge(c.v,c.w)||{weight:0,minlen:1},e=a.edge(c);b.setEdge(c.v,c.w,{weight:d.weight+e.weight,minlen:Math.max(d.minlen,e.minlen)})}),b},successorWeights:function(a){let b=a.nodes().map(b=>{let c={};return a.outEdges(b).forEach(b=>{c[b.w]=(c[b.w]||0)+a.edge(b).weight}),c});return k(a.nodes(),b)},time:function(a,b){let c=Date.now();try{return b()}finally{console.log(a+" time: "+(Date.now()-c)+"ms")}},uniqueId:h,zipObject:k};function e(a,b){if(!(b.length>65535))return a.apply(null,b);{let c=function(a,b=65535){let c=[];for(let d=0;d<a.length;d+=b){let e=a.slice(d,d+b);c.push(e)}return c}(b);return a.apply(null,c.map(b=>a.apply(null,b)))}}function f(a){return e(Math.max,a.nodes().map(b=>{let c=a.node(b).rank;return void 0===c?5e-324:c}))}var g=0;function h(a){return a+""+ ++g}function i(a,b,c=1){null==b&&(b=a,a=0);let d=a=>a<b;c<0&&(d=a=>b<a);let e=[];for(let b=a;d(b);b+=c)e.push(b);return e}function k(a,b){return a.reduce((a,c,d)=>(a[c]=b[d],a),{})}}),n=i((a,b)=>{var c=l(),d=m().uniqueId;b.exports={run:function(a){var b,e;let f,g,h;("greedy"===a.graph().acyclicer?c(a,(b=a,a=>b.edge(a).weight)):(f=[],g={},h={},(e=a).nodes().forEach(function a(b){Object.hasOwn(h,b)||(h[b]=!0,g[b]=!0,e.outEdges(b).forEach(b=>{Object.hasOwn(g,b.w)?f.push(b):a(b.w)}),delete g[b])}),f)).forEach(b=>{let c=a.edge(b);a.removeEdge(b),c.forwardName=b.name,c.reversed=!0,a.setEdge(b.w,b.v,c,d("rev"))})},undo:function(a){a.edges().forEach(b=>{let c=a.edge(b);if(c.reversed){a.removeEdge(b);let d=c.forwardName;delete c.reversed,delete c.forwardName,a.setEdge(b.w,b.v,c,d)}})}}}),o=i((a,b)=>{var c=m();b.exports={run:function(a){a.graph().dummyChains=[],a.edges().forEach(b=>(function(a,b){let d,e,f,g=b.v,h=a.node(g).rank,i=b.w,j=a.node(i).rank,k=b.name,l=a.edge(b),m=l.labelRank;if(j!==h+1){for(a.removeEdge(b),f=0,++h;h<j;++f,++h)l.points=[],e={width:0,height:0,edgeLabel:l,edgeObj:b,rank:h},d=c.addDummyNode(a,"edge",e,"_d"),h===m&&(e.width=l.width,e.height=l.height,e.dummy="edge-label",e.labelpos=l.labelpos),a.setEdge(g,d,{weight:l.weight},k),0===f&&a.graph().dummyChains.push(d),g=d;a.setEdge(g,i,{weight:l.weight},k)}})(a,b))},undo:function(a){a.graph().dummyChains.forEach(b=>{let c=a.node(b),d=c.edgeLabel,e;for(a.setEdge(c.edgeObj,d);c.dummy;)e=a.successors(b)[0],a.removeNode(b),d.points.push({x:c.x,y:c.y}),"edge-label"===c.dummy&&(d.x=c.x,d.y=c.y,d.width=c.width,d.height=c.height),b=e,c=a.node(b)})}}}),p=i((a,b)=>{var{applyWithChunking:c}=m();b.exports={longestPath:function(a){var b={};a.sources().forEach(function d(e){var f=a.node(e);if(Object.hasOwn(b,e))return f.rank;b[e]=!0;var g=c(Math.min,a.outEdges(e).map(b=>null==b?1/0:d(b.w)-a.edge(b).minlen));return g===1/0&&(g=0),f.rank=g})},slack:function(a,b){return a.node(b.w).rank-a.node(b.v).rank-a.edge(b).minlen}}}),q=i((a,b)=>{var c=j().Graph,d=p().slack;b.exports=function(a){var b,e,f,g,h=new c({directed:!1}),i=a.nodes()[0],j=a.nodeCount();for(h.setNode(i,{});b=h,e=a,b.nodes().forEach(function a(c){e.nodeEdges(c).forEach(f=>{var g=f.v,h=c===g?f.w:g;b.hasNode(h)||d(e,f)||(b.setNode(h,{}),b.setEdge(c,h,{}),a(h))})}),b.nodeCount()<j;)f=function(a,b){return b.edges().reduce((c,e)=>{let f=1/0;return a.hasNode(e.v)!==a.hasNode(e.w)&&(f=d(b,e)),f<c[0]?[f,e]:c},[1/0,null])[1]}(h,a),g=h.hasNode(f.v)?d(a,f):-d(a,f),function(a,b,c){a.nodes().forEach(a=>b.node(a).rank+=c)}(h,a,g);return h}}),r=i((a,b)=>{var c=q(),d=p().slack,e=p().longestPath,f=j().alg.preorder,g=j().alg.postorder,h=m().simplify;function i(a){e(a=h(a));var b,d,f=c(a);for(n(f),k(f,a);b=o(f);)d=r(f,a,b),s(f,a,b,d)}function k(a,b){var c=g(a,a.nodes());(c=c.slice(0,c.length-1)).forEach(c=>{var d,e,f,g;return d=a,e=b,f=c,g=d.node(f).parent,void(d.edge(f,g).cutvalue=l(d,e,f))})}function l(a,b,c){var d=a.node(c).parent,e=!0,f=b.edge(c,d),g=0;return f||(e=!1,f=b.edge(d,c)),g=f.weight,b.nodeEdges(c).forEach(f=>{var h=f.v===c,i=h?f.w:f.v;if(i!==d){var j,k,l,m=h===e,n=b.edge(f).weight;if(g+=m?n:-n,j=a,k=c,l=i,j.hasEdge(k,l)){var o=a.edge(c,i).cutvalue;g+=m?-o:o}}}),g}function n(a,b){arguments.length<2&&(b=a.nodes()[0]),function a(b,c,d,e,f){var g=d,h=b.node(e);return c[e]=!0,b.neighbors(e).forEach(f=>{Object.hasOwn(c,f)||(d=a(b,c,d,f,e))}),h.low=g,h.lim=d++,f?h.parent=f:delete h.parent,d}(a,{},1,b)}function o(a){return a.edges().find(b=>a.edge(b).cutvalue<0)}function r(a,b,c){var e=c.v,f=c.w;b.hasEdge(e,f)||(e=c.w,f=c.v);var g=a.node(e),h=a.node(f),i=g,j=!1;return g.lim>h.lim&&(i=h,j=!0),b.edges().filter(b=>j===t(a,a.node(b.v),i)&&j!==t(a,a.node(b.w),i)).reduce((a,c)=>d(b,c)<d(b,a)?c:a)}function s(a,b,c,d){var e,g,h,i,j=c.v,l=c.w;a.removeEdge(j,l),a.setEdge(d.v,d.w,{}),n(a),k(a,b),e=a,g=b,h=e.nodes().find(a=>!g.node(a).parent),(i=(i=f(e,h)).slice(1)).forEach(a=>{var b=e.node(a).parent,c=g.edge(a,b),d=!1;c||(c=g.edge(b,a),d=!0),g.node(a).rank=g.node(b).rank+(d?c.minlen:-c.minlen)})}function t(a,b,c){return c.low<=b.lim&&b.lim<=c.lim}b.exports=i,i.initLowLimValues=n,i.initCutValues=k,i.calcCutValue=l,i.leaveEdge=o,i.enterEdge=r,i.exchangeEdges=s}),s=i((a,b)=>{var c=p().longestPath,d=q(),e=r();b.exports=function(a){var b,g=a.graph().ranker;if(g instanceof Function)return g(a);switch(a.graph().ranker){case"network-simplex":default:e(a);break;case"tight-tree":c(b=a),d(b);break;case"longest-path":f(a);case"none":}};var f=c}),t=i((a,b)=>{b.exports=function(a){var b;let c,d,e=(c={},d=0,(b=a).children().forEach(function a(e){let f=d;b.children(e).forEach(a),c[e]={low:f,lim:d++}}),c);a.graph().dummyChains.forEach(b=>{let c=a.node(b),d=c.edgeObj,f=function(a,b,c,d){let e=[],f=[],g=Math.min(b[c].low,b[d].low),h=Math.max(b[c].lim,b[d].lim),i,j;i=c;do e.push(i=a.parent(i));while(i&&(b[i].low>g||h>b[i].lim))for(j=i,i=d;(i=a.parent(i))!==j;)f.push(i);return{path:e.concat(f.reverse()),lca:j}}(a,e,d.v,d.w),g=f.path,h=f.lca,i=0,j=g[0],k=!0;for(;b!==d.w;){if(c=a.node(b),k){for(;(j=g[i])!==h&&a.node(j).maxRank<c.rank;)i++;j===h&&(k=!1)}if(!k){for(;i<g.length-1&&a.node(j=g[i+1]).minRank<=c.rank;)i++;j=g[i]}a.setParent(b,j),b=a.successors(b)[0]}})}}),u=i((a,b)=>{var c=m();b.exports={run:function(a){var b,d,e;let f=c.addDummyNode(a,"root",{},"_root"),g=(d={},(b=a).children().forEach(a=>(function a(c,e){var f=b.children(c);f&&f.length&&f.forEach(b=>a(b,e+1)),d[c]=e})(a,1)),d),h=Object.values(g),i=c.applyWithChunking(Math.max,h)-1,j=2*i+1;a.graph().nestingRoot=f,a.edges().forEach(b=>a.edge(b).minlen*=j);let k=(e=a).edges().reduce((a,b)=>a+e.edge(b).weight,0)+1;a.children().forEach(b=>(function a(b,d,e,f,g,h,i){let j=b.children(i);if(!j.length){i!==d&&b.setEdge(d,i,{weight:0,minlen:e});return}let k=c.addBorderNode(b,"_bt"),l=c.addBorderNode(b,"_bb"),m=b.node(i);b.setParent(k,i),m.borderTop=k,b.setParent(l,i),m.borderBottom=l,j.forEach(c=>{a(b,d,e,f,g,h,c);let j=b.node(c),m=j.borderTop?j.borderTop:c,n=j.borderBottom?j.borderBottom:c,o=j.borderTop?f:2*f,p=m!==n?1:g-h[i]+1;b.setEdge(k,m,{weight:o,minlen:p,nestingEdge:!0}),b.setEdge(n,l,{weight:o,minlen:p,nestingEdge:!0})}),b.parent(i)||b.setEdge(d,k,{weight:0,minlen:g+h[i]})})(a,f,j,k,i,g,b)),a.graph().nodeRankFactor=j},cleanup:function(a){var b=a.graph();a.removeNode(b.nestingRoot),delete b.nestingRoot,a.edges().forEach(b=>{a.edge(b).nestingEdge&&a.removeEdge(b)})}}}),v=i((a,b)=>{var c=m();function d(a,b,d,e,f,g){let h=f[b][g-1],i=c.addDummyNode(a,"border",{width:0,height:0,rank:g,borderType:b},d);f[b][g]=i,a.setParent(i,e),h&&a.setEdge(h,i,{weight:1})}b.exports=function(a){a.children().forEach(function b(c){let e=a.children(c),f=a.node(c);if(e.length&&e.forEach(b),Object.hasOwn(f,"minRank")){f.borderLeft=[],f.borderRight=[];for(let b=f.minRank,e=f.maxRank+1;b<e;++b)d(a,"borderLeft","_bl",c,f,b),d(a,"borderRight","_br",c,f,b)}})}}),w=i((a,b)=>{function c(a){a.nodes().forEach(b=>d(a.node(b))),a.edges().forEach(b=>d(a.edge(b)))}function d(a){let b=a.width;a.width=a.height,a.height=b}function e(a){a.y=-a.y}function f(a){let b=a.x;a.x=a.y,a.y=b}b.exports={adjust:function(a){let b=a.graph().rankdir.toLowerCase();("lr"===b||"rl"===b)&&c(a)},undo:function(a){var b,d;let g=a.graph().rankdir.toLowerCase();("bt"===g||"rl"===g)&&((b=a).nodes().forEach(a=>e(b.node(a))),b.edges().forEach(a=>{let c=b.edge(a);c.points.forEach(e),Object.hasOwn(c,"y")&&e(c)})),("lr"===g||"rl"===g)&&((d=a).nodes().forEach(a=>f(d.node(a))),d.edges().forEach(a=>{let b=d.edge(a);b.points.forEach(f),Object.hasOwn(b,"x")&&f(b)}),c(a))}}}),x=i((a,b)=>{var c=m();b.exports=function(a){let b={},d=a.nodes().filter(b=>!a.children(b).length),e=d.map(b=>a.node(b).rank),f=c.applyWithChunking(Math.max,e),g=c.range(f+1).map(()=>[]);return d.sort((b,c)=>a.node(b).rank-a.node(c).rank).forEach(function c(d){b[d]||(b[d]=!0,g[a.node(d).rank].push(d),a.successors(d).forEach(c))}),g}}),y=i((a,b)=>{var c=m().zipObject;b.exports=function(a,b){let d=0;for(let e=1;e<b.length;++e)d+=function(a,b,d){let e=c(d,d.map((a,b)=>b)),f=b.flatMap(b=>a.outEdges(b).map(b=>({pos:e[b.w],weight:a.edge(b).weight})).sort((a,b)=>a.pos-b.pos)),g=1;for(;g<d.length;)g<<=1;let h=2*g-1;g-=1;let i=Array(h).fill(0),j=0;return f.forEach(a=>{let b=a.pos+g;i[b]+=a.weight;let c=0;for(;b>0;)b%2&&(c+=i[b+1]),b=b-1>>1,i[b]+=a.weight;j+=a.weight*c}),j}(a,b[e-1],b[e]);return d}}),z=i((a,b)=>{b.exports=function(a,b=[]){return b.map(b=>{let c=a.inEdges(b);if(!c.length)return{v:b};{let d=c.reduce((b,c)=>{let d=a.edge(c),e=a.node(c.v);return{sum:b.sum+d.weight*e.order,weight:b.weight+d.weight}},{sum:0,weight:0});return{v:b,barycenter:d.sum/d.weight,weight:d.weight}}})}}),A=i((a,b)=>{var c=m();b.exports=function(a,b){let d={};return a.forEach((a,b)=>{let c=d[a.v]={indegree:0,in:[],out:[],vs:[a.v],i:b};void 0!==a.barycenter&&(c.barycenter=a.barycenter,c.weight=a.weight)}),b.edges().forEach(a=>{let b=d[a.v],c=d[a.w];void 0!==b&&void 0!==c&&(c.indegree++,b.out.push(d[a.w]))}),function(a){let b=[];for(;a.length;){let c=a.pop();b.push(c),c.in.reverse().forEach(function(a){return b=>{b.merged||(void 0===b.barycenter||void 0===a.barycenter||b.barycenter>=a.barycenter)&&function(a,b){let c=0,d=0;a.weight&&(c+=a.barycenter*a.weight,d+=a.weight),b.weight&&(c+=b.barycenter*b.weight,d+=b.weight),a.vs=b.vs.concat(a.vs),a.barycenter=c/d,a.weight=d,a.i=Math.min(b.i,a.i),b.merged=!0}(a,b)}}(c)),c.out.forEach(function(b){return c=>{c.in.push(b),0==--c.indegree&&a.push(c)}}(c))}return b.filter(a=>!a.merged).map(a=>c.pick(a,["vs","i","barycenter","weight"]))}(Object.values(d).filter(a=>!a.indegree))}}),B=i((a,b)=>{var c=m();function d(a,b,c){let d;for(;b.length&&(d=b[b.length-1]).i<=c;)b.pop(),a.push(d.vs),c++;return c}b.exports=function(a,b){var e;let f=c.partition(a,a=>Object.hasOwn(a,"barycenter")),g=f.lhs,h=f.rhs.sort((a,b)=>b.i-a.i),i=[],j=0,k=0,l=0;g.sort((e=!!b,(a,b)=>a.barycenter<b.barycenter?-1:a.barycenter>b.barycenter?1:e?b.i-a.i:a.i-b.i)),l=d(i,h,l),g.forEach(a=>{l+=a.vs.length,i.push(a.vs),j+=a.barycenter*a.weight,k+=a.weight,l=d(i,h,l)});let m={vs:i.flat(!0)};return k&&(m.barycenter=j/k,m.weight=k),m}}),C=i((a,b)=>{var c=z(),d=A(),e=B();b.exports=function a(b,f,g,h){var i,j;let k=b.children(f),l=b.node(f),m=l?l.borderLeft:void 0,n=l?l.borderRight:void 0,o={};m&&(k=k.filter(a=>a!==m&&a!==n));let p=c(b,k);p.forEach(c=>{if(b.children(c.v).length){var d,e;let f=a(b,c.v,g,h);o[c.v]=f,Object.hasOwn(f,"barycenter")&&(d=c,e=f,void 0!==d.barycenter?(d.barycenter=(d.barycenter*d.weight+e.barycenter*e.weight)/(d.weight+e.weight),d.weight+=e.weight):(d.barycenter=e.barycenter,d.weight=e.weight))}});let q=d(p,g);i=q,j=o,i.forEach(a=>{a.vs=a.vs.flatMap(a=>j[a]?j[a].vs:a)});let r=e(q,h);if(m&&(r.vs=[m,r.vs,n].flat(!0),b.predecessors(m).length)){let a=b.node(b.predecessors(m)[0]),c=b.node(b.predecessors(n)[0]);Object.hasOwn(r,"barycenter")||(r.barycenter=0,r.weight=0),r.barycenter=(r.barycenter*r.weight+a.order+c.order)/(r.weight+2),r.weight+=2}return r}}),D=i((a,b)=>{var c=j().Graph,d=m();b.exports=function(a,b,e,f){f||(f=a.nodes());let g=function(a){for(var b;a.hasNode(b=d.uniqueId("_root")););return b}(a),h=new c({compound:!0}).setGraph({root:g}).setDefaultNodeLabel(b=>a.node(b));return f.forEach(c=>{let d=a.node(c),f=a.parent(c);(d.rank===b||d.minRank<=b&&b<=d.maxRank)&&(h.setNode(c),h.setParent(c,f||g),a[e](c).forEach(b=>{let d=b.v===c?b.w:b.v,e=h.edge(d,c),f=void 0!==e?e.weight:0;h.setEdge(d,c,{weight:a.edge(b).weight+f})}),Object.hasOwn(d,"minRank")&&h.setNode(c,{borderLeft:d.borderLeft[b],borderRight:d.borderRight[b]}))}),h}}),E=i((a,b)=>{b.exports=function(a,b,c){let d={},e;c.forEach(c=>{let f=a.parent(c),g,h;for(;f;){if((g=a.parent(f))?(h=d[g],d[g]=f):(h=e,e=f),h&&h!==f)return void b.setEdge(h,f);f=g}})}}),F=i((a,b)=>{var c=x(),d=y(),e=C(),f=D(),g=E(),h=j().Graph,i=m();function k(a,b,c){let d=new Map,e=(a,b)=>{d.has(a)||d.set(a,[]),d.get(a).push(b)};for(let b of a.nodes()){let c=a.node(b);if("number"==typeof c.rank&&e(c.rank,b),"number"==typeof c.minRank&&"number"==typeof c.maxRank)for(let a=c.minRank;a<=c.maxRank;a++)a!==c.rank&&e(a,b)}return b.map(function(b){return f(a,b,c,d.get(b)||[])})}function l(a,b){Object.values(b).forEach(b=>b.forEach((b,c)=>a.node(b).order=c))}b.exports=function a(b,f={}){if("function"==typeof f.customOrder)return void f.customOrder(b,a);let j=i.maxRank(b),m=k(b,i.range(1,j+1),"inEdges"),n=k(b,i.range(j-1,-1,-1),"outEdges"),o=c(b);if(l(b,o),f.disableOptimalOrderHeuristic)return;let p=1/0,q,r=f.constraints||[];for(let a=0,c=0;c<4;++a,++c){(function(a,b,c){let d=new h;a.forEach(function(a){c.forEach(a=>d.setEdge(a.left,a.right));let f=a.graph().root,h=e(a,f,d,b);h.vs.forEach((b,c)=>a.node(b).order=c),g(a,d,h.vs)})})(a%2?m:n,a%4>=2,r),o=i.buildLayerMatrix(b);let f=d(b,o);f<p?(c=0,q=Object.assign({},o),p=f):f===p&&(q=structuredClone(o))}l(b,q)}}),G=i((a,b)=>{var c=j().Graph,d=m();function e(a,b){let c={};return b.length&&b.reduce(function(b,d){let e=0,f=0,h=b.length,i=d[d.length-1];return d.forEach((b,j)=>{let k=function(a,b){if(a.node(b).dummy)return a.predecessors(b).find(b=>a.node(b).dummy)}(a,b),l=k?a.node(k).order:h;(k||b===i)&&(d.slice(f,j+1).forEach(b=>{a.predecessors(b).forEach(d=>{let f=a.node(d),h=f.order;(h<e||l<h)&&!(f.dummy&&a.node(b).dummy)&&g(c,d,b)})}),f=j+1,e=l)}),d}),c}function f(a,b){let c={};function e(b,e,f,h,i){let j;d.range(e,f).forEach(d=>{j=b[d],a.node(j).dummy&&a.predecessors(j).forEach(b=>{let d=a.node(b);d.dummy&&(d.order<h||d.order>i)&&g(c,b,j)})})}return b.length&&b.reduce(function(b,c){let d=-1,f,g=0;return c.forEach((h,i)=>{if("border"===a.node(h).dummy){let b=a.predecessors(h);b.length&&(f=a.node(b[0]).order,e(c,g,i,d,f),g=i,d=f)}e(c,g,c.length,f,b.length)}),c}),c}function g(a,b,c){if(b>c){let a=b;b=c,c=a}let d=a[b];d||(a[b]=d={}),d[c]=!0}function h(a,b,c){if(b>c){let a=b;b=c,c=a}return!!a[b]&&Object.hasOwn(a[b],c)}function i(a,b,c,d){let e={},f={},g={};return b.forEach(a=>{a.forEach((a,b)=>{e[a]=a,f[a]=a,g[a]=b})}),b.forEach(a=>{let b=-1;a.forEach(a=>{let i=d(a);if(i.length){let d=((i=i.sort((a,b)=>g[a]-g[b])).length-1)/2;for(let j=Math.floor(d),k=Math.ceil(d);j<=k;++j){let d=i[j];f[a]===a&&b<g[d]&&!h(c,a,d)&&(f[d]=a,f[a]=e[a]=e[d],b=g[d])}}})}),{root:e,align:f}}function k(a,b,d,e,f){var g,h,i,j,k,l,m;let n,o,p,q={},r=(g=a,h=b,i=d,j=f,n=new c,p=(k=(o=g.graph()).nodesep,l=o.edgesep,m=j,(a,b,c)=>{let d=a.node(b),e=a.node(c),f,g;if(f=0+d.width/2,Object.hasOwn(d,"labelpos"))switch(d.labelpos.toLowerCase()){case"l":g=-d.width/2;break;case"r":g=d.width/2}if(g&&(f+=m?g:-g),g=0,f+=(d.dummy?l:k)/2,f+=(e.dummy?l:k)/2,f+=e.width/2,Object.hasOwn(e,"labelpos"))switch(e.labelpos.toLowerCase()){case"l":g=e.width/2;break;case"r":g=-e.width/2}return g&&(f+=m?g:-g),g=0,f}),h.forEach(a=>{let b;a.forEach(a=>{let c=i[a];if(n.setNode(c),b){var d=i[b],e=n.edge(d,c);n.setEdge(d,c,Math.max(p(g,a,b),e||0))}b=a})}),n),s=f?"borderLeft":"borderRight";function t(a,b){let c=r.nodes().slice(),d={},e=c.pop();for(;e;){if(d[e])a(e);else for(let a of(d[e]=!0,c.push(e),b(e)))c.push(a);e=c.pop()}}return t(function(a){q[a]=r.inEdges(a).reduce((a,b)=>Math.max(a,q[b.v]+r.edge(b)),0)},r.predecessors.bind(r)),t(function(b){let c=r.outEdges(b).reduce((a,b)=>Math.min(a,q[b.w]-r.edge(b)),1/0),d=a.node(b);c!==1/0&&d.borderType!==s&&(q[b]=Math.max(q[b],c))},r.successors.bind(r)),Object.keys(e).forEach(a=>q[a]=q[d[a]]),q}function l(a,b){return Object.values(b).reduce((b,c)=>{let d=-1/0,e=1/0;Object.entries(c).forEach(([b,c])=>{var f,g;let h=(f=a,g=b,f.node(g).width/2);d=Math.max(c+h,d),e=Math.min(c-h,e)});let f=d-e;return f<b[0]&&(b=[f,c]),b},[1/0,null])[1]}function n(a,b){let c=Object.values(b),e=d.applyWithChunking(Math.min,c),f=d.applyWithChunking(Math.max,c);["u","d"].forEach(c=>{["l","r"].forEach(g=>{let h=c+g,i=a[h];if(i===b)return;let j=Object.values(i),k=e-d.applyWithChunking(Math.min,j);"l"!==g&&(k=f-d.applyWithChunking(Math.max,j)),k&&(a[h]=d.mapValues(i,a=>a+k))})})}function o(a,b){return d.mapValues(a.ul,(c,d)=>{if(b)return a[b.toLowerCase()][d];{let b=Object.values(a).map(a=>a[d]).sort((a,b)=>a-b);return(b[1]+b[2])/2}})}b.exports={positionX:function(a){let b=d.buildLayerMatrix(a),c=Object.assign(e(a,b),f(a,b)),g={},h;["u","d"].forEach(e=>{h="u"===e?b:Object.values(b).reverse(),["l","r"].forEach(b=>{"r"===b&&(h=h.map(a=>Object.values(a).reverse()));let f=("u"===e?a.predecessors:a.successors).bind(a),j=i(a,h,c,f),l=k(a,h,j.root,j.align,"r"===b);"r"===b&&(l=d.mapValues(l,a=>-a)),g[e+b]=l})});let j=l(a,g);return n(g,j),o(g,a.graph().align)},findType1Conflicts:e,findType2Conflicts:f,addConflict:g,hasConflict:h,verticalAlignment:i,horizontalCompaction:k,alignCoordinates:n,findSmallestWidthAlignment:l,balance:o}}),H=i((a,b)=>{var c=m(),d=G().positionX;b.exports=function(a){var b;let e,f,g,h;b=a=c.asNonCompoundGraph(a),e=c.buildLayerMatrix(b),f=b.graph().ranksep,g=b.graph().rankalign,h=0,e.forEach(a=>{let c=a.reduce((a,c)=>{let d=b.node(c).height;return a>d?a:d},0);a.forEach(a=>{let d=b.node(a);"top"===g?d.y=h+d.height/2:"bottom"===g?d.y=h+c-d.height/2:d.y=h+c/2}),h+=c+f}),Object.entries(d(a)).forEach(([b,c])=>a.node(b).x=c)}}),I=i((a,b)=>{var c=n(),d=o(),e=s(),f=m().normalizeRanks,g=t(),h=m().removeEmptyRanks,i=u(),k=v(),l=w(),p=F(),q=H(),r=m(),x=j().Graph;b.exports=function(a,b={}){let j=b.debugTiming?r.time:r.notime;return j("layout",()=>{let m=j(" buildLayoutGraph",()=>{var b;let c,d;return b=a,c=new x({multigraph:!0,compound:!0}),d=J(b.graph()),c.setGraph(Object.assign({},z,I(d,y),r.pick(d,A))),b.nodes().forEach(a=>{let d=I(J(b.node(a)),B);Object.keys(C).forEach(a=>{void 0===d[a]&&(d[a]=C[a])}),c.setNode(a,d),c.setParent(a,b.parent(a))}),b.edges().forEach(a=>{let d=J(b.edge(a));c.setEdge(a,Object.assign({},E,I(d,D),r.pick(d,G)))}),c});return j(" runLayout",()=>{var a,n,o;return a=m,n=j,o=b,void(n(" makeSpaceForEdgeLabels",()=>{var b;let c;return c=(b=a).graph(),void(c.ranksep/=2,b.edges().forEach(a=>{let d=b.edge(a);d.minlen*=2,"c"!==d.labelpos.toLowerCase()&&("TB"===c.rankdir||"BT"===c.rankdir?d.width+=d.labeloffset:d.height+=d.labeloffset)}))}),n(" removeSelfEdges",()=>{var b;(b=a).edges().forEach(a=>{if(a.v===a.w){var c=b.node(a.v);c.selfEdges||(c.selfEdges=[]),c.selfEdges.push({e:a,label:b.edge(a)}),b.removeEdge(a)}})}),n(" acyclic",()=>c.run(a)),n(" nestingGraph.run",()=>i.run(a)),n(" rank",()=>e(r.asNonCompoundGraph(a))),n(" injectEdgeLabelProxies",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a);if(c.width&&c.height){let c=b.node(a.v),d={rank:(b.node(a.w).rank-c.rank)/2+c.rank,e:a};r.addDummyNode(b,"edge-proxy",d,"_ep")}})}),n(" removeEmptyRanks",()=>h(a)),n(" nestingGraph.cleanup",()=>i.cleanup(a)),n(" normalizeRanks",()=>f(a)),n(" assignRankMinMax",()=>{var b;let c;return c=0,void((b=a).nodes().forEach(a=>{let d=b.node(a);d.borderTop&&(d.minRank=b.node(d.borderTop).rank,d.maxRank=b.node(d.borderBottom).rank,c=Math.max(c,d.maxRank))}),b.graph().maxRank=c)}),n(" removeEdgeLabelProxies",()=>{var b;(b=a).nodes().forEach(a=>{let c=b.node(a);"edge-proxy"===c.dummy&&(b.edge(c.e).labelRank=c.rank,b.removeNode(a))})}),n(" normalize.run",()=>d.run(a)),n(" parentDummyChains",()=>g(a)),n(" addBorderSegments",()=>k(a)),n(" order",()=>p(a,o)),n(" insertSelfEdges",()=>{var b;return b=a,void r.buildLayerMatrix(b).forEach(a=>{var c=0;a.forEach((a,d)=>{var e=b.node(a);e.order=d+c,(e.selfEdges||[]).forEach(a=>{r.addDummyNode(b,"selfedge",{width:a.label.width,height:a.label.height,rank:e.rank,order:d+ ++c,e:a.e,label:a.label},"_se")}),delete e.selfEdges})})}),n(" adjustCoordinateSystem",()=>l.adjust(a)),n(" position",()=>q(a)),n(" positionSelfEdges",()=>{var b;(b=a).nodes().forEach(a=>{var c=b.node(a);if("selfedge"===c.dummy){var d=b.node(c.e.v),e=d.x+d.width/2,f=d.y,g=c.x-e,h=d.height/2;b.setEdge(c.e,c.label),b.removeNode(a),c.label.points=[{x:e+2*g/3,y:f-h},{x:e+5*g/6,y:f-h},{x:e+g,y:f},{x:e+5*g/6,y:f+h},{x:e+2*g/3,y:f+h}],c.label.x=c.x,c.label.y=c.y}})}),n(" removeBorderNodes",()=>{var b;(b=a).nodes().forEach(a=>{if(b.children(a).length){let c=b.node(a),d=b.node(c.borderTop),e=b.node(c.borderBottom),f=b.node(c.borderLeft[c.borderLeft.length-1]),g=b.node(c.borderRight[c.borderRight.length-1]);c.width=Math.abs(g.x-f.x),c.height=Math.abs(e.y-d.y),c.x=f.x+c.width/2,c.y=d.y+c.height/2}}),b.nodes().forEach(a=>{"border"===b.node(a).dummy&&b.removeNode(a)})}),n(" normalize.undo",()=>d.undo(a)),n(" fixupEdgeLabelCoords",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a);if(Object.hasOwn(c,"x"))switch(("l"===c.labelpos||"r"===c.labelpos)&&(c.width-=c.labeloffset),c.labelpos){case"l":c.x-=c.width/2+c.labeloffset;break;case"r":c.x+=c.width/2+c.labeloffset}})}),n(" undoCoordinateSystem",()=>l.undo(a)),n(" translateGraph",()=>(function(a){let b=1/0,c=0,d=1/0,e=0,f=a.graph(),g=f.marginx||0,h=f.marginy||0;function i(a){let f=a.x,g=a.y,h=a.width,i=a.height;b=Math.min(b,f-h/2),c=Math.max(c,f+h/2),d=Math.min(d,g-i/2),e=Math.max(e,g+i/2)}a.nodes().forEach(b=>i(a.node(b))),a.edges().forEach(b=>{let c=a.edge(b);Object.hasOwn(c,"x")&&i(c)}),b-=g,d-=h,a.nodes().forEach(c=>{let e=a.node(c);e.x-=b,e.y-=d}),a.edges().forEach(c=>{let e=a.edge(c);e.points.forEach(a=>{a.x-=b,a.y-=d}),Object.hasOwn(e,"x")&&(e.x-=b),Object.hasOwn(e,"y")&&(e.y-=d)}),f.width=c-b+g,f.height=e-d+h})(a)),n(" assignNodeIntersects",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a),d=b.node(a.v),e=b.node(a.w),f,g;c.points?(f=c.points[0],g=c.points[c.points.length-1]):(c.points=[],f=e,g=d),c.points.unshift(r.intersectRect(d,f)),c.points.push(r.intersectRect(e,g))})}),n(" reversePoints",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a);c.reversed&&c.points.reverse()})}),n(" acyclic.undo",()=>c.undo(a)))}),j(" updateInputGraph",()=>{var b,c;return b=a,c=m,void(b.nodes().forEach(a=>{let d=b.node(a),e=c.node(a);d&&(d.x=e.x,d.y=e.y,d.order=e.order,d.rank=e.rank,c.children(a).length&&(d.width=e.width,d.height=e.height))}),b.edges().forEach(a=>{let d=b.edge(a),e=c.edge(a);d.points=e.points,Object.hasOwn(e,"x")&&(d.x=e.x,d.y=e.y)}),b.graph().width=c.graph().width,b.graph().height=c.graph().height)}),m})};var y=["nodesep","edgesep","ranksep","marginx","marginy"],z={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb",rankalign:"center"},A=["acyclicer","ranker","rankdir","align","rankalign"],B=["width","height","rank"],C={width:0,height:0},D=["minlen","weight","width","height","labeloffset"],E={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},G=["labelpos"];function I(a,b){return r.mapValues(r.pick(a,b),Number)}function J(a){var b={};return a&&Object.entries(a).forEach(([a,c])=>{"string"==typeof a&&(a=a.toLowerCase()),b[a]=c}),b}}),J=i((a,b)=>{var c=m(),d=j().Graph;b.exports={debugOrdering:function(a){let b=c.buildLayerMatrix(a),e=new d({compound:!0,multigraph:!0}).setGraph({});return a.nodes().forEach(b=>{e.setNode(b,{label:b}),e.setParent(b,"layer"+a.node(b).rank)}),a.edges().forEach(a=>e.setEdge(a.v,a.w,{},a.name)),b.forEach((a,b)=>{e.setNode("layer"+b,{rank:"same"}),a.reduce((a,b)=>(e.setEdge(a,b,{style:"invis"}),b))}),e}}}),K=i((a,b)=>{b.exports="2.0.4"});let L=i((a,b)=>{b.exports={graphlib:j(),layout:I(),debug:J(),util:{time:m().time,notime:m().notime},version:K()}})(),M={direction:"LR",ranksep:200,nodesep:30},N={featureNode:{width:388,height:140},repositoryNode:{width:400,height:140}};function O(a,b){let c=a.data;return c&&"number"==typeof c.width&&"number"==typeof c.height?{width:c.width,height:c.height}:N[a.type??""]??b}var P=a.i(93354),Q=a.i(81719),R=a.i(14703),S=a.i(79372),T=a.i(29918);function U(a,b,c,d,e,f,g){[...a].sort((a,b)=>(a.feature.createdAt instanceof Date?a.feature.createdAt.getTime():Number(a.feature.createdAt))-(b.feature.createdAt instanceof Date?b.feature.createdAt.getTime():Number(b.feature.createdAt))).forEach(({feature:a,run:h})=>{let i;if(a.parentId&&"Blocked"===a.lifecycle){let b=c.find(b=>b.feature.id===a.parentId);b&&(i=b.feature.name)}let j=(h?.status===Q.AgentRunStatus.running||h?.status===Q.AgentRunStatus.pending)&&h?.pid?(0,S.isProcessAlive)(h.pid):void 0,k={name:a.name,description:a.description??a.slug,featureId:a.id,lifecycle:(0,R.deriveLifecycle)(a,h),repositoryPath:a.repositoryPath,branch:a.branch,worktreePath:a.worktreePath??(0,T.computeWorktreePath)(a.repositoryPath,a.branch),specPath:a.specPath,state:(0,R.deriveNodeState)(a,h,void 0!==j?{isPidAlive:j}:void 0),progress:(0,R.deriveProgress)(a),summary:a.description,userQuery:a.userQuery,createdAt:a.createdAt instanceof Date?a.createdAt.getTime():a.createdAt,...a.fast&&{fastMode:!0},approvalGates:a.approvalGates,push:a.push,openPr:a.openPr,forkAndPr:a.forkAndPr,commitSpecs:a.commitSpecs,enableEvidence:a.enableEvidence??g?.enableEvidence??!1,commitEvidence:a.commitEvidence??g?.commitEvidence??!1,ciWatchEnabled:a.ciWatchEnabled??g?.ciWatchEnabled??!0,...f&&{repositoryName:f},...h?.agentType&&{agentType:h.agentType},...h?.modelId&&{modelId:h.modelId},...h?.error&&{errorMessage:h.error},...i&&{blockedBy:i},...null!=a.agentRunId&&{hasAgentRun:!0},...null!=a.plan&&{hasPlan:!0},...a.pr&&{pr:{url:a.pr.url,number:a.pr.number,status:a.pr.status,ciStatus:a.pr.ciStatus,commitHash:a.pr.commitHash,mergeable:a.pr.mergeable}}},l=`feat-${a.id}`;d.push({id:l,type:"featureNode",position:{x:0,y:0},data:k}),a.parentId||e.push({id:`edge-${b}-${l}`,source:b,target:l,style:{strokeDasharray:"5 5"}})})}let V=(0,e.promisify)(d.execFile),W=new Map;async function X(a,b){try{let c=f.IS_WINDOWS?{cwd:a,windowsHide:!0}:{cwd:a},{stdout:d}=await V("git",b,c);return d.trim()}catch{return null}}async function Y(a){try{let b=await X(a.path,["rev-parse","HEAD"]);if(!b)return void W.set(a.path,{kind:"not-a-repo",checkedAt:Date.now()});let[c,d]=await Promise.all([X(a.path,["symbolic-ref","--short","HEAD"]),X(a.path,["log","-1",`--format=%s\x1f%an`])]);if(!c)return;let[e,f]=(d??"").split("\x1f"),g=null,h=await X(a.path,["symbolic-ref","--short","refs/remotes/origin/HEAD"]),i=h?.replace("origin/","")??null;if(i){let b=await X(a.path,["rev-list","--count",`${c}..origin/${i}`]);g=null!==b?parseInt(b,10):null,isNaN(g)&&(g=null)}W.set(a.path,{kind:"repo",sha:b,checkedAt:Date.now(),data:{branch:c,commitMessage:e??"unknown",committer:f??"unknown",behindCount:g}})}catch{}}async function Z(){let a=(0,g.resolve)("ListFeaturesUseCase"),b=(0,g.resolve)("ListRepositoriesUseCase"),c=(0,g.resolve)("IAgentRunRepository"),[d,e]=await Promise.all([a.execute({includeArchived:!0}),b.execute()]),f=new Map,i=new Map;for(let a of e){let b=function(a){let b=W.get(a.path),c=Date.now();return b?(c-b.checkedAt>=3e4&&Y(a),"not-a-repo"===b.kind)?{status:"not-a-repo"}:{status:"ready",data:b.data}:(Y(a),{status:"loading"})}(a);i.set(a.path,b.status),"ready"===b.status&&f.set(a.path,b.data)}try{(0,g.resolve)("AutoResolveMergedBranchesUseCase").execute(d)}catch{}let j=await Promise.all(d.map(async a=>{let b=a.agentRunId?await c.findById(a.agentRunId):null;return{feature:a,run:b}})),{workflow:k}=(0,h.getSettings)(),{nodes:l,edges:m}=function(a,b,c){let d=a=>a.replace(/\\/g,"/"),e={};b.forEach(a=>{let b=d(a.feature.repositoryPath);e[b]||(e[b]=[]),e[b].push(a)});let f=[],g=[],h=new Set;for(let i of a){let a=d(i.path);h.add(a);let j=`repo-${i.id}`,k=c?.repoGitInfo?.get(i.path),l=c?.repoGitStatus?.get(i.path)??"loading";f.push({id:j,type:"repositoryNode",position:{x:0,y:0},data:{name:i.name,repositoryPath:a,id:i.id,createdAt:i.createdAt instanceof Date?i.createdAt.getTime():Number(i.createdAt),gitInfoStatus:l,...k&&{branch:k.branch,commitMessage:k.commitMessage,committer:k.committer,behindCount:k.behindCount}}}),U(e[a]??[],j,b,f,g,i.name,c)}for(let[a,d]of Object.entries(e)){if(h.has(a))continue;let e=`virtual-repo-${a}`,i=a.split("/").filter(Boolean).at(-1)??a;f.push({id:e,type:"repositoryNode",position:{x:0,y:0},data:{name:i,repositoryPath:a}}),U(d,e,b,f,g,i,c)}for(let{feature:a}of b)if(a.parentId){let b=`feat-${a.parentId}`,c=`feat-${a.id}`;f.some(a=>a.id===b)&&f.some(a=>a.id===c)&&g.push({id:`dep-${b}-${c}`,source:b,target:c,type:"dependencyEdge"})}return{nodes:f,edges:g}}(e,j,{enableEvidence:k.enableEvidence,commitEvidence:k.commitEvidence,ciWatchEnabled:k.ciWatchEnabled,repoGitInfo:f,repoGitStatus:i}),n=null;try{n=(0,g.resolve)("IDeploymentService")}catch{}if(n)for(let a of l){if("featureNode"!==a.type)continue;let b=a.data,c=n.getStatus(b.featureId);c&&"Stopped"!==c.state&&(b.deployment={status:c.state,...c.url&&{url:c.url}})}let{dir:o}=(0,P.getLanguagePreference)();return function(a,b,c={}){let{direction:d="TB",nodeSize:e={width:172,height:36},ranksep:f=80,nodesep:g=30}=c;if(0===a.length)return{nodes:[],edges:[]};let h=new L.graphlib.Graph({multigraph:!0});h.setDefaultEdgeLabel(()=>({})),h.setGraph({rankdir:d,ranksep:f,nodesep:g});let i=new Set;for(let a of b)i.add(a.source),i.add(a.target);let j=a.filter(a=>i.has(a.id)),k=a.filter(a=>!i.has(a.id));for(let a of j){let b=O(a,e);h.setNode(a.id,{width:b.width,height:b.height})}for(let a of b)h.hasNode(a.source)&&h.hasNode(a.target)&&h.setEdge(a.source,a.target,{},a.id);L.layout(h);let{targetPosition:l,sourcePosition:m}=function(a){switch(a){case"LR":return{targetPosition:"left",sourcePosition:"right"};case"RL":return{targetPosition:"right",sourcePosition:"left"};case"BT":return{targetPosition:"bottom",sourcePosition:"top"};default:return{targetPosition:"top",sourcePosition:"bottom"}}}(d),n="LR"===d||"RL"===d,o=new Map;for(let a of j){let b=h.node(a.id),c=O(a,e);o.set(a.id,{cx:b.x,cy:b.y,w:c.width,h:c.height})}let p=0;for(let a of o.values()){p=n?a.cx:a.cy;break}for(let a of k){let b=O(a,e);o.set(a.id,{cx:n?p:0,cy:n?0:p,w:b.width,h:b.height})}let q=new Map;for(let a of b)o.has(a.source)&&o.has(a.target)&&(q.has(a.source)||q.set(a.source,[]),q.get(a.source).push(a.target));let r=new Map;for(let b=0;b<a.length;b++)r.set(a[b].id,b);for(let[,a]of q)a.sort((a,b)=>(r.get(a)??0)-(r.get(b)??0));let s=new Set;for(let a of q.values())for(let b of a)s.add(b);let t=[...[...i].filter(a=>o.has(a)&&!s.has(a)),...k.map(a=>a.id)];t.sort((a,b)=>(r.get(a)??0)-(r.get(b)??0));let u=new Map;for(let a of t)!function a(b){if(u.has(b))return u.get(b);let c=o.get(b),d=n?c.h:c.w,e=q.get(b);if(!e||0===e.length)return u.set(b,d),d;let f=0;for(let b of e)f+=a(b);let h=Math.max(d,f+=(e.length-1)*g);return u.set(b,h),h}(a);let v=0;for(let a of t){let b=u.get(a)??0;!function a(b,c){let d=o.get(b);n?d.cy=c:d.cx=c;let e=q.get(b);if(!e||0===e.length)return;let f=0;for(let a of e)f+=u.get(a)??0;let h=c-(f+=(e.length-1)*g)/2;for(let b of e){let c=u.get(b)??0;a(b,h+c/2),h+=c+g}}(a,v+b/2),v+=b+g}let w=[];for(let b of a){let a=o.get(b.id);a&&w.push({...b,targetPosition:l,sourcePosition:m,position:{x:a.cx-a.w/2,y:a.cy-a.h/2}})}return{nodes:w,edges:[...b]}}(l,m,function(a="ltr"){return{...M,direction:"rtl"===a?"RL":"LR"}}(o))}async function $({children:a,drawer:d}){let{nodes:e,edges:f}=await Z();return(0,b.jsxs)("div",{className:"h-screen w-full",children:[(0,b.jsx)(c.ControlCenter,{initialNodes:e,initialEdges:f,drawer:d}),a]})}a.s(["default",()=>$,"dynamic",0,"force-dynamic"],19981)}];
|
|
1
|
+
module.exports=[15638,a=>{"use strict";a.s(["ControlCenter",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call ControlCenter() from the server but ControlCenter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/control-center/control-center.tsx <module evaluation>","ControlCenter")},87979,a=>{"use strict";a.s(["ControlCenter",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call ControlCenter() from the server but ControlCenter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/control-center/control-center.tsx","ControlCenter")},35685,a=>{"use strict";a.i(15638);var b=a.i(87979);a.n(b)},79957,a=>{"use strict";a.s(["useControlCenterState",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call useControlCenterState() from the server but useControlCenterState is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/control-center/use-control-center-state.ts <module evaluation>","useControlCenterState")},81035,a=>{"use strict";a.s(["useControlCenterState",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call useControlCenterState() from the server but useControlCenterState is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/control-center/use-control-center-state.ts","useControlCenterState")},62858,a=>{"use strict";a.i(79957);var b=a.i(81035);a.n(b)},19981,a=>{"use strict";var b=a.i(92807),c=a.i(35685);a.i(62858);var d=a.i(74533),e=a.i(12057);let f="win32"===process.platform;var g=a.i(96380),h=a.i(33244),i=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports),j=i((a,b)=>{var c=Object.defineProperty,d=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports),e=(a,b,d)=>{let e;return(e="symbol"!=typeof b?b+"":b)in a?c(a,e,{enumerable:!0,configurable:!0,writable:!0,value:d}):a[e]=d},f=d((a,b)=>{function c(a,b){a[b]?a[b]++:a[b]=1}function d(a,b){--a[b]||delete a[b]}function f(a,b,c,d){var e=""+b,f=""+c;if(!a&&e>f){var g=e;e=f,f=g}return e+"\x01"+f+"\x01"+(void 0===d?"\0":d)}function g(a,b){return f(a,b.v,b.w,b.name)}b.exports=class{constructor(a){e(this,"_isDirected",!0),e(this,"_isMultigraph",!1),e(this,"_isCompound",!1),e(this,"_label"),e(this,"_defaultNodeLabelFn",()=>{}),e(this,"_defaultEdgeLabelFn",()=>{}),e(this,"_nodes",{}),e(this,"_in",{}),e(this,"_preds",{}),e(this,"_out",{}),e(this,"_sucs",{}),e(this,"_edgeObjs",{}),e(this,"_edgeLabels",{}),e(this,"_nodeCount",0),e(this,"_edgeCount",0),e(this,"_parent"),e(this,"_children"),a&&(this._isDirected=!Object.hasOwn(a,"directed")||a.directed,this._isMultigraph=!!Object.hasOwn(a,"multigraph")&&a.multigraph,this._isCompound=!!Object.hasOwn(a,"compound")&&a.compound),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(a){return this._label=a,this}graph(){return this._label}setDefaultNodeLabel(a){return this._defaultNodeLabelFn=a,"function"!=typeof a&&(this._defaultNodeLabelFn=()=>a),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var a=this;return this.nodes().filter(b=>0===Object.keys(a._in[b]).length)}sinks(){var a=this;return this.nodes().filter(b=>0===Object.keys(a._out[b]).length)}setNodes(a,b){var c=arguments,d=this;return a.forEach(function(a){c.length>1?d.setNode(a,b):d.setNode(a)}),this}setNode(a,b){return Object.hasOwn(this._nodes,a)?arguments.length>1&&(this._nodes[a]=b):(this._nodes[a]=arguments.length>1?b:this._defaultNodeLabelFn(a),this._isCompound&&(this._parent[a]="\0",this._children[a]={},this._children["\0"][a]=!0),this._in[a]={},this._preds[a]={},this._out[a]={},this._sucs[a]={},++this._nodeCount),this}node(a){return this._nodes[a]}hasNode(a){return Object.hasOwn(this._nodes,a)}removeNode(a){var b=this;if(Object.hasOwn(this._nodes,a)){var c=a=>b.removeEdge(b._edgeObjs[a]);delete this._nodes[a],this._isCompound&&(this._removeFromParentsChildList(a),delete this._parent[a],this.children(a).forEach(function(a){b.setParent(a)}),delete this._children[a]),Object.keys(this._in[a]).forEach(c),delete this._in[a],delete this._preds[a],Object.keys(this._out[a]).forEach(c),delete this._out[a],delete this._sucs[a],--this._nodeCount}return this}setParent(a,b){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(void 0===b)b="\0";else{b+="";for(var c=b;void 0!==c;c=this.parent(c))if(c===a)throw Error("Setting "+b+" as parent of "+a+" would create a cycle");this.setNode(b)}return this.setNode(a),this._removeFromParentsChildList(a),this._parent[a]=b,this._children[b][a]=!0,this}_removeFromParentsChildList(a){delete this._children[this._parent[a]][a]}parent(a){if(this._isCompound){var b=this._parent[a];if("\0"!==b)return b}}children(a="\0"){if(this._isCompound){var b=this._children[a];if(b)return Object.keys(b)}else{if("\0"===a)return this.nodes();if(this.hasNode(a))return[]}}predecessors(a){var b=this._preds[a];if(b)return Object.keys(b)}successors(a){var b=this._sucs[a];if(b)return Object.keys(b)}neighbors(a){var b=this.predecessors(a);if(b){let d=new Set(b);for(var c of this.successors(a))d.add(c);return Array.from(d.values())}}isLeaf(a){return 0===(this.isDirected()?this.successors(a):this.neighbors(a)).length}filterNodes(a){var b=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});b.setGraph(this.graph());var c=this;Object.entries(this._nodes).forEach(function([c,d]){a(c)&&b.setNode(c,d)}),Object.values(this._edgeObjs).forEach(function(a){b.hasNode(a.v)&&b.hasNode(a.w)&&b.setEdge(a,c.edge(a))});var d={};return this._isCompound&&b.nodes().forEach(a=>b.setParent(a,function a(e){var f=c.parent(e);return void 0===f||b.hasNode(f)?(d[e]=f,f):f in d?d[f]:a(f)}(a))),b}setDefaultEdgeLabel(a){return this._defaultEdgeLabelFn=a,"function"!=typeof a&&(this._defaultEdgeLabelFn=()=>a),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(a,b){var c=this,d=arguments;return a.reduce(function(a,e){return d.length>1?c.setEdge(a,e,b):c.setEdge(a,e),e}),this}setEdge(){var a,b,d,e,g=!1,h=arguments[0];"object"==typeof h&&null!==h&&"v"in h?(a=h.v,b=h.w,d=h.name,2==arguments.length&&(e=arguments[1],g=!0)):(a=h,b=arguments[1],d=arguments[3],arguments.length>2&&(e=arguments[2],g=!0)),a=""+a,b=""+b,void 0!==d&&(d=""+d);var i=f(this._isDirected,a,b,d);if(Object.hasOwn(this._edgeLabels,i))return g&&(this._edgeLabels[i]=e),this;if(void 0!==d&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(a),this.setNode(b),this._edgeLabels[i]=g?e:this._defaultEdgeLabelFn(a,b,d);var j=function(a,b,c,d){var e=""+b,f=""+c;if(!a&&e>f){var g=e;e=f,f=g}var h={v:e,w:f};return d&&(h.name=d),h}(this._isDirected,a,b,d);return a=j.v,b=j.w,Object.freeze(j),this._edgeObjs[i]=j,c(this._preds[b],a),c(this._sucs[a],b),this._in[b][i]=j,this._out[a][i]=j,this._edgeCount++,this}edge(a,b,c){var d=1==arguments.length?g(this._isDirected,arguments[0]):f(this._isDirected,a,b,c);return this._edgeLabels[d]}edgeAsObj(){let a=this.edge(...arguments);return"object"!=typeof a?{label:a}:a}hasEdge(a,b,c){var d=1==arguments.length?g(this._isDirected,arguments[0]):f(this._isDirected,a,b,c);return Object.hasOwn(this._edgeLabels,d)}removeEdge(a,b,c){var e=1==arguments.length?g(this._isDirected,arguments[0]):f(this._isDirected,a,b,c),h=this._edgeObjs[e];return h&&(a=h.v,b=h.w,delete this._edgeLabels[e],delete this._edgeObjs[e],d(this._preds[b],a),d(this._sucs[a],b),delete this._in[b][e],delete this._out[a][e],this._edgeCount--),this}inEdges(a,b){return this.isDirected()?this.filterEdges(this._in[a],a,b):this.nodeEdges(a,b)}outEdges(a,b){return this.isDirected()?this.filterEdges(this._out[a],a,b):this.nodeEdges(a,b)}nodeEdges(a,b){if(a in this._nodes)return this.filterEdges({...this._in[a],...this._out[a]},a,b)}filterEdges(a,b,c){if(a){var d=Object.values(a);return c?d.filter(function(a){return a.v===b&&a.w===c||a.v===c&&a.w===b}):d}}}}),g=d((a,b)=>{b.exports="3.0.2"}),h=d((a,b)=>{b.exports={Graph:f(),version:g()}}),i=d((a,b)=>{var c=f();b.exports={write:function(a){var b,c,d={options:{directed:a.isDirected(),multigraph:a.isMultigraph(),compound:a.isCompound()},nodes:(b=a).nodes().map(function(a){var c=b.node(a),d=b.parent(a),e={v:a};return void 0!==c&&(e.value=c),void 0!==d&&(e.parent=d),e}),edges:(c=a).edges().map(function(a){var b=c.edge(a),d={v:a.v,w:a.w};return void 0!==a.name&&(d.name=a.name),void 0!==b&&(d.value=b),d})};return void 0!==a.graph()&&(d.value=structuredClone(a.graph())),d},read:function(a){var b=new c(a.options).setGraph(a.value);return a.nodes.forEach(function(a){b.setNode(a.v,a.value),a.parent&&b.setParent(a.v,a.parent)}),a.edges.forEach(function(a){b.setEdge({v:a.v,w:a.w,name:a.name},a.value)}),b}}}),j=d((a,b)=>{b.exports=function(a,b,d,e){return function(a,b,c,d){var e={},f=!0,g=0,h=a.nodes(),i=function(a){var b=c(a);e[a.v].distance+b<e[a.w].distance&&(e[a.w]={distance:e[a.v].distance+b,predecessor:a.v},f=!0)},j=function(){h.forEach(function(a){d(a).forEach(function(b){var c=b.v===a?b.v:b.w,d=c===b.v?b.w:b.v;i({v:c,w:d})})})};h.forEach(function(a){e[a]={distance:a===b?0:1/0}});for(var k=h.length,l=1;l<k&&(f=!1,g++,j(),f);l++);if(g===k-1&&(f=!1,j(),f))throw Error("The graph contains a negative weight cycle");return e}(a,String(b),d||c,e||function(b){return a.outEdges(b)})};var c=()=>1}),k=d((a,b)=>{b.exports=function(a){var b,c={},d=[];return a.nodes().forEach(function(e){b=[],function d(e){Object.hasOwn(c,e)||(c[e]=!0,b.push(e),a.successors(e).forEach(d),a.predecessors(e).forEach(d))}(e),b.length&&d.push(b)}),d}}),l=d((a,b)=>{b.exports=class{constructor(){e(this,"_arr",[]),e(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(a){return a.key})}has(a){return Object.hasOwn(this._keyIndices,a)}priority(a){var b=this._keyIndices[a];if(void 0!==b)return this._arr[b].priority}min(){if(0===this.size())throw Error("Queue underflow");return this._arr[0].key}add(a,b){var c=this._keyIndices;if(!Object.hasOwn(c,a=String(a))){var d=this._arr,e=d.length;return c[a]=e,d.push({key:a,priority:b}),this._decrease(e),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var a=this._arr.pop();return delete this._keyIndices[a.key],this._heapify(0),a.key}decrease(a,b){var c=this._keyIndices[a];if(b>this._arr[c].priority)throw Error("New priority is greater than current priority. Key: "+a+" Old: "+this._arr[c].priority+" New: "+b);this._arr[c].priority=b,this._decrease(c)}_heapify(a){var b=this._arr,c=2*a,d=c+1,e=a;c<b.length&&(e=b[c].priority<b[e].priority?c:e,d<b.length&&(e=b[d].priority<b[e].priority?d:e),e!==a&&(this._swap(a,e),this._heapify(e)))}_decrease(a){for(var b,c=this._arr,d=c[a].priority;0!==a&&!(c[b=a>>1].priority<d);)this._swap(a,b),a=b}_swap(a,b){var c=this._arr,d=this._keyIndices,e=c[a],f=c[b];c[a]=f,c[b]=e,d[f.key]=a,d[e.key]=b}}}),m=d((a,b)=>{var c=l();b.exports=function(a,b,e,f){return function(a,b,d,e){var f,g,h={},i=new c,j=function(a){var b=a.v!==f?a.v:a.w,c=h[b],e=d(a),j=g.distance+e;if(e<0)throw Error("dijkstra does not allow negative edge weights. Bad edge: "+a+" Weight: "+e);j<c.distance&&(c.distance=j,c.predecessor=f,i.decrease(b,j))};for(a.nodes().forEach(function(a){var c=a===b?0:1/0;h[a]={distance:c},i.add(a,c)});i.size()>0&&(g=h[f=i.removeMin()]).distance!==1/0;)e(f).forEach(j);return h}(a,String(b),e||d,f||function(b){return a.outEdges(b)})};var d=()=>1}),n=d((a,b)=>{var c=m();b.exports=function(a,b,d){return a.nodes().reduce(function(e,f){return e[f]=c(a,f,b,d),e},{})}}),o=d((a,b)=>{b.exports=function(a,b,c){if(void 0!==a[b].predecessor)throw Error("Invalid source vertex");if(void 0===a[c].predecessor&&c!==b)throw Error("Invalid destination vertex");return{weight:a[c].distance,path:function(a,b,c){for(var d=[],e=c;e!==b;)d.push(e),e=a[e].predecessor;return d.push(b),d.reverse()}(a,b,c)}}}),p=d((a,b)=>{b.exports=function(a){var b=0,c=[],d={},e=[];return a.nodes().forEach(function(f){Object.hasOwn(d,f)||function f(g){var h=d[g]={onStack:!0,lowlink:b,index:b++};if(c.push(g),a.successors(g).forEach(function(a){Object.hasOwn(d,a)?d[a].onStack&&(h.lowlink=Math.min(h.lowlink,d[a].index)):(f(a),h.lowlink=Math.min(h.lowlink,d[a].lowlink))}),h.lowlink===h.index){var i,j=[];do d[i=c.pop()].onStack=!1,j.push(i);while(g!==i)e.push(j)}}(f)}),e}}),q=d((a,b)=>{var c=p();b.exports=function(a){return c(a).filter(function(b){return b.length>1||1===b.length&&a.hasEdge(b[0],b[0])})}}),r=d((a,b)=>{b.exports=function(a,b,d){var e,f,g,h,i;return e=a,f=b||c,g=d||function(b){return a.outEdges(b)},h={},(i=e.nodes()).forEach(function(a){h[a]={},h[a][a]={distance:0},i.forEach(function(b){a!==b&&(h[a][b]={distance:1/0})}),g(a).forEach(function(b){var c=b.v===a?b.w:b.v,d=f(b);h[a][c]={distance:d,predecessor:a}})}),i.forEach(function(a){var b=h[a];i.forEach(function(c){var d=h[c];i.forEach(function(c){var e=d[a],f=b[c],g=d[c],h=e.distance+f.distance;h<g.distance&&(g.distance=h,g.predecessor=f.predecessor)})})}),h};var c=()=>1}),s=d((a,b)=>{function c(a){var b={},c={},e=[];if(a.sinks().forEach(function f(g){if(Object.hasOwn(c,g))throw new d;Object.hasOwn(b,g)||(c[g]=!0,b[g]=!0,a.predecessors(g).forEach(f),delete c[g],e.push(g))}),Object.keys(b).length!==a.nodeCount())throw new d;return e}var d=class extends Error{constructor(){super(...arguments)}};b.exports=c,c.CycleException=d}),t=d((a,b)=>{var c=s();b.exports=function(a){try{c(a)}catch(a){if(a instanceof c.CycleException)return!1;throw a}return!0}}),u=d((a,b)=>{b.exports=function(a,b,c,d,e){Array.isArray(b)||(b=[b]);var f=(a.isDirected()?a.successors:a.neighbors).bind(a),g={};return b.forEach(function(b){if(!a.hasNode(b))throw Error("Graph does not have node: "+b);e=function a(b,c,d,e,f,g,h){return Object.hasOwn(e,c)||(e[c]=!0,d||(h=g(h,c)),f(c).forEach(function(c){h=a(b,c,d,e,f,g,h)}),d&&(h=g(h,c))),h}(a,b,"post"===c,g,f,d,e)}),e}}),v=d((a,b)=>{var c=u();b.exports=function(a,b,d){return c(a,b,d,function(a,b){return a.push(b),a},[])}}),w=d((a,b)=>{var c=v();b.exports=function(a,b){return c(a,b,"post")}}),x=d((a,b)=>{var c=v();b.exports=function(a,b){return c(a,b,"pre")}}),y=d((a,b)=>{var c=f(),d=l();b.exports=function(a,b){var e,f=new c,g={},h=new d;function i(a){var c=a.v===e?a.w:a.v,d=h.priority(c);if(void 0!==d){var f=b(a);f<d&&(g[c]=e,h.decrease(c,f))}}if(0===a.nodeCount())return f;a.nodes().forEach(function(a){h.add(a,1/0),f.setNode(a)}),h.decrease(a.nodes()[0],0);for(var j=!1;h.size()>0;){if(Object.hasOwn(g,e=h.removeMin()))f.setEdge(e,g[e]);else{if(j)throw Error("Input graph is not connected: "+a);j=!0}a.nodeEdges(e).forEach(i)}return f}}),z=d((a,b)=>{var c=m(),d=j();b.exports=function(a,b,e,f){return function(a,b,e,f){if(void 0===e)return c(a,b,e,f);for(var g=!1,h=a.nodes(),i=0;i<h.length;i++){for(var j=f(h[i]),k=0;k<j.length;k++){var l=j[k],m=l.v===h[i]?l.v:l.w,n=m===l.v?l.w:l.v;0>e({v:m,w:n})&&(g=!0)}if(g)return d(a,b,e,f)}return c(a,b,e,f)}(a,b,e,f||function(b){return a.outEdges(b)})}}),A=d((a,b)=>{b.exports={bellmanFord:j(),components:k(),dijkstra:m(),dijkstraAll:n(),extractPath:o(),findCycles:q(),floydWarshall:r(),isAcyclic:t(),postorder:w(),preorder:x(),prim:y(),shortestPaths:z(),reduce:u(),tarjan:p(),topsort:s()}}),B=h();b.exports={Graph:B.Graph,json:i(),alg:A(),version:B.version}}),k=i((a,b)=>{function c(a){a._prev._next=a._next,a._next._prev=a._prev,delete a._next,delete a._prev}function d(a,b){if("_next"!==a&&"_prev"!==a)return b}b.exports=class{constructor(){let a={};a._next=a._prev=a,this._sentinel=a}dequeue(){let a=this._sentinel,b=a._prev;if(b!==a)return c(b),b}enqueue(a){let b=this._sentinel;a._prev&&a._next&&c(a),a._next=b._next,b._next._prev=a,b._next=a,a._prev=b}toString(){let a=[],b=this._sentinel,c=b._prev;for(;c!==b;)a.push(JSON.stringify(c,d)),c=c._prev;return"["+a.join(", ")+"]"}}}),l=i((a,b)=>{var c=j().Graph,d=k();b.exports=function(a,b){var h,i;let j,k,l,m,n;if(1>=a.nodeCount())return[];let o=(h=a,i=b||e,j=new c,k=0,l=0,h.nodes().forEach(a=>{j.setNode(a,{v:a,in:0,out:0})}),h.edges().forEach(a=>{let b=j.edge(a.v,a.w)||0,c=i(a);j.setEdge(a.v,a.w,b+c),l=Math.max(l,j.node(a.v).out+=c),k=Math.max(k,j.node(a.w).in+=c)}),m=(function(a){let b=[];for(let c=0;c<a;c++)b.push(c);return b})(l+k+3).map(()=>new d),n=k+1,j.nodes().forEach(a=>{g(m,n,j.node(a))}),{graph:j,buckets:m,zeroIdx:n});return(function(a,b,c){let d=[],e=b[b.length-1],g=b[0],h;for(;a.nodeCount();){for(;h=g.dequeue();)f(a,b,c,h);for(;h=e.dequeue();)f(a,b,c,h);if(a.nodeCount()){for(let e=b.length-2;e>0;--e)if(h=b[e].dequeue()){d=d.concat(f(a,b,c,h,!0));break}}}return d})(o.graph,o.buckets,o.zeroIdx).flatMap(b=>a.outEdges(b.v,b.w))};var e=()=>1;function f(a,b,c,d,e){let f=e?[]:void 0;return a.inEdges(d.v).forEach(d=>{let h=a.edge(d),i=a.node(d.v);e&&f.push({v:d.v,w:d.w}),i.out-=h,g(b,c,i)}),a.outEdges(d.v).forEach(d=>{let e=a.edge(d),f=d.w,h=a.node(f);h.in-=e,g(b,c,h)}),a.removeNode(d.v),f}function g(a,b,c){c.out?c.in?a[c.out-c.in+b].enqueue(c):a[a.length-1].enqueue(c):a[0].enqueue(c)}}),m=i((a,b)=>{var c=j().Graph;function d(a,b,c,d){for(var e=d;a.hasNode(e);)e=h(d);return c.dummy=b,a.setNode(e,c),e}b.exports={addBorderNode:function(a,b,c,e){let f={width:0,height:0};return arguments.length>=4&&(f.rank=c,f.order=e),d(a,"border",f,b)},addDummyNode:d,applyWithChunking:e,asNonCompoundGraph:function(a){let b=new c({multigraph:a.isMultigraph()}).setGraph(a.graph());return a.nodes().forEach(c=>{a.children(c).length||b.setNode(c,a.node(c))}),a.edges().forEach(c=>{b.setEdge(c,a.edge(c))}),b},buildLayerMatrix:function(a){let b=i(f(a)+1).map(()=>[]);return a.nodes().forEach(c=>{let d=a.node(c),e=d.rank;void 0!==e&&(b[e][d.order]=c)}),b},intersectRect:function(a,b){let c,d,e=a.x,f=a.y,g=b.x-e,h=b.y-f,i=a.width/2,j=a.height/2;if(!g&&!h)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(h)*i>Math.abs(g)*j?(h<0&&(j=-j),c=j*g/h,d=j):(g<0&&(i=-i),c=i,d=i*h/g),{x:e+c,y:f+d}},mapValues:function(a,b){let c=b;return"string"==typeof b&&(c=a=>a[b]),Object.entries(a).reduce((a,[b,d])=>(a[b]=c(d,b),a),{})},maxRank:f,normalizeRanks:function(a){let b=e(Math.min,a.nodes().map(b=>{let c=a.node(b).rank;return void 0===c?Number.MAX_VALUE:c}));a.nodes().forEach(c=>{let d=a.node(c);Object.hasOwn(d,"rank")&&(d.rank-=b)})},notime:function(a,b){return b()},partition:function(a,b){let c={lhs:[],rhs:[]};return a.forEach(a=>{b(a)?c.lhs.push(a):c.rhs.push(a)}),c},pick:function(a,b){let c={};for(let d of b)void 0!==a[d]&&(c[d]=a[d]);return c},predecessorWeights:function(a){let b=a.nodes().map(b=>{let c={};return a.inEdges(b).forEach(b=>{c[b.v]=(c[b.v]||0)+a.edge(b).weight}),c});return k(a.nodes(),b)},range:i,removeEmptyRanks:function(a){let b=e(Math.min,a.nodes().map(b=>a.node(b).rank).filter(a=>void 0!==a)),c=[];a.nodes().forEach(d=>{let e=a.node(d).rank-b;c[e]||(c[e]=[]),c[e].push(d)});let d=0,f=a.graph().nodeRankFactor;Array.from(c).forEach((b,c)=>{void 0===b&&c%f!=0?--d:void 0!==b&&d&&b.forEach(b=>a.node(b).rank+=d)})},simplify:function(a){let b=new c().setGraph(a.graph());return a.nodes().forEach(c=>b.setNode(c,a.node(c))),a.edges().forEach(c=>{let d=b.edge(c.v,c.w)||{weight:0,minlen:1},e=a.edge(c);b.setEdge(c.v,c.w,{weight:d.weight+e.weight,minlen:Math.max(d.minlen,e.minlen)})}),b},successorWeights:function(a){let b=a.nodes().map(b=>{let c={};return a.outEdges(b).forEach(b=>{c[b.w]=(c[b.w]||0)+a.edge(b).weight}),c});return k(a.nodes(),b)},time:function(a,b){let c=Date.now();try{return b()}finally{console.log(a+" time: "+(Date.now()-c)+"ms")}},uniqueId:h,zipObject:k};function e(a,b){if(!(b.length>65535))return a.apply(null,b);{let c=function(a,b=65535){let c=[];for(let d=0;d<a.length;d+=b){let e=a.slice(d,d+b);c.push(e)}return c}(b);return a.apply(null,c.map(b=>a.apply(null,b)))}}function f(a){return e(Math.max,a.nodes().map(b=>{let c=a.node(b).rank;return void 0===c?5e-324:c}))}var g=0;function h(a){return a+""+ ++g}function i(a,b,c=1){null==b&&(b=a,a=0);let d=a=>a<b;c<0&&(d=a=>b<a);let e=[];for(let b=a;d(b);b+=c)e.push(b);return e}function k(a,b){return a.reduce((a,c,d)=>(a[c]=b[d],a),{})}}),n=i((a,b)=>{var c=l(),d=m().uniqueId;b.exports={run:function(a){var b,e;let f,g,h;("greedy"===a.graph().acyclicer?c(a,(b=a,a=>b.edge(a).weight)):(f=[],g={},h={},(e=a).nodes().forEach(function a(b){Object.hasOwn(h,b)||(h[b]=!0,g[b]=!0,e.outEdges(b).forEach(b=>{Object.hasOwn(g,b.w)?f.push(b):a(b.w)}),delete g[b])}),f)).forEach(b=>{let c=a.edge(b);a.removeEdge(b),c.forwardName=b.name,c.reversed=!0,a.setEdge(b.w,b.v,c,d("rev"))})},undo:function(a){a.edges().forEach(b=>{let c=a.edge(b);if(c.reversed){a.removeEdge(b);let d=c.forwardName;delete c.reversed,delete c.forwardName,a.setEdge(b.w,b.v,c,d)}})}}}),o=i((a,b)=>{var c=m();b.exports={run:function(a){a.graph().dummyChains=[],a.edges().forEach(b=>(function(a,b){let d,e,f,g=b.v,h=a.node(g).rank,i=b.w,j=a.node(i).rank,k=b.name,l=a.edge(b),m=l.labelRank;if(j!==h+1){for(a.removeEdge(b),f=0,++h;h<j;++f,++h)l.points=[],e={width:0,height:0,edgeLabel:l,edgeObj:b,rank:h},d=c.addDummyNode(a,"edge",e,"_d"),h===m&&(e.width=l.width,e.height=l.height,e.dummy="edge-label",e.labelpos=l.labelpos),a.setEdge(g,d,{weight:l.weight},k),0===f&&a.graph().dummyChains.push(d),g=d;a.setEdge(g,i,{weight:l.weight},k)}})(a,b))},undo:function(a){a.graph().dummyChains.forEach(b=>{let c=a.node(b),d=c.edgeLabel,e;for(a.setEdge(c.edgeObj,d);c.dummy;)e=a.successors(b)[0],a.removeNode(b),d.points.push({x:c.x,y:c.y}),"edge-label"===c.dummy&&(d.x=c.x,d.y=c.y,d.width=c.width,d.height=c.height),b=e,c=a.node(b)})}}}),p=i((a,b)=>{var{applyWithChunking:c}=m();b.exports={longestPath:function(a){var b={};a.sources().forEach(function d(e){var f=a.node(e);if(Object.hasOwn(b,e))return f.rank;b[e]=!0;var g=c(Math.min,a.outEdges(e).map(b=>null==b?1/0:d(b.w)-a.edge(b).minlen));return g===1/0&&(g=0),f.rank=g})},slack:function(a,b){return a.node(b.w).rank-a.node(b.v).rank-a.edge(b).minlen}}}),q=i((a,b)=>{var c=j().Graph,d=p().slack;b.exports=function(a){var b,e,f,g,h=new c({directed:!1}),i=a.nodes()[0],j=a.nodeCount();for(h.setNode(i,{});b=h,e=a,b.nodes().forEach(function a(c){e.nodeEdges(c).forEach(f=>{var g=f.v,h=c===g?f.w:g;b.hasNode(h)||d(e,f)||(b.setNode(h,{}),b.setEdge(c,h,{}),a(h))})}),b.nodeCount()<j;)f=function(a,b){return b.edges().reduce((c,e)=>{let f=1/0;return a.hasNode(e.v)!==a.hasNode(e.w)&&(f=d(b,e)),f<c[0]?[f,e]:c},[1/0,null])[1]}(h,a),g=h.hasNode(f.v)?d(a,f):-d(a,f),function(a,b,c){a.nodes().forEach(a=>b.node(a).rank+=c)}(h,a,g);return h}}),r=i((a,b)=>{var c=q(),d=p().slack,e=p().longestPath,f=j().alg.preorder,g=j().alg.postorder,h=m().simplify;function i(a){e(a=h(a));var b,d,f=c(a);for(n(f),k(f,a);b=o(f);)d=r(f,a,b),s(f,a,b,d)}function k(a,b){var c=g(a,a.nodes());(c=c.slice(0,c.length-1)).forEach(c=>{var d,e,f,g;return d=a,e=b,f=c,g=d.node(f).parent,void(d.edge(f,g).cutvalue=l(d,e,f))})}function l(a,b,c){var d=a.node(c).parent,e=!0,f=b.edge(c,d),g=0;return f||(e=!1,f=b.edge(d,c)),g=f.weight,b.nodeEdges(c).forEach(f=>{var h=f.v===c,i=h?f.w:f.v;if(i!==d){var j,k,l,m=h===e,n=b.edge(f).weight;if(g+=m?n:-n,j=a,k=c,l=i,j.hasEdge(k,l)){var o=a.edge(c,i).cutvalue;g+=m?-o:o}}}),g}function n(a,b){arguments.length<2&&(b=a.nodes()[0]),function a(b,c,d,e,f){var g=d,h=b.node(e);return c[e]=!0,b.neighbors(e).forEach(f=>{Object.hasOwn(c,f)||(d=a(b,c,d,f,e))}),h.low=g,h.lim=d++,f?h.parent=f:delete h.parent,d}(a,{},1,b)}function o(a){return a.edges().find(b=>a.edge(b).cutvalue<0)}function r(a,b,c){var e=c.v,f=c.w;b.hasEdge(e,f)||(e=c.w,f=c.v);var g=a.node(e),h=a.node(f),i=g,j=!1;return g.lim>h.lim&&(i=h,j=!0),b.edges().filter(b=>j===t(a,a.node(b.v),i)&&j!==t(a,a.node(b.w),i)).reduce((a,c)=>d(b,c)<d(b,a)?c:a)}function s(a,b,c,d){var e,g,h,i,j=c.v,l=c.w;a.removeEdge(j,l),a.setEdge(d.v,d.w,{}),n(a),k(a,b),e=a,g=b,h=e.nodes().find(a=>!g.node(a).parent),(i=(i=f(e,h)).slice(1)).forEach(a=>{var b=e.node(a).parent,c=g.edge(a,b),d=!1;c||(c=g.edge(b,a),d=!0),g.node(a).rank=g.node(b).rank+(d?c.minlen:-c.minlen)})}function t(a,b,c){return c.low<=b.lim&&b.lim<=c.lim}b.exports=i,i.initLowLimValues=n,i.initCutValues=k,i.calcCutValue=l,i.leaveEdge=o,i.enterEdge=r,i.exchangeEdges=s}),s=i((a,b)=>{var c=p().longestPath,d=q(),e=r();b.exports=function(a){var b,g=a.graph().ranker;if(g instanceof Function)return g(a);switch(a.graph().ranker){case"network-simplex":default:e(a);break;case"tight-tree":c(b=a),d(b);break;case"longest-path":f(a);case"none":}};var f=c}),t=i((a,b)=>{b.exports=function(a){var b;let c,d,e=(c={},d=0,(b=a).children().forEach(function a(e){let f=d;b.children(e).forEach(a),c[e]={low:f,lim:d++}}),c);a.graph().dummyChains.forEach(b=>{let c=a.node(b),d=c.edgeObj,f=function(a,b,c,d){let e=[],f=[],g=Math.min(b[c].low,b[d].low),h=Math.max(b[c].lim,b[d].lim),i,j;i=c;do e.push(i=a.parent(i));while(i&&(b[i].low>g||h>b[i].lim))for(j=i,i=d;(i=a.parent(i))!==j;)f.push(i);return{path:e.concat(f.reverse()),lca:j}}(a,e,d.v,d.w),g=f.path,h=f.lca,i=0,j=g[0],k=!0;for(;b!==d.w;){if(c=a.node(b),k){for(;(j=g[i])!==h&&a.node(j).maxRank<c.rank;)i++;j===h&&(k=!1)}if(!k){for(;i<g.length-1&&a.node(j=g[i+1]).minRank<=c.rank;)i++;j=g[i]}a.setParent(b,j),b=a.successors(b)[0]}})}}),u=i((a,b)=>{var c=m();b.exports={run:function(a){var b,d,e;let f=c.addDummyNode(a,"root",{},"_root"),g=(d={},(b=a).children().forEach(a=>(function a(c,e){var f=b.children(c);f&&f.length&&f.forEach(b=>a(b,e+1)),d[c]=e})(a,1)),d),h=Object.values(g),i=c.applyWithChunking(Math.max,h)-1,j=2*i+1;a.graph().nestingRoot=f,a.edges().forEach(b=>a.edge(b).minlen*=j);let k=(e=a).edges().reduce((a,b)=>a+e.edge(b).weight,0)+1;a.children().forEach(b=>(function a(b,d,e,f,g,h,i){let j=b.children(i);if(!j.length){i!==d&&b.setEdge(d,i,{weight:0,minlen:e});return}let k=c.addBorderNode(b,"_bt"),l=c.addBorderNode(b,"_bb"),m=b.node(i);b.setParent(k,i),m.borderTop=k,b.setParent(l,i),m.borderBottom=l,j.forEach(c=>{a(b,d,e,f,g,h,c);let j=b.node(c),m=j.borderTop?j.borderTop:c,n=j.borderBottom?j.borderBottom:c,o=j.borderTop?f:2*f,p=m!==n?1:g-h[i]+1;b.setEdge(k,m,{weight:o,minlen:p,nestingEdge:!0}),b.setEdge(n,l,{weight:o,minlen:p,nestingEdge:!0})}),b.parent(i)||b.setEdge(d,k,{weight:0,minlen:g+h[i]})})(a,f,j,k,i,g,b)),a.graph().nodeRankFactor=j},cleanup:function(a){var b=a.graph();a.removeNode(b.nestingRoot),delete b.nestingRoot,a.edges().forEach(b=>{a.edge(b).nestingEdge&&a.removeEdge(b)})}}}),v=i((a,b)=>{var c=m();function d(a,b,d,e,f,g){let h=f[b][g-1],i=c.addDummyNode(a,"border",{width:0,height:0,rank:g,borderType:b},d);f[b][g]=i,a.setParent(i,e),h&&a.setEdge(h,i,{weight:1})}b.exports=function(a){a.children().forEach(function b(c){let e=a.children(c),f=a.node(c);if(e.length&&e.forEach(b),Object.hasOwn(f,"minRank")){f.borderLeft=[],f.borderRight=[];for(let b=f.minRank,e=f.maxRank+1;b<e;++b)d(a,"borderLeft","_bl",c,f,b),d(a,"borderRight","_br",c,f,b)}})}}),w=i((a,b)=>{function c(a){a.nodes().forEach(b=>d(a.node(b))),a.edges().forEach(b=>d(a.edge(b)))}function d(a){let b=a.width;a.width=a.height,a.height=b}function e(a){a.y=-a.y}function f(a){let b=a.x;a.x=a.y,a.y=b}b.exports={adjust:function(a){let b=a.graph().rankdir.toLowerCase();("lr"===b||"rl"===b)&&c(a)},undo:function(a){var b,d;let g=a.graph().rankdir.toLowerCase();("bt"===g||"rl"===g)&&((b=a).nodes().forEach(a=>e(b.node(a))),b.edges().forEach(a=>{let c=b.edge(a);c.points.forEach(e),Object.hasOwn(c,"y")&&e(c)})),("lr"===g||"rl"===g)&&((d=a).nodes().forEach(a=>f(d.node(a))),d.edges().forEach(a=>{let b=d.edge(a);b.points.forEach(f),Object.hasOwn(b,"x")&&f(b)}),c(a))}}}),x=i((a,b)=>{var c=m();b.exports=function(a){let b={},d=a.nodes().filter(b=>!a.children(b).length),e=d.map(b=>a.node(b).rank),f=c.applyWithChunking(Math.max,e),g=c.range(f+1).map(()=>[]);return d.sort((b,c)=>a.node(b).rank-a.node(c).rank).forEach(function c(d){b[d]||(b[d]=!0,g[a.node(d).rank].push(d),a.successors(d).forEach(c))}),g}}),y=i((a,b)=>{var c=m().zipObject;b.exports=function(a,b){let d=0;for(let e=1;e<b.length;++e)d+=function(a,b,d){let e=c(d,d.map((a,b)=>b)),f=b.flatMap(b=>a.outEdges(b).map(b=>({pos:e[b.w],weight:a.edge(b).weight})).sort((a,b)=>a.pos-b.pos)),g=1;for(;g<d.length;)g<<=1;let h=2*g-1;g-=1;let i=Array(h).fill(0),j=0;return f.forEach(a=>{let b=a.pos+g;i[b]+=a.weight;let c=0;for(;b>0;)b%2&&(c+=i[b+1]),b=b-1>>1,i[b]+=a.weight;j+=a.weight*c}),j}(a,b[e-1],b[e]);return d}}),z=i((a,b)=>{b.exports=function(a,b=[]){return b.map(b=>{let c=a.inEdges(b);if(!c.length)return{v:b};{let d=c.reduce((b,c)=>{let d=a.edge(c),e=a.node(c.v);return{sum:b.sum+d.weight*e.order,weight:b.weight+d.weight}},{sum:0,weight:0});return{v:b,barycenter:d.sum/d.weight,weight:d.weight}}})}}),A=i((a,b)=>{var c=m();b.exports=function(a,b){let d={};return a.forEach((a,b)=>{let c=d[a.v]={indegree:0,in:[],out:[],vs:[a.v],i:b};void 0!==a.barycenter&&(c.barycenter=a.barycenter,c.weight=a.weight)}),b.edges().forEach(a=>{let b=d[a.v],c=d[a.w];void 0!==b&&void 0!==c&&(c.indegree++,b.out.push(d[a.w]))}),function(a){let b=[];for(;a.length;){let c=a.pop();b.push(c),c.in.reverse().forEach(function(a){return b=>{b.merged||(void 0===b.barycenter||void 0===a.barycenter||b.barycenter>=a.barycenter)&&function(a,b){let c=0,d=0;a.weight&&(c+=a.barycenter*a.weight,d+=a.weight),b.weight&&(c+=b.barycenter*b.weight,d+=b.weight),a.vs=b.vs.concat(a.vs),a.barycenter=c/d,a.weight=d,a.i=Math.min(b.i,a.i),b.merged=!0}(a,b)}}(c)),c.out.forEach(function(b){return c=>{c.in.push(b),0==--c.indegree&&a.push(c)}}(c))}return b.filter(a=>!a.merged).map(a=>c.pick(a,["vs","i","barycenter","weight"]))}(Object.values(d).filter(a=>!a.indegree))}}),B=i((a,b)=>{var c=m();function d(a,b,c){let d;for(;b.length&&(d=b[b.length-1]).i<=c;)b.pop(),a.push(d.vs),c++;return c}b.exports=function(a,b){var e;let f=c.partition(a,a=>Object.hasOwn(a,"barycenter")),g=f.lhs,h=f.rhs.sort((a,b)=>b.i-a.i),i=[],j=0,k=0,l=0;g.sort((e=!!b,(a,b)=>a.barycenter<b.barycenter?-1:a.barycenter>b.barycenter?1:e?b.i-a.i:a.i-b.i)),l=d(i,h,l),g.forEach(a=>{l+=a.vs.length,i.push(a.vs),j+=a.barycenter*a.weight,k+=a.weight,l=d(i,h,l)});let m={vs:i.flat(!0)};return k&&(m.barycenter=j/k,m.weight=k),m}}),C=i((a,b)=>{var c=z(),d=A(),e=B();b.exports=function a(b,f,g,h){var i,j;let k=b.children(f),l=b.node(f),m=l?l.borderLeft:void 0,n=l?l.borderRight:void 0,o={};m&&(k=k.filter(a=>a!==m&&a!==n));let p=c(b,k);p.forEach(c=>{if(b.children(c.v).length){var d,e;let f=a(b,c.v,g,h);o[c.v]=f,Object.hasOwn(f,"barycenter")&&(d=c,e=f,void 0!==d.barycenter?(d.barycenter=(d.barycenter*d.weight+e.barycenter*e.weight)/(d.weight+e.weight),d.weight+=e.weight):(d.barycenter=e.barycenter,d.weight=e.weight))}});let q=d(p,g);i=q,j=o,i.forEach(a=>{a.vs=a.vs.flatMap(a=>j[a]?j[a].vs:a)});let r=e(q,h);if(m&&(r.vs=[m,r.vs,n].flat(!0),b.predecessors(m).length)){let a=b.node(b.predecessors(m)[0]),c=b.node(b.predecessors(n)[0]);Object.hasOwn(r,"barycenter")||(r.barycenter=0,r.weight=0),r.barycenter=(r.barycenter*r.weight+a.order+c.order)/(r.weight+2),r.weight+=2}return r}}),D=i((a,b)=>{var c=j().Graph,d=m();b.exports=function(a,b,e,f){f||(f=a.nodes());let g=function(a){for(var b;a.hasNode(b=d.uniqueId("_root")););return b}(a),h=new c({compound:!0}).setGraph({root:g}).setDefaultNodeLabel(b=>a.node(b));return f.forEach(c=>{let d=a.node(c),f=a.parent(c);(d.rank===b||d.minRank<=b&&b<=d.maxRank)&&(h.setNode(c),h.setParent(c,f||g),a[e](c).forEach(b=>{let d=b.v===c?b.w:b.v,e=h.edge(d,c),f=void 0!==e?e.weight:0;h.setEdge(d,c,{weight:a.edge(b).weight+f})}),Object.hasOwn(d,"minRank")&&h.setNode(c,{borderLeft:d.borderLeft[b],borderRight:d.borderRight[b]}))}),h}}),E=i((a,b)=>{b.exports=function(a,b,c){let d={},e;c.forEach(c=>{let f=a.parent(c),g,h;for(;f;){if((g=a.parent(f))?(h=d[g],d[g]=f):(h=e,e=f),h&&h!==f)return void b.setEdge(h,f);f=g}})}}),F=i((a,b)=>{var c=x(),d=y(),e=C(),f=D(),g=E(),h=j().Graph,i=m();function k(a,b,c){let d=new Map,e=(a,b)=>{d.has(a)||d.set(a,[]),d.get(a).push(b)};for(let b of a.nodes()){let c=a.node(b);if("number"==typeof c.rank&&e(c.rank,b),"number"==typeof c.minRank&&"number"==typeof c.maxRank)for(let a=c.minRank;a<=c.maxRank;a++)a!==c.rank&&e(a,b)}return b.map(function(b){return f(a,b,c,d.get(b)||[])})}function l(a,b){Object.values(b).forEach(b=>b.forEach((b,c)=>a.node(b).order=c))}b.exports=function a(b,f={}){if("function"==typeof f.customOrder)return void f.customOrder(b,a);let j=i.maxRank(b),m=k(b,i.range(1,j+1),"inEdges"),n=k(b,i.range(j-1,-1,-1),"outEdges"),o=c(b);if(l(b,o),f.disableOptimalOrderHeuristic)return;let p=1/0,q,r=f.constraints||[];for(let a=0,c=0;c<4;++a,++c){(function(a,b,c){let d=new h;a.forEach(function(a){c.forEach(a=>d.setEdge(a.left,a.right));let f=a.graph().root,h=e(a,f,d,b);h.vs.forEach((b,c)=>a.node(b).order=c),g(a,d,h.vs)})})(a%2?m:n,a%4>=2,r),o=i.buildLayerMatrix(b);let f=d(b,o);f<p?(c=0,q=Object.assign({},o),p=f):f===p&&(q=structuredClone(o))}l(b,q)}}),G=i((a,b)=>{var c=j().Graph,d=m();function e(a,b){let c={};return b.length&&b.reduce(function(b,d){let e=0,f=0,h=b.length,i=d[d.length-1];return d.forEach((b,j)=>{let k=function(a,b){if(a.node(b).dummy)return a.predecessors(b).find(b=>a.node(b).dummy)}(a,b),l=k?a.node(k).order:h;(k||b===i)&&(d.slice(f,j+1).forEach(b=>{a.predecessors(b).forEach(d=>{let f=a.node(d),h=f.order;(h<e||l<h)&&!(f.dummy&&a.node(b).dummy)&&g(c,d,b)})}),f=j+1,e=l)}),d}),c}function f(a,b){let c={};function e(b,e,f,h,i){let j;d.range(e,f).forEach(d=>{j=b[d],a.node(j).dummy&&a.predecessors(j).forEach(b=>{let d=a.node(b);d.dummy&&(d.order<h||d.order>i)&&g(c,b,j)})})}return b.length&&b.reduce(function(b,c){let d=-1,f,g=0;return c.forEach((h,i)=>{if("border"===a.node(h).dummy){let b=a.predecessors(h);b.length&&(f=a.node(b[0]).order,e(c,g,i,d,f),g=i,d=f)}e(c,g,c.length,f,b.length)}),c}),c}function g(a,b,c){if(b>c){let a=b;b=c,c=a}let d=a[b];d||(a[b]=d={}),d[c]=!0}function h(a,b,c){if(b>c){let a=b;b=c,c=a}return!!a[b]&&Object.hasOwn(a[b],c)}function i(a,b,c,d){let e={},f={},g={};return b.forEach(a=>{a.forEach((a,b)=>{e[a]=a,f[a]=a,g[a]=b})}),b.forEach(a=>{let b=-1;a.forEach(a=>{let i=d(a);if(i.length){let d=((i=i.sort((a,b)=>g[a]-g[b])).length-1)/2;for(let j=Math.floor(d),k=Math.ceil(d);j<=k;++j){let d=i[j];f[a]===a&&b<g[d]&&!h(c,a,d)&&(f[d]=a,f[a]=e[a]=e[d],b=g[d])}}})}),{root:e,align:f}}function k(a,b,d,e,f){var g,h,i,j,k,l,m;let n,o,p,q={},r=(g=a,h=b,i=d,j=f,n=new c,p=(k=(o=g.graph()).nodesep,l=o.edgesep,m=j,(a,b,c)=>{let d=a.node(b),e=a.node(c),f,g;if(f=0+d.width/2,Object.hasOwn(d,"labelpos"))switch(d.labelpos.toLowerCase()){case"l":g=-d.width/2;break;case"r":g=d.width/2}if(g&&(f+=m?g:-g),g=0,f+=(d.dummy?l:k)/2,f+=(e.dummy?l:k)/2,f+=e.width/2,Object.hasOwn(e,"labelpos"))switch(e.labelpos.toLowerCase()){case"l":g=e.width/2;break;case"r":g=-e.width/2}return g&&(f+=m?g:-g),g=0,f}),h.forEach(a=>{let b;a.forEach(a=>{let c=i[a];if(n.setNode(c),b){var d=i[b],e=n.edge(d,c);n.setEdge(d,c,Math.max(p(g,a,b),e||0))}b=a})}),n),s=f?"borderLeft":"borderRight";function t(a,b){let c=r.nodes().slice(),d={},e=c.pop();for(;e;){if(d[e])a(e);else for(let a of(d[e]=!0,c.push(e),b(e)))c.push(a);e=c.pop()}}return t(function(a){q[a]=r.inEdges(a).reduce((a,b)=>Math.max(a,q[b.v]+r.edge(b)),0)},r.predecessors.bind(r)),t(function(b){let c=r.outEdges(b).reduce((a,b)=>Math.min(a,q[b.w]-r.edge(b)),1/0),d=a.node(b);c!==1/0&&d.borderType!==s&&(q[b]=Math.max(q[b],c))},r.successors.bind(r)),Object.keys(e).forEach(a=>q[a]=q[d[a]]),q}function l(a,b){return Object.values(b).reduce((b,c)=>{let d=-1/0,e=1/0;Object.entries(c).forEach(([b,c])=>{var f,g;let h=(f=a,g=b,f.node(g).width/2);d=Math.max(c+h,d),e=Math.min(c-h,e)});let f=d-e;return f<b[0]&&(b=[f,c]),b},[1/0,null])[1]}function n(a,b){let c=Object.values(b),e=d.applyWithChunking(Math.min,c),f=d.applyWithChunking(Math.max,c);["u","d"].forEach(c=>{["l","r"].forEach(g=>{let h=c+g,i=a[h];if(i===b)return;let j=Object.values(i),k=e-d.applyWithChunking(Math.min,j);"l"!==g&&(k=f-d.applyWithChunking(Math.max,j)),k&&(a[h]=d.mapValues(i,a=>a+k))})})}function o(a,b){return d.mapValues(a.ul,(c,d)=>{if(b)return a[b.toLowerCase()][d];{let b=Object.values(a).map(a=>a[d]).sort((a,b)=>a-b);return(b[1]+b[2])/2}})}b.exports={positionX:function(a){let b=d.buildLayerMatrix(a),c=Object.assign(e(a,b),f(a,b)),g={},h;["u","d"].forEach(e=>{h="u"===e?b:Object.values(b).reverse(),["l","r"].forEach(b=>{"r"===b&&(h=h.map(a=>Object.values(a).reverse()));let f=("u"===e?a.predecessors:a.successors).bind(a),j=i(a,h,c,f),l=k(a,h,j.root,j.align,"r"===b);"r"===b&&(l=d.mapValues(l,a=>-a)),g[e+b]=l})});let j=l(a,g);return n(g,j),o(g,a.graph().align)},findType1Conflicts:e,findType2Conflicts:f,addConflict:g,hasConflict:h,verticalAlignment:i,horizontalCompaction:k,alignCoordinates:n,findSmallestWidthAlignment:l,balance:o}}),H=i((a,b)=>{var c=m(),d=G().positionX;b.exports=function(a){var b;let e,f,g,h;b=a=c.asNonCompoundGraph(a),e=c.buildLayerMatrix(b),f=b.graph().ranksep,g=b.graph().rankalign,h=0,e.forEach(a=>{let c=a.reduce((a,c)=>{let d=b.node(c).height;return a>d?a:d},0);a.forEach(a=>{let d=b.node(a);"top"===g?d.y=h+d.height/2:"bottom"===g?d.y=h+c-d.height/2:d.y=h+c/2}),h+=c+f}),Object.entries(d(a)).forEach(([b,c])=>a.node(b).x=c)}}),I=i((a,b)=>{var c=n(),d=o(),e=s(),f=m().normalizeRanks,g=t(),h=m().removeEmptyRanks,i=u(),k=v(),l=w(),p=F(),q=H(),r=m(),x=j().Graph;b.exports=function(a,b={}){let j=b.debugTiming?r.time:r.notime;return j("layout",()=>{let m=j(" buildLayoutGraph",()=>{var b;let c,d;return b=a,c=new x({multigraph:!0,compound:!0}),d=J(b.graph()),c.setGraph(Object.assign({},z,I(d,y),r.pick(d,A))),b.nodes().forEach(a=>{let d=I(J(b.node(a)),B);Object.keys(C).forEach(a=>{void 0===d[a]&&(d[a]=C[a])}),c.setNode(a,d),c.setParent(a,b.parent(a))}),b.edges().forEach(a=>{let d=J(b.edge(a));c.setEdge(a,Object.assign({},E,I(d,D),r.pick(d,G)))}),c});return j(" runLayout",()=>{var a,n,o;return a=m,n=j,o=b,void(n(" makeSpaceForEdgeLabels",()=>{var b;let c;return c=(b=a).graph(),void(c.ranksep/=2,b.edges().forEach(a=>{let d=b.edge(a);d.minlen*=2,"c"!==d.labelpos.toLowerCase()&&("TB"===c.rankdir||"BT"===c.rankdir?d.width+=d.labeloffset:d.height+=d.labeloffset)}))}),n(" removeSelfEdges",()=>{var b;(b=a).edges().forEach(a=>{if(a.v===a.w){var c=b.node(a.v);c.selfEdges||(c.selfEdges=[]),c.selfEdges.push({e:a,label:b.edge(a)}),b.removeEdge(a)}})}),n(" acyclic",()=>c.run(a)),n(" nestingGraph.run",()=>i.run(a)),n(" rank",()=>e(r.asNonCompoundGraph(a))),n(" injectEdgeLabelProxies",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a);if(c.width&&c.height){let c=b.node(a.v),d={rank:(b.node(a.w).rank-c.rank)/2+c.rank,e:a};r.addDummyNode(b,"edge-proxy",d,"_ep")}})}),n(" removeEmptyRanks",()=>h(a)),n(" nestingGraph.cleanup",()=>i.cleanup(a)),n(" normalizeRanks",()=>f(a)),n(" assignRankMinMax",()=>{var b;let c;return c=0,void((b=a).nodes().forEach(a=>{let d=b.node(a);d.borderTop&&(d.minRank=b.node(d.borderTop).rank,d.maxRank=b.node(d.borderBottom).rank,c=Math.max(c,d.maxRank))}),b.graph().maxRank=c)}),n(" removeEdgeLabelProxies",()=>{var b;(b=a).nodes().forEach(a=>{let c=b.node(a);"edge-proxy"===c.dummy&&(b.edge(c.e).labelRank=c.rank,b.removeNode(a))})}),n(" normalize.run",()=>d.run(a)),n(" parentDummyChains",()=>g(a)),n(" addBorderSegments",()=>k(a)),n(" order",()=>p(a,o)),n(" insertSelfEdges",()=>{var b;return b=a,void r.buildLayerMatrix(b).forEach(a=>{var c=0;a.forEach((a,d)=>{var e=b.node(a);e.order=d+c,(e.selfEdges||[]).forEach(a=>{r.addDummyNode(b,"selfedge",{width:a.label.width,height:a.label.height,rank:e.rank,order:d+ ++c,e:a.e,label:a.label},"_se")}),delete e.selfEdges})})}),n(" adjustCoordinateSystem",()=>l.adjust(a)),n(" position",()=>q(a)),n(" positionSelfEdges",()=>{var b;(b=a).nodes().forEach(a=>{var c=b.node(a);if("selfedge"===c.dummy){var d=b.node(c.e.v),e=d.x+d.width/2,f=d.y,g=c.x-e,h=d.height/2;b.setEdge(c.e,c.label),b.removeNode(a),c.label.points=[{x:e+2*g/3,y:f-h},{x:e+5*g/6,y:f-h},{x:e+g,y:f},{x:e+5*g/6,y:f+h},{x:e+2*g/3,y:f+h}],c.label.x=c.x,c.label.y=c.y}})}),n(" removeBorderNodes",()=>{var b;(b=a).nodes().forEach(a=>{if(b.children(a).length){let c=b.node(a),d=b.node(c.borderTop),e=b.node(c.borderBottom),f=b.node(c.borderLeft[c.borderLeft.length-1]),g=b.node(c.borderRight[c.borderRight.length-1]);c.width=Math.abs(g.x-f.x),c.height=Math.abs(e.y-d.y),c.x=f.x+c.width/2,c.y=d.y+c.height/2}}),b.nodes().forEach(a=>{"border"===b.node(a).dummy&&b.removeNode(a)})}),n(" normalize.undo",()=>d.undo(a)),n(" fixupEdgeLabelCoords",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a);if(Object.hasOwn(c,"x"))switch(("l"===c.labelpos||"r"===c.labelpos)&&(c.width-=c.labeloffset),c.labelpos){case"l":c.x-=c.width/2+c.labeloffset;break;case"r":c.x+=c.width/2+c.labeloffset}})}),n(" undoCoordinateSystem",()=>l.undo(a)),n(" translateGraph",()=>(function(a){let b=1/0,c=0,d=1/0,e=0,f=a.graph(),g=f.marginx||0,h=f.marginy||0;function i(a){let f=a.x,g=a.y,h=a.width,i=a.height;b=Math.min(b,f-h/2),c=Math.max(c,f+h/2),d=Math.min(d,g-i/2),e=Math.max(e,g+i/2)}a.nodes().forEach(b=>i(a.node(b))),a.edges().forEach(b=>{let c=a.edge(b);Object.hasOwn(c,"x")&&i(c)}),b-=g,d-=h,a.nodes().forEach(c=>{let e=a.node(c);e.x-=b,e.y-=d}),a.edges().forEach(c=>{let e=a.edge(c);e.points.forEach(a=>{a.x-=b,a.y-=d}),Object.hasOwn(e,"x")&&(e.x-=b),Object.hasOwn(e,"y")&&(e.y-=d)}),f.width=c-b+g,f.height=e-d+h})(a)),n(" assignNodeIntersects",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a),d=b.node(a.v),e=b.node(a.w),f,g;c.points?(f=c.points[0],g=c.points[c.points.length-1]):(c.points=[],f=e,g=d),c.points.unshift(r.intersectRect(d,f)),c.points.push(r.intersectRect(e,g))})}),n(" reversePoints",()=>{var b;(b=a).edges().forEach(a=>{let c=b.edge(a);c.reversed&&c.points.reverse()})}),n(" acyclic.undo",()=>c.undo(a)))}),j(" updateInputGraph",()=>{var b,c;return b=a,c=m,void(b.nodes().forEach(a=>{let d=b.node(a),e=c.node(a);d&&(d.x=e.x,d.y=e.y,d.order=e.order,d.rank=e.rank,c.children(a).length&&(d.width=e.width,d.height=e.height))}),b.edges().forEach(a=>{let d=b.edge(a),e=c.edge(a);d.points=e.points,Object.hasOwn(e,"x")&&(d.x=e.x,d.y=e.y)}),b.graph().width=c.graph().width,b.graph().height=c.graph().height)}),m})};var y=["nodesep","edgesep","ranksep","marginx","marginy"],z={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb",rankalign:"center"},A=["acyclicer","ranker","rankdir","align","rankalign"],B=["width","height","rank"],C={width:0,height:0},D=["minlen","weight","width","height","labeloffset"],E={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},G=["labelpos"];function I(a,b){return r.mapValues(r.pick(a,b),Number)}function J(a){var b={};return a&&Object.entries(a).forEach(([a,c])=>{"string"==typeof a&&(a=a.toLowerCase()),b[a]=c}),b}}),J=i((a,b)=>{var c=m(),d=j().Graph;b.exports={debugOrdering:function(a){let b=c.buildLayerMatrix(a),e=new d({compound:!0,multigraph:!0}).setGraph({});return a.nodes().forEach(b=>{e.setNode(b,{label:b}),e.setParent(b,"layer"+a.node(b).rank)}),a.edges().forEach(a=>e.setEdge(a.v,a.w,{},a.name)),b.forEach((a,b)=>{e.setNode("layer"+b,{rank:"same"}),a.reduce((a,b)=>(e.setEdge(a,b,{style:"invis"}),b))}),e}}}),K=i((a,b)=>{b.exports="2.0.4"});let L=i((a,b)=>{b.exports={graphlib:j(),layout:I(),debug:J(),util:{time:m().time,notime:m().notime},version:K()}})(),M={direction:"LR",ranksep:200,nodesep:30},N={featureNode:{width:388,height:140},repositoryNode:{width:400,height:140},applicationNode:{width:416,height:220}};function O(a,b){let c=a.data;return c&&"number"==typeof c.width&&"number"==typeof c.height?{width:c.width,height:c.height}:N[a.type??""]??b}var P=a.i(93354),Q=a.i(81719),R=a.i(14703),S=a.i(79372),T=a.i(29918);function U(a,b,c,d,e,f,g){[...a].sort((a,b)=>(a.feature.createdAt instanceof Date?a.feature.createdAt.getTime():Number(a.feature.createdAt))-(b.feature.createdAt instanceof Date?b.feature.createdAt.getTime():Number(b.feature.createdAt))).forEach(({feature:a,run:h})=>{let i;if(a.parentId&&"Blocked"===a.lifecycle){let b=c.find(b=>b.feature.id===a.parentId);b&&(i=b.feature.name)}let j=(h?.status===Q.AgentRunStatus.running||h?.status===Q.AgentRunStatus.pending)&&h?.pid?(0,S.isProcessAlive)(h.pid):void 0,k={name:a.name,description:a.description??a.slug,featureId:a.id,lifecycle:(0,R.deriveLifecycle)(a,h),repositoryPath:a.repositoryPath,branch:a.branch,worktreePath:a.worktreePath??(0,T.computeWorktreePath)(a.repositoryPath,a.branch),specPath:a.specPath,state:(0,R.deriveNodeState)(a,h,void 0!==j?{isPidAlive:j}:void 0),progress:(0,R.deriveProgress)(a),summary:a.description,userQuery:a.userQuery,createdAt:a.createdAt instanceof Date?a.createdAt.getTime():a.createdAt,...a.fast&&{fastMode:!0},approvalGates:a.approvalGates,push:a.push,openPr:a.openPr,forkAndPr:a.forkAndPr,commitSpecs:a.commitSpecs,enableEvidence:a.enableEvidence??g?.enableEvidence??!1,commitEvidence:a.commitEvidence??g?.commitEvidence??!1,ciWatchEnabled:a.ciWatchEnabled??g?.ciWatchEnabled??!0,...f&&{repositoryName:f},...h?.agentType&&{agentType:h.agentType},...h?.modelId&&{modelId:h.modelId},...h?.error&&{errorMessage:h.error},...i&&{blockedBy:i},...null!=a.agentRunId&&{hasAgentRun:!0},...null!=a.plan&&{hasPlan:!0},...a.pr&&{pr:{url:a.pr.url,number:a.pr.number,status:a.pr.status,ciStatus:a.pr.ciStatus,commitHash:a.pr.commitHash,mergeable:a.pr.mergeable}}},l=`feat-${a.id}`;d.push({id:l,type:"featureNode",position:{x:0,y:0},data:k}),a.parentId||e.push({id:`edge-${b}-${l}`,source:b,target:l,style:{strokeDasharray:"5 5"}})})}let V=(0,e.promisify)(d.execFile),W=new Map;async function X(a,b){try{let{stdout:c}=await V("git",b,f?{cwd:a,windowsHide:!0}:{cwd:a});return c.trim()}catch{return null}}async function Y(a){try{let b=await X(a.path,["rev-parse","HEAD"]);if(!b)return void W.set(a.path,{kind:"not-a-repo",checkedAt:Date.now()});let[c,d]=await Promise.all([X(a.path,["symbolic-ref","--short","HEAD"]),X(a.path,["log","-1",`--format=%s\x1f%an`])]);if(!c)return;let[e,f]=(d??"").split("\x1f"),g=null,h=await X(a.path,["symbolic-ref","--short","refs/remotes/origin/HEAD"]),i=h?.replace("origin/","")??null;if(i){let b=await X(a.path,["rev-list","--count",`${c}..origin/${i}`]);g=null!==b?parseInt(b,10):null,isNaN(g)&&(g=null)}W.set(a.path,{kind:"repo",sha:b,checkedAt:Date.now(),data:{branch:c,commitMessage:e??"unknown",committer:f??"unknown",behindCount:g}})}catch{}}async function Z(){let a=(0,g.resolve)("ListFeaturesUseCase"),b=(0,g.resolve)("ListRepositoriesUseCase"),c=(0,g.resolve)("IAgentRunRepository"),d=null;try{d=(0,g.resolve)("ListApplicationsUseCase")}catch{}let[e,f,i]=await Promise.all([a.execute({includeArchived:!0}),b.execute(),d?d.execute():Promise.resolve([])]),j=new Map,k=new Map;for(let a of f){let b=function(a){let b=W.get(a.path),c=Date.now();return b?(c-b.checkedAt>=3e4&&Y(a),"not-a-repo"===b.kind)?{status:"not-a-repo"}:{status:"ready",data:b.data}:(Y(a),{status:"loading"})}(a);k.set(a.path,b.status),"ready"===b.status&&j.set(a.path,b.data)}try{(0,g.resolve)("AutoResolveMergedBranchesUseCase").execute(e)}catch{}let l=await Promise.all(e.map(async a=>{let b=a.agentRunId?await c.findById(a.agentRunId):null;return{feature:a,run:b}})),{workflow:m}=(0,h.getSettings)(),{nodes:n,edges:o}=function(a,b,c){let d=a=>a.replace(/\\/g,"/"),e={};b.forEach(a=>{let b=d(a.feature.repositoryPath);e[b]||(e[b]=[]),e[b].push(a)});let f=[],g=[],h=new Set;for(let i of a){let a=d(i.path);h.add(a);let j=`repo-${i.id}`,k=c?.repoGitInfo?.get(i.path),l=c?.repoGitStatus?.get(i.path)??"loading";f.push({id:j,type:"repositoryNode",position:{x:0,y:0},data:{name:i.name,repositoryPath:a,id:i.id,createdAt:i.createdAt instanceof Date?i.createdAt.getTime():Number(i.createdAt),gitInfoStatus:l,...k&&{branch:k.branch,commitMessage:k.commitMessage,committer:k.committer,behindCount:k.behindCount}}}),U(e[a]??[],j,b,f,g,i.name,c)}for(let[a,d]of Object.entries(e)){if(h.has(a))continue;let e=`virtual-repo-${a}`,i=a.split("/").filter(Boolean).at(-1)??a;f.push({id:e,type:"repositoryNode",position:{x:0,y:0},data:{name:i,repositoryPath:a}}),U(d,e,b,f,g,i,c)}for(let{feature:a}of b)if(a.parentId){let b=`feat-${a.parentId}`,c=`feat-${a.id}`;f.some(a=>a.id===b)&&f.some(a=>a.id===c)&&g.push({id:`dep-${b}-${c}`,source:b,target:c,type:"dependencyEdge"})}if(c?.applications)for(let a of c.applications){let b=`app-${a.id}`;f.push({id:b,type:"applicationNode",position:{x:0,y:0},data:{id:a.id,name:a.name,description:a.description,status:a.status,repositoryPath:d(a.repositoryPath),additionalPathCount:a.additionalPaths?.length??0}})}return{nodes:f,edges:g}}(f,l,{enableEvidence:m.enableEvidence,commitEvidence:m.commitEvidence,ciWatchEnabled:m.ciWatchEnabled,repoGitInfo:j,repoGitStatus:k,applications:i}),p=null;try{p=(0,g.resolve)("IDeploymentService")}catch{}if(p)for(let a of n){if("featureNode"!==a.type)continue;let b=a.data,c=p.getStatus(b.featureId);c&&"Stopped"!==c.state&&(b.deployment={status:c.state,...c.url&&{url:c.url}})}let{dir:q}=(0,P.getLanguagePreference)();return function(a,b,c={}){let{direction:d="TB",nodeSize:e={width:172,height:36},ranksep:f=80,nodesep:g=30}=c;if(0===a.length)return{nodes:[],edges:[]};let h=new L.graphlib.Graph({multigraph:!0});h.setDefaultEdgeLabel(()=>({})),h.setGraph({rankdir:d,ranksep:f,nodesep:g});let i=new Set;for(let a of b)i.add(a.source),i.add(a.target);let j=a.filter(a=>i.has(a.id)),k=a.filter(a=>!i.has(a.id));for(let a of j){let b=O(a,e);h.setNode(a.id,{width:b.width,height:b.height})}for(let a of b)h.hasNode(a.source)&&h.hasNode(a.target)&&h.setEdge(a.source,a.target,{},a.id);L.layout(h);let{targetPosition:l,sourcePosition:m}=function(a){switch(a){case"LR":return{targetPosition:"left",sourcePosition:"right"};case"RL":return{targetPosition:"right",sourcePosition:"left"};case"BT":return{targetPosition:"bottom",sourcePosition:"top"};default:return{targetPosition:"top",sourcePosition:"bottom"}}}(d),n="LR"===d||"RL"===d,o=new Map;for(let a of j){let b=h.node(a.id),c=O(a,e);o.set(a.id,{cx:b.x,cy:b.y,w:c.width,h:c.height})}let p=0;for(let a of o.values()){p=n?a.cx:a.cy;break}for(let a of k){let b=O(a,e);o.set(a.id,{cx:n?p:0,cy:n?0:p,w:b.width,h:b.height})}let q=new Map;for(let a of b)o.has(a.source)&&o.has(a.target)&&(q.has(a.source)||q.set(a.source,[]),q.get(a.source).push(a.target));let r=new Map;for(let b=0;b<a.length;b++)r.set(a[b].id,b);for(let[,a]of q)a.sort((a,b)=>(r.get(a)??0)-(r.get(b)??0));let s=new Set;for(let a of q.values())for(let b of a)s.add(b);let t=[...[...i].filter(a=>o.has(a)&&!s.has(a)),...k.map(a=>a.id)];t.sort((a,b)=>(r.get(a)??0)-(r.get(b)??0));let u=new Map;for(let a of t)!function a(b){if(u.has(b))return u.get(b);let c=o.get(b),d=n?c.h:c.w,e=q.get(b);if(!e||0===e.length)return u.set(b,d),d;let f=0;for(let b of e)f+=a(b);let h=Math.max(d,f+=(e.length-1)*g);return u.set(b,h),h}(a);let v=0;for(let a of t){let b=u.get(a)??0;!function a(b,c){let d=o.get(b);n?d.cy=c:d.cx=c;let e=q.get(b);if(!e||0===e.length)return;let f=0;for(let a of e)f+=u.get(a)??0;let h=c-(f+=(e.length-1)*g)/2;for(let b of e){let c=u.get(b)??0;a(b,h+c/2),h+=c+g}}(a,v+b/2),v+=b+g}let w=[];for(let b of a){let a=o.get(b.id);a&&w.push({...b,targetPosition:l,sourcePosition:m,position:{x:a.cx-a.w/2,y:a.cy-a.h/2}})}return{nodes:w,edges:[...b]}}(n,o,function(a="ltr"){return{...M,direction:"rtl"===a?"RL":"LR"}}(q))}async function $({children:a,drawer:d}){let{nodes:e,edges:f}=await Z();return(0,b.jsxs)("div",{className:"h-screen w-full",children:[(0,b.jsx)(c.ControlCenter,{initialNodes:e,initialEdges:f,drawer:d}),a]})}a.s(["default",()=>$,"dynamic",0,"force-dynamic"],19981)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_presentation_web_ca99d62d._.js.map
|