@shepai/cli 1.112.1-pr359.62b3c56 → 1.113.0-pr360.fc6e148

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 (138) hide show
  1. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
  2. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +1 -0
  3. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +1 -0
  5. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  6. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +5 -0
  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 +1 -0
  9. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.d.ts.map +1 -1
  10. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.js +42 -2
  11. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts.map +1 -1
  12. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.js +10 -3
  13. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/claude-code.json +11 -6
  14. package/dist/src/presentation/cli/commands/install.command.js +8 -1
  15. package/dist/tsconfig.build.tsbuildinfo +1 -1
  16. package/package.json +1 -1
  17. package/web/.next/BUILD_ID +1 -1
  18. package/web/.next/build-manifest.json +2 -2
  19. package/web/.next/fallback-build-manifest.json +2 -2
  20. package/web/.next/prerender-manifest.json +3 -3
  21. package/web/.next/required-server-files.js +2 -2
  22. package/web/.next/required-server-files.json +2 -2
  23. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +20 -20
  24. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  25. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  26. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  27. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  28. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  29. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +26 -26
  30. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  31. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  32. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  33. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  34. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  35. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +20 -20
  36. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  37. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  38. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  39. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  40. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  41. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +26 -26
  42. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  43. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  44. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +18 -18
  45. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  46. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  47. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  48. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  49. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  50. package/web/.next/server/app/_global-error.html +2 -2
  51. package/web/.next/server/app/_global-error.rsc +1 -1
  52. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  53. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  54. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  55. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  56. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  57. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  58. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  60. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  61. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  63. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  65. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  67. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  69. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  70. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  71. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js +1 -1
  72. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js.map +1 -1
  73. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js +1 -1
  74. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js.map +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js +1 -1
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js.map +1 -1
  77. package/web/.next/server/chunks/ssr/[root-of-the-server]__07a39ff2._.js +1 -1
  78. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js.map +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js +1 -1
  85. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js.map +1 -1
  86. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  87. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  88. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  89. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js +1 -1
  90. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js.map +1 -1
  91. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js +1 -1
  92. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js.map +1 -1
  93. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  94. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  95. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  96. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  97. package/web/.next/server/chunks/ssr/{_5322dbd6._.js → _4603402d._.js} +2 -2
  98. package/web/.next/server/chunks/ssr/{_5322dbd6._.js.map → _4603402d._.js.map} +1 -1
  99. package/web/.next/server/chunks/ssr/{_73df4960._.js → _565603fc._.js} +2 -2
  100. package/web/.next/server/chunks/ssr/{_73df4960._.js.map → _565603fc._.js.map} +1 -1
  101. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  102. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/{_7e593b32._.js → _ab801a12._.js} +2 -2
  104. package/web/.next/server/chunks/ssr/{_7e593b32._.js.map → _ab801a12._.js.map} +1 -1
  105. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  106. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  107. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  108. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  109. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js +1 -1
  110. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js.map +1 -1
  111. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  112. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  113. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  114. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  115. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js +2 -2
  116. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js.map +1 -1
  117. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  118. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  119. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  120. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  121. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js +2 -2
  122. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js.map +1 -1
  123. package/web/.next/server/pages/500.html +2 -2
  124. package/web/.next/server/server-reference-manifest.js +1 -1
  125. package/web/.next/server/server-reference-manifest.json +31 -31
  126. package/web/.next/static/chunks/{a6545893bb6db329.js → 12add0abaf2ac4b0.js} +1 -1
  127. package/web/.next/static/chunks/{1e2a078abc85fb33.js → 2af84bd0c307253a.js} +1 -1
  128. package/web/.next/static/chunks/{385fa46efbd688c1.js → 2f552a88a5ff3a45.js} +2 -2
  129. package/web/.next/static/chunks/{51d2cf20f0c4fe3c.js → 70b74a1ae1d1b18f.js} +1 -1
  130. package/web/.next/static/chunks/{7e91b0005c4fc24e.js → 88f3415275c2ad9e.js} +1 -1
  131. package/web/.next/static/chunks/{d575a1de11856112.js → b76a19045750d072.js} +1 -1
  132. package/web/.next/static/chunks/{b07d06ef2fe4e2ef.js → bbd02ba529a180fc.js} +1 -1
  133. package/web/.next/static/chunks/{0d5c0854d1b91453.js → c1c7f9c0c96fe817.js} +1 -1
  134. package/web/.next/static/chunks/{ef617a2ccf8f540e.js → ce5c6ad4a1ede904.js} +1 -1
  135. package/web/.next/static/chunks/{c2e22907dd470314.js → d5ebfa672d2e9180.js} +1 -1
  136. /package/web/.next/static/{c7ItIWt5Z2q6uwhRHAtwQ → 3CXrO5C1NLxhLgWhUsMiI}/_buildManifest.js +0 -0
  137. /package/web/.next/static/{c7ItIWt5Z2q6uwhRHAtwQ → 3CXrO5C1NLxhLgWhUsMiI}/_clientMiddlewareManifest.json +0 -0
  138. /package/web/.next/static/{c7ItIWt5Z2q6uwhRHAtwQ → 3CXrO5C1NLxhLgWhUsMiI}/_ssgManifest.js +0 -0
