@shepai/cli 1.120.0 → 1.121.0-pr386.fb524e4

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 (158) hide show
  1. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.d.ts.map +1 -1
  2. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.js +21 -0
  3. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.d.ts.map +1 -1
  4. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.js +4 -1
  5. package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.d.ts +1 -0
  6. package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.d.ts.map +1 -1
  7. package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.js +8 -0
  8. package/dist/src/presentation/web/components/common/feature-status-badges/feature-status-badges.stories.js +6 -6
  9. package/dist/src/presentation/web/components/common/feature-status-config.d.ts +1 -1
  10. package/dist/src/presentation/web/components/common/feature-status-config.d.ts.map +1 -1
  11. package/dist/src/presentation/web/components/common/feature-status-config.js +8 -1
  12. package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.stories.d.ts +1 -0
  13. package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.stories.d.ts.map +1 -1
  14. package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.stories.js +7 -0
  15. package/dist/src/presentation/web/hooks/sidebar-features-context.js +1 -1
  16. package/dist/tsconfig.build.tsbuildinfo +1 -1
  17. package/package.json +1 -1
  18. package/web/.next/BUILD_ID +1 -1
  19. package/web/.next/build-manifest.json +2 -2
  20. package/web/.next/fallback-build-manifest.json +2 -2
  21. package/web/.next/prerender-manifest.json +3 -3
  22. package/web/.next/required-server-files.js +3 -3
  23. package/web/.next/required-server-files.json +3 -3
  24. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +21 -21
  25. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  26. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  27. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
  28. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  29. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  30. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +27 -27
  31. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
  34. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +21 -21
  37. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  38. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
  40. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  41. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  42. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +27 -27
  43. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  44. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +19 -19
  46. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  47. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
  49. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  50. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/_global-error.html +2 -2
  52. package/web/.next/server/app/_global-error.rsc +1 -1
  53. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  54. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  55. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  56. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  57. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  58. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  59. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  60. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  62. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  63. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  65. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  66. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  68. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  69. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  71. package/web/.next/server/app/version/page.js.nft.json +1 -1
  72. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  74. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  75. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  76. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js +1 -1
  77. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js.map +1 -1
  78. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js +1 -1
  79. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js.map +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b14e5a0._.js +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b14e5a0._.js.map +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +1 -1
  85. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  86. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  87. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  88. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  89. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  90. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  91. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b59c03e._.js +1 -1
  92. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b59c03e._.js.map +1 -1
  93. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
  94. package/web/.next/server/chunks/ssr/[root-of-the-server]__994ad9fe._.js +1 -1
  95. package/web/.next/server/chunks/ssr/[root-of-the-server]__994ad9fe._.js.map +1 -1
  96. package/web/.next/server/chunks/ssr/[root-of-the-server]__a022445f._.js +2 -2
  97. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +2 -2
  98. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9c1cfee._.js +1 -1
  99. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9c1cfee._.js.map +1 -1
  100. package/web/.next/server/chunks/ssr/{_503b26e9._.js → _0c680080._.js} +2 -2
  101. package/web/.next/server/chunks/ssr/{_503b26e9._.js.map → _0c680080._.js.map} +1 -1
  102. package/web/.next/server/chunks/ssr/_0dc2cfd3._.js +3 -0
  103. package/web/.next/server/chunks/ssr/_0dc2cfd3._.js.map +1 -0
  104. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  105. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  107. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/{_c93f4352._.js → _34a7d4f8._.js} +2 -2
  109. package/web/.next/server/chunks/ssr/{_c93f4352._.js.map → _34a7d4f8._.js.map} +1 -1
  110. package/web/.next/server/chunks/ssr/{_16e2ff25._.js → _c55e2070._.js} +2 -2
  111. package/web/.next/server/chunks/ssr/{_16e2ff25._.js.map → _c55e2070._.js.map} +1 -1
  112. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  113. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/{_f605354c._.js → _f1a649e3._.js} +3 -3
  115. package/web/.next/server/chunks/ssr/_f1a649e3._.js.map +1 -0
  116. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  117. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js +2 -2
  119. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js +1 -1
  121. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  123. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  125. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  127. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  128. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  129. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  131. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js +2 -2
  133. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js.map +1 -1
  134. package/web/.next/server/pages/500.html +2 -2
  135. package/web/.next/server/server-reference-manifest.js +1 -1
  136. package/web/.next/server/server-reference-manifest.json +33 -33
  137. package/web/.next/static/chunks/0d2af96e64960ef5.css +1 -0
  138. package/web/.next/static/chunks/1f29df6ef3c26481.js +1 -0
  139. package/web/.next/static/chunks/4576affd28e04ebb.js +1 -0
  140. package/web/.next/static/chunks/480c16a0516f8fb7.js +11 -0
  141. package/web/.next/static/chunks/{700fc491c912dd68.js → 6aeabd0eea63311b.js} +1 -1
  142. package/web/.next/static/chunks/{71161130b2462279.js → 96eeeb28e06de78c.js} +1 -1
  143. package/web/.next/static/chunks/{abb2b485cb0da264.js → 9f59880bfcb77636.js} +1 -1
  144. package/web/.next/static/chunks/{a5ff70a7709ec5af.js → bc89972af861ff78.js} +2 -2
  145. package/web/.next/static/chunks/{943a2b78e452a2fb.js → bd48a9b6783fb94b.js} +2 -2
  146. package/web/.next/static/chunks/{51244236801cad96.js → d7338a327ac08b53.js} +1 -1
  147. package/web/.next/static/chunks/{263497416e5198a3.js → d77e7f11a018ab86.js} +1 -1
  148. package/web/.next/static/chunks/{57e0b981e00941e4.js → ebceaa068b5cdb5c.js} +1 -1
  149. package/web/.next/server/chunks/ssr/_ab069e13._.js +0 -3
  150. package/web/.next/server/chunks/ssr/_ab069e13._.js.map +0 -1
  151. package/web/.next/server/chunks/ssr/_f605354c._.js.map +0 -1
  152. package/web/.next/static/chunks/027d779d1dd1535e.js +0 -1
  153. package/web/.next/static/chunks/844405e9e0f44c8b.js +0 -11
  154. package/web/.next/static/chunks/d2739454715e5ef2.css +0 -1
  155. package/web/.next/static/chunks/f518c011aaa1941e.js +0 -1
  156. /package/web/.next/static/{oxdz8EAvGqpg8JW3gRSSs → s3bphH4Aw2_f7MkMRvkzC}/_buildManifest.js +0 -0
  157. /package/web/.next/static/{oxdz8EAvGqpg8JW3gRSSs → s3bphH4Aw2_f7MkMRvkzC}/_clientMiddlewareManifest.json +0 -0
  158. /package/web/.next/static/{oxdz8EAvGqpg8JW3gRSSs → s3bphH4Aw2_f7MkMRvkzC}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"fast-implement.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAEpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUrD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,IAGhD,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAoD7E"}
