@mrpatronz/nexusflow 0.2.17 → 0.2.18

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 (274) hide show
  1. package/.agents/skills/ccc/SKILL.md +71 -0
  2. package/.agents/skills/ccc/references/management.md +110 -0
  3. package/.agents/skills/ccc/references/settings.md +126 -0
  4. package/.github/dependabot.yml +52 -52
  5. package/.github/workflows/ci.yml +44 -0
  6. package/.github/workflows/dependabot-merge.yml +53 -53
  7. package/.github/workflows/release-desktop.yml +67 -0
  8. package/.github/workflows/release-npm.yml +65 -0
  9. package/.github/workflows/release-vscode.yml +61 -0
  10. package/.vscode/launch.json +17 -17
  11. package/.vscode/tasks.json +17 -17
  12. package/GETTING_STARTED.md +114 -114
  13. package/README.md +364 -336
  14. package/desktop/build-installer.js +228 -228
  15. package/desktop/build.js +118 -118
  16. package/desktop/installer/nexusflow.iss +35 -35
  17. package/desktop/neutralino.config.json +38 -38
  18. package/desktop/package-lock.json +1060 -1060
  19. package/desktop/package.json +14 -14
  20. package/dist/commands/adapter.d.ts +27 -0
  21. package/dist/commands/adapter.d.ts.map +1 -0
  22. package/dist/commands/adapter.js +318 -0
  23. package/dist/commands/adapter.js.map +1 -0
  24. package/dist/commands/add-repo.d.ts.map +1 -1
  25. package/dist/commands/add-repo.js +0 -1
  26. package/dist/commands/add-repo.js.map +1 -1
  27. package/dist/commands/commands.test.js +2 -2
  28. package/dist/commands/commands.test.js.map +1 -1
  29. package/dist/commands/config.d.ts +22 -0
  30. package/dist/commands/config.d.ts.map +1 -0
  31. package/dist/commands/config.js +50 -0
  32. package/dist/commands/config.js.map +1 -0
  33. package/dist/commands/create.d.ts.map +1 -1
  34. package/dist/commands/create.js +14 -17
  35. package/dist/commands/create.js.map +1 -1
  36. package/dist/commands/doctor.d.ts.map +1 -1
  37. package/dist/commands/doctor.js +11 -0
  38. package/dist/commands/doctor.js.map +1 -1
  39. package/dist/commands/refresh.d.ts +1 -0
  40. package/dist/commands/refresh.d.ts.map +1 -1
  41. package/dist/commands/refresh.js +2 -14
  42. package/dist/commands/refresh.js.map +1 -1
  43. package/dist/commands/sync.d.ts.map +1 -1
  44. package/dist/commands/sync.js +0 -5
  45. package/dist/commands/sync.js.map +1 -1
  46. package/dist/commands/tui.d.ts.map +1 -1
  47. package/dist/commands/tui.js +63 -10
  48. package/dist/commands/tui.js.map +1 -1
  49. package/dist/core/adapters/local-storage.d.ts +14 -0
  50. package/dist/core/adapters/local-storage.d.ts.map +1 -0
  51. package/dist/core/adapters/local-storage.js +58 -0
  52. package/dist/core/adapters/local-storage.js.map +1 -0
  53. package/dist/core/adapters/obsidian-storage.d.ts +28 -0
  54. package/dist/core/adapters/obsidian-storage.d.ts.map +1 -0
  55. package/dist/core/adapters/obsidian-storage.js +135 -0
  56. package/dist/core/adapters/obsidian-storage.js.map +1 -0
  57. package/dist/core/adapters/registry.d.ts +8 -0
  58. package/dist/core/adapters/registry.d.ts.map +1 -0
  59. package/dist/core/adapters/registry.js +37 -0
  60. package/dist/core/adapters/registry.js.map +1 -0
  61. package/dist/core/adapters/storage.test.d.ts +2 -0
  62. package/dist/core/adapters/storage.test.d.ts.map +1 -0
  63. package/dist/core/adapters/storage.test.js +106 -0
  64. package/dist/core/adapters/storage.test.js.map +1 -0
  65. package/dist/core/adapters/vault-storage.d.ts +16 -0
  66. package/dist/core/adapters/vault-storage.d.ts.map +1 -0
  67. package/dist/core/adapters/vault-storage.js +77 -0
  68. package/dist/core/adapters/vault-storage.js.map +1 -0
  69. package/dist/core/config.d.ts.map +1 -1
  70. package/dist/core/config.js +28 -4
  71. package/dist/core/config.js.map +1 -1
  72. package/dist/core/plugins/index.d.ts +14 -0
  73. package/dist/core/plugins/index.d.ts.map +1 -0
  74. package/dist/core/plugins/index.js +2 -0
  75. package/dist/core/plugins/index.js.map +1 -0
  76. package/dist/core/plugins/loader.d.ts +2 -0
  77. package/dist/core/plugins/loader.d.ts.map +1 -0
  78. package/dist/core/plugins/loader.js +34 -0
  79. package/dist/core/plugins/loader.js.map +1 -0
  80. package/dist/core/ports/storage.d.ts +59 -0
  81. package/dist/core/ports/storage.d.ts.map +1 -0
  82. package/dist/core/ports/storage.js +10 -0
  83. package/dist/core/ports/storage.js.map +1 -0
  84. package/dist/core/storage.d.ts +10 -0
  85. package/dist/core/storage.d.ts.map +1 -0
  86. package/dist/core/storage.js +29 -0
  87. package/dist/core/storage.js.map +1 -0
  88. package/dist/core/workspace.d.ts.map +1 -1
  89. package/dist/core/workspace.js +110 -16
  90. package/dist/core/workspace.js.map +1 -1
  91. package/dist/generators/base.d.ts.map +1 -1
  92. package/dist/generators/base.js +80 -79
  93. package/dist/generators/base.js.map +1 -1
  94. package/dist/generators/codex.js +11 -11
  95. package/dist/generators/copilot.js +17 -17
  96. package/dist/generators/cursor.js +5 -5
  97. package/dist/generators/diff-context.d.ts +6 -0
  98. package/dist/generators/diff-context.d.ts.map +1 -0
  99. package/dist/generators/diff-context.js +68 -0
  100. package/dist/generators/diff-context.js.map +1 -0
  101. package/dist/generators/index.d.ts +1 -1
  102. package/dist/generators/index.d.ts.map +1 -1
  103. package/dist/generators/index.js +125 -68
  104. package/dist/generators/index.js.map +1 -1
  105. package/dist/generators/map-generator.d.ts.map +1 -1
  106. package/dist/generators/map-generator.js +21 -25
  107. package/dist/generators/map-generator.js.map +1 -1
  108. package/dist/generators/plan-generator.d.ts.map +1 -1
  109. package/dist/generators/plan-generator.js +3 -5
  110. package/dist/generators/plan-generator.js.map +1 -1
  111. package/dist/generators/skills-generator.js +28 -28
  112. package/dist/gui/assets/index-CB-jWded.css +1 -0
  113. package/dist/gui/assets/index-DDXpZZu3.js +25 -0
  114. package/dist/gui/icons.svg +24 -24
  115. package/dist/gui/index.html +18 -18
  116. package/dist/index.js +131 -20
  117. package/dist/index.js.map +1 -1
  118. package/dist/server.d.ts.map +1 -1
  119. package/dist/server.js +46 -43
  120. package/dist/server.js.map +1 -1
  121. package/dist/server.test.js +105 -48
  122. package/dist/server.test.js.map +1 -1
  123. package/dist/types.d.ts +7 -2
  124. package/dist/types.d.ts.map +1 -1
  125. package/dist/utils/local-ai.d.ts.map +1 -1
  126. package/dist/utils/local-ai.js +7 -3
  127. package/dist/utils/local-ai.js.map +1 -1
  128. package/dist/utils/update-check.d.ts.map +1 -1
  129. package/dist/utils/update-check.js +0 -28
  130. package/dist/utils/update-check.js.map +1 -1
  131. package/dist/utils/workflow-advisor.d.ts +16 -0
  132. package/dist/utils/workflow-advisor.d.ts.map +1 -0
  133. package/dist/utils/workflow-advisor.js +100 -0
  134. package/dist/utils/workflow-advisor.js.map +1 -0
  135. package/extension/package-lock.json +6044 -2673
  136. package/extension/package.json +117 -108
  137. package/extension/src/extension.ts +653 -631
  138. package/extension/tsconfig.json +21 -21
  139. package/gui/README.md +73 -73
  140. package/gui/e2e/wizard.spec.ts +346 -346
  141. package/gui/eslint.config.js +26 -26
  142. package/gui/index.html +17 -17
  143. package/gui/package-lock.json +3079 -3079
  144. package/gui/package.json +36 -36
  145. package/gui/playwright.config.ts +41 -41
  146. package/gui/public/icons.svg +24 -24
  147. package/gui/src/App.css +1 -1
  148. package/gui/src/App.tsx +3632 -3407
  149. package/gui/src/assets/vite.svg +1 -1
  150. package/gui/src/features/changes/ChangesViewer.tsx +388 -388
  151. package/gui/src/features/knowledge/KnowledgeBase.tsx +84 -84
  152. package/gui/src/features/onboarding/OnboardingWizard.tsx +230 -230
  153. package/gui/src/features/plan/ImplementationPlan.tsx +32 -32
  154. package/gui/src/features/services/ServiceConsole.tsx +250 -250
  155. package/gui/src/features/sessions/SessionHistory.tsx +195 -195
  156. package/gui/src/features/workspace/WorkspaceList.tsx +666 -666
  157. package/gui/src/index.css +152 -152
  158. package/gui/src/main.tsx +94 -94
  159. package/gui/src/types.ts +62 -62
  160. package/gui/tsconfig.app.json +25 -25
  161. package/gui/tsconfig.json +7 -7
  162. package/gui/tsconfig.node.json +24 -24
  163. package/gui/vite.config.ts +12 -12
  164. package/package.json +55 -56
  165. package/resources/workflows/plan-implement-review.md +8 -8
  166. package/resources/workflows/research-verify.md +6 -6
  167. package/resources/workflows/solo-developer.md +3 -3
  168. package/scripts/simulate-workspaces.ts +55 -55
  169. package/skills-lock.json +11 -0
  170. package/src/analyzers/detect-apis.ts +290 -290
  171. package/src/analyzers/detect-deps.ts +315 -315
  172. package/src/analyzers/detect-existing.ts +74 -74
  173. package/src/analyzers/detect-ports.ts +110 -110
  174. package/src/analyzers/index.ts +97 -97
  175. package/src/analyzers/messaging-analyzer.ts +254 -254
  176. package/src/analyzers/readme-summarizer.ts +102 -102
  177. package/src/analyzers/run-analyzer.ts +269 -269
  178. package/src/analyzers/tech-stack.ts +283 -283
  179. package/src/commands/adapter.ts +348 -0
  180. package/src/commands/add-repo.ts +156 -157
  181. package/src/commands/commands.test.ts +156 -155
  182. package/src/commands/commit.ts +131 -131
  183. package/src/commands/config.ts +52 -0
  184. package/src/commands/create.ts +204 -207
  185. package/src/commands/desktop.ts +128 -128
  186. package/src/commands/diff.ts +125 -125
  187. package/src/commands/doctor.ts +370 -357
  188. package/src/commands/handoff.ts +266 -266
  189. package/src/commands/init.ts +134 -134
  190. package/src/commands/list.ts +46 -46
  191. package/src/commands/logs.ts +63 -63
  192. package/src/commands/mcp.ts +94 -92
  193. package/src/commands/open.ts +129 -129
  194. package/src/commands/refresh.ts +137 -147
  195. package/src/commands/remove.ts +98 -98
  196. package/src/commands/start.ts +117 -117
  197. package/src/commands/status.ts +54 -54
  198. package/src/commands/stop.ts +55 -55
  199. package/src/commands/sync.ts +147 -151
  200. package/src/commands/tui.ts +484 -424
  201. package/src/commands/ui.ts +111 -111
  202. package/src/core/adapters/local-storage.ts +66 -0
  203. package/src/core/adapters/obsidian-storage.ts +151 -0
  204. package/src/core/adapters/registry.ts +44 -0
  205. package/src/core/adapters/storage.test.ts +174 -0
  206. package/src/core/adapters/vault-storage.ts +86 -0
  207. package/src/core/config.test.ts +96 -96
  208. package/src/core/config.ts +140 -115
  209. package/src/core/graph.ts +344 -344
  210. package/src/core/plugins/index.ts +17 -0
  211. package/src/core/plugins/loader.ts +36 -0
  212. package/src/core/ports/storage.ts +71 -0
  213. package/src/core/scanner.test.ts +61 -61
  214. package/src/core/scanner.ts +91 -91
  215. package/src/core/storage.ts +37 -0
  216. package/src/core/workspace.ts +487 -380
  217. package/src/core/worktree.ts +120 -120
  218. package/src/generators/antigravity.ts +32 -32
  219. package/src/generators/base.ts +243 -240
  220. package/src/generators/claude.ts +34 -34
  221. package/src/generators/codex.ts +48 -48
  222. package/src/generators/copilot.ts +56 -56
  223. package/src/generators/cursor.ts +44 -44
  224. package/src/generators/diff-context.ts +75 -0
  225. package/src/generators/index.ts +322 -250
  226. package/src/generators/map-generator.test.ts +159 -159
  227. package/src/generators/map-generator.ts +539 -542
  228. package/src/generators/plan-generator.ts +483 -481
  229. package/src/generators/skills-generator.ts +259 -259
  230. package/src/index.ts +539 -426
  231. package/src/mcp/server.ts +294 -294
  232. package/src/orchestration/detect.ts +313 -313
  233. package/src/orchestration/index.ts +7 -7
  234. package/src/orchestration/runner.ts +283 -283
  235. package/src/server.test.ts +618 -555
  236. package/src/server.ts +1314 -1308
  237. package/src/types.ts +415 -408
  238. package/src/utils/detect-ai.test.ts +44 -44
  239. package/src/utils/detect-ai.ts +84 -84
  240. package/src/utils/detect-editors.test.ts +48 -48
  241. package/src/utils/detect-editors.ts +57 -57
  242. package/src/utils/git.test.ts +74 -74
  243. package/src/utils/git.ts +117 -117
  244. package/src/utils/local-ai.test.ts +130 -130
  245. package/src/utils/local-ai.ts +116 -111
  246. package/src/utils/multi-git.ts +313 -313
  247. package/src/utils/prompts.ts +209 -209
  248. package/src/utils/session-finder.ts +483 -483
  249. package/src/utils/system-scanner.test.ts +89 -89
  250. package/src/utils/system-scanner.ts +96 -96
  251. package/src/utils/update-check.ts +286 -309
  252. package/src/utils/workflow-advisor.ts +118 -0
  253. package/src/utils/workflows.test.ts +114 -114
  254. package/src/utils/workflows.ts +178 -178
  255. package/tsconfig.json +19 -19
  256. package/vitest.config.ts +14 -14
  257. package/.github/workflows/release.yml +0 -112
  258. package/dist/commands/pack.d.ts +0 -7
  259. package/dist/commands/pack.d.ts.map +0 -1
  260. package/dist/commands/pack.js +0 -64
  261. package/dist/commands/pack.js.map +0 -1
  262. package/dist/core/packer.d.ts +0 -14
  263. package/dist/core/packer.d.ts.map +0 -1
  264. package/dist/core/packer.js +0 -87
  265. package/dist/core/packer.js.map +0 -1
  266. package/dist/core/packer.test.d.ts +0 -2
  267. package/dist/core/packer.test.d.ts.map +0 -1
  268. package/dist/core/packer.test.js +0 -82
  269. package/dist/core/packer.test.js.map +0 -1
  270. package/dist/gui/assets/index-Ct3qq-X4.js +0 -25
  271. package/dist/gui/assets/index-P_ZrgHXg.css +0 -1
  272. package/src/commands/pack.ts +0 -73
  273. package/src/core/packer.test.ts +0 -99
  274. package/src/core/packer.ts +0 -107
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @module core/ports/storage
3
+ * Storage Port defining the interface for workspace document persistence.
4
+ *
5
+ * Adapters implement this interface to provide different storage backends.
6
+ * Each adapter is self-describing via the `meta` property, which enables
7
+ * automatic discovery in CLI, GUI, and plugin systems.
8
+ */
9
+ /** Describes a single configurable field for an adapter. */
10
+ export interface AdapterConfigField {
11
+ /** Machine-readable key, stored in config.json. */
12
+ key: string;
13
+ /** Human-readable label for CLI prompts and GUI forms. */
14
+ label: string;
15
+ /** Value type — 'path' renders a file picker in the GUI. */
16
+ type: 'string' | 'boolean' | 'number' | 'path';
17
+ /** Whether the field must be set before the adapter can be used. */
18
+ required?: boolean;
19
+ /** Default value when not explicitly configured. */
20
+ default?: unknown;
21
+ /** Help text shown in CLI prompts and GUI tooltips. */
22
+ description?: string;
23
+ }
24
+ /** Metadata that makes an adapter self-describing and discoverable. */
25
+ export interface StorageAdapterMeta {
26
+ /** Unique machine-readable identifier (e.g. 'obsidian'). */
27
+ name: string;
28
+ /** Human-readable name for CLI tables and GUI dropdowns (e.g. 'Obsidian Vault'). */
29
+ displayName: string;
30
+ /** One-line description of what this adapter does. */
31
+ description: string;
32
+ /** Configuration fields this adapter accepts. Empty array = no config needed. */
33
+ configFields: AdapterConfigField[];
34
+ }
35
+ export interface StoragePort {
36
+ /** Adapter metadata — who am I, what do I need? */
37
+ readonly meta: StorageAdapterMeta;
38
+ /** Called once after registration with the user's per-adapter settings. */
39
+ configure?(settings: Record<string, unknown>): void;
40
+ /** Writes a workspace context/metadata document. */
41
+ writeWorkspaceFile(workspacePath: string, featureId: string, filename: string, content: string): Promise<void>;
42
+ /** Reads a workspace context/metadata document. */
43
+ readWorkspaceFile(workspacePath: string, featureId: string, filename: string): Promise<string>;
44
+ /** Checks if a workspace context/metadata document exists. */
45
+ workspaceFileExists(workspacePath: string, featureId: string, filename: string): Promise<boolean>;
46
+ /** Resolves the human-readable path or link to the workspace document for the AI assistant. */
47
+ resolveWorkspaceFileUrl(workspacePath: string, featureId: string, filename: string): string;
48
+ /** Writes a base-layer context document (stable maps/conventions across workspaces). */
49
+ writeBaseFile(workspacePath: string, repoName: string, filename: string, content: string): Promise<void>;
50
+ /** Reads a base-layer context document. */
51
+ readBaseFile(workspacePath: string, repoName: string, filename: string): Promise<string>;
52
+ /** Checks if a base-layer context document exists. */
53
+ baseFileExists(workspacePath: string, repoName: string, filename: string): Promise<boolean>;
54
+ /** Resolves the human-readable path or link to the base document. */
55
+ resolveBaseFileUrl(workspacePath: string, repoName: string, filename: string): string;
56
+ /** Cleanly deletes all workspace-specific documents from the storage backend. */
57
+ deleteWorkspace(workspacePath: string, featureId: string): Promise<void>;
58
+ }
59
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/core/ports/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,YAAY,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAElC,2EAA2E;IAC3E,SAAS,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEpD,oDAAoD;IACpD,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/G,mDAAmD;IACnD,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/F,8DAA8D;IAC9D,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElG,+FAA+F;IAC/F,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5F,wFAAwF;IACxF,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzG,2CAA2C;IAC3C,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzF,sDAAsD;IACtD,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5F,qEAAqE;IACrE,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtF,iFAAiF;IACjF,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @module core/ports/storage
3
+ * Storage Port defining the interface for workspace document persistence.
4
+ *
5
+ * Adapters implement this interface to provide different storage backends.
6
+ * Each adapter is self-describing via the `meta` property, which enables
7
+ * automatic discovery in CLI, GUI, and plugin systems.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/core/ports/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,10 @@
1
+ export declare function writeWorkspaceFile(workspacePath: string, featureId: string, filename: string, content: string): Promise<void>;
2
+ export declare function readWorkspaceFile(workspacePath: string, featureId: string, filename: string): Promise<string>;
3
+ export declare function workspaceFileExists(workspacePath: string, featureId: string, filename: string): Promise<boolean>;
4
+ export declare function resolveWorkspaceFileUrl(workspacePath: string, featureId: string, filename: string): string;
5
+ export declare function writeBaseFile(workspacePath: string, repoName: string, filename: string, content: string): Promise<void>;
6
+ export declare function readBaseFile(workspacePath: string, repoName: string, filename: string): Promise<string>;
7
+ export declare function baseFileExists(workspacePath: string, repoName: string, filename: string): Promise<boolean>;
8
+ export declare function resolveBaseFileUrl(workspacePath: string, repoName: string, filename: string): string;
9
+ export declare function deleteWorkspaceFiles(workspacePath: string, featureId: string): Promise<void>;
10
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/core/storage.ts"],"names":[],"mappings":"AAEA,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnI;AAED,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnH;AAED,wBAAsB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtH;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1G;AAED,wBAAsB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7H;AAED,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7G;AAED,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhH;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpG;AAED,wBAAsB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG"}
@@ -0,0 +1,29 @@
1
+ import { getActiveStorageProvider } from './adapters/registry.js';
2
+ export async function writeWorkspaceFile(workspacePath, featureId, filename, content) {
3
+ await getActiveStorageProvider().writeWorkspaceFile(workspacePath, featureId, filename, content);
4
+ }
5
+ export async function readWorkspaceFile(workspacePath, featureId, filename) {
6
+ return await getActiveStorageProvider().readWorkspaceFile(workspacePath, featureId, filename);
7
+ }
8
+ export async function workspaceFileExists(workspacePath, featureId, filename) {
9
+ return await getActiveStorageProvider().workspaceFileExists(workspacePath, featureId, filename);
10
+ }
11
+ export function resolveWorkspaceFileUrl(workspacePath, featureId, filename) {
12
+ return getActiveStorageProvider().resolveWorkspaceFileUrl(workspacePath, featureId, filename);
13
+ }
14
+ export async function writeBaseFile(workspacePath, repoName, filename, content) {
15
+ await getActiveStorageProvider().writeBaseFile(workspacePath, repoName, filename, content);
16
+ }
17
+ export async function readBaseFile(workspacePath, repoName, filename) {
18
+ return await getActiveStorageProvider().readBaseFile(workspacePath, repoName, filename);
19
+ }
20
+ export async function baseFileExists(workspacePath, repoName, filename) {
21
+ return await getActiveStorageProvider().baseFileExists(workspacePath, repoName, filename);
22
+ }
23
+ export function resolveBaseFileUrl(workspacePath, repoName, filename) {
24
+ return getActiveStorageProvider().resolveBaseFileUrl(workspacePath, repoName, filename);
25
+ }
26
+ export async function deleteWorkspaceFiles(workspacePath, featureId) {
27
+ await getActiveStorageProvider().deleteWorkspace(workspacePath, featureId);
28
+ }
29
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/core/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,aAAqB,EAAE,SAAiB,EAAE,QAAgB,EAAE,OAAe;IAClH,MAAM,wBAAwB,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,aAAqB,EAAE,SAAiB,EAAE,QAAgB;IAChG,OAAO,MAAM,wBAAwB,EAAE,CAAC,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,aAAqB,EAAE,SAAiB,EAAE,QAAgB;IAClG,OAAO,MAAM,wBAAwB,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAAqB,EAAE,SAAiB,EAAE,QAAgB;IAChG,OAAO,wBAAwB,EAAE,CAAC,uBAAuB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,aAAqB,EAAE,QAAgB,EAAE,QAAgB,EAAE,OAAe;IAC5G,MAAM,wBAAwB,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,aAAqB,EAAE,QAAgB,EAAE,QAAgB;IAC1F,OAAO,MAAM,wBAAwB,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,aAAqB,EAAE,QAAgB,EAAE,QAAgB;IAC5F,OAAO,MAAM,wBAAwB,EAAE,CAAC,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB,EAAE,QAAgB,EAAE,QAAgB;IAC1F,OAAO,wBAAwB,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,aAAqB,EAAE,SAAiB;IACjF,MAAM,wBAAwB,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AAC7E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAoB,MAAM,aAAa,CAAC;AAWvE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,QAAQ,EAAE,GAChB,OAAO,CAAC,MAAM,CAAC,CAuEjB;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,CAIf;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAWzB;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;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAgEf"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAoB,MAAM,aAAa,CAAC;AAYvE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,QAAQ,EAAE,GAChB,OAAO,CAAC,MAAM,CAAC,CAiGjB;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,CAIf;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA+BzB;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;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAwDf;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA6Df"}
@@ -6,13 +6,14 @@
6
6
  */
