structx 2.2.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/benchmark/baseline.d.ts +2 -1
  2. package/dist/benchmark/baseline.d.ts.map +1 -1
  3. package/dist/benchmark/baseline.js +7 -18
  4. package/dist/benchmark/baseline.js.map +1 -1
  5. package/dist/benchmark/runner.d.ts +2 -1
  6. package/dist/benchmark/runner.d.ts.map +1 -1
  7. package/dist/benchmark/runner.js +4 -4
  8. package/dist/benchmark/runner.js.map +1 -1
  9. package/dist/cli.js +100 -45
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config.d.ts +4 -0
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +12 -1
  14. package/dist/config.js.map +1 -1
  15. package/dist/providers/anthropic.d.ts +12 -0
  16. package/dist/providers/anthropic.d.ts.map +1 -0
  17. package/dist/providers/anthropic.js +32 -0
  18. package/dist/providers/anthropic.js.map +1 -0
  19. package/dist/providers/factory.d.ts +18 -0
  20. package/dist/providers/factory.d.ts.map +1 -0
  21. package/dist/providers/factory.js +49 -0
  22. package/dist/providers/factory.js.map +1 -0
  23. package/dist/providers/gemini.d.ts +12 -0
  24. package/dist/providers/gemini.d.ts.map +1 -0
  25. package/dist/providers/gemini.js +35 -0
  26. package/dist/providers/gemini.js.map +1 -0
  27. package/dist/providers/interface.d.ts +18 -0
  28. package/dist/providers/interface.d.ts.map +1 -0
  29. package/dist/providers/interface.js +3 -0
  30. package/dist/providers/interface.js.map +1 -0
  31. package/dist/providers/openrouter.d.ts +12 -0
  32. package/dist/providers/openrouter.d.ts.map +1 -0
  33. package/dist/providers/openrouter.js +38 -0
  34. package/dist/providers/openrouter.js.map +1 -0
  35. package/dist/query/answerer.d.ts +2 -1
  36. package/dist/query/answerer.d.ts.map +1 -1
  37. package/dist/query/answerer.js +7 -18
  38. package/dist/query/answerer.js.map +1 -1
  39. package/dist/query/classifier.d.ts +2 -1
  40. package/dist/query/classifier.d.ts.map +1 -1
  41. package/dist/query/classifier.js +4 -13
  42. package/dist/query/classifier.js.map +1 -1
  43. package/dist/semantic/analyzer.d.ts +5 -4
  44. package/dist/semantic/analyzer.d.ts.map +1 -1
  45. package/dist/semantic/analyzer.js +34 -61
  46. package/dist/semantic/analyzer.js.map +1 -1
  47. package/dist/utils/tokens.d.ts.map +1 -1
  48. package/dist/utils/tokens.js +6 -0
  49. package/dist/utils/tokens.js.map +1 -1
  50. package/package.json +3 -1
