@shepai/cli 1.77.2 → 1.78.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apis/json-schema/AgentRun.yaml +3 -0
- package/apis/json-schema/ModelConfiguration.yaml +5 -20
- package/dist/packages/core/src/application/ports/output/agents/agent-executor-factory.interface.d.ts +8 -0
- package/dist/packages/core/src/application/ports/output/agents/agent-executor-factory.interface.d.ts.map +1 -1
- 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/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +1 -0
- 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 +9 -2
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +4 -0
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -0
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts +3 -3
- 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 +5 -8
- package/dist/packages/core/src/domain/generated/output.d.ts +7 -15
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/agent-run.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/agent-run.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/agent-run.mapper.js +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +8 -10
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +22 -3
- package/dist/packages/core/src/infrastructure/repositories/agent-run.repository.js +2 -2
- 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 +3 -2
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts +8 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +37 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +3 -2
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.js +3 -2
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.js +3 -2
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/mock-executor-factory.service.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/mock-executor-factory.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/mock-executor-factory.service.js +3 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +5 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +17 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
- 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 +35 -8
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.d.ts +25 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.js +34 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +1 -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 +6 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +4 -0
- package/dist/packages/core/src/infrastructure/services/settings.service.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/settings.service.js +1 -1
- 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/cli/commands/feat/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/show.command.js +13 -0
- package/dist/src/presentation/cli/commands/settings/index.d.ts +1 -0
- package/dist/src/presentation/cli/commands/settings/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/index.js +4 -1
- package/dist/src/presentation/cli/commands/settings/model.command.d.ts +17 -0
- package/dist/src/presentation/cli/commands/settings/model.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/settings/model.command.js +62 -0
- package/dist/src/presentation/cli/ui/tables.d.ts.map +1 -1
- package/dist/src/presentation/cli/ui/tables.js +6 -23
- package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.js +3 -1
- package/dist/src/presentation/web/app/actions/create-feature.d.ts +4 -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 +5 -1
- package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts +12 -0
- package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-all-agent-models.js +49 -0
- package/dist/src/presentation/web/app/actions/get-supported-models.d.ts +11 -0
- package/dist/src/presentation/web/app/actions/get-supported-models.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-supported-models.js +24 -0
- package/dist/src/presentation/web/app/actions/update-agent-and-model.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/update-agent-and-model.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/update-agent-and-model.js +28 -0
- package/dist/src/presentation/web/app/actions/update-model.d.ts +15 -0
- package/dist/src/presentation/web/app/actions/update-model.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/update-model.js +35 -0
- package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-feature-node-data.js +1 -0
- package/dist/src/presentation/web/app/build-graph-nodes.js +1 -0
- package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts +3 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.js +2 -2
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +9 -1
- 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 +29 -4
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +5 -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 +32 -3
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.d.ts +3 -1
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.js +6 -2
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.js +15 -0
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts +2 -0
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.js +11 -2
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +2 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.js +9 -6
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +19 -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 +2 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +59 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts +11 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +103 -0
- package/dist/src/presentation/web/components/features/settings/ModelPicker/ModelPicker.stories.d.ts +24 -0
- package/dist/src/presentation/web/components/features/settings/ModelPicker/ModelPicker.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/ModelPicker/ModelPicker.stories.js +53 -0
- package/dist/src/presentation/web/components/features/settings/ModelPicker/index.d.ts +18 -0
- package/dist/src/presentation/web/components/features/settings/ModelPicker/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/ModelPicker/index.js +84 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +7 -21
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts +2 -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 +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +28 -3
- package/dist/src/presentation/web/components/ui/checkbox-group-item.js +1 -1
- package/dist/src/presentation/web/components/ui/checkbox-group.js +1 -1
- package/dist/src/presentation/web/components/ui/command.d.ts +19 -0
- package/dist/src/presentation/web/components/ui/command.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/command.js +26 -0
- package/dist/src/presentation/web/components/ui/switch.js +1 -1
- package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts +2 -0
- package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/model-metadata.d.ts +6 -0
- package/dist/src/presentation/web/lib/model-metadata.d.ts.map +1 -0
- package/dist/src/presentation/web/lib/model-metadata.js +41 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +4 -4
- 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/server/app/(dashboard)/@drawer/create/page/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +62 -32
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
- 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 +2 -2
- 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.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 +2 -2
- 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.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 +2 -2
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +62 -32
- package/web/.next/server/app/(dashboard)/create/page.js +1 -1
- 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 +2 -2
- 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.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 +2 -2
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
- 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 +2 -2
- 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.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 +2 -2
- 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 +2 -2
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/build-manifest.json +2 -2
- package/web/.next/server/app/settings/page/server-reference-manifest.json +36 -6
- package/web/.next/server/app/settings/page.js +2 -2
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/build-manifest.json +2 -2
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- 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 +2 -2
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- 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 +2 -2
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.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/7f428_lucide-react_dist_esm_icons_c7cfe351._.js +3 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_c7cfe351._.js.map +1 -0
- 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]__11033878._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js.map +1 -0
- 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]__bff2deea._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bff2deea._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d076a90b._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d076a90b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0bd0fafb._.js +9 -0
- package/web/.next/server/chunks/ssr/_0bd0fafb._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_14fa79b2._.js +3 -0
- package/web/.next/server/chunks/ssr/_14fa79b2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -1
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_6645f218._.js → server/chunks/ssr/_8dacd1e7._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_6645f218._.js.map → _8dacd1e7._.js.map} +1 -1
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_8a93b402._.js → server/chunks/ssr/_91588d08._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_8a93b402._.js.map → _91588d08._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_9ac70f88._.js +5 -0
- package/web/.next/server/chunks/ssr/_9ac70f88._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_a37f5f18._.js +1 -1
- package/web/.next/server/chunks/ssr/_a37f5f18._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_88c4dab8._.js → _b5fc318a._.js} +2 -2
- package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_cbffd0e9._.js +3 -0
- package/web/.next/server/chunks/ssr/_cbffd0e9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_d4b20e29._.js +1 -1
- package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ed356507._.js +3 -0
- package/web/.next/server/chunks/ssr/{_5428b384._.js.map → _ed356507._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_ef9046a1._.js +3 -0
- package/web/.next/server/chunks/ssr/_ef9046a1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1fcecd3a._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1fcecd3a._.js.map +1 -0
- 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_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 +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +6 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.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_e4510d10._.js +6 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -0
- package/web/.next/server/middleware-build-manifest.js +2 -2
- 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 +117 -59
- package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +4 -4
- 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/server/app/(dashboard)/@drawer/create/page/build-manifest.json +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +62 -32
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
- 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 +2 -2
- 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.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 +2 -2
- 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.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 +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +62 -32
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js +1 -1
- 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 +2 -2
- 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.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 +2 -2
- 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.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 +2 -2
- 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.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 +2 -2
- 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 +2 -2
- 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.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/build-manifest.json +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/server-reference-manifest.json +36 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/build-manifest.json +2 -2
- 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.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 +2 -2
- 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.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 +2 -2
- 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.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/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/7f428_lucide-react_dist_esm_icons_c7cfe351._.js +3 -0
- 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]__11033878._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +4 -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]__bff2deea._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__d076a90b._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0bd0fafb._.js +9 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_14fa79b2._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/{server/chunks/ssr/_6645f218._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_8dacd1e7._.js} +2 -2
- package/web/.next/{server/chunks/ssr/_8a93b402._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_91588d08._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9ac70f88._.js +5 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_a37f5f18._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_88c4dab8._.js → _b5fc318a._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_cbffd0e9._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_d4b20e29._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ed356507._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ef9046a1._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/node_modules__pnpm_1fcecd3a._.js +3 -0
- 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_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 +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +6 -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_e4510d10._.js +6 -0
- package/web/.next/standalone/src/presentation/web/.next/server/middleware-build-manifest.js +2 -2
- 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 +117 -59
- package/web/.next/standalone/src/presentation/web/app/(dashboard)/@drawer/create/page.tsx +4 -0
- package/web/.next/standalone/src/presentation/web/app/actions/create-feature.ts +20 -2
- package/web/.next/standalone/src/presentation/web/app/actions/get-all-agent-models.ts +65 -0
- package/web/.next/standalone/src/presentation/web/app/actions/get-supported-models.ts +26 -0
- package/web/.next/standalone/src/presentation/web/app/actions/update-agent-and-model.ts +41 -0
- package/web/.next/standalone/src/presentation/web/app/actions/update-model.ts +45 -0
- package/web/.next/standalone/src/presentation/web/app/build-feature-node-data.ts +1 -0
- package/web/.next/standalone/src/presentation/web/app/build-graph-nodes.ts +1 -0
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx +6 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.tsx +56 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx +238 -118
- package/web/.next/standalone/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.tsx +16 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-list-item/feature-list-item.tsx +33 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/agent-type-icons.tsx +54 -2
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node-state-config.ts +2 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.stories.tsx +19 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.tsx +38 -16
- package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +4 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.tsx +72 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/AgentModelPicker/index.tsx +228 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/ModelPicker/ModelPicker.stories.tsx +64 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/ModelPicker/index.tsx +167 -0
- package/web/.next/standalone/src/presentation/web/components/features/settings/settings-page-client.tsx +25 -41
- package/web/.next/standalone/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.tsx +28 -3
- package/web/.next/standalone/src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx +4 -0
- package/web/.next/standalone/src/presentation/web/components/ui/checkbox-group-item.tsx +1 -1
- package/web/.next/standalone/src/presentation/web/components/ui/checkbox-group.tsx +1 -1
- package/web/.next/standalone/src/presentation/web/components/ui/command.tsx +114 -0
- package/web/.next/standalone/src/presentation/web/components/ui/switch.tsx +1 -1
- package/web/.next/standalone/src/presentation/web/hooks/sidebar-features-context.tsx +2 -0
- package/web/.next/standalone/src/presentation/web/lib/model-metadata.ts +51 -0
- package/web/.next/standalone/src/presentation/web/server.js +1 -1
- package/web/.next/static/chunks/00bf58dc5071b119.js +1 -0
- package/web/.next/static/chunks/259d3d57e8cfa8a9.js +1 -0
- package/web/.next/static/chunks/{db3fc2ad5e82988a.js → 25db6b51953c2374.js} +1 -1
- package/web/.next/static/chunks/305c7a91027868ab.js +1 -0
- package/web/.next/static/chunks/{97908acfe33c0773.js → 32db703f00225a79.js} +1 -1
- package/web/.next/static/chunks/390b75b02f665809.js +1 -0
- package/web/.next/static/chunks/42bd17823c7f41a1.css +2 -0
- package/web/.next/static/chunks/4ea1b4276f27110b.js +1 -0
- package/web/.next/static/chunks/51454a23ce051ec9.js +1 -0
- package/web/.next/static/chunks/{98e3a7cf58fc912a.js → 672e3da3ad26005b.js} +1 -1
- package/web/.next/static/chunks/7acc79e599df9890.js +1 -0
- package/web/.next/static/chunks/{36d88ff9f7db4eb9.js → 876edf7bbd901942.js} +1 -1
- package/web/.next/static/chunks/8f122c3ac2102300.js +11 -0
- package/web/.next/static/chunks/{1e540786c8710d66.js → a06258d572f4492c.js} +1 -1
- package/web/.next/static/chunks/a1ddf1f9b1435434.js +3 -0
- package/web/.next/static/chunks/{ed9e614e536c06de.js → b9a0a65afea061c5.js} +1 -1
- package/web/.next/static/chunks/c8b2868ae430a586.js +1 -0
- package/web/.next/static/chunks/{b7f32185dc5f8480.js → d1818ddcad8d7b31.js} +2 -2
- package/web/.next/static/chunks/{89aac43287d73b02.js → ed3a602003bcb31b.js} +1 -1
- package/web/.next/static/chunks/f492adb2f80408c6.js +1 -0
- package/web/.next/static/chunks/{turbopack-080e470ea902d0ba.js → turbopack-426d9bc2450816ba.js} +1 -1
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1c870feb._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1c870feb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aea328fd._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aea328fd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fd36b8bf._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fd36b8bf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_4093a637._.js +0 -5
- package/web/.next/server/chunks/ssr/_4093a637._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5428b384._.js +0 -3
- package/web/.next/server/chunks/ssr/_88c4dab8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_956601a1._.js +0 -9
- package/web/.next/server/chunks/ssr/_956601a1._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_c26c679f._.js +0 -3
- package/web/.next/server/chunks/ssr/_c26c679f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_caf6533c._.js +0 -3
- package/web/.next/server/chunks/ssr/_caf6533c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f7f6173c._.js +0 -3
- package/web/.next/server/chunks/ssr/_f7f6173c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +0 -3
- package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +0 -6
- package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +0 -6
- package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js.map +0 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__1c870feb._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aea328fd._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fd36b8bf._.js +0 -4
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_4093a637._.js +0 -5
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_5428b384._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_956601a1._.js +0 -9
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_c26c679f._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_caf6533c._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_f7f6173c._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +0 -6
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +0 -6
- package/web/.next/static/chunks/3479d6ae297e5410.css +0 -2
- package/web/.next/static/chunks/562043dcb8748208.js +0 -1
- package/web/.next/static/chunks/700501f5ac2bb320.js +0 -1
- package/web/.next/static/chunks/730cb306a35d6396.js +0 -1
- package/web/.next/static/chunks/907556417091ee06.js +0 -11
- package/web/.next/static/chunks/aa6cc6df962a3fc0.js +0 -3
- package/web/.next/static/chunks/b551d91ffdbb7c9e.js +0 -1
- package/web/.next/static/chunks/bf8d066811cf0d38.js +0 -3
- package/web/.next/static/chunks/c63d1c145c5a07dc.js +0 -1
- package/web/.next/static/chunks/dcc5fcd1ca8d263d.js +0 -1
- package/web/.next/static/chunks/f57f86dba6d4baba.js +0 -1
- package/web/.next/static/chunks/fc00e1b83852da4e.js +0 -1
- /package/web/.next/static/{5kMkMkfx5JoIMSJH9xQVJ → nwZ6x4KL92z5QBu5a6cPN}/_buildManifest.js +0 -0
- /package/web/.next/static/{5kMkMkfx5JoIMSJH9xQVJ → nwZ6x4KL92z5QBu5a6cPN}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{5kMkMkfx5JoIMSJH9xQVJ → nwZ6x4KL92z5QBu5a6cPN}/_ssgManifest.js +0 -0
|
@@ -27,6 +27,8 @@ export const ActionNeeded: Story = {
|
|
|
27
27
|
args: {
|
|
28
28
|
name: 'Auth Module',
|
|
29
29
|
status: 'action-needed',
|
|
30
|
+
agentType: 'claude-code',
|
|
31
|
+
modelId: 'claude-sonnet-4-6',
|
|
30
32
|
},
|
|
31
33
|
};
|
|
32
34
|
|
|
@@ -35,6 +37,8 @@ export const InProgress: Story = {
|
|
|
35
37
|
name: 'Payment Integration',
|
|
36
38
|
status: 'in-progress',
|
|
37
39
|
startedAt: Date.now() - 330_000,
|
|
40
|
+
agentType: 'cursor',
|
|
41
|
+
modelId: 'claude-opus-4-6',
|
|
38
42
|
},
|
|
39
43
|
};
|
|
40
44
|
|
|
@@ -43,6 +47,8 @@ export const Done: Story = {
|
|
|
43
47
|
name: 'User Dashboard',
|
|
44
48
|
status: 'done',
|
|
45
49
|
duration: '2h',
|
|
50
|
+
agentType: 'gemini-cli',
|
|
51
|
+
modelId: 'gemini-2.5-pro',
|
|
46
52
|
},
|
|
47
53
|
};
|
|
48
54
|
|
|
@@ -50,6 +56,16 @@ export const WithClickHandler: Story = {
|
|
|
50
56
|
args: {
|
|
51
57
|
name: 'API Gateway',
|
|
52
58
|
status: 'action-needed',
|
|
59
|
+
agentType: 'dev',
|
|
60
|
+
modelId: 'gpt-8',
|
|
53
61
|
onClick: () => alert('Clicked!'),
|
|
54
62
|
},
|
|
55
63
|
};
|
|
64
|
+
|
|
65
|
+
export const WithoutAgent: Story = {
|
|
66
|
+
args: {
|
|
67
|
+
name: 'Legacy Feature',
|
|
68
|
+
status: 'in-progress',
|
|
69
|
+
startedAt: Date.now() - 60_000,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { SidebarMenuItem, SidebarMenuButton } from '@/components/ui/sidebar';
|
|
4
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
|
|
4
5
|
import { ElapsedTime } from '@/components/common/elapsed-time';
|
|
5
6
|
import { featureStatusConfig } from '@/components/common/feature-status-config';
|
|
6
7
|
import type { FeatureStatus } from '@/components/common/feature-status-config';
|
|
8
|
+
import {
|
|
9
|
+
getAgentTypeIcon,
|
|
10
|
+
agentTypeLabels,
|
|
11
|
+
type AgentTypeValue,
|
|
12
|
+
} from '@/components/common/feature-node/agent-type-icons';
|
|
13
|
+
import { getModelMeta } from '@/lib/model-metadata';
|
|
7
14
|
|
|
8
15
|
export interface FeatureListItemProps {
|
|
9
16
|
name: string;
|
|
10
17
|
status: FeatureStatus;
|
|
11
18
|
startedAt?: number;
|
|
12
19
|
duration?: string;
|
|
20
|
+
agentType?: string;
|
|
21
|
+
modelId?: string;
|
|
13
22
|
onClick?: () => void;
|
|
14
23
|
}
|
|
15
24
|
|
|
@@ -18,9 +27,12 @@ export function FeatureListItem({
|
|
|
18
27
|
status,
|
|
19
28
|
startedAt,
|
|
20
29
|
duration,
|
|
30
|
+
agentType,
|
|
31
|
+
modelId,
|
|
21
32
|
onClick,
|
|
22
33
|
}: FeatureListItemProps) {
|
|
23
34
|
const { icon: StatusIcon, iconClass } = featureStatusConfig[status];
|
|
35
|
+
const AgentIcon = agentType ? getAgentTypeIcon(agentType) : null;
|
|
24
36
|
|
|
25
37
|
return (
|
|
26
38
|
<SidebarMenuItem data-testid="feature-list-item">
|
|
@@ -43,6 +55,27 @@ export function FeatureListItem({
|
|
|
43
55
|
{duration}
|
|
44
56
|
</span>
|
|
45
57
|
) : null}
|
|
58
|
+
{AgentIcon ? (
|
|
59
|
+
<TooltipProvider>
|
|
60
|
+
<Tooltip>
|
|
61
|
+
<TooltipTrigger asChild>
|
|
62
|
+
<span className="ml-auto shrink-0">
|
|
63
|
+
<AgentIcon className="h-3.5 w-3.5" />
|
|
64
|
+
</span>
|
|
65
|
+
</TooltipTrigger>
|
|
66
|
+
<TooltipContent side="right">
|
|
67
|
+
<span className="font-medium">
|
|
68
|
+
{agentTypeLabels[agentType as AgentTypeValue] ?? agentType}
|
|
69
|
+
</span>
|
|
70
|
+
{modelId ? (
|
|
71
|
+
<span className="ml-1 opacity-70">
|
|
72
|
+
· {getModelMeta(modelId).displayName || modelId}
|
|
73
|
+
</span>
|
|
74
|
+
) : null}
|
|
75
|
+
</TooltipContent>
|
|
76
|
+
</Tooltip>
|
|
77
|
+
</TooltipProvider>
|
|
78
|
+
) : null}
|
|
46
79
|
</SidebarMenuButton>
|
|
47
80
|
</SidebarMenuItem>
|
|
48
81
|
);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ComponentType, SVGProps } from 'react';
|
|
2
2
|
import Image from 'next/image';
|
|
3
|
-
import { Beaker } from 'lucide-react';
|
|
4
3
|
import { cn } from '@/lib/utils';
|
|
5
4
|
|
|
6
5
|
/** Agent type values mirroring the TypeSpec AgentType enum. */
|
|
@@ -35,8 +34,51 @@ export function DefaultAgentIcon(props: IconProps) {
|
|
|
35
34
|
);
|
|
36
35
|
}
|
|
37
36
|
|
|
37
|
+
/** Colorful flask icon for the Demo Executor agent. */
|
|
38
38
|
function DevAgentIcon({ className, ...props }: IconProps) {
|
|
39
|
-
return
|
|
39
|
+
return (
|
|
40
|
+
<svg
|
|
41
|
+
viewBox="0 0 24 24"
|
|
42
|
+
fill="none"
|
|
43
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
44
|
+
className={cn('h-6 w-6', className)}
|
|
45
|
+
{...(props as object)}
|
|
46
|
+
>
|
|
47
|
+
<defs>
|
|
48
|
+
<linearGradient
|
|
49
|
+
id="dev-flask-grad"
|
|
50
|
+
x1="6"
|
|
51
|
+
y1="22"
|
|
52
|
+
x2="18"
|
|
53
|
+
y2="8"
|
|
54
|
+
gradientUnits="userSpaceOnUse"
|
|
55
|
+
>
|
|
56
|
+
<stop offset="0%" stopColor="#8B5CF6" />
|
|
57
|
+
<stop offset="50%" stopColor="#EC4899" />
|
|
58
|
+
<stop offset="100%" stopColor="#F59E0B" />
|
|
59
|
+
</linearGradient>
|
|
60
|
+
</defs>
|
|
61
|
+
{/* Flask body */}
|
|
62
|
+
<path
|
|
63
|
+
d="M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z"
|
|
64
|
+
fill="url(#dev-flask-grad)"
|
|
65
|
+
opacity="0.9"
|
|
66
|
+
/>
|
|
67
|
+
{/* Flask neck outline */}
|
|
68
|
+
<path
|
|
69
|
+
d="M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z"
|
|
70
|
+
stroke="url(#dev-flask-grad)"
|
|
71
|
+
strokeWidth="1.5"
|
|
72
|
+
fill="none"
|
|
73
|
+
/>
|
|
74
|
+
{/* Bubbles */}
|
|
75
|
+
<circle cx="10" cy="14" r="1.2" fill="white" opacity="0.7" />
|
|
76
|
+
<circle cx="13.5" cy="16" r="0.8" fill="white" opacity="0.5" />
|
|
77
|
+
<circle cx="11.5" cy="17.5" r="0.6" fill="white" opacity="0.4" />
|
|
78
|
+
{/* Spark */}
|
|
79
|
+
<path d="M16 4l1-2 1 2-2 1 2 1-1 2-1-2-2-1z" fill="#F59E0B" />
|
|
80
|
+
</svg>
|
|
81
|
+
);
|
|
40
82
|
}
|
|
41
83
|
DevAgentIcon.displayName = 'DevAgentIcon';
|
|
42
84
|
|
|
@@ -49,6 +91,16 @@ const agentTypeIconMap: Record<AgentTypeValue, ComponentType<IconProps>> = {
|
|
|
49
91
|
dev: DevAgentIcon,
|
|
50
92
|
};
|
|
51
93
|
|
|
94
|
+
/** Human-readable labels for agent types. */
|
|
95
|
+
export const agentTypeLabels: Record<AgentTypeValue, string> = {
|
|
96
|
+
'claude-code': 'Claude Code',
|
|
97
|
+
cursor: 'Cursor',
|
|
98
|
+
'gemini-cli': 'Gemini CLI',
|
|
99
|
+
aider: 'Aider',
|
|
100
|
+
continue: 'Continue',
|
|
101
|
+
dev: 'Demo',
|
|
102
|
+
};
|
|
103
|
+
|
|
52
104
|
/** Resolve an agent type string to its corresponding icon component. */
|
|
53
105
|
export function getAgentTypeIcon(agentType?: string): ComponentType<IconProps> {
|
|
54
106
|
if (agentType && agentType in agentTypeIconMap) {
|
|
@@ -63,6 +63,8 @@ export interface FeatureNodeData {
|
|
|
63
63
|
errorMessage?: string;
|
|
64
64
|
/** Agent executor type (e.g. "claude-code", "cursor"). */
|
|
65
65
|
agentType?: AgentTypeValue;
|
|
66
|
+
/** LLM model identifier used for this feature's agent run. */
|
|
67
|
+
modelId?: string;
|
|
66
68
|
/** PR metadata for features with an associated pull request */
|
|
67
69
|
pr?: {
|
|
68
70
|
url: string;
|
|
@@ -83,6 +83,8 @@ const allStatesData: FeatureNodeData[] = [
|
|
|
83
83
|
lifecycle: 'implementation' as FeatureLifecyclePhase,
|
|
84
84
|
state: 'running',
|
|
85
85
|
progress: 45,
|
|
86
|
+
agentType: 'claude-code' as AgentTypeValue,
|
|
87
|
+
modelId: 'claude-sonnet-4-6',
|
|
86
88
|
repositoryPath: '/home/user/my-repo',
|
|
87
89
|
branch: 'feat/auth-module',
|
|
88
90
|
},
|
|
@@ -93,6 +95,8 @@ const allStatesData: FeatureNodeData[] = [
|
|
|
93
95
|
lifecycle: 'requirements' as FeatureLifecyclePhase,
|
|
94
96
|
state: 'action-required',
|
|
95
97
|
progress: 22,
|
|
98
|
+
agentType: 'claude-code' as AgentTypeValue,
|
|
99
|
+
modelId: 'claude-sonnet-4-6',
|
|
96
100
|
repositoryPath: '/home/user/my-repo',
|
|
97
101
|
branch: 'feat/api-rate-limiting',
|
|
98
102
|
},
|
|
@@ -103,6 +107,8 @@ const allStatesData: FeatureNodeData[] = [
|
|
|
103
107
|
lifecycle: 'implementation' as FeatureLifecyclePhase,
|
|
104
108
|
state: 'action-required',
|
|
105
109
|
progress: 40,
|
|
110
|
+
agentType: 'cursor' as AgentTypeValue,
|
|
111
|
+
modelId: 'claude-opus-4-6',
|
|
106
112
|
repositoryPath: '/home/user/my-repo',
|
|
107
113
|
branch: 'feat/data-pipeline',
|
|
108
114
|
},
|
|
@@ -113,6 +119,8 @@ const allStatesData: FeatureNodeData[] = [
|
|
|
113
119
|
lifecycle: 'review' as FeatureLifecyclePhase,
|
|
114
120
|
state: 'action-required',
|
|
115
121
|
progress: 90,
|
|
122
|
+
agentType: 'gemini-cli' as AgentTypeValue,
|
|
123
|
+
modelId: 'gemini-2.5-pro',
|
|
116
124
|
repositoryPath: '/home/user/my-repo',
|
|
117
125
|
branch: 'feat/merge-review',
|
|
118
126
|
},
|
|
@@ -124,6 +132,8 @@ const allStatesData: FeatureNodeData[] = [
|
|
|
124
132
|
state: 'done',
|
|
125
133
|
progress: 100,
|
|
126
134
|
runtime: '1h 42m',
|
|
135
|
+
agentType: 'claude-code' as AgentTypeValue,
|
|
136
|
+
modelId: 'claude-sonnet-4-6',
|
|
127
137
|
repositoryPath: '/home/user/my-repo',
|
|
128
138
|
branch: 'feat/payment-gateway',
|
|
129
139
|
},
|
|
@@ -135,6 +145,8 @@ const allStatesData: FeatureNodeData[] = [
|
|
|
135
145
|
state: 'blocked',
|
|
136
146
|
progress: 20,
|
|
137
147
|
blockedBy: 'Auth Module',
|
|
148
|
+
agentType: 'claude-code' as AgentTypeValue,
|
|
149
|
+
modelId: 'claude-opus-4-6',
|
|
138
150
|
repositoryPath: '/home/user/my-repo',
|
|
139
151
|
branch: 'feat/search-index',
|
|
140
152
|
},
|
|
@@ -146,6 +158,8 @@ const allStatesData: FeatureNodeData[] = [
|
|
|
146
158
|
state: 'error',
|
|
147
159
|
progress: 30,
|
|
148
160
|
errorMessage: 'Build failed: type mismatch',
|
|
161
|
+
agentType: 'dev' as AgentTypeValue,
|
|
162
|
+
modelId: 'gpt-8',
|
|
149
163
|
repositoryPath: '/home/user/my-repo',
|
|
150
164
|
branch: 'feat/email-service',
|
|
151
165
|
},
|
|
@@ -202,6 +216,7 @@ const allAgentTypesData: FeatureNodeData[] = [
|
|
|
202
216
|
state: 'running',
|
|
203
217
|
progress: 50,
|
|
204
218
|
agentType: 'claude-code' as AgentTypeValue,
|
|
219
|
+
modelId: 'claude-sonnet-4-6',
|
|
205
220
|
repositoryPath: '/home/user/my-repo',
|
|
206
221
|
branch: 'feat/claude-code',
|
|
207
222
|
},
|
|
@@ -213,6 +228,7 @@ const allAgentTypesData: FeatureNodeData[] = [
|
|
|
213
228
|
state: 'running',
|
|
214
229
|
progress: 50,
|
|
215
230
|
agentType: 'cursor' as AgentTypeValue,
|
|
231
|
+
modelId: 'claude-opus-4-6',
|
|
216
232
|
repositoryPath: '/home/user/my-repo',
|
|
217
233
|
branch: 'feat/cursor',
|
|
218
234
|
},
|
|
@@ -224,6 +240,7 @@ const allAgentTypesData: FeatureNodeData[] = [
|
|
|
224
240
|
state: 'running',
|
|
225
241
|
progress: 50,
|
|
226
242
|
agentType: 'gemini-cli' as AgentTypeValue,
|
|
243
|
+
modelId: 'gemini-2.5-pro',
|
|
227
244
|
repositoryPath: '/home/user/my-repo',
|
|
228
245
|
branch: 'feat/gemini-cli',
|
|
229
246
|
},
|
|
@@ -235,6 +252,7 @@ const allAgentTypesData: FeatureNodeData[] = [
|
|
|
235
252
|
state: 'running',
|
|
236
253
|
progress: 50,
|
|
237
254
|
agentType: 'aider' as AgentTypeValue,
|
|
255
|
+
modelId: 'claude-sonnet-4-6',
|
|
238
256
|
repositoryPath: '/home/user/my-repo',
|
|
239
257
|
branch: 'feat/aider',
|
|
240
258
|
},
|
|
@@ -246,6 +264,7 @@ const allAgentTypesData: FeatureNodeData[] = [
|
|
|
246
264
|
state: 'running',
|
|
247
265
|
progress: 50,
|
|
248
266
|
agentType: 'continue' as AgentTypeValue,
|
|
267
|
+
modelId: 'claude-sonnet-4-6',
|
|
249
268
|
repositoryPath: '/home/user/my-repo',
|
|
250
269
|
branch: 'feat/continue',
|
|
251
270
|
},
|
package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.tsx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
import { Handle, Position } from '@xyflow/react';
|
|
5
|
-
import {
|
|
5
|
+
import { Plus, FileText, Wrench, GitMerge, Trash2, type LucideIcon } from 'lucide-react';
|
|
6
6
|
import { cn } from '@/lib/utils';
|
|
7
7
|
import {
|
|
8
8
|
Dialog,
|
|
@@ -21,7 +21,8 @@ import {
|
|
|
21
21
|
lifecycleRunningVerbs,
|
|
22
22
|
} from './feature-node-state-config';
|
|
23
23
|
import type { FeatureNodeData } from './feature-node-state-config';
|
|
24
|
-
import { getAgentTypeIcon } from './agent-type-icons';
|
|
24
|
+
import { getAgentTypeIcon, agentTypeLabels, type AgentTypeValue } from './agent-type-icons';
|
|
25
|
+
import { getModelMeta } from '@/lib/model-metadata';
|
|
25
26
|
|
|
26
27
|
function AgentIcon({ agentType, className }: { agentType?: string; className?: string }) {
|
|
27
28
|
const IconComponent = getAgentTypeIcon(agentType);
|
|
@@ -160,7 +161,7 @@ export function FeatureNode({
|
|
|
160
161
|
selected && 'ring-primary ring-2'
|
|
161
162
|
)}
|
|
162
163
|
>
|
|
163
|
-
{/* Top row: lifecycle label +
|
|
164
|
+
{/* Top row: lifecycle label + agent icon */}
|
|
164
165
|
<div className="flex items-center justify-between">
|
|
165
166
|
<span
|
|
166
167
|
data-testid="feature-node-lifecycle-label"
|
|
@@ -168,19 +169,40 @@ export function FeatureNode({
|
|
|
168
169
|
>
|
|
169
170
|
{data.state === 'blocked' ? 'BLOCKED' : lifecycleDisplayLabels[data.lifecycle]}
|
|
170
171
|
</span>
|
|
171
|
-
{data.
|
|
172
|
-
<
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
172
|
+
{data.agentType ? (
|
|
173
|
+
<TooltipProvider>
|
|
174
|
+
<Tooltip>
|
|
175
|
+
<TooltipTrigger asChild>
|
|
176
|
+
<button
|
|
177
|
+
type="button"
|
|
178
|
+
aria-label={agentTypeLabels[data.agentType as AgentTypeValue] ?? data.agentType}
|
|
179
|
+
data-testid="feature-node-agent-badge"
|
|
180
|
+
onClick={(e) => {
|
|
181
|
+
e.stopPropagation();
|
|
182
|
+
data.onSettings?.();
|
|
183
|
+
}}
|
|
184
|
+
className={cn(
|
|
185
|
+
'nodrag -mt-1 -mr-1 p-1',
|
|
186
|
+
data.onSettings
|
|
187
|
+
? 'cursor-pointer opacity-80 transition-opacity hover:opacity-100'
|
|
188
|
+
: 'cursor-default'
|
|
189
|
+
)}
|
|
190
|
+
>
|
|
191
|
+
<AgentIcon agentType={data.agentType} className="h-3.5 w-3.5" />
|
|
192
|
+
</button>
|
|
193
|
+
</TooltipTrigger>
|
|
194
|
+
<TooltipContent side="bottom">
|
|
195
|
+
<span className="font-medium">
|
|
196
|
+
{agentTypeLabels[data.agentType as AgentTypeValue] ?? data.agentType}
|
|
197
|
+
</span>
|
|
198
|
+
{data.modelId ? (
|
|
199
|
+
<span className="ml-1 opacity-70">
|
|
200
|
+
· {getModelMeta(data.modelId).displayName || data.modelId}
|
|
201
|
+
</span>
|
|
202
|
+
) : null}
|
|
203
|
+
</TooltipContent>
|
|
204
|
+
</Tooltip>
|
|
205
|
+
</TooltipProvider>
|
|
184
206
|
) : null}
|
|
185
207
|
</div>
|
|
186
208
|
|
|
@@ -86,6 +86,8 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
|
|
|
86
86
|
status,
|
|
87
87
|
...(d.startedAt != null && { startedAt: d.startedAt }),
|
|
88
88
|
...(d.runtime != null && { duration: d.runtime }),
|
|
89
|
+
...(d.agentType && { agentType: d.agentType }),
|
|
90
|
+
...(d.modelId && { modelId: d.modelId }),
|
|
89
91
|
};
|
|
90
92
|
})
|
|
91
93
|
.filter(Boolean) as {
|
|
@@ -94,6 +96,8 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
|
|
|
94
96
|
status: 'action-needed' | 'in-progress' | 'done';
|
|
95
97
|
startedAt?: number;
|
|
96
98
|
duration?: string;
|
|
99
|
+
agentType?: string;
|
|
100
|
+
modelId?: string;
|
|
97
101
|
}[];
|
|
98
102
|
|
|
99
103
|
setSidebarFeatures(sidebarItems);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { fn } from '@storybook/test';
|
|
3
|
+
import { AgentModelPicker } from './index';
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof AgentModelPicker> = {
|
|
6
|
+
title: 'Features/Settings/AgentModelPicker',
|
|
7
|
+
component: AgentModelPicker,
|
|
8
|
+
parameters: { layout: 'centered' },
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
decorators: [
|
|
11
|
+
(Story) => (
|
|
12
|
+
<div className="w-80">
|
|
13
|
+
<Story />
|
|
14
|
+
</div>
|
|
15
|
+
),
|
|
16
|
+
],
|
|
17
|
+
args: {
|
|
18
|
+
onAgentModelChange: fn(),
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export default meta;
|
|
23
|
+
type Story = StoryObj<typeof meta>;
|
|
24
|
+
|
|
25
|
+
export const ClaudeCodeDefault: Story = {
|
|
26
|
+
args: {
|
|
27
|
+
initialAgentType: 'claude-code',
|
|
28
|
+
initialModel: 'claude-sonnet-4-6',
|
|
29
|
+
mode: 'settings',
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const CursorSelected: Story = {
|
|
34
|
+
args: {
|
|
35
|
+
initialAgentType: 'cursor',
|
|
36
|
+
initialModel: 'gpt-5.4',
|
|
37
|
+
mode: 'settings',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const GeminiCli: Story = {
|
|
42
|
+
args: {
|
|
43
|
+
initialAgentType: 'gemini-cli',
|
|
44
|
+
initialModel: 'gemini-2.5-pro',
|
|
45
|
+
mode: 'settings',
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const DemoAgent: Story = {
|
|
50
|
+
args: {
|
|
51
|
+
initialAgentType: 'dev',
|
|
52
|
+
initialModel: '',
|
|
53
|
+
mode: 'settings',
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export const OverrideMode: Story = {
|
|
58
|
+
args: {
|
|
59
|
+
initialAgentType: 'claude-code',
|
|
60
|
+
initialModel: 'claude-sonnet-4-6',
|
|
61
|
+
mode: 'override',
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const Disabled: Story = {
|
|
66
|
+
args: {
|
|
67
|
+
initialAgentType: 'claude-code',
|
|
68
|
+
initialModel: 'claude-sonnet-4-6',
|
|
69
|
+
mode: 'settings',
|
|
70
|
+
disabled: true,
|
|
71
|
+
},
|
|
72
|
+
};
|