@shepai/cli 1.92.2-pr281.bc03a69 → 1.92.2-pr282.615e7a7

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 (179) hide show
  1. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts +4 -16
  2. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts +9 -14
  4. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +20 -41
  6. package/dist/packages/core/src/domain/generated/output.d.ts +2 -3
  7. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  8. package/dist/packages/core/src/domain/generated/output.js +0 -1
  9. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +0 -1
  10. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  11. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +0 -4
  12. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +0 -12
  14. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts +0 -2
  15. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +3 -13
  17. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
  18. package/dist/src/presentation/cli/commands/feat/ls.command.js +2 -9
  19. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  20. package/dist/src/presentation/web/app/api/agent-events/route.js +0 -1
  21. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +1 -1
  22. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +1 -3
  23. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  24. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +0 -4
  25. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -1
  26. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  27. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +1 -11
  28. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +0 -1
  29. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  30. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +0 -21
  31. package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
  32. package/dist/src/presentation/web/hooks/sidebar-features-context.js +0 -1
  33. package/dist/src/presentation/web/lib/format-duration.d.ts +11 -0
  34. package/dist/src/presentation/web/lib/format-duration.d.ts.map +1 -0
  35. package/dist/src/presentation/web/lib/format-duration.js +26 -0
  36. package/dist/tsconfig.build.tsbuildinfo +1 -1
  37. package/package.json +1 -1
  38. package/web/.next/BUILD_ID +1 -1
  39. package/web/.next/build-manifest.json +2 -2
  40. package/web/.next/fallback-build-manifest.json +2 -2
  41. package/web/.next/prerender-manifest.json +3 -3
  42. package/web/.next/required-server-files.js +1 -1
  43. package/web/.next/required-server-files.json +1 -1
  44. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
  45. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  46. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  47. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +21 -21
  48. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  49. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  50. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +21 -21
  51. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  52. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  53. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  54. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  55. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +18 -18
  57. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  58. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +21 -21
  60. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  61. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +21 -21
  63. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  64. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  65. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
  66. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  67. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  69. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  70. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  71. package/web/.next/server/app/_global-error.html +2 -2
  72. package/web/.next/server/app/_global-error.rsc +1 -1
  73. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  74. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  75. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  76. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  77. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  78. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  79. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  81. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  82. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  83. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  85. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  86. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  88. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  89. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  91. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
  93. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  94. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  95. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  96. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
  97. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
  98. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
  99. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
  100. package/web/.next/server/chunks/ssr/[root-of-the-server]__0880ff0e._.js +1 -1
  101. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  102. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/[root-of-the-server]__17143953._.js +1 -1
  104. package/web/.next/server/chunks/ssr/[root-of-the-server]__17143953._.js.map +1 -1
  105. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +1 -1
  106. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  107. package/web/.next/server/chunks/ssr/[root-of-the-server]__45aad79d._.js +1 -1
  108. package/web/.next/server/chunks/ssr/[root-of-the-server]__45aad79d._.js.map +1 -1
  109. package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
  110. package/web/.next/server/chunks/ssr/[root-of-the-server]__52485955._.js +1 -1
  111. package/web/.next/server/chunks/ssr/[root-of-the-server]__5cc4752a._.js +1 -1
  112. package/web/.next/server/chunks/ssr/[root-of-the-server]__5cc4752a._.js.map +1 -1
  113. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  114. package/web/.next/server/chunks/ssr/[root-of-the-server]__5edfc56b._.js +1 -1
  115. package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js +1 -1
  116. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
  117. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c88ef55._.js +1 -1
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__94128fa9._.js +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__9bfb8e7c._.js +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__9de266fa._.js +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__9de266fa._.js.map +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  131. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -1
  133. package/web/.next/server/chunks/ssr/_6e08ce21._.js +1 -1
  134. package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
  135. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  136. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  138. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  139. package/web/.next/server/chunks/ssr/_df15bd24._.js +1 -1
  140. package/web/.next/server/chunks/ssr/_df15bd24._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/{_23f32b50._.js → _fd66be91._.js} +2 -2
  142. package/web/.next/server/chunks/ssr/{_23f32b50._.js.map → _fd66be91._.js.map} +1 -1
  143. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  144. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
  146. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  148. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  150. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/src_presentation_web_app_not-found_tsx_64b86c46._.js +1 -1
  152. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -2
  153. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  155. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +1 -1
  156. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  157. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +1 -1
  158. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  159. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  160. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -2
  162. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -1
  163. package/web/.next/server/pages/500.html +2 -2
  164. package/web/.next/server/server-reference-manifest.js +1 -1
  165. package/web/.next/server/server-reference-manifest.json +28 -28
  166. package/web/.next/static/chunks/{ea20e8964d472f76.js → 0637770ccd99c663.js} +1 -1
  167. package/web/.next/static/chunks/{5f95404ff95fa501.js → 0a4bf9da7c65a7eb.js} +1 -1
  168. package/web/.next/static/chunks/{7ff10ef16519c63f.js → 29b9a27ba98a9026.js} +1 -1
  169. package/web/.next/static/chunks/{87988f9114fedca4.js → 3b91ec0e921e0ea4.js} +1 -1
  170. package/web/.next/static/chunks/{f9c0e62c0e4e5115.js → 3cb3c4e15c4799a5.js} +1 -1
  171. package/web/.next/static/chunks/{dc37a8365766fe69.js → 4f22aee4ec435750.js} +1 -1
  172. package/web/.next/static/chunks/{6b54e626d611dd2b.js → 7727fb2009b7e643.js} +1 -1
  173. package/web/.next/static/chunks/{3371e02956d6cf23.js → 89965fc2f4272c95.js} +2 -2
  174. package/web/.next/static/chunks/{b87c2e7d1de24c3c.js → 9095171fccd3615f.js} +1 -1
  175. package/web/.next/static/chunks/{455370fd4c47c0e0.js → 9873a9f74146ee08.js} +1 -1
  176. package/web/.next/static/chunks/{53e9831f023776f3.js → e45fdeb8bffec4c9.js} +1 -1
  177. /package/web/.next/static/{zZ0u38VWwBCzG7Stx-hTP → tvyNREmRxw-8_vU-jxC85}/_buildManifest.js +0 -0
  178. /package/web/.next/static/{zZ0u38VWwBCzG7Stx-hTP → tvyNREmRxw-8_vU-jxC85}/_clientMiddlewareManifest.json +0 -0
  179. /package/web/.next/static/{zZ0u38VWwBCzG7Stx-hTP → tvyNREmRxw-8_vU-jxC85}/_ssgManifest.js +0 -0
