@shepai/cli 1.76.0 → 1.77.0-pr244.422e487
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 +21 -0
- package/apis/json-schema/Settings.yaml +3 -0
- package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +1 -0
- package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +4 -1
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +5 -2
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -0
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
- 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 +7 -2
- package/dist/packages/core/src/domain/generated/output.d.ts +21 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +6 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +6 -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 +17 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +27 -0
- 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 +13 -3
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +220 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.js +66 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +10 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.d.ts +21 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.js +60 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +1 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.d.ts +25 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.js +176 -0
- package/dist/packages/core/src/infrastructure/services/settings.service.d.ts +10 -0
- package/dist/packages/core/src/infrastructure/services/settings.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/settings.service.js +15 -0
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +8 -3
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +2 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts +2 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/create-feature.js +3 -1
- package/dist/src/presentation/web/app/actions/load-settings.d.ts +9 -0
- package/dist/src/presentation/web/app/actions/load-settings.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/load-settings.js +33 -0
- package/dist/src/presentation/web/app/actions/update-settings.d.ts +11 -0
- package/dist/src/presentation/web/app/actions/update-settings.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/update-settings.js +45 -0
- package/dist/src/presentation/web/app/global-error.d.ts +7 -0
- package/dist/src/presentation/web/app/global-error.d.ts.map +1 -0
- package/dist/src/presentation/web/app/global-error.js +5 -0
- package/dist/src/presentation/web/app/settings/page.d.ts +4 -0
- package/dist/src/presentation/web/app/settings/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/settings/page.js +12 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +2 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +5 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +18 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +49 -0
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +28 -4
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +4 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +6 -3
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +71 -2
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts +6 -0
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +71 -0
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +36 -0
- package/dist/src/presentation/web/components/features/settings/database-settings-section.d.ts +6 -0
- package/dist/src/presentation/web/components/features/settings/database-settings-section.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/database-settings-section.js +8 -0
- package/dist/src/presentation/web/components/features/settings/database-settings-section.stories.d.ts +15 -0
- package/dist/src/presentation/web/components/features/settings/database-settings-section.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/database-settings-section.stories.js +22 -0
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts +6 -0
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.js +54 -0
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts +15 -0
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.js +27 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts +6 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +45 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +37 -0
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts +6 -0
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +68 -0
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +62 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts +8 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +21 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts +15 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +39 -0
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts +6 -0
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +76 -0
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +55 -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/ui/switch.d.ts +7 -0
- package/dist/src/presentation/web/components/ui/switch.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/switch.js +8 -0
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts +2 -0
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.js +4 -0
- package/dist/src/presentation/web/hooks/use-viewport-persistence.d.ts +1 -0
- package/dist/src/presentation/web/hooks/use-viewport-persistence.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/feature-flags.d.ts +14 -2
- package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/feature-flags.js +39 -4
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +1 -0
- package/web/.next/build-manifest.json +6 -6
- package/web/.next/cache/.previewinfo +1 -1
- package/web/.next/cache/.rscinfo +1 -1
- package/web/.next/cache/.tsbuildinfo +1 -1
- package/web/.next/cache/config.json +3 -3
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/routes-manifest.json +6 -0
- 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 +16 -16
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +8 -7
- 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]/page/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +8 -7
- 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]/page/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +8 -7
- 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)/create/page/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +16 -16
- package/web/.next/server/app/(dashboard)/create/page.js +8 -7
- 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]/page/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +8 -7
- 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 +14 -14
- package/web/.next/server/app/(dashboard)/page.js +8 -7
- 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]/page/build-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +8 -7
- 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 +4 -3
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page.js +9 -7
- 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/settings/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/settings/page/build-manifest.json +18 -0
- package/web/.next/server/app/settings/page/next-font-manifest.json +6 -0
- package/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/settings/page/server-reference-manifest.json +50 -0
- package/web/.next/server/app/settings/page.js +18 -0
- package/web/.next/server/app/settings/page.js.map +5 -0
- package/web/.next/server/app/settings/page.js.nft.json +1 -0
- package/web/.next/server/app/settings/page_client-reference-manifest.js +2 -0
- package/web/.next/server/app/skills/page/build-manifest.json +4 -4
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page.js +11 -8
- 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 +6 -6
- package/web/.next/server/app/tools/page.js +9 -7
- 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 +1 -1
- package/web/.next/server/app/version/page.js +8 -7
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +1 -0
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_190bdc35._.js +4 -0
- package/web/.next/server/chunks/ssr/{403f9_next_dist_6c821c12._.js.map → 403f9_next_dist_190bdc35._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_31ea46d3._.js +6 -0
- package/web/.next/server/chunks/ssr/403f9_next_dist_31ea46d3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/403f9_next_dist_c9d9b4d7._.js +6 -0
- package/web/.next/server/chunks/ssr/403f9_next_dist_c9d9b4d7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/403f9_next_dist_compiled_dc550646._.js +3 -0
- package/web/.next/server/chunks/ssr/403f9_next_dist_compiled_dc550646._.js.map +1 -0
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_3981ee1d._.js +3 -0
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_3981ee1d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js → 403f9_next_dist_esm_build_templates_app-page_2eacac96.js} +3 -3
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_2eacac96.js.map +1 -0
- package/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_c27615b6.js → 403f9_next_dist_esm_build_templates_app-page_46d6bf1b.js} +3 -3
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_46d6bf1b.js.map +1 -0
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js → server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_54b1e179.js} +3 -3
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_54b1e179.js.map +1 -0
- package/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_dbf21e04.js → 403f9_next_dist_esm_build_templates_app-page_6c70ecca.js} +3 -3
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_6c70ecca.js.map +1 -0
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js → server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c9978986.js} +3 -3
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c9978986.js.map +1 -0
- package/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_d302115b.js → 403f9_next_dist_esm_build_templates_app-page_ce6dae5d.js} +3 -3
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_ce6dae5d.js.map +1 -0
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d82f78f0.js +4 -0
- package/web/.next/server/chunks/ssr/{_884ddade._.js.map → 403f9_next_dist_esm_build_templates_app-page_d82f78f0.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/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0880ff0e._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__8a947500._.js.map → [root-of-the-server]__0880ff0e._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__c37779e6._.js → [root-of-the-server]__09af7f56._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__c37779e6._.js.map → [root-of-the-server]__09af7f56._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +4 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__6b17a22d._.js.map → [root-of-the-server]__11033878._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1e4ddb05._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1e4ddb05._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__6ee2450e._.js.map → [root-of-the-server]__23b5ca2c._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2f487654._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2f487654._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__249c74f6._.js.map → [root-of-the-server]__357d99f9._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5edfc56b._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__c18f84a4._.js.map → [root-of-the-server]__5edfc56b._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8c88ef55._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__fa87595c._.js.map → [root-of-the-server]__8c88ef55._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c0876a83._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c0876a83._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__2018e25f._.js.map → [root-of-the-server]__c3c963c6._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__3b4af5ae._.js.map → [root-of-the-server]__c9777776._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c9eacb2e._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c9eacb2e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fb243197._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fb243197._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +4 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__804c006d._.js.map → [root-of-the-server]__fdc75809._.js.map} +1 -1
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js → server/chunks/ssr/_16235e5e._.js} +3 -3
- package/web/.next/server/chunks/ssr/_16235e5e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_3a4c94e3._.js +3 -0
- package/web/.next/server/chunks/ssr/_3a4c94e3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_4b60a2b7._.js +3 -0
- package/web/.next/server/chunks/ssr/_4b60a2b7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_6645f218._.js +21 -0
- package/web/.next/server/chunks/ssr/_6645f218._.js.map +1 -0
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_ad8a094f._.js → server/chunks/ssr/_6887cba3._.js} +3 -3
- package/web/.next/server/chunks/ssr/_6887cba3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_6d5ca3fe._.js +3 -0
- package/web/.next/server/chunks/ssr/_6d5ca3fe._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_77989807._.js +3 -0
- package/web/.next/server/chunks/ssr/_77989807._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_800acf27._.js +3 -0
- package/web/.next/server/chunks/ssr/_800acf27._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{403f9_next_dist_6c821c12._.js → _8eeee4db._.js} +3 -3
- package/web/.next/server/chunks/ssr/_8eeee4db._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_9025abb8._.js +3 -0
- package/web/.next/server/chunks/ssr/_9025abb8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_9603ace6._.js +3 -0
- package/web/.next/server/chunks/ssr/_9603ace6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_ad771b49._.js +6 -0
- package/web/.next/server/chunks/ssr/_ad771b49._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_b11878f5._.js +3 -0
- package/web/.next/server/chunks/ssr/_b11878f5._.js.map +1 -0
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_3197d5cb._.js → server/chunks/ssr/_caf236b9._.js} +2 -2
- package/web/.next/server/chunks/ssr/_caf236b9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_ce38ef23._.js +9 -0
- package/web/.next/server/chunks/ssr/_ce38ef23._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_d13defa2._.js +3 -0
- package/web/.next/server/chunks/ssr/_d13defa2._.js.map +1 -0
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_884ddade._.js → server/chunks/ssr/_ed11dcd6._.js} +3 -3
- package/web/.next/server/chunks/ssr/_ed11dcd6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f0132aa7._.js +7 -0
- package/web/.next/server/chunks/ssr/_f0132aa7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f38b49fe._.js +3 -0
- package/web/.next/server/chunks/ssr/_f38b49fe._.js.map +1 -0
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js → server/chunks/ssr/_f4d222d6._.js} +3 -3
- package/web/.next/server/chunks/ssr/_f4d222d6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +3 -0
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +3 -0
- package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_global-error_tsx_14c389b5._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_global-error_tsx_14c389b5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_label_tsx_af3b4cd6._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_label_tsx_af3b4cd6._.js.map +1 -0
- 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 +59 -22
- package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/src/presentation/web/.next/app-path-routes-manifest.json +1 -0
- package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/routes-manifest.json +6 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +16 -16
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js +8 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +8 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +8 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +16 -16
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js +8 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +8 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js +8 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +8 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js +4 -3
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js +9 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/app-paths-manifest.json +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/build-manifest.json +18 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/next-font-manifest.json +6 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/server-reference-manifest.json +50 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js +18 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js.map +5 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js.nft.json +1 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page_client-reference-manifest.js +2 -0
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js +11 -8
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js +9 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/build-manifest.json +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js +8 -7
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app-paths-manifest.json +1 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_190bdc35._.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_31ea46d3._.js +6 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_c9d9b4d7._.js +6 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_compiled_dc550646._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_3981ee1d._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_2eacac96.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_c27615b6.js → 403f9_next_dist_esm_build_templates_app-page_46d6bf1b.js} +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_54b1e179.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_dbf21e04.js → 403f9_next_dist_esm_build_templates_app-page_6c70ecca.js} +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c9978986.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_ce6dae5d.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d82f78f0.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__0880ff0e._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{[root-of-the-server]__c37779e6._.js → [root-of-the-server]__09af7f56._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__1e4ddb05._.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2f487654._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__5edfc56b._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8c88ef55._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c0876a83._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c9eacb2e._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fb243197._.js +4 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +4 -0
- package/web/.next/{server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js → standalone/src/presentation/web/.next/server/chunks/ssr/_16235e5e._.js} +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_3a4c94e3._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_4b60a2b7._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_6645f218._.js +21 -0
- package/web/.next/{server/chunks/ssr/_ad8a094f._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_6887cba3._.js} +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_6d5ca3fe._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_77989807._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_800acf27._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{403f9_next_dist_6c821c12._.js → _8eeee4db._.js} +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9025abb8._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9603ace6._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ad771b49._.js +6 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_b11878f5._.js +3 -0
- package/web/.next/{server/chunks/ssr/_3197d5cb._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_caf236b9._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ce38ef23._.js +9 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_d13defa2._.js +3 -0
- package/web/.next/{server/chunks/ssr/_884ddade._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_ed11dcd6._.js} +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_f0132aa7._.js +7 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_f38b49fe._.js +3 -0
- package/web/.next/{server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js → standalone/src/presentation/web/.next/server/chunks/ssr/_f4d222d6._.js} +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_global-error_tsx_14c389b5._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_ui_label_tsx_af3b4cd6._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/middleware-build-manifest.js +4 -4
- package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +59 -22
- package/web/.next/standalone/src/presentation/web/app/actions/create-feature.ts +6 -1
- package/web/.next/standalone/src/presentation/web/app/actions/load-settings.ts +43 -0
- package/web/.next/standalone/src/presentation/web/app/actions/update-settings.ts +73 -0
- package/web/.next/standalone/src/presentation/web/app/global-error.tsx +23 -0
- package/web/.next/standalone/src/presentation/web/app/settings/page.tsx +27 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.tsx +57 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx +21 -0
- package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +32 -4
- package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +9 -4
- package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.stories.tsx +81 -2
- package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.tsx +1 -1
- package/web/.next/standalone/src/presentation/web/components/features/settings/agent-settings-section.stories.tsx +43 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/agent-settings-section.tsx +176 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/database-settings-section.stories.tsx +28 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/database-settings-section.tsx +43 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/environment-settings-section.stories.tsx +33 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/environment-settings-section.tsx +125 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.tsx +44 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/feature-flags-settings-section.tsx +94 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/notification-settings-section.stories.tsx +71 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/notification-settings-section.tsx +178 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/settings-page-client.stories.tsx +46 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/settings-page-client.tsx +60 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/workflow-settings-section.stories.tsx +62 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/workflow-settings-section.tsx +274 -0
- package/web/.next/standalone/src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx +7 -1
- package/web/.next/standalone/src/presentation/web/components/ui/switch.tsx +35 -0
- package/web/.next/standalone/src/presentation/web/hooks/use-graph-state.ts +7 -0
- package/web/.next/standalone/src/presentation/web/hooks/use-viewport-persistence.ts +2 -0
- package/web/.next/standalone/src/presentation/web/lib/feature-flags.ts +47 -4
- package/web/.next/standalone/src/presentation/web/server.js +1 -1
- package/web/.next/static/chunks/0c9c6fa052f30692.js +1 -0
- package/web/.next/static/chunks/12c0a9e7b566f998.css +2 -0
- package/web/.next/static/chunks/2500bf7056aaeff1.js +1 -0
- package/web/.next/static/chunks/27a80588cf4e08df.js +1 -0
- package/web/.next/static/chunks/27f7260befce4dea.js +1 -0
- package/web/.next/static/chunks/2bbd5c12e2c90c0c.js +1 -0
- package/web/.next/static/chunks/356ebc89a2a97627.js +1 -0
- package/web/.next/static/chunks/3b37508221559c80.js +1 -0
- package/web/.next/static/chunks/3e4dc2cc60a49743.js +1 -0
- package/web/.next/static/chunks/{716547ef8d13139d.js → 4d4a4111dec5f70f.js} +1 -1
- package/web/.next/static/chunks/700501f5ac2bb320.js +1 -0
- package/web/.next/static/chunks/736bef33b328e5e6.js +1 -0
- package/web/.next/static/chunks/8857165c23fc8fe5.js +1 -0
- package/web/.next/static/chunks/89aac43287d73b02.js +1 -0
- package/web/.next/static/chunks/9c74a889605bb2a3.js +1 -0
- package/web/.next/static/chunks/a5c6c77b79b9ed9b.js +1 -0
- package/web/.next/static/chunks/b1c0e555cf7bb4f8.js +1 -0
- package/web/.next/static/chunks/d0732d738a696000.js +1 -0
- package/web/.next/static/chunks/{07f00e2e73d322d2.js → d4d8f0a137bd2eb4.js} +3 -3
- package/web/.next/static/chunks/d9c55c5f00f6d29b.js +1 -0
- package/web/.next/static/chunks/db55ff93af6c8455.js +4 -0
- package/web/.next/static/chunks/{00adfce42dbbd5ef.js → f742ff5c1be2ef77.js} +1 -1
- package/web/.next/static/chunks/f97fd41212035056.js +11 -0
- package/web/.next/static/chunks/fa9742636bdfcce6.js +1 -0
- package/web/.next/static/chunks/{turbopack-05820f781f3ffc22.js → turbopack-3bdf15471eef2eec.js} +1 -1
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/types/link.d.ts +1 -0
- package/web/.next/types/routes.d.ts +2 -1
- package/web/.next/types/validator.ts +9 -0
- package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_builtin_global-error_5fefc4d7.js +0 -3
- package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_builtin_global-error_5fefc4d7.js.map +0 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_d738ab66._.js +0 -3
- package/web/.next/server/chunks/ssr/403f9_next_dist_d738ab66._.js.map +0 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js +0 -4
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js.map +0 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js.map +0 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js.map +0 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js.map +0 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c27615b6.js.map +0 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js.map +0 -1
- package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_dbf21e04.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__80e5bed2._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__80e5bed2._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c18f84a4._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e062a6de._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e062a6de._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fa87595c._.js +0 -3
- package/web/.next/server/chunks/ssr/_07c2a32a._.js +0 -9
- package/web/.next/server/chunks/ssr/_07c2a32a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +0 -3
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_3197d5cb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_380c6567._.js +0 -6
- package/web/.next/server/chunks/ssr/_380c6567._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_44cce4e0._.js +0 -4
- package/web/.next/server/chunks/ssr/_44cce4e0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5ee4f5a7._.js +0 -7
- package/web/.next/server/chunks/ssr/_5ee4f5a7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js +0 -3
- package/web/.next/server/chunks/ssr/_61351ed3._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js +0 -3
- package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_9f940437._.js +0 -3
- package/web/.next/server/chunks/ssr/_9f940437._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_a29296f0._.js +0 -3
- package/web/.next/server/chunks/ssr/_a29296f0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_a3854150._.js +0 -6
- package/web/.next/server/chunks/ssr/_a3854150._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_ad8a094f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_dc379243._.js +0 -4
- package/web/.next/server/chunks/ssr/_dc379243._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_e806976d._.js +0 -3
- package/web/.next/server/chunks/ssr/_e806976d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_tabs_tsx_b226ea9b._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_tabs_tsx_b226ea9b._.js.map +0 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_client_components_builtin_global-error_5fefc4d7.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_d738ab66._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js +0 -4
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +0 -4
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +0 -4
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +0 -4
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +0 -4
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +0 -4
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__80e5bed2._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c18f84a4._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e062a6de._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fa87595c._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_07c2a32a._.js +0 -9
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_380c6567._.js +0 -6
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_44cce4e0._.js +0 -4
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_5ee4f5a7._.js +0 -7
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9f940437._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_a29296f0._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_a3854150._.js +0 -6
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_dc379243._.js +0 -4
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_e806976d._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_ui_tabs_tsx_b226ea9b._.js +0 -3
- package/web/.next/static/chunks/11a6c88ffcbac93f.js +0 -1
- package/web/.next/static/chunks/1f5c93a8b939416d.js +0 -5
- package/web/.next/static/chunks/255140c45a023ff4.js +0 -1
- package/web/.next/static/chunks/293231ccc0b144fa.js +0 -1
- package/web/.next/static/chunks/3bc2a07d02372939.js +0 -1
- package/web/.next/static/chunks/3f205fd6adbfd20a.js +0 -7
- package/web/.next/static/chunks/424982cd78174a1a.js +0 -1
- package/web/.next/static/chunks/4a3b3cfcc85e7254.js +0 -1
- package/web/.next/static/chunks/5d0a6417c4e4e545.js +0 -1
- package/web/.next/static/chunks/6931ae67c2484ddf.js +0 -1
- package/web/.next/static/chunks/9215b6fb973482c5.js +0 -1
- package/web/.next/static/chunks/9a765e022ef2b815.js +0 -1
- package/web/.next/static/chunks/b6c507fc42d9a277.js +0 -1
- package/web/.next/static/chunks/c1dbeb3307dab443.js +0 -4
- package/web/.next/static/chunks/d7786685ec8efe10.js +0 -1
- package/web/.next/static/chunks/e12fff3b57456bc2.css +0 -2
- package/web/.next/static/chunks/edbd674102e897b4.js +0 -1
- /package/web/.next/static/{L6_6jZ4TnQuuDXIF5GZEf → OY9vo9JHlYYnBy-WPoYAQ}/_buildManifest.js +0 -0
- /package/web/.next/static/{L6_6jZ4TnQuuDXIF5GZEf → OY9vo9JHlYYnBy-WPoYAQ}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{L6_6jZ4TnQuuDXIF5GZEf → OY9vo9JHlYYnBy-WPoYAQ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useState, useTransition, useRef, useEffect } from 'react';
|
|
4
|
+
import { GitBranch, Check } from 'lucide-react';
|
|
5
|
+
import { toast } from 'sonner';
|
|
6
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
|
|
7
|
+
import { Label } from '@/components/ui/label';
|
|
8
|
+
import { Input } from '@/components/ui/input';
|
|
9
|
+
import { Switch } from '@/components/ui/switch';
|
|
10
|
+
import { Separator } from '@/components/ui/separator';
|
|
11
|
+
import { updateSettingsAction } from '@/app/actions/update-settings';
|
|
12
|
+
import type { WorkflowConfig } from '@shepai/core/domain/generated/output';
|
|
13
|
+
|
|
14
|
+
export interface WorkflowSettingsSectionProps {
|
|
15
|
+
workflow: WorkflowConfig;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function WorkflowSettingsSection({ workflow }: WorkflowSettingsSectionProps) {
|
|
19
|
+
const [openPr, setOpenPr] = useState(workflow.openPrOnImplementationComplete);
|
|
20
|
+
const [pushOnComplete, setPushOnComplete] = useState(
|
|
21
|
+
workflow.approvalGateDefaults.pushOnImplementationComplete
|
|
22
|
+
);
|
|
23
|
+
const [allowPrd, setAllowPrd] = useState(workflow.approvalGateDefaults.allowPrd);
|
|
24
|
+
const [allowPlan, setAllowPlan] = useState(workflow.approvalGateDefaults.allowPlan);
|
|
25
|
+
const [allowMerge, setAllowMerge] = useState(workflow.approvalGateDefaults.allowMerge);
|
|
26
|
+
const [ciMaxFix, setCiMaxFix] = useState(
|
|
27
|
+
workflow.ciMaxFixAttempts != null ? String(workflow.ciMaxFixAttempts) : ''
|
|
28
|
+
);
|
|
29
|
+
const [ciTimeout, setCiTimeout] = useState(
|
|
30
|
+
workflow.ciWatchTimeoutMs != null ? String(Math.round(workflow.ciWatchTimeoutMs / 1000)) : ''
|
|
31
|
+
);
|
|
32
|
+
const [ciLogMax, setCiLogMax] = useState(
|
|
33
|
+
workflow.ciLogMaxChars != null ? String(workflow.ciLogMaxChars) : ''
|
|
34
|
+
);
|
|
35
|
+
const [isPending, startTransition] = useTransition();
|
|
36
|
+
const [showSaved, setShowSaved] = useState(false);
|
|
37
|
+
const prevPendingRef = useRef(false);
|
|
38
|
+
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (prevPendingRef.current && !isPending) {
|
|
41
|
+
setShowSaved(true);
|
|
42
|
+
const timer = setTimeout(() => setShowSaved(false), 2000);
|
|
43
|
+
return () => clearTimeout(timer);
|
|
44
|
+
}
|
|
45
|
+
prevPendingRef.current = isPending;
|
|
46
|
+
}, [isPending]);
|
|
47
|
+
|
|
48
|
+
function parseOptionalInt(value: string): number | undefined {
|
|
49
|
+
if (value === '') return undefined;
|
|
50
|
+
const n = parseInt(value, 10);
|
|
51
|
+
return Number.isNaN(n) || n <= 0 ? undefined : n;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function buildPayload(
|
|
55
|
+
overrides: {
|
|
56
|
+
openPr?: boolean;
|
|
57
|
+
pushOnComplete?: boolean;
|
|
58
|
+
allowPrd?: boolean;
|
|
59
|
+
allowPlan?: boolean;
|
|
60
|
+
allowMerge?: boolean;
|
|
61
|
+
ciMaxFix?: string;
|
|
62
|
+
ciTimeout?: string;
|
|
63
|
+
ciLogMax?: string;
|
|
64
|
+
} = {}
|
|
65
|
+
) {
|
|
66
|
+
const timeoutSeconds = parseOptionalInt(overrides.ciTimeout ?? ciTimeout);
|
|
67
|
+
return {
|
|
68
|
+
workflow: {
|
|
69
|
+
openPrOnImplementationComplete: overrides.openPr ?? openPr,
|
|
70
|
+
approvalGateDefaults: {
|
|
71
|
+
pushOnImplementationComplete: overrides.pushOnComplete ?? pushOnComplete,
|
|
72
|
+
allowPrd: overrides.allowPrd ?? allowPrd,
|
|
73
|
+
allowPlan: overrides.allowPlan ?? allowPlan,
|
|
74
|
+
allowMerge: overrides.allowMerge ?? allowMerge,
|
|
75
|
+
},
|
|
76
|
+
ciMaxFixAttempts: parseOptionalInt(overrides.ciMaxFix ?? ciMaxFix),
|
|
77
|
+
ciWatchTimeoutMs: timeoutSeconds != null ? timeoutSeconds * 1000 : undefined,
|
|
78
|
+
ciLogMaxChars: parseOptionalInt(overrides.ciLogMax ?? ciLogMax),
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function save(overrides: Parameters<typeof buildPayload>[0] = {}) {
|
|
84
|
+
startTransition(async () => {
|
|
85
|
+
const result = await updateSettingsAction(buildPayload(overrides));
|
|
86
|
+
if (!result.success) {
|
|
87
|
+
toast.error(result.error ?? 'Failed to save workflow settings');
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function handleSwitchChange(
|
|
93
|
+
key: 'openPr' | 'pushOnComplete' | 'allowPrd' | 'allowPlan' | 'allowMerge',
|
|
94
|
+
setter: (v: boolean) => void,
|
|
95
|
+
value: boolean
|
|
96
|
+
) {
|
|
97
|
+
setter(value);
|
|
98
|
+
save({ [key]: value });
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function handleCiFieldBlur(
|
|
102
|
+
key: 'ciMaxFix' | 'ciTimeout' | 'ciLogMax',
|
|
103
|
+
currentValue: string,
|
|
104
|
+
originalValue: string
|
|
105
|
+
) {
|
|
106
|
+
if (currentValue !== originalValue) {
|
|
107
|
+
save({ [key]: currentValue });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const originalCiMaxFix =
|
|
112
|
+
workflow.ciMaxFixAttempts != null ? String(workflow.ciMaxFixAttempts) : '';
|
|
113
|
+
const originalCiTimeout =
|
|
114
|
+
workflow.ciWatchTimeoutMs != null ? String(Math.round(workflow.ciWatchTimeoutMs / 1000)) : '';
|
|
115
|
+
const originalCiLogMax = workflow.ciLogMaxChars != null ? String(workflow.ciLogMaxChars) : '';
|
|
116
|
+
|
|
117
|
+
return (
|
|
118
|
+
<Card id="workflow" className="scroll-mt-6" data-testid="workflow-settings-section">
|
|
119
|
+
<CardHeader>
|
|
120
|
+
<div className="flex items-center justify-between">
|
|
121
|
+
<div className="flex items-center gap-2">
|
|
122
|
+
<GitBranch className="text-muted-foreground h-4 w-4" />
|
|
123
|
+
<CardTitle>Workflow</CardTitle>
|
|
124
|
+
</div>
|
|
125
|
+
{isPending ? <span className="text-muted-foreground text-xs">Saving...</span> : null}
|
|
126
|
+
{showSaved && !isPending ? (
|
|
127
|
+
<span className="flex items-center gap-1 text-xs text-green-600">
|
|
128
|
+
<Check className="h-3 w-3" />
|
|
129
|
+
Saved
|
|
130
|
+
</span>
|
|
131
|
+
) : null}
|
|
132
|
+
</div>
|
|
133
|
+
<CardDescription>Configure PR behavior, approval gates, and CI settings</CardDescription>
|
|
134
|
+
</CardHeader>
|
|
135
|
+
<CardContent className="space-y-4">
|
|
136
|
+
<div className="space-y-3">
|
|
137
|
+
<div className="flex items-center justify-between gap-4">
|
|
138
|
+
<div className="space-y-0.5">
|
|
139
|
+
<Label htmlFor="open-pr">Open PR on implementation complete</Label>
|
|
140
|
+
<p className="text-muted-foreground text-xs">
|
|
141
|
+
Automatically create a pull request when the agent finishes
|
|
142
|
+
</p>
|
|
143
|
+
</div>
|
|
144
|
+
<Switch
|
|
145
|
+
id="open-pr"
|
|
146
|
+
data-testid="switch-open-pr"
|
|
147
|
+
checked={openPr}
|
|
148
|
+
onCheckedChange={(v) => handleSwitchChange('openPr', setOpenPr, v)}
|
|
149
|
+
/>
|
|
150
|
+
</div>
|
|
151
|
+
<div className="flex items-center justify-between gap-4">
|
|
152
|
+
<div className="space-y-0.5">
|
|
153
|
+
<Label htmlFor="push-on-complete">Push on implementation complete</Label>
|
|
154
|
+
<p className="text-muted-foreground text-xs">
|
|
155
|
+
Push the branch to remote when implementation is done
|
|
156
|
+
</p>
|
|
157
|
+
</div>
|
|
158
|
+
<Switch
|
|
159
|
+
id="push-on-complete"
|
|
160
|
+
data-testid="switch-push-on-complete"
|
|
161
|
+
checked={pushOnComplete}
|
|
162
|
+
onCheckedChange={(v) => handleSwitchChange('pushOnComplete', setPushOnComplete, v)}
|
|
163
|
+
/>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
<Separator />
|
|
168
|
+
|
|
169
|
+
<div className="space-y-3">
|
|
170
|
+
<h3 className="text-sm font-semibold">Approval Gates</h3>
|
|
171
|
+
<div className="flex items-center justify-between gap-4">
|
|
172
|
+
<div className="space-y-0.5">
|
|
173
|
+
<Label htmlFor="allow-prd">PRD auto-approval</Label>
|
|
174
|
+
<p className="text-muted-foreground text-xs">
|
|
175
|
+
Skip manual approval for product requirement documents
|
|
176
|
+
</p>
|
|
177
|
+
</div>
|
|
178
|
+
<Switch
|
|
179
|
+
id="allow-prd"
|
|
180
|
+
data-testid="switch-allow-prd"
|
|
181
|
+
checked={allowPrd}
|
|
182
|
+
onCheckedChange={(v) => handleSwitchChange('allowPrd', setAllowPrd, v)}
|
|
183
|
+
/>
|
|
184
|
+
</div>
|
|
185
|
+
<div className="flex items-center justify-between gap-4">
|
|
186
|
+
<div className="space-y-0.5">
|
|
187
|
+
<Label htmlFor="allow-plan">Plan auto-approval</Label>
|
|
188
|
+
<p className="text-muted-foreground text-xs">
|
|
189
|
+
Skip manual approval for implementation plans
|
|
190
|
+
</p>
|
|
191
|
+
</div>
|
|
192
|
+
<Switch
|
|
193
|
+
id="allow-plan"
|
|
194
|
+
data-testid="switch-allow-plan"
|
|
195
|
+
checked={allowPlan}
|
|
196
|
+
onCheckedChange={(v) => handleSwitchChange('allowPlan', setAllowPlan, v)}
|
|
197
|
+
/>
|
|
198
|
+
</div>
|
|
199
|
+
<div className="flex items-center justify-between gap-4">
|
|
200
|
+
<div className="space-y-0.5">
|
|
201
|
+
<Label htmlFor="allow-merge">Merge auto-approval</Label>
|
|
202
|
+
<p className="text-muted-foreground text-xs">Skip manual approval for PR merges</p>
|
|
203
|
+
</div>
|
|
204
|
+
<Switch
|
|
205
|
+
id="allow-merge"
|
|
206
|
+
data-testid="switch-allow-merge"
|
|
207
|
+
checked={allowMerge}
|
|
208
|
+
onCheckedChange={(v) => handleSwitchChange('allowMerge', setAllowMerge, v)}
|
|
209
|
+
/>
|
|
210
|
+
</div>
|
|
211
|
+
</div>
|
|
212
|
+
|
|
213
|
+
<Separator />
|
|
214
|
+
|
|
215
|
+
<div className="space-y-3">
|
|
216
|
+
<h3 className="text-sm font-semibold">CI Settings</h3>
|
|
217
|
+
<div className="space-y-1.5">
|
|
218
|
+
<Label htmlFor="ci-max-fix">Max fix attempts</Label>
|
|
219
|
+
<Input
|
|
220
|
+
id="ci-max-fix"
|
|
221
|
+
data-testid="ci-max-fix-input"
|
|
222
|
+
type="text"
|
|
223
|
+
inputMode="numeric"
|
|
224
|
+
pattern="[0-9]*"
|
|
225
|
+
min={1}
|
|
226
|
+
max={10}
|
|
227
|
+
placeholder="e.g., 3"
|
|
228
|
+
value={ciMaxFix}
|
|
229
|
+
onChange={(e) => setCiMaxFix(e.target.value)}
|
|
230
|
+
onBlur={() => handleCiFieldBlur('ciMaxFix', ciMaxFix, originalCiMaxFix)}
|
|
231
|
+
/>
|
|
232
|
+
<p className="text-muted-foreground text-xs">
|
|
233
|
+
How many times the agent retries fixing CI failures
|
|
234
|
+
</p>
|
|
235
|
+
</div>
|
|
236
|
+
<div className="space-y-1.5">
|
|
237
|
+
<Label htmlFor="ci-timeout">Watch timeout (seconds)</Label>
|
|
238
|
+
<Input
|
|
239
|
+
id="ci-timeout"
|
|
240
|
+
data-testid="ci-timeout-input"
|
|
241
|
+
type="text"
|
|
242
|
+
inputMode="numeric"
|
|
243
|
+
pattern="[0-9]*"
|
|
244
|
+
placeholder="e.g., 300"
|
|
245
|
+
value={ciTimeout}
|
|
246
|
+
onChange={(e) => setCiTimeout(e.target.value)}
|
|
247
|
+
onBlur={() => handleCiFieldBlur('ciTimeout', ciTimeout, originalCiTimeout)}
|
|
248
|
+
/>
|
|
249
|
+
<p className="text-muted-foreground text-xs">
|
|
250
|
+
How long to wait for CI to complete before timing out
|
|
251
|
+
</p>
|
|
252
|
+
</div>
|
|
253
|
+
<div className="space-y-1.5">
|
|
254
|
+
<Label htmlFor="ci-log-max">Max log characters</Label>
|
|
255
|
+
<Input
|
|
256
|
+
id="ci-log-max"
|
|
257
|
+
data-testid="ci-log-max-input"
|
|
258
|
+
type="text"
|
|
259
|
+
inputMode="numeric"
|
|
260
|
+
pattern="[0-9]*"
|
|
261
|
+
placeholder="e.g., 50000"
|
|
262
|
+
value={ciLogMax}
|
|
263
|
+
onChange={(e) => setCiLogMax(e.target.value)}
|
|
264
|
+
onBlur={() => handleCiFieldBlur('ciLogMax', ciLogMax, originalCiLogMax)}
|
|
265
|
+
/>
|
|
266
|
+
<p className="text-muted-foreground text-xs">
|
|
267
|
+
Maximum characters to capture from CI logs
|
|
268
|
+
</p>
|
|
269
|
+
</div>
|
|
270
|
+
</div>
|
|
271
|
+
</CardContent>
|
|
272
|
+
</Card>
|
|
273
|
+
);
|
|
274
|
+
}
|
package/web/.next/standalone/src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { usePathname } from 'next/navigation';
|
|
4
|
-
import { Home, Wrench, Puzzle, Plus } from 'lucide-react';
|
|
4
|
+
import { Home, Wrench, Puzzle, Plus, Settings } from 'lucide-react';
|
|
5
5
|
import {
|
|
6
6
|
Sidebar,
|
|
7
7
|
SidebarHeader,
|
|
@@ -89,6 +89,12 @@ export function AppSidebar({ features, onNewFeature, onFeatureClick }: AppSideba
|
|
|
89
89
|
active={pathname === '/skills'}
|
|
90
90
|
/>
|
|
91
91
|
) : null}
|
|
92
|
+
<SidebarNavItem
|
|
93
|
+
icon={Settings}
|
|
94
|
+
label="Settings"
|
|
95
|
+
href="/settings"
|
|
96
|
+
active={pathname === '/settings'}
|
|
97
|
+
/>
|
|
92
98
|
</SidebarMenu>
|
|
93
99
|
</SidebarHeader>
|
|
94
100
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Switch as SwitchPrimitive } from 'radix-ui';
|
|
5
|
+
|
|
6
|
+
import { cn } from '@/lib/utils';
|
|
7
|
+
|
|
8
|
+
function Switch({
|
|
9
|
+
className,
|
|
10
|
+
size = 'default',
|
|
11
|
+
...props
|
|
12
|
+
}: React.ComponentProps<typeof SwitchPrimitive.Root> & {
|
|
13
|
+
size?: 'sm' | 'default';
|
|
14
|
+
}) {
|
|
15
|
+
return (
|
|
16
|
+
<SwitchPrimitive.Root
|
|
17
|
+
data-slot="switch"
|
|
18
|
+
data-size={size}
|
|
19
|
+
className={cn(
|
|
20
|
+
'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 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',
|
|
21
|
+
className
|
|
22
|
+
)}
|
|
23
|
+
{...props}
|
|
24
|
+
>
|
|
25
|
+
<SwitchPrimitive.Thumb
|
|
26
|
+
data-slot="switch-thumb"
|
|
27
|
+
className={cn(
|
|
28
|
+
'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'
|
|
29
|
+
)}
|
|
30
|
+
/>
|
|
31
|
+
</SwitchPrimitive.Root>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { Switch };
|
|
@@ -45,6 +45,8 @@ export interface UseGraphStateReturn {
|
|
|
45
45
|
getFeatureRepositoryPath: (featureNodeId: string) => string | undefined;
|
|
46
46
|
/** Stable lookup: get repository node data by nodeId. */
|
|
47
47
|
getRepositoryData: (nodeId: string) => RepositoryNodeData | undefined;
|
|
48
|
+
/** Stable lookup: get the current number of repositories in the domain Map. */
|
|
49
|
+
getRepoMapSize: () => number;
|
|
48
50
|
/** Update callbacks injected into node data (does NOT trigger re-render). */
|
|
49
51
|
setCallbacks: (callbacks: GraphCallbacks) => void;
|
|
50
52
|
}
|
|
@@ -353,6 +355,10 @@ export function useGraphState(
|
|
|
353
355
|
return repoMapRef.current.get(nodeId)?.data;
|
|
354
356
|
}, []);
|
|
355
357
|
|
|
358
|
+
const getRepoMapSize = useCallback((): number => {
|
|
359
|
+
return repoMapRef.current.size;
|
|
360
|
+
}, []);
|
|
361
|
+
|
|
356
362
|
const setCallbacks = useCallback((callbacks: GraphCallbacks) => {
|
|
357
363
|
callbacksRef.current = callbacks;
|
|
358
364
|
}, []);
|
|
@@ -371,6 +377,7 @@ export function useGraphState(
|
|
|
371
377
|
replaceRepository,
|
|
372
378
|
getFeatureRepositoryPath,
|
|
373
379
|
getRepositoryData,
|
|
380
|
+
getRepoMapSize,
|
|
374
381
|
setCallbacks,
|
|
375
382
|
};
|
|
376
383
|
}
|
|
@@ -1,15 +1,58 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Feature flags for the web UI.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* DB-primary resolution: reads from Settings.featureFlags when available,
|
|
5
|
+
* falls back to NEXT_PUBLIC_ environment variables.
|
|
6
|
+
* The debug flag is DB-only (no env var fallback).
|
|
6
7
|
*/
|
|
7
8
|
|
|
9
|
+
import { hasSettings, getSettings } from '@shepai/core/infrastructure/services/settings.service';
|
|
10
|
+
|
|
8
11
|
function isEnabled(envVar: string | undefined): boolean {
|
|
9
12
|
return envVar === 'true' || envVar === '1';
|
|
10
13
|
}
|
|
11
14
|
|
|
15
|
+
export interface FeatureFlagsState {
|
|
16
|
+
skills: boolean;
|
|
17
|
+
envDeploy: boolean;
|
|
18
|
+
debug: boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function getFeatureFlags(): FeatureFlagsState {
|
|
22
|
+
try {
|
|
23
|
+
if (hasSettings()) {
|
|
24
|
+
const flags = getSettings().featureFlags;
|
|
25
|
+
if (flags) {
|
|
26
|
+
return {
|
|
27
|
+
skills: flags.skills,
|
|
28
|
+
envDeploy: flags.envDeploy,
|
|
29
|
+
debug: flags.debug,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
} catch {
|
|
34
|
+
// Settings not initialized (e.g., during build/SSG or client-side hydration)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
skills: isEnabled(process.env.NEXT_PUBLIC_FLAG_SKILLS),
|
|
39
|
+
envDeploy: isEnabled(process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY),
|
|
40
|
+
debug: false,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated Use getFeatureFlags() instead for DB-primary resolution.
|
|
46
|
+
* Kept for backward compatibility during migration.
|
|
47
|
+
*/
|
|
12
48
|
export const featureFlags = {
|
|
13
|
-
skills
|
|
14
|
-
|
|
49
|
+
get skills() {
|
|
50
|
+
return getFeatureFlags().skills;
|
|
51
|
+
},
|
|
52
|
+
get envDeploy() {
|
|
53
|
+
return getFeatureFlags().envDeploy;
|
|
54
|
+
},
|
|
55
|
+
get debug() {
|
|
56
|
+
return getFeatureFlags().debug;
|
|
57
|
+
},
|
|
15
58
|
} as const;
|
|
@@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
15
15
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
16
16
|
|
|
17
17
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
18
|
-
const nextConfig = {"env":{"NEXT_PUBLIC_SHEP_VERSION":"1.
|
|
18
|
+
const nextConfig = {"env":{"NEXT_PUBLIC_SHEP_VERSION":"1.77.0","NEXT_PUBLIC_SHEP_PACKAGE_NAME":"@shepai/cli","NEXT_PUBLIC_SHEP_DESCRIPTION":"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":true,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/cli/cli","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/runner/work/cli/cli"},"serverExternalPackages":["tsyringe","reflect-metadata","better-sqlite3","node:os","node:child_process","node:fs"],"distDirRoot":".next"}
|
|
19
19
|
|
|
20
20
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
21
21
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68304,51080,e=>{"use strict";var t=e.i(20314),s=e.i(79054),r=e.i(91967),a=e.i(22528),i=e.i(87342),l=e.i(5978),n=e.i(13123),o=e.i(87620),c=e.i(29297),d=e.i(36589),u=e.i(66033),m="rovingFocusGroup.onEntryFocus",f={bubbles:!1,cancelable:!0},h="RovingFocusGroup",[x,p,g]=(0,i.createCollection)(h),[v,y]=(0,a.createContextScope)(h,[g]),[b,j]=v(h),k=s.forwardRef((e,s)=>(0,t.jsx)(x.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(x.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(w,{...e,ref:s})})}));k.displayName=h;var w=s.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:i,orientation:n,loop:x=!1,dir:g,currentTabStopId:v,defaultCurrentTabStopId:y,onCurrentTabStopIdChange:j,onEntryFocus:k,preventScrollOnEntryFocus:w=!1,...N}=e,C=s.useRef(null),T=(0,l.useComposedRefs)(a,C),I=(0,u.useDirection)(g),[S,A]=(0,d.useControllableState)({prop:v,defaultProp:y??null,onChange:j,caller:h}),[z,E]=s.useState(!1),M=(0,c.useCallbackRef)(k),D=p(i),L=s.useRef(!1),[P,F]=s.useState(0);return s.useEffect(()=>{let e=C.current;if(e)return e.addEventListener(m,M),()=>e.removeEventListener(m,M)},[M]),(0,t.jsx)(b,{scope:i,orientation:n,dir:I,loop:x,currentTabStopId:S,onItemFocus:s.useCallback(e=>A(e),[A]),onItemShiftTab:s.useCallback(()=>E(!0),[]),onFocusableItemAdd:s.useCallback(()=>F(e=>e+1),[]),onFocusableItemRemove:s.useCallback(()=>F(e=>e-1),[]),children:(0,t.jsx)(o.Primitive.div,{tabIndex:z||0===P?-1:0,"data-orientation":n,...N,ref:T,style:{outline:"none",...e.style},onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,()=>{L.current=!0}),onFocus:(0,r.composeEventHandlers)(e.onFocus,e=>{let t=!L.current;if(e.target===e.currentTarget&&t&&!z){let t=new CustomEvent(m,f);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=D().filter(e=>e.focusable);R([e.find(e=>e.active),e.find(e=>e.id===S),...e].filter(Boolean).map(e=>e.ref.current),w)}}L.current=!1}),onBlur:(0,r.composeEventHandlers)(e.onBlur,()=>E(!1))})})}),N="RovingFocusGroupItem",C=s.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:i,focusable:l=!0,active:c=!1,tabStopId:d,children:u,...m}=e,f=(0,n.useId)(),h=d||f,g=j(N,i),v=g.currentTabStopId===h,y=p(i),{onFocusableItemAdd:b,onFocusableItemRemove:k,currentTabStopId:w}=g;return s.useEffect(()=>{if(l)return b(),()=>k()},[l,b,k]),(0,t.jsx)(x.ItemSlot,{scope:i,id:h,focusable:l,active:c,children:(0,t.jsx)(o.Primitive.span,{tabIndex:v?0:-1,"data-orientation":g.orientation,...m,ref:a,onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,e=>{l?g.onItemFocus(h):e.preventDefault()}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>g.onItemFocus(h)),onKeyDown:(0,r.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void g.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,s){var r;let a=(r=e.key,"rtl"!==s?r:"ArrowLeft"===r?"ArrowRight":"ArrowRight"===r?"ArrowLeft":r);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(a))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(a)))return T[a]}(e,g.orientation,g.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=y().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)a.reverse();else if("prev"===t||"next"===t){var s,r;"prev"===t&&a.reverse();let i=a.indexOf(e.currentTarget);a=g.loop?(s=a,r=i+1,s.map((e,t)=>s[(r+t)%s.length])):a.slice(i+1)}setTimeout(()=>R(a))}}),children:"function"==typeof u?u({isCurrentTabStop:v,hasTabStop:null!=w}):u})})});C.displayName=N;var T={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function R(e,t=!1){let s=document.activeElement;for(let r of e)if(r===s||(r.focus({preventScroll:t}),document.activeElement!==s))return}e.s(["Item",()=>C,"Root",()=>k,"createRovingFocusGroupScope",()=>y],51080);var I=e.i(85995),S="Tabs",[A,z]=(0,a.createContextScope)(S,[y]),E=y(),[M,D]=A(S),L=s.forwardRef((e,s)=>{let{__scopeTabs:r,value:a,onValueChange:i,defaultValue:l,orientation:c="horizontal",dir:m,activationMode:f="automatic",...h}=e,x=(0,u.useDirection)(m),[p,g]=(0,d.useControllableState)({prop:a,onChange:i,defaultProp:l??"",caller:S});return(0,t.jsx)(M,{scope:r,baseId:(0,n.useId)(),value:p,onValueChange:g,orientation:c,dir:x,activationMode:f,children:(0,t.jsx)(o.Primitive.div,{dir:x,"data-orientation":c,...h,ref:s})})});L.displayName=S;var P="TabsList",F=s.forwardRef((e,s)=>{let{__scopeTabs:r,loop:a=!0,...i}=e,l=D(P,r),n=E(r);return(0,t.jsx)(k,{asChild:!0,...n,orientation:l.orientation,dir:l.dir,loop:a,children:(0,t.jsx)(o.Primitive.div,{role:"tablist","aria-orientation":l.orientation,...i,ref:s})})});F.displayName=P;var O="TabsTrigger",B=s.forwardRef((e,s)=>{let{__scopeTabs:a,value:i,disabled:l=!1,...n}=e,c=D(O,a),d=E(a),u=q(c.baseId,i),m=K(c.baseId,i),f=i===c.value;return(0,t.jsx)(C,{asChild:!0,...d,focusable:!l,active:f,children:(0,t.jsx)(o.Primitive.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":m,"data-state":f?"active":"inactive","data-disabled":l?"":void 0,disabled:l,id:u,...n,ref:s,onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,e=>{l||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(i)}),onKeyDown:(0,r.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(i)}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==c.activationMode;f||l||!e||c.onValueChange(i)})})})});B.displayName=O;var H="TabsContent",V=s.forwardRef((e,r)=>{let{__scopeTabs:a,value:i,forceMount:l,children:n,...c}=e,d=D(H,a),u=q(d.baseId,i),m=K(d.baseId,i),f=i===d.value,h=s.useRef(f);return s.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(I.Presence,{present:l||f,children:({present:s})=>(0,t.jsx)(o.Primitive.div,{"data-state":f?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":u,hidden:!s,id:m,tabIndex:0,...c,ref:r,style:{...e.style,animationDuration:h.current?"0s":void 0},children:s&&n})})});function q(e,t){return`${e}-trigger-${t}`}function K(e,t){return`${e}-content-${t}`}V.displayName=H,e.s(["Content",()=>V,"List",()=>F,"Root",()=>L,"Tabs",()=>L,"TabsContent",()=>V,"TabsList",()=>F,"TabsTrigger",()=>B,"Trigger",()=>B,"createTabsScope",()=>z],43133);var $=e.i(43133),$=$,U=e.i(31777);let G=$.Root,_=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)($.List,{ref:r,className:(0,U.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",e),...s}));_.displayName=$.List.displayName;let W=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)($.Trigger,{ref:r,className:(0,U.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",e),...s}));W.displayName=$.Trigger.displayName;let X=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)($.Content,{ref:r,className:(0,U.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...s}));X.displayName=$.Content.displayName,e.s(["Tabs",()=>G,"TabsContent",()=>X,"TabsList",()=>_,"TabsTrigger",()=>W],68304)},87342,e=>{"use strict";var t=e.i(79054),s=e.i(22528),r=e.i(5978),a=e.i(86874),i=e.i(20314);function l(e){let l=e+"CollectionProvider",[n,o]=(0,s.createContextScope)(l),[c,d]=n(l,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:s,children:r}=e,a=t.default.useRef(null),l=t.default.useRef(new Map).current;return(0,i.jsx)(c,{scope:s,itemMap:l,collectionRef:a,children:r})};u.displayName=l;let m=e+"CollectionSlot",f=(0,a.createSlot)(m),h=t.default.forwardRef((e,t)=>{let{scope:s,children:a}=e,l=d(m,s),n=(0,r.useComposedRefs)(t,l.collectionRef);return(0,i.jsx)(f,{ref:n,children:a})});h.displayName=m;let x=e+"CollectionItemSlot",p="data-radix-collection-item",g=(0,a.createSlot)(x),v=t.default.forwardRef((e,s)=>{let{scope:a,children:l,...n}=e,o=t.default.useRef(null),c=(0,r.useComposedRefs)(s,o),u=d(x,a);return t.default.useEffect(()=>(u.itemMap.set(o,{ref:o,...n}),()=>void u.itemMap.delete(o))),(0,i.jsx)(g,{...{[p]:""},ref:c,children:l})});return v.displayName=x,[{Provider:u,Slot:h,ItemSlot:v},function(s){let r=d(e+"CollectionConsumer",s);return t.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,s)=>t.indexOf(e.ref.current)-t.indexOf(s.ref.current))},[r.collectionRef,r.itemMap])},o]}var n=new WeakMap;function o(e,t){var s,r;let a,i,l;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let n=(s=e,r=t,a=s.length,(l=(i=c(r))>=0?i:a+i)<0||l>=a?-1:l);return -1===n?void 0:e[n]}function c(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],n.set(this,!0)}set(e,t){return n.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,s){let r,a=this.has(t),i=this.#e.length,l=c(e),n=l>=0?l:i+l,o=n<0||n>=i?-1:n;if(o===this.size||a&&o===this.size-1||-1===o)return this.set(t,s),this;let d=this.size+ +!a;l<0&&n++;let u=[...this.#e],m=!1;for(let e=n;e<d;e++)if(n===e){let i=u[e];u[e]===t&&(i=u[e+1]),a&&this.delete(t),r=this.get(i),this.set(t,s)}else{m||u[e-1]!==t||(m=!0);let s=u[m?e:e-1],a=r;r=this.get(s),this.delete(s),this.set(s,a)}return this}with(t,s,r){let a=new e(this);return a.insert(t,s,r),a}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,s){let r=this.#e.indexOf(e);return -1===r?this:this.insert(r,t,s)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,s){let r=this.#e.indexOf(e);return -1===r?this:this.insert(r+1,t,s)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=o(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=o(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return o(this.#e,e)}from(e,t){let s=this.indexOf(e);if(-1===s)return;let r=s+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let s=this.indexOf(e);if(-1===s)return;let r=s+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let s=0;for(let r of this){if(Reflect.apply(e,t,[r,s,this]))return r;s++}}findIndex(e,t){let s=0;for(let r of this){if(Reflect.apply(e,t,[r,s,this]))return s;s++}return -1}filter(t,s){let r=[],a=0;for(let e of this)Reflect.apply(t,s,[e,a,this])&&r.push(e),a++;return new e(r)}map(t,s){let r=[],a=0;for(let e of this)r.push([e[0],Reflect.apply(t,s,[e,a,this])]),a++;return new e(r)}reduce(...e){let[t,s]=e,r=0,a=s??this.at(0);for(let s of this)a=0===r&&1===e.length?s:Reflect.apply(t,this,[a,s,r,this]),r++;return a}reduceRight(...e){let[t,s]=e,r=s??this.at(-1);for(let s=this.size-1;s>=0;s--){let a=this.at(s);r=s===this.size-1&&1===e.length?a:Reflect.apply(t,this,[r,a,s,this])}return r}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let s=this.keyAt(e),r=this.get(s);t.set(s,r)}return t}toSpliced(...t){let s=[...this.entries()];return s.splice(...t),new e(s)}slice(t,s){let r=new e,a=this.size-1;if(void 0===t)return r;t<0&&(t+=this.size),void 0!==s&&s>0&&(a=s-1);for(let e=t;e<=a;e++){let t=this.keyAt(e),s=this.get(t);r.set(t,s)}return r}every(e,t){let s=0;for(let r of this){if(!Reflect.apply(e,t,[r,s,this]))return!1;s++}return!0}some(e,t){let s=0;for(let r of this){if(Reflect.apply(e,t,[r,s,this]))return!0;s++}return!1}}),e.s(["createCollection",()=>l])},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},30090,e=>{"use strict";let t=(0,e.i(3645).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["default",()=>t])},54277,e=>{"use strict";var t=e.i(30090);e.s(["CircleX",()=>t.default])},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)},23925,e=>{"use strict";var t=e.i(1012);e.s(["Check",()=>t.default])},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},81846,e=>{"use strict";var t=e.i(20314),s=e.i(94237),r=e.i(31777);let a=(0,s.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i({className:e,variant:s,...i}){return(0,t.jsx)("div",{className:(0,r.cn)(a({variant:s}),e),...i})}e.s(["Badge",()=>i])},1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t])},95812,e=>{"use strict";let t=(0,e.i(3645).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],95812)},35e3,e=>{"use strict";var t=e.i(80986);e.s(["CheckCircle2",()=>t.default])},44412,e=>{"use strict";var t=e.i(20314),s=e.i(79054),r=e.i(81975),a=e.i(68304),i=e.i(31777),l=e.i(83428),n=e.i(3645);let o=(0,n.default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]),c=(0,n.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"}]]),d=(0,n.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var u=e.i(38573),m=e.i(49228),f=e.i(54277),h=e.i(95812),x=e.i(35e3);let p=(0,n.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var g=e.i(35364),v=e.i(2828),y=e.i(33548),b=e.i(23925),j=e.i(30702),k=e.i(11495);let w={linux:"Linux",darwin:"macOS",win32:"Windows"},N={ide:{label:"IDE",icon:d},"cli-agent":{label:"CLI Agent",icon:u.Terminal},vcs:{label:"VCS",icon:m.GitBranch},terminal:{label:"Terminal",icon:u.Terminal}};function C({status:e}){return"available"===e?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-100 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400",children:[(0,t.jsx)(b.Check,{className:"h-3 w-3"}),"Installed"]}):"error"===e?(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-full bg-red-100 px-2 py-0.5 text-xs font-medium text-red-700 dark:bg-red-900/30 dark:text-red-400",children:"Error"}):(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-full bg-amber-100 px-2 py-0.5 text-xs font-medium text-amber-700 dark:bg-amber-900/30 dark:text-amber-400",children:"Missing"})}function T({tool:e,open:r,onClose:a,onRefresh:i,autoStart:n}){let[u,m]=(0,s.useState)(!1),[f,h]=(0,s.useState)(!1),{logs:x,status:v,startInstall:T}=function(e){let[t,r]=(0,s.useState)([]),[a,i]=(0,s.useState)("idle"),[l,n]=(0,s.useState)(null),o=(0,s.useRef)(null),c=(0,s.useCallback)(()=>{o.current&&(o.current.close(),o.current=null)},[]);return(0,s.useEffect)(()=>c,[c]),{logs:t,status:a,result:l,startInstall:(0,s.useCallback)(()=>{c(),r([]),n(null),i("streaming");let t=new EventSource(`/api/tools/${e}/install/stream`);o.current=t,t.onmessage=e=>{r(t=>[...t,e.data])},t.addEventListener("done",e=>{let t=JSON.parse(e.data);n(t),i("error"===t.status?"error":"done"),c()}),t.onerror=()=>{i("error"),c()}},[e,c])}}(e.id),R=(0,s.useRef)(null),I=(0,s.useRef)(!0),S=(0,s.useRef)(!1),A="available"===e.status.status,z="error"===e.status.status,E=A&&!!e.openDirectory,M=!A&&!z&&e.autoInstall;async function D(){h(!0);try{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})}finally{h(!1)}}(0,s.useEffect)(()=>{r&&n&&M&&"idle"===v&&!S.current&&(S.current=!0,T()),r||(S.current=!1)},[r,n,M,v,T]);let L=(0,s.useCallback)(()=>{let e=R.current;e&&(I.current=e.scrollTop+e.clientHeight>=e.scrollHeight-50)},[]);(0,s.useEffect)(()=>{I.current&&R.current&&(R.current.scrollTop=R.current.scrollHeight)},[x,v]),(0,s.useEffect)(()=>{"done"===v&&i&&i()},[v,i]);let P=(0,t.jsxs)("div",{className:"flex flex-col gap-1.5 pr-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:24,height:24,className:"shrink-0 dark:invert"}):(0,t.jsx)(p,{className:"text-muted-foreground h-6 w-6 shrink-0"}),(0,t.jsx)("h2",{className:"text-base font-bold",children:e.name}),(0,t.jsx)(C,{status:e.status.status})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:e.tags.map(e=>{let s=N[e]??{label:e,icon:d},r=s.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[10px]",children:[(0,t.jsx)(r,{className:"h-3 w-3"}),s.label]},e)})})]});return(0,t.jsx)(k.BaseDrawer,{open:r,onClose:a,size:"md",modal:!0,title:e.name,header:P,"data-testid":"tool-detail-drawer",children:(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-4 overflow-y-auto p-4",children:[(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:e.description}),e.author||e.platforms?(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs",children:[e.author?(0,t.jsxs)("span",{className:"text-muted-foreground",children:["by"," ",e.website?(0,t.jsx)("a",{href:e.website,target:"_blank",rel:"noopener noreferrer",className:"text-foreground hover:underline",children:e.author}):(0,t.jsx)("span",{className:"text-foreground",children:e.author})]}):null,e.platforms&&e.platforms.length>0?(0,t.jsx)("span",{className:"text-muted-foreground",children:e.platforms.map(e=>w[e]??e).join(" · ")}):null]}):null,e.installCommand?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:"Install command"}),(0,t.jsxs)("div",{className:"relative rounded-md bg-zinc-900 text-zinc-100",children:[(0,t.jsx)("pre",{className:"overflow-x-auto px-3 py-2.5 pr-16 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap",children:(0,t.jsx)("code",{children:e.installCommand})}),(0,t.jsxs)(g.Button,{variant:"ghost",size:"sm",className:"absolute top-1.5 right-1.5 h-7 cursor-pointer px-2 text-zinc-400 hover:text-zinc-100",onClick:function(){e.installCommand&&navigator.clipboard.writeText(e.installCommand).then(()=>{m(!0),setTimeout(()=>m(!1),2e3)})},"aria-label":u?"Copied!":"Copy install command",children:[u?(0,t.jsx)(b.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(y.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1 text-[10px]",children:u?"Copied!":"Copy"})]})]})]}):null,(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[M?(0,t.jsxs)(g.Button,{size:"sm",onClick:T,disabled:"streaming"===v,"aria-label":`Install ${e.name}`,className:"cursor-pointer",children:["streaming"===v?(0,t.jsx)(l.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(c,{className:"mr-1.5 h-3.5 w-3.5"}),"streaming"===v?"Installing...":"Install"]}):null,E?(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:()=>void D(),disabled:f,"aria-label":`Launch ${e.name}`,className:"cursor-pointer",children:[f?(0,t.jsx)(l.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(o,{className:"mr-1.5 h-3.5 w-3.5"}),"Launch"]}):null,e.documentationUrl?(0,t.jsx)(g.Button,{variant:"outline",size:"sm",className:"cursor-pointer",asChild:!0,children:(0,t.jsxs)("a",{href:e.documentationUrl,target:"_blank",rel:"noopener noreferrer",children:["Docs",(0,t.jsx)(j.ExternalLink,{className:"ml-1 h-3 w-3"})]})}):null]}),("streaming"===v||"done"===v||"error"===v)&&x.length>0?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:"Install log"}),(0,t.jsxs)("div",{ref:R,onScroll:L,className:"max-h-60 overflow-auto rounded-md bg-zinc-900 p-3 font-mono text-xs leading-relaxed text-zinc-100","data-testid":"tool-install-log",children:[x.map((e,s)=>(0,t.jsx)("div",{className:"break-all whitespace-pre-wrap",children:e},s)),"done"===v?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-emerald-400",children:"Installation complete"}):null,"error"===v?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-red-400",children:"Installation failed"}):null]})]}):null]})})}let R={ide:{label:"IDE",icon:d},"cli-agent":{label:"CLI Agent",icon:u.Terminal},vcs:{label:"VCS",icon:m.GitBranch},terminal:{label:"Terminal",icon:u.Terminal}};function I({tool:e,onRefresh:r,className:a}){let[n,u]=(0,s.useState)(!1),[m,y]=(0,s.useState)(!1),[b,j]=(0,s.useTransition)(),k="available"===e.status.status,w="error"===e.status.status,N=k&&!!e.openDirectory;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{"data-testid":"tool-card",onClick:function(){y(!1),u(!0)},className:(0,i.cn)("bg-card group flex h-30 w-full cursor-pointer flex-col rounded-lg border p-3 transition-shadow hover:shadow-md",a),children:[(0,t.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:20,height:20,className:"shrink-0 dark:invert"}):(0,t.jsx)(p,{className:"text-muted-foreground h-5 w-5 shrink-0"}),(0,t.jsx)("h3",{"data-testid":"tool-card-name",className:"truncate text-sm font-bold",children:e.name})]}),(0,t.jsx)("div",{"data-testid":"tool-card-tags",className:"flex shrink-0 items-center gap-1",children:e.tags.map(e=>{let s=R[e]??{label:e,icon:d},r=s.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[9px]",children:[(0,t.jsx)(r,{className:"h-2.5 w-2.5"}),s.label]},e)})})]}),(0,t.jsx)("p",{"data-testid":"tool-card-summary",className:"text-muted-foreground mt-1 truncate text-xs",children:e.summary}),(0,t.jsxs)("div",{className:"mt-auto flex items-center justify-between pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[w&&"error"===e.status.status?(0,t.jsxs)("span",{className:"flex items-center gap-1 truncate text-[10px] text-red-600 dark:text-red-400",title:e.status.errorMessage,children:[(0,t.jsx)(f.CircleX,{className:"h-3 w-3 shrink-0"}),e.status.errorMessage??"Error"]}):k?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(x.CheckCircle2,{className:"h-3 w-3"}),"Installed"]}):(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-[10px]",children:[(0,t.jsx)(h.Circle,{className:"h-3 w-3"}),"Not installed"]}),e.required?(0,t.jsx)(v.TooltipProvider,{children:(0,t.jsxs)(v.Tooltip,{children:[(0,t.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[9px] font-medium text-amber-700 dark:bg-amber-900/50 dark:text-amber-400",children:"Required"})}),(0,t.jsx)(v.TooltipContent,{side:"top",children:"This tool is required for Shep to function properly"})]})}):null]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:k&&N?(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:function(t){t.stopPropagation(),j(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:b,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[b?(0,t.jsx)(l.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(o,{className:"mr-1 h-3 w-3"}),"Launch"]}):k||w?null:(0,t.jsxs)(g.Button,{size:"sm",variant:"default",onClick:function(t){t.stopPropagation(),y(e.autoInstall),u(!0)},"aria-label":`Install ${e.name}`,"data-testid":"tool-card-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[(0,t.jsx)(c,{className:"mr-1 h-3 w-3"}),"Install"]})})]})]}),(0,t.jsx)(T,{tool:e,open:n,onClose:()=>u(!1),onRefresh:r,autoStart:m})]})}let S={all:()=>!0,ide:e=>e.tags.includes("ide"),"cli-agent":e=>e.tags.includes("cli-agent"),vcs:e=>e.tags.includes("vcs"),terminal:e=>e.tags.includes("terminal")};function A({tools:e,className:l}){let[n,o]=(0,s.useState)(e),[c,d]=(0,s.useState)("all"),u=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}},[]),m=n.filter(S[c]);return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,i.cn)("space-y-4",l),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(r.Wrench,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Tools"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:[n.filter(e=>"available"===e.status.status).length,"/",n.length," installed"]})]}),(0,t.jsxs)(a.Tabs,{value:c,onValueChange:e=>d(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(a.TabsList,{className:"h-7",children:[(0,t.jsx)(a.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"px-2.5 text-xs",children:"All"}),(0,t.jsx)(a.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"px-2.5 text-xs",children:"IDEs"}),(0,t.jsx)(a.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"px-2.5 text-xs",children:"CLI Agents"}),(0,t.jsx)(a.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"px-2.5 text-xs",children:"Version Control"}),(0,t.jsx)(a.TabsTrigger,{value:"terminal","data-testid":"tools-tab-terminal",className:"px-2.5 text-xs",children:"Terminals"})]}),(0,t.jsx)(a.TabsContent,{value:c,className:"mt-3",children:0===m.length?(0,t.jsxs)("div",{"data-testid":"tools-page-empty",className:"text-muted-foreground flex flex-col items-center justify-center py-12 text-center",children:[(0,t.jsx)(r.Wrench,{className:"mb-2 h-6 w-6 opacity-20"}),(0,t.jsx)("p",{className:"text-xs",children:"No tools in this category."})]}):(0,t.jsx)("div",{"data-testid":"tools-page-grid",className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:m.map(e=>(0,t.jsx)(I,{tool:e,onRefresh:u},e.id))})})]})]})}e.s(["ToolsPageClient",()=>A],44412)}]);
|