@@ -1,3 +1,4 @@
1
+ import type { LLMProvider } from '../providers/interface';
1
2
  export interface BaselineResult {
2
3
  answer: string;
3
4
  inputTokens: number;
@@ -6,5 +7,5 @@ export interface BaselineResult {
6
7
  responseTimeMs: number;
7
8
  filesAccessed: number;
8
9
  }
9
- export declare function runBaseline(question: string, repoPath: string, model: string, apiKey: string): Promise<BaselineResult>;
10
+ export declare function runBaseline(question: string, repoPath: string, model: string, provider: LLMProvider): Promise<BaselineResult>;
10
11
  //# sourceMappingURL=baseline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/benchmark/baseline.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CA+CzB"}
1
+ {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/benchmark/baseline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC,CAqCzB"}
@@ -32,18 +32,13 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
35
  Object.defineProperty(exports, "__esModule", { value: true });
39
36
  exports.runBaseline = runBaseline;
40
- const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
41
37
  const fs = __importStar(require("fs"));
42
38
  const path = __importStar(require("path"));
43
39
  const scanner_1 = require("../ingest/scanner");
44
40
  const tokens_1 = require("../utils/tokens");
45
- async function runBaseline(question, repoPath, model, apiKey) {
46
- const client = new sdk_1.default({ apiKey });
41
+ async function runBaseline(question, repoPath, model, provider) {
47
42
  // Read all TypeScript files
48
43
  const files = (0, scanner_1.scanDirectory)(repoPath);
49
44
  let codeContext = '';
@@ -60,23 +55,17 @@ ${codeContext}
60
55
 
61
56
  Question: ${question}`;
62
57
  const startTime = Date.now();
63
- const response = await client.messages.create({
58
+ const response = await provider.chat({
64
59
  model,
65
- max_tokens: 1024,
60
+ maxTokens: 1024,
66
61
  messages: [{ role: 'user', content: prompt }],
67
62
  });
68
63
  const responseTimeMs = Date.now() - startTime;
69
- const answer = response.content
70
- .filter(block => block.type === 'text')
71
- .map(block => block.text)
72
- .join('');
73
- const inputTokens = response.usage?.input_tokens ?? 0;
74
- const outputTokens = response.usage?.output_tokens ?? 0;
75
64
  return {
76
- answer,
77
- inputTokens,
78
- outputTokens,
79
- cost: (0, tokens_1.estimateCost)(model, inputTokens, outputTokens),
65
+ answer: response.text,
66
+ inputTokens: response.inputTokens,
67
+ outputTokens: response.outputTokens,
68
+ cost: (0, tokens_1.estimateCost)(model, response.inputTokens, response.outputTokens),
80
69
  responseTimeMs,
81
70
  filesAccessed,
82
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/benchmark/baseline.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,kCAoDC;AAnED,4DAA0C;AAC1C,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAkD;AAClD,4CAA+C;AAWxC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,QAAgB,EAChB,KAAa,EACb,MAAc;IAEd,MAAM,MAAM,GAAG,IAAI,aAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAEzC,4BAA4B;IAC5B,MAAM,KAAK,GAAG,IAAA,uBAAa,EAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,WAAW,IAAI,SAAS,YAAY,SAAS,OAAO,IAAI,CAAC;QACzD,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG;;EAEf,WAAW;;YAED,QAAQ,EAAE,CAAC;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK;QACL,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;KAC9C,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAE9C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO;SAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;SACtC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAE,KAAa,CAAC,IAAI,CAAC;SACjC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,CAAC;IAExD,OAAO;QACL,MAAM;QACN,WAAW;QACX,YAAY;QACZ,IAAI,EAAE,IAAA,qBAAY,EAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC;QACpD,cAAc;QACd,aAAa;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/benchmark/baseline.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,kCA0CC;AAzDD,uCAAyB;AACzB,2CAA6B;AAE7B,+CAAkD;AAClD,4CAA+C;AAWxC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,QAAgB,EAChB,KAAa,EACb,QAAqB;IAErB,4BAA4B;IAC5B,MAAM,KAAK,GAAG,IAAA,uBAAa,EAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,WAAW,IAAI,SAAS,YAAY,SAAS,OAAO,IAAI,CAAC;QACzD,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG;;EAEf,WAAW;;YAED,QAAQ,EAAE,CAAC;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;QACnC,KAAK;QACL,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;KAC9C,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAE9C,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,IAAI;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,IAAI,EAAE,IAAA,qBAAY,EAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC;QACtE,cAAc;QACd,aAAa;KACd,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type Database from 'better-sqlite3';
2
+ import type { LLMProvider } from '../providers/interface';
2
3
  import type { StructXConfig } from '../config';
3
4
  export interface BenchmarkRunResult {
4
5
  question: string;
@@ -20,5 +21,5 @@ export interface BenchmarkRunResult {
20
21
  filesAccessed: number;
21
22
  } | null;
22
23
  }
23
- export declare function runBenchmark(db: Database.Database, config: StructXConfig, questions?: string[]): Promise<BenchmarkRunResult[]>;
24
+ export declare function runBenchmark(db: Database.Database, config: StructXConfig, provider: LLMProvider, questions?: string[]): Promise<BenchmarkRunResult[]>;
24
25
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAU/C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,GAAG,IAAI,CAAC;IACT,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,IAAI,CAAC;CACV;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,aAAa,EACrB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA6G/B"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAU/C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,GAAG,IAAI,CAAC;IACT,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,IAAI,CAAC;CACV;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,WAAW,EACrB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA6G/B"}
@@ -9,7 +9,7 @@ const context_builder_1 = require("../query/context-builder");
9
9
  const answerer_1 = require("../query/answerer");
10
10
  const queries_1 = require("../db/queries");
11
11
  const logger_1 = require("../utils/logger");
12
- async function runBenchmark(db, config, questions) {
12
+ async function runBenchmark(db, config, provider, questions) {
13
13
  const questionList = questions || questions_1.BENCHMARK_QUESTIONS;
14
14
  const results = [];
15
15
  for (let i = 0; i < questionList.length; i++) {
@@ -19,7 +19,7 @@ async function runBenchmark(db, config, questions) {
19
19
  // Run StructX agent
20
20
  try {
21
21
  console.log(' Running StructX agent...');
22
- const classification = await (0, classifier_1.classifyQuestion)(question, config.classifierModel, config.anthropicApiKey);
22
+ const classification = await (0, classifier_1.classifyQuestion)(question, config.classifierModel, provider);
23
23
  const graphQueryStart = Date.now();
24
24
  let retrieved;
25
25
  switch (classification.strategy) {
@@ -43,7 +43,7 @@ async function runBenchmark(db, config, questions) {
43
43
  }
44
44
  const graphQueryTimeMs = Date.now() - graphQueryStart;
45
45
  const context = (0, context_builder_1.buildContext)(retrieved, question);
46
- const answerResult = await (0, answerer_1.generateAnswer)(question, context, config.answerModel, config.anthropicApiKey);
46
+ const answerResult = await (0, answerer_1.generateAnswer)(question, context, config.answerModel, provider);
47
47
  result.structx = {
48
48
  answer: answerResult.answer,
49
49
  inputTokens: answerResult.inputTokens,
@@ -75,7 +75,7 @@ async function runBenchmark(db, config, questions) {
75
75
  // Run Traditional agent
76
76
  try {
77
77
  console.log(' Running Traditional agent...');
78
- const baseline = await (0, baseline_1.runBaseline)(question, config.repoPath, config.answerModel, config.anthropicApiKey);
78
+ const baseline = await (0, baseline_1.runBaseline)(question, config.repoPath, config.answerModel, provider);
79
79
  result.traditional = {
80
80
  answer: baseline.answer,
81
81
  inputTokens: baseline.inputTokens,
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -52,11 +52,54 @@ const answerer_1 = require("./query/answerer");
52
52
  const runner_1 = require("./benchmark/runner");
53
53
  const reporter_1 = require("./benchmark/reporter");
54
54
  const ingester_1 = require("./ingest/ingester");
55
+ const factory_1 = require("./providers/factory");
56
+ /**
57
+ * Resolve which LLM provider to use from config + optional CLI override key.
58
+ * Applies per-provider default models when switching away from Anthropic defaults.
59
+ * Returns the provider instance and mutates config models if needed.
60
+ */
61
+ function resolveProvider(config, cliApiKey) {
62
+ // If the user passed --api-key, treat it as the detected provider's key
63
+ if (cliApiKey) {
64
+ const detected = (0, factory_1.detectProvider)(config);
65
+ const providerName = detected?.provider ?? 'anthropic';
66
+ applyDefaultModels(config, providerName);
67
+ return (0, factory_1.createProvider)(providerName, cliApiKey);
68
+ }
69
+ const detected = (0, factory_1.detectProvider)(config);
70
+ if (!detected) {
71
+ console.log('ERROR: No LLM API key found.');
72
+ console.log('Set one of these environment variables (or add to .env):');
73
+ console.log(' ANTHROPIC_API_KEY — Anthropic (Claude)');
74
+ console.log(' GEMINI_API_KEY — Google Generative AI (Gemini)');
75
+ console.log(' OPENROUTER_API_KEY — OpenRouter (any model)');
76
+ process.exit(1);
77
+ }
78
+ applyDefaultModels(config, detected.provider);
79
+ return (0, factory_1.createProvider)(detected.provider, detected.apiKey);
80
+ }
81
+ /** Override default Anthropic models with provider-specific defaults when the user hasn't customised them. */
82
+ function applyDefaultModels(config, provider) {
83
+ if (provider === 'anthropic')
84
+ return; // already the default
85
+ const defaults = factory_1.DEFAULT_MODELS[provider];
86
+ const anthropicDefaults = factory_1.DEFAULT_MODELS.anthropic;
87
+ if (config.analysisModel === anthropicDefaults.analysis)
88
+ config.analysisModel = defaults.analysis;
89
+ if (config.classifierModel === anthropicDefaults.classifier)
90
+ config.classifierModel = defaults.classifier;
91
+ if (config.answerModel === anthropicDefaults.answer)
92
+ config.answerModel = defaults.answer;
93
+ }
94
+ /** Check if any API key is available (without requiring a specific one). */
95
+ function hasAnyApiKey(config) {
96
+ return !!(config.anthropicApiKey || config.geminiApiKey || config.openrouterApiKey);
97
+ }
55
98
  const program = new commander_1.Command();
56
99
  program
57
100
  .name('structx')
58
101
  .description('Graph-powered code intelligence CLI for TypeScript')
59
- .version('2.2.1')
102
+ .version('3.0.0')
60
103
  .option('--verbose', 'Enable verbose logging')
61
104
  .hook('preAction', (thisCommand) => {
62
105
  if (thisCommand.opts().verbose) {
@@ -68,7 +111,7 @@ program
68
111
  .command('setup')
69
112
  .description('One-step bootstrap: init + ingest + analyze')
70
113
  .argument('[repo-path]', 'Path to TypeScript repository', '.')
71
- .option('--api-key <key>', 'Anthropic API key (overrides ANTHROPIC_API_KEY env var)')
114
+ .option('--api-key <key>', 'API key (overrides env var for detected provider)')
72
115
  .action(async (repoPath, opts) => {
73
116
  const resolved = path.resolve(repoPath);
74
117
  const structxDir = (0, config_1.getStructXDir)(resolved);
@@ -92,7 +135,8 @@ program
92
135
  const ingestResult = (0, ingester_1.ingestDirectory)(db, resolved, config.diffThreshold);
93
136
  (0, ingester_1.printIngestResult)(ingestResult);
94
137
  // Step 3: Analyze (auto-confirm)
95
- if (ingestResult.queued > 0 && config.anthropicApiKey) {
138
+ if (ingestResult.queued > 0 && hasAnyApiKey(config)) {
139
+ const provider = resolveProvider(config, opts.apiKey);
96
140
  const pendingCount = (0, queries_2.getPendingAnalysisCount)(db);
97
141
  const estimate = (0, cost_1.estimateAnalysisCost)(pendingCount, config.batchSize, config.analysisModel);
98
142
  console.log('\n' + (0, cost_1.formatCostEstimate)(estimate));
@@ -111,7 +155,7 @@ program
111
155
  batchNum++;
112
156
  const items = pending.map(p => ({ id: p.id, function_id: p.function_id }));
113
157
  console.log(` Batch ${batchNum}: ${items.length} functions...`);
114
- const batchResult = await (0, analyzer_1.analyzeBatch)(db, items, config.analysisModel, config.anthropicApiKey);
158
+ const batchResult = await (0, analyzer_1.analyzeBatch)(db, items, config.analysisModel, provider);
115
159
  totalAnalyzed += batchResult.analyzed;
116
160
  totalCached += batchResult.cached;
117
161
  totalFailed += batchResult.failed;
@@ -121,9 +165,9 @@ program
121
165
  }
122
166
  // Analyze types, routes, and file summaries
123
167
  console.log('\n Analyzing types, routes, and file summaries...');
124
- const typeResult = await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, config.anthropicApiKey);
125
- const routeResult = await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, config.anthropicApiKey);
126
- const fileResult = await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, config.anthropicApiKey);
168
+ const typeResult = await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, provider);
169
+ const routeResult = await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, provider);
170
+ const fileResult = await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, provider);
127
171
  totalAnalyzed += typeResult.analyzed + routeResult.analyzed + fileResult.analyzed;
128
172
  totalFailed += typeResult.failed + routeResult.failed + fileResult.failed;
129
173
  totalInputTokens += typeResult.totalInputTokens + routeResult.totalInputTokens + fileResult.totalInputTokens;
@@ -142,15 +186,16 @@ program
142
186
  console.log(` Total cost: $${totalCost.toFixed(4)}`);
143
187
  }
144
188
  else if (ingestResult.queued > 0) {
145
- console.log('\nSkipping analysis: ANTHROPIC_API_KEY not set.');
146
- console.log('Set the key and run "structx analyze . --yes" to enrich functions.');
189
+ console.log('\nSkipping analysis: no API key set.');
190
+ console.log('Set ANTHROPIC_API_KEY, GEMINI_API_KEY, or OPENROUTER_API_KEY and run "structx analyze . --yes".');
147
191
  }
148
- else if (config.anthropicApiKey) {
192
+ else if (hasAnyApiKey(config)) {
149
193
  // Still analyze types/routes/files even if no new functions
194
+ const provider = resolveProvider(config, opts.apiKey);
150
195
  console.log('\nAnalyzing types, routes, and file summaries...');
151
- const typeResult = await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, config.anthropicApiKey);
152
- const routeResult = await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, config.anthropicApiKey);
153
- const fileResult = await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, config.anthropicApiKey);
196
+ const typeResult = await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, provider);
197
+ const routeResult = await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, provider);
198
+ const fileResult = await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, provider);
154
199
  const entityCount = typeResult.analyzed + routeResult.analyzed + fileResult.analyzed;
155
200
  if (entityCount > 0) {
156
201
  (0, analyzer_1.rebuildSearchIndex)(db);
@@ -387,12 +432,18 @@ program
387
432
  // Check config
388
433
  try {
389
434
  const config = (0, config_1.loadConfig)(structxDir);
390
- // Check API key
435
+ // Check API keys
391
436
  if (config.anthropicApiKey) {
392
437
  console.log(' [OK] Anthropic API key is set');
393
438
  }
439
+ else if (config.geminiApiKey) {
440
+ console.log(' [OK] Gemini API key is set');
441
+ }
442
+ else if (config.openrouterApiKey) {
443
+ console.log(' [OK] OpenRouter API key is set');
444
+ }
394
445
  else {
395
- console.log(' [WARN] Anthropic API key not set (set ANTHROPIC_API_KEY env var or add to config)');
446
+ console.log(' [WARN] No API key set (set ANTHROPIC_API_KEY, GEMINI_API_KEY, or OPENROUTER_API_KEY)');
396
447
  allGood = false;
397
448
  }
398
449
  // Check repo path
@@ -445,7 +496,7 @@ program
445
496
  .description('Run LLM semantic analysis on extracted functions')
446
497
  .argument('[repo-path]', 'Path to TypeScript repository', '.')
447
498
  .option('--yes', 'Skip cost confirmation prompt')
448
- .option('--api-key <key>', 'Anthropic API key (overrides ANTHROPIC_API_KEY env var)')
499
+ .option('--api-key <key>', 'API key (overrides env var for detected provider)')
449
500
  .action(async (repoPath, opts) => {
450
501
  const resolved = path.resolve(repoPath);
451
502
  const structxDir = (0, config_1.getStructXDir)(resolved);
@@ -457,11 +508,12 @@ program
457
508
  const config = (0, config_1.loadConfig)(structxDir);
458
509
  if (opts.apiKey)
459
510
  config.anthropicApiKey = opts.apiKey;
460
- if (!config.anthropicApiKey) {
461
- console.log('ERROR: Anthropic API key not set.');
462
- console.log('Fix: Set ANTHROPIC_API_KEY env var, pass --api-key <key>, or add to .structx/config.json');
511
+ if (!hasAnyApiKey(config)) {
512
+ console.log('ERROR: No LLM API key set.');
513
+ console.log('Fix: Set ANTHROPIC_API_KEY, GEMINI_API_KEY, or OPENROUTER_API_KEY env var, pass --api-key <key>, or add to .structx/config.json');
463
514
  return;
464
515
  }
516
+ const provider = resolveProvider(config, opts.apiKey);
465
517
  const db = (0, connection_1.openDatabase)(dbPath);
466
518
  const pendingCount = (0, queries_2.getPendingAnalysisCount)(db);
467
519
  if (pendingCount === 0) {
@@ -500,7 +552,7 @@ program
500
552
  batchNum++;
501
553
  const items = pending.map(p => ({ id: p.id, function_id: p.function_id }));
502
554
  console.log(` Batch ${batchNum}: ${items.length} functions...`);
503
- const batchResult = await (0, analyzer_1.analyzeBatch)(db, items, config.analysisModel, config.anthropicApiKey);
555
+ const batchResult = await (0, analyzer_1.analyzeBatch)(db, items, config.analysisModel, provider);
504
556
  totalAnalyzed += batchResult.analyzed;
505
557
  totalCached += batchResult.cached;
506
558
  totalFailed += batchResult.failed;
@@ -510,9 +562,9 @@ program
510
562
  }
511
563
  // Analyze types, routes, and file summaries
512
564
  console.log('\n Analyzing types, routes, and file summaries...');
513
- const typeResult = await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, config.anthropicApiKey);
514
- const routeResult = await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, config.anthropicApiKey);
515
- const fileResult = await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, config.anthropicApiKey);
565
+ const typeResult = await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, provider);
566
+ const routeResult = await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, provider);
567
+ const fileResult = await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, provider);
516
568
  totalAnalyzed += typeResult.analyzed + routeResult.analyzed + fileResult.analyzed;
517
569
  totalFailed += typeResult.failed + routeResult.failed + fileResult.failed;
518
570
  totalInputTokens += typeResult.totalInputTokens + routeResult.totalInputTokens + fileResult.totalInputTokens;
@@ -535,7 +587,7 @@ program
535
587
  .description('Ask a question about the codebase')
536
588
  .argument('<question>', 'The question to ask')
537
589
  .option('--repo <path>', 'Path to TypeScript repository', '.')
538
- .option('--api-key <key>', 'Anthropic API key (overrides ANTHROPIC_API_KEY env var)')
590
+ .option('--api-key <key>', 'API key (overrides env var for detected provider)')
539
591
  .action(async (question, opts) => {
540
592
  const resolved = path.resolve(opts.repo);
541
593
  const structxDir = (0, config_1.getStructXDir)(resolved);
@@ -550,8 +602,9 @@ program
550
602
  config.anthropicApiKey = opts.apiKey;
551
603
  const result = (0, ingester_1.ingestDirectory)(db, resolved, config.diffThreshold);
552
604
  (0, ingester_1.printIngestResult)(result);
553
- // Run semantic analysis if API key available
554
- if (config.anthropicApiKey) {
605
+ // Run semantic analysis if any API key available
606
+ if (hasAnyApiKey(config)) {
607
+ const provider = resolveProvider(config, opts.apiKey);
555
608
  console.log('\nRunning semantic analysis...');
556
609
  const pending = (0, queries_2.getPendingAnalysis)(db, config.batchSize);
557
610
  if (pending.length > 0) {
@@ -562,33 +615,34 @@ program
562
615
  break;
563
616
  batchNum++;
564
617
  console.log(` Batch ${batchNum}: ${items.length} functions...`);
565
- await (0, analyzer_1.analyzeBatch)(db, items.map(p => ({ id: p.id, function_id: p.function_id })), config.analysisModel, config.anthropicApiKey);
618
+ await (0, analyzer_1.analyzeBatch)(db, items.map(p => ({ id: p.id, function_id: p.function_id })), config.analysisModel, provider);
566
619
  }
567
- await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, config.anthropicApiKey);
568
- await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, config.anthropicApiKey);
569
- await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, config.anthropicApiKey);
620
+ await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, provider);
621
+ await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, provider);
622
+ await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, provider);
570
623
  (0, analyzer_1.rebuildSearchIndex)(db);
571
624
  }
572
625
  console.log('Setup complete. Now answering your question...\n');
573
626
  }
574
627
  else {
575
- console.log('\nWARNING: ANTHROPIC_API_KEY not set. Semantic analysis skipped.');
576
- console.log('Results will be limited. Set the key and run "structx analyze . --yes" for better answers.\n');
628
+ console.log('\nWARNING: No API key set. Semantic analysis skipped.');
629
+ console.log('Results will be limited. Set an API key and run "structx analyze . --yes" for better answers.\n');
577
630
  }
578
631
  db.close();
579
632
  }
580
633
  const config = (0, config_1.loadConfig)(structxDir);
581
634
  if (opts.apiKey)
582
635
  config.anthropicApiKey = opts.apiKey;
583
- if (!config.anthropicApiKey) {
584
- console.log('ERROR: Anthropic API key not set.');
636
+ if (!hasAnyApiKey(config)) {
637
+ console.log('ERROR: No LLM API key set.');
585
638
  console.log('Fix one of:');
586
- console.log(' 1. Set ANTHROPIC_API_KEY environment variable');
639
+ console.log(' 1. Set ANTHROPIC_API_KEY, GEMINI_API_KEY, or OPENROUTER_API_KEY environment variable');
587
640
  console.log(' 2. Pass --api-key <key> to this command');
588
- console.log(' 3. Add "anthropicApiKey" to .structx/config.json');
641
+ console.log(' 3. Add an API key to .structx/config.json');
589
642
  console.log('\nNote: "structx overview --repo ." works without an API key to see the codebase structure.');
590
643
  return;
591
644
  }
645
+ const provider = resolveProvider(config, opts.apiKey);
592
646
  const db = (0, connection_1.openDatabase)(dbPath);
593
647
  // Check if DB is empty — suggest re-ingesting
594
648
  const stats = (0, queries_1.getStats)(db);
@@ -603,11 +657,11 @@ program
603
657
  const items = (0, queries_2.getPendingAnalysis)(db, config.batchSize);
604
658
  if (items.length === 0)
605
659
  break;
606
- await (0, analyzer_1.analyzeBatch)(db, items.map(p => ({ id: p.id, function_id: p.function_id })), config.analysisModel, config.anthropicApiKey);
660
+ await (0, analyzer_1.analyzeBatch)(db, items.map(p => ({ id: p.id, function_id: p.function_id })), config.analysisModel, provider);
607
661
  }
608
- await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, config.anthropicApiKey);
609
- await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, config.anthropicApiKey);
610
- await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, config.anthropicApiKey);
662
+ await (0, analyzer_1.analyzeTypes)(db, config.analysisModel, provider);
663
+ await (0, analyzer_1.analyzeRoutes)(db, config.analysisModel, provider);
664
+ await (0, analyzer_1.analyzeFileSummaries)(db, config.analysisModel, provider);
611
665
  (0, analyzer_1.rebuildSearchIndex)(db);
612
666
  }
613
667
  console.log('');
@@ -620,7 +674,7 @@ program
620
674
  const startTime = Date.now();
621
675
  // Step 1: Classify the question
622
676
  console.log('Classifying question...');
623
- const classification = await (0, classifier_1.classifyQuestion)(question, config.classifierModel, config.anthropicApiKey);
677
+ const classification = await (0, classifier_1.classifyQuestion)(question, config.classifierModel, provider);
624
678
  logger_1.logger.debug('Classification', classification);
625
679
  // Step 2: Retrieve context
626
680
  console.log(`Retrieving context (strategy: ${classification.strategy})...`);
@@ -665,7 +719,7 @@ program
665
719
  const context = (0, context_builder_1.buildContext)(retrieved, question);
666
720
  // Step 4: Generate answer
667
721
  console.log('Generating answer...\n');
668
- const answerResult = await (0, answerer_1.generateAnswer)(question, context, config.answerModel, config.anthropicApiKey);
722
+ const answerResult = await (0, answerer_1.generateAnswer)(question, context, config.answerModel, provider);
669
723
  // Display answer
670
724
  const entityCount = retrieved.functions.length + retrieved.types.length +
671
725
  retrieved.routes.length + retrieved.files.length + retrieved.constants.length;
@@ -707,14 +761,15 @@ benchmarkCmd
707
761
  return;
708
762
  }
709
763
  const config = (0, config_1.loadConfig)(structxDir);
710
- if (!config.anthropicApiKey) {
711
- console.log('Anthropic API key not set.');
764
+ if (!hasAnyApiKey(config)) {
765
+ console.log('No API key set. Set ANTHROPIC_API_KEY, GEMINI_API_KEY, or OPENROUTER_API_KEY.');
712
766
  return;
713
767
  }
768
+ const provider = resolveProvider(config);
714
769
  const db = (0, connection_1.openDatabase)(dbPath);
715
770
  console.log('Starting benchmark...');
716
771
  console.log('Running 8 questions in both StructX and Traditional modes.\n');
717
- const results = await (0, runner_1.runBenchmark)(db, config);
772
+ const results = await (0, runner_1.runBenchmark)(db, config, provider);
718
773
  // Generate and save reports
719
774
  const markdown = (0, reporter_1.generateMarkdownReport)(results);
720
775
  const csv = (0, reporter_1.generateCsvReport)(results);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,6 +1,10 @@
1
+ import type { ProviderName } from './providers/factory';
1
2
  export interface StructXConfig {
2
3
  repoPath: string;
3
4
  anthropicApiKey: string;
5
+ geminiApiKey: string;
6
+ openrouterApiKey: string;
7
+ provider: ProviderName | null;
4
8
  analysisModel: string;
5
9
  classifierModel: string;
6
10
  answerModel: string;