@@ -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;CA+FlD"}
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"}
@@ -109,6 +109,7 @@ let ApproveAgentRunUseCase = class ApproveAgentRunUseCase {
109
109
  ...(payload ? { resumePayload: JSON.stringify(payload) } : {}),
110
110
  agentType: run.agentType,
111
111
  ...(run.modelId ? { model: run.modelId } : {}),
112
+ ...(feature?.fast ? { fast: true } : {}),
112
113
  });
113
114
  return { approved: true, reason: 'Approved and resumed' };
114
115
  }
@@ -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;CAqHH"}
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"}
@@ -123,6 +123,7 @@ let RejectAgentRunUseCase = class RejectAgentRunUseCase {
123
123
  push: feature?.push ?? false,
124
124
  openPr: feature?.openPr ?? false,
125
125
  resumePayload: JSON.stringify(rejectionPayload),
126
+ ...(feature.fast ? { fast: true } : {}),
126
127
  });
127
128
  return {
128
129
  rejected: true,
@@ -1 +1 @@
1
- {"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;AAe1B,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAW9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAwE1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0P/D"}
1
+ {"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;AAe1B,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAW9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAwE1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgQ/D"}
@@ -294,8 +294,13 @@ export async function runWorker(args) {
294
294
  const interruptPayload = result.__interrupt__;
295
295
  if (interruptPayload && interruptPayload.length > 0) {
296
296
  const now = new Date();
297
+ // Extract the node name from the interrupt payload so the rejection
298
+ // use case can tag feedback with the correct phase (e.g. "merge").
299
+ const interruptValue = interruptPayload[0]?.value;
300
+ const interruptNode = typeof interruptValue?.node === 'string' ? interruptValue.node : undefined;
297
301
  await runRepository.updateStatus(args.runId, AgentRunStatus.waitingApproval, {
298
302
  updatedAt: now,
303
+ ...(interruptNode ? { result: `node:${interruptNode}` } : {}),
299
304
  });
300
305
  log('Run paused — waiting for human approval');
301
306
  return;
@@ -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;AAkBzE,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;;;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,CA4S7E"}
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;AAkBzE,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;;;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,CA6S7E"}
@@ -58,6 +58,7 @@ export function createMergeNode(deps) {
58
58
  return {
59
59
  currentNode: 'merge',
60
60
  messages: [`[merge] Rejected — will re-execute`],
61
+ error: null,
61
62
  _approvalAction: null,
62
63
  _rejectionFeedback: null,
63
64
  _needsReexecution: true,
@@ -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;AA+FxD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAiEzE"}
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"}
@@ -105,6 +105,44 @@ function extractUserQuery(specDir) {
105
105
  }
106
106
  return specContent;
107
107
  }
108
+ /**
109
+ * Extract rejection feedback from spec.yaml for merge-phase rejections.
110
+ * Returns a formatted prompt section if feedback exists, empty string otherwise.
111
+ */
112
+ function getRejectionFeedback(specDir) {
113
+ try {
114
+ const specContent = readSpecFile(specDir, 'spec.yaml');
115
+ if (!specContent)
116
+ return '';
117
+ const specData = yaml.load(specContent);
118
+ const rejectionFeedback = specData?.rejectionFeedback;
119
+ if (rejectionFeedback && rejectionFeedback.length > 0) {
120
+ const mergeRejections = rejectionFeedback.filter((e) => e.phase === 'merge');
121
+ if (mergeRejections.length > 0) {
122
+ const latest = mergeRejections[mergeRejections.length - 1];
123
+ const older = mergeRejections.slice(0, -1);
124
+ const olderSection = older.length > 0
125
+ ? `\n### Earlier feedback (for context only)\n${older.map((e) => `- Iteration ${e.iteration}: ${e.message}`).join('\n')}\n`
126
+ : '';
127
+ return `
128
+ ## CRITICAL — User Rejection Feedback (MUST ADDRESS)
129
+
130
+ **YOUR PRIMARY TASK: The user rejected the previous result and gave this feedback. You MUST act on it:**
131
+
132
+ > ${latest.message}
133
+
134
+ (Iteration ${latest.iteration}, ${latest.timestamp})
135
+
136
+ Do NOT just record this feedback — you must actually make the changes the user requested.
137
+ ${olderSection}`;
138
+ }
139
+ }
140
+ }
141
+ catch {
142
+ // Continue without rejection feedback
143
+ }
144
+ return '';
145
+ }
108
146
  /**
109
147
  * Build the fast-implement prompt from user query + codebase context.
110
148
  *
@@ -124,17 +162,19 @@ export function buildFastImplementPrompt(state) {
124
162
  const claudeMd = readWorktreeFile(cwd, 'CLAUDE.md');
125
163
  const packageJson = readWorktreeFile(cwd, 'package.json');
126
164
  const dirListing = buildDirectoryListing(cwd);
165
+ // Check for rejection feedback from prior merge rejection
166
+ const rejectionSection = getRejectionFeedback(state.specDir);
127
167
  // Build sections conditionally
128
168
  const sections = [];
129
169
  sections.push(`You are a senior software engineer implementing a change directly from a user request.
130
-
170
+ ${rejectionSection}
131
171
  ## User Request
132
172
 
133
173
  ${userQuery}
134
174
 
135
175
  ## Implementation Instructions
136
176
 
137
- 1. Implement the requested changes in the codebase
177
+ 1. ${rejectionSection ? 'Address the rejection feedback above by modifying the existing implementation' : 'Implement the requested changes in the codebase'}
138
178
  2. Write tests for your changes where appropriate
139
179
  3. Run the test suite and fix any failures
140
180
  4. Run the linter and fix any issues
@@ -1 +1 @@
1
- {"version":3,"file":"tool-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/tool-installer/tool-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAClH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,qCAAqC,CAAC;AA2B7C,qBACa,wBAAyB,YAAW,qBAAqB;IACpE;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoC1E;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAqB9D;;;OAGG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAgFlC;;OAEG;IACH,OAAO,CAAC,6BAA6B;CA4BtC"}
1
+ {"version":3,"file":"tool-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/tool-installer/tool-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAClH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,qCAAqC,CAAC;AA2B7C,qBACa,wBAAyB,YAAW,qBAAqB;IACpE;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoC1E;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAqB9D;;;OAGG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAwFlC;;OAEG;IACH,OAAO,CAAC,6BAA6B;CA4BtC"}
@@ -107,9 +107,14 @@ let ToolInstallerServiceImpl = class ToolInstallerServiceImpl {
107
107
  }
108
108
  return new Promise((resolve) => {
109
109
  let output = '';
110
+ // Inherit stdin when running in an interactive terminal so that commands
111
+ // requiring sudo can prompt the user for a password. In non-interactive
112
+ // contexts (web UI, CI) stdin is piped and closed immediately to prevent
113
+ // the process from hanging waiting for input.
114
+ const isInteractive = process.stdin.isTTY === true;
110
115
  const child = spawn(installCommand.command, [], {
111
116
  shell: true,
112
- stdio: ['pipe', 'pipe', 'pipe'],
117
+ stdio: [isInteractive ? 'inherit' : 'pipe', 'pipe', 'pipe'],
113
118
  env: {
114
119
  ...process.env,
115
120
  DEBIAN_FRONTEND: 'noninteractive',
@@ -117,8 +122,10 @@ let ToolInstallerServiceImpl = class ToolInstallerServiceImpl {
117
122
  GPG_TTY: '',
118
123
  },
119
124
  });
120
- // Close stdin immediately to prevent interactive prompts
121
- child.stdin?.end();
125
+ // Close stdin in non-interactive mode to prevent prompts from hanging
126
+ if (!isInteractive) {
127
+ child.stdin?.end();
128
+ }
122
129
  // Stream output from stdout and stderr
123
130
  const pipeOutput = (stream) => {
124
131
  if (!stream)
@@ -8,17 +8,21 @@
8
8
  "platforms": ["linux", "darwin", "win32"],
9
9
  "iconUrl": "https://cdn.simpleicons.org/claude",
10
10
  "binary": "claude",
11
- "packageManager": "curl",
11
+ "packageManager": "npm",
12
12
  "commands": {
13
- "linux": "curl -fsSL https://claude.ai/install.sh | bash",
14
- "darwin": "curl -fsSL https://claude.ai/install.sh | bash",
13
+ "linux": "npm install -g @anthropic-ai/claude-code",
14
+ "darwin": "npm install -g @anthropic-ai/claude-code",
15
15
  "win32": "npm install -g @anthropic-ai/claude-code"
16
16
  },
17
17
  "timeout": 300000,
18
- "documentationUrl": "https://code.claude.com/docs/en/overview",
18
+ "documentationUrl": "https://docs.anthropic.com/en/docs/claude-code/overview",
19
19
  "verifyCommand": "claude --version",
20
20
  "autoInstall": true,
21
- "openDirectory": "cd {dir} && exec claude",
21
+ "openDirectory": {
22
+ "linux": "cd {dir} && exec claude",
23
+ "darwin": "cd {dir} && exec claude",
24
+ "win32": "cd /d {dir} && claude"
25
+ },
22
26
  "spawnOptions": {
23
27
  "shell": true,
24
28
  "stdio": "inherit",
@@ -26,6 +30,7 @@
26
30
  },
27
31
  "terminalCommand": {
28
32
  "linux": "x-terminal-emulator -e bash -c 'cd {dir} && exec claude'",
29
- "darwin": "open -a Terminal.app bash -c 'cd {dir} && exec claude'"
33
+ "darwin": "osascript -e 'tell application \"Terminal\" to do script \"cd {dir} && exec claude\"'",
34
+ "win32": "start cmd /k \"cd /d {dir} && claude\""
30
35
  }
31
36
  }
@@ -117,7 +117,14 @@ function printInstallInstructions(metadata) {
117
117
  // Print open directory command if available
118
118
  if (metadata.openDirectory) {
119
119
  console.log(fmt.heading('Open Directory'));
120
- console.log(`${colors.muted('$')} ${metadata.openDirectory}`);
120
+ if (typeof metadata.openDirectory === 'string') {
121
+ console.log(`${colors.muted('$')} ${metadata.openDirectory}`);
122
+ }
123
+ else {
124
+ for (const [platform, cmd] of Object.entries(metadata.openDirectory)) {
125
+ console.log(`${colors.muted(`[${platform}]`)} ${cmd}`);
126
+ }
127
+ }
121
128
  console.log();
122
129
  }
123
130
  // Print documentation link