@shepai/cli 1.168.0 → 1.169.0-pr523.2f53944
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/FeatureFlags.yaml +5 -0
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +4 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/legacy-migrations.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/legacy-migrations.js +11 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-feature-flag-inventory.d.ts +11 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-feature-flag-inventory.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-feature-flag-inventory.js +17 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts +3 -3
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +3 -3
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +12 -3
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/evidence.node.js +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.js +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/implement.node.js +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +1 -1
- package/dist/src/presentation/web/app/features/feature-tree-page-client.d.ts +7 -0
- package/dist/src/presentation/web/app/features/feature-tree-page-client.d.ts.map +1 -0
- package/dist/src/presentation/web/app/features/feature-tree-page-client.js +13 -0
- package/dist/src/presentation/web/app/features/get-feature-tree-data.d.ts +10 -0
- package/dist/src/presentation/web/app/features/get-feature-tree-data.d.ts.map +1 -0
- package/dist/src/presentation/web/app/features/get-feature-tree-data.js +47 -0
- package/dist/src/presentation/web/app/features/page.d.ts +4 -0
- package/dist/src/presentation/web/app/features/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/features/page.js +9 -0
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +1 -0
- package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.d.ts +36 -0
- package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.js +196 -0
- package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.js +166 -0
- package/dist/src/presentation/web/components/features/feature-tree-table/index.d.ts +3 -0
- package/dist/src/presentation/web/components/features/feature-tree-table/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/feature-tree-table/index.js +1 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +5 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
- package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/feature-flags.js +5 -0
- package/dist/translations/ar/web.json +3 -0
- package/dist/translations/de/web.json +3 -0
- package/dist/translations/en/web.json +3 -0
- package/dist/translations/es/web.json +3 -0
- package/dist/translations/fr/web.json +3 -0
- package/dist/translations/he/web.json +3 -0
- package/dist/translations/pt/web.json +3 -0
- package/dist/translations/ru/web.json +3 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +1 -0
- package/web/.next/build-manifest.json +6 -6
- 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 +6 -0
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/chat/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/create/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +2 -2
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
- 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/build-manifest.json +4 -4
- 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/page_client-reference-manifest.js +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/build-manifest.json +4 -4
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/_not-found/page.js +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/features/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/features/page/build-manifest.json +18 -0
- package/web/.next/server/app/features/page/next-font-manifest.json +6 -0
- package/web/.next/server/app/features/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/features/page/server-reference-manifest.json +95 -0
- package/web/.next/server/app/features/page.js +18 -0
- package/web/.next/server/app/features/page.js.map +5 -0
- package/web/.next/server/app/features/page.js.nft.json +1 -0
- package/web/.next/server/app/features/page_client-reference-manifest.js +2 -0
- package/web/.next/server/app/settings/page/build-manifest.json +4 -4
- package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js +1 -1
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.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.map +1 -1
- 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/[root-of-the-server]__08c912ab._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__08c912ab._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__b062b383._.js → [root-of-the-server]__0c5452c3._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0c5452c3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__20a36a42._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__20a36a42._.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]__4fb81977._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__dffa13c5._.js → [root-of-the-server]__69dd3217._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__dffa13c5._.js.map → [root-of-the-server]__69dd3217._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__1abe77bb._.js → [root-of-the-server]__7ffd3598._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7ffd3598._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__248ee887._.js → [root-of-the-server]__851f6adb._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__851f6adb._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__7562afc6._.js → [root-of-the-server]__b020c17d._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d1040bd1._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__f5614810._.js.map → [root-of-the-server]__d1040bd1._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b0aac03._.js → [root-of-the-server]__e88da4ee._.js} +3 -3
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b0aac03._.js.map → [root-of-the-server]__e88da4ee._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__efeeaed4._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d5e22d1a._.js.map → [root-of-the-server]__efeeaed4._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0020fddd._.js +1 -1
- package/web/.next/server/chunks/ssr/_0020fddd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
- package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
- 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/_0727935d._.js +1 -1
- package/web/.next/server/chunks/ssr/_0727935d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0dc06d07._.js +1 -1
- package/web/.next/server/chunks/ssr/_0dc06d07._.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/_18886033._.js +1 -1
- package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
- package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_4a4709c5._.js +4 -0
- package/web/.next/server/chunks/ssr/_4a4709c5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_560f2971._.js +3 -0
- package/web/.next/server/chunks/ssr/_560f2971._.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/_6892e3b9._.js +3 -0
- package/web/.next/server/chunks/ssr/_6892e3b9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_7b3ec8ac._.js → _6e9b9005._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_7b3ec8ac._.js.map → _6e9b9005._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_a1068852._.js +1 -1
- package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
- package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_9a9ec6e6._.js → _a8b3bc2c._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_9a9ec6e6._.js.map → _a8b3bc2c._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
- package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
- package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
- package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
- package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f535d854._.js +3 -0
- package/web/.next/server/chunks/ssr/_f535d854._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
- package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_573d0b23._.js → _faecc602._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_573d0b23._.js.map → _faecc602._.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_app_actions_open-ide_ts_baaca5d5._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +10 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_page-header_index_ts_bdf4db0b._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_page-header_index_ts_bdf4db0b._.js.map +1 -0
- 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/translations_23dd5e7e._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
- package/web/.next/server/middleware-build-manifest.js +4 -4
- 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 +90 -48
- package/web/.next/static/chunks/{72b7a7374227b47e.js → 0ccb9c0b9b1b041f.js} +2 -2
- package/web/.next/static/chunks/20f7cc98a013b11c.js +1 -0
- package/web/.next/static/chunks/{0d5dda068da311fc.js → 21acf592ead7608f.js} +2 -2
- package/web/.next/static/chunks/2f711373a93c5bc3.css +1 -0
- package/web/.next/static/chunks/{4623ea78122c2d4d.js → 36cb1a6e3e35de17.js} +1 -1
- package/web/.next/static/chunks/3e393d6a78b2ade4.js +1 -0
- package/web/.next/static/chunks/4cec255f2754e5ec.js +1 -0
- package/web/.next/static/chunks/{0db171679d1838bf.js → 54ea8b84cb2cc0d1.js} +1 -1
- package/web/.next/static/chunks/5b7275374d2696b3.css +1 -0
- package/web/.next/static/chunks/5ed47e998707b519.js +8 -0
- package/web/.next/static/chunks/647140fe96a7c88a.js +1 -0
- package/web/.next/static/chunks/{1d82462f51924d3f.js → 65b62ac34ef4422a.js} +1 -1
- package/web/.next/static/chunks/{14c1725595d10639.js → 6c2beffb5a815c5a.js} +1 -1
- package/web/.next/static/chunks/6d6f70ff5151b8cb.js +7 -0
- package/web/.next/static/chunks/{35f8b762c261aa01.js → 76fc822ad8b3b7e2.js} +1 -1
- package/web/.next/static/chunks/982aef195c118996.js +1 -0
- package/web/.next/static/chunks/be1d829fb4281be0.js +1 -0
- package/web/.next/static/chunks/c3ef3b892f7794ec.js +1 -0
- package/web/.next/static/chunks/c5d2fa6c6353309a.js +1 -0
- package/web/.next/static/chunks/{daa74d46f5e8b397.js → d888abaf53aa7b66.js} +2 -2
- package/web/.next/static/chunks/dc134f3f58cdf850.js +5 -0
- package/web/.next/static/chunks/{d67238b43d323f1d.js → e29d3d0d18276e72.js} +1 -1
- package/web/.next/static/chunks/e6c45e81b87d2959.js +1 -0
- package/web/.next/static/chunks/{11cb8f996a5570ac.js → f7112ebae57c20f9.js} +1 -1
- package/web/.next/static/chunks/f998b42b5cddafd6.js +1 -0
- package/web/.next/static/chunks/{turbopack-8a46f5841d1dbe2e.js → turbopack-57bb0674e2cd1d31.js} +1 -1
- package/web/package.json +2 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__248ee887._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b062b383._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d5e22d1a._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f2acfd0e._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f2acfd0e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f5614810._.js +0 -3
- package/web/.next/server/chunks/ssr/_0edaf547._.js +0 -3
- package/web/.next/server/chunks/ssr/_0edaf547._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_b5fc318a._.js +0 -3
- package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
- package/web/.next/static/chunks/16eea21868510afd.js +0 -5
- package/web/.next/static/chunks/1fe75f9dd488d557.css +0 -1
- package/web/.next/static/chunks/2547ef4764d5a053.js +0 -7
- package/web/.next/static/chunks/672e3da3ad26005b.js +0 -1
- package/web/.next/static/chunks/84a181ff3270fd9f.js +0 -1
- package/web/.next/static/chunks/9531dfbcff94c28b.js +0 -1
- package/web/.next/static/chunks/c0e13e7d1601bc5d.js +0 -1
- package/web/.next/static/chunks/ed3a602003bcb31b.js +0 -1
- package/web/.next/static/chunks/ef1faff4c5100183.js +0 -1
- package/web/.next/static/chunks/f0825a7dc6f4fb83.js +0 -1
- package/web/.next/static/chunks/fa024fa35b1b47ff.js +0 -1
- /package/web/.next/static/{kmMMaSvcntYsYhsTwYqdC → kPxrKArrmlja9IjXEI6-W}/_buildManifest.js +0 -0
- /package/web/.next/static/{kmMMaSvcntYsYhsTwYqdC → kPxrKArrmlja9IjXEI6-W}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{kmMMaSvcntYsYhsTwYqdC → kPxrKArrmlja9IjXEI6-W}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31406,(e,t,s)=>{t.exports=e.r(67013)},95230,e=>{"use strict";let t=(0,e.i(3645).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["default",()=>t])},43698,e=>{"use strict";let t=(0,e.i(3645).default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);e.s(["default",()=>t])},64764,80436,17087,e=>{"use strict";var t=e.i(15506);e.s(["Loader2Icon",()=>t.default],64764);var s=e.i(95230);e.s(["DownloadIcon",()=>s.default],80436);let r=(0,e.i(3645).default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]);e.s(["StickyNoteIcon",()=>r],17087)},48306,e=>{"use strict";var t=e.i(20314),s=e.i(31777);function r({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,s.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}e.s(["Textarea",()=>r])},28267,57484,e=>{"use strict";var t=e.i(1693);e.s(["VisuallyHidden",0,t],28267);let s=(0,e.i(3645).default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);e.s(["FileIcon",()=>s],57484)},16298,e=>{"use strict";let t=(0,e.i(3645).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["default",()=>t])},50032,86254,e=>{"use strict";var t=e.i(20314),s=e.i(60253),r=e.i(64764),i=e.i(80436),n=e.i(17087),a=e.i(31777),o=e.i(2287),l=e.i(48306),u=e.i(2828),c=e.i(28267),h=e.i(57484),d=e.i(16298),d=d;let p=(0,e.i(3645).default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var f=e.i(93752),f=f;e.i(35364);let y=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),m=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function v(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}let b=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function g(e,t){let s=new URLSearchParams({path:e,mimeType:t});return`/api/attachments/preview?${s.toString()}`}function x({name:e,size:x,mimeType:w,path:S,onRemove:R,loading:T=!1,disabled:j=!1,notes:O,onNotesChange:C}){let k,I,E=(k=e.lastIndexOf("."))>=0?e.slice(k).toLowerCase():"",Q=y.has(E)?p:".pdf"===E?d.default:m.has(E)?f.default:h.FileIcon,F=".pdf"===E?"bg-red-50 text-red-600":y.has(E)?"bg-blue-50 text-blue-600":m.has(E)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600",M=(I=e.lastIndexOf("."))>=0&&b.has(e.slice(I).toLowerCase());if(T)return(0,t.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-md border",children:(0,t.jsx)(r.Loader2Icon,{className:"text-muted-foreground h-5 w-5 animate-spin"})});if(M){let r=(0,t.jsxs)("button",{type:"button",className:"relative block cursor-pointer rounded-md",children:[(0,t.jsx)("img",{src:g(S,w),alt:e,title:e,className:"h-12 w-12 rounded-md border object-cover transition-opacity hover:opacity-80"}),O?(0,t.jsx)("span",{className:"ring-background absolute -right-1 -bottom-1 flex h-4 w-4 items-center justify-center rounded-full bg-amber-500 text-white shadow-sm ring-2",children:(0,t.jsx)(n.StickyNoteIcon,{className:"h-2.5 w-2.5"})}):null]});return(0,t.jsx)(u.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(o.Dialog,{children:[(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsxs)("div",{className:"group relative",children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(o.DialogTrigger,{asChild:!0,children:r})}),!j&&(0,t.jsx)("button",{type:"button",onClick:R,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${e}`,children:(0,t.jsx)(s.X,{className:"h-3 w-3"})})]}),O?(0,t.jsx)(u.TooltipContent,{side:"bottom",className:"max-w-[220px] border border-amber-200 bg-amber-50 text-amber-950 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-100",children:(0,t.jsx)("p",{className:"line-clamp-3 text-xs leading-snug",children:O})}):null]}),(0,t.jsxs)(o.DialogContent,{className:"max-w-3xl gap-0 overflow-hidden border-0 p-0 [&>button:last-child]:!cursor-pointer [&>button:last-child]:!rounded-full [&>button:last-child]:!bg-black/70 [&>button:last-child]:!p-1.5 [&>button:last-child]:!text-white [&>button:last-child]:!opacity-100 [&>button:last-child]:!shadow-lg [&>button:last-child]:!backdrop-blur-md [&>button:last-child]:hover:!bg-black/90",children:[(0,t.jsx)(c.VisuallyHidden.Root,{children:(0,t.jsxs)(o.DialogTitle,{children:["Preview: ",e]})}),(0,t.jsx)("div",{className:"relative bg-black/90",children:(0,t.jsx)("img",{src:g(S,w),alt:e,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,t.jsxs)("div",{className:"bg-background flex flex-col gap-2 px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:v(x)})]}),(0,t.jsx)("a",{href:g(S,w),download:e,className:"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors","aria-label":`Download ${e}`,children:(0,t.jsx)(i.DownloadIcon,{className:"h-4 w-4"})})]}),C?(0,t.jsx)(l.Textarea,{placeholder:"Add notes about this image…",value:O??"",onChange:e=>C(e.target.value),rows:2,className:"resize-none text-sm","aria-label":"Image notes"}):O?(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:O}):null]})]})]})})}return(0,t.jsxs)("div",{className:"group relative flex items-center gap-2 rounded-full border py-1 ps-2 pe-3",children:[(0,t.jsx)("div",{className:(0,a.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full",F),children:(0,t.jsx)(Q,{className:"h-3 w-3"})}),(0,t.jsx)("span",{className:"max-w-[120px] truncate text-sm",children:e}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:v(x)}),!j&&(0,t.jsx)("button",{type:"button",onClick:R,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${e}`,children:(0,t.jsx)(s.X,{className:"h-3 w-3"})})]})}e.s(["AttachmentChip",()=>x],86254),e.s([],50032)},99105,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],99105)},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},67669,e=>{"use strict";let t=(0,e.i(3645).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],67669)},94365,e=>{"use strict";let t=(0,e.i(3645).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",()=>t],94365)},4520,77501,e=>{"use strict";var t=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};e.s(["Subscribable",()=>t],77501);var s=new class extends t{#e;#t;#s;constructor(){super(),this.#s=e=>{if("u">typeof window&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#s=e,this.#t?.(),this.#t=e(e=>{"boolean"==typeof e?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return"boolean"==typeof this.#e?this.#e:globalThis.document?.visibilityState!=="hidden"}};e.s(["focusManager",()=>s],4520)},3,68911,e=>{"use strict";e.i(44172);var t={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},s=new class{#r=t;#i=!1;setTimeoutProvider(e){this.#r=e}setTimeout(e,t){return this.#r.setTimeout(e,t)}clearTimeout(e){this.#r.clearTimeout(e)}setInterval(e,t){return this.#r.setInterval(e,t)}clearInterval(e){this.#r.clearInterval(e)}};function r(e){setTimeout(e,0)}e.s(["systemSetTimeoutZero",()=>r,"timeoutManager",()=>s],68911);var i="u"<typeof window||"Deno"in globalThis;function n(){}function a(e,t){return"function"==typeof e?e(t):e}function o(e){return"number"==typeof e&&e>=0&&e!==1/0}function l(e,t){return Math.max(e+(t||0)-Date.now(),0)}function u(e,t){return"function"==typeof e?e(t):e}function c(e,t){return"function"==typeof e?e(t):e}function h(e,t){let{type:s="all",exact:r,fetchStatus:i,predicate:n,queryKey:a,stale:o}=e;if(a){if(r){if(t.queryHash!==p(a,t.options))return!1}else if(!y(t.queryKey,a))return!1}if("all"!==s){let e=t.isActive();if("active"===s&&!e||"inactive"===s&&e)return!1}return("boolean"!=typeof o||t.isStale()===o)&&(!i||i===t.state.fetchStatus)&&(!n||!!n(t))}function d(e,t){let{exact:s,status:r,predicate:i,mutationKey:n}=e;if(n){if(!t.options.mutationKey)return!1;if(s){if(f(t.options.mutationKey)!==f(n))return!1}else if(!y(t.options.mutationKey,n))return!1}return(!r||t.state.status===r)&&(!i||!!i(t))}function p(e,t){return(t?.queryKeyHashFn||f)(e)}function f(e){return JSON.stringify(e,(e,t)=>g(t)?Object.keys(t).sort().reduce((e,s)=>(e[s]=t[s],e),{}):t)}function y(e,t){return e===t||typeof e==typeof t&&!!e&&!!t&&"object"==typeof e&&"object"==typeof t&&Object.keys(t).every(s=>y(e[s],t[s]))}var m=Object.prototype.hasOwnProperty;function v(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let s in e)if(e[s]!==t[s])return!1;return!0}function b(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function g(e){if(!x(e))return!1;let t=e.constructor;if(void 0===t)return!0;let s=t.prototype;return!!x(s)&&!!s.hasOwnProperty("isPrototypeOf")&&Object.getPrototypeOf(e)===Object.prototype}function x(e){return"[object Object]"===Object.prototype.toString.call(e)}function w(e){return new Promise(t=>{s.setTimeout(t,e)})}function S(e,t,s){return"function"==typeof s.structuralSharing?s.structuralSharing(e,t):!1!==s.structuralSharing?function e(t,s,r=0){if(t===s)return t;if(r>500)return s;let i=b(t)&&b(s);if(!i&&!(g(t)&&g(s)))return s;let n=(i?t:Object.keys(t)).length,a=i?s:Object.keys(s),o=a.length,l=i?Array(o):{},u=0;for(let c=0;c<o;c++){let o=i?c:a[c],h=t[o],d=s[o];if(h===d){l[o]=h,(i?c<n:m.call(t,o))&&u++;continue}if(null===h||null===d||"object"!=typeof h||"object"!=typeof d){l[o]=d;continue}let p=e(h,d,r+1);l[o]=p,p===h&&u++}return n===o&&u===n?t:l}(e,t):t}function R(e,t,s=0){let r=[...e,t];return s&&r.length>s?r.slice(1):r}function T(e,t,s=0){let r=[t,...e];return s&&r.length>s?r.slice(0,-1):r}var j=Symbol();function O(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:e.queryFn&&e.queryFn!==j?e.queryFn:()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`))}function C(e,t){return"function"==typeof e?e(...t):!!e}function k(e,t,s){let r,i=!1;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(r??=t(),i||(i=!0,r.aborted?s():r.addEventListener("abort",s,{once:!0})),r)}),e}e.s(["addConsumeAwareSignal",()=>k,"addToEnd",()=>R,"addToStart",()=>T,"ensureQueryFn",()=>O,"functionalUpdate",()=>a,"hashKey",()=>f,"hashQueryKeyByOptions",()=>p,"isServer",()=>i,"isValidTimeout",()=>o,"matchMutation",()=>d,"matchQuery",()=>h,"noop",()=>n,"partialMatchKey",()=>y,"replaceData",()=>S,"resolveEnabled",()=>c,"resolveStaleTime",()=>u,"shallowEqualObjects",()=>v,"shouldThrowError",()=>C,"skipToken",()=>j,"sleep",()=>w,"timeUntilStale",()=>l],3)},65617,e=>{"use strict";let t;var s=e.i(3),r=(t=()=>s.isServer,{isServer:()=>t(),setIsServer(e){t=e}});e.s(["environmentManager",()=>r])},6786,e=>{"use strict";let t,s,r,i,n,a;var o=e.i(68911).systemSetTimeoutZero,l=(t=[],s=0,r=e=>{e()},i=e=>{e()},n=o,{batch:e=>{let a;s++;try{a=e()}finally{let e;--s||(e=t,t=[],e.length&&n(()=>{i(()=>{e.forEach(e=>{r(e)})})}))}return a},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a=e=>{s?t.push(e):n(()=>{r(e)})},setNotifyFunction:e=>{r=e},setBatchNotifyFunction:e=>{i=e},setScheduler:e=>{n=e}});e.s(["notifyManager",()=>l])},13598,20820,e=>{"use strict";var t=e.i(77501),s=new class extends t.Subscribable{#n=!0;#t;#s;constructor(){super(),this.#s=e=>{if("u">typeof window&&window.addEventListener){let t=()=>e(!0),s=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",s)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#s=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#n!==e&&(this.#n=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#n}};function r(){let e,t,s=new Promise((s,r)=>{e=s,t=r});function r(e){Object.assign(s,e),delete s.resolve,delete s.reject}return s.status="pending",s.catch(()=>{}),s.resolve=t=>{r({status:"fulfilled",value:t}),e(t)},s.reject=e=>{r({status:"rejected",reason:e}),t(e)},s}e.s(["onlineManager",()=>s],13598),e.i(3),e.s(["pendingThenable",()=>r],20820)},28574,20979,19644,34682,e=>{"use strict";e.i(44172);var t=e.i(3),s=e.i(6786),r=e.i(4520),i=e.i(13598),n=e.i(20820),a=e.i(65617);function o(e){return Math.min(1e3*2**e,3e4)}function l(e){return(e??"online")!=="online"||i.onlineManager.isOnline()}var u=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function c(e){let s,c=!1,h=0,d=(0,n.pendingThenable)(),p=()=>r.focusManager.isFocused()&&("always"===e.networkMode||i.onlineManager.isOnline())&&e.canRun(),f=()=>l(e.networkMode)&&e.canRun(),y=e=>{"pending"===d.status&&(s?.(),d.resolve(e))},m=e=>{"pending"===d.status&&(s?.(),d.reject(e))},v=()=>new Promise(t=>{s=e=>{("pending"!==d.status||p())&&t(e)},e.onPause?.()}).then(()=>{s=void 0,"pending"===d.status&&e.onContinue?.()}),b=()=>{let s;if("pending"!==d.status)return;let r=0===h?e.initialPromise:void 0;try{s=r??e.fn()}catch(e){s=Promise.reject(e)}Promise.resolve(s).then(y).catch(s=>{if("pending"!==d.status)return;let r=e.retry??3*!a.environmentManager.isServer(),i=e.retryDelay??o,n="function"==typeof i?i(h,s):i,l=!0===r||"number"==typeof r&&h<r||"function"==typeof r&&r(h,s);c||!l?m(s):(h++,e.onFail?.(h,s),(0,t.sleep)(n).then(()=>p()?void 0:v()).then(()=>{c?m(s):b()}))})};return{promise:d,status:()=>d.status,cancel:t=>{if("pending"===d.status){let s=new u(t);m(s),e.onCancel?.(s)}},continue:()=>(s?.(),d),cancelRetry:()=>{c=!0},continueRetry:()=>{c=!1},canStart:f,start:()=>(f()?b():v().then(b),d)}}e.s(["CancelledError",()=>u,"canFetch",()=>l,"createRetryer",()=>c],20979);var h=e.i(68911),d=class{#a;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,t.isValidTimeout)(this.gcTime)&&(this.#a=h.timeoutManager.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(a.environmentManager.isServer()?1/0:3e5))}clearGcTimeout(){this.#a&&(h.timeoutManager.clearTimeout(this.#a),this.#a=void 0)}};e.s(["Removable",()=>d],19644);var p=class extends d{#o;#l;#u;#c;#h;#d;#p;constructor(e){super(),this.#p=!1,this.#d=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#c=e.client,this.#u=this.#c.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#o=m(this.options),this.state=e.state??this.#o,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#h?.promise}setOptions(e){if(this.options={...this.#d,...e},this.updateGcTime(this.options.gcTime),this.state&&void 0===this.state.data){let e=m(this.options);void 0!==e.data&&(this.setState(y(e.data,e.dataUpdatedAt)),this.#o=e)}}optionalRemove(){this.observers.length||"idle"!==this.state.fetchStatus||this.#u.remove(this)}setData(e,s){let r=(0,t.replaceData)(this.state.data,e,this.options);return this.#f({data:r,type:"success",dataUpdatedAt:s?.updatedAt,manual:s?.manual}),r}setState(e,t){this.#f({type:"setState",state:e,setStateOptions:t})}cancel(e){let s=this.#h?.promise;return this.#h?.cancel(e),s?s.then(t.noop).catch(t.noop):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#o}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>!1!==(0,t.resolveEnabled)(e.options.enabled,this))}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===t.skipToken||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>"static"===(0,t.resolveStaleTime)(e.options.staleTime,this))}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):void 0===this.state.data||this.state.isInvalidated}isStaleByTime(e=0){return void 0===this.state.data||"static"!==e&&(!!this.state.isInvalidated||!(0,t.timeUntilStale)(this.state.dataUpdatedAt,e))}onFocus(){let e=this.observers.find(e=>e.shouldFetchOnWindowFocus());e?.refetch({cancelRefetch:!1}),this.#h?.continue()}onOnline(){let e=this.observers.find(e=>e.shouldFetchOnReconnect());e?.refetch({cancelRefetch:!1}),this.#h?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#u.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#h&&(this.#p||this.#y()?this.#h.cancel({revert:!0}):this.#h.cancelRetry()),this.scheduleGc()),this.#u.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}#y(){return"paused"===this.state.fetchStatus&&"pending"===this.state.status}invalidate(){this.state.isInvalidated||this.#f({type:"invalidate"})}async fetch(e,s){let r;if("idle"!==this.state.fetchStatus&&this.#h?.status()!=="rejected"){if(void 0!==this.state.data&&s?.cancelRefetch)this.cancel({silent:!0});else if(this.#h)return this.#h.continueRetry(),this.#h.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let i=new AbortController,n=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#p=!0,i.signal)})},a=()=>{let e,r=(0,t.ensureQueryFn)(this.options,s),i=(n(e={client:this.#c,queryKey:this.queryKey,meta:this.meta}),e);return(this.#p=!1,this.options.persister)?this.options.persister(r,i,this):r(i)},o=(n(r={fetchOptions:s,options:this.options,queryKey:this.queryKey,client:this.#c,state:this.state,fetchFn:a}),r);this.options.behavior?.onFetch(o,this),this.#l=this.state,("idle"===this.state.fetchStatus||this.state.fetchMeta!==o.fetchOptions?.meta)&&this.#f({type:"fetch",meta:o.fetchOptions?.meta}),this.#h=c({initialPromise:s?.initialPromise,fn:o.fetchFn,onCancel:e=>{e instanceof u&&e.revert&&this.setState({...this.#l,fetchStatus:"idle"}),i.abort()},onFail:(e,t)=>{this.#f({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#f({type:"pause"})},onContinue:()=>{this.#f({type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0});try{let e=await this.#h.start();if(void 0===e)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#u.config.onSuccess?.(e,this),this.#u.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof u){if(e.silent)return this.#h.promise;else if(e.revert){if(void 0===this.state.data)throw e;return this.state.data}}throw this.#f({type:"error",error:e}),this.#u.config.onError?.(e,this),this.#u.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#f(e){let t=t=>{switch(e.type){case"failed":return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...t,fetchStatus:"paused"};case"continue":return{...t,fetchStatus:"fetching"};case"fetch":return{...t,...f(t.data,this.options),fetchMeta:e.meta??null};case"success":let s={...t,...y(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#l=e.manual?s:void 0,s;case"error":let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...t,isInvalidated:!0};case"setState":return{...t,...e.state}}};this.state=t(this.state),s.notifyManager.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#u.notify({query:this,type:"updated",action:e})})}};function f(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:l(t.networkMode)?"fetching":"paused",...void 0===e&&{error:null,status:"pending"}}}function y(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function m(e){let t="function"==typeof e.initialData?e.initialData():e.initialData,s=void 0!==t,r=s?"function"==typeof e.initialDataUpdatedAt?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:s?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}e.s(["Query",()=>p,"fetchState",()=>f],28574);var v=e.i(79054),b=e.i(20314),g=v.createContext(void 0),x=e=>{let t=v.useContext(g);if(e)return e;if(!t)throw Error("No QueryClient set, use QueryClientProvider to set one");return t},w=({client:e,children:t})=>(v.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,b.jsx)(g.Provider,{value:e,children:t}));e.s(["QueryClientProvider",()=>w,"useQueryClient",()=>x],34682)},62885,e=>{"use strict";let t;var s=e.i(4520),r=e.i(65617),i=e.i(6786),n=e.i(28574),a=e.i(77501),o=e.i(20820),l=e.i(3),u=e.i(68911),c=class extends a.Subscribable{constructor(e,t){super(),this.options=t,this.#c=e,this.#m=null,this.#v=(0,o.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#c;#b=void 0;#g=void 0;#x=void 0;#w;#S;#v;#m;#R;#T;#j;#O;#C;#k;#I=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#b.addObserver(this),h(this.#b,this.options)?this.#E():this.updateResult(),this.#Q())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return d(this.#b,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return d(this.#b,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#F(),this.#M(),this.#b.removeObserver(this)}setOptions(e){let t=this.options,s=this.#b;if(this.options=this.#c.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,l.resolveEnabled)(this.options.enabled,this.#b))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#D(),this.#b.setOptions(this.options),t._defaulted&&!(0,l.shallowEqualObjects)(this.options,t)&&this.#c.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#b,observer:this});let r=this.hasListeners();r&&p(this.#b,s,this.options,t)&&this.#E(),this.updateResult(),r&&(this.#b!==s||(0,l.resolveEnabled)(this.options.enabled,this.#b)!==(0,l.resolveEnabled)(t.enabled,this.#b)||(0,l.resolveStaleTime)(this.options.staleTime,this.#b)!==(0,l.resolveStaleTime)(t.staleTime,this.#b))&&this.#U();let i=this.#P();r&&(this.#b!==s||(0,l.resolveEnabled)(this.options.enabled,this.#b)!==(0,l.resolveEnabled)(t.enabled,this.#b)||i!==this.#k)&&this.#q(i)}getOptimisticResult(e){var t,s;let r=this.#c.getQueryCache().build(this.#c,e),i=this.createResult(r,e);return t=this,s=i,(0,l.shallowEqualObjects)(t.getCurrentResult(),s)||(this.#x=i,this.#S=this.options,this.#w=this.#b.state),i}getCurrentResult(){return this.#x}trackResult(e,t){return new Proxy(e,{get:(e,s)=>(this.trackProp(s),t?.(s),"promise"===s&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#v.status||this.#v.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,s))})}trackProp(e){this.#I.add(e)}getCurrentQuery(){return this.#b}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#c.defaultQueryOptions(e),s=this.#c.getQueryCache().build(this.#c,t);return s.fetch().then(()=>this.createResult(s,t))}fetch(e){return this.#E({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#x))}#E(e){this.#D();let t=this.#b.fetch(this.options,e);return e?.throwOnError||(t=t.catch(l.noop)),t}#U(){this.#F();let e=(0,l.resolveStaleTime)(this.options.staleTime,this.#b);if(r.environmentManager.isServer()||this.#x.isStale||!(0,l.isValidTimeout)(e))return;let t=(0,l.timeUntilStale)(this.#x.dataUpdatedAt,e);this.#O=u.timeoutManager.setTimeout(()=>{this.#x.isStale||this.updateResult()},t+1)}#P(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#b):this.options.refetchInterval)??!1}#q(e){this.#M(),this.#k=e,!r.environmentManager.isServer()&&!1!==(0,l.resolveEnabled)(this.options.enabled,this.#b)&&(0,l.isValidTimeout)(this.#k)&&0!==this.#k&&(this.#C=u.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||s.focusManager.isFocused())&&this.#E()},this.#k))}#Q(){this.#U(),this.#q(this.#P())}#F(){this.#O&&(u.timeoutManager.clearTimeout(this.#O),this.#O=void 0)}#M(){this.#C&&(u.timeoutManager.clearInterval(this.#C),this.#C=void 0)}createResult(e,t){let s,r=this.#b,i=this.options,a=this.#x,u=this.#w,c=this.#S,d=e!==r?e.state:this.#g,{state:y}=e,m={...y},v=!1;if(t._optimisticResults){let s=this.hasListeners(),a=!s&&h(e,t),o=s&&p(e,r,t,i);(a||o)&&(m={...m,...(0,n.fetchState)(y.data,e.options)}),"isRestoring"===t._optimisticResults&&(m.fetchStatus="idle")}let{error:b,errorUpdatedAt:g,status:x}=m;s=m.data;let w=!1;if(void 0!==t.placeholderData&&void 0===s&&"pending"===x){let e;a?.isPlaceholderData&&t.placeholderData===c?.placeholderData?(e=a.data,w=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#j?.state.data,this.#j):t.placeholderData,void 0!==e&&(x="success",s=(0,l.replaceData)(a?.data,e,t),v=!0)}if(t.select&&void 0!==s&&!w)if(a&&s===u?.data&&t.select===this.#R)s=this.#T;else try{this.#R=t.select,s=t.select(s),s=(0,l.replaceData)(a?.data,s,t),this.#T=s,this.#m=null}catch(e){this.#m=e}this.#m&&(b=this.#m,s=this.#T,g=Date.now(),x="error");let S="fetching"===m.fetchStatus,R="pending"===x,T="error"===x,j=R&&S,O=void 0!==s,C={status:x,fetchStatus:m.fetchStatus,isPending:R,isSuccess:"success"===x,isError:T,isInitialLoading:j,isLoading:j,data:s,dataUpdatedAt:m.dataUpdatedAt,error:b,errorUpdatedAt:g,failureCount:m.fetchFailureCount,failureReason:m.fetchFailureReason,errorUpdateCount:m.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:m.dataUpdateCount>d.dataUpdateCount||m.errorUpdateCount>d.errorUpdateCount,isFetching:S,isRefetching:S&&!R,isLoadingError:T&&!O,isPaused:"paused"===m.fetchStatus,isPlaceholderData:v,isRefetchError:T&&O,isStale:f(e,t),refetch:this.refetch,promise:this.#v,isEnabled:!1!==(0,l.resolveEnabled)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==C.data,s="error"===C.status&&!t,i=e=>{s?e.reject(C.error):t&&e.resolve(C.data)},n=()=>{i(this.#v=C.promise=(0,o.pendingThenable)())},a=this.#v;switch(a.status){case"pending":e.queryHash===r.queryHash&&i(a);break;case"fulfilled":(s||C.data!==a.value)&&n();break;case"rejected":s&&C.error===a.reason||n()}}return C}updateResult(){let e=this.#x,t=this.createResult(this.#b,this.options);if(this.#w=this.#b.state,this.#S=this.options,void 0!==this.#w.data&&(this.#j=this.#b),(0,l.shallowEqualObjects)(t,e))return;this.#x=t;let s=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,s="function"==typeof t?t():t;if("all"===s||!s&&!this.#I.size)return!0;let r=new Set(s??this.#I);return this.options.throwOnError&&r.add("error"),Object.keys(this.#x).some(t=>this.#x[t]!==e[t]&&r.has(t))};this.#N({listeners:s()})}#D(){let e=this.#c.getQueryCache().build(this.#c,this.options);if(e===this.#b)return;let t=this.#b;this.#b=e,this.#g=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#Q()}#N(e){i.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#x)}),this.#c.getQueryCache().notify({query:this.#b,type:"observerResultsUpdated"})})}};function h(e,t){return!1!==(0,l.resolveEnabled)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==t.retryOnMount)||void 0!==e.state.data&&d(e,t,t.refetchOnMount)}function d(e,t,s){if(!1!==(0,l.resolveEnabled)(t.enabled,e)&&"static"!==(0,l.resolveStaleTime)(t.staleTime,e)){let r="function"==typeof s?s(e):s;return"always"===r||!1!==r&&f(e,t)}return!1}function p(e,t,s,r){return(e!==t||!1===(0,l.resolveEnabled)(r.enabled,e))&&(!s.suspense||"error"!==e.state.status)&&f(e,s)}function f(e,t){return!1!==(0,l.resolveEnabled)(t.enabled,e)&&e.isStaleByTime((0,l.resolveStaleTime)(t.staleTime,e))}e.i(44172);var y=e.i(79054),m=e.i(34682);e.i(20314);var v=y.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),b=y.createContext(!1);b.Provider;var g=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function x(e,t){return function(e,t,s){let n,a=y.useContext(b),o=y.useContext(v),u=(0,m.useQueryClient)(s),c=u.defaultQueryOptions(e);u.getDefaultOptions().queries?._experimental_beforeQuery?.(c);let h=u.getQueryCache().get(c.queryHash);if(c._optimisticResults=a?"isRestoring":"optimistic",c.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=c.staleTime;c.staleTime="function"==typeof t?(...s)=>e(t(...s)):e(t),"number"==typeof c.gcTime&&(c.gcTime=Math.max(c.gcTime,1e3))}n=h?.state.error&&"function"==typeof c.throwOnError?(0,l.shouldThrowError)(c.throwOnError,[h.state.error,h]):c.throwOnError,(c.suspense||c.experimental_prefetchInRender||n)&&!o.isReset()&&(c.retryOnMount=!1),y.useEffect(()=>{o.clearReset()},[o]);let d=!u.getQueryCache().get(c.queryHash),[p]=y.useState(()=>new t(u,c)),f=p.getOptimisticResult(c),x=!a&&!1!==e.subscribed;if(y.useSyncExternalStore(y.useCallback(e=>{let t=x?p.subscribe(i.notifyManager.batchCalls(e)):l.noop;return p.updateResult(),t},[p,x]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),y.useEffect(()=>{p.setOptions(c)},[c,p]),c?.suspense&&f.isPending)throw g(c,p,o);if((({result:e,errorResetBoundary:t,throwOnError:s,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&void 0===e.data||(0,l.shouldThrowError)(s,[e.error,r])))({result:f,errorResetBoundary:o,throwOnError:c.throwOnError,query:h,suspense:c.suspense}))throw f.error;if(u.getDefaultOptions().queries?._experimental_afterQuery?.(c,f),c.experimental_prefetchInRender&&!r.environmentManager.isServer()&&f.isLoading&&f.isFetching&&!a){let e=d?g(c,p,o):h?.promise;e?.catch(l.noop).finally(()=>{p.updateResult()})}return c.notifyOnChangeProps?f:p.trackResult(f)}(e,c,t)}e.s(["useQuery",()=>x],62885)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59311,e=>{"use strict";let t=(0,e.i(3645).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],59311)},16868,e=>{"use strict";var t=e.i(43698);e.s(["PaperclipIcon",()=>t.default])},70471,e=>{"use strict";var t=e.i(16298);e.s(["FileText",()=>t.default])},42076,e=>{"use strict";async function t(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}e.s(["pickFiles",()=>t])},83843,e=>{"use strict";let t=(0,e.i(3645).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);e.s(["ChevronsUpDown",()=>t],83843)},51911,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),i=e.i(22528),o=e.i(36589),n=e.i(23405),l=e.i(77624),c=e.i(87620),d="Switch",[p,u]=(0,i.createContextScope)(d),[h,m]=p(d),x=r.forwardRef((e,i)=>{let{__scopeSwitch:n,name:l,checked:p,defaultChecked:u,required:m,disabled:x,value:f="on",onCheckedChange:b,form:j,...v}=e,[y,C]=r.useState(null),k=(0,s.useComposedRefs)(i,e=>C(e)),N=r.useRef(!1),D=!y||j||!!y.closest("form"),[T,S]=(0,o.useControllableState)({prop:p,defaultProp:u??!1,onChange:b,caller:d});return(0,t.jsxs)(h,{scope:n,checked:T,disabled:x,children:[(0,t.jsx)(c.Primitive.button,{type:"button",role:"switch","aria-checked":T,"aria-required":m,"data-state":w(T),"data-disabled":x?"":void 0,disabled:x,value:f,...v,ref:k,onClick:(0,a.composeEventHandlers)(e.onClick,e=>{S(e=>!e),D&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})}),D&&(0,t.jsx)(g,{control:y,bubbles:!N.current,name:l,value:f,checked:T,required:m,disabled:x,form:j,style:{transform:"translateX(-100%)"}})]})});x.displayName=d;var f="SwitchThumb",b=r.forwardRef((e,r)=>{let{__scopeSwitch:a,...s}=e,i=m(f,a);return(0,t.jsx)(c.Primitive.span,{"data-state":w(i.checked),"data-disabled":i.disabled?"":void 0,...s,ref:r})});b.displayName=f;var g=r.forwardRef(({__scopeSwitch:e,control:a,checked:i,bubbles:o=!0,...c},d)=>{let p=r.useRef(null),u=(0,s.useComposedRefs)(p,d),h=(0,n.usePrevious)(i),m=(0,l.useSize)(a);return r.useEffect(()=>{let e=p.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==i&&t){let r=new Event("click",{bubbles:o});t.call(e,i),e.dispatchEvent(r)}},[h,i,o]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i,...c,tabIndex:-1,ref:u,style:{...c.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function w(e){return e?"checked":"unchecked"}g.displayName="SwitchBubbleInput",e.s(["Root",()=>x,"Switch",()=>x,"SwitchThumb",()=>b,"Thumb",()=>b,"createSwitchScope",()=>u],95291);var j=e.i(95291),j=j,v=e.i(31777);function y({className:e,size:r="default",...a}){return(0,t.jsx)(j.Root,{"data-slot":"switch","data-size":r,className:(0,v.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...a,children:(0,t.jsx)(j.Thumb,{"data-slot":"switch-thumb",className:(0,v.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]")})})}e.s(["Switch",()=>y],51911)},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),s=e.i(60112),i=e.i(21023);let o=(0,i.createServerReference)("4047803fdf3a0d12e0c366d0b561435797968ac8fb",i.callServer,void 0,i.findSourceMapURL,"createFeature");e.i(41001);var n=e.i(64780),l=e.i(16868),c=e.i(83843),d=e.i(97667),p=e.i(53360),u=e.i(55016),h=e.i(91925),m=e.i(83428),x=e.i(81542),f=e.i(70471),b=e.i(59311),g=e.i(31777),w=e.i(8361);e.i(1650);var j=e.i(11495),v=e.i(45811),y=e.i(35364),C=e.i(98127),k=e.i(48306),N=e.i(41957),D=e.i(81846),T=e.i(90382),S=e.i(51911),P=e.i(2828),F=e.i(30153);e.i(50032);var E=e.i(86254);let R=(0,i.createServerReference)("40e837a40f88cf4d3f6abffcaf31456e889d5c1b2a",i.callServer,void 0,i.findSourceMapURL,"getViewerPermission");var L=e.i(41413),z=e.i(25235),M=e.i(78521);e.i(13322);var I=e.i(61201),U=e.i(75921),A=e.i(63465),O=e.i(42076);let B=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),$={allowPrd:!1,allowPlan:!1,allowMerge:!1};function q({open:e,onClose:a,onSubmit:s,repositoryPath:i,isSubmitting:o=!1,workflowDefaults:c,features:d,repositories:h,initialParentId:m,currentAgentType:C,currentModel:T,initialDescription:z,canPushDirectly:M}){let I=(0,w.useSoundAction)("create"),{t:U}=(0,n.useTranslation)("web"),A=i&&(!h||0===h.length||h.some(e=>e.path===i))?i:"",q=c?.approvalGates??$,W=c?.push??!1,H=c?.openPr??!1,Z=c?.ciWatchEnabled!==!1,J=c?.enableEvidence??!1,V=c?.commitEvidence??!1,X=c?.fast!==!1,[Q,Y]=(0,r.useState)(z??"");(0,r.useEffect)(()=>{z&&Y(z)},[z]);let[_,ee]=(0,r.useState)([]),[et,er]=(0,r.useState)({...q}),[ea,es]=(0,r.useState)(W),[ei,eo]=(0,r.useState)(H),[en,el]=(0,r.useState)(c?.ciWatchEnabled!==!1),[ec,ed]=(0,r.useState)(J),[ep,eu]=(0,r.useState)(V),[eh,em]=(0,r.useState)(void 0),[ex,ef]=(0,r.useState)(X),[eb,eg]=(0,r.useState)(!1),[ew,ej]=(0,r.useState)(!1),[ev,ey]=(0,r.useState)(!0),[eC,ek]=(0,r.useState)(!0),[eN,eD]=(0,r.useState)(void 0),[eT,eS]=(0,r.useState)(void 0),[eP,eF]=(0,r.useState)(A||void 0),[eE,eR]=(0,r.useState)(h??[]),[eL,ez]=(0,r.useState)(!1),[eM,eI]=(0,r.useState)(null),[eU,eA]=(0,r.useState)(!1),eO=(0,r.useRef)(crypto.randomUUID()),eB=(0,r.useRef)(0),e$=(0,r.useRef)(null);(0,r.useEffect)(()=>{c&&(er({...c.approvalGates}),es(c.push),eo(c.openPr),el(!1!==c.ciWatchEnabled),ed(c.enableEvidence),eu(c.commitEvidence),ef(!1!==c.fast))},[c]),(0,r.useEffect)(()=>{eR(h??[])},[h]),(0,r.useEffect)(()=>{e&&m&&em(m)},[e,m]);let[eq,eG]=(0,r.useState)(M??!1);(0,r.useEffect)(()=>{eG(M??!1)},[M]);let eK=(0,r.useRef)(eP);(0,r.useEffect)(()=>{eP&&eP!==eK.current&&(eK.current=eP,R(eP).then(e=>eG(e.canPushDirectly)).catch(()=>eG(!1)))},[eP]),(0,r.useEffect)(()=>{eq&&(ej(!1),es(W),eo(H),ey(!0))},[eq,W,H]);let eW=(0,r.useCallback)(()=>{Y(""),ee([]),er({...q}),es(W),eo(H),el(Z),ed(J),eu(V),em(void 0),eF(A||void 0),eR(h??[]),ef(X),eg(!1),ej(!1),ey(!0),ek(!0),eD(void 0),eS(void 0),eI(null),eB.current=0,ez(!1)},[q,W,H,J,Z,V,X,A,h]),eH=""!==Q.trim()||_.length>0,{attemptClose:eZ}=(0,F.useGuardedDrawerClose)({open:e,isDirty:eH,onClose:a,onReset:eW}),eJ=(0,r.useCallback)(async e=>{for(let t of(eI(null),e)){if(t.size>0xa00000)return void eI(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!B.has(e))return void eI(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",eO.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let s=await a.json();ee(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}},[]),eV=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current+=1,1===eB.current&&ez(!0)},[]),eX=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current-=1,0===eB.current&&ez(!1)},[]),eQ=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),eY=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current=0,ez(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&eJ(t)},[eJ]),e_=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),eJ(r))},[eJ]),e0=(0,r.useCallback)(e=>{if(e.preventDefault(),!Q.trim())return;let t=eP??A;t&&(I.play(),s({description:Q.trim(),attachments:_.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:et.allowPrd??!1,allowPlan:et.allowPlan??!1,allowMerge:et.allowMerge??!1},push:!!ew||ea||ei,openPr:!!ew||ei,ciWatchEnabled:en,enableEvidence:ec,commitEvidence:ep,fast:ex,forkAndPr:ew,commitSpecs:ev,rebaseBeforeBranch:eC,...eb?{pending:eb}:{},...eN?{agentType:eN}:{},...eT?{model:eT}:{},...eh?{parentId:eh}:{},sessionId:eO.current}),eW())},[Q,_,et,eP,A,s,ea,ei,ec,en,ep,ex,ew,ev,eC,eb,eN,eT,eh,I,eW]),e1=(0,r.useCallback)(async()=>{try{let e=await (0,O.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:eO.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let a=await r.json();ee(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}}catch{}},[]),e5=(0,r.useCallback)(e=>{ee(t=>t.filter(t=>t.id!==e))},[]),e3=(0,r.useCallback)((e,t)=>{ee(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]),e2=(0,r.useRef)(null),e4=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),e2.current?.requestSubmit())},[]),e8=(0,r.useCallback)(()=>{eA(!0)},[]),e6=(0,r.useCallback)(()=>{setTimeout(()=>{let e=e$.current?.contains(document.activeElement),t=e$.current?.querySelector('[aria-expanded="true"]')!==null;e||t||eA(!1)},0)},[]),e9=d&&d.length>0,e7=!A&&!eP,te=!A&&void 0!==h,tt=[{id:"allowPrd",label:U("createDrawer.prd"),description:U("createDrawer.prdDescription")},{id:"allowPlan",label:U("createDrawer.plan"),description:U("createDrawer.planDescription")},{id:"allowMerge",label:U("createDrawer.merge"),description:U("createDrawer.mergeDescription")}];return(0,t.jsx)(j.BaseDrawer,{open:e,onClose:eZ,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(v.DrawerTitle,{children:U("createDrawer.title")})]}),o?(0,t.jsx)(v.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(D.Badge,{variant:"secondary",children:U("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(y.Button,{variant:"outline",onClick:eZ,disabled:o,children:U("createDrawer.cancel")}),(0,t.jsx)(y.Button,{type:"submit",form:"create-feature-form",disabled:!Q.trim()||o||e7,children:o?U("createDrawer.creating"):U("createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(P.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:e2,id:"create-feature-form",onSubmit:e0,onKeyDown:e4,className:"flex flex-col gap-4",children:[te?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)(K,{repositories:eE,value:eP,onChange:eF,onAddRepository:e=>{eR(t=>[...t,e]),eF(e.path)},disabled:o})]}):A?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:h?.find(e=>e.path===A)?.name??A.split("/").pop()})]}):null,(0,t.jsxs)("div",{role:"region","aria-label":U("createDrawer.fileDropZone"),"data-drag-over":eL?"true":"false",onDragEnter:eV,onDragLeave:eX,onDragOver:eQ,onDrop:eY,className:(0,g.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",eL&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(N.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:e$,onFocus:e8,onBlur:e6,className:(0,g.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",eU&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(k.Textarea,{id:"feature-description",placeholder:U("createDrawer.featurePlaceholder"),value:Q,onChange:e=>Y(e.target.value),onPaste:e_,required:!0,disabled:o,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),_.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:_.map(e=>(0,t.jsx)(E.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>e5(e.id),disabled:o,loading:e.loading,notes:e.notes,onNotesChange:t=>e3(e.id,t)},e.id))}),eM?(0,t.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:eM}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(L.AgentModelPicker,{initialAgentType:eN??C??"claude-code",initialModel:eT??T??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(e,t)=>{eD(e),eS(t)},disabled:o,className:"w-55"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"pending-mode",checked:eb,onCheckedChange:eg,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5"}),U("createDrawer.pendingMode")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.pendingModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"fast-mode",checked:ex,onCheckedChange:ef,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(p.Zap,{className:"h-3.5 w-3.5"}),U("createDrawer.fastModeLabel")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.fastModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:e1,disabled:o,"aria-label":U("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(l.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("chat.attachFiles")})]})]})]})]}),e9&&void 0!==m?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.parentFeature")}),(0,t.jsx)(G,{features:d,value:eh,onChange:em,disabled:o})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.approve")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:tt.map(e=>(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:`approve-${e.id}`,size:"sm",checked:et[e.id]??!1,onCheckedChange:t=>er(r=>({...r,[e.id]:t})),disabled:o||ex&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(N.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ex&&("allowPrd"===e.id||"allowPlan"===e.id)?U("createDrawer.skippedInFastMode"):e.description})]},e.id))}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=tt.every(e=>et[e.id]),t={};for(let r of tt)t[r.id]=!e;er(t)},disabled:o,className:(0,g.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",tt.every(e=>et[e.id])&&"text-primary"),children:U("createDrawer.all")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.toggleAllApprovalGates")})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.evidence")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"enable-evidence",size:"sm",checked:ec,onCheckedChange:e=>{ed(e),e||eu(!1)},disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.collect")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.collectDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-evidence",size:"sm",checked:ep,onCheckedChange:eu,disabled:o||!ec||!ei&&!ew}),(0,t.jsx)(N.Label,{htmlFor:"commit-evidence",className:(0,g.cn)("cursor-pointer text-xs font-medium",(!ec||!ei&&!ew)&&"opacity-50"),children:U("createDrawer.addToPr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ei||ew?ec?U("createDrawer.addToPrDescription"):U("createDrawer.requiresEvidence"):U("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:U("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"push",size:"sm",checked:!!ew||ea||ei,onCheckedChange:e=>{es(e),!e&&ei&&eo(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"push",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.push")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.pushDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"open-pr",size:"sm",checked:!!ew||ei,onCheckedChange:e=>{eo(e),e||eu(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"open-pr",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.pr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.prDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"ci-watch",size:"sm",checked:en,onCheckedChange:el,disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.watch")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"rebase-before-branch",size:"sm",checked:eC,onCheckedChange:ek,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(b.RefreshCw,{className:"h-3 w-3"}),U("createDrawer.sync")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.syncDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-specs",size:"sm",checked:ev,onCheckedChange:ey,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(f.FileText,{className:"h-3 w-3"}),U("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.commitSpecsDescription")})]}),!eq&&(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"fork-and-pr",size:"sm",checked:ew,onCheckedChange:e=>{ej(e),e&&ey(!1)},disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(x.GitFork,{className:"h-3 w-3"}),U("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function G({features:e,value:a,onChange:s,disabled:i}){let{t:o}=(0,n.useTranslation)("web"),[l,p]=(0,r.useState)(!1),[u,h]=(0,r.useState)(""),m=(0,r.useRef)(null),x=e.find(e=>e.id===a),f=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.id.toLowerCase().includes(u.toLowerCase())):e,b=(0,r.useCallback)(e=>{s(e),p(!1),h("")},[s]);return(0,r.useEffect)(()=>{l?setTimeout(()=>m.current?.focus(),0):h("")},[l]),(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":l,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!x&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:x?`${x.name} (${x.id.slice(0,8)})`:o("createDrawer.selectParent")}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:m,placeholder:o("createDrawer.searchFeatures"),value:u,onChange:e=>h(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>b(void 0),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o("createDrawer.noParent")})]}),0===f.length&&u?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:o("createDrawer.noFeaturesFound")}):f.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>b(e.id),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function K({repositories:e,value:a,onChange:s,onAddRepository:i,disabled:o}){let[l,p]=(0,r.useState)(!1),[u,x]=(0,r.useState)(""),[f,b]=(0,r.useState)(!1),[w,j]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),k=(0,r.useRef)(null),{reactFileManager:N}=(0,U.useFeatureFlags)(),{t:D}=(0,n.useTranslation)("web"),S=e.find(e=>e.path===a),P=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.path.toLowerCase().includes(u.toLowerCase())):e,F=(0,r.useCallback)(e=>{s(e),p(!1),x("")},[s]),E=(0,r.useCallback)(async e=>{let t=await (0,A.addRepository)({path:e});if(t.error){j(t.error),b(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};i?.(e),s(e.path),p(!1),x("")}},[i,s]),R=(0,r.useCallback)(async()=>{if(!f){if(N)return void y(!0);b(!0),j(null);try{let e=await (0,M.pickFolder)();if(!e)return void b(!1);await E(e)}catch{y(!0)}finally{b(!1)}}},[f,N,E]),L=(0,r.useCallback)(async e=>{if(y(!1),e){b(!0),j(null);try{await E(e)}catch(e){j(e instanceof Error?e.message:"Failed to add repository")}finally{b(!1)}}},[E]);return(0,r.useEffect)(()=>{l?setTimeout(()=>k.current?.focus(),0):x("")},[l]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":l,"aria-label":"Repository",disabled:o,"data-testid":"repository-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!S&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:S?S.name:"Select repository..."}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:k,placeholder:D("createDrawer.searchRepositories"),value:u,onChange:e=>x(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===P.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):P.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>F(e.path),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(z.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:R,disabled:f,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[f?(0,t.jsx)(m.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(h.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),w?(0,t.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:w}):null]})})]}),(0,t.jsx)(I.ReactFileManagerDialog,{open:v,onOpenChange:e=>{e||y(!1)},onSelect:L})]})}function W({repositoryPath:e,initialParentId:i,initialDescription:n,features:l,repositories:c,workflowDefaults:d,currentAgentType:p,currentModel:u,canPushDirectly:h}){let m=(0,a.useRouter)(),[x,f]=(0,r.useState)(!1),b=(0,a.usePathname)().startsWith("/create"),g=!x&&b;(0,r.useEffect)(()=>{!b&&x&&f(!1)},[b,x]);let w=(0,r.useCallback)(()=>{m.push("/")},[m]),j=(0,r.useCallback)(e=>{f(!0),m.push("/"),o(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[m]);return(0,t.jsx)(q,{open:g,onClose:w,onSubmit:j,repositoryPath:e,features:l,repositories:c,workflowDefaults:d,initialParentId:i,initialDescription:n,isSubmitting:x,currentAgentType:p,currentModel:u,canPushDirectly:h})}e.s(["CreateDrawerClient",()=>W],15203)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59311,e=>{"use strict";let t=(0,e.i(3645).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],59311)},16868,e=>{"use strict";var t=e.i(43698);e.s(["PaperclipIcon",()=>t.default])},70471,e=>{"use strict";var t=e.i(16298);e.s(["FileText",()=>t.default])},42076,e=>{"use strict";async function t(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}e.s(["pickFiles",()=>t])},83843,e=>{"use strict";let t=(0,e.i(3645).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);e.s(["ChevronsUpDown",()=>t],83843)},51911,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),i=e.i(22528),o=e.i(36589),n=e.i(23405),l=e.i(77624),c=e.i(87620),d="Switch",[p,u]=(0,i.createContextScope)(d),[h,m]=p(d),x=r.forwardRef((e,i)=>{let{__scopeSwitch:n,name:l,checked:p,defaultChecked:u,required:m,disabled:x,value:f="on",onCheckedChange:b,form:j,...v}=e,[y,C]=r.useState(null),k=(0,s.useComposedRefs)(i,e=>C(e)),N=r.useRef(!1),D=!y||j||!!y.closest("form"),[T,S]=(0,o.useControllableState)({prop:p,defaultProp:u??!1,onChange:b,caller:d});return(0,t.jsxs)(h,{scope:n,checked:T,disabled:x,children:[(0,t.jsx)(c.Primitive.button,{type:"button",role:"switch","aria-checked":T,"aria-required":m,"data-state":w(T),"data-disabled":x?"":void 0,disabled:x,value:f,...v,ref:k,onClick:(0,a.composeEventHandlers)(e.onClick,e=>{S(e=>!e),D&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})}),D&&(0,t.jsx)(g,{control:y,bubbles:!N.current,name:l,value:f,checked:T,required:m,disabled:x,form:j,style:{transform:"translateX(-100%)"}})]})});x.displayName=d;var f="SwitchThumb",b=r.forwardRef((e,r)=>{let{__scopeSwitch:a,...s}=e,i=m(f,a);return(0,t.jsx)(c.Primitive.span,{"data-state":w(i.checked),"data-disabled":i.disabled?"":void 0,...s,ref:r})});b.displayName=f;var g=r.forwardRef(({__scopeSwitch:e,control:a,checked:i,bubbles:o=!0,...c},d)=>{let p=r.useRef(null),u=(0,s.useComposedRefs)(p,d),h=(0,n.usePrevious)(i),m=(0,l.useSize)(a);return r.useEffect(()=>{let e=p.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==i&&t){let r=new Event("click",{bubbles:o});t.call(e,i),e.dispatchEvent(r)}},[h,i,o]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i,...c,tabIndex:-1,ref:u,style:{...c.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function w(e){return e?"checked":"unchecked"}g.displayName="SwitchBubbleInput",e.s(["Root",()=>x,"Switch",()=>x,"SwitchThumb",()=>b,"Thumb",()=>b,"createSwitchScope",()=>u],95291);var j=e.i(95291),j=j,v=e.i(31777);function y({className:e,size:r="default",...a}){return(0,t.jsx)(j.Root,{"data-slot":"switch","data-size":r,className:(0,v.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...a,children:(0,t.jsx)(j.Thumb,{"data-slot":"switch-thumb",className:(0,v.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]")})})}e.s(["Switch",()=>y],51911)},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),s=e.i(60112),i=e.i(21023);let o=(0,i.createServerReference)("400eea7773fea21ee8bcb0a43ff67109f25b4d8eb0",i.callServer,void 0,i.findSourceMapURL,"createFeature");e.i(41001);var n=e.i(64780),l=e.i(16868),c=e.i(83843),d=e.i(97667),p=e.i(53360),u=e.i(55016),h=e.i(91925),m=e.i(83428),x=e.i(81542),f=e.i(70471),b=e.i(59311),g=e.i(31777),w=e.i(8361);e.i(1650);var j=e.i(11495),v=e.i(45811),y=e.i(35364),C=e.i(98127),k=e.i(48306),N=e.i(41957),D=e.i(81846),T=e.i(90382),S=e.i(51911),P=e.i(2828),F=e.i(30153);e.i(50032);var E=e.i(86254);let R=(0,i.createServerReference)("40aba55631d7592d6a978635c41ead0b5ce09b28a3",i.callServer,void 0,i.findSourceMapURL,"getViewerPermission");var L=e.i(41413),z=e.i(25235),M=e.i(78521);e.i(13322);var I=e.i(61201),U=e.i(75921),A=e.i(41932),O=e.i(42076);let B=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),$={allowPrd:!1,allowPlan:!1,allowMerge:!1};function q({open:e,onClose:a,onSubmit:s,repositoryPath:i,isSubmitting:o=!1,workflowDefaults:c,features:d,repositories:h,initialParentId:m,currentAgentType:C,currentModel:T,initialDescription:z,canPushDirectly:M}){let I=(0,w.useSoundAction)("create"),{t:U}=(0,n.useTranslation)("web"),A=i&&(!h||0===h.length||h.some(e=>e.path===i))?i:"",q=c?.approvalGates??$,W=c?.push??!1,H=c?.openPr??!1,Z=c?.ciWatchEnabled!==!1,J=c?.enableEvidence??!1,V=c?.commitEvidence??!1,X=c?.fast!==!1,[Q,Y]=(0,r.useState)(z??"");(0,r.useEffect)(()=>{z&&Y(z)},[z]);let[_,ee]=(0,r.useState)([]),[et,er]=(0,r.useState)({...q}),[ea,es]=(0,r.useState)(W),[ei,eo]=(0,r.useState)(H),[en,el]=(0,r.useState)(c?.ciWatchEnabled!==!1),[ec,ed]=(0,r.useState)(J),[ep,eu]=(0,r.useState)(V),[eh,em]=(0,r.useState)(void 0),[ex,ef]=(0,r.useState)(X),[eb,eg]=(0,r.useState)(!1),[ew,ej]=(0,r.useState)(!1),[ev,ey]=(0,r.useState)(!0),[eC,ek]=(0,r.useState)(!0),[eN,eD]=(0,r.useState)(void 0),[eT,eS]=(0,r.useState)(void 0),[eP,eF]=(0,r.useState)(A||void 0),[eE,eR]=(0,r.useState)(h??[]),[eL,ez]=(0,r.useState)(!1),[eM,eI]=(0,r.useState)(null),[eU,eA]=(0,r.useState)(!1),eO=(0,r.useRef)(crypto.randomUUID()),eB=(0,r.useRef)(0),e$=(0,r.useRef)(null);(0,r.useEffect)(()=>{c&&(er({...c.approvalGates}),es(c.push),eo(c.openPr),el(!1!==c.ciWatchEnabled),ed(c.enableEvidence),eu(c.commitEvidence),ef(!1!==c.fast))},[c]),(0,r.useEffect)(()=>{eR(h??[])},[h]),(0,r.useEffect)(()=>{e&&m&&em(m)},[e,m]);let[eq,eG]=(0,r.useState)(M??!1);(0,r.useEffect)(()=>{eG(M??!1)},[M]);let eK=(0,r.useRef)(eP);(0,r.useEffect)(()=>{eP&&eP!==eK.current&&(eK.current=eP,R(eP).then(e=>eG(e.canPushDirectly)).catch(()=>eG(!1)))},[eP]),(0,r.useEffect)(()=>{eq&&(ej(!1),es(W),eo(H),ey(!0))},[eq,W,H]);let eW=(0,r.useCallback)(()=>{Y(""),ee([]),er({...q}),es(W),eo(H),el(Z),ed(J),eu(V),em(void 0),eF(A||void 0),eR(h??[]),ef(X),eg(!1),ej(!1),ey(!0),ek(!0),eD(void 0),eS(void 0),eI(null),eB.current=0,ez(!1)},[q,W,H,J,Z,V,X,A,h]),eH=""!==Q.trim()||_.length>0,{attemptClose:eZ}=(0,F.useGuardedDrawerClose)({open:e,isDirty:eH,onClose:a,onReset:eW}),eJ=(0,r.useCallback)(async e=>{for(let t of(eI(null),e)){if(t.size>0xa00000)return void eI(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!B.has(e))return void eI(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",eO.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let s=await a.json();ee(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}},[]),eV=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current+=1,1===eB.current&&ez(!0)},[]),eX=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current-=1,0===eB.current&&ez(!1)},[]),eQ=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),eY=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current=0,ez(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&eJ(t)},[eJ]),e_=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),eJ(r))},[eJ]),e0=(0,r.useCallback)(e=>{if(e.preventDefault(),!Q.trim())return;let t=eP??A;t&&(I.play(),s({description:Q.trim(),attachments:_.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:et.allowPrd??!1,allowPlan:et.allowPlan??!1,allowMerge:et.allowMerge??!1},push:!!ew||ea||ei,openPr:!!ew||ei,ciWatchEnabled:en,enableEvidence:ec,commitEvidence:ep,fast:ex,forkAndPr:ew,commitSpecs:ev,rebaseBeforeBranch:eC,...eb?{pending:eb}:{},...eN?{agentType:eN}:{},...eT?{model:eT}:{},...eh?{parentId:eh}:{},sessionId:eO.current}),eW())},[Q,_,et,eP,A,s,ea,ei,ec,en,ep,ex,ew,ev,eC,eb,eN,eT,eh,I,eW]),e1=(0,r.useCallback)(async()=>{try{let e=await (0,O.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:eO.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let a=await r.json();ee(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}}catch{}},[]),e5=(0,r.useCallback)(e=>{ee(t=>t.filter(t=>t.id!==e))},[]),e2=(0,r.useCallback)((e,t)=>{ee(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]),e3=(0,r.useRef)(null),e4=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),e3.current?.requestSubmit())},[]),e8=(0,r.useCallback)(()=>{eA(!0)},[]),e9=(0,r.useCallback)(()=>{setTimeout(()=>{let e=e$.current?.contains(document.activeElement),t=e$.current?.querySelector('[aria-expanded="true"]')!==null;e||t||eA(!1)},0)},[]),e6=d&&d.length>0,e7=!A&&!eP,te=!A&&void 0!==h,tt=[{id:"allowPrd",label:U("createDrawer.prd"),description:U("createDrawer.prdDescription")},{id:"allowPlan",label:U("createDrawer.plan"),description:U("createDrawer.planDescription")},{id:"allowMerge",label:U("createDrawer.merge"),description:U("createDrawer.mergeDescription")}];return(0,t.jsx)(j.BaseDrawer,{open:e,onClose:eZ,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(v.DrawerTitle,{children:U("createDrawer.title")})]}),o?(0,t.jsx)(v.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(D.Badge,{variant:"secondary",children:U("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(y.Button,{variant:"outline",onClick:eZ,disabled:o,children:U("createDrawer.cancel")}),(0,t.jsx)(y.Button,{type:"submit",form:"create-feature-form",disabled:!Q.trim()||o||e7,children:o?U("createDrawer.creating"):U("createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(P.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:e3,id:"create-feature-form",onSubmit:e0,onKeyDown:e4,className:"flex flex-col gap-4",children:[te?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)(K,{repositories:eE,value:eP,onChange:eF,onAddRepository:e=>{eR(t=>[...t,e]),eF(e.path)},disabled:o})]}):A?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:h?.find(e=>e.path===A)?.name??A.split("/").pop()})]}):null,(0,t.jsxs)("div",{role:"region","aria-label":U("createDrawer.fileDropZone"),"data-drag-over":eL?"true":"false",onDragEnter:eV,onDragLeave:eX,onDragOver:eQ,onDrop:eY,className:(0,g.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",eL&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(N.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:e$,onFocus:e8,onBlur:e9,className:(0,g.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",eU&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(k.Textarea,{id:"feature-description",placeholder:U("createDrawer.featurePlaceholder"),value:Q,onChange:e=>Y(e.target.value),onPaste:e_,required:!0,disabled:o,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),_.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:_.map(e=>(0,t.jsx)(E.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>e5(e.id),disabled:o,loading:e.loading,notes:e.notes,onNotesChange:t=>e2(e.id,t)},e.id))}),eM?(0,t.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:eM}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(L.AgentModelPicker,{initialAgentType:eN??C??"claude-code",initialModel:eT??T??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(e,t)=>{eD(e),eS(t)},disabled:o,className:"w-55"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"pending-mode",checked:eb,onCheckedChange:eg,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5"}),U("createDrawer.pendingMode")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.pendingModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"fast-mode",checked:ex,onCheckedChange:ef,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(p.Zap,{className:"h-3.5 w-3.5"}),U("createDrawer.fastModeLabel")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.fastModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:e1,disabled:o,"aria-label":U("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(l.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("chat.attachFiles")})]})]})]})]}),e6&&void 0!==m?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.parentFeature")}),(0,t.jsx)(G,{features:d,value:eh,onChange:em,disabled:o})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.approve")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:tt.map(e=>(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:`approve-${e.id}`,size:"sm",checked:et[e.id]??!1,onCheckedChange:t=>er(r=>({...r,[e.id]:t})),disabled:o||ex&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(N.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ex&&("allowPrd"===e.id||"allowPlan"===e.id)?U("createDrawer.skippedInFastMode"):e.description})]},e.id))}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=tt.every(e=>et[e.id]),t={};for(let r of tt)t[r.id]=!e;er(t)},disabled:o,className:(0,g.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",tt.every(e=>et[e.id])&&"text-primary"),children:U("createDrawer.all")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.toggleAllApprovalGates")})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.evidence")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"enable-evidence",size:"sm",checked:ec,onCheckedChange:e=>{ed(e),e||eu(!1)},disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.collect")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.collectDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-evidence",size:"sm",checked:ep,onCheckedChange:eu,disabled:o||!ec||!ei&&!ew}),(0,t.jsx)(N.Label,{htmlFor:"commit-evidence",className:(0,g.cn)("cursor-pointer text-xs font-medium",(!ec||!ei&&!ew)&&"opacity-50"),children:U("createDrawer.addToPr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ei||ew?ec?U("createDrawer.addToPrDescription"):U("createDrawer.requiresEvidence"):U("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:U("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"push",size:"sm",checked:!!ew||ea||ei,onCheckedChange:e=>{es(e),!e&&ei&&eo(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"push",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.push")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.pushDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"open-pr",size:"sm",checked:!!ew||ei,onCheckedChange:e=>{eo(e),e||eu(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"open-pr",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.pr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.prDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"ci-watch",size:"sm",checked:en,onCheckedChange:el,disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.watch")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"rebase-before-branch",size:"sm",checked:eC,onCheckedChange:ek,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(b.RefreshCw,{className:"h-3 w-3"}),U("createDrawer.sync")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.syncDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-specs",size:"sm",checked:ev,onCheckedChange:ey,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(f.FileText,{className:"h-3 w-3"}),U("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.commitSpecsDescription")})]}),!eq&&(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"fork-and-pr",size:"sm",checked:ew,onCheckedChange:e=>{ej(e),e&&ey(!1)},disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(x.GitFork,{className:"h-3 w-3"}),U("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function G({features:e,value:a,onChange:s,disabled:i}){let{t:o}=(0,n.useTranslation)("web"),[l,p]=(0,r.useState)(!1),[u,h]=(0,r.useState)(""),m=(0,r.useRef)(null),x=e.find(e=>e.id===a),f=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.id.toLowerCase().includes(u.toLowerCase())):e,b=(0,r.useCallback)(e=>{s(e),p(!1),h("")},[s]);return(0,r.useEffect)(()=>{l?setTimeout(()=>m.current?.focus(),0):h("")},[l]),(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":l,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!x&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:x?`${x.name} (${x.id.slice(0,8)})`:o("createDrawer.selectParent")}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:m,placeholder:o("createDrawer.searchFeatures"),value:u,onChange:e=>h(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>b(void 0),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o("createDrawer.noParent")})]}),0===f.length&&u?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:o("createDrawer.noFeaturesFound")}):f.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>b(e.id),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function K({repositories:e,value:a,onChange:s,onAddRepository:i,disabled:o}){let[l,p]=(0,r.useState)(!1),[u,x]=(0,r.useState)(""),[f,b]=(0,r.useState)(!1),[w,j]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),k=(0,r.useRef)(null),{reactFileManager:N}=(0,U.useFeatureFlags)(),{t:D}=(0,n.useTranslation)("web"),S=e.find(e=>e.path===a),P=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.path.toLowerCase().includes(u.toLowerCase())):e,F=(0,r.useCallback)(e=>{s(e),p(!1),x("")},[s]),E=(0,r.useCallback)(async e=>{let t=await (0,A.addRepository)({path:e});if(t.error){j(t.error),b(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};i?.(e),s(e.path),p(!1),x("")}},[i,s]),R=(0,r.useCallback)(async()=>{if(!f){if(N)return void y(!0);b(!0),j(null);try{let e=await (0,M.pickFolder)();if(!e)return void b(!1);await E(e)}catch{y(!0)}finally{b(!1)}}},[f,N,E]),L=(0,r.useCallback)(async e=>{if(y(!1),e){b(!0),j(null);try{await E(e)}catch(e){j(e instanceof Error?e.message:"Failed to add repository")}finally{b(!1)}}},[E]);return(0,r.useEffect)(()=>{l?setTimeout(()=>k.current?.focus(),0):x("")},[l]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":l,"aria-label":"Repository",disabled:o,"data-testid":"repository-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!S&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:S?S.name:"Select repository..."}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:k,placeholder:D("createDrawer.searchRepositories"),value:u,onChange:e=>x(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===P.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):P.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>F(e.path),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(z.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:R,disabled:f,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[f?(0,t.jsx)(m.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(h.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),w?(0,t.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:w}):null]})})]}),(0,t.jsx)(I.ReactFileManagerDialog,{open:v,onOpenChange:e=>{e||y(!1)},onSelect:L})]})}function W({repositoryPath:e,initialParentId:i,initialDescription:n,features:l,repositories:c,workflowDefaults:d,currentAgentType:p,currentModel:u,canPushDirectly:h}){let m=(0,a.useRouter)(),[x,f]=(0,r.useState)(!1),b=(0,a.usePathname)().startsWith("/create"),g=!x&&b;(0,r.useEffect)(()=>{!b&&x&&f(!1)},[b,x]);let w=(0,r.useCallback)(()=>{m.push("/")},[m]),j=(0,r.useCallback)(e=>{f(!0),m.push("/"),o(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[m]);return(0,t.jsx)(q,{open:g,onClose:w,onSubmit:j,repositoryPath:e,features:l,repositories:c,workflowDefaults:d,initialParentId:i,initialDescription:n,isSubmitting:x,currentAgentType:p,currentModel:u,canPushDirectly:h})}e.s(["CreateDrawerClient",()=>W],15203)}]);
|