@mrpatronz/nexusflow 1.9.0 → 2.0.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 (182) hide show
  1. package/dist/agent/ProviderRegistry.d.ts +12 -1
  2. package/dist/agent/ProviderRegistry.d.ts.map +1 -1
  3. package/dist/agent/ProviderRegistry.js.map +1 -1
  4. package/dist/agent/ProviderRegistry.test.js +1 -0
  5. package/dist/agent/ProviderRegistry.test.js.map +1 -1
  6. package/dist/agent/adapters.d.ts +14 -0
  7. package/dist/agent/adapters.d.ts.map +1 -1
  8. package/dist/agent/adapters.js +39 -4
  9. package/dist/agent/adapters.js.map +1 -1
  10. package/dist/agent/adapters.test.d.ts +2 -0
  11. package/dist/agent/adapters.test.d.ts.map +1 -0
  12. package/dist/agent/adapters.test.js +49 -0
  13. package/dist/agent/adapters.test.js.map +1 -0
  14. package/dist/agent/cliAvailability.d.ts +48 -0
  15. package/dist/agent/cliAvailability.d.ts.map +1 -0
  16. package/dist/agent/cliAvailability.js +112 -0
  17. package/dist/agent/cliAvailability.js.map +1 -0
  18. package/dist/agent/cliAvailability.test.d.ts +2 -0
  19. package/dist/agent/cliAvailability.test.d.ts.map +1 -0
  20. package/dist/agent/cliAvailability.test.js +105 -0
  21. package/dist/agent/cliAvailability.test.js.map +1 -0
  22. package/dist/analyzers/detect-deps.d.ts.map +1 -1
  23. package/dist/analyzers/detect-deps.js +16 -19
  24. package/dist/analyzers/detect-deps.js.map +1 -1
  25. package/dist/analyzers/index.d.ts +0 -2
  26. package/dist/analyzers/index.d.ts.map +1 -1
  27. package/dist/analyzers/index.js +6 -9
  28. package/dist/analyzers/index.js.map +1 -1
  29. package/dist/commands/commands.test.js +4 -3
  30. package/dist/commands/commands.test.js.map +1 -1
  31. package/dist/commands/create.d.ts.map +1 -1
  32. package/dist/commands/create.js.map +1 -1
  33. package/dist/commands/knowledge.d.ts +10 -0
  34. package/dist/commands/knowledge.d.ts.map +1 -1
  35. package/dist/commands/knowledge.js +27 -1
  36. package/dist/commands/knowledge.js.map +1 -1
  37. package/dist/commands/knowledge.test.d.ts +2 -0
  38. package/dist/commands/knowledge.test.d.ts.map +1 -0
  39. package/dist/commands/knowledge.test.js +77 -0
  40. package/dist/commands/knowledge.test.js.map +1 -0
  41. package/dist/commands/refresh.d.ts +2 -4
  42. package/dist/commands/refresh.d.ts.map +1 -1
  43. package/dist/commands/refresh.js +4 -20
  44. package/dist/commands/refresh.js.map +1 -1
  45. package/dist/core/adapters/registry.d.ts.map +1 -1
  46. package/dist/core/adapters/registry.js +8 -3
  47. package/dist/core/adapters/registry.js.map +1 -1
  48. package/dist/core/adapters/storage.test.js +5 -24
  49. package/dist/core/adapters/storage.test.js.map +1 -1
  50. package/dist/core/analysis-cache.d.ts +15 -8
  51. package/dist/core/analysis-cache.d.ts.map +1 -1
  52. package/dist/core/analysis-cache.js +61 -10
  53. package/dist/core/analysis-cache.js.map +1 -1
  54. package/dist/core/analysis-cache.test.js +17 -4
  55. package/dist/core/analysis-cache.test.js.map +1 -1
  56. package/dist/core/config.d.ts.map +1 -1
  57. package/dist/core/config.js +5 -4
  58. package/dist/core/config.js.map +1 -1
  59. package/dist/core/doctor.d.ts.map +1 -1
  60. package/dist/core/doctor.js +9 -5
  61. package/dist/core/doctor.js.map +1 -1
  62. package/dist/core/knowledge.d.ts +14 -4
  63. package/dist/core/knowledge.d.ts.map +1 -1
  64. package/dist/core/knowledge.js +64 -14
  65. package/dist/core/knowledge.js.map +1 -1
  66. package/dist/core/knowledge.test.js +54 -2
  67. package/dist/core/knowledge.test.js.map +1 -1
  68. package/dist/core/locks.d.ts +43 -0
  69. package/dist/core/locks.d.ts.map +1 -0
  70. package/dist/core/locks.js +102 -0
  71. package/dist/core/locks.js.map +1 -0
  72. package/dist/core/locks.test.d.ts +2 -0
  73. package/dist/core/locks.test.d.ts.map +1 -0
  74. package/dist/core/locks.test.js +95 -0
  75. package/dist/core/locks.test.js.map +1 -0
  76. package/dist/core/ports/storage.d.ts +3 -3
  77. package/dist/core/ports/storage.d.ts.map +1 -1
  78. package/dist/core/refresh.d.ts +12 -13
  79. package/dist/core/refresh.d.ts.map +1 -1
  80. package/dist/core/refresh.js +14 -11
  81. package/dist/core/refresh.js.map +1 -1
  82. package/dist/core/refresh.test.js +17 -11
  83. package/dist/core/refresh.test.js.map +1 -1
  84. package/dist/core/scheduler.d.ts.map +1 -1
  85. package/dist/core/scheduler.js +2 -65
  86. package/dist/core/scheduler.js.map +1 -1
  87. package/dist/core/sync.js +3 -3
  88. package/dist/core/sync.js.map +1 -1
  89. package/dist/core/worktree.js +2 -2
  90. package/dist/core/worktree.js.map +1 -1
  91. package/dist/core/worktree.test.js +2 -2
  92. package/dist/core/worktree.test.js.map +1 -1
  93. package/dist/generators/base.d.ts +31 -2
  94. package/dist/generators/base.d.ts.map +1 -1
  95. package/dist/generators/base.js +174 -238
  96. package/dist/generators/base.js.map +1 -1
  97. package/dist/generators/base.test.js +231 -24
  98. package/dist/generators/base.test.js.map +1 -1
  99. package/dist/generators/claude.d.ts +19 -5
  100. package/dist/generators/claude.d.ts.map +1 -1
  101. package/dist/generators/claude.js +33 -11
  102. package/dist/generators/claude.js.map +1 -1
  103. package/dist/generators/index.d.ts +10 -9
  104. package/dist/generators/index.d.ts.map +1 -1
  105. package/dist/generators/index.js +103 -118
  106. package/dist/generators/index.js.map +1 -1
  107. package/dist/generators/plan-generator.d.ts.map +1 -1
  108. package/dist/generators/plan-generator.js +217 -193
  109. package/dist/generators/plan-generator.js.map +1 -1
  110. package/dist/generators/plan-generator.test.d.ts +2 -0
  111. package/dist/generators/plan-generator.test.d.ts.map +1 -0
  112. package/dist/generators/plan-generator.test.js +217 -0
  113. package/dist/generators/plan-generator.test.js.map +1 -0
  114. package/dist/gui/assets/{DashboardPage-C3NH97y2.js → DashboardPage-HNC3-OP0.js} +1 -1
  115. package/dist/gui/assets/{GettingStartedPage-og-Kv7Sm.js → GettingStartedPage-Dguoya_Z.js} +1 -1
  116. package/dist/gui/assets/{ProjectsPage-COqqadEr.js → ProjectsPage-DVR4j4sw.js} +1 -1
  117. package/dist/gui/assets/{ScaffoldRepoInline-DRipQsos.js → ScaffoldRepoInline-D-2ZeuDK.js} +1 -1
  118. package/dist/gui/assets/{SettingsPage-CpU3V9oU.js → SettingsPage-Bauo77q3.js} +1 -1
  119. package/dist/gui/assets/{StartWorkPage-DIND0hJy.js → StartWorkPage-DvuFEa5Y.js} +1 -1
  120. package/dist/gui/assets/{StrategiesPage-6LWOnKdk.js → StrategiesPage-Cizm0GWk.js} +1 -1
  121. package/dist/gui/assets/{WorkspacesPage-BUqgOhuy.js → WorkspacesPage-DYOVfZqy.js} +1 -1
  122. package/dist/gui/assets/{index-CyYbQwRf.js → index-BqeoAIB1.js} +6 -6
  123. package/dist/gui/index.html +1 -1
  124. package/dist/index.js +2 -4
  125. package/dist/index.js.map +1 -1
  126. package/dist/mcp/tools.d.ts.map +1 -1
  127. package/dist/mcp/tools.js +11 -15
  128. package/dist/mcp/tools.js.map +1 -1
  129. package/dist/resources/workflows/plan-implement-review.md +8 -0
  130. package/dist/resources/workflows/research-verify.md +6 -0
  131. package/dist/resources/workflows/solo-developer.md +3 -0
  132. package/dist/server.d.ts.map +1 -1
  133. package/dist/server.js +1 -2
  134. package/dist/server.js.map +1 -1
  135. package/dist/server.test.js +4 -2
  136. package/dist/server.test.js.map +1 -1
  137. package/dist/types.d.ts +0 -24
  138. package/dist/types.d.ts.map +1 -1
  139. package/dist/utils/prompts.js +2 -2
  140. package/dist/utils/prompts.js.map +1 -1
  141. package/dist/utils/resources.d.ts +28 -0
  142. package/dist/utils/resources.d.ts.map +1 -0
  143. package/dist/utils/resources.js +54 -0
  144. package/dist/utils/resources.js.map +1 -0
  145. package/dist/utils/workflow-advisor.d.ts.map +1 -1
  146. package/dist/utils/workflow-advisor.js +17 -27
  147. package/dist/utils/workflow-advisor.js.map +1 -1
  148. package/dist/utils/workflows.d.ts.map +1 -1
  149. package/dist/utils/workflows.js +6 -2
  150. package/dist/utils/workflows.js.map +1 -1
  151. package/package.json +5 -3
  152. package/resources/workflows/plan-implement-review.md +8 -0
  153. package/resources/workflows/research-verify.md +6 -0
  154. package/resources/workflows/solo-developer.md +3 -0
  155. package/dist/analyzers/detect-apis.d.ts +0 -19
  156. package/dist/analyzers/detect-apis.d.ts.map +0 -1
  157. package/dist/analyzers/detect-apis.js +0 -250
  158. package/dist/analyzers/detect-apis.js.map +0 -1
  159. package/dist/analyzers/messaging-analyzer.d.ts +0 -17
  160. package/dist/analyzers/messaging-analyzer.d.ts.map +0 -1
  161. package/dist/analyzers/messaging-analyzer.js +0 -229
  162. package/dist/analyzers/messaging-analyzer.js.map +0 -1
  163. package/dist/core/adapters/vault-storage.d.ts +0 -16
  164. package/dist/core/adapters/vault-storage.d.ts.map +0 -1
  165. package/dist/core/adapters/vault-storage.js +0 -77
  166. package/dist/core/adapters/vault-storage.js.map +0 -1
  167. package/dist/core/graph.d.ts +0 -35
  168. package/dist/core/graph.d.ts.map +0 -1
  169. package/dist/core/graph.js +0 -281
  170. package/dist/core/graph.js.map +0 -1
  171. package/dist/generators/diff-context.d.ts +0 -6
  172. package/dist/generators/diff-context.d.ts.map +0 -1
  173. package/dist/generators/diff-context.js +0 -70
  174. package/dist/generators/diff-context.js.map +0 -1
  175. package/dist/generators/map-generator.d.ts +0 -15
  176. package/dist/generators/map-generator.d.ts.map +0 -1
  177. package/dist/generators/map-generator.js +0 -514
  178. package/dist/generators/map-generator.js.map +0 -1
  179. package/dist/generators/map-generator.test.d.ts +0 -2
  180. package/dist/generators/map-generator.test.d.ts.map +0 -1
  181. package/dist/generators/map-generator.test.js +0 -147
  182. package/dist/generators/map-generator.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @module utils/resources
