reviewflow 3.8.1 → 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.
- package/CHANGELOG.md +16 -0
- package/README.md +2 -0
- package/dist/config/projectConfig.d.ts +3 -5
- package/dist/config/projectConfig.d.ts.map +1 -1
- package/dist/config/projectConfig.js +19 -1
- package/dist/config/projectConfig.js.map +1 -1
- package/dist/entities/modelRouting/modelRouting.gateway.d.ts +5 -0
- package/dist/entities/modelRouting/modelRouting.gateway.d.ts.map +1 -0
- package/dist/entities/modelRouting/modelRouting.gateway.js +2 -0
- package/dist/entities/modelRouting/modelRouting.gateway.js.map +1 -0
- package/dist/entities/modelRouting/modelRouting.schema.d.ts +13 -0
- package/dist/entities/modelRouting/modelRouting.schema.d.ts.map +1 -0
- package/dist/entities/modelRouting/modelRouting.schema.js +7 -0
- package/dist/entities/modelRouting/modelRouting.schema.js.map +1 -0
- package/dist/entities/tokenUsage/tokenUsage.gateway.d.ts +6 -0
- package/dist/entities/tokenUsage/tokenUsage.gateway.d.ts.map +1 -0
- package/dist/entities/tokenUsage/tokenUsage.gateway.js +2 -0
- package/dist/entities/tokenUsage/tokenUsage.gateway.js.map +1 -0
- package/dist/entities/tokenUsage/tokenUsage.schema.d.ts +30 -0
- package/dist/entities/tokenUsage/tokenUsage.schema.d.ts.map +1 -0
- package/dist/entities/tokenUsage/tokenUsage.schema.js +19 -0
- package/dist/entities/tokenUsage/tokenUsage.schema.js.map +1 -0
- package/dist/frameworks/claude/claudeInvoker.d.ts +4 -0
- package/dist/frameworks/claude/claudeInvoker.d.ts.map +1 -1
- package/dist/frameworks/claude/claudeInvoker.js +86 -27
- package/dist/frameworks/claude/claudeInvoker.js.map +1 -1
- package/dist/frameworks/claude/streamJsonParser.d.ts +44 -0
- package/dist/frameworks/claude/streamJsonParser.d.ts.map +1 -0
- package/dist/frameworks/claude/streamJsonParser.js +96 -0
- package/dist/frameworks/claude/streamJsonParser.js.map +1 -0
- package/dist/frameworks/queue/pQueueAdapter.d.ts +2 -0
- package/dist/frameworks/queue/pQueueAdapter.d.ts.map +1 -1
- package/dist/frameworks/queue/pQueueAdapter.js.map +1 -1
- package/dist/frameworks/settings/runtimeSettings.d.ts +1 -1
- package/dist/frameworks/settings/runtimeSettings.d.ts.map +1 -1
- package/dist/frameworks/settings/runtimeSettings.js +1 -1
- package/dist/frameworks/settings/runtimeSettings.js.map +1 -1
- package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.d.ts +6 -0
- package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.js +8 -0
- package/dist/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.js.map +1 -0
- package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.d.ts +7 -0
- package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.d.ts.map +1 -0
- package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.js +37 -0
- package/dist/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.js.map +1 -0
- package/dist/tests/factories/routingPolicy.factory.d.ts +5 -0
- package/dist/tests/factories/routingPolicy.factory.d.ts.map +1 -0
- package/dist/tests/factories/routingPolicy.factory.js +10 -0
- package/dist/tests/factories/routingPolicy.factory.js.map +1 -0
- package/dist/tests/factories/tokenUsage.factory.d.ts +8 -0
- package/dist/tests/factories/tokenUsage.factory.d.ts.map +1 -0
- package/dist/tests/factories/tokenUsage.factory.js +28 -0
- package/dist/tests/factories/tokenUsage.factory.js.map +1 -0
- package/dist/tests/stubs/tokenUsage.stub.d.ts +11 -0
- package/dist/tests/stubs/tokenUsage.stub.d.ts.map +1 -0
- package/dist/tests/stubs/tokenUsage.stub.js +19 -0
- package/dist/tests/stubs/tokenUsage.stub.js.map +1 -0
- package/dist/tests/units/config/projectConfig.test.js +47 -0
- package/dist/tests/units/config/projectConfig.test.js.map +1 -1
- package/dist/tests/units/frameworks/claude/streamJsonParser.test.d.ts +2 -0
- package/dist/tests/units/frameworks/claude/streamJsonParser.test.d.ts.map +1 -0
- package/dist/tests/units/frameworks/claude/streamJsonParser.test.js +83 -0
- package/dist/tests/units/frameworks/claude/streamJsonParser.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.js +44 -0
- package/dist/tests/units/interface-adapters/gateways/projectConfig/routingPolicy.projectConfig.gateway.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.d.ts +2 -0
- package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.d.ts.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.js +57 -0
- package/dist/tests/units/interface-adapters/gateways/tokenUsage/tokenUsage.filesystem.gateway.test.js.map +1 -0
- package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.js +55 -0
- package/dist/tests/units/usecases/selectModelForReview/selectModelForReview.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.js +64 -0
- package/dist/tests/units/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.test.js.map +1 -0
- package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.d.ts +2 -0
- package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.js +26 -0
- package/dist/tests/units/usecases/trackTokenUsage/trackTokenUsage.usecase.test.js.map +1 -0
- package/dist/usecases/selectModelForReview/selectModelForReview.usecase.d.ts +15 -0
- package/dist/usecases/selectModelForReview/selectModelForReview.usecase.d.ts.map +1 -0
- package/dist/usecases/selectModelForReview/selectModelForReview.usecase.js +16 -0
- package/dist/usecases/selectModelForReview/selectModelForReview.usecase.js.map +1 -0
- package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.d.ts +23 -0
- package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.d.ts.map +1 -0
- package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.js +38 -0
- package/dist/usecases/summarizeTokenUsage/summarizeTokenUsage.usecase.js.map +1 -0
- package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.d.ts +8 -0
- package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.d.ts.map +1 -0
- package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.js +10 -0
- package/dist/usecases/trackTokenUsage/trackTokenUsage.usecase.js.map +1 -0
- package/package.json +3 -3
- package/scripts/hooks/enforce-dependency-rule.sh +61 -0
- package/scripts/hooks/enforce-gateway-port-purity.sh +35 -0
- package/scripts/hooks/enforce-presenter-class.sh +34 -0
- package/scripts/hooks/no-barrel-exports.sh +23 -0
- package/scripts/hooks/parse-json.sh +17 -0
- package/scripts/hooks/pre-commit-gate.sh +29 -0
- package/scripts/hooks/protect-main-branch.sh +28 -0
- package/scripts/hooks/protect-main-push.sh +38 -0
- package/scripts/hooks/require-spec.sh +58 -0
- package/scripts/hooks/session-context.sh +47 -0
- package/scripts/hooks/tests/run-tests.sh +189 -0
- package/scripts/hooks/tests/test-architecture-hooks.sh +163 -0
- package/scripts/hooks/verify-spec-updated.sh +75 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,22 @@ 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
|
+
|
|
16
|
+
## [3.9.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.8.1...reviewflow-v3.9.0) (2026-04-03)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
* **harness:** add SDD+TDD double loop with deterministic hooks ([793c8d8](https://github.com/DGouron/review-flow/commit/793c8d8d0c38ba88c770e0a5971fb670e4209ae9))
|
|
22
|
+
* **harness:** add SDD+TDD double loop with deterministic hooks ([9a9a25a](https://github.com/DGouron/review-flow/commit/9a9a25af7925da8518ae53ebe5362a0a6743981f))
|
|
23
|
+
|
|
8
24
|
## [3.8.1](https://github.com/DGouron/review-flow/compare/reviewflow-v3.8.0...reviewflow-v3.8.1) (2026-03-16)
|
|
9
25
|
|
|
10
26
|
|
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
[](https://mseep.ai/app/dgouron-review-flow)
|
|
2
|
+
|
|
1
3
|
# Reviewflow
|
|
2
4
|
|
|
3
5
|
[](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;
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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;
|
|
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
|
-
//
|
|
209
|
-
const
|
|
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
|
-
'--
|
|
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
|
-
|
|
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
|
-
|
|
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---
|
|
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:
|
|
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
|
-
|
|
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
|
-
//
|
|
477
|
-
if (
|
|
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:
|
|
481
|
-
fullLength:
|
|
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"}
|