reviewflow 3.9.0 → 3.10.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 (100) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +2 -0
  3. package/dist/config/projectConfig.d.ts +3 -5
  4. package/dist/config/projectConfig.d.ts.map +1 -1
  5. package/dist/config/projectConfig.js +19 -1
  6. package/dist/config/projectConfig.js.map +1 -1
  7. package/dist/entities/modelRouting/modelRouting.gateway.d.ts +5 -0
  8. package/dist/entities/modelRouting/modelRouting.gateway.d.ts.map +1 -0
  9. package/dist/entities/modelRouting/modelRouting.gateway.js +2 -0
  10. package/dist/entities/modelRouting/modelRouting.gateway.js.map +1 -0
  11. package/dist/entities/modelRouting/modelRouting.schema.d.ts +13 -0
  12. package/dist/entities/modelRouting/modelRouting.schema.d.ts.map +1 -0
  13. package/dist/entities/modelRouting/modelRouting.schema.js +7 -0
  14. package/dist/entities/modelRouting/modelRouting.schema.js.map +1 -0
  15. package/dist/entities/tokenUsage/tokenUsage.gateway.d.ts +6 -0
  16. package/dist/entities/tokenUsage/tokenUsage.gateway.d.ts.map +1 -0
  17. package/dist/entities/tokenUsage/tokenUsage.gateway.js +2 -0
  18. package/dist/entities/tokenUsage/tokenUsage.gateway.js.map +1 -0
  19. package/dist/entities/tokenUsage/tokenUsage.schema.d.ts +30 -0
  20. package/dist/entities/tokenUsage/tokenUsage.schema.d.ts.map +1 -0
  21. package/dist/entities/tokenUsage/tokenUsage.schema.js +19 -0
  22. package/dist/entities/tokenUsage/tokenUsage.schema.js.map +1 -0
  23. package/dist/frameworks/claude/claudeInvoker.d.ts +4 -0
  24. package/dist/frameworks/claude/claudeInvoker.d.ts.map +1 -1
  25. package/dist/frameworks/claude/claudeInvoker.js +86 -27
  26. package/dist/frameworks/claude/claudeInvoker.js.map +1 -1
  27. package/dist/frameworks/claude/streamJsonParser.d.ts +44 -0
  28. package/dist/frameworks/claude/streamJsonParser.d.ts.map +1 -0
  29. package/dist/frameworks/claude/streamJsonParser.js +96 -0
  30. package/dist/frameworks/claude/streamJsonParser.js.map +1 -0
  31. package/dist/frameworks/queue/pQueueAdapter.d.ts +2 -0
  32. package/dist/frameworks/queue/pQueueAdapter.d.ts.map +1 -1
  33. package/dist/frameworks/queue/pQueueAdapter.js.map +1 -1
  34. package/dist/frameworks/settings/runtimeSettings.d.ts +1 -1
  35. package/dist/frameworks/settings/runtimeSettings.d.ts.map +1 -1
  36. package/dist/frameworks/settings/runtimeSettings.js +1 -1
  37. package/dist/frameworks/settings/runtimeSettings.js.map +1 -1
  38. package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.d.ts +6 -0
  39. package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.d.ts.map +1 -0
  40. package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.js +8 -0
  41. package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.js.map +1 -0
  42. package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.d.ts +7 -0
  43. package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.d.ts.map +1 -0
  44. package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.js +37 -0
  45. package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.js.map +1 -0
  46. package/dist/tests/factories/routingPolicy.factory.d.ts +5 -0
  47. package/dist/tests/factories/routingPolicy.factory.d.ts.map +1 -0
  48. package/dist/tests/factories/routingPolicy.factory.js +10 -0
  49. package/dist/tests/factories/routingPolicy.factory.js.map +1 -0
  50. package/dist/tests/factories/tokenUsage.factory.d.ts +8 -0
  51. package/dist/tests/factories/tokenUsage.factory.d.ts.map +1 -0
  52. package/dist/tests/factories/tokenUsage.factory.js +28 -0
  53. package/dist/tests/factories/tokenUsage.factory.js.map +1 -0
  54. package/dist/tests/stubs/tokenUsage.stub.d.ts +11 -0
  55. package/dist/tests/stubs/tokenUsage.stub.d.ts.map +1 -0
  56. package/dist/tests/stubs/tokenUsage.stub.js +19 -0
  57. package/dist/tests/stubs/tokenUsage.stub.js.map +1 -0
  58. package/dist/tests/units/config/projectConfig.test.js +47 -0
  59. package/dist/tests/units/config/projectConfig.test.js.map +1 -1
  60. package/dist/tests/units/frameworks/claude/streamJsonParser.test.d.ts +2 -0
  61. package/dist/tests/units/frameworks/claude/streamJsonParser.test.d.ts.map +1 -0
  62. package/dist/tests/units/frameworks/claude/streamJsonParser.test.js +83 -0
  63. package/dist/tests/units/frameworks/claude/streamJsonParser.test.js.map +1 -0
  64. package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.d.ts +2 -0
  65. package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.d.ts.map +1 -0
  66. package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.js +44 -0
  67. package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.js.map +1 -0
  68. package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.d.ts +2 -0
  69. package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.d.ts.map +1 -0
  70. package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.js +57 -0
  71. package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.js.map +1 -0
  72. package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.d.ts +2 -0
  73. package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.d.ts.map +1 -0
  74. package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.js +55 -0
  75. package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.js.map +1 -0
  76. package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.d.ts +2 -0
  77. package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.d.ts.map +1 -0
  78. package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.js +64 -0
  79. package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.js.map +1 -0
  80. package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.d.ts +2 -0
  81. package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.d.ts.map +1 -0
  82. package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.js +26 -0
  83. package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.js.map +1 -0
  84. package/dist/usecases/selectModelForReview/selectModelForReview.usecase.d.ts +15 -0
  85. package/dist/usecases/selectModelForReview/selectModelForReview.usecase.d.ts.map +1 -0
  86. package/dist/usecases/selectModelForReview/selectModelForReview.usecase.js +16 -0
  87. package/dist/usecases/selectModelForReview/selectModelForReview.usecase.js.map +1 -0
  88. package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.d.ts +23 -0
  89. package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.d.ts.map +1 -0
  90. package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.js +38 -0
  91. package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.js.map +1 -0
  92. package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.d.ts +8 -0
  93. package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.d.ts.map +1 -0
  94. package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.js +10 -0
  95. package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.js.map +1 -0
  96. package/package.json +3 -3
  97. package/scripts/hooks/enforce-dependency-rule.sh +61 -0
  98. package/scripts/hooks/enforce-gateway-port-purity.sh +35 -0
  99. package/scripts/hooks/enforce-presenter-class.sh +34 -0
  100. package/scripts/hooks/tests/test-architecture-hooks.sh +163 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.10.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.9.0...reviewflow-v3.10.0) (2026-05-14)
