@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.
- package/dist/agent/ProviderRegistry.d.ts +12 -1
- package/dist/agent/ProviderRegistry.d.ts.map +1 -1
- package/dist/agent/ProviderRegistry.js.map +1 -1
- package/dist/agent/ProviderRegistry.test.js +1 -0
- package/dist/agent/ProviderRegistry.test.js.map +1 -1
- package/dist/agent/adapters.d.ts +14 -0
- package/dist/agent/adapters.d.ts.map +1 -1
- package/dist/agent/adapters.js +39 -4
- package/dist/agent/adapters.js.map +1 -1
- package/dist/agent/adapters.test.d.ts +2 -0
- package/dist/agent/adapters.test.d.ts.map +1 -0
- package/dist/agent/adapters.test.js +49 -0
- package/dist/agent/adapters.test.js.map +1 -0
- package/dist/agent/cliAvailability.d.ts +48 -0
- package/dist/agent/cliAvailability.d.ts.map +1 -0
- package/dist/agent/cliAvailability.js +112 -0
- package/dist/agent/cliAvailability.js.map +1 -0
- package/dist/agent/cliAvailability.test.d.ts +2 -0
- package/dist/agent/cliAvailability.test.d.ts.map +1 -0
- package/dist/agent/cliAvailability.test.js +105 -0
- package/dist/agent/cliAvailability.test.js.map +1 -0
- package/dist/analyzers/detect-deps.d.ts.map +1 -1
- package/dist/analyzers/detect-deps.js +16 -19
- package/dist/analyzers/detect-deps.js.map +1 -1
- package/dist/analyzers/index.d.ts +0 -2
- package/dist/analyzers/index.d.ts.map +1 -1
- package/dist/analyzers/index.js +6 -9
- package/dist/analyzers/index.js.map +1 -1
- package/dist/commands/commands.test.js +4 -3
- package/dist/commands/commands.test.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/knowledge.d.ts +10 -0
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +27 -1
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/knowledge.test.d.ts +2 -0
- package/dist/commands/knowledge.test.d.ts.map +1 -0
- package/dist/commands/knowledge.test.js +77 -0
- package/dist/commands/knowledge.test.js.map +1 -0
- package/dist/commands/refresh.d.ts +2 -4
- package/dist/commands/refresh.d.ts.map +1 -1
- package/dist/commands/refresh.js +4 -20
- package/dist/commands/refresh.js.map +1 -1
- package/dist/core/adapters/registry.d.ts.map +1 -1
- package/dist/core/adapters/registry.js +8 -3
- package/dist/core/adapters/registry.js.map +1 -1
- package/dist/core/adapters/storage.test.js +5 -24
- package/dist/core/adapters/storage.test.js.map +1 -1
- package/dist/core/analysis-cache.d.ts +15 -8
- package/dist/core/analysis-cache.d.ts.map +1 -1
- package/dist/core/analysis-cache.js +61 -10
- package/dist/core/analysis-cache.js.map +1 -1
- package/dist/core/analysis-cache.test.js +17 -4
- package/dist/core/analysis-cache.test.js.map +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +5 -4
- package/dist/core/config.js.map +1 -1
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +9 -5
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/knowledge.d.ts +14 -4
- package/dist/core/knowledge.d.ts.map +1 -1
- package/dist/core/knowledge.js +64 -14
- package/dist/core/knowledge.js.map +1 -1
- package/dist/core/knowledge.test.js +54 -2
- package/dist/core/knowledge.test.js.map +1 -1
- package/dist/core/locks.d.ts +43 -0
- package/dist/core/locks.d.ts.map +1 -0
- package/dist/core/locks.js +102 -0
- package/dist/core/locks.js.map +1 -0
- package/dist/core/locks.test.d.ts +2 -0
- package/dist/core/locks.test.d.ts.map +1 -0
- package/dist/core/locks.test.js +95 -0
- package/dist/core/locks.test.js.map +1 -0
- package/dist/core/ports/storage.d.ts +3 -3
- package/dist/core/ports/storage.d.ts.map +1 -1
- package/dist/core/refresh.d.ts +12 -13
- package/dist/core/refresh.d.ts.map +1 -1
- package/dist/core/refresh.js +14 -11
- package/dist/core/refresh.js.map +1 -1
- package/dist/core/refresh.test.js +17 -11
- package/dist/core/refresh.test.js.map +1 -1
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +2 -65
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/sync.js +3 -3
- package/dist/core/sync.js.map +1 -1
- package/dist/core/worktree.js +2 -2
- package/dist/core/worktree.js.map +1 -1
- package/dist/core/worktree.test.js +2 -2
- package/dist/core/worktree.test.js.map +1 -1
- package/dist/generators/base.d.ts +31 -2
- package/dist/generators/base.d.ts.map +1 -1
- package/dist/generators/base.js +174 -238
- package/dist/generators/base.js.map +1 -1
- package/dist/generators/base.test.js +231 -24
- package/dist/generators/base.test.js.map +1 -1
- package/dist/generators/claude.d.ts +19 -5
- package/dist/generators/claude.d.ts.map +1 -1
- package/dist/generators/claude.js +33 -11
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/index.d.ts +10 -9
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +103 -118
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/plan-generator.d.ts.map +1 -1
- package/dist/generators/plan-generator.js +217 -193
- package/dist/generators/plan-generator.js.map +1 -1
- package/dist/generators/plan-generator.test.d.ts +2 -0
- package/dist/generators/plan-generator.test.d.ts.map +1 -0
- package/dist/generators/plan-generator.test.js +217 -0
- package/dist/generators/plan-generator.test.js.map +1 -0
- package/dist/gui/assets/{DashboardPage-C3NH97y2.js → DashboardPage-HNC3-OP0.js} +1 -1
- package/dist/gui/assets/{GettingStartedPage-og-Kv7Sm.js → GettingStartedPage-Dguoya_Z.js} +1 -1
- package/dist/gui/assets/{ProjectsPage-COqqadEr.js → ProjectsPage-DVR4j4sw.js} +1 -1
- package/dist/gui/assets/{ScaffoldRepoInline-DRipQsos.js → ScaffoldRepoInline-D-2ZeuDK.js} +1 -1
- package/dist/gui/assets/{SettingsPage-CpU3V9oU.js → SettingsPage-Bauo77q3.js} +1 -1
- package/dist/gui/assets/{StartWorkPage-DIND0hJy.js → StartWorkPage-DvuFEa5Y.js} +1 -1
- package/dist/gui/assets/{StrategiesPage-6LWOnKdk.js → StrategiesPage-Cizm0GWk.js} +1 -1
- package/dist/gui/assets/{WorkspacesPage-BUqgOhuy.js → WorkspacesPage-DYOVfZqy.js} +1 -1
- package/dist/gui/assets/{index-CyYbQwRf.js → index-BqeoAIB1.js} +6 -6
- package/dist/gui/index.html +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +11 -15
- package/dist/mcp/tools.js.map +1 -1
- package/dist/resources/workflows/plan-implement-review.md +8 -0
- package/dist/resources/workflows/research-verify.md +6 -0
- package/dist/resources/workflows/solo-developer.md +3 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -2
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +4 -2
- package/dist/server.test.js.map +1 -1
- package/dist/types.d.ts +0 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/prompts.js +2 -2
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/resources.d.ts +28 -0
- package/dist/utils/resources.d.ts.map +1 -0
- package/dist/utils/resources.js +54 -0
- package/dist/utils/resources.js.map +1 -0
- package/dist/utils/workflow-advisor.d.ts.map +1 -1
- package/dist/utils/workflow-advisor.js +17 -27
- package/dist/utils/workflow-advisor.js.map +1 -1
- package/dist/utils/workflows.d.ts.map +1 -1
- package/dist/utils/workflows.js +6 -2
- package/dist/utils/workflows.js.map +1 -1
- package/package.json +5 -3
- package/resources/workflows/plan-implement-review.md +8 -0
- package/resources/workflows/research-verify.md +6 -0
- package/resources/workflows/solo-developer.md +3 -0
- package/dist/analyzers/detect-apis.d.ts +0 -19
- package/dist/analyzers/detect-apis.d.ts.map +0 -1
- package/dist/analyzers/detect-apis.js +0 -250
- package/dist/analyzers/detect-apis.js.map +0 -1
- package/dist/analyzers/messaging-analyzer.d.ts +0 -17
- package/dist/analyzers/messaging-analyzer.d.ts.map +0 -1
- package/dist/analyzers/messaging-analyzer.js +0 -229
- package/dist/analyzers/messaging-analyzer.js.map +0 -1
- package/dist/core/adapters/vault-storage.d.ts +0 -16
- package/dist/core/adapters/vault-storage.d.ts.map +0 -1
- package/dist/core/adapters/vault-storage.js +0 -77
- package/dist/core/adapters/vault-storage.js.map +0 -1
- package/dist/core/graph.d.ts +0 -35
- package/dist/core/graph.d.ts.map +0 -1
- package/dist/core/graph.js +0 -281
- package/dist/core/graph.js.map +0 -1
- package/dist/generators/diff-context.d.ts +0 -6
- package/dist/generators/diff-context.d.ts.map +0 -1
- package/dist/generators/diff-context.js +0 -70
- package/dist/generators/diff-context.js.map +0 -1
- package/dist/generators/map-generator.d.ts +0 -15
- package/dist/generators/map-generator.d.ts.map +0 -1
- package/dist/generators/map-generator.js +0 -514
- package/dist/generators/map-generator.js.map +0 -1
- package/dist/generators/map-generator.test.d.ts +0 -2
- package/dist/generators/map-generator.test.d.ts.map +0 -1
- package/dist/generators/map-generator.test.js +0 -147
- 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,
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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 (
|
|
63
|
-
const
|
|
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
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAUtD;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,QAAgB;IACrE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,KAAiB;IAEjB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,
|
|
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":"
|
|
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"}
|
package/dist/utils/workflows.js
CHANGED
|
@@ -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
|
-
|
|
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": "
|
|
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.
|
|
@@ -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
|