@shepai/cli 1.99.0-pr295.4e9c906 → 1.99.0-pr296.f56862f

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.
Files changed (163) hide show
  1. package/dist/src/presentation/web/components/common/version-badge/version-badge.d.ts.map +1 -1
  2. package/dist/src/presentation/web/components/common/version-badge/version-badge.js +2 -5
  3. package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.d.ts +0 -6
  4. package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.d.ts.map +1 -1
  5. package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.js +0 -67
  6. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  7. package/dist/src/presentation/web/hooks/use-graph-state.js +17 -1
  8. package/dist/tsconfig.build.tsbuildinfo +1 -1
  9. package/package.json +1 -1
  10. package/web/.next/BUILD_ID +1 -1
  11. package/web/.next/app-path-routes-manifest.json +0 -1
  12. package/web/.next/build-manifest.json +2 -2
  13. package/web/.next/fallback-build-manifest.json +2 -2
  14. package/web/.next/prerender-manifest.json +3 -3
  15. package/web/.next/required-server-files.js +1 -1
  16. package/web/.next/required-server-files.json +1 -1
  17. package/web/.next/routes-manifest.json +0 -6
  18. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +20 -20
  19. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  20. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  21. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +25 -25
  22. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  23. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +25 -25
  25. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  26. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  27. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  28. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  29. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  30. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +20 -20
  31. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +25 -25
  34. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +25 -25
  37. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  38. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +18 -18
  40. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  41. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  42. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  43. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  44. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/_global-error.html +2 -2
  46. package/web/.next/server/app/_global-error.rsc +1 -1
  47. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  48. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  49. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  50. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  51. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  52. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  53. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  55. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  56. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  57. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  58. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  60. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  61. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  63. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  64. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  65. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  66. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app-paths-manifest.json +0 -1
  68. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  69. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  70. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js +1 -1
  71. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js.map +1 -1
  72. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js +1 -1
  73. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js.map +1 -1
  74. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__19fb0bfe._.js +1 -1
  77. package/web/.next/server/chunks/ssr/[root-of-the-server]__19fb0bfe._.js.map +1 -1
  78. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__3d6f6b0e._.js +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__3d6f6b0e._.js.map +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__42020c54._.js +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__42020c54._.js.map +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  85. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
  86. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
  87. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  88. package/web/.next/server/chunks/ssr/[root-of-the-server]__9cb60e1e._.js +1 -1
  89. package/web/.next/server/chunks/ssr/[root-of-the-server]__9cb60e1e._.js.map +1 -1
  90. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  91. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  92. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  93. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  94. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  95. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  96. package/web/.next/server/chunks/ssr/{_ec425837._.js → _15107281._.js} +2 -2
  97. package/web/.next/server/chunks/ssr/{_ec425837._.js.map → _15107281._.js.map} +1 -1
  98. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  99. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  100. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  101. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  102. package/web/.next/server/chunks/ssr/{_0d406c6a._.js → _d7aece87._.js} +2 -2
  103. package/web/.next/server/chunks/ssr/{_0d406c6a._.js.map → _d7aece87._.js.map} +1 -1
  104. package/web/.next/server/chunks/ssr/{_0b8bf129._.js → _fb46fdbd._.js} +2 -2
  105. package/web/.next/server/chunks/ssr/{_0b8bf129._.js.map → _fb46fdbd._.js.map} +1 -1
  106. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  107. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js +2 -2
  109. package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js +1 -1
  111. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  113. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  115. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  117. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  118. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  119. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  121. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js +2 -2
  123. package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js.map +1 -1
  124. package/web/.next/server/pages/500.html +2 -2
  125. package/web/.next/server/server-reference-manifest.js +1 -1
  126. package/web/.next/server/server-reference-manifest.json +30 -30
  127. package/web/.next/static/chunks/{427df125f389c292.js → 01548ec8f908b82c.js} +1 -1
  128. package/web/.next/static/chunks/{82ebbc48f46979d7.js → 288fff3becfe7340.js} +2 -2
  129. package/web/.next/static/chunks/2c7c8052fb32c60f.js +1 -0
  130. package/web/.next/static/chunks/4d4019cbe85eaedc.css +1 -0
  131. package/web/.next/static/chunks/{21abfdf58d4fe537.js → 8c9ba633588f951b.js} +1 -1
  132. package/web/.next/static/chunks/{acf6315263470853.js → 909862b85d600cc3.js} +1 -1
  133. package/web/.next/static/chunks/{154f48cabfbb4c7a.js → 98cfce3bb9adc111.js} +1 -1
  134. package/web/.next/static/chunks/{310faa8efb0f07b7.js → 993560f95ae52de3.js} +1 -1
  135. package/web/.next/static/chunks/{4147848c53c89b39.js → b0350e13295c954e.js} +2 -2
  136. package/web/.next/static/chunks/{e40d2bee2827b6f2.js → bd0ca359575a0ac5.js} +1 -1
  137. package/web/.next/static/chunks/{8434870e6711ce40.js → c3f36157a3c0ecde.js} +1 -1
  138. package/web/.next/static/chunks/{affa6e24319253c5.js → dff1020b86b0bb1d.js} +1 -1
  139. package/dist/src/presentation/web/app/api/npm-version/route.d.ts +0 -3
  140. package/dist/src/presentation/web/app/api/npm-version/route.d.ts.map +0 -1
  141. package/dist/src/presentation/web/app/api/npm-version/route.js +0 -18
  142. package/dist/src/presentation/web/hooks/use-npm-version-check.d.ts +0 -10
  143. package/dist/src/presentation/web/hooks/use-npm-version-check.d.ts.map +0 -1
  144. package/dist/src/presentation/web/hooks/use-npm-version-check.js +0 -34
  145. package/dist/src/presentation/web/lib/compare-versions.d.ts +0 -7
  146. package/dist/src/presentation/web/lib/compare-versions.d.ts.map +0 -1
  147. package/dist/src/presentation/web/lib/compare-versions.js +0 -19
  148. package/web/.next/server/app/api/npm-version/route/app-paths-manifest.json +0 -3
  149. package/web/.next/server/app/api/npm-version/route/build-manifest.json +0 -11
  150. package/web/.next/server/app/api/npm-version/route/server-reference-manifest.json +0 -4
  151. package/web/.next/server/app/api/npm-version/route.js +0 -7
  152. package/web/.next/server/app/api/npm-version/route.js.map +0 -5
  153. package/web/.next/server/app/api/npm-version/route.js.nft.json +0 -1
  154. package/web/.next/server/app/api/npm-version/route_client-reference-manifest.js +0 -2
  155. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_npm-version_route_actions_3acb9a87.js +0 -3
  156. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_npm-version_route_actions_3acb9a87.js.map +0 -1
  157. package/web/.next/server/chunks/[root-of-the-server]__3b72e8b0._.js +0 -3
  158. package/web/.next/server/chunks/[root-of-the-server]__3b72e8b0._.js.map +0 -1
  159. package/web/.next/static/chunks/9ed40ce7648baa43.js +0 -1
  160. package/web/.next/static/chunks/cf63857c936b4ca1.css +0 -1
  161. /package/web/.next/static/{dMTW-luzsSqCH02mWBG7n → izuxqy-xD4yTD3n5bSDnv}/_buildManifest.js +0 -0
  162. /package/web/.next/static/{dMTW-luzsSqCH02mWBG7n → izuxqy-xD4yTD3n5bSDnv}/_clientMiddlewareManifest.json +0 -0
  163. /package/web/.next/static/{dMTW-luzsSqCH02mWBG7n → izuxqy-xD4yTD3n5bSDnv}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"version-badge.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/version-badge/version-badge.tsx"],"names":[],"mappings":"AAKA,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,2CAyDnB"}
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
- const npmUrl = `https://www.npmjs.com/package/${packageName}`;
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-emerald-400' : '',
12
+ highlight ? 'font-medium text-cyan-400' : '',
16
13
  mono || !highlight ? 'font-mono' : '',
