@shepai/cli 1.76.0-pr240.447630e → 1.76.0-pr241.9ff2c05
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/actions/get-feature-messages.d.ts +15 -0
- package/dist/src/presentation/web/app/actions/get-feature-messages.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-feature-messages.js +26 -0
- 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/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 +7 -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 +68 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts +14 -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 +112 -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/messages-tab.d.ts +8 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/messages-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/messages-tab.js +24 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/messages-tab.stories.d.ts +18 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/messages-tab.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/messages-tab.stories.js +125 -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 +35 -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/derive-feature-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +1 -2
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +0 -2
- 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/cache/.previewinfo +1 -1
- package/web/.next/cache/.rscinfo +1 -1
- package/web/.next/cache/.tsbuildinfo +1 -1
- package/web/.next/cache/config.json +3 -3
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +16 -16
- 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 +19 -19
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/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 +16 -16
- 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 +19 -19
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/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/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/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]__17a611f0._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.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/_0e9d6bf7._.js +1 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_d8868bc0._.js → _30fd6f01._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_d8868bc0._.js.map → _30fd6f01._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6e08ce21._.js +1 -1
- package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
- package/web/.next/server/chunks/ssr/_9f940437._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_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/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +22 -22
- package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +16 -16
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +16 -16
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_d8868bc0._.js → _30fd6f01._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_6e08ce21._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +22 -22
- package/web/.next/standalone/src/presentation/web/app/actions/get-feature-messages.ts +42 -0
- package/web/.next/standalone/src/presentation/web/app/actions/get-feature-phase-timings.ts +42 -0
- package/web/.next/standalone/src/presentation/web/app/actions/get-feature-plan.ts +52 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.tsx +272 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.tsx +245 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.tsx +130 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.tsx +136 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/index.ts +2 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/messages-tab.stories.tsx +149 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/messages-tab.tsx +92 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.tsx +186 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.tsx +142 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.tsx +214 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.tsx +121 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.ts +143 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/derive-feature-state.ts +1 -2
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node-state-config.ts +0 -3
- package/web/.next/static/chunks/{eba61cbc1ad20c1d.js → 2e2355741bd6a9a7.js} +1 -1
- package/web/.next/static/chunks/{ff6489e28cbf0b7b.js → 437a925303b28b53.js} +1 -1
- package/web/.next/static/chunks/{ba17181b8e8a3593.js → 45b6a69a50b9d9e8.js} +1 -1
- package/web/.next/static/chunks/{4484a8fa29865af9.js → 47b5d582b373816d.js} +3 -3
- package/web/.next/static/chunks/{90f17af918bf9d84.js → 4e6ecfe539924a71.js} +1 -1
- package/web/.next/static/chunks/84d2f2d55e5cf753.css +2 -0
- package/web/.next/static/chunks/90f36476e66cbace.js +1 -0
- package/web/.next/static/chunks/{1f91036a11c9dc01.js → b5078ac043e7335a.js} +1 -1
- package/web/.next/static/chunks/{2b2d40707c3526be.js → dcb8f73fb28b2a26.js} +1 -1
- package/web/.next/static/chunks/{ff708b9a4954c701.js → e37d7d4d215db8f5.js} +1 -1
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/static/chunks/23c4643c3c3d429c.js +0 -1
- package/web/.next/static/chunks/e12fff3b57456bc2.css +0 -2
- /package/web/.next/static/{8IW4pcSs1YMI4I3CN6S8X → TuKZpCcwG7RLlpnyasgpZ}/_buildManifest.js +0 -0
- /package/web/.next/static/{8IW4pcSs1YMI4I3CN6S8X → TuKZpCcwG7RLlpnyasgpZ}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{8IW4pcSs1YMI4I3CN6S8X → TuKZpCcwG7RLlpnyasgpZ}/_ssgManifest.js +0 -0
|
@@ -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/derive-feature-state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive-feature-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/derive-feature-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAIL,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAE3F;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,gBAAgB,CA4C9F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAYvD;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,qBAAqB,GAAG,gBAAgB,CAkBtF;AAED,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"derive-feature-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/derive-feature-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAIL,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAE3F;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,gBAAgB,CA4C9F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAYvD;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,qBAAqB,GAAG,gBAAgB,CAkBtF;AAED,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAOlE,CAAC;AAcF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,qBAAqB,CAQ7F;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,qBAAqB,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,qBAAqB,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAC7F,cAAc,EAAE,CAmBlB;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,qBAAqB,GAAG,SAAS,CAGnC"}
|
|
@@ -97,7 +97,6 @@ export function mapEventTypeToState(eventType) {
|
|
|
97
97
|
export const sdlcLifecycleMap = {
|
|
98
98
|
Requirements: 'requirements',
|
|
99
99
|
Research: 'research',
|
|
100
|
-
Planning: 'planning',
|
|
101
100
|
Implementation: 'implementation',
|
|
102
101
|
Review: 'review',
|
|
103
102
|
'Deploy & QA': 'deploy',
|
|
@@ -108,7 +107,7 @@ const phaseNameToLifecycle = {
|
|
|
108
107
|
analyze: 'requirements',
|
|
109
108
|
requirements: 'requirements',
|
|
110
109
|
research: 'research',
|
|
111
|
-
plan: '
|
|
110
|
+
plan: 'implementation',
|
|
112
111
|
implement: 'implementation',
|
|
113
112
|
merge: 'review',
|
|
114
113
|
maintain: 'maintain',
|
package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { Node } from '@xyflow/react';
|
|
|
3
3
|
import type { PrStatus, CiStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
4
4
|
import type { AgentTypeValue } from './agent-type-icons.js';
|
|
5
5
|
export type FeatureNodeState = 'creating' | 'running' | 'action-required' | 'done' | 'blocked' | 'error';
|
|
6
|
-
export type FeatureLifecyclePhase = 'requirements' | 'research' | '
|
|
6
|
+
export type FeatureLifecyclePhase = 'requirements' | 'research' | 'implementation' | 'review' | 'deploy' | 'maintain';
|
|
7
7
|
/** Human-readable display labels for lifecycle phases. */
|
|
8
8
|
export declare const lifecycleDisplayLabels: Record<FeatureLifecyclePhase, string>;
|
|
9
9
|
/** Present-participle verbs for the running badge, keyed by lifecycle phase. */
|
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,
|
|
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,+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"}
|
package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js
CHANGED
|
@@ -3,7 +3,6 @@ import { Loader2, CircleAlert, CircleCheck, Ban, CircleX } from 'lucide-react';
|
|
|
3
3
|
export const lifecycleDisplayLabels = {
|
|
4
4
|
requirements: 'REQUIREMENTS',
|
|
5
5
|
research: 'RESEARCH',
|
|
6
|
-
planning: 'PLANNING',
|
|
7
6
|
implementation: 'IMPLEMENTATION',
|
|
8
7
|
review: 'REVIEW',
|
|
9
8
|
deploy: 'DEPLOY & QA',
|
|
@@ -13,7 +12,6 @@ export const lifecycleDisplayLabels = {
|
|
|
13
12
|
export const lifecycleRunningVerbs = {
|
|
14
13
|
requirements: 'Analyzing',
|
|
15
14
|
research: 'Researching',
|
|
16
|
-
planning: 'Planning',
|
|
17
15
|
implementation: 'Implementing',
|
|
18
16
|
review: 'Reviewing',
|
|
19
17
|
deploy: 'Deploying',
|