@grafema/cli 0.3.21 → 0.3.22

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/cli.js CHANGED
@@ -8,6 +8,7 @@ import { fileURLToPath } from 'url';
8
8
  import { dirname, join } from 'path';
9
9
  import { initCommand } from './commands/init.js';
10
10
  import { analyzeCommand } from './commands/analyze.js';
11
+ import { resolveCommand } from './commands/resolve.js';
11
12
  import { overviewCommand } from './commands/overview.js';
12
13
  import { queryCommand } from './commands/query.js';
13
14
  import { typesCommand } from './commands/types.js';
@@ -48,6 +49,7 @@ program.addCommand(whyCommand);
48
49
  // Commands in logical order
49
50
  program.addCommand(initCommand);
50
51
  program.addCommand(analyzeCommand);
52
+ program.addCommand(resolveCommand);
51
53
  program.addCommand(overviewCommand);
52
54
  program.addCommand(queryCommand);
53
55
  program.addCommand(contextCommand);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,iCAAiC;AACjC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAErF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,2BAA2B,CAAC;KACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,uBAAuB;AACvB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAE/B,4BAA4B;AAC5B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAE,4BAA4B;AAC/D,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAEpC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,cAAc,SA2BH,CAAC"}
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,cAAc,SA4BH,CAAC"}
@@ -17,6 +17,7 @@ export const analyzeCommand = new Command('analyze')
17
17
  .option('--log-level <level>', 'Set log level (silent, errors, warnings, info, debug)')
18
18
  .option('--log-file <path>', 'Write all log output to a file')
19
19
  .option('--strict', 'Enable strict mode (fail on unresolved references)')
20
+ .option('--resolve-jobs <number>', 'Number of parallel resolve workers (default: auto based on CPU and memory)')
20
21
  .option('--no-auto-start', 'Do not auto-start RFDB server (require manual start)')
21
22
  .option('--quickstart', 'Auto-initialize if no config exists (scan project, generate config)')
