@mrpatronz/nexusflow 1.8.0 → 1.9.0

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 (222) hide show
  1. package/README.md +48 -15
  2. package/dist/commands/create.d.ts +8 -7
  3. package/dist/commands/create.d.ts.map +1 -1
  4. package/dist/commands/create.js +134 -65
  5. package/dist/commands/create.js.map +1 -1
  6. package/dist/commands/doctor.d.ts.map +1 -1
  7. package/dist/commands/doctor.js +0 -1
  8. package/dist/commands/doctor.js.map +1 -1
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +1 -72
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/list.d.ts.map +1 -1
  13. package/dist/commands/list.js +2 -1
  14. package/dist/commands/list.js.map +1 -1
  15. package/dist/commands/project.d.ts +30 -0
  16. package/dist/commands/project.d.ts.map +1 -0
  17. package/dist/commands/project.js +125 -0
  18. package/dist/commands/project.js.map +1 -0
  19. package/dist/commands/refresh.js +1 -1
  20. package/dist/commands/refresh.js.map +1 -1
  21. package/dist/commands/start.d.ts.map +1 -1
  22. package/dist/commands/start.js +18 -2
  23. package/dist/commands/start.js.map +1 -1
  24. package/dist/commands/stop.d.ts +1 -1
  25. package/dist/commands/stop.d.ts.map +1 -1
  26. package/dist/commands/stop.js +19 -2
  27. package/dist/commands/stop.js.map +1 -1
  28. package/dist/commands/tui.js +0 -1
  29. package/dist/commands/tui.js.map +1 -1
  30. package/dist/core/config.d.ts.map +1 -1
  31. package/dist/core/config.js +0 -9
  32. package/dist/core/config.js.map +1 -1
  33. package/dist/core/config.test.js +0 -9
  34. package/dist/core/config.test.js.map +1 -1
  35. package/dist/core/doctor.d.ts +1 -3
  36. package/dist/core/doctor.d.ts.map +1 -1
  37. package/dist/core/doctor.js +18 -69
  38. package/dist/core/doctor.js.map +1 -1
  39. package/dist/core/finish.d.ts.map +1 -1
  40. package/dist/core/finish.js +5 -0
  41. package/dist/core/finish.js.map +1 -1
  42. package/dist/core/graph.d.ts.map +1 -1
  43. package/dist/core/graph.js +2 -1
  44. package/dist/core/graph.js.map +1 -1
  45. package/dist/core/projects.d.ts +58 -0
  46. package/dist/core/projects.d.ts.map +1 -0
  47. package/dist/core/projects.js +190 -0
  48. package/dist/core/projects.js.map +1 -0
  49. package/dist/core/projects.test.d.ts +2 -0
  50. package/dist/core/projects.test.d.ts.map +1 -0
  51. package/dist/core/projects.test.js +165 -0
  52. package/dist/core/projects.test.js.map +1 -0
  53. package/dist/core/sync.d.ts.map +1 -1
  54. package/dist/core/sync.js +21 -0
  55. package/dist/core/sync.js.map +1 -1
  56. package/dist/core/sync.test.js +15 -0
  57. package/dist/core/sync.test.js.map +1 -1
  58. package/dist/core/workspace.create.test.js +68 -1
  59. package/dist/core/workspace.create.test.js.map +1 -1
  60. package/dist/core/workspace.d.ts +4 -3
  61. package/dist/core/workspace.d.ts.map +1 -1
  62. package/dist/core/workspace.js +138 -64
  63. package/dist/core/workspace.js.map +1 -1
  64. package/dist/generators/antigravity.js +1 -1
  65. package/dist/generators/antigravity.js.map +1 -1
  66. package/dist/generators/base.d.ts +1 -8
  67. package/dist/generators/base.d.ts.map +1 -1
  68. package/dist/generators/base.js +107 -58
  69. package/dist/generators/base.js.map +1 -1
  70. package/dist/generators/base.test.d.ts +2 -0
  71. package/dist/generators/base.test.d.ts.map +1 -0
  72. package/dist/generators/base.test.js +80 -0
  73. package/dist/generators/base.test.js.map +1 -0
  74. package/dist/generators/claude.js +1 -1
  75. package/dist/generators/claude.js.map +1 -1
  76. package/dist/generators/codex.js +1 -1
  77. package/dist/generators/codex.js.map +1 -1
  78. package/dist/generators/copilot.js +1 -1
  79. package/dist/generators/copilot.js.map +1 -1
  80. package/dist/generators/cursor.js +1 -1
  81. package/dist/generators/cursor.js.map +1 -1
  82. package/dist/generators/diff-context.d.ts.map +1 -1
  83. package/dist/generators/diff-context.js +3 -1
  84. package/dist/generators/diff-context.js.map +1 -1
  85. package/dist/generators/index.js +1 -1
  86. package/dist/generators/index.js.map +1 -1
  87. package/dist/generators/map-generator.d.ts.map +1 -1
  88. package/dist/generators/map-generator.js +3 -1
  89. package/dist/generators/map-generator.js.map +1 -1
  90. package/dist/gui/assets/DashboardPage-C3NH97y2.js +1 -0
  91. package/dist/gui/assets/GettingStartedPage-og-Kv7Sm.js +1 -0
  92. package/dist/gui/assets/ProjectsPage-COqqadEr.js +1 -0
  93. package/dist/gui/assets/ScaffoldRepoInline-DRipQsos.js +1 -0
  94. package/dist/gui/assets/Separator-Chx6O62Y.js +1 -0
  95. package/dist/gui/assets/SettingsPage-CpU3V9oU.js +1 -0
  96. package/dist/gui/assets/StartWorkPage-DIND0hJy.js +1 -0
  97. package/dist/gui/assets/StrategiesPage-6LWOnKdk.js +3 -0
  98. package/dist/gui/assets/WorkspacesPage-BUqgOhuy.js +6 -0
  99. package/dist/gui/assets/badge-BnkhqVEF.js +1 -0
  100. package/dist/gui/assets/button-cPldH5S4.js +1 -0
  101. package/dist/gui/assets/card-82INhRRE.js +1 -0
  102. package/dist/gui/assets/circle-plus-C0PNc7h4.js +1 -0
  103. package/dist/gui/assets/cpu-CPUNnHRM.js +1 -0
  104. package/dist/gui/assets/empty-DWyDwDYB.js +1 -0
  105. package/dist/gui/assets/external-link-BtYhMxno.js +1 -0
  106. package/dist/gui/assets/git-branch-Dw55pQWa.js +1 -0
  107. package/dist/gui/assets/index-CsA2SueF.css +2 -0
  108. package/dist/gui/assets/index-CyYbQwRf.js +52 -0
  109. package/dist/gui/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  110. package/dist/gui/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  111. package/dist/gui/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  112. package/dist/gui/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  113. package/dist/gui/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  114. package/dist/gui/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  115. package/dist/gui/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  116. package/dist/gui/assets/jetbrains-mono-latin-100-normal-DlYB2XW3.woff2 +0 -0
  117. package/dist/gui/assets/jetbrains-mono-latin-100-normal-DzH8uRxw.woff +0 -0
  118. package/dist/gui/assets/jetbrains-mono-latin-200-normal-CHn02WOn.woff +0 -0
  119. package/dist/gui/assets/jetbrains-mono-latin-200-normal-DvzYDkvL.woff2 +0 -0
  120. package/dist/gui/assets/jetbrains-mono-latin-300-normal-BYcAiAh2.woff +0 -0
  121. package/dist/gui/assets/jetbrains-mono-latin-300-normal-DuMDZskh.woff2 +0 -0
  122. package/dist/gui/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  123. package/dist/gui/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  124. package/dist/gui/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  125. package/dist/gui/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  126. package/dist/gui/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff +0 -0
  127. package/dist/gui/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
  128. package/dist/gui/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2 +0 -0
  129. package/dist/gui/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff +0 -0
  130. package/dist/gui/assets/jetbrains-mono-latin-800-normal-D2mQHRMK.woff2 +0 -0
  131. package/dist/gui/assets/jetbrains-mono-latin-800-normal-Dj9qwObk.woff +0 -0
  132. package/dist/gui/assets/label-JFgMNsTn.js +1 -0
  133. package/dist/gui/assets/search-ChVovkOL.js +1 -0
  134. package/dist/gui/assets/skeleton-CCPbfn1L.js +1 -0
  135. package/dist/gui/assets/spinner-DXt6mnJk.js +1 -0
  136. package/dist/gui/assets/textarea-BLU5HXmZ.js +1 -0
  137. package/dist/gui/assets/trash-2-Da8F2gKd.js +1 -0
  138. package/dist/gui/assets/useAriaLabelledBy-CjNlctb9.js +1 -0
  139. package/dist/gui/assets/useCompositeListItem-DWGFLKqA.js +1 -0
  140. package/dist/gui/index.html +16 -6
  141. package/dist/index.js +50 -0
  142. package/dist/index.js.map +1 -1
  143. package/dist/mcp/tools.d.ts.map +1 -1
  144. package/dist/mcp/tools.js +4 -63
  145. package/dist/mcp/tools.js.map +1 -1
  146. package/dist/orchestration/detect.d.ts.map +1 -1
  147. package/dist/orchestration/detect.js +72 -26
  148. package/dist/orchestration/detect.js.map +1 -1
  149. package/dist/orchestration/index.d.ts +3 -1
  150. package/dist/orchestration/index.d.ts.map +1 -1
  151. package/dist/orchestration/index.js +3 -1
  152. package/dist/orchestration/index.js.map +1 -1
  153. package/dist/orchestration/log-tail.d.ts +27 -0
  154. package/dist/orchestration/log-tail.d.ts.map +1 -0
  155. package/dist/orchestration/log-tail.js +93 -0
  156. package/dist/orchestration/log-tail.js.map +1 -0
  157. package/dist/orchestration/log-tail.test.d.ts +2 -0
  158. package/dist/orchestration/log-tail.test.d.ts.map +1 -0
  159. package/dist/orchestration/log-tail.test.js +72 -0
  160. package/dist/orchestration/log-tail.test.js.map +1 -0
  161. package/dist/orchestration/orchestrator.d.ts +26 -0
  162. package/dist/orchestration/orchestrator.d.ts.map +1 -0
  163. package/dist/orchestration/orchestrator.js +102 -0
  164. package/dist/orchestration/orchestrator.js.map +1 -0
  165. package/dist/orchestration/orchestrator.test.d.ts +2 -0
  166. package/dist/orchestration/orchestrator.test.d.ts.map +1 -0
  167. package/dist/orchestration/orchestrator.test.js +85 -0
  168. package/dist/orchestration/orchestrator.test.js.map +1 -0
  169. package/dist/orchestration/runner.d.ts +62 -3
  170. package/dist/orchestration/runner.d.ts.map +1 -1
  171. package/dist/orchestration/runner.js +198 -103
  172. package/dist/orchestration/runner.js.map +1 -1
  173. package/dist/orchestration/runner.test.js +125 -1
  174. package/dist/orchestration/runner.test.js.map +1 -1
  175. package/dist/server.d.ts.map +1 -1
  176. package/dist/server.js +286 -124
  177. package/dist/server.js.map +1 -1
  178. package/dist/server.test.js +111 -123
  179. package/dist/server.test.js.map +1 -1
  180. package/dist/types.d.ts +79 -16
  181. package/dist/types.d.ts.map +1 -1
  182. package/dist/utils/feature.d.ts +42 -0
  183. package/dist/utils/feature.d.ts.map +1 -0
  184. package/dist/utils/feature.js +52 -0
  185. package/dist/utils/feature.js.map +1 -0
  186. package/dist/utils/multi-git.d.ts.map +1 -1
  187. package/dist/utils/multi-git.js +30 -7
  188. package/dist/utils/multi-git.js.map +1 -1
  189. package/dist/utils/slug.d.ts +12 -0
  190. package/dist/utils/slug.d.ts.map +1 -0
  191. package/dist/utils/slug.js +18 -0
  192. package/dist/utils/slug.js.map +1 -0
  193. package/dist/utils/test-command.d.ts +12 -0
  194. package/dist/utils/test-command.d.ts.map +1 -0
  195. package/dist/utils/test-command.js +22 -0
  196. package/dist/utils/test-command.js.map +1 -0
  197. package/dist/utils/update-check.d.ts +8 -0
  198. package/dist/utils/update-check.d.ts.map +1 -1
  199. package/dist/utils/update-check.js +13 -7
  200. package/dist/utils/update-check.js.map +1 -1
  201. package/dist/utils/update-check.test.d.ts +2 -0
  202. package/dist/utils/update-check.test.d.ts.map +1 -0
  203. package/dist/utils/update-check.test.js +25 -0
  204. package/dist/utils/update-check.test.js.map +1 -0
  205. package/dist/utils/workflow-advisor.d.ts +2 -2
  206. package/dist/utils/workflow-advisor.d.ts.map +1 -1
  207. package/dist/utils/workflow-advisor.js +50 -92
  208. package/dist/utils/workflow-advisor.js.map +1 -1
  209. package/dist/utils/workflows.d.ts.map +1 -1
  210. package/dist/utils/workflows.js +2 -4
  211. package/dist/utils/workflows.js.map +1 -1
  212. package/package.json +2 -2
  213. package/dist/gui/assets/index-CQTEzHj2.css +0 -1
  214. package/dist/gui/assets/index-DLmLdpqC.js +0 -58
  215. package/dist/utils/local-ai.d.ts +0 -27
  216. package/dist/utils/local-ai.d.ts.map +0 -1
  217. package/dist/utils/local-ai.js +0 -100
  218. package/dist/utils/local-ai.js.map +0 -1
  219. package/dist/utils/local-ai.test.d.ts +0 -2
  220. package/dist/utils/local-ai.test.d.ts.map +0 -1
  221. package/dist/utils/local-ai.test.js +0 -108
  222. package/dist/utils/local-ai.test.js.map +0 -1