@@ -2,7 +2,7 @@ import { type LucideIcon } from 'lucide-react';
2
2
  import type { Node } from '@xyflow/react';
3
3
  import type { PrStatus, CiStatus, DeploymentState } from '../../../../../../packages/core/src/domain/generated/output.js';
4
4
  import type { AgentTypeValue } from './agent-type-icons.js';
5
- export type FeatureNodeState = 'creating' | 'running' | 'action-required' | 'done' | 'blocked' | 'error' | 'deleting';
5
+ export type FeatureNodeState = 'creating' | 'running' | 'action-required' | 'done' | 'blocked' | 'error';
6
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>;
@@ -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":"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"}
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":"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"}
@@ -1,4 +1,4 @@
1
- import { Loader2, CircleAlert, CircleCheck, Ban, CircleX, Trash2, } from 'lucide-react';
1
+ import { Loader2, CircleAlert, CircleCheck, Ban, CircleX } from 'lucide-react';
2
2
  /** Human-readable display labels for lifecycle phases. */
3
3
  export const lifecycleDisplayLabels = {
4
4
  requirements: 'REQUIREMENTS',
@@ -78,14 +78,4 @@ export const featureNodeStateConfig = {
78
78
  label: 'Error',
79
79
  showProgressBar: false,
80
80
  },
81
- deleting: {
82
- icon: Trash2,
83
- borderClass: 'border-l-gray-400',
84
- labelClass: 'text-gray-400',
85
- progressClass: 'bg-gray-400',
86
- badgeClass: 'text-gray-600',
87
- badgeBgClass: 'bg-gray-100',
88
- label: 'Deleting...',
89
- showProgressBar: false,
90
- },
91
81
  };
@@ -13,7 +13,6 @@ export declare const DoneWithRuntime: Story;
13
13
  export declare const BlockedByFeature: Story;
14
14
  export declare const Creating: Story;
15
15
  export declare const MergeReviewActionRequired: Story;
16
- export declare const Deleting: Story;
17
16
  export declare const ErrorWithMessage: Story;
18
17
  export declare const WithDeleteButton: Story;
19
18
  export declare const FastMode: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-node.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,6BAA6B,CAAC;AAiCrC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,eAAe,CAc/B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAEvC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAgHF,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAWF,eAAO,MAAM,aAAa,EAAE,KAqB3B,CAAC;AA2EF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAW7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAW9B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAUvC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAW9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAW9B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAatB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAc1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAY/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAa7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAYlC,CAAC;AA4EF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC"}