17
14
  ]
18
15
  .filter(Boolean)
@@ -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
@@ -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,EAAa,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAmC/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,KAOxB,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,WAAW,EAAE,KAWzB,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,UAAU,EAAE,KAWxB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,eAAe,EAAE,KAO7B,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,EAAE,KAWhC,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC"}
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
- };
@@ -1 +1 @@
1
- {"version":3,"file":"use-graph-state.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/use-graph-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,mDAAmD;IACnD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd;;;OAGG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAClE,uEAAuE;IACvE,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5E,kEAAkE;IAClE,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1F,yDAAyD;IACzD,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,sDAAsD;IACtD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,uDAAuD;IACvD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9D,2DAA2D;IAC3D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClE,gCAAgC;IAChC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,yDAAyD;IACzD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtF,gEAAgE;IAChE,wBAAwB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE,yDAAyD;IACzD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,GAAG,SAAS,CAAC;IACtE,+EAA+E;IAC/E,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,YAAY,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;CACnD;AAuCD,KAAK,kBAAkB,GAAG,OAAO,CAC/B,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,aAAa,CAAC,CACtE,CAAC;AAWF,wBAAgB,aAAa,CAC3B,YAAY,EAAE,cAAc,EAAE,EAC9B,YAAY,EAAE,IAAI,EAAE,GACnB,mBAAmB,CAgTrB"}
1
+ {"version":3,"file":"use-graph-state.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/use-graph-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,mDAAmD;IACnD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd;;;OAGG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAClE,uEAAuE;IACvE,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5E,kEAAkE;IAClE,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1F,yDAAyD;IACzD,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,sDAAsD;IACtD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,uDAAuD;IACvD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9D,2DAA2D;IAC3D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClE,gCAAgC;IAChC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,yDAAyD;IACzD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtF,gEAAgE;IAChE,wBAAwB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE,yDAAyD;IACzD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,GAAG,SAAS,CAAC;IACtE,+EAA+E;IAC/E,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,YAAY,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;CACnD;AAuCD,KAAK,kBAAkB,GAAG,OAAO,CAC/B,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,aAAa,CAAC,CACtE,CAAC;AAWF,wBAAgB,aAAa,CAC3B,YAAY,EAAE,cAAc,EAAE,EAC9B,YAAY,EAAE,IAAI,EAAE,GACnB,mBAAmB,CAmUrB"}
@@ -165,7 +165,23 @@ export function useGraphState(initialNodes, initialEdges) {
165
165
  }
166
166
  return changed ? next : currentPendingMap;
167
167
  });
168
- setRepoMap(newRepoMap);
168
+ // Merge repoMap: preserve optimistic (temp) repos that the server doesn't
169
+ // know about yet. Temp repos use IDs like "repo-temp-*". Without this,
170
+ // a polling reconcile that fires before the server action returns would
171
+ // wipe the optimistic entry, causing the repo to disappear and reappear.
172
+ setRepoMap((currentRepoMap) => {
173
+ // Start with everything the server returned
174
+ const merged = new Map(newRepoMap);
175
+ // Build a set of repositoryPaths present in server data for dedup
176
+ const serverPaths = new Set([...newRepoMap.values()].map((e) => e.data.repositoryPath));
177
+ // Keep optimistic entries whose path isn't in server data yet
178
+ for (const [id, entry] of currentRepoMap) {
179
+ if (id.startsWith('repo-temp-') && !serverPaths.has(entry.data.repositoryPath)) {
180
+ merged.set(id, entry);
181
+ }
182
+ }
183
+ return merged;
184
+ });
169
185
  }, []);
170
186
  const updateFeature = useCallback((featureNodeId, updates) => {
171
187
  setFeatureMap((prev) => {