@shepai/cli 1.127.0-pr406.1b65b22 → 1.127.0-pr408.5014a05

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 (160) hide show
  1. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +2 -5
  2. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +2 -7
  5. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +2 -7
  7. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +0 -1
  9. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +1 -1
  10. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  11. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +32 -37
  12. package/dist/src/presentation/web/app/actions/approve-feature.d.ts.map +1 -1
  13. package/dist/src/presentation/web/app/actions/approve-feature.js +9 -4
  14. package/dist/src/presentation/web/app/actions/reject-feature.d.ts.map +1 -1
  15. package/dist/src/presentation/web/app/actions/reject-feature.js +9 -4
  16. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.d.ts.map +1 -1
  17. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.js +1 -1
  18. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts +2 -0
  19. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -1
  20. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +34 -0
  21. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.d.ts.map +1 -1
  22. package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.js +1 -1
  23. package/dist/tsconfig.build.tsbuildinfo +1 -1
  24. package/package.json +1 -1
  25. package/web/.next/BUILD_ID +1 -1
  26. package/web/.next/build-manifest.json +2 -2
  27. package/web/.next/fallback-build-manifest.json +2 -2
  28. package/web/.next/prerender-manifest.json +3 -3
  29. package/web/.next/required-server-files.js +1 -1
  30. package/web/.next/required-server-files.json +1 -1
  31. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +22 -22
  32. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +22 -22
  35. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  38. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +28 -28
  41. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  42. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  44. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +22 -22
  47. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  50. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +28 -28
  53. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +20 -20
  56. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  59. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  60. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/_global-error.html +2 -2
  62. package/web/.next/server/app/_global-error.rsc +1 -1
  63. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  64. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  65. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  66. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  67. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  68. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  69. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  71. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  72. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  74. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  76. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  78. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  79. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  80. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  81. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  82. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_fbb88113.js +1 -1
  83. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_fbb88113.js.map +1 -1
  84. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  85. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  86. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_fdfbf5cc.js +1 -1
  87. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_fdfbf5cc.js.map +1 -1
  88. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_d8fa0b5f.js +1 -1
  89. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_d8fa0b5f.js.map +1 -1
  90. package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js +1 -1
  91. package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js.map +1 -1
  92. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
  93. package/web/.next/server/chunks/ssr/[root-of-the-server]__248b9fc3._.js +1 -1
  94. package/web/.next/server/chunks/ssr/[root-of-the-server]__248b9fc3._.js.map +1 -1
  95. package/web/.next/server/chunks/ssr/[root-of-the-server]__357de47c._.js +2 -2
  96. package/web/.next/server/chunks/ssr/[root-of-the-server]__357de47c._.js.map +1 -1
  97. package/web/.next/server/chunks/ssr/[root-of-the-server]__67fe07fe._.js +1 -1
  98. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  99. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  100. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  102. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  104. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  105. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
  106. package/web/.next/server/chunks/ssr/[root-of-the-server]__a50a7e39._.js +2 -2
  107. package/web/.next/server/chunks/ssr/[root-of-the-server]__a50a7e39._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  109. package/web/.next/server/chunks/ssr/[root-of-the-server]__dfc367f2._.js +1 -1
  110. package/web/.next/server/chunks/ssr/[root-of-the-server]__dfc367f2._.js.map +1 -1
  111. package/web/.next/server/chunks/ssr/[root-of-the-server]__e7f61cc6._.js +1 -1
  112. package/web/.next/server/chunks/ssr/[root-of-the-server]__e7f61cc6._.js.map +1 -1
  113. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe48d2dc._.js +1 -1
  114. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe48d2dc._.js.map +1 -1
  115. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  116. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  117. package/web/.next/server/chunks/ssr/_7dca1882._.js +1 -1
  118. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -1
  119. package/web/.next/server/chunks/ssr/_a187fd7e._.js +1 -1
  120. package/web/.next/server/chunks/ssr/_a187fd7e._.js.map +1 -1
  121. package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
  122. package/web/.next/server/chunks/ssr/{_1e8676be._.js → _cfafe9f1._.js} +2 -2
  123. package/web/.next/server/chunks/ssr/{_1e8676be._.js.map → _cfafe9f1._.js.map} +1 -1
  124. package/web/.next/server/chunks/ssr/{_d1966be3._.js → _f363593f._.js} +2 -2
  125. package/web/.next/server/chunks/ssr/{_d1966be3._.js.map → _f363593f._.js.map} +1 -1
  126. package/web/.next/server/chunks/ssr/_f39a1adb._.js +1 -1
  127. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  129. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/{src_presentation_web_3cc5cb5e._.js → src_presentation_web_972af453._.js} +2 -2
  131. package/web/.next/server/chunks/ssr/{src_presentation_web_3cc5cb5e._.js.map → src_presentation_web_972af453._.js.map} +1 -1
  132. package/web/.next/server/chunks/ssr/src_presentation_web_9db47db7._.js +2 -2
  133. package/web/.next/server/chunks/ssr/src_presentation_web_9db47db7._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f66cd328.js +1 -1
  135. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f66cd328.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  137. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  138. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  139. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  140. package/web/.next/server/chunks/ssr/src_presentation_web_ede4a227._.js +2 -2
  141. package/web/.next/server/chunks/ssr/src_presentation_web_ede4a227._.js.map +1 -1
  142. package/web/.next/server/pages/500.html +2 -2
  143. package/web/.next/server/server-reference-manifest.js +1 -1
  144. package/web/.next/server/server-reference-manifest.json +36 -36
  145. package/web/.next/static/chunks/12cd753e40ae4835.js +1 -0
  146. package/web/.next/static/chunks/{66e734755d9ad3fb.js → 401534551c11f01b.js} +1 -1
  147. package/web/.next/static/chunks/{c839d87a827831b2.js → 4c9adb31e0868ccd.js} +1 -1
  148. package/web/.next/static/chunks/{e6041d1ebdc8cc22.js → 7ab6498728f8c713.js} +1 -1
  149. package/web/.next/static/chunks/{adbba8744ae9545d.js → 8cc49dc0aef744fe.js} +1 -1
  150. package/web/.next/static/chunks/{dab7751020a01248.js → a13d573a03adadc9.js} +1 -1
  151. package/web/.next/static/chunks/{ecb6179341fddc5b.js → a7058355c2bd5876.js} +2 -2
  152. package/web/.next/static/chunks/{16c4164a0e6aa7c3.js → a89fdd305684fec7.js} +1 -1
  153. package/web/.next/static/chunks/{16e02bbe4eb1dd17.js → b65242268db99397.js} +1 -1
  154. package/web/.next/static/chunks/e65f000d143d6062.js +2 -0
  155. package/web/.next/static/chunks/{57cb8990b023ce27.js → f84e0308ab49ae81.js} +1 -1
  156. package/web/.next/static/chunks/59ccf20a119e23db.js +0 -1
  157. package/web/.next/static/chunks/5f1b6a05f366bf8e.js +0 -2
  158. /package/web/.next/static/{TEtbIL-AhuswilrJSNSgH → MzlTz4QrDZlHBee-sz-SV}/_buildManifest.js +0 -0
  159. /package/web/.next/static/{TEtbIL-AhuswilrJSNSgH → MzlTz4QrDZlHBee-sz-SV}/_clientMiddlewareManifest.json +0 -0
  160. /package/web/.next/static/{TEtbIL-AhuswilrJSNSgH → MzlTz4QrDZlHBee-sz-SV}/_ssgManifest.js +0 -0
