@swarmdo/cli 1.16.0 → 1.18.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 (40) hide show
  1. package/README.md +3 -1
  2. package/dist/src/affected/affected.d.ts +36 -0
  3. package/dist/src/affected/affected.d.ts.map +1 -0
  4. package/dist/src/affected/affected.js +78 -0
  5. package/dist/src/affected/affected.js.map +1 -0
  6. package/dist/src/commands/affected.d.ts +17 -0
  7. package/dist/src/commands/affected.d.ts.map +1 -0
  8. package/dist/src/commands/affected.js +100 -0
  9. package/dist/src/commands/affected.js.map +1 -0
  10. package/dist/src/commands/cycles.d.ts +14 -0
  11. package/dist/src/commands/cycles.d.ts.map +1 -0
  12. package/dist/src/commands/cycles.js +51 -0
  13. package/dist/src/commands/cycles.js.map +1 -0
  14. package/dist/src/commands/index.d.ts.map +1 -1
  15. package/dist/src/commands/index.js +9 -3
  16. package/dist/src/commands/index.js.map +1 -1
  17. package/dist/src/cycles/cycles.d.ts +37 -0
  18. package/dist/src/cycles/cycles.d.ts.map +1 -0
  19. package/dist/src/cycles/cycles.js +132 -0
  20. package/dist/src/cycles/cycles.js.map +1 -0
  21. package/dist/src/mcp-client.d.ts.map +1 -1
  22. package/dist/src/mcp-client.js +4 -0
  23. package/dist/src/mcp-client.js.map +1 -1
  24. package/dist/src/mcp-tools/affected-tools.d.ts +12 -0
  25. package/dist/src/mcp-tools/affected-tools.d.ts.map +1 -0
  26. package/dist/src/mcp-tools/affected-tools.js +36 -0
  27. package/dist/src/mcp-tools/affected-tools.js.map +1 -0
  28. package/dist/src/mcp-tools/cycles-tools.d.ts +11 -0
  29. package/dist/src/mcp-tools/cycles-tools.d.ts.map +1 -0
  30. package/dist/src/mcp-tools/cycles-tools.js +30 -0
  31. package/dist/src/mcp-tools/cycles-tools.js.map +1 -0
  32. package/dist/src/mcp-tools/index.d.ts +2 -0
  33. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  34. package/dist/src/mcp-tools/index.js +2 -0
  35. package/dist/src/mcp-tools/index.js.map +1 -1
  36. package/dist/src/mcp-tools/profiles.d.ts.map +1 -1
  37. package/dist/src/mcp-tools/profiles.js +2 -0
  38. package/dist/src/mcp-tools/profiles.js.map +1 -1
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![swarmdo](swarmdo/assets/brand/logo-full.svg)](https://swarmdo.com)
4
4
 
5
- [![npm version (swarmdo)](https://img.shields.io/badge/npx%20swarmdo-v1.16.0-cb3837?style=for-the-badge&logo=npm&logoColor=white)](https://github.com/SwarmDo/swarmdo/releases)
5
+ [![npm version (swarmdo)](https://img.shields.io/badge/npx%20swarmdo-v1.18.0-cb3837?style=for-the-badge&logo=npm&logoColor=white)](https://github.com/SwarmDo/swarmdo/releases)
6
6
  [![MIT License](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)](https://github.com/SwarmDo/swarmdo/blob/main/LICENSE)
7
7
  [![Website](https://img.shields.io/badge/swarmdo.com-e2a33c?style=for-the-badge&logoColor=black)](https://swarmdo.com)
8
8
  [![Star on GitHub](https://img.shields.io/github/stars/SwarmDo/swarmdo?style=for-the-badge&logo=github&color=gold)](https://github.com/SwarmDo/swarmdo)
@@ -285,6 +285,8 @@ The recent release train added a full day-to-day operations layer around the swa
285
285
  | `swarmdo sbom` | **Software Bill of Materials from the lockfile** — emit a CycloneDX (default) or SPDX JSON manifest of every dependency with version, purl, license, and integrity hash, for compliance/vuln tooling. `--spec spdx`, `-o sbom.json`, `--production`. Completes the env/license/sbom supply-chain trio. Deterministic |
286
286
  | `swarmdo apply` | **A forgiving `git apply`** — apply a unified diff with fuzzy context matching, so an agent's patch lands even when line numbers have drifted or a context line is slightly off, and reports exactly which hunks couldn't. `--dry-run` to preview, `--fuzz N` to tolerate more drift. Also an MCP tool (`apply_patch`). Deterministic |
287
287
  | `swarmdo hotspots` | **Change-risk hotspots from git history** — rank files by churn × recency × author-spread to surface the technical debt worth refactoring or testing, answered from data instead of a guess. `--since 90d`, `--by risk\|churn\|commits\|authors`, `--top N`, `--format json`. Pairs with `codegraph`; also an MCP tool (`hotspots`). Deterministic |
288
+ | `swarmdo affected` | **Run only the tests your change touches** — from a git diff, walk `codegraph`'s import graph to list every file (and test file) a change could break (reverse-dependency closure, nx/turbo/`jest --findRelatedTests` style). `--base main`, `--tests` (pipeable list), `--format json`. Also an MCP tool (`affected`). Deterministic |
289
+ | `swarmdo cycles` | **Find circular import dependencies** — an SCC scan over `codegraph`'s import graph surfaces the mutually-importing file groups (and self-imports) that cause temporal-dead-zone and `undefined`-export bugs, `madge --circular` style. `--ci` exits 1 on any cycle to gate a build; `--format json`. Also an MCP tool (`cycles`). Deterministic |
288
290
  | `swarmdo integrations` (alias `integrate`) | **Use swarmdo from Codex CLI, GitHub Copilot CLI, and pi** — one command wires AGENTS.md + each CLI's MCP config (idempotent, dry-run first, never touches your Claude Code setup) |
289
291
  | OpenRouter model pool | **Let swarms pick from any models you configure** — declare tier-mapped OpenRouter models in `swarmdo.config.json`; the router Thompson-samples among them per task and the execution layer dispatches the winner |
290
292
  | `swarmdo changelog` (alias `notes`) | **Release notes from conventional commits** — `--out NOTES.md` feeds `gh release create --notes-file` |
@@ -0,0 +1,36 @@
1
+ /**
2
+ * affected.ts — given changed files, compute the transitive set of files that
3
+ * (directly or indirectly) import them, and the minimal set of TEST files worth
4
+ * running. The deterministic core behind "only run what my change could break",
5
+ * à la `nx affected` / `jest --findRelatedTests` / `turbo --filter`.
6
+ *
7
+ * Composes codegraph's import graph: a change to X affects X, everything that
8
+ * imports X, everything that imports those, and so on (reverse-dependency
9
+ * closure). Pure — CodeIndex + changed paths in, affected/tests out; the git
10
+ * diff and index load live in ../commands/affected.ts, so it's fixture-testable.
11
+ */
12
+ import type { CodeIndex } from '../codegraph/codegraph.js';
13
+ /** Default matcher for test files (Jest/Vitest/Mocha conventions). */
14
+ export declare function isTestFile(path: string): boolean;
15
+ /** file it resolves to → files that import it (reverse of the import edges). Pure. */
16
+ export declare function reverseDeps(index: CodeIndex): Map<string, string[]>;
17
+ export interface AffectedOptions {
18
+ /** custom test-file matcher (default isTestFile) */
19
+ isTest?: (path: string) => boolean;
20
+ }
21
+ export interface AffectedResult {
22
+ /** every file transitively impacted, including the changed files (sorted) */
23
+ affected: string[];
24
+ /** the subset of `affected` that are test files (sorted) */
25
+ tests: string[];
26
+ /** changed files that the index knows nothing about (sorted) — may under-report */
27
+ unknown: string[];
28
+ }
29
+ /**
30
+ * Reverse-dependency closure from `changed` up the import graph. Deterministic:
31
+ * BFS over reverse edges, output sorted. A changed file not present anywhere in
32
+ * the index (never imported, declares nothing) is still reported as affected
33
+ * (it changed) but flagged in `unknown` since we can't see its dependents.
34
+ */
35
+ export declare function computeAffected(changed: string[], index: CodeIndex, opts?: AffectedOptions): AffectedResult;
36
+ //# sourceMappingURL=affected.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"affected.d.ts","sourceRoot":"","sources":["../../../src/affected/affected.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CASnE;AAED,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mFAAmF;IACnF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,GAAE,eAAoB,GAAG,cAAc,CA8B/G"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * affected.ts — given changed files, compute the transitive set of files that
3
+ * (directly or indirectly) import them, and the minimal set of TEST files worth
4
+ * running. The deterministic core behind "only run what my change could break",
5
+ * à la `nx affected` / `jest --findRelatedTests` / `turbo --filter`.
6
+ *
7
+ * Composes codegraph's import graph: a change to X affects X, everything that
8
+ * imports X, everything that imports those, and so on (reverse-dependency
9
+ * closure). Pure — CodeIndex + changed paths in, affected/tests out; the git
10
+ * diff and index load live in ../commands/affected.ts, so it's fixture-testable.
11
+ */
12
+ /** Default matcher for test files (Jest/Vitest/Mocha conventions). */
13
+ export function isTestFile(path) {
14
+ return /(^|\/)__tests__\//.test(path) || /\.(test|spec)\.[cm]?[jt]sx?$/.test(path);
15
+ }
16
+ /** file it resolves to → files that import it (reverse of the import edges). Pure. */
17
+ export function reverseDeps(index) {
18
+ const rev = new Map();
19
+ for (const e of index.imports) {
20
+ if (!e.resolved)
21
+ continue; // external/unresolved — no internal reverse edge
22
+ let importers = rev.get(e.resolved);
23
+ if (!importers) {
24
+ importers = [];
25
+ rev.set(e.resolved, importers);
26
+ }
27
+ if (!importers.includes(e.from))
28
+ importers.push(e.from);
29
+ }
30
+ return rev;
31
+ }
32
+ /**
33
+ * Reverse-dependency closure from `changed` up the import graph. Deterministic:
34
+ * BFS over reverse edges, output sorted. A changed file not present anywhere in
35
+ * the index (never imported, declares nothing) is still reported as affected
36
+ * (it changed) but flagged in `unknown` since we can't see its dependents.
37
+ */
38
+ export function computeAffected(changed, index, opts = {}) {
39
+ const isTest = opts.isTest ?? isTestFile;
40
+ const rev = reverseDeps(index);
41
+ // Files the index actually knows about (declares symbols or participates in imports).
42
+ const known = new Set();
43
+ for (const s of index.symbols)
44
+ known.add(s.file);
45
+ for (const e of index.imports) {
46
+ known.add(e.from);
47
+ if (e.resolved)
48
+ known.add(e.resolved);
49
+ }
50
+ const affected = new Set();
51
+ const queue = [];
52
+ for (const c of changed) {
53
+ if (!affected.has(c)) {
54
+ affected.add(c);
55
+ queue.push(c);
56
+ }
57
+ }
58
+ // BFS: for each affected file, add everyone who imports it.
59
+ while (queue.length > 0) {
60
+ const file = queue.shift();
61
+ const importers = rev.get(file);
62
+ if (!importers)
63
+ continue;
64
+ for (const imp of importers) {
65
+ if (!affected.has(imp)) {
66
+ affected.add(imp);
67
+ queue.push(imp);
68
+ }
69
+ }
70
+ }
71
+ const affectedList = [...affected].sort();
72
+ return {
73
+ affected: affectedList,
74
+ tests: affectedList.filter(isTest),
75
+ unknown: changed.filter((c) => !known.has(c)).sort(),
76
+ };
77
+ }
78
+ //# sourceMappingURL=affected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"affected.js","sourceRoot":"","sources":["../../../src/affected/affected.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `swarmdo affected` — from a git diff, list the files (and the test files)
3
+ * that a change could break, by walking codegraph's import graph. The "only run
4
+ * what my change touches" query, à la `nx affected` / `jest --findRelatedTests`.
5
+ *
6
+ * swarmdo affected # vs working tree (staged+unstaged)
7
+ * swarmdo affected --base main # vs a ref
8
+ * swarmdo affected --tests # just the test files to run
9
+ * swarmdo affected --tests --format json # feed a test runner
10
+ *
11
+ * Engine (../affected/affected.ts) is pure + tested; this captures the diff and
12
+ * loads (or builds) the index. Composes `codegraph`.
13
+ */
14
+ import type { Command } from '../types.js';
15
+ export declare const affectedCommand: Command;
16
+ export default affectedCommand;
17
+ //# sourceMappingURL=affected.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"affected.d.ts","sourceRoot":"","sources":["../../../src/commands/affected.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAgE1E,eAAO,MAAM,eAAe,EAAE,OAY7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * `swarmdo affected` — from a git diff, list the files (and the test files)
3
+ * that a change could break, by walking codegraph's import graph. The "only run
4
+ * what my change touches" query, à la `nx affected` / `jest --findRelatedTests`.
5
+ *
6
+ * swarmdo affected # vs working tree (staged+unstaged)
7
+ * swarmdo affected --base main # vs a ref
8
+ * swarmdo affected --tests # just the test files to run
9
+ * swarmdo affected --tests --format json # feed a test runner
10
+ *
11
+ * Engine (../affected/affected.ts) is pure + tested; this captures the diff and
12
+ * loads (or builds) the index. Composes `codegraph`.
13
+ */
14
+ import { execFileSync } from 'node:child_process';
15
+ import { output } from '../output.js';
16
+ import { computeAffected } from '../affected/affected.js';
17
+ import { loadIndex, scanRepo, saveIndex } from '../codegraph/store.js';
18
+ /** Collect changed repo-relative files: vs a base ref, or the working tree. */
19
+ function changedFiles(root, base) {
20
+ const run = (args) => {
21
+ try {
22
+ return execFileSync('git', args, { cwd: root, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] });
23
+ }
24
+ catch {
25
+ return '';
26
+ }
27
+ };
28
+ let out;
29
+ if (base) {
30
+ // Everything that differs from the base ref (three-dot: since the merge-base).
31
+ out = run(['diff', '--name-only', `${base}...`]);
32
+ if (!out.trim())
33
+ out = run(['diff', '--name-only', base]); // fallback: two-dot
34
+ }
35
+ else {
36
+ // Working tree: staged + unstaged + untracked.
37
+ out = run(['diff', '--name-only', 'HEAD']);
38
+ out += run(['ls-files', '--others', '--exclude-standard']);
39
+ }
40
+ return [...new Set(out.split('\n').map((l) => l.trim()).filter(Boolean))]
41
+ // Never count swarmdo's own state dir (incl. the codegraph.json we may write).
42
+ .filter((f) => f !== '.swarm' && !f.startsWith('.swarm/'))
43
+ .sort();
44
+ }
45
+ async function run(ctx) {
46
+ const root = ctx.cwd || process.cwd();
47
+ const base = typeof ctx.flags.base === 'string' ? ctx.flags.base : undefined;
48
+ const testsOnly = ctx.flags.tests === true;
49
+ const asJson = ctx.flags.format === 'json';
50
+ const changed = changedFiles(root, base);
51
+ if (changed.length === 0) {
52
+ if (asJson)
53
+ process.stdout.write(JSON.stringify({ changed: [], affected: [], tests: [], unknown: [] }, null, 2) + '\n');
54
+ else
55
+ output.writeln(output.dim(base ? `no changes vs ${base}` : 'no working-tree changes'));
56
+ return { success: true, exitCode: 0 };
57
+ }
58
+ // Prefer a saved codegraph index; build a fresh one if absent.
59
+ let index = loadIndex(root);
60
+ if (!index) {
61
+ index = scanRepo(root);
62
+ try {
63
+ saveIndex(root, index);
64
+ }
65
+ catch { /* read-only fs — fine, we have it in memory */ }
66
+ }
67
+ const result = computeAffected(changed, index);
68
+ const list = testsOnly ? result.tests : result.affected;
69
+ if (asJson) {
70
+ process.stdout.write(JSON.stringify({ changed, ...result }, null, 2) + '\n');
71
+ }
72
+ else if (testsOnly) {
73
+ // Plain list on stdout so it pipes straight into a test runner.
74
+ if (list.length)
75
+ process.stdout.write(list.join('\n') + '\n');
76
+ process.stderr.write(output.dim(`${result.tests.length} affected test file(s) from ${changed.length} changed\n`));
77
+ }
78
+ else {
79
+ output.writeln(output.bold(`Affected by ${changed.length} changed file(s)${base ? ` vs ${base}` : ''}:`));
80
+ for (const f of list)
81
+ output.writeln(` ${f}`);
82
+ output.writeln(output.dim(`${result.affected.length} affected · ${result.tests.length} test file(s)${result.unknown.length ? ` · ${result.unknown.length} not in index` : ''}`));
83
+ }
84
+ return { success: true, exitCode: 0 };
85
+ }
86
+ export const affectedCommand = {
87
+ name: 'affected',
88
+ description: 'List files (and test files) a change could break, via the import graph — run only the tests your diff impacts (nx/turbo-style)',
89
+ options: [
90
+ { name: 'base', description: 'diff against a git ref (e.g. main); default is the working tree', type: 'string' },
91
+ { name: 'tests', description: 'output only the affected test files (one per line, for a test runner)', type: 'boolean' },
92
+ ],
93
+ examples: [
94
+ { command: 'swarmdo affected --base main', description: 'Files impacted since branching from main' },
95
+ { command: 'swarmdo affected --tests | xargs vitest run', description: 'Run only the tests your change affects' },
96
+ ],
97
+ action: run,
98
+ };
99
+ export default affectedCommand;
100
+ //# sourceMappingURL=affected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"affected.js","sourceRoot":"","sources":["../../../src/commands/affected.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `swarmdo cycles` — find circular import dependencies (madge --circular style).
3
+ *
4
+ * swarmdo cycles # report circular imports in the repo
5
+ * swarmdo cycles --ci # exit 1 if any cycle exists (gate a build)
6
+ * swarmdo cycles --format json
7
+ *
8
+ * Composes codegraph's import graph; the detection is a provably-correct SCC
9
+ * scan (../cycles/cycles.ts, pure + tested). This loads or builds the index.
10
+ */
11
+ import type { Command } from '../types.js';
12
+ export declare const cyclesCommand: Command;
13
+ export default cyclesCommand;
14
+ //# sourceMappingURL=cycles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycles.d.ts","sourceRoot":"","sources":["../../../src/commands/cycles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AA8B1E,eAAO,MAAM,aAAa,EAAE,OAW3B,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * `swarmdo cycles` — find circular import dependencies (madge --circular style).
3
+ *
4
+ * swarmdo cycles # report circular imports in the repo
5
+ * swarmdo cycles --ci # exit 1 if any cycle exists (gate a build)
6
+ * swarmdo cycles --format json
7
+ *
8
+ * Composes codegraph's import graph; the detection is a provably-correct SCC
9
+ * scan (../cycles/cycles.ts, pure + tested). This loads or builds the index.
10
+ */
11
+ import { output } from '../output.js';
12
+ import { findCycles, formatCycles } from '../cycles/cycles.js';
13
+ import { loadIndex, scanRepo, saveIndex } from '../codegraph/store.js';
14
+ async function run(ctx) {
15
+ const root = ctx.cwd || process.cwd();
16
+ const asJson = ctx.flags.format === 'json';
17
+ const ci = ctx.flags.ci === true;
18
+ let index = loadIndex(root);
19
+ if (!index) {
20
+ index = scanRepo(root);
21
+ try {
22
+ saveIndex(root, index);
23
+ }
24
+ catch { /* read-only fs — index is in memory */ }
25
+ }
26
+ const res = findCycles(index);
27
+ const count = res.cycles.length + res.selfLoops.length;
28
+ if (asJson) {
29
+ process.stdout.write(JSON.stringify({ count, ...res }, null, 2) + '\n');
30
+ }
31
+ else {
32
+ output.writeln(formatCycles(res));
33
+ }
34
+ // In --ci mode, a cycle is a failure; otherwise report and succeed.
35
+ const code = ci && count > 0 ? 1 : 0;
36
+ return { success: code === 0, exitCode: code };
37
+ }
38
+ export const cyclesCommand = {
39
+ name: 'cycles',
40
+ description: 'Find circular import dependencies via the import graph (madge --circular style) — catch the TDZ/undefined-export bugs they cause',
41
+ options: [
42
+ { name: 'ci', description: 'exit 1 if any circular dependency exists (gate a build)', type: 'boolean' },
43
+ ],
44
+ examples: [
45
+ { command: 'swarmdo cycles', description: 'List circular imports in the repo' },
46
+ { command: 'swarmdo cycles --ci', description: 'Fail CI when a cycle is introduced' },
47
+ ],
48
+ action: run,
49
+ };
50
+ export default cyclesCommand;
51
+ //# sourceMappingURL=cycles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycles.js","sourceRoot":"","sources":["../../../src/commands/cycles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvE,KAAK,UAAU,GAAG,CAAC,GAAmB;IACpC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;IAC3C,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC;IAEjC,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC;YAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,uCAAuC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;IAEvD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,oEAAoE;IACpE,MAAM,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,kIAAkI;IAC/I,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,yDAAyD,EAAE,IAAI,EAAE,SAAS,EAAE;KACxG;IACD,QAAQ,EAAE;QACR,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,mCAAmC,EAAE;QAC/E,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,oCAAoC,EAAE;KACtF;IACD,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,12 @@ const commandLoaders = {
44
44
  // Change-risk hotspots from git history (code-maat demand) — rank files by
45
45
  // churn × recency × author-spread; "where is the tech debt?" from data.
46
46
  hotspots: () => import('./hotspots.js'),
47
+ // Affected-file/test set from a git diff (nx/turbo/jest --findRelatedTests
48
+ // demand) — reverse-dependency closure over codegraph's import graph.
49
+ affected: () => import('./affected.js'),
50
+ // Circular-import detector (madge --circular demand) — SCC scan over
51
+ // codegraph's import graph; catches TDZ/undefined-export bugs.
52
+ cycles: () => import('./cycles.js'),
47
53
  // Queryable exported-symbol index (codegraph demand) — where things are
48
54
  // defined without grep+read round-trips.
49
55
  codegraph: () => import('./codegraph.js'),
@@ -277,7 +283,7 @@ export async function getCommandsByCategory() {
277
283
  // three slots from 'statusline' onward (completionsCmd received the
278
284
  // statusline module, analyzeCmd received completions, …), scrambling the
279
285
  // categorized help. Every load now has a named slot.
280
- const [daemonCmd, doctorCmd, embeddingsCmd, neuralCmd, performanceCmd, securityCmd, swarmvectorCmd, hiveMindCmd, configCmd, statuslineCmd, compressCmd, efficiencyCmd, completionsCmd, migrateCmd, workflowCmd, analyzeCmd, routeCmd, progressCmd, providersCmd, pluginsCmd, deploymentCmd, claimsCmd, issuesCmd, updateCmd, processCmd, guidanceCmd, applianceCmd, cleanupCmd, autopilotCmd, demoCmd, usageCmd, repairCmd, hudCmd, compactCmd, codegraphCmd, redactCmd, packCmd, envCmd, licenseCmd, sbomCmd, applyCmd, hotspotsCmd,] = await Promise.all([
286
+ const [daemonCmd, doctorCmd, embeddingsCmd, neuralCmd, performanceCmd, securityCmd, swarmvectorCmd, hiveMindCmd, configCmd, statuslineCmd, compressCmd, efficiencyCmd, completionsCmd, migrateCmd, workflowCmd, analyzeCmd, routeCmd, progressCmd, providersCmd, pluginsCmd, deploymentCmd, claimsCmd, issuesCmd, updateCmd, processCmd, guidanceCmd, applianceCmd, cleanupCmd, autopilotCmd, demoCmd, usageCmd, repairCmd, hudCmd, compactCmd, codegraphCmd, redactCmd, packCmd, envCmd, licenseCmd, sbomCmd, applyCmd, hotspotsCmd, affectedCmd, cyclesCmd,] = await Promise.all([
281
287
  loadCommand('daemon'), loadCommand('doctor'), loadCommand('embeddings'), loadCommand('neural'),
282
288
  loadCommand('performance'), loadCommand('security'), loadCommand('swarmvector'), loadCommand('hive-mind'),
283
289
  loadCommand('config'), loadCommand('statusline'), loadCommand('compress'), loadCommand('efficiency'),
@@ -285,7 +291,7 @@ export async function getCommandsByCategory() {
285
291
  loadCommand('analyze'), loadCommand('route'), loadCommand('progress'), loadCommand('providers'),
286
292
  loadCommand('plugins'), loadCommand('deployment'), loadCommand('claims'), loadCommand('issues'),
287
293
  loadCommand('update'), loadCommand('process'), loadCommand('guidance'), loadCommand('appliance'),
288
- loadCommand('cleanup'), loadCommand('autopilot'), loadCommand('demo'), loadCommand('usage'), loadCommand('repair'), loadCommand('hud'), loadCommand('compact'), loadCommand('codegraph'), loadCommand('redact'), loadCommand('pack'), loadCommand('env'), loadCommand('license'), loadCommand('sbom'), loadCommand('apply'), loadCommand('hotspots'),
294
+ loadCommand('cleanup'), loadCommand('autopilot'), loadCommand('demo'), loadCommand('usage'), loadCommand('repair'), loadCommand('hud'), loadCommand('compact'), loadCommand('codegraph'), loadCommand('redact'), loadCommand('pack'), loadCommand('env'), loadCommand('license'), loadCommand('sbom'), loadCommand('apply'), loadCommand('hotspots'), loadCommand('affected'), loadCommand('cycles'),
289
295
  ]);
290
296
  return {
291
297
  primary: [
@@ -301,7 +307,7 @@ export async function getCommandsByCategory() {
301
307
  utility: [
302
308
  configCmd, doctorCmd, daemonCmd, completionsCmd,
303
309
  migrateCmd, workflowCmd, demoCmd,
304
- statuslineCmd, compressCmd, compactCmd, redactCmd, packCmd, envCmd, licenseCmd, sbomCmd, applyCmd, hotspotsCmd, efficiencyCmd,
310
+ statuslineCmd, compressCmd, compactCmd, redactCmd, packCmd, envCmd, licenseCmd, sbomCmd, applyCmd, hotspotsCmd, affectedCmd, cyclesCmd, efficiencyCmd,
305
311
  ].filter(Boolean),
306
312
  analysis: [
307
313
  analyzeCmd, routeCmd, progressCmd, usageCmd, hudCmd, codegraphCmd,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * cycles.ts — detect circular import dependencies in codegraph's import graph.
3
+ *
4
+ * Circular imports are a real source of bugs: temporal-dead-zone errors,
5
+ * `undefined` exports at module-eval time, and brittle initialization order.
6
+ * `madge --circular` / dpdm / skott exist precisely to surface them. This finds
7
+ * them provably via Tarjan's strongly-connected-components: every SCC with more
8
+ * than one file is a set of mutually-cyclic modules, and a file that imports
9
+ * itself is a one-node cycle.
10
+ *
11
+ * Pure + deterministic (O(V+E), stable sort) — CodeIndex in, cycle groups out.
12
+ * The index load lives in ../commands/cycles.ts, so this is fixture-testable.
13
+ */
14
+ import type { CodeIndex } from '../codegraph/codegraph.js';
15
+ /** Build file → sorted list of internal (resolved) imports. Pure. */
16
+ export declare function buildAdjacency(index: CodeIndex): Map<string, string[]>;
17
+ /**
18
+ * Tarjan's SCC. Returns every strongly-connected component as a member list.
19
+ * Iterative (no recursion) so deep graphs don't overflow the stack. Deterministic:
20
+ * nodes are visited in sorted order and each component is returned sorted.
21
+ */
22
+ export declare function stronglyConnectedComponents(adj: Map<string, string[]>): string[][];
23
+ export interface CycleResult {
24
+ /** each group of ≥2 files that are mutually reachable (a real import cycle) */
25
+ cycles: string[][];
26
+ /** files that import themselves (one-node cycles) */
27
+ selfLoops: string[];
28
+ }
29
+ /**
30
+ * Circular-dependency groups from the import graph. A component is a cycle when
31
+ * it has ≥2 files (mutual reachability) or a single file with a self-edge.
32
+ * Deterministic: groups sorted by size desc then first member.
33
+ */
34
+ export declare function findCycles(index: CodeIndex): CycleResult;
35
+ /** Human-readable summary. Pure. */
36
+ export declare function formatCycles(res: CycleResult): string;
37
+ //# sourceMappingURL=cycles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycles.d.ts","sourceRoot":"","sources":["../../../src/cycles/cycles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAetE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAqDlF;AAED,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,qDAAqD;IACrD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAWxD;AAED,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAWrD"}