3
+ * Locates files under `resources/`, which sit outside the compiled output.
4
+ *
5
+ * `tsc` emits only JS, so `resources/` is copied into `dist/` by
6
+ * `scripts/copy-resources.mjs` at build time. That means the directory's position
7
+ * relative to a module differs depending on how the code is running: from
8
+ * `dist/utils` it is one level up, but from `src/utils` under vitest it is two.
9
+ * Resolving a single hard-coded relative path therefore works in one context and
10
+ * silently finds nothing in the other — and because the loaders treat a missing
11
+ * directory as "no resources", the failure is invisible.
12
+ *
13
+ * So candidates are tried in order and the first that exists wins.
14
+ */
15
+ /**
16
+ * Resolves a path under `resources/`, or null when it cannot be found.
17
+ *
18
+ * @param moduleDir - The calling module's directory (`path.dirname(fileURLToPath(import.meta.url))`).
19
+ * @param segments - Path segments below `resources/`, e.g. `'graphs'`.
20
+ */
21
+ export declare function resolveResourcePath(moduleDir: string, ...segments: string[]): Promise<string | null>;
22
+ /**
23
+ * The paths {@link resolveResourcePath} will try, in order. Exported so a caller
24
+ * that needs a path whether or not it exists yet (a writer, say) can pick the
25
+ * first, and so tests can assert the layouts covered.
26
+ */
27
+ export declare function resourcePathCandidates(moduleDir: string, ...segments: string[]): string[];
28
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/utils/resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,GAAG,QAAQ,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUxB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAazF"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @module utils/resources
3
+ * Locates files under `resources/`, which sit outside the compiled output.
4
+ *
5
+ * `tsc` emits only JS, so `resources/` is copied into `dist/` by
6
+ * `scripts/copy-resources.mjs` at build time. That means the directory's position
7
+ * relative to a module differs depending on how the code is running: from
8
+ * `dist/utils` it is one level up, but from `src/utils` under vitest it is two.
9
+ * Resolving a single hard-coded relative path therefore works in one context and
10
+ * silently finds nothing in the other — and because the loaders treat a missing
11
+ * directory as "no resources", the failure is invisible.
12
+ *
13
+ * So candidates are tried in order and the first that exists wins.
14
+ */
15
+ import * as fs from 'node:fs/promises';
16
+ import * as path from 'node:path';
17
+ /**
18
+ * Resolves a path under `resources/`, or null when it cannot be found.
19
+ *
20
+ * @param moduleDir - The calling module's directory (`path.dirname(fileURLToPath(import.meta.url))`).
21
+ * @param segments - Path segments below `resources/`, e.g. `'graphs'`.
22
+ */
23
+ export async function resolveResourcePath(moduleDir, ...segments) {
24
+ for (const candidate of resourcePathCandidates(moduleDir, ...segments)) {
25
+ try {
26
+ await fs.stat(candidate);
27
+ return candidate;
28
+ }
29
+ catch {
30
+ // Try the next layout.
31
+ }
32
+ }
33
+ return null;
34
+ }
35
+ /**
36
+ * The paths {@link resolveResourcePath} will try, in order. Exported so a caller
37
+ * that needs a path whether or not it exists yet (a writer, say) can pick the
38
+ * first, and so tests can assert the layouts covered.
39
+ */
40
+ export function resourcePathCandidates(moduleDir, ...segments) {
41
+ return [
42
+ // Two levels up. From src/utils or dist/utils that is the package root's
43
+ // `resources/`, which is what both the source tree and a published install
44
+ // have, since package.json ships `resources` alongside `dist`.
45
+ path.resolve(moduleDir, '..', '..', 'resources', ...segments),
46
+ // Three levels up, for a module one directory deeper, e.g. src/core/foo.
47
+ path.resolve(moduleDir, '..', '..', '..', 'resources', ...segments),
48
+ // One level up. From dist/utils this is `dist/resources/`, the copy that
49
+ // `scripts/copy-resources.mjs` makes — reached only when the package root has
50
+ // no `resources/`, so it is a fallback rather than the primary path.
51
+ path.resolve(moduleDir, '..', 'resources', ...segments),
52
+ ];
53
+ }
54
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/utils/resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,GAAG,QAAkB;IAErB,KAAK,MAAM,SAAS,IAAI,sBAAsB,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB,EAAE,GAAG,QAAkB;IAC7E,OAAO;QACL,yEAAyE;QACzE,2EAA2E;QAC3E,+DAA+D;QAC/D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;QAC7D,yEAAyE;QACzE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;QACnE,yEAAyE;QACzE,8EAA8E;QAC9E,qEAAqE;QACrE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;KACxD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-advisor.d.ts","sourceRoot":"","sources":["../../src/utils/workflow-advisor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;IACpF,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAmBD;;GAEG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,QAAQ,EAAE,GAChB,OAAO,CAAC,kBAAkB,CAAC,CA8D7B"}
1
+ {"version":3,"file":"workflow-advisor.d.ts","sourceRoot":"","sources":["../../src/utils/workflow-advisor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;IACpF,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAmBD;;GAEG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,QAAQ,EAAE,GAChB,OAAO,CAAC,kBAAkB,CAAC,CA4D7B"}
@@ -27,30 +27,17 @@ async function loadTemplateContent(templateId, fallback) {
27
27
  */
28
28
  export async function suggestWorkflow(description, repos) {
29
29
  const repoNames = repos.map((r) => r.name);
30
- const descLower = (description || '').toLowerCase();
31
- const isComplexWord = descLower.includes('refactor') ||
32
- descLower.includes('migrate') ||
33
- descLower.includes('architecture') ||
34
- descLower.includes('design') ||
35
- descLower.includes('rewrite') ||
36
- descLower.includes('optimize') ||
37
- descLower.includes('performance') ||
38
- descLower.includes('security') ||
39
- descLower.includes('database') ||
40
- descLower.includes('schema') ||
41
- descLower.includes('break') ||
42
- descLower.includes('major');
43
- const isSimpleWord = descLower.includes('fix') ||
44
- descLower.includes('bug') ||
45
- descLower.includes('typo') ||
46
- descLower.includes('tweak') ||
47
- descLower.includes('color') ||
48
- descLower.includes('alignment') ||
49
- descLower.includes('comment') ||
50
- descLower.includes('readme') ||
51
- descLower.includes('test') ||
52
- descLower.includes('doc');
53
- if (repos.length > 2 || isComplexWord) {
30
+ // Whole words, not substrings. `includes('fix')` matched "prefix" and
31
+ // "suffix", and `includes('design')` matched "the design doc" — so "Add a
32
+ // prefix to the docker tag" was classified as a simple task by accident.
33
+ const words = new Set((description || '').toLowerCase().match(/[a-z0-9]+/g) ?? []);
34
+ const mentions = (...candidates) => candidates.some((word) => words.has(word));
35
+ const isComplexWord = mentions('refactor', 'refactoring', 'migrate', 'migration', 'architecture', 'architectural', 'rewrite', 'optimize', 'optimise', 'performance', 'security', 'database', 'schema', 'breaking', 'major');
36
+ const isSimpleWord = mentions('fix', 'bug', 'typo', 'tweak', 'color', 'colour', 'alignment', 'comment', 'readme', 'doc', 'docs', 'rename', 'wording');
37
+ // Repo count no longer overrides an explicit signal. Coordinating several
38
+ // repos is real work, but a typo across three repos is still a typo — and the
39
+ // old `repos.length > 2 ||` sent it to the heaviest tier.
40
+ if (isComplexWord || (repos.length > 2 && !isSimpleWord)) {
54
41
  const content = await loadTemplateContent('plan-implement-review', `# Team Strategy: Plan, Implement, Review\n\nThis workspace involves complex changes across multiple projects: ${repoNames.join(', ')}.\n\n## Roles & Coordination\n1. **Lead Planner**: Analyzes requirements and details a step-by-step design plan in \`implementation_plan.md\`.\n2. **Code Implementer**: Executes modifications project-by-project following the approved design.\n3. **Code Reviewer**: Runs testing/verification and approves before completion.\n\nPlease follow these roles strictly.`);
55
42
  return {
56
43
  difficulty: 'complex',
@@ -58,13 +45,16 @@ export async function suggestWorkflow(description, repos) {
58
45
  rationale: `This task spans multiple repositories or involves architectural components (${repoNames.join(', ')}). A structured Plan-Implement-Review strategy is recommended to coordinate changes carefully.`,
59
46
  customInstructions: content,
60
47
  };
48
+ // A localized change stays localized whether it touches one repo or several,
49
+ // so this no longer requires `repos.length === 1`.
61
50
  }
62
- else if (repos.length === 1 && isSimpleWord && !isComplexWord) {
63
- const content = await loadTemplateContent('solo-developer', `# Team Strategy: Solo Developer\n\nThis task is a localized fix in ${repoNames[0] || 'the project'}.\n\n## Guidelines\n- Direct implementation by the main agent.\n- Run tests and compile code immediately.\n- Avoid spawning subagents to reduce overhead.`);
51
+ else if (isSimpleWord) {
52
+ const where = repoNames.length === 1 ? repoNames[0] : repoNames.join(', ') || 'the project';
53
+ const content = await loadTemplateContent('solo-developer', `# Team Strategy: Solo Developer\n\nThis task is a localized fix in ${where}.\n\n## Guidelines\n- Direct implementation by the main agent.\n- Run tests and compile code immediately.\n- Avoid spawning subagents to reduce overhead.`);
64
54
  return {
65
55
  difficulty: 'simple',
66
56
  suggestedWorkflowId: 'solo-developer',
67
- rationale: `This is a localized fix/tweak within a single repository (${repoNames.join(', ')}). A Solo Developer pattern minimizes overhead and speeds up the modification.`,
57
+ rationale: `This is a localized fix/tweak in ${where}. A Solo Developer pattern minimizes overhead and speeds up the modification.`,
68
58
  customInstructions: content,
69
59
  };
70
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-advisor.js","sourceRoot":"","sources":["../../src/utils/workflow-advisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-advisor.js","sourceRoot":"","sources":["../../src/utils/workflow-advisor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/utils/workflows.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AA6ED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyBxE;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2CxH;AAED,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtE"}
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/utils/workflows.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AA6ED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA4BxE;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2CxH;AAED,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtE"}
@@ -2,6 +2,7 @@ import * as fs from 'node:fs/promises';
2
2
  import * as path from 'node:path';
3
3
  import * as os from 'node:os';
4
4
  import { fileURLToPath } from 'node:url';
5
+ import { resolveResourcePath } from './resources.js';
5
6
  import { slugify } from './slug.js';
6
7
  const __filename = fileURLToPath(import.meta.url);
7
8
  const __dirname = path.dirname(__filename);
@@ -80,7 +81,10 @@ async function loadTemplatesFromDir(dirPath, custom) {
80
81
  return templates;
81
82
  }
82
83
  export async function getWorkflowTemplates() {
83
- const builtInDir = path.resolve(__dirname, '../resources/workflows');
84
+ // `resources/` is copied into dist at build time, so its position relative to
85
+ // this module differs between a built run and a source-tree run; a single
86
+ // hard-coded relative path silently finds nothing in one of them.
87
+ const builtInDir = await resolveResourcePath(__dirname, 'workflows');
84
88
  const userDir = path.join(os.homedir(), '.nexusflow', 'workflows');
85
89
  // Ensure user custom workflows directory exists so they can find it easily
86
90
  try {
@@ -88,7 +92,7 @@ export async function getWorkflowTemplates() {
88
92
  }
89
93
  catch { }
90
94
  const [builtInTemplates, userTemplates] = await Promise.all([
91
- loadTemplatesFromDir(builtInDir, false),
95
+ builtInDir ? loadTemplatesFromDir(builtInDir, false) : Promise.resolve([]),
92
96
  loadTemplatesFromDir(userDir, true)
93
97
  ]);
94
98
  // Merge templates (user custom templates override built-in if they share the same ID)
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/utils/workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/utils/workflows.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrpatronz/nexusflow",
3
- "version": "1.9.0",
3
+ "version": "2.0.0",
4
4
  "description": "Combine multiple repos into a workspace with rich AI assistant context",
5
5
  "type": "module",
6
6
  "repository": {
@@ -12,14 +12,16 @@
12
12
  "nexusflow": "dist/index.js"
13
13
  },
14
14
  "files": [
15
- "dist"
15
+ "dist",
16
+ "resources"
16
17
  ],
17
18
  "publishConfig": {
18
19
  "access": "public",
19
20
  "provenance": true
20
21
  },
21
22
  "scripts": {
22
- "build": "tsc && npm run build --prefix gui",
23
+ "build": "tsc && node scripts/copy-resources.mjs && npm run build --prefix gui",
24
+ "build:backend": "tsc && node scripts/copy-resources.mjs",
23
25
  "version": "node scripts/sync-version.mjs && git add -A",
24
26
  "dev": "tsc --watch",
25
27
  "start": "node dist/index.js",
@@ -0,0 +1,8 @@
1
+ # Team Cooperation Guidelines
2
+
3
+ You are the lead developer. You must coordinate a Plan-Implement-Review loop to complete the task:
4
+
5
+ 1. **Research & Plan**: Research the requirements and codebase first. Create a plan (`implementation_plan.md`) describing the proposed changes.
6
+ 2. **Implement**: Define a `Code_Implementer` subagent equipped with code editing and terminal tools. Send them the plan and instruct them to write the changes.
7
+ 3. **Review**: Once implemented, define a `Code_Reviewer` subagent to run verification tests and review the changes for correctness.
8
+ 4. **Loop**: If the reviewer finds bugs or test failures, send the feedback back to the implementer and repeat the cycle until the changes are approved.
@@ -0,0 +1,6 @@
1
+ # Team Cooperation Guidelines
2
+
3
+ You are the lead investigator. You must coordinate a research-heavy cycle:
4
+
5
+ 1. **Deep Research**: Define a `Research_Specialist` subagent to scan the codebase, find dependencies, and write a thorough context guide outlining how the system works.
6
+ 2. **Test-Driven Implement**: Write test suites first based on the research findings, then spawn a developer subagent to code until all tests pass successfully.
@@ -0,0 +1,3 @@
1
+ # Direct Execution Guidelines
2
+
3
+ You are a solo developer. Do not spawn subagents. Research, plan, edit, and verify all code changes yourself. Focus on delivering direct, simple edits to target files.
@@ -1,19 +0,0 @@
1
- /**
2
- * @module analyzers/detect-apis
3
- * Detects API endpoints in a repository by scanning for OpenAPI/Swagger files,
4
- * route patterns in common frameworks, and gRPC proto files.
5
- */
6
- import type { ApiEndpoint } from '../types.js';
7
- /**
8
- * Detects API endpoints in a repository.
9
- *
10
- * Strategies (in order):
11
- * 1. Look for OpenAPI/Swagger spec files (JSON/YAML)
12
- * 2. Scan source files for Express/Fastify/ASP.NET route patterns
13
- * 3. Look for gRPC .proto files
14
- *
15
- * @param repoPath - Absolute path to the repository root.
16
- * @returns Array of detected {@link ApiEndpoint} objects.
17
- */
18
- export declare function detectApis(repoPath: string): Promise<ApiEndpoint[]>;
19
- //# sourceMappingURL=detect-apis.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detect-apis.d.ts","sourceRoot":"","sources":["../../src/analyzers/detect-apis.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAczE"}
@@ -1,250 +0,0 @@
1
- /**
2
- * @module analyzers/detect-apis
3
- * Detects API endpoints in a repository by scanning for OpenAPI/Swagger files,
4
- * route patterns in common frameworks, and gRPC proto files.
5
- */
6
- import * as fs from 'node:fs/promises';
7
- import * as path from 'node:path';
8
- import { globby } from 'globby';
9
- /**
10
- * Detects API endpoints in a repository.
11
- *
12
- * Strategies (in order):
13
- * 1. Look for OpenAPI/Swagger spec files (JSON/YAML)
14
- * 2. Scan source files for Express/Fastify/ASP.NET route patterns
15
- * 3. Look for gRPC .proto files
16
- *
17
- * @param repoPath - Absolute path to the repository root.
18
- * @returns Array of detected {@link ApiEndpoint} objects.
19
- */
20
- export async function detectApis(repoPath) {
21
- const endpoints = [];
22
- // 1. OpenAPI/Swagger files
23
- const openApiEndpoints = await scanOpenApiFiles(repoPath);
24
- endpoints.push(...openApiEndpoints);
25
- // 2. Route patterns in source files (only if no OpenAPI found)
26
- if (endpoints.length === 0) {
27
- const routeEndpoints = await scanRoutePatterns(repoPath);
28
- endpoints.push(...routeEndpoints);
29
- }
30
- return endpoints;
31
- }
32
- /** Looks for OpenAPI/Swagger spec files and extracts paths. */
33
- async function scanOpenApiFiles(repoPath) {
34
- const candidates = [
35
- 'swagger.json', 'swagger.yaml', 'swagger.yml',
36
- 'openapi.json', 'openapi.yaml', 'openapi.yml',
37
- 'api-spec.json', 'api-spec.yaml', 'api-spec.yml',
38
- ];
39
- const endpoints = [];
40
- for (const filename of candidates) {
41
- const filePath = path.join(repoPath, filename);
42
- try {
43
- const content = await fs.readFile(filePath, 'utf-8');
44
- if (filename.endsWith('.json')) {
45
- const spec = JSON.parse(content);
46
- const paths = spec.paths;
47
- if (paths) {
48
- for (const [routePath, methods] of Object.entries(paths)) {
49
- for (const method of Object.keys(methods)) {
50
- if (['get', 'post', 'put', 'patch', 'delete', 'head', 'options'].includes(method)) {
51
- endpoints.push({
52
- method: method.toUpperCase(),
53
- path: routePath,
54
- source: filename,
55
- });
56
- }
57
- }
58
- }
59
- }
60
- }
61
- }
62
- catch {
63
- // File doesn't exist or can't be parsed — skip
64
- }
65
- }
66
- return endpoints;
67
- }
68
- /** Scans C# files for controllers and Minimal APIs. */
69
- function extractCsEndpoints(content, relPath) {
70
- const endpoints = [];
71
- // 1. Controller style routing
72
- const classRegex = /class\s+(\w+Controller)/gi;
73
- const classes = [];
74
- let classMatch;
75
- while ((classMatch = classRegex.exec(content)) !== null) {
76
- classes.push({
77
- name: classMatch[1],
78
- index: classMatch.index,
79
- });
80
- }
81
- const routeAttrRegex = /\[Route\s*\(\s*"([^"]*)"\s*\)\]/gi;
82
- const classRoutes = [];
83
- let routeMatch;
84
- while ((routeMatch = routeAttrRegex.exec(content)) !== null) {
85
- classRoutes.push({
86
- route: routeMatch[1],
87
- index: routeMatch.index,
88
- });
89
- }
90
- const versionAttrRegex = /\[ApiVersion\s*\(\s*["']?([^"'\s\)]+)["']?\s*\)\]/gi;
91
- const apiVersions = [];
92
- let versionMatch;
93
- while ((versionMatch = versionAttrRegex.exec(content)) !== null) {
94
- apiVersions.push({
95
- version: versionMatch[1],
96
- index: versionMatch.index,
97
- });
98
- }
99
- const controllerRoutes = [];
100
- for (const cr of classRoutes) {
101
- const targetClass = classes.find(c => c.index > cr.index);
102
- if (targetClass) {
103
- const targetVersion = apiVersions.find(v => v.index > cr.index - 100 && v.index < targetClass.index);
104
- controllerRoutes.push({
105
- route: cr.route,
106
- controllerName: targetClass.name,
107
- version: targetVersion?.version,
108
- classIndex: targetClass.index,
109
- });
110
- }
111
- }
112
- const httpAttrRegex = /\[Http(Get|Post|Put|Patch|Delete)(?:\s*\(\s*"([^"]*)"\s*\))?\]/gi;
113
- let httpMatch;
114
- while ((httpMatch = httpAttrRegex.exec(content)) !== null) {
115
- const method = httpMatch[1].toUpperCase();
116
- const actionRoute = httpMatch[2] || '';
117
- const index = httpMatch.index;
118
- let matchedController = controllerRoutes[0];
119
- for (const cr of controllerRoutes) {
120
- if (cr.classIndex < index) {
121
- matchedController = cr;
122
- }
123
- else {
124
- break;
125
- }
126
- }
127
- let resolvedRoute = '';
128
- if (matchedController) {
129
- let baseRoute = matchedController.route;
130
- const controllerBaseName = matchedController.controllerName.replace(/Controller$/i, '');
131
- baseRoute = baseRoute.replace(/\[controller\]/gi, controllerBaseName);
132
- const ver = matchedController.version;
133
- const verReplacement = ver ? 'v' + ver.split('.')[0] : 'v1';
134
- baseRoute = baseRoute.replace(/\{version(:apiVersion)?\}/gi, verReplacement);
135
- if (actionRoute) {
136
- resolvedRoute = baseRoute.endsWith('/') || actionRoute.startsWith('/')
137
- ? `${baseRoute}${actionRoute}`
138
- : `${baseRoute}/${actionRoute}`;
139
- }
140
- else {
141
- resolvedRoute = baseRoute;
142
- }
143
- }
144
- else {
145
- resolvedRoute = actionRoute;
146
- }
147
- resolvedRoute = resolvedRoute
148
- .replace(/\/+/g, '/')
149
- .replace(/:[a-zA-Z0-9\?]+/g, '');
150
- if (resolvedRoute && !resolvedRoute.startsWith('/')) {
151
- resolvedRoute = '/' + resolvedRoute;
152
- }
153
- if (resolvedRoute) {
154
- endpoints.push({
155
- method,
156
- path: resolvedRoute,
157
- source: relPath,
158
- });
159
- }
160
- }
161
- // 2. Minimal API style routing
162
- const groupRegex = /(?:const|var|let)?\s*(\w+)\s*=\s*(?:\w+)\.MapGroup\s*\(\s*"([^"]+)"/gi;
163
- const groups = new Map();
164
- let groupMatch;
165
- while ((groupMatch = groupRegex.exec(content)) !== null) {
166
- groups.set(groupMatch[1], groupMatch[2]);
167
- }
168
- const minimalApiRegex = /\b(\w+)?\.?Map(Get|Post|Put|Patch|Delete)\s*\(\s*"([^"]+)"/gi;
169
- let minMatch;
170
- while ((minMatch = minimalApiRegex.exec(content)) !== null) {
171
- const varName = minMatch[1];
172
- const method = minMatch[2].toUpperCase();
173
- const actionRoute = minMatch[3];
174
- let fullPath = actionRoute;
175
- if (varName && groups.has(varName)) {
176
- const groupPath = groups.get(varName);
177
- fullPath = groupPath.endsWith('/') || actionRoute.startsWith('/')
178
- ? `${groupPath}${actionRoute}`
179
- : `${groupPath}/${actionRoute}`;
180
- }
181
- fullPath = fullPath
182
- .replace(/\/+/g, '/')
183
- .replace(/:[a-zA-Z0-9\?]+/g, '');
184
- if (fullPath && !fullPath.startsWith('/')) {
185
- fullPath = '/' + fullPath;
186
- }
187
- if (fullPath) {
188
- endpoints.push({
189
- method,
190
- path: fullPath,
191
- source: relPath,
192
- });
193
- }
194
- }
195
- return endpoints;
196
- }
197
- /** Scans source files for common route patterns recursively using globby. */
198
- async function scanRoutePatterns(repoPath) {
199
- const endpoints = [];
200
- const routeRegex = /\.(get|post|put|patch|delete)\s*\(\s*['"`]([^'"`]+)['"`]/gi;
201
- try {
202
- const files = await globby(['**/*.ts', '**/*.js', '**/*.cs', '**/*.py'], {
203
- cwd: repoPath,
204
- absolute: true,
205
- ignore: ['**/node_modules/**', '**/bin/**', '**/obj/**', '**/dist/**', '**/out/**', '**/.git/**'],
206
- });
207
- for (const file of files) {
208
- try {
209
- const stat = await fs.stat(file);
210
- if (!stat.isFile() || stat.size > 100_000)
211
- continue; // Skip large files
212
- const content = await fs.readFile(file, 'utf-8');
213
- const relPath = path.relative(repoPath, file);
214
- if (file.endsWith('.cs')) {
215
- endpoints.push(...extractCsEndpoints(content, relPath));
216
- }
217
- else {
218
- // Express/Fastify/Hono/etc style routes
219
- let match;
220
- routeRegex.lastIndex = 0;
221
- while ((match = routeRegex.exec(content)) !== null) {
222
- endpoints.push({
223
- method: match[1].toUpperCase(),
224
- path: match[2],
225
- source: relPath,
226
- });
227
- }
228
- }
229
- }
230
- catch {
231
- continue;
232
- }
233
- }
234
- }
235
- catch {
236
- // Ignore errors
237
- }
238
- // De-duplicate endpoints
239
- const seen = new Set();
240
- const uniqueEndpoints = [];
241
- for (const ep of endpoints) {
242
- const key = `${ep.method}:${ep.path}`;
243
- if (!seen.has(key)) {
244
- seen.add(key);
245
- uniqueEndpoints.push(ep);
246
- }
247
- }
248
- return uniqueEndpoints;
249
- }
250
- //# sourceMappingURL=detect-apis.js.map