@@ -15,11 +15,12 @@ import type { Feature, RepoInfo, RepoSelection } from '../types.js';
15
15
  export declare function getWorkspacePath(workspacesDir: string, branchName: string): string;
16
16
  /**
17
17
  * Creates a full workspace for a feature:
18
- * 1. Creates the workspace directory.
19
- * 2. Creates a git worktree for every repo in the feature.
18
+ * 1. Scaffolds the workspace directory (git init, editor/MCP config files).
19
+ * 2. Worktree mode: creates a git worktree for every repo in the feature.
20
+ * In-place mode: skips this — the feature points at the source repos.
20
21
  * 3. Saves the feature manifest (`nexusflow.json`).
21
22
  *
22
- * If any worktree fails, the partially-created workspace is rolled back
23
+ * If any step fails, the partially-created workspace is rolled back
23
24
  * automatically (worktrees removed, run-created branches deleted, directory
24
25
  * removed) and the original error is rethrown, so a failed `create` never
25
26
  * leaves debris behind.
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAWtF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAoDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,aAAa,EAAE,EACtB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpE,OAAO,CAAC,MAAM,CAAC,CAgIjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC,CAmCpB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAyBzB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBjF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOzE;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAE/E;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA6Df"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAYtF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAgND;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,aAAa,EAAE,EACtB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpE,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC,CAmCpB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAyBzB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBjF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOzE;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAE/E;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAyEf;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA0Ff"}
@@ -8,6 +8,7 @@ import * as fs from 'node:fs/promises';
8
8
  import * as path from 'node:path';
9
9
  import * as os from 'node:os';
10
10
  import { execa } from 'execa';
11
+ import { isInPlace, normalizeFeature } from '../utils/feature.js';
11
12
  import { createWorktree, removeWorktree } from './worktree.js';
12
13
  import { detectDefaultBranch } from '../utils/git.js';
13
14
  import { analyzeAllRepos } from '../analyzers/index.js';
@@ -63,32 +64,22 @@ async function rollbackWorkspace(workspacePath, actions) {
63
64
  }
64
65
  }
65
66
  /**
66
- * Creates a full workspace for a feature:
67
- * 1. Creates the workspace directory.
68
- * 2. Creates a git worktree for every repo in the feature.
69
- * 3. Saves the feature manifest (`nexusflow.json`).
70
- *
71
- * If any worktree fails, the partially-created workspace is rolled back
72
- * automatically (worktrees removed, run-created branches deleted, directory
73
- * removed) and the original error is rethrown, so a failed `create` never
74
- * leaves debris behind.
75
- *
76
- * @param feature - The feature definition.
77
- * @param repos - Resolved repo metadata for every repo in the feature. A
78
- * repo with `existingBranch` set checks out that branch
79
- * (which must exist) instead of the feature branch.
80
- * @param onProgress - Optional per-repo progress callback (repo name, index, total).
81
- * @returns The absolute path to the newly created workspace.
67
+ * Prepares the workspace directory itself: guard against clobbering, mkdir,
68
+ * git init at the root (prevents AI assistants climbing to parent repos),
69
+ * `.gitignore` (worktree mode only it lists the repo subdirs), the
70
+ * `.code-workspace` file, `.vscode/settings.json` and `.cursor/mcp.json`.
71
+ * No git worktrees are touched here.
82
72
  */