1
+ {"version":3,"file":"feature-node.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,6BAA6B,CAAC;AAiCrC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,eAAe,CAc/B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAEvC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAsGF,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAWF,eAAO,MAAM,aAAa,EAAE,KAqB3B,CAAC;AA2EF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAW7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAW9B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAUvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAW9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAW9B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAatB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAc1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAY/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAa7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAYlC,CAAC;AA4EF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC"}
@@ -127,16 +127,6 @@ const allStatesData = [
127
127
  repositoryPath: '/home/user/my-repo',
128
128
  branch: 'feat/email-service',
129
129
  },
130
- {
131
- name: 'Legacy API Cleanup',
132
- description: 'Remove deprecated REST endpoints',
133
- featureId: '#f6',
134
- lifecycle: 'implementation',
135
- state: 'deleting',
136
- progress: 0,
137
- repositoryPath: '/home/user/my-repo',
138
- branch: 'feat/legacy-api-cleanup',
139
- },
140
130
  ];
141
131
  export const AllStates = {
142
132
  render: () => (_jsx("div", { className: "flex flex-wrap gap-6", children: allStatesData.map((data) => (_jsx(FeatureNodeCanvas, { style: { width: 500, height: 350 }, data: data }, data.featureId))) })),
@@ -296,17 +286,6 @@ export const MergeReviewActionRequired = {
296
286
  },
297
287
  render: (args) => _jsx(FeatureNodeCanvas, { data: args }),
298
288
  };
299
- export const Deleting = {
300
- args: {
301
- name: 'Legacy API Cleanup',
302
- description: 'Remove deprecated REST endpoints',
303
- featureId: '#f6',
304
- lifecycle: 'implementation',
305
- state: 'deleting',
306
- progress: 0,
307
- },
308
- render: (args) => _jsx(FeatureNodeCanvas, { data: args }),
309
- };
310
289
  export const ErrorWithMessage = {
311
290
  args: {
312
291
  name: 'Email Service',
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar-features-context.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/sidebar-features-context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AACnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAI/E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAgBD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,IAAI,CAEzF;AAMD,UAAU,2BAA2B;IACnC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,WAAW,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;CACvD;AAID,UAAU,4BAA4B;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,4BAA4B,2CAQjF;AAED,wBAAgB,yBAAyB,IAAI,2BAA2B,CAMvE"}
1
+ {"version":3,"file":"sidebar-features-context.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/sidebar-features-context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AACnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAI/E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAeD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,IAAI,CAEzF;AAMD,UAAU,2BAA2B;IACnC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,WAAW,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;CACvD;AAID,UAAU,4BAA4B;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,4BAA4B,2CAQjF;AAED,wBAAgB,yBAAyB,IAAI,2BAA2B,CAMvE"}
@@ -11,7 +11,6 @@ const stateMapping = {
11
11
  blocked: 'blocked',
12
12
  error: 'error',
13
13
  creating: null,
14
- deleting: null,
15
14
  };
16
15
  /**
17
16
  * Maps a canvas FeatureNodeState to the sidebar's 5-state FeatureStatus.
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Formats a duration in milliseconds to a human-friendly string.
3
+ *
4
+ * - 0ms → "0s"
5
+ * - <1s → "<1s"
6
+ * - <60s → "Xs"
7
+ * - <1h → "Xm Ys"
8
+ * - ≥1h → "Xh Ym" (seconds omitted)
9
+ */
10
+ export declare function formatDuration(ms: number): string;
11
+ //# sourceMappingURL=format-duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-duration.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/lib/format-duration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAmBjD"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Formats a duration in milliseconds to a human-friendly string.
3
+ *
4
+ * - 0ms → "0s"
5
+ * - <1s → "<1s"
6
+ * - <60s → "Xs"
7
+ * - <1h → "Xm Ys"
8
+ * - ≥1h → "Xh Ym" (seconds omitted)
9
+ */
10
+ export function formatDuration(ms) {
11
+ if (ms === 0)
12
+ return '0s';
13
+ const totalSeconds = Math.floor(ms / 1000);
14
+ if (totalSeconds === 0)
15
+ return '<1s';
16
+ const hours = Math.floor(totalSeconds / 3600);
17
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
18
+ const seconds = totalSeconds % 60;
19
+ if (hours > 0) {
20
+ return `${hours}h ${minutes}m`;
21
+ }
22
+ if (minutes > 0) {
23
+ return `${minutes}m ${seconds}s`;
24
+ }
25
+ return `${seconds}s`;
26
+ }