@shepai/cli 1.99.0-pr295.4e9c906 → 1.99.0-pr297.96f1fb3
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/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 +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +4 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +21 -10
- package/dist/src/presentation/web/components/common/version-badge/version-badge.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/version-badge/version-badge.js +2 -5
- package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.d.ts +0 -6
- package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.js +0 -67
- 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 +0 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/routes-manifest.json +0 -6
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +20 -20
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +25 -25
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +25 -25
- 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 +18 -18
- 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 +20 -20
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +25 -25
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +25 -25
- 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 +18 -18
- 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 +18 -18
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +0 -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_c757eb00.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.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]__19fb0bfe._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__19fb0bfe._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3d6f6b0e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3d6f6b0e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42020c54._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42020c54._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9cb60e1e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9cb60e1e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_ec425837._.js → _131ee0e4._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_ec425837._.js.map → _131ee0e4._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_72d7fb8c._.js +3 -0
- package/web/.next/server/chunks/ssr/{_0d406c6a._.js.map → _72d7fb8c._.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/{_0b8bf129._.js → _ca53b851._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0b8bf129._.js.map → _ca53b851._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.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_components_bf50c527._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.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 +30 -30
- package/web/.next/static/chunks/11321311d3a33d13.js +1 -0
- package/web/.next/static/chunks/20c7e1d536cefd66.js +1 -0
- package/web/.next/static/chunks/{82ebbc48f46979d7.js → 22d898238547dc1b.js} +2 -2
- package/web/.next/static/chunks/{21abfdf58d4fe537.js → 31e08a13b5f1ad96.js} +1 -1
- package/web/.next/static/chunks/4d4019cbe85eaedc.css +1 -0
- package/web/.next/static/chunks/{affa6e24319253c5.js → 63059efce5fff94e.js} +1 -1
- package/web/.next/static/chunks/{4147848c53c89b39.js → 65f06fda8dc32350.js} +2 -2
- package/web/.next/static/chunks/c465828827a71a73.js +1 -0
- package/web/.next/static/chunks/{310faa8efb0f07b7.js → cbaf2b1e2dae77e7.js} +1 -1
- package/web/.next/static/chunks/{acf6315263470853.js → cf31934c46837023.js} +1 -1
- package/web/.next/static/chunks/e166e6b6032a9e8b.js +1 -0
- package/web/.next/static/chunks/{8434870e6711ce40.js → f57fa964ecb76345.js} +1 -1
- package/dist/src/presentation/web/app/api/npm-version/route.d.ts +0 -3
- package/dist/src/presentation/web/app/api/npm-version/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/npm-version/route.js +0 -18
- package/dist/src/presentation/web/hooks/use-npm-version-check.d.ts +0 -10
- package/dist/src/presentation/web/hooks/use-npm-version-check.d.ts.map +0 -1
- package/dist/src/presentation/web/hooks/use-npm-version-check.js +0 -34
- package/dist/src/presentation/web/lib/compare-versions.d.ts +0 -7
- package/dist/src/presentation/web/lib/compare-versions.d.ts.map +0 -1
- package/dist/src/presentation/web/lib/compare-versions.js +0 -19
- package/web/.next/server/app/api/npm-version/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/npm-version/route/build-manifest.json +0 -11
- package/web/.next/server/app/api/npm-version/route/server-reference-manifest.json +0 -4
- package/web/.next/server/app/api/npm-version/route.js +0 -7
- package/web/.next/server/app/api/npm-version/route.js.map +0 -5
- package/web/.next/server/app/api/npm-version/route.js.nft.json +0 -1
- package/web/.next/server/app/api/npm-version/route_client-reference-manifest.js +0 -2
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_npm-version_route_actions_3acb9a87.js +0 -3
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_npm-version_route_actions_3acb9a87.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__3b72e8b0._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__3b72e8b0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0d406c6a._.js +0 -3
- package/web/.next/static/chunks/154f48cabfbb4c7a.js +0 -1
- package/web/.next/static/chunks/427df125f389c292.js +0 -1
- package/web/.next/static/chunks/9ed40ce7648baa43.js +0 -1
- package/web/.next/static/chunks/cf63857c936b4ca1.css +0 -1
- package/web/.next/static/chunks/e40d2bee2827b6f2.js +0 -1
- /package/web/.next/static/{dMTW-luzsSqCH02mWBG7n → AOm4Nq6AZV4ENUKmXgkKK}/_buildManifest.js +0 -0
- /package/web/.next/static/{dMTW-luzsSqCH02mWBG7n → AOm4Nq6AZV4ENUKmXgkKK}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{dMTW-luzsSqCH02mWBG7n → AOm4Nq6AZV4ENUKmXgkKK}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-drawer-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG/D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"feature-drawer-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG/D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,wBAAwB,2CA6iB1F"}
|
package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js
CHANGED
|
@@ -329,7 +329,7 @@ export function FeatureDrawerClient({ view: initialView, urlTab }) {
|
|
|
329
329
|
// ── Body ──────────────────────────────────────────────────────────────
|
|
330
330
|
let body = null;
|
|
331
331
|
if (view.type === 'feature' && featureNode) {
|
|
332
|
-
body = (_jsx(FeatureDrawerTabs, { featureNode: featureNode, featureId: featureNode.featureId, initialTab: view.initialTab, urlTab: urlTab, prdData: prdData, prdSelections: prdSelections, onPrdSelect: (qId, oId) => setPrdSelections((prev) => ({ ...prev, [qId]: oId })), onPrdApprove: handlePrdApprove, onPrdReject: handlePrdReject, isPrdLoading: isLoadingPrd, techData: techData, onTechApprove: handleTechApprove, onTechReject: handleTechReject, isTechLoading: isLoadingTech, productData: isLoadingTechProduct ? null : techProductData, mergeData: mergeData, onMergeApprove: handleMergeApprove, onMergeReject: handleMergeReject, isMergeLoading: isLoadingMerge, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: setChatInput }));
|
|
332
|
+
body = (_jsx(FeatureDrawerTabs, { featureNode: featureNode, featureId: featureNode.featureId, initialTab: view.initialTab, urlTab: urlTab, sseEvents: events, prdData: prdData, prdSelections: prdSelections, onPrdSelect: (qId, oId) => setPrdSelections((prev) => ({ ...prev, [qId]: oId })), onPrdApprove: handlePrdApprove, onPrdReject: handlePrdReject, isPrdLoading: isLoadingPrd, techData: techData, onTechApprove: handleTechApprove, onTechReject: handleTechReject, isTechLoading: isLoadingTech, productData: isLoadingTechProduct ? null : techProductData, mergeData: mergeData, onMergeApprove: handleMergeApprove, onMergeReject: handleMergeReject, isMergeLoading: isLoadingMerge, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: setChatInput }));
|
|
333
333
|
}
|
|
334
334
|
return (_jsx(BaseDrawer, { open: isOpen, onClose: attemptClose, size: "md", modal: false, header: header, "data-testid": view.type === 'feature' ? 'feature-drawer' : 'repository-drawer', children: body }));
|
|
335
335
|
}
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NotificationEvent } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
1
2
|
import type { FeatureNodeData } from '../../common/feature-node/index.js';
|
|
2
3
|
import type { PrdQuestionnaireData } from '../../common/prd-questionnaire/index.js';
|
|
3
4
|
import type { TechDecisionsReviewData } from '../../common/tech-decisions-review/index.js';
|
|
@@ -11,6 +12,8 @@ export interface FeatureDrawerTabsProps {
|
|
|
11
12
|
initialTab?: FeatureTabKey;
|
|
12
13
|
/** Tab key from URL path segment (e.g. /feature/[id]/activity → 'activity'). */
|
|
13
14
|
urlTab?: FeatureTabKey;
|
|
15
|
+
/** SSE events from the agent events provider, used to trigger tab data refresh. */
|
|
16
|
+
sseEvents?: readonly NotificationEvent[];
|
|
14
17
|
prdData?: PrdQuestionnaireData | null;
|
|
15
18
|
prdSelections?: Record<string, string>;
|
|
16
19
|
onPrdSelect?: (questionId: string, optionId: string) => void;
|
|
@@ -30,5 +33,5 @@ export interface FeatureDrawerTabsProps {
|
|
|
30
33
|
chatInput?: string;
|
|
31
34
|
onChatInputChange?: (value: string) => void;
|
|
32
35
|
}
|
|
33
|
-
export declare function FeatureDrawerTabs({ featureNode, featureId, initialTab, urlTab, prdData, prdSelections, onPrdSelect, onPrdApprove, onPrdReject, isPrdLoading, techData, onTechApprove, onTechReject, isTechLoading, productData, mergeData, onMergeApprove, onMergeReject, isMergeLoading, isRejecting, chatInput, onChatInputChange, }: FeatureDrawerTabsProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export declare function FeatureDrawerTabs({ featureNode, featureId, initialTab, urlTab, prdData, prdSelections, onPrdSelect, onPrdApprove, onPrdReject, isPrdLoading, techData, onTechApprove, onTechReject, isTechLoading, productData, mergeData, onMergeApprove, onMergeReject, isMergeLoading, isRejecting, chatInput, onChatInputChange, sseEvents, }: FeatureDrawerTabsProps): import("react/jsx-runtime").JSX.Element;
|
|
34
37
|
//# sourceMappingURL=feature-drawer-tabs.d.ts.map
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-drawer-tabs.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"feature-drawer-tabs.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAS9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAMxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAQ9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAiD3F,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,gFAAgF;IAChF,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAGzC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,QAAQ,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,WAAW,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAGjD,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAwBD,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,EACP,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,SAAS,GACV,EAAE,sBAAsB,2CA8SxB"}
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js
CHANGED
|
@@ -64,7 +64,7 @@ const TAB_FETCHERS = {
|
|
|
64
64
|
activity: fetchActivity,
|
|
65
65
|
plan: fetchPlan,
|
|
66
66
|
};
|
|
67
|
-
export function FeatureDrawerTabs({ featureNode, featureId, initialTab, urlTab, prdData, prdSelections, onPrdSelect, onPrdApprove, onPrdReject, isPrdLoading, techData, onTechApprove, onTechReject, isTechLoading, productData, mergeData, onMergeApprove, onMergeReject, isMergeLoading, isRejecting, chatInput, onChatInputChange, }) {
|
|
67
|
+
export function FeatureDrawerTabs({ featureNode, featureId, initialTab, urlTab, prdData, prdSelections, onPrdSelect, onPrdApprove, onPrdReject, isPrdLoading, techData, onTechApprove, onTechReject, isTechLoading, productData, mergeData, onMergeApprove, onMergeReject, isMergeLoading, isRejecting, chatInput, onChatInputChange, sseEvents, }) {
|
|
68
68
|
const pathname = usePathname();
|
|
69
69
|
const featureLogs = useFeatureLogs(featureId);
|
|
70
70
|
const visibleTabs = useMemo(() => computeVisibleTabs(featureNode), [featureNode]);
|
|
@@ -183,19 +183,30 @@ export function FeatureDrawerTabs({ featureNode, featureId, initialTab, urlTab,
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
}, [visibleTabs, activeTab, basePath]);
|
|
186
|
-
// SSE refresh: re-fetch active lazy tab when
|
|
187
|
-
|
|
186
|
+
// SSE refresh: re-fetch active lazy tab when relevant SSE events arrive
|
|
187
|
+
// for this feature (e.g. PhaseCompleted, AgentStarted, AgentCompleted).
|
|
188
188
|
const activeTabRef = useRef(activeTab);
|
|
189
189
|
activeTabRef.current = activeTab;
|
|
190
|
+
const sseProcessedRef = useRef(0);
|
|
190
191
|
useEffect(() => {
|
|
191
|
-
if (
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
192
|
+
if (!sseEvents || sseEvents.length === 0)
|
|
193
|
+
return;
|
|
194
|
+
// Clamp cursor if events were pruned
|
|
195
|
+
if (sseProcessedRef.current > sseEvents.length) {
|
|
196
|
+
sseProcessedRef.current = 0;
|
|
197
|
+
}
|
|
198
|
+
if (sseEvents.length <= sseProcessedRef.current)
|
|
199
|
+
return;
|
|
200
|
+
const newEvents = sseEvents.slice(sseProcessedRef.current);
|
|
201
|
+
sseProcessedRef.current = sseEvents.length;
|
|
202
|
+
const hasRelevantEvent = newEvents.some((e) => e.featureId === featureId);
|
|
203
|
+
if (!hasRelevantEvent)
|
|
204
|
+
return;
|
|
205
|
+
const current = activeTabRef.current;
|
|
206
|
+
if (current === 'activity' || current === 'plan') {
|
|
207
|
+
refreshTab(current);
|
|
197
208
|
}
|
|
198
|
-
}, [
|
|
209
|
+
}, [sseEvents, featureId, refreshTab]);
|
|
199
210
|
const handleTabChange = useCallback((value) => {
|
|
200
211
|
const tab = value;
|
|
201
212
|
isUserInteraction.current = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-badge.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/version-badge/version-badge.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version-badge.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/version-badge/version-badge.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,MAAM,EACN,UAAU,EACV,KAAa,EACb,WAA2B,EAC3B,WAAW,EACX,YAAY,GACb,EAAE,iBAAiB,2CAgCnB"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../ui/tooltip.js';
|
|
4
|
-
import { useNpmVersionCheck } from '../../../hooks/use-npm-version-check.js';
|
|
5
4
|
export function VersionBadge({ version, branch, commitHash, isDev = false, packageName = '@shepai/cli', description, instancePath, }) {
|
|
6
5
|
const shortHash = commitHash?.slice(0, 7);
|
|
7
|
-
const { latest, updateAvailable } = useNpmVersionCheck(version);
|
|
8
6
|
// In dev mode show "1.92.2-dev", in production show "v1.92.2"
|
|
9
7
|
const displayVersion = isDev ? `${version}-dev` : `v${version}`;
|
|
10
|
-
|
|
11
|
-
return (_jsx(TooltipProvider, { delayDuration: 200, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("span", { className: "text-muted-foreground/80 hover:text-muted-foreground relative cursor-default text-[11px] leading-tight transition-colors", "data-testid": "version-label", children: [displayVersion, updateAvailable ? (_jsx("span", { className: "absolute -top-0.5 -right-1.5 size-1.5 rounded-full bg-emerald-400", "data-testid": "update-dot" })) : null] }) }), _jsxs(TooltipContent, { side: "right", className: "max-w-[280px] space-y-1 p-3 text-left", children: [_jsx("div", { className: "mb-1.5 text-xs font-semibold", children: packageName }), description ? (_jsx("div", { className: "text-[10px] leading-snug opacity-70", children: description })) : null, _jsxs("div", { className: "border-t border-white/10 pt-1.5", children: [_jsx(Row, { label: "Version", value: displayVersion }), isDev && branch ? _jsx(Row, { label: "Branch", value: branch }) : null, isDev && shortHash ? _jsx(Row, { label: "Commit", value: shortHash, mono: true }) : null, isDev && instancePath ? _jsx(Row, { label: "Path", value: instancePath, mono: true }) : null, latest ? (_jsx(Row, { label: "Latest", value: `v${latest}`, highlight: updateAvailable })) : null] }), updateAvailable ? (_jsx("div", { className: "border-t border-white/10 pt-1.5", children: _jsxs("a", { href: npmUrl, target: "_blank", rel: "noopener noreferrer", className: "inline-flex items-center gap-1 text-[10px] font-medium text-emerald-400 transition-colors hover:text-emerald-300", "data-testid": "upgrade-link", children: ["Upgrade to v", latest, " \u2192"] }) })) : null] })] }) }));
|
|
8
|
+
return (_jsx(TooltipProvider, { delayDuration: 200, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { className: "text-muted-foreground/80 hover:text-muted-foreground cursor-default text-[11px] leading-tight transition-colors", "data-testid": "version-label", children: displayVersion }) }), _jsxs(TooltipContent, { side: "right", className: "max-w-[280px] space-y-1 p-3 text-left", children: [_jsx("div", { className: "mb-1.5 text-xs font-semibold", children: packageName }), description ? (_jsx("div", { className: "text-[10px] leading-snug opacity-70", children: description })) : null, _jsxs("div", { className: "border-t border-white/10 pt-1.5", children: [_jsx(Row, { label: "Version", value: displayVersion }), isDev && branch ? _jsx(Row, { label: "Branch", value: branch }) : null, isDev && shortHash ? _jsx(Row, { label: "Commit", value: shortHash, mono: true }) : null, isDev && instancePath ? _jsx(Row, { label: "Path", value: instancePath, mono: true }) : null] })] })] }) }));
|
|
12
9
|
}
|
|
13
10
|
function Row({ label, value, highlight, mono, }) {
|
|
14
11
|
return (_jsxs("div", { className: "flex items-center justify-between gap-4 text-[10px]", children: [_jsx("span", { className: "opacity-60", children: label }), _jsx("span", { className: [
|
|
15
|
-
highlight ? 'font-medium text-
|
|
12
|
+
highlight ? 'font-medium text-cyan-400' : '',
|
|
16
13
|
mono || !highlight ? 'font-mono' : '',
|
|
17
14
|
]
|
|
18
15
|
.filter(Boolean)
|
package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.d.ts
CHANGED
|
@@ -11,10 +11,4 @@ export declare const Development: Story;
|
|
|
11
11
|
export declare const LongBranch: Story;
|
|
12
12
|
/** Minimal info — no optional fields. */
|
|
13
13
|
export declare const Minimal: Story;
|
|
14
|
-
/** Update available — green dot appears, tooltip shows "Upgrade to v2.0.0" link. */
|
|
15
|
-
export declare const UpdateAvailable: Story;
|
|
16
|
-
/** Update available in dev mode — green dot + upgrade link alongside dev info. */
|
|
17
|
-
export declare const UpdateAvailableDev: Story;
|
|
18
|
-
/** Fetch error — no update info shown, badge behaves normally. */
|
|
19
|
-
export declare const FetchError: Story;
|
|
20
14
|
//# sourceMappingURL=version-badge.stories.d.ts.map
|
package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-badge.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/version-badge/version-badge.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"version-badge.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/version-badge/version-badge.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAOnC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAC;AAE3C,mFAAmF;AACnF,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,UAAU,EAAE,KAUxB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC"}
|
|
@@ -1,36 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
1
|
import { VersionBadge } from './version-badge.js';
|
|
3
|
-
/**
|
|
4
|
-
* Decorator that mocks the /api/npm-version endpoint to return a specific latest version.
|
|
5
|
-
*/
|
|
6
|
-
function withNpmVersion(latest) {
|
|
7
|
-
return (Story) => {
|
|
8
|
-
const originalFetch = window.fetch;
|
|
9
|
-
window.fetch = (async (input, init) => {
|
|
10
|
-
const url = typeof input === 'string' ? input : input instanceof URL ? input.href : input.url;
|
|
11
|
-
if (url.includes('/api/npm-version')) {
|
|
12
|
-
return new Response(JSON.stringify({ latest }), {
|
|
13
|
-
status: 200,
|
|
14
|
-
headers: { 'Content-Type': 'application/json' },
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
return originalFetch(input, init);
|
|
18
|
-
});
|
|
19
|
-
return _jsx(Story, {});
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
/** Decorator that mocks fetch to return an error for the npm version endpoint. */
|
|
23
|
-
const withNpmVersionError = (Story) => {
|
|
24
|
-
const originalFetch = window.fetch;
|
|
25
|
-
window.fetch = (async (input, init) => {
|
|
26
|
-
const url = typeof input === 'string' ? input : input instanceof URL ? input.href : input.url;
|
|
27
|
-
if (url.includes('/api/npm-version')) {
|
|
28
|
-
return new Response(JSON.stringify({ error: 'Not found' }), { status: 502 });
|
|
29
|
-
}
|
|
30
|
-
return originalFetch(input, init);
|
|
31
|
-
});
|
|
32
|
-
return _jsx(Story, {});
|
|
33
|
-
};
|
|
34
2
|
const meta = {
|
|
35
3
|
title: 'Common/VersionBadge',
|
|
36
4
|
component: VersionBadge,
|
|
@@ -42,7 +10,6 @@ const meta = {
|
|
|
42
10
|
export default meta;
|
|
43
11
|
/** Production mode — shows "v1.90.0" as dimmed text, no dev details in tooltip. */
|
|
44
12
|
export const Production = {
|
|
45
|
-
decorators: [withNpmVersion('1.90.0')],
|
|
46
13
|
args: {
|
|
47
14
|
version: '1.90.0',
|
|
48
15
|
packageName: '@shepai/cli',
|
|
@@ -51,7 +18,6 @@ export const Production = {
|
|
|
51
18
|
};
|
|
52
19
|
/** Development mode — shows "1.90.0-dev", tooltip includes branch, commit, and path. */
|
|
53
20
|
export const Development = {
|
|
54
|
-
decorators: [withNpmVersion('1.90.0')],
|
|
55
21
|
args: {
|
|
56
22
|
version: '1.90.0',
|
|
57
23
|
isDev: true,
|
|
@@ -64,7 +30,6 @@ export const Development = {
|
|
|
64
30
|
};
|
|
65
31
|
/** Development mode with a long branch name — shown in tooltip. */
|
|
66
32
|
export const LongBranch = {
|
|
67
|
-
decorators: [withNpmVersion('1.90.0')],
|
|
68
33
|
args: {
|
|
69
34
|
version: '1.90.0',
|
|
70
35
|
isDev: true,
|
|
@@ -77,39 +42,7 @@ export const LongBranch = {
|
|
|
77
42
|
};
|
|
78
43
|
/** Minimal info — no optional fields. */
|
|
79
44
|
export const Minimal = {
|
|
80
|
-
decorators: [withNpmVersion('1.0.0')],
|
|
81
45
|
args: {
|
|
82
46
|
version: '1.0.0',
|
|
83
47
|
},
|
|
84
48
|
};
|
|
85
|
-
/** Update available — green dot appears, tooltip shows "Upgrade to v2.0.0" link. */
|
|
86
|
-
export const UpdateAvailable = {
|
|
87
|
-
decorators: [withNpmVersion('2.0.0')],
|
|
88
|
-
args: {
|
|
89
|
-
version: '1.90.0',
|
|
90
|
-
packageName: '@shepai/cli',
|
|
91
|
-
description: 'Autonomous AI Native SDLC Platform',
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
|
-
/** Update available in dev mode — green dot + upgrade link alongside dev info. */
|
|
95
|
-
export const UpdateAvailableDev = {
|
|
96
|
-
decorators: [withNpmVersion('2.0.0')],
|
|
97
|
-
args: {
|
|
98
|
-
version: '1.90.0',
|
|
99
|
-
isDev: true,
|
|
100
|
-
branch: 'feat/npm-version-checker',
|
|
101
|
-
commitHash: '5a84c148b3e2f1a9c7d6e8b4a2f1c3d5e7f9a1b3',
|
|
102
|
-
packageName: '@shepai/cli',
|
|
103
|
-
description: 'Autonomous AI Native SDLC Platform',
|
|
104
|
-
instancePath: '/home/user/projects/shep',
|
|
105
|
-
},
|
|
106
|
-
};
|
|
107
|
-
/** Fetch error — no update info shown, badge behaves normally. */
|
|
108
|
-
export const FetchError = {
|
|
109
|
-
decorators: [withNpmVersionError],
|
|
110
|
-
args: {
|
|
111
|
-
version: '1.90.0',
|
|
112
|
-
packageName: '@shepai/cli',
|
|
113
|
-
description: 'Autonomous AI Native SDLC Platform',
|
|
114
|
-
},
|
|
115
|
-
};
|