1
+ {"version":3,"file":"fast-implement.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAEpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUrD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,IAGhD,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CA4D7E"}
@@ -9,6 +9,7 @@
9
9
  * Follows the same factory pattern as other nodes: takes executor
10
10
  * dependency, returns async (state) => Partial<FeatureAgentState>.
11
11
  */
12
+ import { execSync } from 'node:child_process';
12
13
  import { mkdirSync, writeFileSync } from 'node:fs';
13
14
  import { join, dirname } from 'node:path';
14
15
  import { isGraphBubbleUp } from '@langchain/langgraph';
@@ -44,6 +45,11 @@ export function createFastImplementNode(executor) {
44
45
  const durationMs = Date.now() - startTime;
45
46
  const elapsed = (durationMs / 1000).toFixed(1);
46
47
  log.info(`Complete (${result.result.length} chars, ${elapsed}s)`);
48
+ // Validate that the executor actually produced file changes
49
+ const cwd = state.worktreePath || state.repositoryPath;
50
+ if (!hasWorktreeChanges(cwd)) {
51
+ throw new Error('[fast-implement] Agent produced no file changes — it may have entered plan mode or asked questions instead of implementing. Retrying.');
52
+ }
47
53
  // --- Evidence sub-agent: capture proof of completion (settings-gated) ---
48
54
  const evidenceEnabled = hasSettings() && getSettings().workflow.enableEvidence;
49
55
  const evidence = evidenceEnabled ? await collectEvidence(executor, state, log) : [];
@@ -107,6 +113,21 @@ async function collectEvidence(executor, state, log) {
107
113
  return [];
108
114
  }
109
115
  }