83
- export async function createWorkspace(feature, repos, onProgress) {
73
+ async function scaffoldWorkspaceDir(feature, repos) {
84
74
  const workspacePath = feature.workspacePath;
75
+ const inPlace = isInPlace(feature);
85
76
  // Fail fast if the target already exists and is non-empty, rather than
86
77
  // silently merging into (and later half-rolling-back) an existing directory.
87
78
  try {
88
79
  const existing = await fs.readdir(workspacePath);
89
80
  if (existing.length > 0) {
90
81
  throw new Error(`Workspace directory already exists and is not empty: ${workspacePath}. ` +
91
- `Remove it first (e.g. 'nexusflow remove ${feature.id}') or choose another branch name.`);
82
+ `Remove it first (e.g. 'nexusflow remove ${feature.id}') or choose another name.`);
92
83
  }
93
84
  }
94
85
  catch (error) {
@@ -103,9 +94,12 @@ export async function createWorkspace(feature, repos, onProgress) {
103
94
  // from climbing up to parent git repositories (main/master).
104
95
  try {
105
96
  await execa('git', ['init'], { cwd: workspacePath });
106
- // Write a .gitignore to ignore the sub-repositories
107
- const gitignoreContent = repos.map((repo) => `/${repo.name}/`).join('\n') + '\n';
108
- await fs.writeFile(path.join(workspacePath, '.gitignore'), gitignoreContent, 'utf-8');
97
+ // Write a .gitignore to ignore the sub-repositories. In-place workspaces
98
+ // have no repo subdirectories, so there is nothing to ignore.
99
+ if (!inPlace) {
100
+ const gitignoreContent = repos.map((repo) => `/${repo.name}/`).join('\n') + '\n';
101
+ await fs.writeFile(path.join(workspacePath, '.gitignore'), gitignoreContent, 'utf-8');
102
+ }
109
103
  }
110
104
  catch (error) {
111
105
  // Silently ignore or log warning if git init fails
@@ -114,12 +108,13 @@ export async function createWorkspace(feature, repos, onProgress) {
114
108
  // Generate a .code-workspace file so VS Code opens each repo as a top-level workspace
115
109
  // folder with its own SCM provider. Without this, VS Code's git scanner respects the
116
110
  // root .gitignore (which lists every repo dir) and never discovers the worktrees.
111
+ // In-place repos live outside the workspace, so their folders use absolute paths.
117
112
  try {
118
113
  const workspaceName = path.basename(workspacePath);
119
114
  const codeWorkspace = {
120
115
  folders: [
121
116
  { path: '.', name: `${workspaceName} (workspace)` },
122
- ...repos.map((repo) => ({ path: repo.name, name: repo.name })),
117
+ ...repos.map((repo) => ({ path: inPlace ? repo.path : repo.name, name: repo.name })),
123
118
  ],
124
119
  settings: {
125
120
  'search.useIgnoreFiles': false,
@@ -159,27 +154,70 @@ export async function createWorkspace(feature, repos, onProgress) {
159
154
  catch (error) {
160
155
  console.warn('Warning: Failed to create .cursor/mcp.json:', error);
161
156
  }
162
- // Create a worktree for each repo inside the workspace. On any failure, roll
163
- // back everything created so far and rethrow the original error.
157
+ }
158
+ /**
159
+ * Creates a git worktree inside the workspace for every repo, recording a
160
+ * rollback action per worktree into `rollbackActions` as it goes (so the
161
+ * caller can roll back exactly what was created when a later step fails).
162
+ */
163
+ async function materializeWorktrees(feature, repos, rollbackActions, onProgress) {
164
+ const workspacePath = feature.workspacePath;
165
+ for (let i = 0; i < repos.length; i++) {
166
+ const repo = repos[i];
167
+ onProgress?.(repo.name, i, repos.length);
168
+ const worktreeTarget = path.join(workspacePath, repo.name);
169
+ const branchName = repo.existingBranch ?? feature.branchName;
170
+ const { createdBranch } = await createWorktree(repo.path, worktreeTarget, branchName, repo.defaultBranch,
171
+ // An explicitly chosen branch must exist — silently creating a fresh
172
+ // one would defeat the point of picking it.
173
+ { mustExist: repo.existingBranch !== undefined });
174
+ rollbackActions.push({ repoPath: repo.path, worktreePath: worktreeTarget, branchName, createdBranch });
175
+ }
176
+ }
177
+ /**
178
+ * Final bookkeeping: persists the feature manifest and, for worktree mode,
179
+ * excludes NexusFlow-generated files from each checkout's git status.
180
+ * In-place features skip the exclusion — the generated files live only in the
181
+ * workspace dir, and mutating the user's source repos' .git/info/exclude
182
+ * would silently hide any CLAUDE.md/.vscode files they later author there.
183
+ */
184
+ async function finalizeWorkspace(feature) {
185
+ await saveFeatureConfig(feature.workspacePath, feature);
186
+ if (!isInPlace(feature)) {
187
+ await excludeNexusFlowFiles(feature.workspacePath, feature);
188
+ }
189
+ }
190
+ /**
191
+ * Creates a full workspace for a feature:
192
+ * 1. Scaffolds the workspace directory (git init, editor/MCP config files).
193
+ * 2. Worktree mode: creates a git worktree for every repo in the feature.
194
+ * In-place mode: skips this — the feature points at the source repos.
195
+ * 3. Saves the feature manifest (`nexusflow.json`).
196
+ *
197
+ * If any step fails, the partially-created workspace is rolled back
198
+ * automatically (worktrees removed, run-created branches deleted, directory
199
+ * removed) and the original error is rethrown, so a failed `create` never
200
+ * leaves debris behind.
201
+ *
202
+ * @param feature - The feature definition.
203
+ * @param repos - Resolved repo metadata for every repo in the feature. A
204
+ * repo with `existingBranch` set checks out that branch
205
+ * (which must exist) instead of the feature branch.
206
+ * @param onProgress - Optional per-repo progress callback (repo name, index, total).
207
+ * @returns The absolute path to the newly created workspace.
208
+ */
209
+ export async function createWorkspace(feature, repos, onProgress) {
210
+ const workspacePath = feature.workspacePath;
211
+ await scaffoldWorkspaceDir(feature, repos);
164
212
  const rollbackActions = [];
165
213
  try {
166
- for (let i = 0; i < repos.length; i++) {
167
- const repo = repos[i];
168
- onProgress?.(repo.name, i, repos.length);
169
- const worktreeTarget = path.join(workspacePath, repo.name);
170
- const branchName = repo.existingBranch ?? feature.branchName;
171
- const { createdBranch } = await createWorktree(repo.path, worktreeTarget, branchName, repo.defaultBranch,
172
- // An explicitly chosen branch must exist — silently creating a fresh
173
- // one would defeat the point of picking it.
174
- { mustExist: repo.existingBranch !== undefined });
175
- rollbackActions.push({ repoPath: repo.path, worktreePath: worktreeTarget, branchName, createdBranch });
214
+ if (!isInPlace(feature)) {
215
+ await materializeWorktrees(feature, repos, rollbackActions, onProgress);
176
216
  }
177
- // Persist the feature manifest.
178
- await saveFeatureConfig(workspacePath, feature);
179
- // Exclude NexusFlow files from git
180
- await excludeNexusFlowFiles(workspacePath, feature);
217
+ await finalizeWorkspace(feature);
181
218
  }
182
219
  catch (error) {
220
+ // In-place mode has no worktrees to roll back; this just removes the dir.
183
221
  await rollbackWorkspace(workspacePath, rollbackActions);
184
222
  throw error;
185
223
  }
@@ -254,7 +292,7 @@ export async function loadFeatureConfig(workspacePath) {
254
292
  const manifestPath = path.join(workspacePath, MANIFEST_FILE);
255
293
  try {
256
294
  const raw = await fs.readFile(manifestPath, 'utf-8');
257
- return JSON.parse(raw);
295
+ return normalizeFeature(JSON.parse(raw));
258
296
  }
259
297
  catch { }
260
298
  // 2. Legacy fallback: manifests written into the central vault before the
@@ -262,7 +300,7 @@ export async function loadFeatureConfig(workspacePath) {
262
300
  const vaultManifest = path.join(os.homedir(), '.nexusflow', 'vault', featureId, MANIFEST_FILE);
263
301
  try {
264
302
  const raw = await fs.readFile(vaultManifest, 'utf-8');
265
- return JSON.parse(raw);
303
+ return normalizeFeature(JSON.parse(raw));
266
304
  }
267
305
  catch { }
268
306
  // 3. Traverse parent directories
@@ -340,6 +378,11 @@ export async function deleteWorkspace(workspacePath) {
340
378
  catch (error) {
341
379
  console.warn(`Warning: failed to delete workspace context files from storage:`, error);
342
380
  }
381
+ }
382
+ // In-place: feature.repos are the user's source repositories — they must
383
+ // never be touched. Deleting the workspace only removes the lightweight
384
+ // directory (manifest + context files) at the end of this function.
385
+ if (feature && !isInPlace(feature)) {
343
386
  const origRepos = feature.originalRepos || [];
344
387
  for (let i = 0; i < feature.repos.length; i++) {
345
388
  const worktreePath = feature.repos[i];
@@ -359,7 +402,7 @@ export async function deleteWorkspace(workspacePath) {
359
402
  }
360
403
  }
361
404
  }
362
- else {
405
+ else if (!feature) {
363
406
  // Manifest is missing. Try to detect worktrees by scanning subdirectories
364
407
  try {
365
408
  const entries = await fs.readdir(workspacePath, { withFileTypes: true });
@@ -406,42 +449,71 @@ export async function addRepoToWorkspace(workspacePath, repoPath) {
406
449
  throw new Error(`Workspace manifest not found at ${workspacePath}`);
407
450
  }
408
451
  const newRepoInfo = await resolveRepoInfo(repoPath);
409
- const worktreeTarget = path.join(workspacePath, newRepoInfo.name);
410
- if (feature.repos.includes(worktreeTarget)) {
411
- throw new Error(`Repository ${repoPath} is already in the workspace`);
452
+ const inPlace = isInPlace(feature);
453
+ // In-place workspaces reference the source repo directly; worktree
454
+ // workspaces get a checkout inside the workspace dir.
455
+ const repoEntry = inPlace ? newRepoInfo.path : path.join(workspacePath, newRepoInfo.name);
456
+ // Identity is the directory name in both modes: worktrees are checked out
457
+ // as sibling subdirectories, and the changes/diff views address repos by
458
+ // name — a second "api" from a different parent dir would collide.
459
+ if (feature.repos.some((r) => path.basename(r) === newRepoInfo.name)) {
460
+ throw new Error(`A repository named "${newRepoInfo.name}" is already in the workspace`);
461
+ }
462
+ // 1. Create the worktree (worktree mode only)
463
+ if (!inPlace) {
464
+ await createWorktree(newRepoInfo.path, repoEntry, feature.branchName, newRepoInfo.defaultBranch);
412
465
  }
413
- // 1. Create the worktree
414
- await createWorktree(newRepoInfo.path, worktreeTarget, feature.branchName, newRepoInfo.defaultBranch);
415
466
  // 2. Update manifest
416
- feature.repos.push(worktreeTarget);
467
+ feature.repos.push(repoEntry);
417
468
  if (!feature.originalRepos) {
418
469
  feature.originalRepos = [];
419
470
  }
420
471
  feature.originalRepos.push(repoPath);
421
472
  await saveFeatureConfig(workspacePath, feature);
422
- // 3. Update .gitignore at workspace root
423
- try {
424
- const gitignorePath = path.join(workspacePath, '.gitignore');
425
- let gitignoreContent = '';
473
+ // 3. Keep editor config in step: worktree mode ignores the new subdir in the
474
+ // root .gitignore; in-place mode adds the absolute path to the
475
+ // .code-workspace (otherwise the repo is invisible in the editor).
476
+ if (!inPlace) {
426
477
  try {
427
- gitignoreContent = await fs.readFile(gitignorePath, 'utf-8');
478
+ const gitignorePath = path.join(workspacePath, '.gitignore');
479
+ let gitignoreContent = '';
480
+ try {
481
+ gitignoreContent = await fs.readFile(gitignorePath, 'utf-8');
482
+ }
483
+ catch { }
484
+ const entry = `/${newRepoInfo.name}/`;
485
+ if (!gitignoreContent.includes(entry)) {
486
+ gitignoreContent = gitignoreContent.trim() + '\n' + entry + '\n';
487
+ await fs.writeFile(gitignorePath, gitignoreContent, 'utf-8');
488
+ }
428
489
  }
429
- catch { }
430
- const entry = `/${newRepoInfo.name}/`;
431
- if (!gitignoreContent.includes(entry)) {
432
- gitignoreContent = gitignoreContent.trim() + '\n' + entry + '\n';
433
- await fs.writeFile(gitignorePath, gitignoreContent, 'utf-8');
490
+ catch (error) {
491
+ console.warn('Warning: Failed to update .gitignore:', error);
434
492
  }
435
493
  }
436
- catch (error) {
437
- console.warn('Warning: Failed to update .gitignore:', error);
494
+ else {
495
+ try {
496
+ const workspaceName = path.basename(workspacePath);
497
+ const codeWorkspacePath = path.join(workspacePath, `${workspaceName}.code-workspace`);
498
+ const codeWorkspace = JSON.parse(await fs.readFile(codeWorkspacePath, 'utf-8'));
499
+ codeWorkspace.folders = [
500
+ ...(codeWorkspace.folders ?? []),
501
+ { path: newRepoInfo.path, name: newRepoInfo.name },
502
+ ];
503
+ await fs.writeFile(codeWorkspacePath, JSON.stringify(codeWorkspace, null, 2) + '\n', 'utf-8');
504
+ }
505
+ catch (error) {
506
+ console.warn('Warning: Failed to update .code-workspace file:', error);
507
+ }
438
508
  }
439
509
  // 4. Re-run analysis, update configs, and repack workspace
440
510
  const allRepos = await Promise.all(feature.repos.map(resolveRepoInfo));
441
- const workspaceRepos = allRepos.map((repo) => ({
442
- ...repo,
443
- path: path.join(workspacePath, repo.name),
444
- }));
511
+ const workspaceRepos = inPlace
512
+ ? allRepos
513
+ : allRepos.map((repo) => ({
514
+ ...repo,
515
+ path: path.join(workspacePath, repo.name),
516
+ }));
445
517
  const analysis = await analyzeAllRepos(workspaceRepos);
446
518
  const ctx = {
447
519
  feature,
@@ -449,7 +521,9 @@ export async function addRepoToWorkspace(workspacePath, repoPath) {
449
521
  analysis,
450
522
  };
451
523
  await generateContextFiles(ctx, feature.assistants, workspacePath);
452
- await excludeNexusFlowFiles(workspacePath, feature);
524
+ if (!inPlace) {
525
+ await excludeNexusFlowFiles(workspacePath, feature);
526
+ }
453
527
  }
454
528
  /**
455
529
  * Automatically adds NexusFlow workspace context and config files to git's local
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ import { buildContextContent } from './base.js';
14
14
  * @param workspacePath - Absolute path to the workspace root directory.
15
15
  */
16
16
  export async function generateAntigravityConfig(ctx, workspacePath) {
17
- const content = buildContextContent(ctx);
17
+ const content = await buildContextContent(ctx);
18
18
  const filePath = path.join(workspacePath, 'AGENTS.md');
19
19
  try {
20
20
  await fse.writeFile(filePath, content, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/generators/antigravity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAqB,EACrB,aAAqB;IAErB,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/generators/antigravity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAqB,EACrB,aAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -4,12 +4,5 @@
4
4
  * use as their foundation. Now includes rich project analysis data when available.
5
5
  */
6
6
  import type { WorkspaceContext } from '../types.js';
7
- /**
8
- * Builds the shared markdown context content that all AI assistant generators
9
- * use as their foundation. Includes analysis data if available.
10
- *
11
- * @param ctx - The workspace context containing feature metadata, repo list, and optional analysis.
12
- * @returns A markdown string with feature details, repo listing, and task instructions.
13
- */
14
- export declare function buildContextContent(ctx: WorkspaceContext): string;
7
+ export declare function buildContextContent(ctx: WorkspaceContext): Promise<string>;
15
8
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/generators/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAC;AA4DrE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAsKjE"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/generators/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAC;AAoIrE,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqJhF"}