chorus-codes 0.8.24 → 0.8.25
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +2 -2
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
- package/.next/server/app/demo/[scenario]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new.html +1 -1
- package/.next/server/app/new.rsc +1 -1
- package/.next/server/app/new.segments/_full.segment.rsc +1 -1
- package/.next/server/app/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/new.segments/_index.segment.rsc +1 -1
- package/.next/server/app/new.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/new.segments/new.segment.rsc +1 -1
- package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/onboarding.html +1 -1
- package/.next/server/app/onboarding.rsc +1 -1
- package/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas.html +1 -1
- package/.next/server/app/personas.rsc +1 -1
- package/.next/server/app/personas.segments/_full.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_index.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
- package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/permissions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +1 -1
- package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/.next/server/app/templates.html +1 -1
- package/.next/server/app/templates.rsc +1 -1
- package/.next/server/app/templates.segments/_full.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_index.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +2 -2
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/trace +20 -20
- package/.next/trace-build +1 -1
- package/dist/daemon/runner/doer.js +24 -1
- package/dist/daemon/runner/doer.js.map +1 -1
- package/dist/daemon/runner/reviewer.js +27 -1
- package/dist/daemon/runner/reviewer.js.map +1 -1
- package/dist/lib/model-pricing.js +306 -0
- package/dist/lib/model-pricing.js.map +1 -0
- package/package.json +1 -1
- /package/.next/static/{jdUcCHB2b5lVrf4v8iQjl → 47MSfijpKVM6q0E0ye9Mr}/_buildManifest.js +0 -0
- /package/.next/static/{jdUcCHB2b5lVrf4v8iQjl → 47MSfijpKVM6q0E0ye9Mr}/_ssgManifest.js +0 -0
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-webpack","duration":
|
|
1
|
+
[{"name":"run-webpack","duration":10759548,"timestamp":6759150241853,"id":14,"parentId":1,"tags":{},"startTime":1778150520668,"traceId":"be366b601b9cab6b"},{"name":"run-typescript","duration":5581739,"timestamp":6759161004366,"id":2103,"parentId":1,"tags":{},"startTime":1778150531430,"traceId":"be366b601b9cab6b"},{"name":"static-check","duration":430637,"timestamp":6759166628176,"id":2106,"parentId":1,"tags":{},"startTime":1778150537054,"traceId":"be366b601b9cab6b"},{"name":"static-generation","duration":1447930,"timestamp":6759167235367,"id":2146,"parentId":1,"tags":{},"startTime":1778150537661,"traceId":"be366b601b9cab6b"},{"name":"collect-build-traces","duration":6533098,"timestamp":6759167059275,"id":2143,"parentId":1,"tags":{},"startTime":1778150537485,"traceId":"be366b601b9cab6b"},{"name":"telemetry-flush","duration":32,"timestamp":6759173594051,"id":2155,"parentId":1,"tags":{},"startTime":1778150544020,"traceId":"be366b601b9cab6b"},{"name":"next-build","duration":23458741,"timestamp":6759150135352,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778150520561,"traceId":"be366b601b9cab6b"}]
|
|
@@ -56,6 +56,7 @@ const path = __importStar(require("path"));
|
|
|
56
56
|
const template_schema_js_1 = require("../../lib/template-schema.js");
|
|
57
57
|
const permissions_js_1 = require("../../lib/settings/permissions.js");
|
|
58
58
|
const cli_health_js_1 = require("../../lib/cli-health.js");
|
|
59
|
+
const model_pricing_js_1 = require("../../lib/model-pricing.js");
|
|
59
60
|
const stream_file_writer_js_1 = require("./stream-file-writer.js");
|
|
60
61
|
async function runDoerHeadless(args) {
|
|
61
62
|
const { shim, chatId, phase, round, agentName, askContent, answerFile, doerCwd, abortSignal, onEvent, modelOverride, } = args;
|
|
@@ -161,11 +162,33 @@ async function runDoerHeadless(args) {
|
|
|
161
162
|
// Persist runtime stats next to answer.md — see reviewer.ts for
|
|
162
163
|
// rationale. Use path.dirname + path.join (clearer than the
|
|
163
164
|
// anchored regex; flagged in retroactive PR #16 review).
|
|
165
|
+
//
|
|
166
|
+
// Cost synthesis: see same block in reviewer.ts. Doer's model is
|
|
167
|
+
// `modelOverride ?? phase.doer.models?.[0]` which we already
|
|
168
|
+
// resolved at top of function and passed into shim.runHeadless;
|
|
169
|
+
// re-resolve the same string here for the lookup.
|
|
170
|
+
let usageForStats = capturedUsage;
|
|
171
|
+
const doerModel = modelOverride ?? phase.doer.models?.[0];
|
|
172
|
+
if (usageForStats &&
|
|
173
|
+
usageForStats.costUsd === undefined &&
|
|
174
|
+
(usageForStats.inputTokens ||
|
|
175
|
+
usageForStats.outputTokens ||
|
|
176
|
+
usageForStats.cachedInputTokens)) {
|
|
177
|
+
try {
|
|
178
|
+
const synth = await (0, model_pricing_js_1.synthesizeCostUsd)(doerModel, usageForStats);
|
|
179
|
+
if (synth !== undefined) {
|
|
180
|
+
usageForStats = { ...usageForStats, costUsd: synth };
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
/* synthesis is informational — leave costUsd unset on failure */
|
|
185
|
+
}
|
|
186
|
+
}
|
|
164
187
|
try {
|
|
165
188
|
const statsPath = path.join(path.dirname(answerFile), '_stats.json');
|
|
166
189
|
fs.writeFileSync(statsPath, JSON.stringify({
|
|
167
190
|
durationMs: Date.now() - startedAt,
|
|
168
|
-
...(
|
|
191
|
+
...(usageForStats ? { usage: usageForStats } : {}),
|
|
169
192
|
}), 'utf-8');
|
|
170
193
|
}
|
|
171
194
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doer.js","sourceRoot":"","sources":["../../../src/daemon/runner/doer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"doer.js","sourceRoot":"","sources":["../../../src/daemon/runner/doer.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,7 @@ const path = __importStar(require("path"));
|
|
|
48
48
|
const template_schema_js_1 = require("../../lib/template-schema.js");
|
|
49
49
|
const permissions_js_1 = require("../../lib/settings/permissions.js");
|
|
50
50
|
const cli_health_js_1 = require("../../lib/cli-health.js");
|
|
51
|
+
const model_pricing_js_1 = require("../../lib/model-pricing.js");
|
|
51
52
|
const stream_file_writer_js_1 = require("./stream-file-writer.js");
|
|
52
53
|
const verdict_js_1 = require("./verdict.js");
|
|
53
54
|
async function runReviewerHeadless(args) {
|
|
@@ -168,10 +169,35 @@ async function runReviewerHeadless(args) {
|
|
|
168
169
|
// after a daemon restart or browser reload. Sidecar mirrors the
|
|
169
170
|
// existing _meta.json (transport metadata) shape — write best-
|
|
170
171
|
// effort, ignore errors.
|
|
172
|
+
//
|
|
173
|
+
// Cost synthesis: when the CLI emits tokens but no costUsd
|
|
174
|
+
// (gemini-cli reports total_tokens only; codex reports nothing
|
|
175
|
+
// in `exec` mode), look up the model in the OpenRouter pricing
|
|
176
|
+
// catalog and compute cost from tokens × $/token. Fills the
|
|
177
|
+
// "plan equivalent" column on the home page for the providers
|
|
178
|
+
// whose own JSON doesn't carry pricing. Best-effort: a missing
|
|
179
|
+
// model in the catalog or an offline daemon falls through to
|
|
180
|
+
// costUsd unset rather than reporting a fake $0.
|
|
181
|
+
let usageForStats = capturedUsage;
|
|
182
|
+
if (usageForStats &&
|
|
183
|
+
usageForStats.costUsd === undefined &&
|
|
184
|
+
(usageForStats.inputTokens ||
|
|
185
|
+
usageForStats.outputTokens ||
|
|
186
|
+
usageForStats.cachedInputTokens)) {
|
|
187
|
+
try {
|
|
188
|
+
const synth = await (0, model_pricing_js_1.synthesizeCostUsd)(candidateModel, usageForStats);
|
|
189
|
+
if (synth !== undefined) {
|
|
190
|
+
usageForStats = { ...usageForStats, costUsd: synth };
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
/* synthesis is informational — leave costUsd unset on failure */
|
|
195
|
+
}
|
|
196
|
+
}
|
|
171
197
|
try {
|
|
172
198
|
fs.writeFileSync(path.join(reviewerDir, '_stats.json'), JSON.stringify({
|
|
173
199
|
durationMs: Date.now() - startedAt,
|
|
174
|
-
...(
|
|
200
|
+
...(usageForStats ? { usage: usageForStats } : {}),
|
|
175
201
|
}), 'utf-8');
|
|
176
202
|
}
|
|
177
203
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../../src/daemon/runner/reviewer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../../src/daemon/runner/reviewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports._testing = void 0;
|
|
37
|
+
exports.getModelPricing = getModelPricing;
|
|
38
|
+
exports.synthesizeCostUsd = synthesizeCostUsd;
|
|
39
|
+
/**
|
|
40
|
+
* Model-pricing lookup. Backs the home page's "plan equivalent" spend
|
|
41
|
+
* column — for CLI shims that don't self-report cost (gemini-cli emits
|
|
42
|
+
* tokens only; codex `exec` emits nothing), we synthesize cost from
|
|
43
|
+
* tokens × $/token using OpenRouter's public model catalog.
|
|
44
|
+
*
|
|
45
|
+
* OpenRouter exposes prices in $ per token (not per Mtok) at
|
|
46
|
+
* `GET https://openrouter.ai/api/v1/models` — no auth required for the
|
|
47
|
+
* catalog. We fetch once at first need, cache in memory, persist a 24h
|
|
48
|
+
* disk copy at `~/.chorus/model-pricing.json` so a daemon restart reuses
|
|
49
|
+
* the snapshot instead of refetching cold.
|
|
50
|
+
*
|
|
51
|
+
* Model-id matching is dash/dot-insensitive: chorus uses `claude-opus-4-7`
|
|
52
|
+
* while OpenRouter uses `anthropic/claude-opus-4.7`. We normalize both
|
|
53
|
+
* sides to "lowercased, dots → dashes, vendor prefix stripped" before
|
|
54
|
+
* the lookup so the same logical model resolves regardless of cosmetic
|
|
55
|
+
* id drift.
|
|
56
|
+
*/
|
|
57
|
+
const fs = __importStar(require("fs"));
|
|
58
|
+
const os = __importStar(require("os"));
|
|
59
|
+
const path = __importStar(require("path"));
|
|
60
|
+
const CACHE_PATH = path.join(os.homedir(), '.chorus', 'model-pricing.json');
|
|
61
|
+
const DISK_TTL_MS = 24 * 60 * 60 * 1000;
|
|
62
|
+
const MEMORY_TTL_MS = 24 * 60 * 60 * 1000;
|
|
63
|
+
const FETCH_TIMEOUT_MS = 8_000;
|
|
64
|
+
const FAILURE_COOLDOWN_MS = 60_000;
|
|
65
|
+
const OPENROUTER_MODELS_URL = 'https://openrouter.ai/api/v1/models';
|
|
66
|
+
let memoryCache = null;
|
|
67
|
+
let inflightFetch = null;
|
|
68
|
+
// Negative cache: last failed-fetch timestamp. Suppresses re-fetch
|
|
69
|
+
// attempts for FAILURE_COOLDOWN_MS so an offline daemon doesn't pay an
|
|
70
|
+
// 8s timeout on every reviewer/doer that lacks costUsd. opencode-cli-2
|
|
71
|
+
// + cli-3 + openrouter all flagged this as a hot-path latency bug.
|
|
72
|
+
let lastFetchFailureAt = null;
|
|
73
|
+
/**
|
|
74
|
+
* Lowercase + replace dots with dashes. Used on both lookup key and
|
|
75
|
+
* catalog ids so `claude-opus-4-7` matches `anthropic/claude-opus-4.7`.
|
|
76
|
+
*/
|
|
77
|
+
function normalize(id) {
|
|
78
|
+
return id.toLowerCase().replace(/\./g, '-');
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Strip a leading `openrouter:` voice-id prefix the cockpit uses for
|
|
82
|
+
* OpenRouter voices — the actual model id is everything after the colon.
|
|
83
|
+
* Gateway prefixes (`opencode-go/`, etc.) are NOT stripped here; instead
|
|
84
|
+
* `getModelPricing` falls back to a bare-id lookup when the full
|
|
85
|
+
* normalized form misses. This handles `opencode-go/kimi-k2.6` →
|
|
86
|
+
* bare `kimi-k2-6` → catalog hit on `moonshotai/kimi-k2.6`.
|
|
87
|
+
*/
|
|
88
|
+
function stripVoicePrefix(id) {
|
|
89
|
+
if (id.startsWith('openrouter:'))
|
|
90
|
+
return id.slice('openrouter:'.length);
|
|
91
|
+
return id;
|
|
92
|
+
}
|
|
93
|
+
async function fetchOpenRouterCatalog() {
|
|
94
|
+
try {
|
|
95
|
+
const ac = new AbortController();
|
|
96
|
+
const timer = setTimeout(() => ac.abort(), FETCH_TIMEOUT_MS);
|
|
97
|
+
const res = await fetch(OPENROUTER_MODELS_URL, { signal: ac.signal });
|
|
98
|
+
clearTimeout(timer);
|
|
99
|
+
if (!res.ok)
|
|
100
|
+
return null;
|
|
101
|
+
const body = (await res.json());
|
|
102
|
+
if (!Array.isArray(body.data))
|
|
103
|
+
return null;
|
|
104
|
+
const prices = {};
|
|
105
|
+
for (const raw of body.data) {
|
|
106
|
+
if (typeof raw.id !== 'string' || !raw.id)
|
|
107
|
+
continue;
|
|
108
|
+
const promptStr = raw.pricing?.prompt;
|
|
109
|
+
const completionStr = raw.pricing?.completion;
|
|
110
|
+
const inputCost = typeof promptStr === 'string' ? Number.parseFloat(promptStr) : NaN;
|
|
111
|
+
const outputCost = typeof completionStr === 'string'
|
|
112
|
+
? Number.parseFloat(completionStr)
|
|
113
|
+
: NaN;
|
|
114
|
+
if (!Number.isFinite(inputCost) || !Number.isFinite(outputCost))
|
|
115
|
+
continue;
|
|
116
|
+
const fullId = raw.id; // e.g. "anthropic/claude-opus-4.7"
|
|
117
|
+
const normalizedFull = normalize(fullId);
|
|
118
|
+
const bareId = fullId.includes('/') ? fullId.split('/').pop() : fullId;
|
|
119
|
+
const normalizedBare = bareId ? normalize(bareId) : null;
|
|
120
|
+
const price = {
|
|
121
|
+
inputCostPerToken: inputCost,
|
|
122
|
+
outputCostPerToken: outputCost,
|
|
123
|
+
};
|
|
124
|
+
// Index both forms. Bare form lets a chorus call with model id
|
|
125
|
+
// `gemini-2.5-pro` (no vendor prefix) match `google/gemini-2.5-pro`;
|
|
126
|
+
// prefixed form lets a call with `x-ai/grok-4` match exactly.
|
|
127
|
+
// Bare collisions across vendors are possible (theoretically two
|
|
128
|
+
// vendors could ship a model with the same suffix); first-wins is
|
|
129
|
+
// fine for chorus's lineage-disambiguated calls.
|
|
130
|
+
if (normalizedBare && !(normalizedBare in prices)) {
|
|
131
|
+
prices[normalizedBare] = price;
|
|
132
|
+
}
|
|
133
|
+
prices[normalizedFull] = price;
|
|
134
|
+
}
|
|
135
|
+
return { fetchedAt: Date.now(), prices };
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function loadDiskCache() {
|
|
142
|
+
try {
|
|
143
|
+
if (!fs.existsSync(CACHE_PATH))
|
|
144
|
+
return null;
|
|
145
|
+
const raw = fs.readFileSync(CACHE_PATH, 'utf-8');
|
|
146
|
+
const parsed = JSON.parse(raw);
|
|
147
|
+
if (typeof parsed.fetchedAt !== 'number' ||
|
|
148
|
+
!parsed.prices ||
|
|
149
|
+
typeof parsed.prices !== 'object') {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
if (Date.now() - parsed.fetchedAt > DISK_TTL_MS)
|
|
153
|
+
return null;
|
|
154
|
+
return parsed;
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function persistDiskCache(snapshot) {
|
|
161
|
+
try {
|
|
162
|
+
const dir = path.dirname(CACHE_PATH);
|
|
163
|
+
if (!fs.existsSync(dir))
|
|
164
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
165
|
+
// Atomic write: render to a temp file then rename. POSIX rename is
|
|
166
|
+
// atomic on the same filesystem, so a crash mid-write leaves either
|
|
167
|
+
// the old file or the fully-written new file — never a truncated one.
|
|
168
|
+
// Reviewers (codex, opencode-cli-2/3/4, openrouter) all flagged the
|
|
169
|
+
// direct writeFileSync as a corruption risk on crash.
|
|
170
|
+
const tmpPath = `${CACHE_PATH}.tmp.${process.pid}`;
|
|
171
|
+
fs.writeFileSync(tmpPath, JSON.stringify(snapshot), { encoding: 'utf-8' });
|
|
172
|
+
fs.renameSync(tmpPath, CACHE_PATH);
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
/* best-effort — pricing cache is informational */
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Ensure the in-memory cache is populated and fresh. Loads the disk
|
|
180
|
+
* copy if it exists and is within DISK_TTL_MS, otherwise fetches from
|
|
181
|
+
* OpenRouter. Concurrent callers share an inflight promise so a hot
|
|
182
|
+
* daemon boot doesn't fan out N fetches. A failed fetch parks the
|
|
183
|
+
* cooldown so the daemon doesn't re-issue 8s-timeout calls back-to-back.
|
|
184
|
+
*
|
|
185
|
+
* Memory TTL (MEMORY_TTL_MS) was added after opencode-cli-4 flagged
|
|
186
|
+
* "memory cache never expires" — a long-running daemon would otherwise
|
|
187
|
+
* serve week-old pricing despite the disk file expiring on schedule.
|
|
188
|
+
*/
|
|
189
|
+
async function ensureCache() {
|
|
190
|
+
const now = Date.now();
|
|
191
|
+
if (memoryCache && now - memoryCache.fetchedAt < MEMORY_TTL_MS) {
|
|
192
|
+
return memoryCache;
|
|
193
|
+
}
|
|
194
|
+
// Memory expired — fall through to disk/fetch. Don't clear `memoryCache`
|
|
195
|
+
// yet; a failed refresh below should still be able to serve a stale
|
|
196
|
+
// value rather than nothing (graceful degradation when the network is
|
|
197
|
+
// out and nothing newer is available).
|
|
198
|
+
const disk = loadDiskCache();
|
|
199
|
+
if (disk) {
|
|
200
|
+
memoryCache = disk;
|
|
201
|
+
return memoryCache;
|
|
202
|
+
}
|
|
203
|
+
// Negative cache: if a recent fetch failed, don't retry within the
|
|
204
|
+
// cooldown window. Returns the stale memory cache (if any) so callers
|
|
205
|
+
// get a best-effort answer instead of paying another 8s timeout.
|
|
206
|
+
if (lastFetchFailureAt !== null &&
|
|
207
|
+
now - lastFetchFailureAt < FAILURE_COOLDOWN_MS) {
|
|
208
|
+
return memoryCache;
|
|
209
|
+
}
|
|
210
|
+
if (inflightFetch)
|
|
211
|
+
return inflightFetch;
|
|
212
|
+
inflightFetch = (async () => {
|
|
213
|
+
try {
|
|
214
|
+
const fetched = await fetchOpenRouterCatalog();
|
|
215
|
+
if (fetched) {
|
|
216
|
+
memoryCache = fetched;
|
|
217
|
+
lastFetchFailureAt = null;
|
|
218
|
+
persistDiskCache(fetched);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
lastFetchFailureAt = Date.now();
|
|
222
|
+
}
|
|
223
|
+
return memoryCache;
|
|
224
|
+
}
|
|
225
|
+
finally {
|
|
226
|
+
inflightFetch = null;
|
|
227
|
+
}
|
|
228
|
+
})();
|
|
229
|
+
return inflightFetch;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Look up pricing for a given chorus model id. Returns null when the
|
|
233
|
+
* model isn't in the OpenRouter catalog or the catalog isn't reachable
|
|
234
|
+
* (caller falls back to "no shadow cost recorded" — degraded gracefully).
|
|
235
|
+
*
|
|
236
|
+
* Lookup strategy (each step skipped if previous matched):
|
|
237
|
+
* 1. Full normalized id — `claude-opus-4-7` → catalog `claude-opus-4-7`,
|
|
238
|
+
* `x-ai/grok-4` → catalog `x-ai/grok-4`.
|
|
239
|
+
* 2. Bare suffix after the last `/` — handles gateway-prefixed ids
|
|
240
|
+
* like `opencode-go/kimi-k2.6` whose prefix isn't a known vendor;
|
|
241
|
+
* the bare `kimi-k2-6` key matches OpenRouter's `moonshotai/kimi-k2.6`.
|
|
242
|
+
* First-wins on bare-id collisions across vendors is acknowledged
|
|
243
|
+
* in fetchOpenRouterCatalog.
|
|
244
|
+
*/
|
|
245
|
+
async function getModelPricing(modelId) {
|
|
246
|
+
if (!modelId)
|
|
247
|
+
return null;
|
|
248
|
+
const cache = await ensureCache();
|
|
249
|
+
if (!cache)
|
|
250
|
+
return null;
|
|
251
|
+
const normalized = normalize(stripVoicePrefix(modelId));
|
|
252
|
+
const direct = cache.prices[normalized];
|
|
253
|
+
if (direct)
|
|
254
|
+
return direct;
|
|
255
|
+
if (normalized.includes('/')) {
|
|
256
|
+
const bare = normalized.slice(normalized.lastIndexOf('/') + 1);
|
|
257
|
+
return cache.prices[bare] ?? null;
|
|
258
|
+
}
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Convert (inputTokens, outputTokens, cachedInputTokens, model) → USD
|
|
263
|
+
* cost. Returns undefined when pricing is unavailable so callers can
|
|
264
|
+
* leave costUsd unset rather than reporting a fake $0.
|
|
265
|
+
*
|
|
266
|
+
* Contract: `inputTokens` and `cachedInputTokens` are MUTUALLY EXCLUSIVE
|
|
267
|
+
* partitions of total input — Claude Code emits them this way (the
|
|
268
|
+
* `usage.input_tokens` field is non-cached only; cached lives in
|
|
269
|
+
* `cache_read_input_tokens`). We sum both and price at the full input
|
|
270
|
+
* rate. OpenRouter's catalog doesn't expose per-model cached pricing
|
|
271
|
+
* reliably, so cached-as-full-price is intentional: it over-estimates
|
|
272
|
+
* the plan-equivalent spend by 0–10% on cache-heavy reviews, which is
|
|
273
|
+
* the right direction for "what your subscription saves you" framing
|
|
274
|
+
* (never under-promise the saving). Reviewers caught this — earlier
|
|
275
|
+
* draft accepted cachedInputTokens but never read it, leaving the
|
|
276
|
+
* contract ambiguous.
|
|
277
|
+
*/
|
|
278
|
+
async function synthesizeCostUsd(modelId, usage) {
|
|
279
|
+
if (!modelId)
|
|
280
|
+
return undefined;
|
|
281
|
+
const inputTokens = usage.inputTokens ?? 0;
|
|
282
|
+
const cachedInputTokens = usage.cachedInputTokens ?? 0;
|
|
283
|
+
const outputTokens = usage.outputTokens ?? 0;
|
|
284
|
+
const totalInput = inputTokens + cachedInputTokens;
|
|
285
|
+
if (totalInput <= 0 && outputTokens <= 0)
|
|
286
|
+
return undefined;
|
|
287
|
+
const price = await getModelPricing(modelId);
|
|
288
|
+
if (!price)
|
|
289
|
+
return undefined;
|
|
290
|
+
const cost = totalInput * price.inputCostPerToken +
|
|
291
|
+
outputTokens * price.outputCostPerToken;
|
|
292
|
+
return Number.isFinite(cost) && cost >= 0 ? cost : undefined;
|
|
293
|
+
}
|
|
294
|
+
// Test seam — exercised from tests/model-pricing.test.ts.
|
|
295
|
+
exports._testing = {
|
|
296
|
+
normalize,
|
|
297
|
+
stripVoicePrefix,
|
|
298
|
+
setMemoryCache: (snapshot) => {
|
|
299
|
+
memoryCache = snapshot;
|
|
300
|
+
inflightFetch = null;
|
|
301
|
+
},
|
|
302
|
+
getMemoryCache: () => memoryCache,
|
|
303
|
+
CACHE_PATH,
|
|
304
|
+
DISK_TTL_MS,
|
|
305
|
+
};
|
|
306
|
+
//# sourceMappingURL=model-pricing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../src/lib/model-pricing.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chorus-codes",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.25",
|
|
4
4
|
"description": "Driver-agnostic multi-LLM peer review for code decisions. Bring your own CLI; Chorus convenes 2-4 other LLMs to review the work before you ship.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "99x Agency",
|
|
File without changes
|
|
File without changes
|