@shepai/cli 1.94.0 → 1.95.0-pr278.e1c3dfb
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/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.d.ts +19 -0
- package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.js +52 -0
- package/dist/packages/core/src/application/use-cases/settings/index.d.ts +2 -0
- package/dist/packages/core/src/application/use-cases/settings/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/settings/index.js +1 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +5 -0
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +9 -0
- package/dist/src/presentation/cli/index.js +0 -12
- package/dist/src/presentation/web/app/actions/agent-setup-flag.d.ts +6 -0
- package/dist/src/presentation/web/app/actions/agent-setup-flag.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/agent-setup-flag.js +14 -0
- package/dist/src/presentation/web/app/actions/check-agent-tool.d.ts +11 -0
- package/dist/src/presentation/web/app/actions/check-agent-tool.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/check-agent-tool.js +35 -0
- package/dist/src/presentation/web/app/actions/update-agent-and-model.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/update-agent-and-model.js +6 -12
- package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts +2 -0
- package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.js +2 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.js +10 -0
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +20 -4
- 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 +12 -1
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts +6 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +222 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.d.ts +7 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.js +20 -0
- package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +1 -1
- 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 +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +92 -62
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +102 -42
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +102 -42
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +88 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +92 -62
- package/web/.next/server/app/(dashboard)/create/page.js +2 -2
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +102 -42
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +102 -42
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +88 -28
- package/web/.next/server/app/(dashboard)/page.js +2 -2
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +88 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +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/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/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +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_2b65878f._.js +3 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_2b65878f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_6ba7eb21._.js +3 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_6ba7eb21._.js.map +1 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js +3 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js.map +1 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js +3 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js.map +1 -0
- 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]__17143953._.js → [root-of-the-server]__19fb0bfe._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__5cc4752a._.js.map → [root-of-the-server]__19fb0bfe._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__45aad79d._.js → [root-of-the-server]__3d6f6b0e._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__17143953._.js.map → [root-of-the-server]__3d6f6b0e._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__5cc4752a._.js → [root-of-the-server]__42020c54._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__9de266fa._.js.map → [root-of-the-server]__42020c54._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7b49fcb3._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7b49fcb3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__9de266fa._.js → [root-of-the-server]__9cb60e1e._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__45aad79d._.js.map → [root-of-the-server]__9cb60e1e._.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]__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/_135edb9c._.js +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_3533fed7._.js → _28974cda._.js} +2 -2
- package/web/.next/server/chunks/ssr/_28974cda._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_9f6b01ba._.js → _2ae2fc54._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_9f6b01ba._.js.map → _2ae2fc54._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_5e112f82._.js +3 -0
- package/web/.next/server/chunks/ssr/_5e112f82._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_86f903cc._.js +3 -0
- package/web/.next/server/chunks/ssr/_86f903cc._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js +5 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js.map +1 -0
- 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_components_bf50c527._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +1 -1
- 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_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js +5 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js.map +1 -0
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +482 -242
- package/web/.next/static/chunks/{aef300837193b9fe.js → 322cca976db5f21a.js} +1 -1
- package/web/.next/static/chunks/{34a9700c5d94478b.js → 3cf19715cd895d4c.js} +1 -1
- package/web/.next/static/chunks/{0e4078228269008c.js → 57acf7effef05456.js} +1 -1
- package/web/.next/static/chunks/{8656ca74dcb26191.js → 5cef790aaa0acae7.js} +1 -1
- package/web/.next/static/chunks/61c4d617e4b83d4b.css +1 -0
- package/web/.next/static/chunks/71d785d1de4b86f6.css +1 -0
- package/web/.next/static/chunks/{47d6a912ef998ba6.js → 859bf33130ddd91b.js} +1 -1
- package/web/.next/static/chunks/8bd300e88a189928.js +1 -0
- package/web/.next/static/chunks/93ea28b37c891e1e.js +1 -0
- package/web/.next/static/chunks/9c91e0d922b4de9f.js +1 -0
- package/web/.next/static/chunks/{b2c294b25be01866.js → a99f303cfcc11d78.js} +1 -1
- package/web/.next/static/chunks/b272ac93b52dceeb.js +1 -0
- package/web/.next/static/chunks/c139976db8b6cbc3.js +1 -0
- package/web/.next/static/chunks/c37e5aa0ca5fcab6.js +1 -0
- package/web/.next/static/chunks/ca2b69da4c8bbade.js +1 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_81a06555._.js +0 -3
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_81a06555._.js.map +0 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js +0 -3
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js.map +0 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +0 -3
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +0 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +0 -3
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9dc40036._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9dc40036._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_3533fed7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_364346ad._.js +0 -3
- package/web/.next/server/chunks/ssr/_364346ad._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_df15bd24._.js +0 -3
- package/web/.next/server/chunks/ssr/_df15bd24._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f50485a5._.js +0 -3
- package/web/.next/server/chunks/ssr/_f50485a5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +0 -1
- package/web/.next/static/chunks/2536dce61f55daad.js +0 -1
- package/web/.next/static/chunks/2f0da3c393fc4f04.js +0 -1
- package/web/.next/static/chunks/39560c01879ac76a.css +0 -2
- package/web/.next/static/chunks/5014c892e1ecc7d6.js +0 -1
- package/web/.next/static/chunks/949f140ebb0ba001.js +0 -1
- package/web/.next/static/chunks/a2d089b6a5c4fe0b.js +0 -1
- package/web/.next/static/chunks/d9247a52ae260218.js +0 -1
- package/web/.next/static/chunks/fca533d905e50d78.js +0 -1
- /package/web/.next/static/{FBd4oUGtZ_PQpjMeHHiks → N9o2d43fiKOMySC4Kc36z}/_buildManifest.js +0 -0
- /package/web/.next/static/{FBd4oUGtZ_PQpjMeHHiks → N9o2d43fiKOMySC4Kc36z}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{FBd4oUGtZ_PQpjMeHHiks → N9o2d43fiKOMySC4Kc36z}/_ssgManifest.js +0 -0
package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Complete Web Onboarding Use Case
|
|
3
|
+
*
|
|
4
|
+
* Lighter variant of CompleteOnboardingUseCase for the web UI wizard.
|
|
5
|
+
* Only updates agent type, model, and sets onboardingComplete=true.
|
|
6
|
+
* Other settings (IDE, workflow defaults) keep their current values.
|
|
7
|
+
*/
|
|
8
|
+
import type { Settings, AgentType } from '../../../domain/generated/output.js';
|
|
9
|
+
import type { ISettingsRepository } from '../../ports/output/repositories/settings.repository.interface.js';
|
|
10
|
+
export interface CompleteWebOnboardingInput {
|
|
11
|
+
agentType: AgentType;
|
|
12
|
+
model: string | null;
|
|
13
|
+
}
|
|
14
|
+
export declare class CompleteWebOnboardingUseCase {
|
|
15
|
+
private readonly settingsRepository;
|
|
16
|
+
constructor(settingsRepository: ISettingsRepository);
|
|
17
|
+
execute(input: CompleteWebOnboardingInput): Promise<Settings>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=complete-web-onboarding.use-case.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete-web-onboarding.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAE5G,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qBACa,4BAA4B;IAGrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,mBAAmB;IAGpD,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,QAAQ,CAAC;CAsBpE"}
|
package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Complete Web Onboarding Use Case
|
|
3
|
+
*
|
|
4
|
+
* Lighter variant of CompleteOnboardingUseCase for the web UI wizard.
|
|
5
|
+
* Only updates agent type, model, and sets onboardingComplete=true.
|
|
6
|
+
* Other settings (IDE, workflow defaults) keep their current values.
|
|
7
|
+
*/
|
|
8
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
9
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
10
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
11
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
12
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
|
+
};
|
|
14
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
15
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
16
|
+
};
|
|
17
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
18
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
19
|
+
};
|
|
20
|
+
import { injectable, inject } from 'tsyringe';
|
|
21
|
+
let CompleteWebOnboardingUseCase = class CompleteWebOnboardingUseCase {
|
|
22
|
+
settingsRepository;
|
|
23
|
+
constructor(settingsRepository) {
|
|
24
|
+
this.settingsRepository = settingsRepository;
|
|
25
|
+
}
|
|
26
|
+
async execute(input) {
|
|
27
|
+
const settings = await this.settingsRepository.load();
|
|
28
|
+
if (!settings) {
|
|
29
|
+
throw new Error('Settings not found. Please run initialization first.');
|
|
30
|
+
}
|
|
31
|
+
const updatedSettings = {
|
|
32
|
+
...settings,
|
|
33
|
+
agent: {
|
|
34
|
+
...settings.agent,
|
|
35
|
+
type: input.agentType,
|
|
36
|
+
},
|
|
37
|
+
models: {
|
|
38
|
+
default: input.model?.trim() ?? settings.models.default,
|
|
39
|
+
},
|
|
40
|
+
onboardingComplete: true,
|
|
41
|
+
updatedAt: new Date(),
|
|
42
|
+
};
|
|
43
|
+
await this.settingsRepository.update(updatedSettings);
|
|
44
|
+
return updatedSettings;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
CompleteWebOnboardingUseCase = __decorate([
|
|
48
|
+
injectable(),
|
|
49
|
+
__param(0, inject('ISettingsRepository')),
|
|
50
|
+
__metadata("design:paramtypes", [Object])
|
|
51
|
+
], CompleteWebOnboardingUseCase);
|
|
52
|
+
export { CompleteWebOnboardingUseCase };
|
|
@@ -9,4 +9,6 @@ export { UpdateSettingsUseCase } from './update-settings.use-case.js';
|
|
|
9
9
|
export { CheckOnboardingStatusUseCase } from './check-onboarding-status.use-case.js';
|
|
10
10
|
export { CompleteOnboardingUseCase } from './complete-onboarding.use-case.js';
|
|
11
11
|
export type { CompleteOnboardingInput } from './complete-onboarding.use-case.js';
|
|
12
|
+
export { CompleteWebOnboardingUseCase } from './complete-web-onboarding.use-case.js';
|
|
13
|
+
export type { CompleteWebOnboardingInput } from './complete-web-onboarding.use-case.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/settings/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/settings/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,YAAY,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC"}
|
|
@@ -8,3 +8,4 @@ export { LoadSettingsUseCase } from './load-settings.use-case.js';
|
|
|
8
8
|
export { UpdateSettingsUseCase } from './update-settings.use-case.js';
|
|
9
9
|
export { CheckOnboardingStatusUseCase } from './check-onboarding-status.use-case.js';
|
|
10
10
|
export { CompleteOnboardingUseCase } from './complete-onboarding.use-case.js';
|
|
11
|
+
export { CompleteWebOnboardingUseCase } from './complete-web-onboarding.use-case.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAiHrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CA0SrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -45,6 +45,7 @@ import { InitializeSettingsUseCase } from '../../application/use-cases/settings/
|
|
|
45
45
|
import { LoadSettingsUseCase } from '../../application/use-cases/settings/load-settings.use-case.js';
|
|
46
46
|
import { UpdateSettingsUseCase } from '../../application/use-cases/settings/update-settings.use-case.js';
|
|
47
47
|
import { CompleteOnboardingUseCase } from '../../application/use-cases/settings/complete-onboarding.use-case.js';
|
|
48
|
+
import { CompleteWebOnboardingUseCase } from '../../application/use-cases/settings/complete-web-onboarding.use-case.js';
|
|
48
49
|
import { ConfigureAgentUseCase } from '../../application/use-cases/agents/configure-agent.use-case.js';
|
|
49
50
|
import { ValidateAgentAuthUseCase } from '../../application/use-cases/agents/validate-agent-auth.use-case.js';
|
|
50
51
|
import { RunAgentUseCase } from '../../application/use-cases/agents/run-agent.use-case.js';
|
|
@@ -244,6 +245,7 @@ export async function initializeContainer() {
|
|
|
244
245
|
container.registerSingleton(LoadSettingsUseCase);
|
|
245
246
|
container.registerSingleton(UpdateSettingsUseCase);
|
|
246
247
|
container.registerSingleton(CompleteOnboardingUseCase);
|
|
248
|
+
container.registerSingleton(CompleteWebOnboardingUseCase);
|
|
247
249
|
container.registerSingleton(ConfigureAgentUseCase);
|
|
248
250
|
container.registerSingleton(ValidateAgentAuthUseCase);
|
|
249
251
|
container.registerSingleton(RunAgentUseCase);
|
|
@@ -352,6 +354,9 @@ export async function initializeContainer() {
|
|
|
352
354
|
container.register('UpdateSettingsUseCase', {
|
|
353
355
|
useFactory: (c) => c.resolve(UpdateSettingsUseCase),
|
|
354
356
|
});
|
|
357
|
+
container.register('CompleteWebOnboardingUseCase', {
|
|
358
|
+
useFactory: (c) => c.resolve(CompleteWebOnboardingUseCase),
|
|
359
|
+
});
|
|
355
360
|
container.register('CleanupFeatureWorktreeUseCase', {
|
|
356
361
|
useFactory: (c) => c.resolve(CleanupFeatureWorktreeUseCase),
|
|
357
362
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/feat/new.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"new.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/feat/new.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4DpC;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAwI1C"}
|
|
@@ -19,6 +19,8 @@ import { SdlcLifecycle } from '../../../../../packages/core/src/domain/generated
|
|
|
19
19
|
import { colors, messages, spinner } from '../../ui/index.js';
|
|
20
20
|
import { getShepHomeDir } from '../../../../../packages/core/src/infrastructure/services/filesystem/shep-directory.service.js';
|
|
21
21
|
import { getSettings, hasSettings } from '../../../../../packages/core/src/infrastructure/services/settings.service.js';
|
|
22
|
+
import { CheckOnboardingStatusUseCase } from '../../../../../packages/core/src/application/use-cases/settings/check-onboarding-status.use-case.js';
|
|
23
|
+
import { onboardingWizard } from '../../../tui/wizards/onboarding/onboarding.wizard.js';
|
|
22
24
|
/** Commander collect pattern for repeatable options. */
|
|
23
25
|
function collect(value, previous) {
|
|
24
26
|
return [...previous, value];
|
|
@@ -58,6 +60,13 @@ export function createNewCommand() {
|
|
|
58
60
|
.option('--attach <path>', 'Attach a file (repeatable)', collect, [])
|
|
59
61
|
.action(async (description, options) => {
|
|
60
62
|
try {
|
|
63
|
+
// First-run onboarding gate — only for interactive terminals
|
|
64
|
+
if (process.stdin.isTTY) {
|
|
65
|
+
const { isComplete } = await new CheckOnboardingStatusUseCase().execute();
|
|
66
|
+
if (!isComplete) {
|
|
67
|
+
await onboardingWizard();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
61
70
|
const useCase = container.resolve(CreateFeatureUseCase);
|
|
62
71
|
const repoPath = options.repo ?? process.cwd();
|
|
63
72
|
// Resolve openPr from CLI flags or settings defaults
|
|
@@ -54,7 +54,6 @@ import { startDaemon } from './commands/daemon/start-daemon.js';
|
|
|
54
54
|
import { initializeContainer, container } from '../../../packages/core/src/infrastructure/di/container.js';
|
|
55
55
|
import { InitializeSettingsUseCase } from '../../../packages/core/src/application/use-cases/settings/initialize-settings.use-case.js';
|
|
56
56
|
import { initializeSettings } from '../../../packages/core/src/infrastructure/services/settings.service.js';
|
|
57
|
-
import { CheckOnboardingStatusUseCase } from '../../../packages/core/src/application/use-cases/settings/check-onboarding-status.use-case.js';
|
|
58
57
|
/**
|
|
59
58
|
* Bootstrap function - initializes all dependencies before CLI starts.
|
|
60
59
|
* Performs async initialization (database, settings) before parsing commands.
|
|
@@ -83,17 +82,6 @@ async function bootstrap() {
|
|
|
83
82
|
messages.error('Failed to initialize settings', err);
|
|
84
83
|
throw error;
|
|
85
84
|
}
|
|
86
|
-
// Step 2.5: First-run onboarding gate
|
|
87
|
-
// Only run in interactive terminals (the wizard needs TTY for prompts)
|
|
88
|
-
if (process.stdin.isTTY) {
|
|
89
|
-
const onboardingCheck = new CheckOnboardingStatusUseCase();
|
|
90
|
-
const { isComplete } = await onboardingCheck.execute();
|
|
91
|
-
if (!isComplete) {
|
|
92
|
-
// Lazy-import to avoid ~460ms startup cost when onboarding is already complete
|
|
93
|
-
const { onboardingWizard } = await import('../tui/wizards/onboarding/onboarding.wizard.js');
|
|
94
|
-
await onboardingWizard();
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
85
|
// Step 3: Set up Commander CLI
|
|
98
86
|
const versionService = container.resolve('IVersionService');
|
|
99
87
|
const { version, description } = versionService.getVersion();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-setup-flag.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/agent-setup-flag.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAM7D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use server';
|
|
2
|
+
import { getSettings } from '../../../../../packages/core/src/infrastructure/services/settings.service.js';
|
|
3
|
+
/**
|
|
4
|
+
* Check whether onboarding has been completed.
|
|
5
|
+
* Delegates to the in-memory settings singleton (zero DB overhead).
|
|
6
|
+
*/
|
|
7
|
+
export async function isAgentSetupComplete() {
|
|
8
|
+
try {
|
|
9
|
+
return getSettings().onboardingComplete;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToolItem } from '../../../../../packages/core/src/application/use-cases/tools/list-tools.use-case.js';
|
|
2
|
+
export interface AgentToolStatus {
|
|
3
|
+
agentType: string;
|
|
4
|
+
toolId: string | null;
|
|
5
|
+
tool: ToolItem | null;
|
|
6
|
+
installed: boolean;
|
|
7
|
+
/** CLI binary name for manual run instructions (e.g. "claude", "gemini") */
|
|
8
|
+
binaryName: string | null;
|
|
9
|
+
}
|
|
10
|
+
export declare function checkAgentTool(agentType: string): Promise<AgentToolStatus>;
|
|
11
|
+
//# sourceMappingURL=check-agent-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-agent-tool.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/check-agent-tool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8DAA8D,CAAC;AAmB7F,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAmBhF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use server';
|
|
2
|
+
import { resolve } from '../../lib/server-container.js';
|
|
3
|
+
/**
|
|
4
|
+
* Maps agent types to their corresponding tool IDs in the tool registry.
|
|
5
|
+
* These IDs match the JSON file names in tool-installer/tools/.
|
|
6
|
+
*/
|
|
7
|
+
const AGENT_TOOL_MAP = {
|
|
8
|
+
'claude-code': 'claude-code',
|
|
9
|
+
cursor: 'cursor-cli',
|
|
10
|
+
'gemini-cli': 'gemini-cli',
|
|
11
|
+
};
|
|
12
|
+
/** CLI binary names matching the `binary` field in each tool JSON */
|
|
13
|
+
const AGENT_BINARY_MAP = {
|
|
14
|
+
'claude-code': 'claude',
|
|
15
|
+
cursor: 'cursor',
|
|
16
|
+
'gemini-cli': 'gemini',
|
|
17
|
+
};
|
|
18
|
+
export async function checkAgentTool(agentType) {
|
|
19
|
+
const toolId = AGENT_TOOL_MAP[agentType] ?? null;
|
|
20
|
+
const binaryName = AGENT_BINARY_MAP[agentType] ?? null;
|
|
21
|
+
// Dev agent and unknown agents don't need a tool
|
|
22
|
+
if (!toolId) {
|
|
23
|
+
return { agentType, toolId: null, tool: null, installed: true, binaryName: null };
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const useCase = resolve('ListToolsUseCase');
|
|
27
|
+
const tools = await useCase.execute();
|
|
28
|
+
const tool = tools.find((t) => t.id === toolId) ?? null;
|
|
29
|
+
const installed = tool?.status.status === 'available';
|
|
30
|
+
return { agentType, toolId, tool, installed, binaryName };
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return { agentType, toolId, tool: null, installed: false, binaryName };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-agent-and-model.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/update-agent-and-model.ts"],"names":[],"mappings":"AAUA,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"update-agent-and-model.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/update-agent-and-model.ts"],"names":[],"mappings":"AAUA,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB1C"}
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
'use server';
|
|
2
2
|
import { resolve } from '../../lib/server-container.js';
|
|
3
|
-
import {
|
|
3
|
+
import { resetSettings, initializeSettings, } from '../../../../../packages/core/src/infrastructure/services/settings.service.js';
|
|
4
4
|
export async function updateAgentAndModel(agentType, model) {
|
|
5
5
|
if (!agentType.trim()) {
|
|
6
6
|
return { ok: false, error: 'agent type is required' };
|
|
7
7
|
}
|
|
8
8
|
try {
|
|
9
|
-
const
|
|
10
|
-
const updatedSettings = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
type: agentType.trim(),
|
|
15
|
-
},
|
|
16
|
-
models: { default: model?.trim() ?? currentSettings.models.default },
|
|
17
|
-
};
|
|
18
|
-
const updateUseCase = resolve('UpdateSettingsUseCase');
|
|
19
|
-
await updateUseCase.execute(updatedSettings);
|
|
9
|
+
const useCase = resolve('CompleteWebOnboardingUseCase');
|
|
10
|
+
const updatedSettings = await useCase.execute({
|
|
11
|
+
agentType: agentType.trim(),
|
|
12
|
+
model,
|
|
13
|
+
});
|
|
20
14
|
resetSettings();
|
|
21
15
|
initializeSettings(updatedSettings);
|
|
22
16
|
return { ok: true };
|
package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export interface RepositoryNodeData {
|
|
|
11
11
|
onAdd?: () => void;
|
|
12
12
|
onDelete?: (repositoryId: string) => void;
|
|
13
13
|
showHandles?: boolean;
|
|
14
|
+
/** When true, the "+" add-feature button shows a pulse attention animation. */
|
|
15
|
+
pulseAdd?: boolean;
|
|
14
16
|
}
|
|
15
17
|
export type RepositoryNodeType = Node<RepositoryNodeData, 'repositoryNode'>;
|
|
16
18
|
//# sourceMappingURL=repository-node-config.d.ts.map
|
package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-node-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,qEAAqE;IACrE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"repository-node-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,qEAAqE;IACrE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC"}
|
package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGnE,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"repository-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGnE,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,2CAkP5F"}
|
|
@@ -42,5 +42,6 @@ export function RepositoryNode({ data }) {
|
|
|
42
42
|
}, className: "nodrag bg-card flex min-w-[18rem] cursor-pointer items-center gap-3 rounded-full border px-4 py-3 shadow-sm", children: [_jsx(Github, { className: "text-muted-foreground h-5 w-5 shrink-0" }), _jsx("span", { "data-testid": "repository-node-name", className: "min-w-0 truncate text-sm font-medium", children: data.name }), _jsxs("div", { className: cn('flex shrink-0 items-center gap-2', (data.repositoryPath ?? data.onAdd) && 'ml-auto'), onClick: (e) => e.stopPropagation(), children: [data.repositoryPath ? (_jsxs(_Fragment, { children: [_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { className: "flex items-center", children: _jsx(ActionButton, { label: "Open in IDE", onClick: actions.openInIde, loading: actions.ideLoading, error: !!actions.ideError, icon: Code2, iconOnly: true, variant: "ghost", size: "icon-xs" }) }) }), _jsx(TooltipContent, { children: "Open in IDE" })] }) }), _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { className: "flex items-center", children: _jsx(ActionButton, { label: "Open in Shell", onClick: actions.openInShell, loading: actions.shellLoading, error: !!actions.shellError, icon: Terminal, iconOnly: true, variant: "ghost", size: "icon-xs" }) }) }), _jsx(TooltipContent, { children: "Open in Shell" })] }) }), _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { className: "flex items-center", children: _jsx(ActionButton, { label: "Open Folder", onClick: actions.openFolder, loading: actions.folderLoading, error: !!actions.folderError, icon: FolderOpen, iconOnly: true, variant: "ghost", size: "icon-xs" }) }) }), _jsx(TooltipContent, { children: "Open Folder" })] }) }), featureFlags.envDeploy ? (_jsxs(_Fragment, { children: [_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { className: "flex items-center", children: _jsx(ActionButton, { label: isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server', onClick: isDeploymentActive ? deployAction.stop : deployAction.deploy, loading: deployAction.deployLoading || deployAction.stopLoading, error: !!deployAction.deployError, icon: isDeploymentActive ? Square : Play, iconOnly: true, variant: "ghost", size: "icon-xs" }) }) }), _jsx(TooltipContent, { children: isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server' })] }) }), isDeploymentActive ? (_jsx(DeploymentStatusBadge, { status: deployAction.status, url: deployAction.url, targetId: data.repositoryPath })) : null] })) : null] })) : null, data.onAdd ? (_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { "aria-label": "Add feature", "data-testid": "repository-node-add-button", onClick: (e) => {
|
|
43
43
|
e.stopPropagation();
|
|
44
44
|
data.onAdd?.();
|
|
45
|
-
}, className:
|
|
45
|
+
}, className: cn('text-muted-foreground hover:bg-accent dark:hover:bg-accent/50 flex h-6 w-6 shrink-0 cursor-pointer items-center justify-center rounded-full transition-colors hover:text-blue-500', data.pulseAdd &&
|
|
46
|
+
'animate-pulse-cta bg-blue-100 text-blue-500 dark:bg-blue-900/40'), children: _jsx(Plus, { className: "h-3.5 w-3.5" }) }) }), _jsx(TooltipContent, { children: "Add feature" })] }) })) : null] })] }), data.onAdd || data.showHandles ? (_jsx(Handle, { type: "source", position: Position.Right, isConnectable: !data.showHandles, className: "opacity-0!" })) : null] }));
|
|
46
47
|
}
|
package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare const WithHandles: Story;
|
|
|
9
9
|
export declare const LongName: Story;
|
|
10
10
|
export declare const Multiple: Story;
|
|
11
11
|
export declare const MultipleWithButton: Story;
|
|
12
|
+
export declare const WithPulseAdd: Story;
|
|
12
13
|
export declare const WithActions: Story;
|
|
13
14
|
export declare const WithActionsAndAddButton: Story;
|
|
14
15
|
export declare const WithDeleteButton: Story;
|
package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-node.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAgCvF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,kBAAkB,CASlC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAE1C,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAK3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAWF,eAAO,MAAM,QAAQ,EAAE,KAwBtB,CAAC;AASF,eAAO,MAAM,kBAAkB,EAAE,KAwBhC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAQrC,CAAC;AAIF,eAAO,MAAM,gBAAgB,EAAE,KAS9B,CAAC;AA2BF,eAAO,MAAM,mBAAmB,EAAE,KAwBjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"repository-node.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAgCvF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,kBAAkB,CASlC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAE1C,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAK3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAWF,eAAO,MAAM,QAAQ,EAAE,KAwBtB,CAAC;AASF,eAAO,MAAM,kBAAkB,EAAE,KAwBhC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAS1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAQrC,CAAC;AAIF,eAAO,MAAM,gBAAgB,EAAE,KAS9B,CAAC;AA2BF,eAAO,MAAM,mBAAmB,EAAE,KAwBjC,CAAC"}
|
package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.js
CHANGED
|
@@ -74,6 +74,16 @@ export const MultipleWithButton = {
|
|
|
74
74
|
return (_jsx("div", { style: { width: 500, height: 500 }, children: _jsx(ReactFlowProvider, { children: _jsx(ReactFlow, { nodes: nodes, nodeTypes: nodeTypes, nodesDraggable: false, nodesConnectable: false, proOptions: { hideAttribution: true }, fitView: true }) }) }));
|
|
75
75
|
},
|
|
76
76
|
};
|
|
77
|
+
export const WithPulseAdd = {
|
|
78
|
+
args: {
|
|
79
|
+
repositoryPath: '/home/user/shep-ai/cli',
|
|
80
|
+
pulseAdd: true,
|
|
81
|
+
},
|
|
82
|
+
argTypes: {
|
|
83
|
+
onAdd: { action: 'onAdd' },
|
|
84
|
+
},
|
|
85
|
+
render: (args) => _jsx(RepositoryNodeCanvas, { data: args }),
|
|
86
|
+
};
|
|
77
87
|
export const WithActions = {
|
|
78
88
|
args: {
|
|
79
89
|
repositoryPath: '/home/user/shep-ai/cli',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-center-empty-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/control-center/control-center-empty-state.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"control-center-empty-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/control-center/control-center-empty-state.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,uBAAuB,CAAC,EACtC,kBAAkB,EAClB,SAAS,GACV,EAAE,4BAA4B,2CAiI9B"}
|
package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useCallback } from 'react';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
4
4
|
import { Github, Plus, TerminalSquare, Copy, Check, Loader2 } from 'lucide-react';
|
|
5
5
|
import { cn } from '../../../lib/utils.js';
|
|
6
6
|
import { pickFolder } from '../../common/add-repository-button/pick-folder.js';
|
|
7
|
-
|
|
7
|
+
import { isAgentSetupComplete } from '../../../app/actions/agent-setup-flag.js';
|
|
8
|
+
import { WelcomeAgentSetup } from './welcome-agent-setup.js';
|
|
9
|
+
const commands = ['cd ~/my-repo', 'shep feat new "sleek dashboard"'];
|
|
8
10
|
export function ControlCenterEmptyState({ onRepositorySelect, className, }) {
|
|
9
11
|
const [copied, setCopied] = useState(false);
|
|
10
12
|
const [loading, setLoading] = useState(false);
|
|
13
|
+
const [agentReady, setAgentReady] = useState(false);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
isAgentSetupComplete().then((done) => {
|
|
16
|
+
if (done)
|
|
17
|
+
setAgentReady(true);
|
|
18
|
+
});
|
|
19
|
+
}, []);
|
|
11
20
|
async function handlePickerClick() {
|
|
12
21
|
if (loading)
|
|
13
22
|
return;
|
|
@@ -27,5 +36,12 @@ export function ControlCenterEmptyState({ onRepositorySelect, className, }) {
|
|
|
27
36
|
setCopied(true);
|
|
28
37
|
setTimeout(() => setCopied(false), 2000);
|
|
29
38
|
}, []);
|
|
30
|
-
|
|
39
|
+
const handleAgentSetupComplete = useCallback(() => {
|
|
40
|
+
setAgentReady(true);
|
|
41
|
+
}, []);
|
|
42
|
+
return (_jsxs("div", { "data-testid": "control-center-empty-state", className: cn('relative h-full w-full', className), children: [_jsx("div", { className: "absolute inset-0 [background-image:radial-gradient(circle,_var(--color-border)_1px,_transparent_1px)] [background-size:24px_24px]" }), _jsxs("div", { className: "absolute top-8 left-8 z-10", children: [_jsx("h1", { className: "text-4xl font-bold tracking-tight", children: "Features" }), _jsx("p", { className: "text-muted-foreground text-3xl font-light", children: "Control Center" })] }), _jsx("div", { className: "relative z-10 flex h-full items-center justify-center", children: _jsx("div", { className: "flex w-72 flex-col items-center gap-4", children: !agentReady ? (
|
|
43
|
+
/* Step 1: Agent setup */
|
|
44
|
+
_jsx(WelcomeAgentSetup, { onComplete: handleAgentSetupComplete })) : (
|
|
45
|
+
/* Step 2: Add repository (shown after agent is configured) */
|
|
46
|
+
_jsxs(_Fragment, { children: [_jsxs("div", { className: "text-muted-foreground flex items-center gap-2", children: [_jsx(Github, { className: "h-3.5 w-3.5" }), _jsx("span", { className: "text-[10px] font-semibold tracking-widest uppercase", children: "Repositories" })] }), _jsxs("button", { type: "button", "data-testid": "empty-state-add-repository", onClick: handlePickerClick, disabled: loading, className: "border-border hover:border-foreground/40 flex w-full cursor-pointer items-center gap-2.5 rounded-md border border-dashed px-4 py-2.5 transition-colors disabled:cursor-wait disabled:opacity-50", children: [loading ? (_jsx(Loader2, { className: "text-muted-foreground h-4 w-4 animate-spin" })) : (_jsx(Plus, { className: "text-muted-foreground h-4 w-4" })), _jsx("span", { className: "text-xs font-medium", children: loading ? 'Opening…' : 'Add Repository' })] }), _jsxs("div", { className: "text-muted-foreground flex items-center gap-2", children: [_jsx("div", { className: "bg-border h-px w-10" }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(TerminalSquare, { className: "h-3 w-3" }), _jsx("span", { className: "text-[10px] font-semibold tracking-widest uppercase", children: "Or via CLI" })] }), _jsx("div", { className: "bg-border h-px w-10" })] }), _jsxs("div", { "data-testid": "cli-code-block", className: "relative w-full rounded-md bg-zinc-900 px-3 py-2 font-mono text-[11px] text-zinc-300", children: [_jsx("button", { type: "button", "data-testid": "cli-code-block-copy", onClick: handleCopy, className: "absolute top-2 right-2 cursor-pointer rounded p-1 text-zinc-500 transition-colors hover:bg-zinc-800 hover:text-zinc-300", "aria-label": "Copy commands", children: copied ? _jsx(Check, { className: "h-3 w-3" }) : _jsx(Copy, { className: "h-3 w-3" }) }), _jsx("div", { className: "space-y-0.5", children: commands.map((cmd) => (_jsxs("div", { className: "whitespace-nowrap", children: [_jsx("span", { className: "text-zinc-500 select-none", children: "$ " }), _jsx("span", { children: cmd })] }, cmd))) })] }), _jsx("p", { className: "text-muted-foreground text-[10px]", children: "Feature will appear on canvas once created" })] })) }) })] }));
|
|
31
47
|
}
|
package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-center-inner.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/control-center/control-center-inner.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,eAAe,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAsB5E,UAAU,uBAAuB;IAC/B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,YAAY,EAAE,IAAI,EAAE,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"control-center-inner.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/control-center/control-center-inner.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,eAAe,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAsB5E,UAAU,uBAAuB;IAC/B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,YAAY,EAAE,IAAI,EAAE,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,uBAAuB,2CA0RzF"}
|
package/dist/src/presentation/web/components/features/control-center/control-center-inner.js
CHANGED
|
@@ -190,8 +190,19 @@ export function ControlCenterInner({ initialNodes, initialEdges }) {
|
|
|
190
190
|
handleViewportChange(viewport);
|
|
191
191
|
}, [handleViewportChange]);
|
|
192
192
|
const hasRepositories = nodes.some((n) => n.type === 'repositoryNode');
|
|
193
|
+
// Pulse the "+" button when there's a single repo with no features and the
|
|
194
|
+
// create-feature drawer is not open — draws attention to the next action.
|
|
195
|
+
const isCreateDrawerOpen = pathname.startsWith('/create');
|
|
196
|
+
const displayNodes = useMemo(() => {
|
|
197
|
+
const repoNodes = nodes.filter((n) => n.type === 'repositoryNode');
|
|
198
|
+
const hasFeatures = nodes.some((n) => n.type === 'featureNode');
|
|
199
|
+
const shouldPulse = repoNodes.length === 1 && !hasFeatures && !isCreateDrawerOpen;
|
|
200
|
+
if (!shouldPulse)
|
|
201
|
+
return nodes;
|
|
202
|
+
return nodes.map((n) => n.type === 'repositoryNode' ? { ...n, data: { ...n.data, pulseAdd: true } } : n);
|
|
203
|
+
}, [nodes, isCreateDrawerOpen]);
|
|
193
204
|
if (!hasRepositories) {
|
|
194
205
|
return _jsx(ControlCenterEmptyState, { onRepositorySelect: handleAddRepository });
|
|
195
206
|
}
|
|
196
|
-
return (_jsx(FeaturesCanvas, { nodes:
|
|
207
|
+
return (_jsx(FeaturesCanvas, { nodes: displayNodes, edges: edges, selectedFeatureId: selectedFeatureId, defaultViewport: defaultViewport, onNodesChange: onNodesChange, onConnect: handleConnect, onAddFeature: handleAddFeature, onNodeClick: handleNodeClick, onPaneClick: handleClearDrawers, onMoveEnd: handleMoveEnd, onResetViewport: resetViewport, emptyState: _jsx(ControlCenterEmptyState, { onRepositorySelect: handleAddRepository }) }));
|
|
197
208
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface WelcomeAgentSetupProps {
|
|
2
|
+
onComplete: () => void;
|
|
3
|
+
className?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function WelcomeAgentSetup({ onComplete, className }: WelcomeAgentSetupProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=welcome-agent-setup.d.ts.map
|
package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"welcome-agent-setup.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/control-center/welcome-agent-setup.tsx"],"names":[],"mappings":"AA0BA,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,sBAAsB,2CAoTlF"}
|