22
23
  .addHelpText('after', `
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,sBAAsB,CAAC;KACnC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,EAAE,GAAG,CAAC;KAClD,MAAM,CAAC,sBAAsB,EAAE,iCAAiC,CAAC;KACjE,MAAM,CAAC,yBAAyB,EAAE,+CAA+C,CAAC;KAClF,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACjD,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,4CAA4C,CAAC;KAC/D,MAAM,CAAC,qBAAqB,EAAE,uDAAuD,CAAC;KACtF,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;KAC7D,MAAM,CAAC,UAAU,EAAE,oDAAoD,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,sDAAsD,CAAC;KACjF,MAAM,CAAC,cAAc,EAAE,qEAAqE,CAAC;KAC7F,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;CAYvB,CAAC;KACC,MAAM,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,sBAAsB,CAAC;KACnC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,EAAE,GAAG,CAAC;KAClD,MAAM,CAAC,sBAAsB,EAAE,iCAAiC,CAAC;KACjE,MAAM,CAAC,yBAAyB,EAAE,+CAA+C,CAAC;KAClF,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACjD,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,4CAA4C,CAAC;KAC/D,MAAM,CAAC,qBAAqB,EAAE,uDAAuD,CAAC;KACtF,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;KAC7D,MAAM,CAAC,UAAU,EAAE,oDAAoD,CAAC;KACxE,MAAM,CAAC,yBAAyB,EAAE,4EAA4E,CAAC;KAC/G,MAAM,CAAC,iBAAiB,EAAE,sDAAsD,CAAC;KACjF,MAAM,CAAC,cAAc,EAAE,qEAAqE,CAAC;KAC7F,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;CAYvB,CAAC;KACC,MAAM,CAAC,aAAa,CAAC,CAAC"}
@@ -25,6 +25,7 @@ export declare function analyzeAction(path: string, options: {
25
25
  logLevel?: string;
26
26
  logFile?: string;
27
27
  strict?: boolean;
28
+ resolveJobs?: string;
28
29
  autoStart?: boolean;
29
30
  quickstart?: boolean;
30
31
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeAction.d.ts","sourceRoot":"","sources":["../../src/commands/analyzeAction.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmBH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAG1H;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAmB,GAAG,IAAI,CAE9F;AAkHD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwM3R"}
1
+ {"version":3,"file":"analyzeAction.d.ts","sourceRoot":"","sources":["../../src/commands/analyzeAction.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmBH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAG1H;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAmB,GAAG,IAAI,CAE9F;AAkHD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4MjT"}
@@ -232,6 +232,9 @@ export async function analyzeAction(path, options) {
232
232
  if (options.clear) {
233
233
  args.push('--force');
234
234
  }
235
+ if (options.resolveJobs) {
236
+ args.push('--resolve-jobs', options.resolveJobs);
237
+ }
235
238
  debug(`Spawning: ${orchestratorBinary} ${args.join(' ')}`);
236
239
  let exitCode = 0;
237
240
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeAction.js","sourceRoot":"","sources":["../../src/commands/analyzeAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzeAction.js","sourceRoot":"","sources":["../../src/commands/analyzeAction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Resolve command — Re-run resolution phase on an already-analyzed project.
3
+ *
4
+ * Command definition only. Execution logic is in resolveAction.ts.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare const resolveCommand: Command;
8
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/commands/resolve.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,cAAc,SAgBH,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Resolve command — Re-run resolution phase on an already-analyzed project.
3
+ *
4
+ * Command definition only. Execution logic is in resolveAction.ts.
5
+ */
6
+ import { Command } from 'commander';
7
+ import { resolveAction } from './resolveAction.js';
8
+ export const resolveCommand = new Command('resolve')
9
+ .description('Re-run resolution phase on an already-analyzed project')
10
+ .argument('[path]', 'Project path', '.')
11
+ .option('-q, --quiet', 'Suppress progress output')
12
+ .option('-v, --verbose', 'Show verbose logging')
13
+ .option('--debug', 'Enable debug mode')
14
+ .option('--log-level <level>', 'Set log level (silent, errors, warnings, info, debug)')
15
+ .option('--log-file <path>', 'Write all log output to a file')
16
+ .option('-j, --jobs <number>', 'Number of parallel resolve workers (default: auto)')
17
+ .option('--no-auto-start', 'Do not auto-start RFDB server (require manual start)')
18
+ .addHelpText('after', `
19
+ Examples:
20
+ grafema resolve Re-run resolution on current project
21
+ grafema resolve ./my-project Re-run resolution on specific directory
22
+ grafema resolve -v Verbose output with progress details
23
+ `)
24
+ .action(resolveAction);
25
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/commands/resolve.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,wDAAwD,CAAC;KACrE,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC;KACvC,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACjD,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,qBAAqB,EAAE,uDAAuD,CAAC;KACtF,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;KAC7D,MAAM,CAAC,qBAAqB,EAAE,oDAAoD,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,sDAAsD,CAAC;KACjF,WAAW,CAAC,OAAO,EAAE;;;;;CAKvB,CAAC;KACC,MAAM,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Resolve command action — re-runs the resolution phase via grafema-orchestrator.
3
+ *
4
+ * Requires an already-analyzed project (graph.rfdb must exist).
5
+ * Spawns grafema-orchestrator with the `resolve` subcommand to re-run
6
+ * only the resolution phase without re-parsing or re-analyzing files.
7
+ */
8
+ export declare function resolveAction(path: string, options: {
9
+ quiet?: boolean;
10
+ verbose?: boolean;
11
+ debug?: boolean;
12
+ logLevel?: string;
13
+ logFile?: string;
14
+ jobs?: string;
15
+ autoStart?: boolean;
16
+ }): Promise<void>;
17
+ //# sourceMappingURL=resolveAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveAction.d.ts","sourceRoot":"","sources":["../../src/commands/resolveAction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2GH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoJhB"}
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Resolve command action — re-runs the resolution phase via grafema-orchestrator.
3
+ *
4
+ * Requires an already-analyzed project (graph.rfdb must exist).
5
+ * Spawns grafema-orchestrator with the `resolve` subcommand to re-run
6
+ * only the resolution phase without re-parsing or re-analyzing files.
7
+ */
8
+ import { resolve, join } from 'path';
9
+ import { existsSync, readFileSync } from 'fs';
10
+ import { spawn } from 'child_process';
11
+ import { RFDBServerBackend, createLogger, findOrchestratorBinary, getBinaryNotFoundMessage, findAnalyzerBinary, ensureBinary, } from '@grafema/util';
12
+ import { fetchNodeEdgeCounts, exitWithCode } from './analyzeAction.js';
13
+ /**
14
+ * Determine log level from CLI options.
15
+ * Priority: --log-level > --quiet > --verbose > default ('silent')
16
+ */
17
+ function getLogLevel(options) {
18
+ if (options.logLevel) {
19
+ const validLevels = ['silent', 'errors', 'warnings', 'info', 'debug'];
20
+ if (validLevels.includes(options.logLevel)) {
21
+ return options.logLevel;
22
+ }
23
+ }
24
+ if (options.quiet)
25
+ return 'silent';
26
+ if (options.verbose)
27
+ return 'info';
28
+ return 'silent';
29
+ }
30
+ /**
31
+ * Find the grafema.config.yaml config file for the orchestrator.
32
+ *
33
+ * Search order:
34
+ * 1. <projectPath>/grafema.config.yaml
35
+ * 2. <projectPath>/.grafema/config.yaml (legacy location)
36
+ */
37
+ function findConfigFile(projectPath) {
38
+ const candidates = [
39
+ join(projectPath, 'grafema.config.yaml'),
40
+ join(projectPath, '.grafema', 'config.yaml'),
41
+ ];
42
+ for (const candidate of candidates) {
43
+ if (existsSync(candidate)) {
44
+ return candidate;
45
+ }
46
+ }
47
+ return null;
48
+ }
49
+ /** Map of file extensions to required resolve binaries only. */
50
+ const EXT_TO_RESOLVE_BINARIES = {
51
+ js: ['grafema-resolve'],
52
+ ts: ['grafema-resolve'],
53
+ jsx: ['grafema-resolve'],
54
+ tsx: ['grafema-resolve'],
55
+ mjs: ['grafema-resolve'],
56
+ cjs: ['grafema-resolve'],
57
+ py: ['python-resolve'],
58
+ pyi: ['python-resolve'],
59
+ hs: ['haskell-resolve'],
60
+ rs: ['grafema-rust-resolve'],
61
+ java: ['java-resolve'],
62
+ kt: ['kotlin-resolve'],
63
+ kts: ['kotlin-resolve'],
64
+ go: ['go-resolve'],
65
+ c: ['cpp-resolve'],
66
+ cpp: ['cpp-resolve'],
67
+ h: ['cpp-resolve'],
68
+ hpp: ['cpp-resolve'],
69
+ swift: ['swift-resolve'],
70
+ ex: ['beam-resolve'],
71
+ exs: ['beam-resolve'],
72
+ erl: ['beam-resolve'],
73
+ };
74
+ /**
75
+ * Detect languages from config include patterns and ensure their resolve binaries exist.
76
+ * Reads the config file as text, extracts file extensions from include globs,
77
+ * and pre-downloads missing binaries before the orchestrator needs them.
78
+ */
79
+ async function ensureResolveBinaries(configPath, log) {
80
+ const configText = readFileSync(configPath, 'utf-8');
81
+ const neededBinaries = new Set();
82
+ for (const match of configText.matchAll(/\*\.(\w+)/g)) {
83
+ const ext = match[1];
84
+ const bins = EXT_TO_RESOLVE_BINARIES[ext];
85
+ if (bins)
86
+ bins.forEach(b => neededBinaries.add(b));
87
+ }
88
+ // Always ensure JS/TS resolve binary (most common, default language)
89
+ neededBinaries.add('grafema-resolve');
90
+ for (const binName of neededBinaries) {
91
+ if (findAnalyzerBinary(binName))
92
+ continue;
93
+ const downloaded = await ensureBinary(binName, null, log);
94
+ if (downloaded) {
95
+ log(`Downloaded ${binName} → ${downloaded}`);
96
+ }
97
+ }
98
+ }
99
+ export async function resolveAction(path, options) {
100
+ const projectPath = resolve(path);
101
+ const grafemaDir = join(projectPath, '.grafema');
102
+ const dbPath = join(grafemaDir, 'graph.rfdb');
103
+ if (!existsSync(dbPath)) {
104
+ console.error('');
105
+ console.error('No analyzed database found.');
106
+ console.error('Run `grafema analyze` first to analyze the project.');
107
+ console.error('');
108
+ process.exit(1);
109
+ }
110
+ const info = options.quiet ? () => { } : console.log;
111
+ const debug = options.verbose ? console.log : () => { };
112
+ const logLevel = getLogLevel(options);
113
+ const logFile = options.logFile ? resolve(options.logFile) : undefined;
114
+ const _logger = createLogger(logLevel, logFile ? { logFile } : undefined);
115
+ if (logFile) {
116
+ debug(`Log file: ${logFile}`);
117
+ }
118
+ debug(`Re-running resolution: ${projectPath}`);
119
+ // Find grafema-orchestrator binary (lazy download if missing)
120
+ let orchestratorBinary = findOrchestratorBinary();
121
+ if (!orchestratorBinary) {
122
+ const downloaded = await ensureBinary('grafema-orchestrator', null, info);
123
+ if (downloaded) {
124
+ debug(`Downloaded grafema-orchestrator → ${downloaded}`);
125
+ orchestratorBinary = downloaded;
126
+ }
127
+ }
128
+ if (!orchestratorBinary) {
129
+ console.error('');
130
+ console.error(getBinaryNotFoundMessage('grafema-orchestrator'));
131
+ process.exit(1);
132
+ }
133
+ debug(`Using orchestrator: ${orchestratorBinary}`);
134
+ // Find config file for the orchestrator
135
+ const configPath = findConfigFile(projectPath);
136
+ if (!configPath) {
137
+ console.error('');
138
+ console.error('No grafema config file found.');
139
+ console.error('');
140
+ console.error('Expected one of:');
141
+ console.error(` ${join(projectPath, 'grafema.config.yaml')}`);
142
+ console.error(` ${join(projectPath, '.grafema', 'config.yaml')}`);
143
+ console.error('');
144
+ console.error('Run `grafema analyze` first (or `grafema analyze --quickstart`).');
145
+ console.error('');
146
+ process.exit(1);
147
+ }
148
+ debug(`Using config: ${configPath}`);
149
+ // Ensure resolve binaries exist for detected languages (lazy download if missing)
150
+ await ensureResolveBinaries(configPath, debug);
151
+ // Connect to RFDB server — auto-start by default (zero-config UX)
152
+ const backend = new RFDBServerBackend({
153
+ dbPath,
154
+ autoStart: options.autoStart ?? true,
155
+ silent: !options.verbose,
156
+ clientName: 'cli'
157
+ });
158
+ try {
159
+ await backend.connect();
160
+ }
161
+ catch (err) {
162
+ if (err instanceof Error && err.message.includes('not running')) {
163
+ console.error('');
164
+ console.error('RFDB server failed to start.');
165
+ console.error('');
166
+ console.error('Try starting manually:');
167
+ console.error(' grafema server start');
168
+ console.error('');
169
+ console.error('Or run diagnostics:');
170
+ console.error(' grafema doctor');
171
+ console.error('');
172
+ process.exit(1);
173
+ }
174
+ throw err;
175
+ }
176
+ const startTime = Date.now();
177
+ // Build orchestrator args — resolve subcommand
178
+ const args = ['resolve', '--config', configPath, '--socket', backend.socketPath];
179
+ if (options.jobs) {
180
+ args.push('--jobs', options.jobs);
181
+ }
182
+ debug(`Spawning: ${orchestratorBinary} ${args.join(' ')}`);
183
+ let exitCode = 0;
184
+ try {
185
+ exitCode = await new Promise((resolvePromise, reject) => {
186
+ const child = spawn(orchestratorBinary, args, {
187
+ stdio: [
188
+ 'ignore',
189
+ options.quiet ? 'ignore' : 'inherit',
190
+ options.quiet ? 'ignore' : 'inherit',
191
+ ],
192
+ env: {
193
+ ...process.env,
194
+ RUST_LOG: options.debug ? 'debug' : (options.quiet ? 'warn' : 'info'),
195
+ },
196
+ });
197
+ child.on('error', (err) => {
198
+ reject(new Error(`Failed to spawn grafema-orchestrator: ${err.message}`));
199
+ });
200
+ child.on('close', (code) => {
201
+ resolvePromise(code ?? 1);
202
+ });
203
+ });
204
+ if (exitCode === 0) {
205
+ const elapsedSeconds = (Date.now() - startTime) / 1000;
206
+ const stats = await fetchNodeEdgeCounts(backend);
207
+ info('');
208
+ info(`Resolution complete in ${elapsedSeconds.toFixed(2)}s`);
209
+ info(` Nodes: ${stats.nodeCount}`);
210
+ info(` Edges: ${stats.edgeCount}`);
211
+ }
212
+ else {
213
+ console.error('');
214
+ console.error(`Resolution failed with exit code ${exitCode}`);
215
+ }
216
+ }
217
+ catch (e) {
218
+ const error = e instanceof Error ? e : new Error(String(e));
219
+ console.error('');
220
+ console.error(`Resolution failed: ${error.message}`);
221
+ exitCode = 1;
222
+ }
223
+ finally {
224
+ if (backend.connected) {
225
+ await backend.close();
226
+ }
227
+ exitWithCode(exitCode);
228
+ }
229
+ }
230
+ //# sourceMappingURL=resolveAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveAction.js","sourceRoot":"","sources":["../../src/commands/resolveAction.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grafema/cli",
3
- "version": "0.3.21",
3
+ "version": "0.3.22",
4
4
  "description": "CLI for Grafema code analysis toolkit",
5
5
  "type": "module",
6
6
  "main": "./dist/cli.js",
@@ -35,9 +35,9 @@
35
35
  "dependencies": {
36
36
  "commander": "^13.0.0",
37
37
  "yaml": "^2.8.2",
38
- "@grafema/api": "0.3.21",
39
- "@grafema/util": "0.3.21",
40
- "@grafema/types": "0.3.21"
38
+ "@grafema/api": "0.3.22",
39
+ "@grafema/util": "0.3.22",
40
+ "@grafema/types": "0.3.22"
41
41
  },
42
42
  "optionalDependencies": {
43
43
  "@grafema/grafema-darwin-arm64": "0.3.16",
package/src/cli.ts CHANGED
@@ -9,6 +9,7 @@ import { fileURLToPath } from 'url';
9
9
  import { dirname, join } from 'path';
10
10
  import { initCommand } from './commands/init.js';
11
11
  import { analyzeCommand } from './commands/analyze.js';
12
+ import { resolveCommand } from './commands/resolve.js';
12
13
  import { overviewCommand } from './commands/overview.js';
13
14
  import { queryCommand } from './commands/query.js';
14
15
  import { typesCommand } from './commands/types.js';
@@ -55,6 +56,7 @@ program.addCommand(whyCommand);
55
56
  // Commands in logical order
56
57
  program.addCommand(initCommand);
57
58
  program.addCommand(analyzeCommand);
59
+ program.addCommand(resolveCommand);
58
60
  program.addCommand(overviewCommand);
59
61
  program.addCommand(queryCommand);
60
62
  program.addCommand(contextCommand);
@@ -20,6 +20,7 @@ export const analyzeCommand = new Command('analyze')
20
20
  .option('--log-level <level>', 'Set log level (silent, errors, warnings, info, debug)')
21
21
  .option('--log-file <path>', 'Write all log output to a file')
22
22
  .option('--strict', 'Enable strict mode (fail on unresolved references)')
23
+ .option('--resolve-jobs <number>', 'Number of parallel resolve workers (default: auto based on CPU and memory)')
23
24
  .option('--no-auto-start', 'Do not auto-start RFDB server (require manual start)')
24
25
  .option('--quickstart', 'Auto-initialize if no config exists (scan project, generate config)')
25
26
  .addHelpText('after', `
@@ -150,7 +150,7 @@ async function ensureLanguageBinaries(configPath: string, log: (...args: unknown
150
150
  }
151
151
  }
152
152
 
153
- export async function analyzeAction(path: string, options: { service?: string; entrypoint?: string; clear?: boolean; quiet?: boolean; verbose?: boolean; debug?: boolean; logLevel?: string; logFile?: string; strict?: boolean; autoStart?: boolean; quickstart?: boolean }): Promise<void> {
153
+ export async function analyzeAction(path: string, options: { service?: string; entrypoint?: string; clear?: boolean; quiet?: boolean; verbose?: boolean; debug?: boolean; logLevel?: string; logFile?: string; strict?: boolean; resolveJobs?: string; autoStart?: boolean; quickstart?: boolean }): Promise<void> {
154
154
  const projectPath = resolve(path);
155
155
  const grafemaDir = join(projectPath, '.grafema');
156
156
  const dbPath = join(grafemaDir, 'graph.rfdb');
@@ -272,6 +272,10 @@ export async function analyzeAction(path: string, options: { service?: string; e
272
272
  args.push('--force');
273
273
  }
274
274
 
275
+ if (options.resolveJobs) {
276
+ args.push('--resolve-jobs', options.resolveJobs);
277
+ }
278
+
275
279
  debug(`Spawning: ${orchestratorBinary} ${args.join(' ')}`);
276
280
 
277
281
  let exitCode = 0;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Resolve command — Re-run resolution phase on an already-analyzed project.
3
+ *
4
+ * Command definition only. Execution logic is in resolveAction.ts.
5
+ */
6
+
7
+ import { Command } from 'commander';
8
+ import { resolveAction } from './resolveAction.js';
9
+
10
+
11
+ export const resolveCommand = new Command('resolve')
12
+ .description('Re-run resolution phase on an already-analyzed project')
13
+ .argument('[path]', 'Project path', '.')
14
+ .option('-q, --quiet', 'Suppress progress output')
15
+ .option('-v, --verbose', 'Show verbose logging')
16
+ .option('--debug', 'Enable debug mode')
17
+ .option('--log-level <level>', 'Set log level (silent, errors, warnings, info, debug)')
18
+ .option('--log-file <path>', 'Write all log output to a file')
19
+ .option('-j, --jobs <number>', 'Number of parallel resolve workers (default: auto)')
20
+ .option('--no-auto-start', 'Do not auto-start RFDB server (require manual start)')
21
+ .addHelpText('after', `
22
+ Examples:
23
+ grafema resolve Re-run resolution on current project
24
+ grafema resolve ./my-project Re-run resolution on specific directory
25
+ grafema resolve -v Verbose output with progress details
26
+ `)
27
+ .action(resolveAction);
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Resolve command action — re-runs the resolution phase via grafema-orchestrator.
3
+ *
4
+ * Requires an already-analyzed project (graph.rfdb must exist).
5
+ * Spawns grafema-orchestrator with the `resolve` subcommand to re-run
6
+ * only the resolution phase without re-parsing or re-analyzing files.
7
+ */
8
+
9
+ import { resolve, join } from 'path';
10
+ import { existsSync, readFileSync } from 'fs';
11
+ import { spawn } from 'child_process';
12
+ import {
13
+ RFDBServerBackend,
14
+ createLogger,
15
+ findOrchestratorBinary,
16
+ getBinaryNotFoundMessage,
17
+ findAnalyzerBinary,
18
+ ensureBinary,
19
+ } from '@grafema/util';
20
+ import type { LogLevel } from '@grafema/util';
21
+ import { fetchNodeEdgeCounts, exitWithCode } from './analyzeAction.js';
22
+
23
+ /**
24
+ * Determine log level from CLI options.
25
+ * Priority: --log-level > --quiet > --verbose > default ('silent')
26
+ */
27
+ function getLogLevel(options: { quiet?: boolean; verbose?: boolean; logLevel?: string }): LogLevel {
28
+ if (options.logLevel) {
29
+ const validLevels: LogLevel[] = ['silent', 'errors', 'warnings', 'info', 'debug'];
30
+ if (validLevels.includes(options.logLevel as LogLevel)) {
31
+ return options.logLevel as LogLevel;
32
+ }
33
+ }
34
+ if (options.quiet) return 'silent';
35
+ if (options.verbose) return 'info';
36
+ return 'silent';
37
+ }
38
+
39
+ /**
40
+ * Find the grafema.config.yaml config file for the orchestrator.
41
+ *
42
+ * Search order:
43
+ * 1. <projectPath>/grafema.config.yaml
44
+ * 2. <projectPath>/.grafema/config.yaml (legacy location)
45
+ */
46
+ function findConfigFile(projectPath: string): string | null {
47
+ const candidates = [
48
+ join(projectPath, 'grafema.config.yaml'),
49
+ join(projectPath, '.grafema', 'config.yaml'),
50
+ ];
51
+
52
+ for (const candidate of candidates) {
53
+ if (existsSync(candidate)) {
54
+ return candidate;
55
+ }
56
+ }
57
+
58
+ return null;
59
+ }
60
+
61
+ /** Map of file extensions to required resolve binaries only. */
62
+ const EXT_TO_RESOLVE_BINARIES: Record<string, string[]> = {
63
+ js: ['grafema-resolve'],
64
+ ts: ['grafema-resolve'],
65
+ jsx: ['grafema-resolve'],
66
+ tsx: ['grafema-resolve'],
67
+ mjs: ['grafema-resolve'],
68
+ cjs: ['grafema-resolve'],
69
+ py: ['python-resolve'],
70
+ pyi: ['python-resolve'],
71
+ hs: ['haskell-resolve'],
72
+ rs: ['grafema-rust-resolve'],
73
+ java: ['java-resolve'],
74
+ kt: ['kotlin-resolve'],
75
+ kts: ['kotlin-resolve'],
76
+ go: ['go-resolve'],
77
+ c: ['cpp-resolve'],
78
+ cpp: ['cpp-resolve'],
79
+ h: ['cpp-resolve'],
80
+ hpp: ['cpp-resolve'],
81
+ swift: ['swift-resolve'],
82
+ ex: ['beam-resolve'],
83
+ exs: ['beam-resolve'],
84
+ erl: ['beam-resolve'],
85
+ };
86
+
87
+ /**
88
+ * Detect languages from config include patterns and ensure their resolve binaries exist.
89
+ * Reads the config file as text, extracts file extensions from include globs,
90
+ * and pre-downloads missing binaries before the orchestrator needs them.
91
+ */
92
+ async function ensureResolveBinaries(configPath: string, log: (...args: unknown[]) => void): Promise<void> {
93
+ const configText = readFileSync(configPath, 'utf-8');
94
+
95
+ const neededBinaries = new Set<string>();
96
+ for (const match of configText.matchAll(/\*\.(\w+)/g)) {
97
+ const ext = match[1];
98
+ const bins = EXT_TO_RESOLVE_BINARIES[ext];
99
+ if (bins) bins.forEach(b => neededBinaries.add(b));
100
+ }
101
+
102
+ // Always ensure JS/TS resolve binary (most common, default language)
103
+ neededBinaries.add('grafema-resolve');
104
+
105
+ for (const binName of neededBinaries) {
106
+ if (findAnalyzerBinary(binName)) continue;
107
+ const downloaded = await ensureBinary(binName, null, log);
108
+ if (downloaded) {
109
+ log(`Downloaded ${binName} → ${downloaded}`);
110
+ }
111
+ }
112
+ }
113
+
114
+ export async function resolveAction(path: string, options: {
115
+ quiet?: boolean;
116
+ verbose?: boolean;
117
+ debug?: boolean;
118
+ logLevel?: string;
119
+ logFile?: string;
120
+ jobs?: string;
121
+ autoStart?: boolean;
122
+ }): Promise<void> {
123
+ const projectPath = resolve(path);
124
+ const grafemaDir = join(projectPath, '.grafema');
125
+ const dbPath = join(grafemaDir, 'graph.rfdb');
126
+
127
+ if (!existsSync(dbPath)) {
128
+ console.error('');
129
+ console.error('No analyzed database found.');
130
+ console.error('Run `grafema analyze` first to analyze the project.');
131
+ console.error('');
132
+ process.exit(1);
133
+ }
134
+
135
+ const info = options.quiet ? () => {} : console.log;
136
+ const debug = options.verbose ? console.log : () => {};
137
+
138
+ const logLevel = getLogLevel(options);
139
+ const logFile = options.logFile ? resolve(options.logFile) : undefined;
140
+ const _logger = createLogger(logLevel, logFile ? { logFile } : undefined);
141
+
142
+ if (logFile) {
143
+ debug(`Log file: ${logFile}`);
144
+ }
145
+ debug(`Re-running resolution: ${projectPath}`);
146
+
147
+ // Find grafema-orchestrator binary (lazy download if missing)
148
+ let orchestratorBinary = findOrchestratorBinary();
149
+ if (!orchestratorBinary) {
150
+ const downloaded = await ensureBinary('grafema-orchestrator', null, info);
151
+ if (downloaded) {
152
+ debug(`Downloaded grafema-orchestrator → ${downloaded}`);
153
+ orchestratorBinary = downloaded;
154
+ }
155
+ }
156
+ if (!orchestratorBinary) {
157
+ console.error('');
158
+ console.error(getBinaryNotFoundMessage('grafema-orchestrator'));
159
+ process.exit(1);
160
+ }
161
+
162
+ debug(`Using orchestrator: ${orchestratorBinary}`);
163
+
164
+ // Find config file for the orchestrator
165
+ const configPath = findConfigFile(projectPath);
166
+ if (!configPath) {
167
+ console.error('');
168
+ console.error('No grafema config file found.');
169
+ console.error('');
170
+ console.error('Expected one of:');
171
+ console.error(` ${join(projectPath, 'grafema.config.yaml')}`);
172
+ console.error(` ${join(projectPath, '.grafema', 'config.yaml')}`);
173
+ console.error('');
174
+ console.error('Run `grafema analyze` first (or `grafema analyze --quickstart`).');
175
+ console.error('');
176
+ process.exit(1);
177
+ }
178
+
179
+ debug(`Using config: ${configPath}`);
180
+
181
+ // Ensure resolve binaries exist for detected languages (lazy download if missing)
182
+ await ensureResolveBinaries(configPath, debug);
183
+
184
+ // Connect to RFDB server — auto-start by default (zero-config UX)
185
+ const backend = new RFDBServerBackend({
186
+ dbPath,
187
+ autoStart: options.autoStart ?? true,
188
+ silent: !options.verbose,
189
+ clientName: 'cli'
190
+ });
191
+
192
+ try {
193
+ await backend.connect();
194
+ } catch (err) {
195
+ if (err instanceof Error && err.message.includes('not running')) {
196
+ console.error('');
197
+ console.error('RFDB server failed to start.');
198
+ console.error('');
199
+ console.error('Try starting manually:');
200
+ console.error(' grafema server start');
201
+ console.error('');
202
+ console.error('Or run diagnostics:');
203
+ console.error(' grafema doctor');
204
+ console.error('');
205
+ process.exit(1);
206
+ }
207
+ throw err;
208
+ }
209
+
210
+ const startTime = Date.now();
211
+
212
+ // Build orchestrator args — resolve subcommand
213
+ const args: string[] = ['resolve', '--config', configPath, '--socket', backend.socketPath];
214
+
215
+ if (options.jobs) {
216
+ args.push('--jobs', options.jobs);
217
+ }
218
+
219
+ debug(`Spawning: ${orchestratorBinary} ${args.join(' ')}`);
220
+
221
+ let exitCode = 0;
222
+
223
+ try {
224
+ exitCode = await new Promise<number>((resolvePromise, reject) => {
225
+ const child = spawn(orchestratorBinary, args, {
226
+ stdio: [
227
+ 'ignore',
228
+ options.quiet ? 'ignore' : 'inherit',
229
+ options.quiet ? 'ignore' : 'inherit',
230
+ ],
231
+ env: {
232
+ ...process.env,
233
+ RUST_LOG: options.debug ? 'debug' : (options.quiet ? 'warn' : 'info'),
234
+ },
235
+ });
236
+
237
+ child.on('error', (err) => {
238
+ reject(new Error(`Failed to spawn grafema-orchestrator: ${err.message}`));
239
+ });
240
+
241
+ child.on('close', (code) => {
242
+ resolvePromise(code ?? 1);
243
+ });
244
+ });
245
+
246
+ if (exitCode === 0) {
247
+ const elapsedSeconds = (Date.now() - startTime) / 1000;
248
+ const stats = await fetchNodeEdgeCounts(backend);
249
+
250
+ info('');
251
+ info(`Resolution complete in ${elapsedSeconds.toFixed(2)}s`);
252
+ info(` Nodes: ${stats.nodeCount}`);
253
+ info(` Edges: ${stats.edgeCount}`);
254
+ } else {
255
+ console.error('');
256
+ console.error(`Resolution failed with exit code ${exitCode}`);
257
+ }
258
+ } catch (e) {
259
+ const error = e instanceof Error ? e : new Error(String(e));
260
+ console.error('');
261
+ console.error(`Resolution failed: ${error.message}`);
262
+ exitCode = 1;
263
+ } finally {
264
+ if (backend.connected) {
265
+ await backend.close();
266
+ }
267
+
268
+ exitWithCode(exitCode);
269
+ }
270
+ }