7
7
  import * as fs from 'node:fs/promises';
8
8
  import * as path from 'node:path';
9
+ import * as os from 'node:os';
9
10
  import { execa } from 'execa';
10
11
  import { createWorktree, removeWorktree } from './worktree.js';
11
12
  import { detectDefaultBranch } from '../utils/git.js';
12
13
  import { analyzeAllRepos } from '../analyzers/index.js';
13
14
  import { generateContextFiles } from '../generators/index.js';
14
- import { packWorkspace } from './packer.js';
15
- import { loadConfig } from './config.js';
15
+ import { getActiveStorageProvider } from './adapters/registry.js';
16
+ import { deleteWorkspaceFiles } from './storage.js';
16
17
  /** Name of the per-workspace manifest file. */
17
18
  const MANIFEST_FILE = 'nexusflow.json';
18
19
  /**
@@ -51,12 +52,31 @@ export async function createWorkspace(feature, repos) {
51
52
  // Silently ignore or log warning if git init fails
52
53
  console.warn('Warning: Failed to initialize git repository at workspace root:', error);
53
54
  }
54
- // Create .vscode/settings.json to allow VS Code search to query inside ignored sub-repos
55
+ // Generate a .code-workspace file so VS Code opens each repo as a top-level workspace
56
+ // folder with its own SCM provider. Without this, VS Code's git scanner respects the
57
+ // root .gitignore (which lists every repo dir) and never discovers the worktrees.
58
+ try {
59
+ const workspaceName = path.basename(workspacePath);
60
+ const codeWorkspace = {
61
+ folders: [
62
+ { path: '.', name: `${workspaceName} (workspace)` },
63
+ ...repos.map((repo) => ({ path: repo.name, name: repo.name })),
64
+ ],
65
+ settings: {
66
+ 'search.useIgnoreFiles': false,
67
+ },
68
+ };
69
+ await fs.writeFile(path.join(workspacePath, `${workspaceName}.code-workspace`), JSON.stringify(codeWorkspace, null, 2) + '\n', 'utf-8');
70
+ }
71
+ catch (error) {
72
+ console.warn('Warning: Failed to create .code-workspace file:', error);
73
+ }
74
+ // Create .vscode/settings.json for editors that don't use the .code-workspace file
55
75
  try {
56
76
  const vscodeDir = path.join(workspacePath, '.vscode');
57
77
  await fs.mkdir(vscodeDir, { recursive: true });
58
78
  const settings = {
59
- "search.useIgnoreFiles": false
79
+ 'search.useIgnoreFiles': false,
60
80
  };
61
81
  await fs.writeFile(path.join(vscodeDir, 'settings.json'), JSON.stringify(settings, null, 2) + '\n', 'utf-8');
62
82
  }
@@ -71,7 +91,7 @@ export async function createWorkspace(feature, repos) {
71
91
  "mcpServers": {
72
92
  "nexusflow": {
73
93
  "command": "npx",
74
- "args": ["-y", "@mrpatronz/nexusflow", "mcp", "run", workspacePath]
94
+ "args": ["-y", "@mrpatronz/nexusflow", "mcp", "start"]
75
95
  }
76
96
  }
77
97
  };
@@ -87,6 +107,8 @@ export async function createWorkspace(feature, repos) {
87
107
  }
88
108
  // Persist the feature manifest.
89
109
  await saveFeatureConfig(workspacePath, feature);
110
+ // Exclude NexusFlow files from git
111
+ await excludeNexusFlowFiles(workspacePath, feature);
90
112
  return workspacePath;
91
113
  }
92
114
  /**
@@ -136,9 +158,9 @@ export async function listWorkspaces(workspacesDir) {
136
158
  * @param feature - The feature definition to persist.
137
159
  */