116
+ /**
117
+ * Check whether the worktree has any uncommitted changes (new, modified, or deleted files).
118
+ * Uses `git status --porcelain` which outputs one line per changed file, or empty if clean.
119
+ * Returns false if the git command fails (e.g. not a git repo).
120
+ */
121
+ function hasWorktreeChanges(cwd) {
122
+ try {
123
+ const output = execSync('git status --porcelain', { cwd, encoding: 'utf-8' });
124
+ return output.trim().length > 0;
125
+ }
126
+ catch {
127
+ // If git command fails, assume no changes (conservative — will trigger the error)
128
+ return false;
129
+ }
130
+ }
110
131
  /**
111
132
  * Save evidence manifest to the shep home evidence folder so the
112
133
  * merge review UI can read it without accessing graph state.
@@ -1 +1 @@
1
- {"version":3,"file":"fast-implement.prompt.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAwIxD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAoEzE"}
1
+ {"version":3,"file":"fast-implement.prompt.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAwIxD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAuEzE"}
@@ -211,6 +211,9 @@ ${dirListing}
211
211
  - Follow existing codebase conventions and patterns
212
212
  - Do NOT commit, push, or create pull requests
213
213
  - Do NOT modify any spec YAML files
214
- - Keep changes focused and minimal`);
214
+ - Keep changes focused and minimal
215
+ - Do NOT enter plan mode — implement directly without planning phases
216
+ - Do NOT ask the user questions or use AskUserQuestion — make reasonable decisions and proceed
217
+ - You MUST create or modify actual code files — a plan or summary alone is not acceptable output`);
215
218
  return sections.join('\n\n');
216
219
  }
@@ -6,6 +6,7 @@ type Story = StoryObj<typeof meta>;
6
6
  export declare const ActionNeeded: Story;
7
7
  export declare const InProgress: Story;
8
8
  export declare const Done: Story;
9
+ export declare const Pending: Story;
9
10
  export declare const Blocked: Story;
10
11
  export declare const Error: Story;
11
12
  export declare const WithClickHandler: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-list-item.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-list-item/feature-list-item.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,eAAe,CAgBtC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,YAAY,EAAE,KAO1B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAQlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAOnB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC"}
1
+ {"version":3,"file":"feature-list-item.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-list-item/feature-list-item.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,eAAe,CAgBtC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,YAAY,EAAE,KAO1B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAQlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAOnB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC"}
@@ -39,6 +39,14 @@ export const Done = {
39
39
  modelId: 'gemini-2.5-pro',
40
40
  },
41
41
  };
42
+ export const Pending = {
43
+ args: {
44
+ name: 'Dark Mode Toggle',
45
+ status: 'pending',
46
+ agentType: 'claude-code',
47
+ modelId: 'claude-sonnet-4-6',
48
+ },
49
+ };
42
50
  export const Blocked = {
43
51
  args: {
44
52
  name: 'Dependency Resolver',
@@ -15,31 +15,31 @@ const meta = {
15
15
  export default meta;
16
16
  export const AllStatuses = {
17
17
  args: {
18
- counts: { 'action-needed': 2, 'in-progress': 3, blocked: 1, error: 1, done: 5 },
18
+ counts: { 'action-needed': 2, 'in-progress': 3, pending: 2, blocked: 1, error: 1, done: 5 },
19
19
  },
20
20
  };
21
21
  export const ActionNeededOnly = {
22
22
  args: {
23
- counts: { 'action-needed': 4, 'in-progress': 0, blocked: 0, error: 0, done: 0 },
23
+ counts: { 'action-needed': 4, 'in-progress': 0, pending: 0, blocked: 0, error: 0, done: 0 },
24
24
  },
25
25
  };
26
26
  export const InProgressOnly = {
27
27
  args: {
28
- counts: { 'action-needed': 0, 'in-progress': 2, blocked: 0, error: 0, done: 0 },
28
+ counts: { 'action-needed': 0, 'in-progress': 2, pending: 0, blocked: 0, error: 0, done: 0 },
29
29
  },
30
30
  };
31
31
  export const DoneOnly = {
32
32
  args: {
33
- counts: { 'action-needed': 0, 'in-progress': 0, blocked: 0, error: 0, done: 7 },
33
+ counts: { 'action-needed': 0, 'in-progress': 0, pending: 0, blocked: 0, error: 0, done: 7 },
34
34
  },
35
35
  };
36
36
  export const LargeCounts = {
37
37
  args: {
38
- counts: { 'action-needed': 12, 'in-progress': 99, blocked: 5, error: 3, done: 150 },
38
+ counts: { 'action-needed': 12, 'in-progress': 99, pending: 8, blocked: 5, error: 3, done: 150 },
39
39
  },
40
40
  };
41
41
  export const Empty = {
42
42
  args: {
43
- counts: { 'action-needed': 0, 'in-progress': 0, blocked: 0, error: 0, done: 0 },
43
+ counts: { 'action-needed': 0, 'in-progress': 0, pending: 0, blocked: 0, error: 0, done: 0 },
44
44
  },
45
45
  };
@@ -1,5 +1,5 @@
1
1
  import type { LucideIcon } from 'lucide-react';
2
- export type FeatureStatus = 'action-needed' | 'in-progress' | 'blocked' | 'error' | 'done';
2
+ export type FeatureStatus = 'action-needed' | 'in-progress' | 'pending' | 'blocked' | 'error' | 'done';
3
3
  export interface FeatureStatusConfig {
4
4
  icon: LucideIcon;
5
5
  iconClass: string;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-status-config.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/common/feature-status-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3F,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,mBAAmB,CA+B1E,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAM7C,CAAC"}
1
+ {"version":3,"file":"feature-status-config.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/common/feature-status-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,aAAa,GACb,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAqC1E,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAO7C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { CircleAlert, Loader2, CircleCheck, Ban, CircleX } from 'lucide-react';
1
+ import { CircleAlert, Loader2, CircleCheck, Ban, CircleX, Clock } from 'lucide-react';
2
2
  export const featureStatusConfig = {
3
3
  'action-needed': {
4
4
  icon: CircleAlert,
@@ -12,6 +12,12 @@ export const featureStatusConfig = {
12
12
  bgClass: 'bg-blue-500/10',
13
13
  label: 'In Progress',
14
14
  },
15
+ pending: {
16
+ icon: Clock,
17
+ iconClass: 'text-slate-400',
18
+ bgClass: 'bg-slate-400/10',
19
+ label: 'Pending',
20
+ },
15
21
  blocked: {
16
22
  icon: Ban,
17
23
  iconClass: 'text-gray-400',
@@ -36,5 +42,6 @@ export const featureStatusOrder = [
36
42
  'error',
37
43
  'blocked',
38
44
  'in-progress',
45
+ 'pending',
39
46
  'done',
40
47
  ];
@@ -5,5 +5,6 @@ export default meta;
5
5
  type Story = StoryObj<typeof meta>;
6
6
  export declare const InProgress: Story;
7
7
  export declare const Done: Story;
8
+ export declare const Pending: Story;
8
9
  export declare const ActionNeeded: Story;
9
10
  //# sourceMappingURL=feature-status-group.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-status-group.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-status-group/feature-status-group.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,kBAAkB,CAgBzC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,UAAU,EAAE,KAWxB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAYlB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAW1B,CAAC"}
1
+ {"version":3,"file":"feature-status-group.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-status-group/feature-status-group.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,kBAAkB,CAgBzC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,UAAU,EAAE,KAWxB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAYlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAWrB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAW1B,CAAC"}
@@ -28,6 +28,13 @@ export const Done = {
28
28
  children: (_jsxs(_Fragment, { children: [_jsx(FeatureListItem, { name: "Settings Page", status: "done", duration: "2h" }), _jsx(FeatureListItem, { name: "User Profile", status: "done", duration: "1h" }), _jsx(FeatureListItem, { name: "Auth Module", status: "done", duration: "30m" })] })),
29
29
  },
30
30
  };
31
+ export const Pending = {
32
+ args: {
33
+ label: 'Pending',
34
+ count: 2,
35
+ children: (_jsxs(_Fragment, { children: [_jsx(FeatureListItem, { name: "Dark Mode", status: "pending" }), _jsx(FeatureListItem, { name: "Search Filters", status: "pending" })] })),
36
+ },
37
+ };
31
38
  export const ActionNeeded = {
32
39
  args: {
33
40
  label: 'Action Needed',
@@ -9,7 +9,7 @@ const stateMapping = {
9
9
  running: 'in-progress',
10
10
  done: 'done',
11
11
  blocked: 'blocked',
12
- pending: 'blocked',
12
+ pending: 'pending',
13
13
  error: 'error',
14
14
  creating: null,
15
15
  deleting: null,