@@ -196,15 +196,12 @@ export interface IGitPrService {
196
196
  */
197
197
  createPr(cwd: string, prYamlPath: string): Promise<PrCreateResult>;
198
198
  /**
199
- * Merge a pull request immediately.
200
- *
201
- * The PR must be in a mergeable state (all required checks passed, reviews
202
- * approved). If not, this throws GitPrError with MERGE_FAILED code.
199
+ * Merge a pull request.
203
200
  *
204
201
  * @param cwd - Working directory path
205
202
  * @param prNumber - PR number to merge
206
203
  * @param strategy - Merge strategy (squash, merge, rebase)
207
- * @throws GitPrError with MERGE_FAILED code if the PR cannot be merged
204
+ * @throws GitPrError with MERGE_FAILED code
208
205
  */
209
206
  mergePr(cwd: string, prNumber: number, strategy?: MergeStrategy): Promise<void>;
210
207
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"approve-agent-run.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/agents/approve-agent-run.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAE1G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAI9E,qBACa,sBAAsB;IAG/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBANrB,kBAAkB,EAAE,mBAAmB,EAEvC,cAAc,EAAE,2BAA2B,EAE3C,iBAAiB,EAAE,kBAAkB,EAErC,qBAAqB,EAAE,sBAAsB;IAG1D,OAAO,CACX,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAqGlD"}
1
+ {"version":3,"file":"approve-agent-run.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/agents/approve-agent-run.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAE1G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAI9E,qBACa,sBAAsB;IAG/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBANrB,kBAAkB,EAAE,mBAAmB,EAEvC,cAAc,EAAE,2BAA2B,EAE3C,iBAAiB,EAAE,kBAAkB,EAErC,qBAAqB,EAAE,sBAAsB;IAG1D,OAAO,CACX,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAgGlD"}
@@ -41,15 +41,10 @@ let ApproveAgentRunUseCase = class ApproveAgentRunUseCase {
41
41
  if (!run) {
42
42
  return { approved: false, reason: 'Agent run not found' };
43
43
  }
44
- const APPROVABLE_STATUSES = new Set([
45
- AgentRunStatus.waitingApproval,
46
- AgentRunStatus.failed,
47
- AgentRunStatus.interrupted,
48
- ]);
49
- if (!APPROVABLE_STATUSES.has(run.status)) {
44
+ if (run.status !== AgentRunStatus.waitingApproval) {
50
45
  return {
51
46
  approved: false,
52
- reason: `Agent run is not in an approvable state (status: ${run.status})`,
47
+ reason: `Agent run is not waiting for approval (status: ${run.status})`,
53
48
  };
54
49
  }
55
50
  // Look up the feature to get specPath
@@ -1 +1 @@
1
- {"version":3,"file":"reject-agent-run.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/agents/reject-agent-run.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAU1G,qBACa,qBAAqB;IAG9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBANrB,kBAAkB,EAAE,mBAAmB,EAEvC,cAAc,EAAE,2BAA2B,EAE3C,iBAAiB,EAAE,kBAAkB,EAErC,qBAAqB,EAAE,sBAAsB;IAG1D,OAAO,CACX,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC;QACT,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;CA2HH"}
1
+ {"version":3,"file":"reject-agent-run.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/agents/reject-agent-run.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAU1G,qBACa,qBAAqB;IAG9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBANrB,kBAAkB,EAAE,mBAAmB,EAEvC,cAAc,EAAE,2BAA2B,EAE3C,iBAAiB,EAAE,kBAAkB,EAErC,qBAAqB,EAAE,sBAAsB;IAG1D,OAAO,CACX,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC;QACT,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;CAsHH"}
@@ -41,15 +41,10 @@ let RejectAgentRunUseCase = class RejectAgentRunUseCase {
41
41
  if (!run) {
42
42
  return { rejected: false, reason: 'Agent run not found' };
43
43
  }
44
- const REJECTABLE_STATUSES = new Set([
45
- AgentRunStatus.waitingApproval,
46
- AgentRunStatus.failed,
47
- AgentRunStatus.interrupted,
48
- ]);
49
- if (!REJECTABLE_STATUSES.has(run.status)) {
44
+ if (run.status !== AgentRunStatus.waitingApproval) {
50
45
  return {
51
46
  rejected: false,
52
- reason: `Agent run is not in a rejectable state (status: ${run.status})`,
47
+ reason: `Agent run is not waiting for approval (status: ${run.status})`,
53
48
  };
54
49
  }
55
50
  // Validate non-empty feedback
@@ -1 +1 @@
1
- {"version":3,"file":"merge.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACd,MAAM,iEAAiE,CAAC;AAmBzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AAE3H,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IACnE;;OAEG;IACH,gBAAgB,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,OAAO,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;OAGG;IACH,WAAW,EAAE,CACX,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,YAAY,EAAE,aAAa,CAAC;IAC5B,6BAA6B,EAAE,IAAI,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;CAC/E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,IAGnC,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAgU7E"}
1
+ {"version":3,"file":"merge.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACd,MAAM,iEAAiE,CAAC;AAmBzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AAE3H,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IACnE;;OAEG;IACH,gBAAgB,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,OAAO,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;OAGG;IACH,WAAW,EAAE,CACX,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,YAAY,EAAE,aAAa,CAAC;IAC5B,6BAA6B,EAAE,IAAI,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;CAC/E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,IAGnC,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CA+T7E"}
@@ -228,7 +228,6 @@ export function createMergeNode(deps) {
228
228
  if (state.approvalGates?.allowMerge || userApprovedMerge) {
229
229
  if (prUrl && prNumber) {
230
230
  // PR exists: merge via GitHub API directly — no agent or local merge needed.
231
- // This will fail if the PR is not in a mergeable state (checks pending, reviews needed).
232
231
  log.info(`Merging PR #${prNumber} via GitHub API (squash)`);
233
232
  await deps.gitPrService.mergePr(cwd, prNumber, 'squash');
234
233
  messages.push(`[merge] PR #${prNumber} merged via squash`);
@@ -186,7 +186,7 @@ let GitPrService = class GitPrService {
186
186
  }
187
187
  async mergePr(cwd, prNumber, strategy = 'squash') {
188
188
  try {
189
- await this.execFile('gh', ['pr', 'merge', String(prNumber), `--${strategy}`], {
189
+ await this.execFile('gh', ['pr', 'merge', String(prNumber), `--${strategy}`, '--auto'], {
190
190
  cwd,
191
191
  });
192
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-graph-data.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/(dashboard)/get-graph-data.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAqED,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAyDxF"}
1
+ {"version":3,"file":"get-graph-data.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/(dashboard)/get-graph-data.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAoDD,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAyDxF"}
@@ -5,57 +5,52 @@ import { getSettings } from '../../../../../packages/core/src/infrastructure/ser
5
5
  import { layoutWithDagre, CANVAS_LAYOUT_DEFAULTS } from '../../lib/layout-with-dagre.js';
6
6
  import { buildGraphNodes } from '../build-graph-nodes.js';
7
7
  const execFileAsync = promisify(execFileCb);
8
- // Cache git info per repo path — git state rarely changes between polls
9
- const gitInfoCache = new Map();
10
- const GIT_INFO_TTL_MS = 30_000; // 30 seconds
11
- /**
12
- * Fetch branch, last commit info, and behind-count in a single git process.
13
- *
14
- * Results are cached for 5s so repeated polls don't spawn child processes.
15
- */
8
+ async function gitCommand(cwd, args) {
9
+ try {
10
+ const { stdout } = await execFileAsync('git', args, { cwd });
11
+ return stdout.trim();
12
+ }
13
+ catch {
14
+ return null;
15
+ }
16
+ }
16
17
  async function fetchRepoGitInfo(repo) {
17
- const cached = gitInfoCache.get(repo.path);
18
- if (cached && Date.now() < cached.expiresAt)
19
- return cached.info;
20
- const FIELD_SEP = '\x1f'; // ASCII unit separator — won't appear in commit messages
21
18
  try {
22
- // Single spawn: branch + commit subject + author
23
- const { stdout } = await execFileAsync('git', ['-c', 'log.showSignature=false', 'log', '-1', `--format=%D${FIELD_SEP}%s${FIELD_SEP}%an`], { cwd: repo.path });
24
- const [refsRaw, commitMessage, committer] = stdout.trim().split(FIELD_SEP);
25
- // Extract current branch from decoration string (e.g. "HEAD -> main, origin/main")
26
- const branchMatch = refsRaw?.match(/HEAD -> ([^,]+)/);
27
- const currentBranch = branchMatch?.[1]?.trim() ?? null;
19
+ const [currentBranch, commitMessage, committer] = await Promise.all([
20
+ gitCommand(repo.path, ['symbolic-ref', '--short', 'HEAD']),
21
+ gitCommand(repo.path, ['log', '-1', '--format=%s']),
22
+ gitCommand(repo.path, ['log', '-1', '--format=%an']),
23
+ ]);
28
24
  if (!currentBranch)
29
25
  return null;
30
- // Determine behind-count with one more spawn only when needed
26
+ // Try to determine the default branch to compute behind count
31
27
  let behindCount = null;
32
- try {
33
- const { stdout: defaultRef } = await execFileAsync('git', ['symbolic-ref', '--short', 'refs/remotes/origin/HEAD'], { cwd: repo.path });
34
- const defaultBranch = defaultRef.trim().replace('origin/', '');
35
- if (currentBranch === defaultBranch) {
36
- behindCount = 0;
37
- }
38
- else {
39
- const { stdout: countOut } = await execFileAsync('git', ['rev-list', '--count', `${currentBranch}..origin/${defaultBranch}`], { cwd: repo.path });
40
- behindCount = parseInt(countOut.trim(), 10);
41
- if (isNaN(behindCount))
42
- behindCount = null;
43
- }
28
+ const defaultBranch = await gitCommand(repo.path, [
29
+ 'symbolic-ref',
30
+ '--short',
31
+ 'refs/remotes/origin/HEAD',
32
+ ]).then((ref) => ref?.replace('origin/', '') ?? null);
33
+ if (defaultBranch && currentBranch !== defaultBranch) {
34
+ const behind = await gitCommand(repo.path, [
35
+ 'rev-list',
36
+ '--count',
37
+ `${currentBranch}..origin/${defaultBranch}`,
38
+ ]);
39
+ behindCount = behind !== null ? parseInt(behind, 10) : null;
40
+ if (isNaN(behindCount))
41
+ behindCount = null;
44
42
  }
45
- catch {
46
- // No remote HEAD or rev-list failed — leave as null
43
+ else if (!defaultBranch || currentBranch === defaultBranch) {
44
+ behindCount = 0;
47
45
  }
48
- const info = {
46
+ return {
49
47
  branch: currentBranch,
50
48
  commitMessage: commitMessage ?? 'unknown',
51
49
  committer: committer ?? 'unknown',
52
50
  behindCount,
53
51
  };
54
- gitInfoCache.set(repo.path, { info, expiresAt: Date.now() + GIT_INFO_TTL_MS });
55
- return info;
56
52
  }
57
53
  catch {
58
- gitInfoCache.set(repo.path, { info: null, expiresAt: Date.now() + GIT_INFO_TTL_MS });
59
54
  return null;
60
55
  }
61
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"approve-feature.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/approve-feature.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiChD"}
1
+ {"version":3,"file":"approve-feature.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/approve-feature.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAK/E,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsChD"}
@@ -1,5 +1,7 @@
1
1
  'use server';
2
2
  import { resolve } from '../../lib/server-container.js';
3
+ import { AgentRunStatus } from '../../../../../packages/core/src/domain/generated/output.js';
4
+ const ERROR_STATUSES = new Set([AgentRunStatus.failed, AgentRunStatus.interrupted]);
3
5
  export async function approveFeature(featureId, payload) {
4
6
  if (!featureId.trim()) {
5
7
  return { approved: false, error: 'Feature id is required' };
@@ -13,10 +15,13 @@ export async function approveFeature(featureId, payload) {
13
15
  if (!feature.agentRunId) {
14
16
  return { approved: false, error: 'Feature has no agent run' };
15
17
  }
16
- // Always use ApproveAgentRunUseCase — it handles waitingApproval, failed,
17
- // and interrupted statuses. This ensures approval is propagated via
18
- // Command({update: {_approvalAction: 'approved'}}) so the graph node
19
- // receives it on resume.
18
+ const runRepo = resolve('IAgentRunRepository');
19
+ const run = await runRepo.findById(feature.agentRunId);
20
+ if (run && ERROR_STATUSES.has(run.status)) {
21
+ const resumeUseCase = resolve('ResumeFeatureUseCase');
22
+ await resumeUseCase.execute(featureId, { promptPrefix: 'User approved. Please continue.' });
23
+ return { approved: true };
24
+ }
20
25
  const approveUseCase = resolve('ApproveAgentRunUseCase');
21
26
  const result = await approveUseCase.execute(feature.agentRunId, payload);
22
27
  if (!result.approved) {
@@ -1 +1 @@
1
- {"version":3,"file":"reject-feature.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/reject-feature.ts"],"names":[],"mappings":"AAMA,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAyCD"}
1
+ {"version":3,"file":"reject-feature.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/reject-feature.ts"],"names":[],"mappings":"AAWA,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA8CD"}
@@ -1,5 +1,7 @@
1
1
  'use server';
2
2
  import { resolve } from '../../lib/server-container.js';
3
+ import { AgentRunStatus } from '../../../../../packages/core/src/domain/generated/output.js';
4
+ const ERROR_STATUSES = new Set([AgentRunStatus.failed, AgentRunStatus.interrupted]);
3
5
  export async function rejectFeature(featureId, feedback, attachments) {
4
6
  if (!featureId.trim()) {
5
7
  return { rejected: false, error: 'Feature id is required' };
@@ -16,10 +18,13 @@ export async function rejectFeature(featureId, feedback, attachments) {
16
18
  if (!feature.agentRunId) {
17
19
  return { rejected: false, error: 'Feature has no agent run' };
18
20
  }
19
- // Always use RejectAgentRunUseCase — it handles waitingApproval, failed,
20
- // and interrupted statuses. This ensures rejection feedback is propagated
21
- // via Command({update: {_approvalAction, _rejectionFeedback}}) so the
22
- // graph node receives the feedback on resume.
21
+ const runRepo = resolve('IAgentRunRepository');
22
+ const run = await runRepo.findById(feature.agentRunId);
23
+ if (run && ERROR_STATUSES.has(run.status)) {
24
+ const resumeUseCase = resolve('ResumeFeatureUseCase');
25
+ await resumeUseCase.execute(featureId, { promptPrefix: feedback });
26
+ return { rejected: true, iteration: 1 };
27
+ }
23
28
  const rejectUseCase = resolve('RejectAgentRunUseCase');
24
29
  const result = await rejectUseCase.execute(feature.agentRunId, feedback, attachments);
25
30
  if (!result.rejected) {
@@ -1 +1 @@
1
- {"version":3,"file":"prd-questionnaire.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAoB,EACpB,WAAmB,EACnB,UAAkB,EAClB,SAAS,EACT,iBAAiB,GAClB,EAAE,qBAAqB,kDAkLvB"}
1
+ {"version":3,"file":"prd-questionnaire.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAoB,EACpB,WAAmB,EACnB,UAAkB,EAClB,SAAS,EACT,iBAAiB,GAClB,EAAE,qBAAqB,kDAsLvB"}
@@ -33,7 +33,7 @@ export function PrdQuestionnaire({ data, selections, onSelect, onApprove, onReje
33
33
  } }, q.id))) })] }), _jsx("div", { className: "space-y-2", children: currentQuestion.options.map((opt, optIdx) => {
34
34
  const selected = selections[currentQuestion.id] === opt.id;
35
35
  const letter = String.fromCharCode(65 + optIdx);
36
- return (_jsx("button", { type: "button", className: cn('border-border w-full rounded-md border px-3 py-3 text-left text-xs transition-all', 'hover:border-primary/70 hover:bg-primary/5 group', selected && 'border-primary bg-primary/5', opt.isNew && 'animate-option-highlight'), disabled: isProcessing, onClick: () => handleSelect(currentQuestion.id, opt.id), children: _jsxs("div", { className: "flex items-start gap-2", children: [_jsxs("span", { className: "text-muted-foreground mt-0.5 font-mono text-xs", children: [letter, "."] }), _jsxs("div", { className: "flex-1", children: [_jsxs("div", { className: "mb-0.5 flex items-center gap-2", children: [_jsx("span", { className: "text-foreground text-xs font-semibold", children: opt.label }), opt.recommended ? (_jsx(Badge, { className: "px-1.5 py-0 text-[10px]", children: "AI Recommended" })) : null, opt.isNew ? (_jsx(Badge, { className: "border-transparent bg-emerald-600 px-1.5 py-0 text-[10px] text-white hover:bg-emerald-600/80", children: "New" })) : null] }), _jsx("div", { className: "text-muted-foreground text-xs leading-snug", children: opt.rationale })] })] }) }, opt.id));
36
+ return (_jsx("button", { type: "button", className: cn('border-border w-full rounded-md border px-3 py-3 text-left text-xs transition-all', 'hover:border-primary/70 hover:bg-primary/5 group', selected && 'border-primary bg-primary/5', opt.isNew && 'animate-option-highlight'), disabled: isProcessing, onClick: () => handleSelect(currentQuestion.id, opt.id), children: _jsxs("div", { className: "flex items-start gap-2", children: [_jsxs("span", { className: "text-muted-foreground mt-0.5 font-mono text-xs", children: [letter, "."] }), _jsxs("div", { className: "flex-1", children: [_jsxs("div", { className: "mb-0.5 flex items-center gap-2", children: [_jsx("span", { className: "text-foreground min-w-0 text-xs font-semibold", children: opt.label }), opt.recommended ? (_jsx(Badge, { className: "shrink-0 px-1.5 py-0 text-[10px] whitespace-nowrap", children: "AI Recommended" })) : null, opt.isNew ? (_jsx(Badge, { className: "shrink-0 border-transparent bg-emerald-600 px-1.5 py-0 text-[10px] whitespace-nowrap text-white hover:bg-emerald-600/80", children: "New" })) : null] }), _jsx("div", { className: "text-muted-foreground text-xs leading-snug", children: opt.rationale })] })] }) }, opt.id));
37
37
  }) })] }), _jsxs("div", { className: "flex items-center justify-between pt-2", children: [_jsxs(Button, { type: "button", variant: "ghost", size: "sm", disabled: isFirstStep || isProcessing, onClick: () => {
38
38
  navigateSound.play();
39
39
  setCurrentStep((s) => s - 1);
@@ -17,4 +17,6 @@ export declare const MinimalData: Story;
17
17
  export declare const WithRejectButton: Story;
18
18
  /** Rejecting state — reject button disabled with spinner while reject action is in flight. */
19
19
  export declare const RejectingState: Story;
20
+ /** Long labels — verifies that AI Recommended badge stays on one line even with very long option labels. */
21
+ export declare const LongLabels: Story;
20
22
  //# sourceMappingURL=prd-questionnaire.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prd-questionnaire.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAiKvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAkBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAU/C,sJAAsJ;AACtJ,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,KA8BzB,CAAC;AAaF,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC"}
1
+ {"version":3,"file":"prd-questionnaire.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAiKvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAkBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAU/C,sJAAsJ;AACtJ,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,KA8BzB,CAAC;AAaF,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC;AAEF,4GAA4G;AAC5G,eAAO,MAAM,UAAU,EAAE,KAyCxB,CAAC"}
@@ -248,3 +248,37 @@ export const RejectingState = {
248
248
  isRejecting: true,
249
249
  },
250
250
  };
251
+ /** Long labels — verifies that AI Recommended badge stays on one line even with very long option labels. */
252
+ export const LongLabels = {
253
+ render: () => (_jsx(InteractiveQuestionnaire, { data: {
254
+ question: 'Review Feature Requirements',
255
+ context: 'Testing badge nowrap behavior with long option labels.',
256
+ questions: [
257
+ {
258
+ id: 'long-label',
259
+ question: 'Which deployment strategy should we use for the distributed microservices architecture?',
260
+ type: 'select',
261
+ options: [
262
+ {
263
+ id: 'opt-long-1',
264
+ label: 'Blue-Green Deployment with Automated Canary Analysis and Progressive Rollout',
265
+ rationale: 'Minimizes downtime and risk by running two identical production environments',
266
+ recommended: true,
267
+ },
268
+ {
269
+ id: 'opt-long-2',
270
+ label: 'Rolling Update with Health Check Verification and Automatic Rollback on Failure',
271
+ rationale: 'Gradually replaces instances with zero-downtime deployment',
272
+ },
273
+ {
274
+ id: 'opt-long-3',
275
+ label: 'Feature Flags with Percentage-Based Gradual Rollout to Target User Segments',
276
+ rationale: 'Enables targeted rollout and instant rollback via configuration',
277
+ isNew: true,
278
+ },
279
+ ],
280
+ },
281
+ ],
282
+ finalAction: mockFinalAction,
283
+ } })),
284
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"product-decisions-summary.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,4BAA4B,EAE7B,MAAM,oCAAoC,CAAC;AAyB5C,wBAAgB,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE,4BAA4B,kDAmB7E"}
1
+ {"version":3,"file":"product-decisions-summary.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,4BAA4B,EAE7B,MAAM,oCAAoC,CAAC;AA2B5C,wBAAgB,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE,4BAA4B,kDAmB7E"}
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { ClipboardList } from 'lucide-react';
4
4
  import { Badge } from '../../ui/badge.js';
5
5
  function ProductDecisionCard({ item, index }) {
6
- return (_jsx("div", { className: "border-border rounded-lg border", children: _jsx("div", { className: "space-y-2 px-4 py-3", children: _jsxs("div", { className: "flex items-start gap-2.5", children: [_jsx("span", { className: "bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold", children: index + 1 }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("h3", { className: "text-foreground text-sm leading-tight font-semibold", children: item.question }), _jsxs("div", { className: "mt-1 flex items-center gap-2", children: [_jsx("p", { className: "text-muted-foreground text-xs", children: item.selectedOption }), item.wasRecommended ? (_jsx(Badge, { className: "px-1.5 py-0 text-[10px]", children: "AI Recommended" })) : null] })] })] }) }) }));
6
+ return (_jsx("div", { className: "border-border rounded-lg border", children: _jsx("div", { className: "space-y-2 px-4 py-3", children: _jsxs("div", { className: "flex items-start gap-2.5", children: [_jsx("span", { className: "bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold", children: index + 1 }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("h3", { className: "text-foreground text-sm leading-tight font-semibold", children: item.question }), _jsxs("div", { className: "mt-1 flex items-center gap-2", children: [_jsx("p", { className: "text-muted-foreground text-xs", children: item.selectedOption }), item.wasRecommended ? (_jsx(Badge, { className: "shrink-0 px-1.5 py-0 text-[10px] whitespace-nowrap", children: "AI Recommended" })) : null] })] })] }) }) }));
7
7
  }
8
8
  export function ProductDecisionsSummary({ data }) {
9
9
  const { questions } = data;