@shepai/cli 1.120.0-pr385.7a4c87f → 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 (131) 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/tsconfig.build.tsbuildinfo +1 -1
  6. package/package.json +1 -1
  7. package/web/.next/BUILD_ID +1 -1
  8. package/web/.next/build-manifest.json +2 -2
  9. package/web/.next/fallback-build-manifest.json +2 -2
  10. package/web/.next/prerender-manifest.json +3 -3
  11. package/web/.next/required-server-files.js +2 -2
  12. package/web/.next/required-server-files.json +2 -2
  13. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +21 -21
  14. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  15. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  16. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
  17. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  18. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  19. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +27 -27
  20. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  21. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  22. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
  23. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  24. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  25. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +21 -21
  26. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  27. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
  29. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  30. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  31. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +27 -27
  32. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +19 -19
  35. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
  38. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/_global-error.html +2 -2
  41. package/web/.next/server/app/_global-error.rsc +1 -1
  42. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  43. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  44. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  45. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  46. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  47. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  48. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  50. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  51. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  53. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  55. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  57. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  59. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  60. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  61. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js +1 -1
  62. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js.map +1 -1
  63. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js +1 -1
  64. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js.map +1 -1
  65. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
  66. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b14e5a0._.js +1 -1
  67. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b14e5a0._.js.map +1 -1
  68. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +1 -1
  69. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +1 -1
  70. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  71. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  72. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  73. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  74. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b59c03e._.js +1 -1
  77. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b59c03e._.js.map +1 -1
  78. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__994ad9fe._.js +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__994ad9fe._.js.map +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__a022445f._.js +2 -2
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +2 -2
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9c1cfee._.js +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9c1cfee._.js.map +1 -1
  85. package/web/.next/server/chunks/ssr/{_fbd1fb49._.js → _0c680080._.js} +2 -2
  86. package/web/.next/server/chunks/ssr/{_fbd1fb49._.js.map → _0c680080._.js.map} +1 -1
  87. package/web/.next/server/chunks/ssr/_0dc2cfd3._.js +1 -1
  88. package/web/.next/server/chunks/ssr/_0dc2cfd3._.js.map +1 -1
  89. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  90. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  91. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  92. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  93. package/web/.next/server/chunks/ssr/{_1f64ecc6._.js → _34a7d4f8._.js} +2 -2
  94. package/web/.next/server/chunks/ssr/{_1f64ecc6._.js.map → _34a7d4f8._.js.map} +1 -1
  95. package/web/.next/server/chunks/ssr/{_d118fdcf._.js → _c55e2070._.js} +2 -2
  96. package/web/.next/server/chunks/ssr/{_d118fdcf._.js.map → _c55e2070._.js.map} +1 -1
  97. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  98. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  99. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  100. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js +2 -2
  102. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js +1 -1
  104. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js.map +1 -1
  105. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  106. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  107. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  108. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  109. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  110. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  111. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  112. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  113. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js +2 -2
  114. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js.map +1 -1
  115. package/web/.next/server/pages/500.html +2 -2
  116. package/web/.next/server/server-reference-manifest.js +1 -1
  117. package/web/.next/server/server-reference-manifest.json +33 -33
  118. package/web/.next/static/chunks/{1985c707cfaf0ed0.js → 1f29df6ef3c26481.js} +1 -1
  119. package/web/.next/static/chunks/{d3eceb717f407d90.js → 4576affd28e04ebb.js} +1 -1
  120. package/web/.next/static/chunks/{6573b8e9cd86c17f.js → 480c16a0516f8fb7.js} +1 -1
  121. package/web/.next/static/chunks/{28703fd18babc4d2.js → 6aeabd0eea63311b.js} +1 -1
  122. package/web/.next/static/chunks/{2bae334afb7e4944.js → 9f59880bfcb77636.js} +1 -1
  123. package/web/.next/static/chunks/{9316d62aeece18d3.js → bc89972af861ff78.js} +1 -1
  124. package/web/.next/static/chunks/bd48a9b6783fb94b.js +2 -0
  125. package/web/.next/static/chunks/{5b2882de7e56895e.js → d7338a327ac08b53.js} +1 -1
  126. package/web/.next/static/chunks/{6ad0261fb70e3133.js → d77e7f11a018ab86.js} +1 -1
  127. package/web/.next/static/chunks/{7c7e3e95c5e9dc43.js → ebceaa068b5cdb5c.js} +1 -1
  128. package/web/.next/static/chunks/efd33d3c499aed2f.js +0 -2
  129. /package/web/.next/static/{1MKiYJvfeyDdsVU2k3Kde → s3bphH4Aw2_f7MkMRvkzC}/_buildManifest.js +0 -0
  130. /package/web/.next/static/{1MKiYJvfeyDdsVU2k3Kde → s3bphH4Aw2_f7MkMRvkzC}/_clientMiddlewareManifest.json +0 -0
  131. /package/web/.next/static/{1MKiYJvfeyDdsVU2k3Kde → 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
  }