@shepai/cli 1.78.1 → 1.79.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/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +14 -1
- package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts +17 -0
- package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +25 -0
- package/dist/src/presentation/web/app/actions/get-feature-plan.d.ts +18 -0
- package/dist/src/presentation/web/app/actions/get-feature-plan.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-feature-plan.js +31 -0
- package/dist/src/presentation/web/app/api/feature-logs/route.d.ts +16 -0
- package/dist/src/presentation/web/app/api/feature-logs/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/feature-logs/route.js +184 -0
- package/dist/src/presentation/web/app/build-feature-node-data.d.ts +7 -1
- 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 +7 -1
- package/dist/src/presentation/web/app/build-graph-nodes.js +7 -3
- package/dist/src/presentation/web/app/settings/page.js +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +7 -19
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +6 -6
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +48 -85
- package/dist/src/presentation/web/components/common/feature-drawer/index.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer/index.js +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts +8 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +90 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts +20 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.js +252 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +31 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +123 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts +20 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.js +315 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.d.ts +3 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.js +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.d.ts +7 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.js +35 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts +18 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.js +89 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts +6 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +78 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +28 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +157 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.d.ts +8 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.js +40 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts +22 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.js +188 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts +30 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.js +100 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +12 -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/index.d.ts +3 -4
- package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/index.js +3 -4
- package/dist/src/presentation/web/components/common/merge-review/index.d.ts +1 -2
- package/dist/src/presentation/web/components/common/merge-review/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/merge-review/index.js +0 -1
- package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.js +1 -33
- package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts +1 -2
- package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/index.js +0 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts +0 -10
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +1 -38
- package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts +1 -2
- package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/index.js +0 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.js +1 -29
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +2 -2
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +9 -9
- package/dist/src/presentation/web/hooks/use-feature-logs.d.ts +7 -0
- package/dist/src/presentation/web/hooks/use-feature-logs.d.ts.map +1 -0
- package/dist/src/presentation/web/hooks/use-feature-logs.js +52 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +1 -0
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/routes-manifest.json +6 -0
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
- 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/server-reference-manifest.json +68 -38
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
- 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 +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/server-reference-manifest.json +18 -18
- 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/server-reference-manifest.json +68 -38
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
- 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 +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/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.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/feature-logs/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/feature-logs/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/feature-logs/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/feature-logs/route.js +6 -0
- package/web/.next/server/app/api/feature-logs/route.js.map +5 -0
- package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -0
- package/web/.next/server/app/api/feature-logs/route_client-reference-manifest.js +2 -0
- 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/app-paths-manifest.json +1 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_feature-logs_route_actions_177445e7.js +3 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_feature-logs_route_actions_177445e7.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__91d44424._.js +12 -0
- package/web/.next/server/chunks/[root-of-the-server]__91d44424._.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/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 +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.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]__a337ca5c._.js → [root-of-the-server]__ae824a5b._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ae824a5b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js.map +1 -1
- 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]__f0d8d054._.js +2 -2
- 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/_1e3cf73b._.js +1 -1
- package/web/.next/server/chunks/ssr/_1e3cf73b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_34fbed18._.js +1 -1
- package/web/.next/server/chunks/ssr/_34fbed18._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_06db7efd._.js → _3e88ce9d._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_06db7efd._.js.map → _3e88ce9d._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_5d4e7151._.js +3 -0
- package/web/.next/server/chunks/ssr/{_5c4ce700._.js.map → _5d4e7151._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_63868199._.js +1 -1
- package/web/.next/server/chunks/ssr/_63868199._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_b0924a46._.js → _83cf28a3._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_b0924a46._.js.map → _83cf28a3._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_4031d614._.js → _887258d0._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_4031d614._.js.map → _887258d0._.js.map} +1 -1
- 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/_acb6a73d._.js +3 -0
- package/web/.next/server/chunks/ssr/{_a38f282a._.js.map → _acb6a73d._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_5dab501b._.js → _ba97cfd3._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_5dab501b._.js.map → _ba97cfd3._.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/node_modules__pnpm_d80c1060._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_d80c1060._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js.map +1 -0
- 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_b59d79db._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.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 +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +108 -64
- package/web/.next/static/chunks/{87152e918f80ea8b.js → 297458261f67218c.js} +1 -1
- package/web/.next/static/chunks/{1f57d0c949dbb44d.js → 2a24ac257fc1c10b.js} +1 -1
- package/web/.next/static/chunks/352e25e1bb2b9edb.js +1 -0
- package/web/.next/static/chunks/{8fe834f8a3c36e2f.js → 47ecde22e9663419.js} +2 -2
- package/web/.next/static/chunks/{27c4a8493483e6f3.js → 49743c83c9bced40.js} +1 -1
- package/web/.next/static/chunks/4b20d522b4f5ca7e.js +1 -0
- package/web/.next/static/chunks/{9d8c6c874071efb2.js → 5688494bf052915d.js} +1 -1
- package/web/.next/static/chunks/77a956d5dd063fef.js +1 -0
- package/web/.next/static/chunks/{78455afb0164395c.js → 8eff15a7f35164f9.js} +2 -2
- package/web/.next/static/chunks/96bab6d3820504f3.css +2 -0
- package/web/.next/static/chunks/a1c2ecb710b44081.js +1 -0
- package/web/.next/static/chunks/{6f7ba7846dcc8b21.js → d8d464c156573994.js} +1 -1
- package/web/.next/static/chunks/e29d1e26c2694f78.js +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts +0 -9
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.js +0 -60
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts +0 -47
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.js +0 -307
- package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.d.ts +0 -3
- package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.js +0 -8
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts +0 -3
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.js +0 -8
- package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts +0 -3
- package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/review-drawer-shell/index.js +0 -1
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts +0 -26
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.js +0 -1
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts +0 -3
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.js +0 -29
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts +0 -14
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.js +0 -33
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts +0 -3
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.js +0 -8
- package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts +0 -3
- package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/tech-review-tabs/index.js +0 -1
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts +0 -21
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.js +0 -1
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts +0 -3
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.js +0 -12
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts +0 -16
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.js +0 -110
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a337ca5c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5c4ce700._.js +0 -3
- package/web/.next/server/chunks/ssr/_a38f282a._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_5412e589._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_5412e589._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +0 -1
- package/web/.next/static/chunks/08c0a9667c05866c.css +0 -2
- package/web/.next/static/chunks/0fb8038f7ad4d2cf.js +0 -1
- package/web/.next/static/chunks/1211dcaac5963f92.js +0 -1
- package/web/.next/static/chunks/6a3e8ea6e1fd2113.js +0 -1
- package/web/.next/static/chunks/7336f9ec160c7bd8.js +0 -1
- package/web/.next/static/chunks/ba8b2aaa356a5487.js +0 -1
- /package/web/.next/static/{M0oz1_1InoSyr7OMLAKf7 → hVGa8-vd4pFs9splpgq-k}/_buildManifest.js +0 -0
- /package/web/.next/static/{M0oz1_1InoSyr7OMLAKf7 → hVGa8-vd4pFs9splpgq-k}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{M0oz1_1InoSyr7OMLAKf7 → hVGa8-vd4pFs9splpgq-k}/_ssgManifest.js +0 -0
package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PrStatus, CiStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
3
|
+
import { OverviewTab } from './overview-tab.js';
|
|
4
|
+
const meta = {
|
|
5
|
+
title: 'Drawers/Feature/Tabs/OverviewTab',
|
|
6
|
+
component: OverviewTab,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'fullscreen',
|
|
10
|
+
},
|
|
11
|
+
decorators: [
|
|
12
|
+
(Story) => (_jsx("div", { style: { height: '600px', width: '400px', border: '1px solid var(--color-border)' }, children: _jsx(Story, {}) })),
|
|
13
|
+
],
|
|
14
|
+
};
|
|
15
|
+
export default meta;
|
|
16
|
+
/* ---------------------------------------------------------------------------
|
|
17
|
+
* Data fixtures
|
|
18
|
+
* ------------------------------------------------------------------------- */
|
|
19
|
+
const fullData = {
|
|
20
|
+
name: 'Auth Module',
|
|
21
|
+
description: 'Implement OAuth2 authentication flow with multiple providers',
|
|
22
|
+
featureId: '#f1',
|
|
23
|
+
lifecycle: 'implementation',
|
|
24
|
+
state: 'running',
|
|
25
|
+
progress: 65,
|
|
26
|
+
agentType: 'claude-code',
|
|
27
|
+
runtime: '2h 15m',
|
|
28
|
+
repositoryPath: '/home/user/my-repo',
|
|
29
|
+
branch: 'feat/auth-module',
|
|
30
|
+
pr: {
|
|
31
|
+
url: 'https://github.com/org/repo/pull/42',
|
|
32
|
+
number: 42,
|
|
33
|
+
status: PrStatus.Open,
|
|
34
|
+
ciStatus: CiStatus.Pending,
|
|
35
|
+
commitHash: 'abc1234567890def',
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
const noPrData = {
|
|
39
|
+
name: 'Search Index',
|
|
40
|
+
description: 'Elasticsearch full-text search setup',
|
|
41
|
+
featureId: '#f4',
|
|
42
|
+
lifecycle: 'implementation',
|
|
43
|
+
state: 'running',
|
|
44
|
+
progress: 40,
|
|
45
|
+
agentType: 'claude-code',
|
|
46
|
+
repositoryPath: '/home/user/my-repo',
|
|
47
|
+
branch: 'feat/search-index',
|
|
48
|
+
};
|
|
49
|
+
const noProgressData = {
|
|
50
|
+
name: 'API Rate Limiting',
|
|
51
|
+
description: 'Implement sliding window rate limiting for public endpoints',
|
|
52
|
+
featureId: '#bi1',
|
|
53
|
+
lifecycle: 'requirements',
|
|
54
|
+
state: 'action-required',
|
|
55
|
+
progress: 0,
|
|
56
|
+
repositoryPath: '/home/user/my-repo',
|
|
57
|
+
branch: 'feat/api-rate-limiting',
|
|
58
|
+
};
|
|
59
|
+
const doneData = {
|
|
60
|
+
name: 'Payment Gateway',
|
|
61
|
+
description: 'Stripe integration for subscriptions',
|
|
62
|
+
featureId: '#f3',
|
|
63
|
+
lifecycle: 'deploy',
|
|
64
|
+
state: 'done',
|
|
65
|
+
progress: 100,
|
|
66
|
+
runtime: '1h 42m',
|
|
67
|
+
repositoryPath: '/home/user/my-repo',
|
|
68
|
+
branch: 'feat/payment-gateway',
|
|
69
|
+
pr: {
|
|
70
|
+
url: 'https://github.com/org/repo/pull/55',
|
|
71
|
+
number: 55,
|
|
72
|
+
status: PrStatus.Merged,
|
|
73
|
+
ciStatus: CiStatus.Success,
|
|
74
|
+
commitHash: 'def4567890abc123',
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
const blockedData = {
|
|
78
|
+
name: 'Email Service',
|
|
79
|
+
description: 'Transactional email with SendGrid',
|
|
80
|
+
featureId: '#f5',
|
|
81
|
+
lifecycle: 'implementation',
|
|
82
|
+
state: 'blocked',
|
|
83
|
+
progress: 20,
|
|
84
|
+
blockedBy: 'Auth Module',
|
|
85
|
+
repositoryPath: '/home/user/my-repo',
|
|
86
|
+
branch: 'feat/email-service',
|
|
87
|
+
};
|
|
88
|
+
const errorData = {
|
|
89
|
+
name: 'Notification System',
|
|
90
|
+
description: 'Real-time notifications via WebSockets',
|
|
91
|
+
featureId: '#f6',
|
|
92
|
+
lifecycle: 'review',
|
|
93
|
+
state: 'error',
|
|
94
|
+
progress: 30,
|
|
95
|
+
errorMessage: 'Build failed: type mismatch in NotificationHandler',
|
|
96
|
+
repositoryPath: '/home/user/my-repo',
|
|
97
|
+
branch: 'feat/notifications',
|
|
98
|
+
};
|
|
99
|
+
const minimalData = {
|
|
100
|
+
name: 'Minimal Feature',
|
|
101
|
+
featureId: '#f0',
|
|
102
|
+
lifecycle: 'requirements',
|
|
103
|
+
state: 'creating',
|
|
104
|
+
progress: 0,
|
|
105
|
+
repositoryPath: '/home/user/my-repo',
|
|
106
|
+
branch: '',
|
|
107
|
+
};
|
|
108
|
+
/* ---------------------------------------------------------------------------
|
|
109
|
+
* Stories
|
|
110
|
+
* ------------------------------------------------------------------------- */
|
|
111
|
+
/** Default — full data with status, progress, PR card, and details. */
|
|
112
|
+
export const Default = {
|
|
113
|
+
args: { data: fullData },
|
|
114
|
+
};
|
|
115
|
+
/** Feature with no PR — PR card is hidden. */
|
|
116
|
+
export const NoPr = {
|
|
117
|
+
args: { data: noPrData },
|
|
118
|
+
};
|
|
119
|
+
/** Feature with 0% progress — progress bar is hidden. */
|
|
120
|
+
export const NoProgress = {
|
|
121
|
+
args: { data: noProgressData },
|
|
122
|
+
};
|
|
123
|
+
/** Completed feature in deploy phase with merged PR. */
|
|
124
|
+
export const DoneWithMergedPr = {
|
|
125
|
+
args: { data: doneData },
|
|
126
|
+
};
|
|
127
|
+
/** Blocked feature showing blocked-by detail. */
|
|
128
|
+
export const Blocked = {
|
|
129
|
+
args: { data: blockedData },
|
|
130
|
+
};
|
|
131
|
+
/** Error state showing error message detail. */
|
|
132
|
+
export const Error = {
|
|
133
|
+
args: { data: errorData },
|
|
134
|
+
};
|
|
135
|
+
/** Minimal data — only required fields, no optional details or PR. */
|
|
136
|
+
export const Minimal = {
|
|
137
|
+
args: { data: minimalData },
|
|
138
|
+
};
|
|
139
|
+
/* ---------------------------------------------------------------------------
|
|
140
|
+
* Lifecycle phase stories
|
|
141
|
+
* ------------------------------------------------------------------------- */
|
|
142
|
+
/** Requirements phase. */
|
|
143
|
+
export const RequirementsPhase = {
|
|
144
|
+
args: { data: { ...noPrData, lifecycle: 'requirements' } },
|
|
145
|
+
};
|
|
146
|
+
/** Research phase. */
|
|
147
|
+
export const ResearchPhase = {
|
|
148
|
+
args: { data: { ...noPrData, lifecycle: 'research' } },
|
|
149
|
+
};
|
|
150
|
+
/** Review phase. */
|
|
151
|
+
export const ReviewPhase = {
|
|
152
|
+
args: { data: { ...noPrData, lifecycle: 'review' } },
|
|
153
|
+
};
|
|
154
|
+
/** Maintain phase. */
|
|
155
|
+
export const MaintainPhase = {
|
|
156
|
+
args: { data: { ...noPrData, lifecycle: 'maintain' } },
|
|
157
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PlanData } from '../../../app/actions/get-feature-plan.js';
|
|
2
|
+
export interface PlanTabProps {
|
|
3
|
+
plan: PlanData | null;
|
|
4
|
+
loading: boolean;
|
|
5
|
+
error: string | null;
|
|
6
|
+
}
|
|
7
|
+
export declare function PlanTab({ plan, loading, error }: PlanTabProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=plan-tab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-tab.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/plan-tab.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,gCAAgC,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAoBD,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,YAAY,2CAgD7D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Loader2, Circle, Check, Eye } from 'lucide-react';
|
|
4
|
+
import { AlertCircle, ListTodo } from 'lucide-react';
|
|
5
|
+
import { Badge } from '../../ui/badge.js';
|
|
6
|
+
const planStateBadgeStyles = {
|
|
7
|
+
Requirements: 'border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50',
|
|
8
|
+
ClarificationRequired: 'border-transparent bg-amber-50 text-amber-700 hover:bg-amber-50',
|
|
9
|
+
Ready: 'border-transparent bg-green-50 text-green-700 hover:bg-green-50',
|
|
10
|
+
};
|
|
11
|
+
const taskStateConfig = {
|
|
12
|
+
Todo: { icon: Circle, colorClass: 'text-muted-foreground' },
|
|
13
|
+
'Work in Progress': { icon: Loader2, colorClass: 'text-blue-600', spinning: true },
|
|
14
|
+
Done: { icon: Check, colorClass: 'text-emerald-600' },
|
|
15
|
+
Review: { icon: Eye, colorClass: 'text-amber-600' },
|
|
16
|
+
};
|
|
17
|
+
const defaultTaskConfig = { icon: Circle, colorClass: 'text-muted-foreground' };
|
|
18
|
+
export function PlanTab({ plan, loading, error }) {
|
|
19
|
+
if (loading) {
|
|
20
|
+
return (_jsx("div", { "data-testid": "plan-tab-loading", className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }));
|
|
21
|
+
}
|
|
22
|
+
if (error) {
|
|
23
|
+
return (_jsxs("div", { className: "flex items-center gap-2 p-4 text-sm text-red-600", children: [_jsx(AlertCircle, { className: "h-4 w-4 shrink-0" }), _jsx("span", { children: error })] }));
|
|
24
|
+
}
|
|
25
|
+
if (!plan) {
|
|
26
|
+
return (_jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-8", children: [_jsx(ListTodo, { className: "text-muted-foreground h-8 w-8" }), _jsx("p", { className: "text-muted-foreground text-sm", children: "No plan created yet" })] }));
|
|
27
|
+
}
|
|
28
|
+
return (_jsxs("div", { className: "flex flex-col gap-4 p-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Plan State" }), _jsx(Badge, { className: planStateBadgeStyles[plan.state] ?? 'border-transparent bg-gray-50 text-gray-700', children: plan.state })] }), plan.overview ? (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Overview" }), _jsx("p", { className: "text-sm leading-relaxed", children: plan.overview })] })) : null, _jsx(TaskList, { tasks: plan.tasks })] }));
|
|
29
|
+
}
|
|
30
|
+
function TaskList({ tasks }) {
|
|
31
|
+
if (tasks.length === 0) {
|
|
32
|
+
return (_jsx("div", { className: "flex flex-col items-center justify-center gap-2 py-4", children: _jsx("p", { className: "text-muted-foreground text-sm", children: "No tasks defined yet" }) }));
|
|
33
|
+
}
|
|
34
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Tasks" }), _jsx("div", { "data-testid": "plan-task-list", className: "flex flex-col gap-2", children: tasks.map((task, index) => (_jsx(TaskItem, { task: task, index: index }, task.title || `task-${index}`))) })] }));
|
|
35
|
+
}
|
|
36
|
+
function TaskItem({ task, index }) {
|
|
37
|
+
const config = taskStateConfig[task.state] ?? defaultTaskConfig;
|
|
38
|
+
const Icon = config.icon;
|
|
39
|
+
return (_jsxs("div", { "data-testid": `plan-task-${index}`, className: `flex items-start gap-2 rounded-md border px-3 py-2 ${config.colorClass}`, children: [_jsx(Icon, { className: `mt-0.5 h-4 w-4 shrink-0 ${config.spinning ? 'animate-spin' : ''}` }), _jsxs("div", { className: "flex min-w-0 flex-col gap-0.5", children: [_jsx("span", { className: "text-sm font-medium", children: task.title }), task.description ? (_jsx("span", { className: "text-muted-foreground text-xs", children: task.description })) : null] })] }));
|
|
40
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { PlanTab } from './plan-tab.js';
|
|
3
|
+
declare const meta: Meta<typeof PlanTab>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof PlanTab>;
|
|
6
|
+
/** Default — plan with tasks in various states (Todo, WIP, Done, Review). */
|
|
7
|
+
export declare const Default: Story;
|
|
8
|
+
/** All tasks completed. */
|
|
9
|
+
export declare const AllTasksDone: Story;
|
|
10
|
+
/** Draft plan in Requirements state. */
|
|
11
|
+
export declare const DraftPlan: Story;
|
|
12
|
+
/** Plan requiring clarification — ClarificationRequired state badge. */
|
|
13
|
+
export declare const ClarificationRequired: Story;
|
|
14
|
+
/** Plan with overview but no tasks defined yet. */
|
|
15
|
+
export declare const NoTasks: Story;
|
|
16
|
+
/** Loading state — spinner displayed while data is being fetched. */
|
|
17
|
+
export declare const Loading: Story;
|
|
18
|
+
/** Empty state — no plan created yet. */
|
|
19
|
+
export declare const Empty: Story;
|
|
20
|
+
/** Error state — inline error message. */
|
|
21
|
+
export declare const Error: Story;
|
|
22
|
+
//# sourceMappingURL=plan-tab.stories.d.ts.map
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-tab.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAc9B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,OAAO,CAAC,CAAC;AA0HtC,6EAA6E;AAC7E,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,SAAS,EAAE,KAMvB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,EAAE,KAMnC,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PlanTab } from './plan-tab.js';
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Drawers/Feature/Tabs/PlanTab',
|
|
5
|
+
component: PlanTab,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'fullscreen',
|
|
9
|
+
},
|
|
10
|
+
decorators: [
|
|
11
|
+
(Story) => (_jsx("div", { style: { height: '600px', width: '400px', border: '1px solid var(--color-border)' }, children: _jsx(Story, {}) })),
|
|
12
|
+
],
|
|
13
|
+
};
|
|
14
|
+
export default meta;
|
|
15
|
+
/* ---------------------------------------------------------------------------
|
|
16
|
+
* Data fixtures
|
|
17
|
+
* ------------------------------------------------------------------------- */
|
|
18
|
+
const mixedTasksPlan = {
|
|
19
|
+
state: 'Ready',
|
|
20
|
+
overview: 'Implement OAuth2 authentication flow with support for Google and GitHub identity providers. The implementation includes token management, callback handling, and user profile sync.',
|
|
21
|
+
tasks: [
|
|
22
|
+
{
|
|
23
|
+
title: 'Set up OAuth provider configuration',
|
|
24
|
+
description: 'Configure Google and GitHub OAuth apps with client IDs and secrets',
|
|
25
|
+
state: 'Done',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
title: 'Implement callback handler',
|
|
29
|
+
description: 'Handle OAuth callback with authorization code exchange',
|
|
30
|
+
state: 'Done',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
title: 'Add token refresh logic',
|
|
34
|
+
description: 'Implement silent token refresh using refresh tokens stored in httpOnly cookies',
|
|
35
|
+
state: 'Work in Progress',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
title: 'Create user profile sync',
|
|
39
|
+
description: 'Sync user profile data from identity providers on login',
|
|
40
|
+
state: 'Todo',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
title: 'Write integration tests',
|
|
44
|
+
description: 'Test the full OAuth flow with mocked providers',
|
|
45
|
+
state: 'Todo',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
title: 'Update API documentation',
|
|
49
|
+
description: 'Document new authentication endpoints and flows',
|
|
50
|
+
state: 'Review',
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
const allDonePlan = {
|
|
55
|
+
state: 'Ready',
|
|
56
|
+
overview: 'All implementation tasks for the rate limiting feature have been completed successfully.',
|
|
57
|
+
tasks: [
|
|
58
|
+
{
|
|
59
|
+
title: 'Design sliding window algorithm',
|
|
60
|
+
description: 'Implement Redis-backed sliding window counter',
|
|
61
|
+
state: 'Done',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
title: 'Add rate limit middleware',
|
|
65
|
+
description: 'Express middleware that checks rate limits per IP',
|
|
66
|
+
state: 'Done',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
title: 'Configure limits per endpoint',
|
|
70
|
+
description: 'Set different rate limits for public vs authenticated endpoints',
|
|
71
|
+
state: 'Done',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
title: 'Add rate limit headers',
|
|
75
|
+
description: 'Include X-RateLimit-* headers in responses',
|
|
76
|
+
state: 'Done',
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
};
|
|
80
|
+
const draftPlan = {
|
|
81
|
+
state: 'Requirements',
|
|
82
|
+
overview: 'Initial plan for implementing the notification system. Requirements are still being gathered.',
|
|
83
|
+
tasks: [
|
|
84
|
+
{
|
|
85
|
+
title: 'Define notification types',
|
|
86
|
+
description: 'Enumerate all notification events and their payloads',
|
|
87
|
+
state: 'Todo',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
title: 'Set up WebSocket server',
|
|
91
|
+
description: 'Configure Socket.io with Redis adapter for horizontal scaling',
|
|
92
|
+
state: 'Todo',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
title: 'Implement notification store',
|
|
96
|
+
description: 'Persist notifications in database with read/unread tracking',
|
|
97
|
+
state: 'Todo',
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
};
|
|
101
|
+
const clarificationPlan = {
|
|
102
|
+
state: 'ClarificationRequired',
|
|
103
|
+
overview: 'Plan requires clarification on the scope of the email template system.',
|
|
104
|
+
tasks: [
|
|
105
|
+
{
|
|
106
|
+
title: 'Set up email provider',
|
|
107
|
+
description: 'Configure SendGrid API integration',
|
|
108
|
+
state: 'Done',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
title: 'Create template engine',
|
|
112
|
+
description: 'Implement Handlebars-based email template rendering',
|
|
113
|
+
state: 'Todo',
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
};
|
|
117
|
+
const noTasksPlan = {
|
|
118
|
+
state: 'Requirements',
|
|
119
|
+
overview: 'Plan overview is available but no tasks have been defined yet.',
|
|
120
|
+
tasks: [],
|
|
121
|
+
};
|
|
122
|
+
/* ---------------------------------------------------------------------------
|
|
123
|
+
* Stories
|
|
124
|
+
* ------------------------------------------------------------------------- */
|
|
125
|
+
/** Default — plan with tasks in various states (Todo, WIP, Done, Review). */
|
|
126
|
+
export const Default = {
|
|
127
|
+
args: {
|
|
128
|
+
plan: mixedTasksPlan,
|
|
129
|
+
loading: false,
|
|
130
|
+
error: null,
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
/** All tasks completed. */
|
|
134
|
+
export const AllTasksDone = {
|
|
135
|
+
args: {
|
|
136
|
+
plan: allDonePlan,
|
|
137
|
+
loading: false,
|
|
138
|
+
error: null,
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
/** Draft plan in Requirements state. */
|
|
142
|
+
export const DraftPlan = {
|
|
143
|
+
args: {
|
|
144
|
+
plan: draftPlan,
|
|
145
|
+
loading: false,
|
|
146
|
+
error: null,
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
/** Plan requiring clarification — ClarificationRequired state badge. */
|
|
150
|
+
export const ClarificationRequired = {
|
|
151
|
+
args: {
|
|
152
|
+
plan: clarificationPlan,
|
|
153
|
+
loading: false,
|
|
154
|
+
error: null,
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
/** Plan with overview but no tasks defined yet. */
|
|
158
|
+
export const NoTasks = {
|
|
159
|
+
args: {
|
|
160
|
+
plan: noTasksPlan,
|
|
161
|
+
loading: false,
|
|
162
|
+
error: null,
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
/** Loading state — spinner displayed while data is being fetched. */
|
|
166
|
+
export const Loading = {
|
|
167
|
+
args: {
|
|
168
|
+
plan: null,
|
|
169
|
+
loading: true,
|
|
170
|
+
error: null,
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
/** Empty state — no plan created yet. */
|
|
174
|
+
export const Empty = {
|
|
175
|
+
args: {
|
|
176
|
+
plan: null,
|
|
177
|
+
loading: false,
|
|
178
|
+
error: null,
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
/** Error state — inline error message. */
|
|
182
|
+
export const Error = {
|
|
183
|
+
args: {
|
|
184
|
+
plan: null,
|
|
185
|
+
loading: false,
|
|
186
|
+
error: 'Failed to load plan data. Please try again.',
|
|
187
|
+
},
|
|
188
|
+
};
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** State for a single tab's data, loading, and error. */
|
|
2
|
+
export interface TabState<T = unknown> {
|
|
3
|
+
data: T | null;
|
|
4
|
+
loading: boolean;
|
|
5
|
+
error: string | null;
|
|
6
|
+
}
|
|
7
|
+
/** A function that fetches data for a tab given a feature ID. */
|
|
8
|
+
export type TabFetcher<T = unknown> = (featureId: string) => Promise<T>;
|
|
9
|
+
/** Map of tab keys to their fetcher functions. */
|
|
10
|
+
export type TabFetchers<K extends string> = Record<K, TabFetcher>;
|
|
11
|
+
/** Return type of the useTabDataFetch hook. */
|
|
12
|
+
export interface UseTabDataFetchResult<K extends string> {
|
|
13
|
+
/** Per-tab state (data, loading, error). */
|
|
14
|
+
tabs: Record<K, TabState>;
|
|
15
|
+
/** Fetch data for a tab. Uses cache if already fetched. */
|
|
16
|
+
fetchTab: (tab: K) => Promise<void>;
|
|
17
|
+
/** Force re-fetch for a tab, bypassing cache. */
|
|
18
|
+
refreshTab: (tab: K) => Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Custom hook for lazy-loading tab data with per-tab caching.
|
|
22
|
+
*
|
|
23
|
+
* - Fetches data only when a tab is explicitly activated via fetchTab().
|
|
24
|
+
* - Caches results so revisiting a loaded tab is instant.
|
|
25
|
+
* - Clears all cached data when featureId changes.
|
|
26
|
+
* - Supports force re-fetch via refreshTab() for SSE-driven updates.
|
|
27
|
+
* - Uses ref-based callbacks to avoid stale closures (matches useArtifactFetch pattern).
|
|
28
|
+
*/
|
|
29
|
+
export declare function useTabDataFetch<K extends string>(featureId: string, fetchers: TabFetchers<K>): UseTabDataFetchResult<K>;
|
|
30
|
+
//# sourceMappingURL=use-tab-data-fetch.d.ts.map
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-tab-data-fetch.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.ts"],"names":[],"mappings":"AAIA,yDAAyD;AACzD,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO;IACnC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,iEAAiE;AACjE,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAExE,kDAAkD;AAClD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAElE,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM;IACrD,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,iDAAiD;IACjD,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAMD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,qBAAqB,CAAC,CAAC,CAAC,CAmG1B"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
3
|
+
function createInitialTabState() {
|
|
4
|
+
return { data: null, loading: false, error: null };
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Custom hook for lazy-loading tab data with per-tab caching.
|
|
8
|
+
*
|
|
9
|
+
* - Fetches data only when a tab is explicitly activated via fetchTab().
|
|
10
|
+
* - Caches results so revisiting a loaded tab is instant.
|
|
11
|
+
* - Clears all cached data when featureId changes.
|
|
12
|
+
* - Supports force re-fetch via refreshTab() for SSE-driven updates.
|
|
13
|
+
* - Uses ref-based callbacks to avoid stale closures (matches useArtifactFetch pattern).
|
|
14
|
+
*/
|
|
15
|
+
export function useTabDataFetch(featureId, fetchers) {
|
|
16
|
+
const tabKeys = Object.keys(fetchers);
|
|
17
|
+
const [tabStates, setTabStates] = useState(() => {
|
|
18
|
+
const initial = {};
|
|
19
|
+
for (const key of tabKeys) {
|
|
20
|
+
initial[key] = createInitialTabState();
|
|
21
|
+
}
|
|
22
|
+
return initial;
|
|
23
|
+
});
|
|
24
|
+
// Ref-based fetchers to avoid stale closures in callbacks.
|
|
25
|
+
const fetchersRef = useRef(fetchers);
|
|
26
|
+
fetchersRef.current = fetchers;
|
|
27
|
+
// Ref-based featureId to use current value in callbacks.
|
|
28
|
+
const featureIdRef = useRef(featureId);
|
|
29
|
+
featureIdRef.current = featureId;
|
|
30
|
+
// Track mounted state to prevent state updates after unmount.
|
|
31
|
+
const mountedRef = useRef(true);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
mountedRef.current = true;
|
|
34
|
+
return () => {
|
|
35
|
+
mountedRef.current = false;
|
|
36
|
+
};
|
|
37
|
+
}, []);
|
|
38
|
+
// Clear all cached data when featureId changes.
|
|
39
|
+
const prevFeatureIdRef = useRef(featureId);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (prevFeatureIdRef.current !== featureId) {
|
|
42
|
+
prevFeatureIdRef.current = featureId;
|
|
43
|
+
setTabStates((prev) => {
|
|
44
|
+
const cleared = {};
|
|
45
|
+
for (const key of Object.keys(prev)) {
|
|
46
|
+
cleared[key] = createInitialTabState();
|
|
47
|
+
}
|
|
48
|
+
return cleared;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}, [featureId]);
|
|
52
|
+
const doFetch = useCallback(async (tab) => {
|
|
53
|
+
const fetcher = fetchersRef.current[tab];
|
|
54
|
+
const currentFeatureId = featureIdRef.current;
|
|
55
|
+
if (!fetcher)
|
|
56
|
+
return;
|
|
57
|
+
if (mountedRef.current) {
|
|
58
|
+
setTabStates((prev) => ({
|
|
59
|
+
...prev,
|
|
60
|
+
[tab]: { ...prev[tab], loading: true, error: null },
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const data = await fetcher(currentFeatureId);
|
|
65
|
+
if (mountedRef.current) {
|
|
66
|
+
setTabStates((prev) => ({
|
|
67
|
+
...prev,
|
|
68
|
+
[tab]: { data, loading: false, error: null },
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (mountedRef.current) {
|
|
74
|
+
const message = error instanceof Error ? error.message : 'Failed to fetch tab data';
|
|
75
|
+
setTabStates((prev) => ({
|
|
76
|
+
...prev,
|
|
77
|
+
[tab]: { data: null, loading: false, error: message },
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}, []);
|
|
82
|
+
const fetchTab = useCallback(async (tab) => {
|
|
83
|
+
// Check if data is already cached (non-null data means already fetched)
|
|
84
|
+
const current = tabStates[tab];
|
|
85
|
+
if (current && current.data !== null)
|
|
86
|
+
return;
|
|
87
|
+
// Also skip if currently loading
|
|
88
|
+
if (current && current.loading)
|
|
89
|
+
return;
|
|
90
|
+
await doFetch(tab);
|
|
91
|
+
}, [tabStates, doFetch]);
|
|
92
|
+
const refreshTab = useCallback(async (tab) => {
|
|
93
|
+
await doFetch(tab);
|
|
94
|
+
}, [doFetch]);
|
|
95
|
+
return {
|
|
96
|
+
tabs: tabStates,
|
|
97
|
+
fetchTab,
|
|
98
|
+
refreshTab,
|
|
99
|
+
};
|
|
100
|
+
}
|
package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts
CHANGED
|
@@ -34,6 +34,18 @@ export interface FeatureNodeData {
|
|
|
34
34
|
agentType?: AgentTypeValue;
|
|
35
35
|
/** LLM model identifier used for this feature's agent run. */
|
|
36
36
|
modelId?: string;
|
|
37
|
+
/** Feature summary / user query */
|
|
38
|
+
summary?: string;
|
|
39
|
+
/** Epoch ms or ISO string when the feature was created */
|
|
40
|
+
createdAt?: string | number;
|
|
41
|
+
/** Repository display name (e.g. "my-repo") */
|
|
42
|
+
repositoryName?: string;
|
|
43
|
+
/** Base branch the feature was branched from (e.g. "main") */
|
|
44
|
+
baseBranch?: string;
|
|
45
|
+
/** AI-generated one-line description of the feature (from spec artifact) */
|
|
46
|
+
oneLiner?: string;
|
|
47
|
+
/** Original user query that initiated this feature */
|
|
48
|
+
userQuery?: string;
|
|
37
49
|
/** PR metadata for features with an associated pull request */
|
|
38
50
|
pr?: {
|
|
39
51
|
url: string;
|
package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAEf,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOxE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOvE,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,EAAE,CAAC,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,QAAQ,CAAC;QACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CA6DnF,CAAC"}
|
|
1
|
+
{"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAEf,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOxE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOvE,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,EAAE,CAAC,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,QAAQ,CAAC;QACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CA6DnF,CAAC"}
|
|
@@ -3,18 +3,17 @@ export { AddRepositoryButton } from './add-repository-button/index.js';
|
|
|
3
3
|
export { ElapsedTime, formatElapsed } from './elapsed-time/index.js';
|
|
4
4
|
export { EmptyState, type EmptyStateProps } from './empty-state/index.js';
|
|
5
5
|
export { FeatureCreateDrawer, type FeatureCreateDrawerProps, type FeatureCreatePayload, } from './feature-create-drawer/index.js';
|
|
6
|
-
export {
|
|
6
|
+
export { useFeatureActions, type FeatureActionsInput, type FeatureActionsState, } from './feature-drawer/index.js';
|
|
7
7
|
export { FeatureListItem, type FeatureListItemProps } from './feature-list-item/index.js';
|
|
8
|
-
export { useFeatureActions, type FeatureActionsInput, type FeatureActionsState, } from './feature-drawer/use-feature-actions.js';
|
|
9
8
|
export { FeatureNode, featureNodeStateConfig, type FeatureNodeState, type FeatureLifecyclePhase, type FeatureNodeData, type FeatureNodeType, type FeatureNodeStateConfig, } from './feature-node/index.js';
|
|
10
9
|
export { FeatureStatusBadges, type FeatureStatusBadgesProps } from './feature-status-badges/index.js';
|
|
11
10
|
export { FeatureStatusGroup, type FeatureStatusGroupProps } from './feature-status-group/index.js';
|
|
12
11
|
export { LoadingSkeleton } from './loading-skeleton/index.js';
|
|
13
12
|
export { RepositoryNode, type RepositoryNodeData, type RepositoryNodeType, } from './repository-node/index.js';
|
|
14
13
|
export { PageHeader } from './page-header/index.js';
|
|
15
|
-
export { PrdQuestionnaire,
|
|
14
|
+
export { PrdQuestionnaire, type PrdQuestionnaireProps, type PrdQuestion, type PrdFinalAction, type PrdOption, type PrdQuestionnaireData, } from './prd-questionnaire/index.js';
|
|
16
15
|
export { ShepLogo, type ShepLogoProps } from './shep-logo/index.js';
|
|
17
|
-
export { TechDecisionsReview,
|
|
16
|
+
export { TechDecisionsReview, type TechDecisionsReviewProps, type TechDecisionsReviewData, } from './tech-decisions-review/index.js';
|
|
18
17
|
export { SidebarCollapseToggle, type SidebarCollapseToggleProps } from './sidebar-collapse-toggle/index.js';
|
|
19
18
|
export { SidebarNavItem, type SidebarNavItemProps } from './sidebar-nav-item/index.js';
|
|
20
19
|
export { SidebarSectionHeader, type SidebarSectionHeaderProps } from './sidebar-section-header/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -3,18 +3,17 @@ export { AddRepositoryButton } from './add-repository-button/index.js';
|
|
|
3
3
|
export { ElapsedTime, formatElapsed } from './elapsed-time/index.js';
|
|
4
4
|
export { EmptyState } from './empty-state/index.js';
|
|
5
5
|
export { FeatureCreateDrawer, } from './feature-create-drawer/index.js';
|
|
6
|
-
export {
|
|
6
|
+
export { useFeatureActions, } from './feature-drawer/index.js';
|
|
7
7
|
export { FeatureListItem } from './feature-list-item/index.js';
|
|
8
|
-
export { useFeatureActions, } from './feature-drawer/use-feature-actions.js';
|
|
9
8
|
export { FeatureNode, featureNodeStateConfig, } from './feature-node/index.js';
|
|
10
9
|
export { FeatureStatusBadges } from './feature-status-badges/index.js';
|
|
11
10
|
export { FeatureStatusGroup } from './feature-status-group/index.js';
|
|
12
11
|
export { LoadingSkeleton } from './loading-skeleton/index.js';
|
|
13
12
|
export { RepositoryNode, } from './repository-node/index.js';
|
|
14
13
|
export { PageHeader } from './page-header/index.js';
|
|
15
|
-
export { PrdQuestionnaire,
|
|
14
|
+
export { PrdQuestionnaire, } from './prd-questionnaire/index.js';
|
|
16
15
|
export { ShepLogo } from './shep-logo/index.js';
|
|
17
|
-
export { TechDecisionsReview,
|
|
16
|
+
export { TechDecisionsReview, } from './tech-decisions-review/index.js';
|
|
18
17
|
export { SidebarCollapseToggle } from './sidebar-collapse-toggle/index.js';
|
|
19
18
|
export { SidebarNavItem } from './sidebar-nav-item/index.js';
|
|
20
19
|
export { SidebarSectionHeader } from './sidebar-section-header/index.js';
|