9
+
10
+
11
+ ### Added
12
+
13
+ * add hybrid model routing and token usage tracking ([#147](https://github.com/DGouron/review-flow/issues/147)) ([2479b43](https://github.com/DGouron/review-flow/commit/2479b43c33d234a1d1ae787284cfb8d3763458bb))
14
+ * **harness:** bring harness + SDD to Shiplens parity ([#150](https://github.com/DGouron/review-flow/issues/150)) ([6ba6684](https://github.com/DGouron/review-flow/commit/6ba668468268368843feb36d2dd7eadf0a61efcc))
15
+
8
16
  ## [3.9.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.8.1...reviewflow-v3.9.0) (2026-04-03)
9
17
 
10
18
 
package/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/dgouron-review-flow-badge.png)](https://mseep.ai/app/dgouron-review-flow)
2
+
1
3
  # Reviewflow
2
4
 
3
5
  [![CI](https://github.com/DGouron/review-flow/actions/workflows/ci.yml/badge.svg)](https://github.com/DGouron/review-flow/actions/workflows/ci.yml)
@@ -1,19 +1,17 @@
1
1
  import type { AgentDefinition } from '../entities/progress/agentDefinition.type.js';
2
2
  import type { Language } from '../entities/language/language.schema.js';
3
- /**
4
- * Project-specific review configuration
5
- * Located in each project's .claude/reviews/config.json
6
- */
3
+ import type { RoutingPolicy } from '../entities/modelRouting/modelRouting.schema.js';
7
4
  export interface ProjectConfig {
8
5
  github: boolean;
9
6
  gitlab: boolean;
10
- defaultModel: 'sonnet' | 'opus';
7
+ defaultModel: 'haiku' | 'sonnet' | 'opus';
11
8
  reviewSkill: string;
12
9
  reviewFollowupSkill: string;
13
10
  language: Language;
14
11
  retentionDays: number;
15
12
  agents?: AgentDefinition[];
16
13
  followupAgents?: AgentDefinition[];
14
+ routingPolicy?: RoutingPolicy;
17
15
  }
18
16
  /**
19
17
  * Load project configuration from .claude/reviews/config.json
@@ -1 +1 @@
1
- {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;CACpC;AAmCD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CA+C9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,SAAS,CAOjF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAO9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,SAAS,CAOlF"}
1
+ {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAEpF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAuDD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAgD9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,SAAS,CAOjF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAO9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,SAAS,CAOlF"}
@@ -27,6 +27,23 @@ function validateAgents(agents) {
27
27
  displayName.length > 0);
28
28
  });
29
29
  }
30
+ function parseRoutingPolicy(value) {
31
+ if (value === null || value === undefined || typeof value !== 'object') {
32
+ return undefined;
33
+ }
34
+ const record = value;
35
+ const haikuMaxLines = record.haikuMaxLines;
36
+ const sonnetMaxLines = record.sonnetMaxLines;
37
+ if (typeof haikuMaxLines === 'number' &&
38
+ Number.isInteger(haikuMaxLines) &&
39
+ haikuMaxLines > 0 &&
40
+ typeof sonnetMaxLines === 'number' &&
41
+ Number.isInteger(sonnetMaxLines) &&
42
+ sonnetMaxLines > 0) {
43
+ return { haikuMaxLines, sonnetMaxLines };
44
+ }
45
+ return undefined;
46
+ }
30
47
  /**
31
48
  * Load project configuration from .claude/reviews/config.json
32
49
  * @param localPath - Path to the project root directory
@@ -62,13 +79,14 @@ export function loadProjectConfig(localPath) {
62
79
  return {
63
80
  github: Boolean(parsed.github),
64
81
  gitlab: Boolean(parsed.gitlab),
65
- defaultModel: parsed.defaultModel === 'opus' ? 'opus' : 'sonnet',
82
+ defaultModel: parsed.defaultModel === 'opus' ? 'opus' : parsed.defaultModel === 'haiku' ? 'haiku' : 'sonnet',
66
83
  reviewSkill: String(parsed.reviewSkill),
67
84
  reviewFollowupSkill: String(parsed.reviewFollowupSkill),
68
85
  language: parsed.language === 'fr' ? 'fr' : 'en',
69
86
  retentionDays: parseRetentionDays(parsed.retentionDays),
70
87
  agents: parsed.agents,
71
88
  followupAgents: parsed.followupAgents,
89
+ routingPolicy: parseRoutingPolicy(parsed.routingPolicy),
72
90
  };
73
91
  }
74
92
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAkBjC;;GAEG;AACH,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,MAAe;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACvC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;YACxB,OAAO,WAAW,KAAK,QAAQ;YAC/B,IAAI,CAAC,MAAM,GAAG,CAAC;YACf,WAAW,CAAC,MAAM,GAAG,CAAC,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC7C,IACE,OAAO,aAAa,KAAK,QAAQ;QACjC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;QAC/B,aAAa,GAAG,CAAC;QACjB,OAAO,cAAc,KAAK,QAAQ;QAClC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;QAChC,cAAc,GAAG,CAAC,EAClB,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAExE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAA4B,CAAC;IAEjE,2BAA2B;IAC3B,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC;IAClG,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,gBAAgB,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9B,YAAY,EAAE,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;QAC5G,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;QACvC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAChD,aAAa,EAAE,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC;QACvD,MAAM,EAAE,MAAM,CAAC,MAAuC;QACtD,cAAc,EAAE,MAAM,CAAC,cAA+C;QACtE,aAAa,EAAE,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,MAAM,EAAE,MAAM,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,MAAM,EAAE,aAAa,IAAI,sBAAsB,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,sBAAsB,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,MAAM,EAAE,cAAc,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { RoutingPolicy } from '../../entities/modelRouting/modelRouting.schema.js';
2
+ export interface RoutingPolicyGateway {
3
+ load(localPath: string): Promise<RoutingPolicy | null>;
4
+ }
5
+ //# sourceMappingURL=modelRouting.gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelRouting.gateway.d.ts","sourceRoot":"","sources":["../../../src/entities/modelRouting/modelRouting.gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAEpF,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CACxD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=modelRouting.gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelRouting.gateway.js","sourceRoot":"","sources":["../../../src/entities/modelRouting/modelRouting.gateway.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export declare const claudeModelNameSchema: z.ZodEnum<{
3
+ haiku: "haiku";
4
+ sonnet: "sonnet";
5
+ opus: "opus";
6
+ }>;
7
+ export declare const routingPolicySchema: z.ZodObject<{
8
+ haikuMaxLines: z.ZodNumber;
9
+ sonnetMaxLines: z.ZodNumber;
10
+ }, z.core.$strip>;
11
+ export type ClaudeModelName = z.infer<typeof claudeModelNameSchema>;
12
+ export type RoutingPolicy = z.infer<typeof routingPolicySchema>;
13
+ //# sourceMappingURL=modelRouting.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelRouting.schema.d.ts","sourceRoot":"","sources":["../../../src/entities/modelRouting/modelRouting.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;EAAsC,CAAC;AAEzE,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ export const claudeModelNameSchema = z.enum(['haiku', 'sonnet', 'opus']);
3
+ export const routingPolicySchema = z.object({
4
+ haikuMaxLines: z.number().int().positive(),
5
+ sonnetMaxLines: z.number().int().positive(),
6
+ });
7
+ //# sourceMappingURL=modelRouting.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelRouting.schema.js","sourceRoot":"","sources":["../../../src/entities/modelRouting/modelRouting.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { TokenUsageRecord } from '../../entities/tokenUsage/tokenUsage.schema.js';
2
+ export interface TokenUsageGateway {
3
+ record(record: TokenUsageRecord): Promise<void>;
4
+ loadAll(localPath: string): Promise<TokenUsageRecord[]>;
5
+ }
6
+ //# sourceMappingURL=tokenUsage.gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUsage.gateway.d.ts","sourceRoot":"","sources":["../../../src/entities/tokenUsage/tokenUsage.gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACzD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tokenUsage.gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUsage.gateway.js","sourceRoot":"","sources":["../../../src/entities/tokenUsage/tokenUsage.gateway.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { z } from 'zod';
2
+ export declare const tokenUsageSchema: z.ZodObject<{
3
+ inputTokens: z.ZodNumber;
4
+ outputTokens: z.ZodNumber;
5
+ cacheCreationInputTokens: z.ZodNumber;
6
+ cacheReadInputTokens: z.ZodNumber;
7
+ costUsd: z.ZodNumber;
8
+ }, z.core.$strip>;
9
+ export declare const tokenUsageRecordSchema: z.ZodObject<{
10
+ jobId: z.ZodString;
11
+ mrNumber: z.ZodNumber;
12
+ platform: z.ZodEnum<{
13
+ github: "github";
14
+ gitlab: "gitlab";
15
+ }>;
16
+ projectPath: z.ZodString;
17
+ model: z.ZodString;
18
+ recordedAt: z.ZodString;
19
+ localPath: z.ZodString;
20
+ usage: z.ZodObject<{
21
+ inputTokens: z.ZodNumber;
22
+ outputTokens: z.ZodNumber;
23
+ cacheCreationInputTokens: z.ZodNumber;
24
+ cacheReadInputTokens: z.ZodNumber;
25
+ costUsd: z.ZodNumber;
26
+ }, z.core.$strip>;
27
+ }, z.core.$strip>;
28
+ export type TokenUsage = z.infer<typeof tokenUsageSchema>;
29
+ export type TokenUsageRecord = z.infer<typeof tokenUsageRecordSchema>;
30
+ //# sourceMappingURL=tokenUsage.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUsage.schema.d.ts","sourceRoot":"","sources":["../../../src/entities/tokenUsage/tokenUsage.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;iBAM3B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;iBASjC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ export const tokenUsageSchema = z.object({
3
+ inputTokens: z.number(),
4
+ outputTokens: z.number(),
5
+ cacheCreationInputTokens: z.number(),
6
+ cacheReadInputTokens: z.number(),
7
+ costUsd: z.number(),
8
+ });
9
+ export const tokenUsageRecordSchema = z.object({
10
+ jobId: z.string(),
11
+ mrNumber: z.number(),
12
+ platform: z.enum(['gitlab', 'github']),
13
+ projectPath: z.string(),
14
+ model: z.string(),
15
+ recordedAt: z.string(),
16
+ localPath: z.string(),
17
+ usage: tokenUsageSchema,
18
+ });
19
+ //# sourceMappingURL=tokenUsage.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUsage.schema.js","sourceRoot":"","sources":["../../../src/entities/tokenUsage/tokenUsage.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE;IACpC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,gBAAgB;CACxB,CAAC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import type { Logger } from 'pino';
2
2
  import type { ReviewJob } from '../../frameworks/queue/pQueueAdapter.js';
3
3
  import type { ReviewProgress, ProgressEvent } from '../../entities/progress/progress.type.js';
4
+ import type { ClaudeModelName } from '../../entities/modelRouting/modelRouting.schema.js';
5
+ import type { TokenUsage } from '../../entities/tokenUsage/tokenUsage.schema.js';
4
6
  export declare function resolveMcpServerPath(): string;
5
7
  export declare function writeMcpContext(job: ReviewJob): void;
6
8
  /**
@@ -19,6 +21,8 @@ export interface InvocationResult {
19
21
  durationMs: number;
20
22
  finalProgress?: ReviewProgress;
21
23
  cancelled?: boolean;
24
+ usage?: TokenUsage | null;
25
+ selectedModel?: ClaudeModelName;
22
26
  }
23
27
  export type ProgressCallback = (progress: ReviewProgress, event?: ProgressEvent) => void;
24
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"claudeInvoker.d.ts","sourceRoot":"","sources":["../../../src/frameworks/claude/claudeInvoker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAmB1F,wBAAgB,oBAAoB,IAAI,MAAM,CAa7C;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAuBpD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CASrD;AAOD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;AA+GzF;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,gBAAgB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA8U3B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,IAAI,CAiBN"}
1
+ {"version":3,"file":"claudeInvoker.d.ts","sourceRoot":"","sources":["../../../src/frameworks/claude/claudeInvoker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAgB1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAS7E,wBAAgB,oBAAoB,IAAI,MAAM,CAa7C;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAuBpD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CASrD;AAOD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC;AA2CD,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;AA+GzF;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,gBAAgB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAqW3B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,IAAI,CAiBN"}
@@ -5,7 +5,7 @@ import { fileURLToPath } from 'node:url';
5
5
  import { ProgressParser } from '../../frameworks/claude/progressParser.js';
6
6
  import { logInfo, logWarn, logError } from '../../frameworks/logging/logBuffer.js';
7
7
  import { getModel } from '../../frameworks/settings/runtimeSettings.js';
8
- import { getProjectAgents, getFollowupAgents } from '../../config/projectConfig.js';
8
+ import { getProjectAgents, getFollowupAgents, loadProjectConfig } from '../../config/projectConfig.js';
9
9
  import { addReviewStats } from '../../services/statsService.js';
10
10
  import { FileSystemReviewRequestTrackingGateway } from '../../interface-adapters/gateways/fileSystem/reviewRequestTracking.fileSystem.js';
11
11
  import { ProjectStatsCalculator } from '../../interface-adapters/presenters/projectStats.calculator.js';
@@ -16,6 +16,11 @@ import { defaultGitHubExecutor } from '../../interface-adapters/gateways/threadF
16
16
  import { resolveClaudePath } from '../../shared/services/claudePathResolver.js';
17
17
  import { getJobContextFilePath } from '../../shared/services/mcpJobContext.js';
18
18
  import { buildLanguageDirective } from '../../frameworks/claude/languageDirective.js';
19
+ import { SelectModelForReviewUseCase } from '../../usecases/selectModelForReview/selectModelForReview.usecase.js';
20
+ import { ProjectConfigRoutingPolicyGateway } from '../../interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.js';
21
+ import { TrackTokenUsageUseCase } from '../../usecases/trackTokenUsage/trackTokenUsage.usecase.js';
22
+ import { FilesystemTokenUsageGateway } from '../../interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.js';
23
+ import { StreamJsonParser } from '../../frameworks/claude/streamJsonParser.js';
19
24
  const currentDir = dirname(fileURLToPath(import.meta.url));
20
25
  export function resolveMcpServerPath() {
21
26
  // dist/frameworks/claude/claudeInvoker.js → dist/mcpServer.js
@@ -86,6 +91,40 @@ export function cleanupMcpContext(jobId) {
86
91
  const MEMORY_LIMIT_GB = 4; // Kill process if RSS exceeds 4GB
87
92
  const MEMORY_CHECK_INTERVAL_MS = 5000; // Check every 5 seconds
88
93
  const MEMORY_LIMIT_BYTES = MEMORY_LIMIT_GB * 1024 * 1024 * 1024;
94
+ function fetchDiffStatsSafely(job, logger) {
95
+ try {
96
+ const gateway = job.platform === 'github'
97
+ ? new GitHubDiffStatsFetchGateway(defaultGitHubExecutor)
98
+ : new GitLabDiffStatsFetchGateway(defaultGitLabExecutor);
99
+ return gateway.fetchDiffStats(job.projectPath, job.mrNumber);
100
+ }
101
+ catch (error) {
102
+ logger.warn({ jobId: job.id, error }, 'Failed to fetch diff stats');
103
+ return null;
104
+ }
105
+ }
106
+ async function resolveModel(job, diffStats, logger) {
107
+ if (job.model) {
108
+ return job.model;
109
+ }
110
+ let defaultModel = getModel();
111
+ try {
112
+ const projectConfig = loadProjectConfig(job.localPath);
113
+ if (projectConfig?.defaultModel) {
114
+ defaultModel = projectConfig.defaultModel;
115
+ }
116
+ }
117
+ catch (error) {
118
+ logger.warn({ jobId: job.id, error }, 'Failed to load project config, using runtime default');
119
+ }
120
+ const routingGateway = new ProjectConfigRoutingPolicyGateway();
121
+ const policy = await routingGateway.load(job.localPath);
122
+ if (!policy || !diffStats) {
123
+ return defaultModel;
124
+ }
125
+ const selector = new SelectModelForReviewUseCase();
126
+ return selector.execute({ diffStats, policy, defaultModel });
127
+ }
89
128
  /**
90
129
  * Build MCP system prompt for progress tracking
91
130
  * This instruction is AUTHORITATIVE and forces Claude to use MCP tools
@@ -205,8 +244,10 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
205
244
  const startTime = Date.now();
206
245
  // Build the prompt
207
246
  const prompt = `/${job.skill} ${job.mrNumber}`;
208
- // Get configured model
209
- const model = getModel();
247
+ // Fetch diff stats once: reused for both model routing and end-of-review stats
248
+ const diffStats = fetchDiffStatsSafely(job, logger);
249
+ // Select model: explicit job override > routing policy + diff stats > project default > runtime default
250
+ const model = await resolveModel(job, diffStats, logger);
210
251
  // Build MCP system prompt injection
211
252
  const mcpSystemPrompt = buildMcpSystemPrompt(job);
212
253
  // Build MCP config: isolated from project .mcp.json to avoid
@@ -217,7 +258,8 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
217
258
  // --allowedTools / --disallowedTools: belt-and-suspenders to restrict tool scope
218
259
  // --mcp-config + --strict-mcp-config: use ONLY review-progress MCP server
219
260
  const args = [
220
- '--print',
261
+ '--output-format', 'stream-json',
262
+ '--verbose',
221
263
  '--model', model,
222
264
  '--permission-mode', 'bypassPermissions',
223
265
  '--append-system-prompt', mcpSystemPrompt,
@@ -273,6 +315,7 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
273
315
  let stdout = '';
274
316
  let stderr = '';
275
317
  let cancelled = false;
318
+ const streamParser = new StreamJsonParser();
276
319
  const childEnv = { ...process.env };
277
320
  // Remove CLAUDECODE to allow spawning Claude from within a Claude session
278
321
  childEnv.CLAUDECODE = undefined;
@@ -347,9 +390,10 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
347
390
  child.stdout.on('data', (data) => {
348
391
  const chunk = data.toString();
349
392
  stdout += chunk;
350
- // Parse progress markers from chunk
393
+ streamParser.feed(chunk);
394
+ // Progress markers may still appear in assistant text within stream-json events;
395
+ // feeding the raw chunk keeps any legacy markers detected without coupling to JSON shape.
351
396
  progressParser.parseChunk(chunk);
352
- // Log progress in real-time (truncated)
353
397
  const preview = chunk.length > 200 ? chunk.substring(0, 200) + '...' : chunk;
354
398
  logger.debug({ preview }, 'Claude stdout');
355
399
  });
@@ -372,7 +416,7 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
372
416
  finalProgress: progressParser.getProgress(),
373
417
  });
374
418
  });
375
- child.on('close', (code) => {
419
+ child.on('close', async (code) => {
376
420
  // Cleanup interval, abort listener, and MCP context
377
421
  clearInterval(memoryCheckInterval);
378
422
  cleanupMcpContext(job.id);
@@ -381,7 +425,9 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
381
425
  }
382
426
  const durationMs = Date.now() - startTime;
383
427
  const success = code === 0 && !cancelled && !memoryExceeded;
384
- // Save stdout to log file for debugging
428
+ const assistantText = streamParser.getAssistantText();
429
+ const tokenUsage = streamParser.getUsage();
430
+ // Save logs: raw stream-json + reconstructed human text for readability
385
431
  try {
386
432
  const logsDir = join(job.localPath, '.claude', 'reviews', 'logs');
387
433
  if (!existsSync(logsDir)) {
@@ -389,7 +435,7 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
389
435
  }
390
436
  const sanitizedJobId = job.id.replace(/[:/\\]/g, '-');
391
437
  const logPath = join(logsDir, `${sanitizedJobId}-stdout.log`);
392
- writeFileSync(logPath, `=== Claude Review Output ===\nJob: ${job.id}\nMR: ${job.mrNumber}\nSkill: ${job.skill}\nExit code: ${code}\nDuration: ${Math.round(durationMs / 1000)}s\nTimestamp: ${new Date().toISOString()}\n\n--- STDOUT ---\n${stdout}\n\n--- STDERR ---\n${stderr}\n`);
438
+ writeFileSync(logPath, `=== Claude Review Output ===\nJob: ${job.id}\nMR: ${job.mrNumber}\nSkill: ${job.skill}\nModel: ${model}\nExit code: ${code}\nDuration: ${Math.round(durationMs / 1000)}s\nTimestamp: ${new Date().toISOString()}\n\n--- ASSISTANT TEXT ---\n${assistantText}\n\n--- STDERR ---\n${stderr}\n\n--- RAW STREAM-JSON ---\n${stdout}\n`);
393
439
  logger.info({ logPath }, 'Review stdout saved to log file');
394
440
  }
395
441
  catch {
@@ -447,7 +493,8 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
447
493
  jobId: job.id,
448
494
  mrNumber: job.mrNumber,
449
495
  duration: `${durationMin} min`,
450
- outputLength: stdout.length,
496
+ outputLength: assistantText.length,
497
+ model,
451
498
  });
452
499
  // Save review statistics (followups are not counted as reviews)
453
500
  if (job.jobType !== 'followup') {
@@ -456,29 +503,39 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
456
503
  const trackingGateway = new FileSystemReviewRequestTrackingGateway(new ProjectStatsCalculator());
457
504
  const mrDetails = trackingGateway.getById(job.localPath, mrId);
458
505
  const assignedBy = mrDetails?.assignment?.username;
459
- let diffStats = null;
460
- try {
461
- const diffStatsFetchGateway = job.platform === 'github'
462
- ? new GitHubDiffStatsFetchGateway(defaultGitHubExecutor)
463
- : new GitLabDiffStatsFetchGateway(defaultGitLabExecutor);
464
- diffStats = diffStatsFetchGateway.fetchDiffStats(job.projectPath, job.mrNumber);
465
- }
466
- catch {
467
- logger.warn({ jobId: job.id }, 'Failed to fetch diff stats, continuing without');
468
- }
469
- const reviewStats = addReviewStats(job.localPath, job.mrNumber, durationMs, stdout, assignedBy, diffStats);
506
+ const reviewStats = addReviewStats(job.localPath, job.mrNumber, durationMs, assistantText, assignedBy, diffStats);
470
507
  logger.info({ reviewStats }, 'Stats de review enregistrées');
471
508
  }
472
509
  catch (statsError) {
473
510
  logger.warn({ error: statsError }, 'Erreur lors de l\'enregistrement des stats');
474
511
  }
475
512
  }
476
- // Log stdout preview for debugging
477
- if (stdout.length > 0) {
513
+ // Persist token usage for cost tracking (non-critical, never blocks the review result)
514
+ if (tokenUsage) {
515
+ try {
516
+ const tracker = new TrackTokenUsageUseCase(new FilesystemTokenUsageGateway());
517
+ await tracker.execute({
518
+ jobId: job.id,
519
+ mrNumber: job.mrNumber,
520
+ platform: job.platform,
521
+ projectPath: job.projectPath,
522
+ localPath: job.localPath,
523
+ model,
524
+ recordedAt: new Date().toISOString(),
525
+ usage: tokenUsage,
526
+ });
527
+ logger.info({ jobId: job.id, model, usage: tokenUsage }, 'Token usage recorded');
528
+ }
529
+ catch (trackError) {
530
+ logger.warn({ jobId: job.id, error: trackError }, 'Failed to persist token usage');
531
+ }
532
+ }
533
+ // Log assistant text preview for debugging
534
+ if (assistantText.length > 0) {
478
535
  logInfo('Claude output preview', {
479
536
  jobId: job.id,
480
- preview: stdout.substring(0, 1000),
481
- fullLength: stdout.length,
537
+ preview: assistantText.substring(0, 1000),
538
+ fullLength: assistantText.length,
482
539
  });
483
540
  }
484
541
  }
@@ -489,17 +546,19 @@ export async function invokeClaudeReview(job, logger, onProgress, signal) {
489
546
  exitCode: code,
490
547
  duration: `${durationMin} min`,
491
548
  stderr: stderr.substring(0, 500),
492
- stdoutPreview: stdout.substring(0, 300),
549
+ stdoutPreview: (assistantText || stdout).substring(0, 300),
493
550
  });
494
551
  }
495
552
  resolve({
496
553
  success,
497
554
  exitCode: memoryExceeded ? null : code,
498
- stdout,
555
+ stdout: assistantText,
499
556
  stderr,
500
557
  durationMs,
501
558
  finalProgress,
502
559
  cancelled: cancelled || memoryExceeded,
560
+ usage: tokenUsage,
561
+ selectedModel: model,
503
562
  });
504
563
  });
505
564
  });
@@ -1 +1 @@
1
- {"version":3,"file":"claudeInvoker.js","sourceRoot":"","sources":["../../../src/frameworks/claude/claudeInvoker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claudeInvoker.js","sourceRoot":"","sources":["../../../src/frameworks/claude/claudeInvoker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import type { TokenUsage } from '../../entities/tokenUsage/tokenUsage.schema.js';
3
+ declare const systemEventSchema: z.ZodObject<{
4
+ type: z.ZodLiteral<"system">;
5
+ subtype: z.ZodString;
6
+ session_id: z.ZodOptional<z.ZodString>;
7
+ model: z.ZodOptional<z.ZodString>;
8
+ }, z.core.$strip>;
9
+ declare const assistantEventSchema: z.ZodObject<{
10
+ type: z.ZodLiteral<"assistant">;
11
+ message: z.ZodObject<{
12
+ content: z.ZodArray<z.ZodObject<{
13
+ type: z.ZodString;
14
+ text: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>>;
16
+ }, z.core.$strip>;
17
+ }, z.core.$strip>;
18
+ declare const resultEventSchema: z.ZodObject<{
19
+ type: z.ZodLiteral<"result">;
20
+ subtype: z.ZodString;
21
+ total_cost_usd: z.ZodNumber;
22
+ usage: z.ZodObject<{
23
+ input_tokens: z.ZodNumber;
24
+ output_tokens: z.ZodNumber;
25
+ cache_creation_input_tokens: z.ZodNumber;
26
+ cache_read_input_tokens: z.ZodNumber;
27
+ }, z.core.$strip>;
28
+ }, z.core.$strip>;
29
+ export type StreamJsonEvent = z.infer<typeof systemEventSchema> | z.infer<typeof assistantEventSchema> | z.infer<typeof resultEventSchema> | {
30
+ type: string;
31
+ };
32
+ export declare class StreamJsonParser {
33
+ private buffer;
34
+ private assistantText;
35
+ private usage;
36
+ private rawEvents;
37
+ feed(chunk: string): void;
38
+ getAssistantText(): string;
39
+ getUsage(): TokenUsage | null;
40
+ getRawEvents(): readonly StreamJsonEvent[];
41
+ private parseLine;
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=streamJsonParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamJsonParser.d.ts","sourceRoot":"","sources":["../../../src/frameworks/claude/streamJsonParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAE7E,QAAA,MAAM,iBAAiB;;;;;iBAKrB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;;;;iBAUxB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;iBAUrB,CAAC;AAEH,MAAM,MAAM,eAAe,GACvB,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACjC,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GACpC,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACjC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,SAAS,CAAyB;IAE1C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUzB,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,IAAI,UAAU,GAAG,IAAI;IAI7B,YAAY,IAAI,SAAS,eAAe,EAAE;IAI1C,OAAO,CAAC,SAAS;CAkDlB"}