138
160
  export async function saveFeatureConfig(workspacePath, feature) {
139
- const manifestPath = path.join(workspacePath, MANIFEST_FILE);
140
161
  const data = JSON.stringify(feature, null, 2) + '\n';
141
- await fs.writeFile(manifestPath, data, 'utf-8');
162
+ const adapter = getActiveStorageProvider();
163
+ await adapter.writeWorkspaceFile(workspacePath, feature.id, MANIFEST_FILE, data);
142
164
  }
143
165
  /**
144
166
  * Loads a {@link Feature} from the `nexusflow.json` manifest inside a
@@ -149,17 +171,34 @@ export async function saveFeatureConfig(workspacePath, feature) {
149
171
  * invalid.
150
172
  */
151
173
  export async function loadFeatureConfig(workspacePath) {
152
- const rootDir = await findWorkspaceRoot(workspacePath);
153
- if (!rootDir)
154
- return null;
155
- const manifestPath = path.join(rootDir, MANIFEST_FILE);
174
+ const featureId = path.basename(workspacePath);
175
+ const adapter = getActiveStorageProvider();
176
+ // 1. Try reading via the storage adapter first
177
+ try {
178
+ const raw = await adapter.readWorkspaceFile(workspacePath, featureId, MANIFEST_FILE);
179
+ return JSON.parse(raw);
180
+ }
181
+ catch { }
182
+ // 2. Try direct local check
183
+ const manifestPath = path.join(workspacePath, MANIFEST_FILE);
156
184
  try {
157
185
  const raw = await fs.readFile(manifestPath, 'utf-8');
158
186
  return JSON.parse(raw);
159
187
  }
160
- catch {
161
- return null;
188
+ catch { }
189
+ // 3. Try direct vault check
190
+ const vaultManifest = path.join(os.homedir(), '.nexusflow', 'vault', featureId, MANIFEST_FILE);
191
+ try {
192
+ const raw = await fs.readFile(vaultManifest, 'utf-8');
193
+ return JSON.parse(raw);
194
+ }
195
+ catch { }
196
+ // 4. Traverse parent directories
197
+ const rootDir = await findWorkspaceRoot(workspacePath);
198
+ if (rootDir && rootDir !== workspacePath) {
199
+ return loadFeatureConfig(rootDir);
162
200
  }
201
+ return null;
163
202
  }
164
203
  /**
165
204
  * Traverses up parent directories to find a directory containing `nexusflow.json`.
@@ -207,6 +246,12 @@ export async function resolveRepoInfo(repoPath) {
207
246
  export async function deleteWorkspace(workspacePath) {
208
247
  const feature = await loadFeatureConfig(workspacePath);
209
248
  if (feature) {
249
+ try {
250
+ await deleteWorkspaceFiles(workspacePath, feature.id);
251
+ }
252
+ catch (error) {
253
+ console.warn(`Warning: failed to delete workspace context files from storage:`, error);
254
+ }
210
255
  const origRepos = feature.originalRepos || [];
211
256
  for (let i = 0; i < feature.repos.length; i++) {
212
257
  const worktreePath = feature.repos[i];
@@ -315,9 +360,58 @@ export async function addRepoToWorkspace(workspacePath, repoPath) {
315
360
  analysis,
316
361
  };
317
362
  await generateContextFiles(ctx, feature.assistants, workspacePath);
318
- const config = await loadConfig();
319
- if (config.packContextXml) {
320
- await packWorkspace(workspacePath);
363
+ await excludeNexusFlowFiles(workspacePath, feature);
364
+ }
365
+ /**
366
+ * Automatically adds NexusFlow workspace context and config files to git's local
367
+ * exclude list for each repository so they never show up in `git status` or get committed.
368
+ */
369
+ async function excludeNexusFlowFiles(workspacePath, feature) {
370
+ const excludeEntries = [
371
+ 'CLAUDE.md',
372
+ 'AGENTS.md',
373
+ 'WORKSPACE.md',
374
+ 'nexusflow-knowledge.md',
375
+ 'nexusflow-plan.md',
376
+ 'nexusflow-conventions-*.md',
377
+ 'nexusflow-map-*.md',
378
+ 'nexusflow-diff-context.md',
379
+ '.cursor/rules/',
380
+ '.vscode/settings.json'
381
+ ];
382
+ for (const repoPath of feature.repos) {
383
+ try {
384
+ const gitDir = path.join(repoPath, '.git');
385
+ let worktreeGitDir = gitDir;
386
+ const stat = await fs.stat(gitDir);
387
+ if (stat.isFile()) {
388
+ const fileContent = await fs.readFile(gitDir, 'utf8');
389
+ const match = fileContent.match(/gitdir:\s*(.+)/);
390
+ if (match) {
391
+ worktreeGitDir = match[1].trim();
392
+ }
393
+ }
394
+ const excludeFilePath = path.join(worktreeGitDir, 'info', 'exclude');
395
+ await fs.mkdir(path.dirname(excludeFilePath), { recursive: true });
396
+ let excludeContent = '';
397
+ try {
398
+ excludeContent = await fs.readFile(excludeFilePath, 'utf8');
399
+ }
400
+ catch { }
401
+ let updated = false;
402
+ for (const entry of excludeEntries) {
403
+ if (!excludeContent.includes(entry)) {
404
+ excludeContent = excludeContent.trim() + '\n' + entry + '\n';
405
+ updated = true;
406
+ }
407
+ }
408
+ if (updated) {
409
+ await fs.writeFile(excludeFilePath, excludeContent.trim() + '\n', 'utf8');
410
+ }
411
+ }
412
+ catch {
413
+ // Ignore if not a git repo or directory missing
414
+ }
321
415
  }
322
416
  }
323
417
  //# sourceMappingURL=workspace.js.map
@@ -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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"}
@@ -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;AAwDrE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAuKjE"}
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"}
@@ -3,16 +3,18 @@
3
3
  * Builds the shared markdown context content that all AI assistant generators
4
4
  * use as their foundation. Now includes rich project analysis data when available.
5
5
  */
6
- import * as path from 'node:path';
7
6
  import * as fs from 'node:fs';
7
+ import { resolveBaseFileUrl, resolveWorkspaceFileUrl } from '../core/storage.js';
8
8
  /**
9
9
  * Formats a ProjectAnalysis into a readable markdown section.
10
10
  */
11
11
  function formatProjectSection(analysis, workspacePath) {
12
12
  const lines = [];
13
13
  lines.push(`### ${analysis.name}`);
14
- const mapPath = path.join(workspacePath, `nexusflow-map-${analysis.name}.md`).replace(/\\/g, '/');
14
+ const mapPath = resolveBaseFileUrl(workspacePath, analysis.name, `nexusflow-map-${analysis.name}.md`);
15
15
  lines.push(`- **Architecture Map**: [nexusflow-map-${analysis.name}.md](file:///${mapPath}) — **Instruction**: Before modifying this repository, read its architecture map. For exploration, consult the map's section index on demand.`);
16
+ const baseKnowledgePath = resolveBaseFileUrl(workspacePath, analysis.name, 'nexusflow-knowledge.md');
17
+ lines.push(`- **Base Knowledge & Decisions**: [nexusflow-knowledge.md](file:///${baseKnowledgePath}) — **Instruction**: Read this for persistent codebase learnings, decisions, and conventions.`);
16
18
  // Tech stack
17
19
  const { techStack } = analysis;
18
20
  if (techStack.languages.length > 0 && techStack.languages[0] !== 'other') {
@@ -86,15 +88,15 @@ export function buildContextContent(ctx) {
86
88
  }
87
89
  }
88
90
  if (allConfigs.length > 0) {
89
- existingConfigsSection = `
90
- ---
91
-
92
- ## Existing AI Configurations
93
-
94
- The following repos already have AI assistant configuration files.
95
- Incorporate their instructions when working in those repos:
96
-
97
- ${allConfigs.join('\n')}
91
+ existingConfigsSection = `
92
+ ---
93
+
94
+ ## Existing AI Configurations
95
+
96
+ The following repos already have AI assistant configuration files.
97
+ Incorporate their instructions when working in those repos:
98
+
99
+ ${allConfigs.join('\n')}
98
100
  `;
99
101
  }
100
102
  }
@@ -122,23 +124,22 @@ ${allConfigs.join('\n')}
122
124
  }
123
125
  }
124
126
  if (parts.length > 0) {
125
- resumptionSection = `
126
- ---
127
-
128
- ## Workspace Resumption & Verification Commands
129
-
130
- Use these pre-configured commands to spin up mocks, run background services, and verify your changes:
131
-
132
- ${parts.join('\n')}
127
+ resumptionSection = `
128
+ ---
129
+
130
+ ## Workspace Resumption & Verification Commands
131
+
132
+ Use these pre-configured commands to spin up mocks, run background services, and verify your changes:
133
+
134
+ ${parts.join('\n')}
133
135
  `;
134
136
  }
135
137
  }
136
- const knowledgePath = path.join(workspacePath, 'nexusflow-knowledge.md').replace(/\\/g, '/');
138
+ const knowledgePath = resolveWorkspaceFileUrl(workspacePath, feature.id, 'nexusflow-knowledge.md').replace(/\\/g, '/');
137
139
  let setupDone = false;
138
140
  try {
139
- const realKnowledgePath = path.join(workspacePath, 'nexusflow-knowledge.md');
140
- if (fs.existsSync(realKnowledgePath)) {
141
- const content = fs.readFileSync(realKnowledgePath, 'utf-8');
141
+ if (fs.existsSync(knowledgePath)) {
142
+ const content = fs.readFileSync(knowledgePath, 'utf-8');
142
143
  if (!content.includes('No assumptions recorded yet') && !content.includes('AI assistant to populate')) {
143
144
  setupDone = true;
144
145
  }
@@ -148,69 +149,69 @@ ${parts.join('\n')}
148
149
  // Teamwork strategy section
149
150
  let teamworkSection = '';
150
151
  if (feature.teamworkInstructions) {
151
- teamworkSection = `
152
- ---
153
-
154
- ## Team Collaboration Strategy
155
-
156
- ${feature.teamworkInstructions}
152
+ teamworkSection = `
153
+ ---
154
+
155
+ ## Team Collaboration Strategy
156
+
157
+ ${feature.teamworkInstructions}
157
158
  `;
158
159
  }
159
160
  const taskSection = setupDone
160
161
  ? `## Setup Status\n\n✅ **Setup Completed**: Project assumptions and initial questions have been addressed. Refer to [nexusflow-knowledge.md](file:///${knowledgePath}) for persistent session details.`
161
162
  : `## First Steps\n\nYour very first task upon entering this workspace is to explore the codebase and align with the user:\n\n1. **Verify Assumptions**: Open [nexusflow-knowledge.md](file:///${knowledgePath}) and fill in the **Project Assumptions** section with a brief description of what each project does, its tech stack, and responsibilities.\n2. **Raise Questions**: Document any outstanding uncertainties or architectural questions in the **Clarifying Questions for the User** section.\n3. **Obtain Approval**: Ask the user to confirm your assumptions and answer your questions before writing any code.`;
162
- return `# Multi-Repo Workspace Context
163
-
164
- ## Feature: ${feature.id}
165
-
166
- **Description:** ${feature.description}
167
-
168
- > For the detailed feature specification, architecture decisions, and session memory, see [nexusflow-knowledge.md](file:///${knowledgePath}).
169
-
170
- ---
171
-
172
- ## Projects
173
-
174
- This workspace contains the following projects, each checked out as a
175
- git worktree on the feature branch:
176
-
177
- ${projectSections}
178
- ${existingConfigsSection}
179
- ${resumptionSection}
180
- ---
181
-
182
- ${taskSection}
183
- ${teamworkSection}
184
- ---
185
-
186
- ## Guidelines
187
-
188
- - **Multi-Repo Workspace Structure**: This workspace is a multi-repository developer environment where each project subdirectory (e.g. \`my-api\`, \`my-frontend\`) is a separate Git worktree checked out on the feature branch \`${feature.branchName}\`.
189
- - **All code changes** must be made within the appropriate project subdirectories.
190
- - **Worktree Isolation**: Under no circumstances should you edit files, read code, or run commands in the original/main repository directories outside of this workspace folder. All development must be strictly contained within the checked-out worktree subdirectories of this workspace.
191
- - **Git commands** (like \`git status\`, \`git add\`, \`git commit\`, \`git push\`) must be run inside the specific project subdirectories (e.g. \`cd my-api && git commit -m "..."\`), NOT in the workspace root.
192
- - **Project commands** (like \`npm install\`, \`npm run build\`, \`npm run test\`) must be run inside the project subdirectories.
193
- - **Global helpers**: Alternatively, you can run NexusFlow CLI commands from the workspace root:
194
- - \`nexusflow diff\` — view changes across all sub-repositories.
195
- - \`nexusflow commit\` — commit and push changes across modified repositories.
196
- - \`nexusflow sync\` — rebase all repositories with their default base branches.
197
- - \`nexusflow refresh\` — regenerate maps, context files and plans without rebasing.
198
- - \`nexusflow doctor\` — run diagnostics to verify workspace health.
199
- - **Workspace Knowledge**: Read \`nexusflow-knowledge.md\` at the start of every session. It serves as the persistent memory for this feature. Before ending your session, append significant architecture decisions, discovered gotchas, and checklist progress to \`nexusflow-knowledge.md\`. Never delete or overwrite existing knowledge/decisions — only append.
200
- - **Implementation Plan**: Refer to \`nexusflow-plan.md\` for the suggested implementation order based on dependency analysis. Follow the phased implementation order to avoid blocking yourself on cross-repo dependencies.
163
+ return `# Multi-Repo Workspace Context
164
+
165
+ ## Feature: ${feature.id}
166
+
167
+ **Description:** ${feature.description}
168
+
169
+ > For the detailed feature specification, architecture decisions, and session memory, see [nexusflow-knowledge.md](file:///${knowledgePath}).
170
+
171
+ ---
172
+
173
+ ## Projects
174
+
175
+ This workspace contains the following projects, each checked out as a
176
+ git worktree on the feature branch:
177
+
178
+ ${projectSections}
179
+ ${existingConfigsSection}
180
+ ${resumptionSection}
181
+ ---
182
+
183
+ ${taskSection}
184
+ ${teamworkSection}
185
+ ---
186
+
187
+ ## Guidelines
188
+
189
+ - **Multi-Repo Workspace Structure**: This workspace is a multi-repository developer environment where each project subdirectory (e.g. \`my-api\`, \`my-frontend\`) is a separate Git worktree checked out on the feature branch \`${feature.branchName}\`.
190
+ - **All code changes** must be made within the appropriate project subdirectories.
191
+ - **Worktree Isolation**: Under no circumstances should you edit files, read code, or run commands in the original/main repository directories outside of this workspace folder. All development must be strictly contained within the checked-out worktree subdirectories of this workspace.
192
+ - **Git commands** (like \`git status\`, \`git add\`, \`git commit\`, \`git push\`) must be run inside the specific project subdirectories (e.g. \`cd my-api && git commit -m "..."\`), NOT in the workspace root.
193
+ - **Project commands** (like \`npm install\`, \`npm run build\`, \`npm run test\`) must be run inside the project subdirectories.
194
+ - **Global helpers**: Alternatively, you can run NexusFlow CLI commands from the workspace root:
195
+ - \`nexusflow diff\` — view changes across all sub-repositories.
196
+ - \`nexusflow commit\` — commit and push changes across modified repositories.
197
+ - \`nexusflow sync\` — rebase all repositories with their default base branches.
198
+ - \`nexusflow refresh\` — regenerate maps, context files and plans without rebasing.
199
+ - \`nexusflow doctor\` — run diagnostics to verify workspace health.
200
+ - **Workspace Knowledge**: Read \`nexusflow-knowledge.md\` at the start of every session. It serves as the persistent memory for this feature. Before ending your session, append significant architecture decisions, discovered gotchas, and checklist progress to \`nexusflow-knowledge.md\`. Never delete or overwrite existing knowledge/decisions — only append.
201
+ - **Implementation Plan**: Refer to \`nexusflow-plan.md\` for the suggested implementation order based on dependency analysis. Follow the phased implementation order to avoid blocking yourself on cross-repo dependencies.
201
202
  ${localLlmEnabled ? `- **Local AI Agent Delegation (Token Optimizer)**: You have access to a local Small Language Model (SLM) on the developer's machine via the MCP tool \`delegate_to_local_agent\`.${ctx.localLlm ? `\n - **Model Capacity**: The local agent is running \`${ctx.localLlm.model}\`. ${ctx.localLlm.model.match(/70b|72b|32b|14b/i)
202
203
  ? 'This is a highly capable model; you can delegate complex reasoning and larger code generation tasks.'
203
- : 'This is a smaller model; it is best suited for targeted search, log parsing, summarization, and simple boilerplate.'}` : ''}
204
- - **Usage rule**: Whenever you need to perform high-token tasks (like searching large chunks of code, analyzing raw service logs to debug, or generating repetitive boilerplate), **always use \`delegate_to_local_agent\`** first.
205
- - The local model is free and fast. Pass the instruction and any logs/source files in \`filesToRead\` (relative paths). Use the distilled summary returned to formulate your final output, saving up to 90% in remote context tokens.
206
- ` : ''}- Read each project's existing \`README.md\` and any doc files before proposing changes.
207
- - When modifying a shared library, check every downstream consumer for breakage.
208
- - Prefer small, focused commits that touch one repo at a time when possible.
209
- - If a change must span repos, describe the ordering and any migration steps.
210
-
211
-
212
-
213
-
204
+ : 'This is a smaller model; it is best suited for targeted search, log parsing, summarization, and simple boilerplate.'}` : ''}
205
+ - **Usage rule**: Whenever you need to perform high-token tasks (like searching large chunks of code, analyzing raw service logs to debug, or generating repetitive boilerplate), **always use \`delegate_to_local_agent\`** first.
206
+ - The local model is free and fast. Pass the instruction and any logs/source files in \`filesToRead\` (relative paths). Use the distilled summary returned to formulate your final output, saving up to 90% in remote context tokens.
207
+ ` : ''}- Read each project's existing \`README.md\` and any doc files before proposing changes.
208
+ - When modifying a shared library, check every downstream consumer for breakage.
209
+ - Prefer small, focused commits that touch one repo at a time when possible.
210
+ - If a change must span repos, describe the ordering and any migration steps.
211
+
212
+
213
+
214
+
214
215
  `;
215
216
  }
216
217
  //# sourceMappingURL=base.js.map