From 11794ec7220a1f5fb280141dc5a8be0a04ab0fe6 Mon Sep 17 00:00:00 2001 From: xinspark <1813967922@qq.com> Date: Sat, 31 Oct 2026 02:11:15 +0800 Subject: [PATCH 1/6] feat: reference pricing, peak billing, fold cache, native transport, dashboard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds the reference price table (generated from opencode Zen + DeepSeek by scripts/gen-prices.mjs) and one resolution ladder in resolvePrice: user custom price, confirmed match, literal id, variant, fuzzy. Peak/off-peak billing follows the official DeepSeek rule (Beijing 09-12 and 14-18, Mon-Fri, excluding Chinese public holidays) against a generated holiday table. Persists the per-session fold result so a restart hydrates instead of re-reading the whole history: 0.08 s warm, against 12.5 s of pure inflate for 404 MB. It never prunes, because a partial listing once deleted 257 of 258 valid entries. Replaces the dynamic-plugin source endpoint with a native typert Remote face and keeps connection.fetch as the always-on fallback. Backfill starts on the first query rather than at activation. The cache-loading window is the only moment a loading state can be seen, and starting it from apply put that window before anyone opens the panel; the read-triggers-write trade-off is documented in docs/native-transport.md. The dashboard shows reference cost wherever a period is summarised, including the hover cards of the trend chart (bar and line) and the yearly heatmap: one TipRows serves all three, and only the rows that exist in the legend carry a colour swatch — 参考成本 and 调用次数 keep a colourless spacer so the labels still line up. --- .github/workflows/prices.yml | 84 ++ package-lock.json | 4 +- package.json | 13 +- scripts/fold-parity-fixture.mjs | 161 +++ scripts/gen-prices.mjs | 476 +++++++++ scripts/verify-remote-channel.mjs | 158 +++ scripts/verify-typert.mjs | 98 ++ src/client/index.js | 1663 +++++++++++++++++++++++++++-- src/host/client-source.js | 33 - src/host/fold-cache.js | 117 ++ src/host/fold.js | 11 + src/host/holidays.js | 104 ++ src/host/index.js | 355 +++++- src/host/peak.js | 113 ++ src/host/prices.js | 876 +++++++++++++++ src/host/pricing.js | 364 +++++++ src/host/query.js | 61 +- src/host/rpc.js | 104 +- src/host/scan.js | 239 ++++- src/host/settings.js | 195 ++-- src/host/state.js | 20 +- src/host/typert.js | 219 ++++ 22 files changed, 5174 insertions(+), 294 deletions(-) create mode 100644 .github/workflows/prices.yml create mode 100644 scripts/fold-parity-fixture.mjs create mode 100644 scripts/gen-prices.mjs create mode 100644 scripts/verify-remote-channel.mjs create mode 100644 scripts/verify-typert.mjs delete mode 100644 src/host/client-source.js create mode 100644 src/host/fold-cache.js create mode 100644 src/host/holidays.js create mode 100644 src/host/peak.js create mode 100644 src/host/prices.js create mode 100644 src/host/pricing.js create mode 100644 src/host/typert.js diff --git a/.github/workflows/prices.yml b/.github/workflows/prices.yml new file mode 100644 index 0000000..9c81f0d --- /dev/null +++ b/.github/workflows/prices.yml @@ -0,0 +1,84 @@ +name: prices + +# Keeps the reference price table and the holiday calendar current WITHOUT +# touching the code by hand: +# +# - the generator rewrites src/host/prices.js and src/host/holidays.js from +# the opencode Zen page, the DeepSeek pricing page and holiday-cn; +# - if anything changed, a branch is opened and a pull request is created. +# Nothing is merged automatically: a price change is a claim about money and +# deserves a human diff, exactly like a code change. +# +# Weekly rather than daily because both sources are list prices that move on the +# scale of weeks, and because a quiet week should produce no pull request at all +# (the "no change" path exits before pushing). + +on: + schedule: + # Mondays 01:17 UTC = 09:17 Beijing. + - cron: '17 1 * * 1' + workflow_dispatch: {} + +permissions: + contents: write + pull-requests: write + +concurrency: + group: prices + cancel-in-progress: false + +jobs: + refresh: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: npm + + - name: Install + run: npm ci + + - name: Regenerate the price table and holiday calendar + run: node scripts/gen-prices.mjs + + - name: Rebuild and run the gates + # A generator change that breaks a price has to fail here, not in a + # user's dashboard. + run: | + npm run build + npm test + + - name: Open a pull request when the data moved + shell: bash + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + if git diff --quiet -- src/host/prices.js src/host/holidays.js; then + echo "price table and holiday calendar are unchanged" + exit 0 + fi + branch="automation/prices" + git config user.name 'github-actions[bot]' + git config user.email '41898282+github-actions[bot]@users.noreply.github.com' + git push origin --delete "$branch" 2>/dev/null || true + git checkout -b "$branch" + git add src/host/prices.js src/host/holidays.js + git commit -m "chore(prices): refresh reference prices and holiday calendar" + git push -u origin "$branch" + gh pr create \ + --title "chore(prices): refresh reference prices and holiday calendar" \ + --body "Automated refresh of \`src/host/prices.js\` and \`src/host/holidays.js\`. + + Sources: opencode Zen (\`https://opencode.ai/v2/docs/console/models/\`), + DeepSeek official pricing (\`https://api-docs.deepseek.com/quick_start/pricing/\`), + holiday-cn (\`https://github.com/NateScarlet/holiday-cn\`). + + Review the diff as a price change: a moved number is a change to every + reference cost the plugin reports until the next refresh. The build and + the data gates (\`tests/price-data.test.js\`) already ran on this branch." \ + --base main --head "$branch" --label automation diff --git a/package-lock.json b/package-lock.json index ee0c571..946521c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dsh-plugin-usage", - "version": "0.4.0", + "version": "0.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dsh-plugin-usage", - "version": "0.4.0", + "version": "0.5.0", "license": "MIT", "dependencies": { "@deepseek-ai/schemastery": "~3.18.5" diff --git a/package.json b/package.json index 0ba72d6..356aab5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "dsh-plugin-usage", "description": "Token usage statistics for DeepSeek Harness — daily/custom-range views, model filters, call counts and cost, inspired by CC Switch statistics.", - "version": "0.4.0", + "version": "0.5.0", "license": "MIT", "repository": { "type": "git", @@ -40,10 +40,11 @@ ], "engines": { "node": ">=22", - "dsh": ">=0.2.0-rc.2 <0.3.0" + "dsh": ">=0.2.1-rc.3 <0.3.0" }, "dsh": { "manifestVersion": 1, + "verifiedAgainst": "0.2.1-rc.4", "bundle": { "patch": "./cordis.patch.yml" }, @@ -71,8 +72,12 @@ }, "scripts": { "build": "tsc -p tsconfig.json && node scripts/build-client.js", - "test": "node --test tests/*.test.js", + "test": "node --test tests/*.test.js tests/*.test.cjs", + "prices": "node scripts/gen-prices.mjs", "watch": "tsc -p tsconfig.json --watch", - "prepublishOnly": "npm run build && npm test" + "prepublishOnly": "npm run build && npm test && npm run verify:typert && npm run verify:remote", + "pretest": "npm run build", + "verify:typert": "node scripts/verify-typert.mjs", + "verify:remote": "node scripts/verify-remote-channel.mjs" } } diff --git a/scripts/fold-parity-fixture.mjs b/scripts/fold-parity-fixture.mjs new file mode 100644 index 0000000..71dcbd7 --- /dev/null +++ b/scripts/fold-parity-fixture.mjs @@ -0,0 +1,161 @@ +/** + * Record the parity fixture for the plugin's event fold. + * + * The plugin folds durable session events into usage records because the + * official `tokenUsage` projection only exposes per-session totals, while a + * dashboard needs per-model / per-timestamp rows. Claiming "this mirrors the + * official fold" is not evidence (xshared-lib experience ⓪.4), so this script + * runs the OFFICIAL fold over a fixed event script and records its output. + * + * It extracts `@deepseek-ai/dsh-token-meter/lib/types/usage-projection.js` from + * the installed Harness archive and executes its `apply` verbatim; only the + * module's imports are replaced by local shims (zod is a chainable no-op, the + * two helpers are copied from the same distribution). Regenerate with: + * + * node scripts/fold-parity-fixture.mjs [path/to/app.asar] + * + * The recorded numbers belong to the Harness version printed in `provenance`: + * re-run after a Harness upgrade, do not hand-edit. + */ +import { readFileSync, writeFileSync, mkdtempSync, existsSync, openSync, readSync, closeSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { join, dirname } from 'node:path' +import { fileURLToPath, pathToFileURL } from 'node:url' + +const here = dirname(fileURLToPath(import.meta.url)) +const out = join(here, '..', 'tests', 'fixtures', 'token-usage-parity.json') +const archive = process.argv[2] + || process.env.DSH_ASAR + || 'E:\\FXS\\APP\\DSH NEXT\\resources\\app.asar' + +if (!existsSync(archive)) { + console.error('asar not found: ' + archive + '\npass it as argv[1] or set DSH_ASAR') + process.exit(2) +} + +/** Read one entry out of an Electron asar (chromium pickle header). */ +function readAsarEntry(file, wanted, marker) { + const fd = openSync(file, 'r') + try { + const head = Buffer.alloc(16) + readSync(fd, head, 0, 16, 0) + const stringLen = head.readUInt32LE(12) + const json = Buffer.alloc(stringLen) + readSync(fd, json, 0, stringLen, 16) + const header = JSON.parse(json.toString('utf8')) + const entry = wanted.split('/').reduce((node, part) => { + if (!node || !node.files || !node.files[part]) throw new Error('missing ' + part + ' in ' + wanted) + return node.files[part] + }, header) + if (typeof entry.offset !== 'string') throw new Error('not a file: ' + wanted) + const data = Buffer.alloc(entry.size) + const bases = [8 + ((stringLen + 4 + 3) & ~3), 16 + ((stringLen + 3) & ~3)] + const wantsJson = wanted.endsWith('.json') + for (const base of bases) { + readSync(fd, data, 0, entry.size, base + Number(entry.offset)) + const text = data.toString('utf8') + if (wantsJson) { + try { JSON.parse(text); return text } catch { continue } + } + if (text.includes(marker)) { + // The data base can land a few bytes early, leaving the tail of the + // previous entry in front of the file: cut to the first comment. + const start = text.indexOf('/**') + return start > 0 ? text.slice(start) : text + } + } + throw new Error('could not decode ' + wanted) + } finally { + closeSync(fd) + } +} + +const PKG = 'node_modules/@deepseek-ai/dsh-token-meter' +const projectionSrc = readAsarEntry(archive, PKG + '/lib/types/usage-projection.js', 'export const tokenUsageProjectionDefinition') +const llmSrc = readAsarEntry(archive, PKG.replace('dsh-token-meter', 'dsh-llm') + '/lib/index.js', 'function lastAssistantStreamChunk') +const version = JSON.parse(readAsarEntry(archive, PKG + '/package.json', 'dsh-token-meter')).version + +// `lastAssistantStreamChunk` verbatim from the same distribution. +const helper = /function lastAssistantStreamChunk\(stream, type\) \{[\s\S]*?\n\}/.exec(llmSrc) +if (!helper) throw new Error('could not find lastAssistantStreamChunk in @deepseek-ai/dsh-llm') + +// Replace ONLY the imports: the fold body below them runs unmodified. +const body = projectionSrc + .replace(/^import[^\n]*\n/gmu, '') + .replace(/^\.map/m, '') +const shimmed = [ + '// zod stub: schemas are declared but never validated by apply().', + 'const chain = new Proxy(function () {}, { get: () => () => chain, apply: () => chain })', + 'const z = new Proxy({}, { get: () => (...args) => (args.length ? chain : chain) })', + helper[0], + 'const SessionSeq = (n) => n', + 'const foldSurfaceProjection = () => ({})', + body, +].join('\n') + +const dir = mkdtempSync(join(tmpdir(), 'usage-parity-')) +const modPath = join(dir, 'usage-projection.mjs') +writeFileSync(modPath, shimmed) +if (process.env.USAGE_PARITY_KEEP) console.log('shim kept at ' + modPath) +const { tokenUsageProjectionDefinition } = await import(pathToFileURL(modPath).href) +if (!tokenUsageProjectionDefinition || typeof tokenUsageProjectionDefinition.apply !== 'function') { + throw new Error('the official projection did not export apply()') +} + +/* + * The event script. Every branch of the official comment is covered: + * 1. a settlement with `data.usage` adds; + * 2. the same (turn, step) re-reporting a DIFFERENT figure replaces; + * 3. the same (turn, step) re-reporting the SAME figure changes nothing; + * 4. `llm/retry-started` closes the slot, so the retried attempt adds; + * 5. an attempt with no `data.usage` bills from its last stream usage chunk; + * 6. a message with neither reports nothing. + */ +const usage = (inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens) => + ({ inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens }) +const chunkUsage = (u) => ({ type: 'chunk', chunk: { type: 'usage', usage: u } }) +const chunkText = (text) => ({ type: 'chunk', chunk: { type: 'text', text } }) + +const events = [ + { seq: 1, time: 1761300000000, type: 'session', data: {} }, + { seq: 2, time: 1761300001000, type: 'request/context', data: { provider: 'deepseek-account', model: 'deepseek-flash' } }, + // 1. straight settlement + { seq: 3, time: 1761300002000, type: 'assistant/message', data: { turn: 0, step: 0, usage: usage(1000, 200, 5000, 100) } }, + // 2. same step re-reports a bigger cumulative figure -> replace, not add + { seq: 4, time: 1761300003000, type: 'assistant/message', data: { turn: 0, step: 0, usage: usage(1200, 250, 5000, 100) } }, + // 3. identical re-report -> no change + { seq: 5, time: 1761300004000, type: 'assistant/message', data: { turn: 0, step: 0, usage: usage(1200, 250, 5000, 100) } }, + // 5. attempt billing from the stream (no data.usage) + { seq: 6, time: 1761300005000, type: 'assistant/attempt', data: { turn: 1, step: 0, stream: [chunkText('hi'), chunkUsage(usage(300, 40, 0, 0))] } }, + // 4. retry: closes the slot, the retried attempt bills again + { seq: 7, time: 1761300006000, type: 'llm/retry-started', data: { turn: 1, step: 0 } }, + { seq: 8, time: 1761300007000, type: 'assistant/message', data: { turn: 1, step: 0, usage: usage(310, 45, 10, 0) } }, + // 6. nothing to bill + { seq: 9, time: 1761300008000, type: 'assistant/message', data: { turn: 2, step: 0, stream: [chunkText('no usage here')] } }, + // another turn, off a new model + { seq: 10, time: 1761300009000, type: 'request/context', data: { provider: 'coding-plan', model: 'glm-5.3-flash' } }, + { seq: 11, time: 1761300010000, type: 'assistant/message', data: { turn: 2, step: 1, usage: usage(50, 5, 900, 0) } }, +] + +let state = tokenUsageProjectionDefinition.init() +for (const event of events) state = tokenUsageProjectionDefinition.apply(state, event) +const expected = tokenUsageProjectionDefinition.wire.view(state) + +const fixture = { + $comment: + 'Recorded, never hand-edited: expected is the OFFICIAL tokenUsage fold ' + + '(@deepseek-ai/dsh-token-meter ' + version + ') applied to these events by ' + + 'scripts/fold-parity-fixture.mjs. Re-run that script after a Harness upgrade.', + provenance: { + package: '@deepseek-ai/dsh-token-meter', + version, + projection: 'lib/types/usage-projection.js#tokenUsageProjectionDefinition', + recordedAt: new Date().toISOString().slice(0, 10), + generator: 'scripts/fold-parity-fixture.mjs', + }, + events, + expected, +} +writeFileSync(out, JSON.stringify(fixture, null, 2) + '\n') +console.log('official totals:', JSON.stringify(expected)) +console.log('wrote ' + out) diff --git a/scripts/gen-prices.mjs b/scripts/gen-prices.mjs new file mode 100644 index 0000000..16cbb92 --- /dev/null +++ b/scripts/gen-prices.mjs @@ -0,0 +1,476 @@ +/** + * Generate the reference price table and the holiday calendar from their + * public sources. + * + * node scripts/gen-prices.mjs # fetch all three sources + * node scripts/gen-prices.mjs --offline # rebuild from the cached snapshots + * + * Outputs (both are data modules, NOT JSON: `tsconfig.json` sets + * `rootDir: src` / `outDir: lib` and only `src/**` is copied, so a `.json` file + * would never reach the published package): + * + * src/host/prices.js price table: Zen for everything, DeepSeek official + * (peak + off-peak) overriding the DeepSeek rows + * src/host/holidays.js public-holiday calendar for the peak rule + * + * Why a generator and not a runtime fetch: the price table has to be identical + * on every host with no network, and a stale table has to be visible in review + * rather than appearing live. The weekly workflow reruns this and opens a PR + * when the output changes. + * + * The line that is easy to get wrong and is therefore asserted twice: Zen lists + * DeepSeek at the PEAK rate. The DeepSeek provider block must therefore come + * from the official page, and the Zen row for the same model may only be a + * fallback. + */ +import { existsSync, readFileSync, writeFileSync } from 'node:fs'; +import { dirname, join } from 'node:path'; +import { homedir } from 'node:os'; +import { beijingYear, holidaySpan, mergeHolidayYear, sessionSpan } from './lib/holiday-years.mjs'; +import { fileURLToPath } from 'node:url'; + +const ROOT = dirname(dirname(fileURLToPath(import.meta.url))); + +const ZEN_URL = 'https://opencode.ai/v2/docs/console/models/'; +const DEEPSEEK_URL = 'https://api-docs.deepseek.com/quick_start/pricing/'; +const HOLIDAY_URL = (year) => `https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/${year}.json`; + +/** Snapshot cache, so `--offline` works and a flaky run is reproducible. */ +const CACHE_DIR = join(ROOT, '.cache'); + +const OFFLINE = process.argv.includes('--offline'); +const TIMEOUT_MS = 45_000; + +/** Session store the usage statistics read: the cheapest bound on their dates. */ +const SESSIONS_ROOT = process.env.DSH_SESSIONS_DIR || join(homedir(), '.dsh', 'sessions'); + +/** Optional explicit overrides: `--holiday-years 2024-2027`, `--usage-from`, `--usage-to`. */ +function argValue(name) { + const index = process.argv.indexOf(name); + return index >= 0 && index + 1 < process.argv.length ? process.argv[index + 1] : undefined; +} + +/** + * Years of holiday data to embed. + * + * Covers every year the usage statistics can contain, plus one year forward — + * an explicit `--holiday-years A-B` wins, otherwise the session store's dates + * decide (a dashboard with 2024 usage must ship 2024 holidays, or that year's + * holidays get billed at the peak rate). + */ +const HOLIDAY_SPAN = (() => { + const explicit = argValue('--holiday-years'); + if (explicit !== undefined) { + const [from, to] = explicit.split('-').map(Number); + if (!Number.isFinite(from) || !Number.isFinite(to) || to < from) { + throw new Error('--holiday-years needs a range like 2024-2027'); + } + return { from, to, usedUsage: false, source: 'argument' }; + } + const fromArg = argValue('--usage-from'); + const toArg = argValue('--usage-to'); + const usage = fromArg !== undefined || toArg !== undefined + ? { fromMs: Date.parse(fromArg || ''), toMs: Date.parse(toArg || '') } + : sessionSpan(SESSIONS_ROOT) || {}; + const span = holidaySpan({ + usageFromMs: Number.isFinite(usage.fromMs) ? usage.fromMs : undefined, + usageToMs: Number.isFinite(usage.toMs) ? usage.toMs : undefined, + }); + return { ...span, source: span.usedUsage ? 'session store (' + SESSIONS_ROOT + ')' : 'calendar default' }; +})(); + +const HOLIDAY_YEARS = (() => { + const years = []; + for (let year = HOLIDAY_SPAN.from; year <= HOLIDAY_SPAN.to; year += 1) years.push(year); + return years; +})(); + +const warnings = []; +const warn = (message) => { + warnings.push(message); + console.warn('WARN ' + message); +}; + +/* -------------------------------------------------------------------------- * + * Fetch + cache + * -------------------------------------------------------------------------- */ + +async function fetchText(url, cacheName) { + const cachePath = join(CACHE_DIR, cacheName); + if (OFFLINE) { + if (!existsSync(cachePath)) throw new Error(`--offline but ${cacheName} is not cached`); + return { text: readFileSync(cachePath, 'utf8'), fetchedAt: new Date().toISOString(), cached: true }; + } + const res = await fetch(url, { + headers: { 'user-agent': 'dsh-plugin-usage price generator (+https://github.com/bennett-dsh/dsh-plugin-usage)' }, + signal: AbortSignal.timeout(TIMEOUT_MS), + }); + if (!res.ok) throw new Error(`${url} answered HTTP ${res.status}`); + const text = await res.text(); + writeFileSync(cachePath, text); + return { text, fetchedAt: new Date().toISOString(), cached: false }; +} + +/* -------------------------------------------------------------------------- * + * opencode Zen + * + * Three tables on one page, located by their header cell rather than by + * position: [Model|Model ID|Endpoint|AI SDK], [Model|Input|Output|Cached + * Read|Cached Write], [Model|Deprecation date]. + * -------------------------------------------------------------------------- */ + +function parseTables(html) { + return [...html.matchAll(//gi)].map((m) => { + const rows = []; + for (const tr of m[0].match(/]*>([\s\S]*?)<\/tr>/gi) || []) { + const cells = []; + for (const td of tr.match(/]*>([\s\S]*?)<\/t[dh]>/gi) || []) { + cells.push( + td + .replace(/<[^>]+>/g, ' ') + .replace(/ /g, ' ') + .replace(/&/g, '&') + .replace(/>/g, '>') + .replace(/</g, '<') + .replace(/\s+/g, ' ') + .trim(), + ); + } + if (cells.length) rows.push(cells); + } + return rows; + }); +} + +/** "$1.36 $0.68" → { list: 1.36, value: 0.68 }; "$3.00" → 3; "Free" → 0; "-" → null. */ +function money(text) { + const t = String(text ?? '').trim(); + if (!t || t === '-' || t === '—') return null; + if (/^free$/i.test(t)) return { list: 0, value: 0 }; + const nums = [...t.matchAll(/[\d][\d,]*\.?\d*/g)].map((m) => Number(m[0].replace(/,/g, ''))).filter(Number.isFinite); + if (nums.length === 0) return null; + if (nums.length >= 2) return { list: nums[0], value: nums[1] }; + return { list: nums[0], value: nums[0] }; +} + +/** Trailing "( ... )" qualifier of a Zen row label, plus the text inside it. */ +function splitQualifier(label) { + const m = /^([\s\S]*?)\s*[((]([^))]*)[))]\s*$/.exec(label); + if (!m) return { base: label.trim(), inner: '' }; + return { base: m[1].trim(), inner: m[2].trim() }; +} + +function parseZen(html) { + const tables = parseTables(html); + const registry = tables.find((rows) => rows[0]?.some((c) => /^model id$/i.test(c))); + const pricing = tables.find((rows) => rows[0]?.some((c) => /cached read/i.test(c))); + const deprecation = tables.find((rows) => rows[0]?.some((c) => /deprecation/i.test(c))); + if (registry === undefined) throw new Error('Zen page has no registry table (Model / Model ID)'); + if (pricing === undefined) throw new Error('Zen page has no pricing table (Model / Input / Output / Cached Read / Cached Write)'); + + const idByName = new Map(); + for (const row of registry.slice(1)) { + if (row[0] && row[1]) idByName.set(row[0].trim(), row[1].trim()); + } + + const models = {}; + const surcharges = {}; + const notes = []; + for (const row of pricing.slice(1)) { + const label = row[0]; + if (!label) continue; + const { base, inner } = splitQualifier(label); + const id = idByName.get(base) || idByName.get(label); + if (id === undefined) { + notes.push({ id: null, kind: 'unmatched-row', text: label }); + continue; + } + const price = { + input: money(row[1]), + output: money(row[2]), + cacheRead: money(row[3]), + cacheWrite: money(row[4]), + }; + // Long-context surcharge rows ("(> 200K tokens)") are a different rate for a + // different request size; they are kept aside, never merged into the base. + const over = /^[>≥]/.test(inner); + const under = /^[<≤]/.test(inner); + if (over) { + surcharges[id] = { + input: price.input ? price.input.value : null, + output: price.output ? price.output.value : null, + cacheRead: price.cacheRead ? price.cacheRead.value : null, + tier: inner, + }; + continue; + } + if (models[id] !== undefined) continue; // "≤" row already took the slot + if (price.input?.list !== undefined && price.input.list !== price.input.value) { + notes.push({ id, kind: 'promo', text: `促销价生效(原价 ${price.input.list} → ${price.input.value})` }); + } + models[id] = { + input: price.input ? price.input.value : null, + output: price.output ? price.output.value : null, + cacheRead: price.cacheRead ? price.cacheRead.value : null, + cacheWrite: price.cacheWrite ? price.cacheWrite.value : null, + }; + if (under) models[id].contextTier = inner; + } + + const deprecated = []; + if (deprecation !== undefined) { + for (const row of deprecation.slice(1)) { + if (row[0]) deprecated.push({ name: row[0].trim(), date: (row[1] || '').trim() }); + } + } + + return { models, surcharges, notes, deprecated }; +} + +/* -------------------------------------------------------------------------- * + * DeepSeek official pricing + * + * The page prints one labelled table per generation. The live layout is a + * "MODEL | deepseek-flash | deepseek-v4-pro" header followed by label rows + * ("PRICING", "1M INPUT TOKENS (CACHE HIT)", then OFF-PEAK / PEAK pairs). + * -------------------------------------------------------------------------- */ + +/** + * The live layout is a three-column pricing block whose first column carries + * two pieces of information at once: + * + * ["PRICING (2)", "1M INPUT TOKENS (CACHE HIT)", "OFF-PEAK", "$0.003", "$0.022"] + * ["PEAK", "$0.006", "$0.044"] + * + * so "1M INPUT TOKENS (CACHE HIT)" both names the metric and opens the + * OFF-PEAK tier, while the follow-up row carries only "PEAK". Earlier layouts + * printed the numbers directly in the label row; both are handled. + */ +function parseDeepSeek(html) { + const tables = parseTables(html); + const table = tables.find((rows) => rows[0]?.[0] && /^model$/i.test(rows[0][0]) && rows[0].length >= 2); + if (table === undefined) throw new Error('DeepSeek page has no pricing table'); + + const header = table[0]; + // "deepseek-flash (1)" → "deepseek-flash"; the "(n)" is a footnote marker. + const ids = header.slice(1).map((name) => name.replace(/\s*[((]\d+[))]\s*$/, '').trim()).filter(Boolean); + const result = {}; + + const METRICS = [ + [/INPUT TOKENS \(CACHE HIT\)/, 'cacheRead'], + [/INPUT TOKENS \(CACHE MISS\)/, 'input'], + [/OUTPUT TOKENS/, 'output'], + ]; + const TIER = /^(OFF[\s-]?PEAK|PEAK)\b/; + + let metric = null; + for (const row of table.slice(1)) { + const cells = row.map((c) => String(c || '').trim()); + // Find the metric named anywhere in the row (first column of the live + // layout, but legacy tables put it in the label row's own cell). + let named = null; + let namedAt = -1; + for (let i = 0; i < cells.length; i++) { + for (const [re, name] of METRICS) { + if (re.test(cells[i].toUpperCase())) { + named = name; + namedAt = i; + break; + } + } + if (named !== null) break; + } + if (named !== null) metric = named; + + let tier = null; + let firstValue = 1; + for (let i = 0; i < cells.length; i++) { + const hit = TIER.exec(cells[i].toUpperCase()); + if (hit) { + tier = hit[1].replace(/\s+/g, '').toUpperCase() === 'PEAK' ? 'peak' : 'offPeak'; + firstValue = i + 1; + break; + } + } + + if (metric === null) continue; + if (named !== null && tier === null) { + // Legacy inline layout: the label row itself carries the numbers. + tier = 'peak'; + firstValue = namedAt + 1; + } + if (tier === null) continue; + + for (let i = 0; i < ids.length; i++) { + const cell = cells[firstValue + i]; + if (cell === undefined) break; + const value = money(cell); + if (value === null) continue; + result[ids[i]] = result[ids[i]] || {}; + result[ids[i]][tier] = result[ids[i]][tier] || {}; + result[ids[i]][tier][metric] = value.value; + } + } + return { models: result, header: header.slice(1) }; +} + +/* -------------------------------------------------------------------------- * + * Holidays + * -------------------------------------------------------------------------- */ + +async function collectHolidays() { + const dates = {}; + const years = {}; + for (const year of HOLIDAY_YEARS) { + let payload; + try { + const { text } = await fetchText(HOLIDAY_URL(year), `holiday-${year}.json`); + payload = JSON.parse(text); + } catch (error) { + warn(`节假日数据 ${year} 不可用:${error.message}`); + continue; + } + const days = Array.isArray(payload.days) ? payload.days : []; + const off = days.filter((d) => d && d.isOffDay === true && typeof d.date === 'string'); + if (off.length === 0) { + // The State Council publishes next year's arrangement in November, so an + // empty year is expected rather than broken. It is RECORDED as + // unpublished (not dropped): the UI has to be able to say "2027 is not + // published yet" instead of implying the year has no holidays. + warn(`${year} 节假日安排尚未公布(holiday-cn 无数据),该年按周末规则判定`); + } + mergeHolidayYear({ dates, years }, year, payload); + if (off.length === 0) continue; + const covered = off.map((d) => d.date).sort(); + // A published year always contains 国庆 (Oct 1-7) and never has public + // holidays after early October, so "ends in October" is normal. The real + // truncation signal is a file that stops BEFORE this year's 国庆 — that is a + // half-published year, and its missing days would fall back to the weekend + // rule. (The old check compared against Dec 31 and warned on every year.) + const nationalDay = `${year}-10-01`; + if (covered[covered.length - 1] < nationalDay) { + warn(`${year} 节假日数据只到 ${covered[covered.length - 1]}(缺 ${nationalDay} 起的国庆安排),该段按周末规则判定`); + } + } + return { dates, years }; +} + +/* -------------------------------------------------------------------------- * + * Emit + * -------------------------------------------------------------------------- */ + +const HEADER = '// GENERATED by scripts/gen-prices.mjs — do not edit by hand.\n'; + +/** + * Official DeepSeek ids whose row must also land on Zen's id for the same model. + * + * The two tables name one model differently (`deepseek-flash` vs + * `deepseek-v4.1-flash`), and Zen's single price for it happens to equal + * DeepSeek's PEAK price. Writing the tiered row under both ids is what keeps the + * peak / off-peak split reachable: a session that says either id must get the + * half-price off-peak rate, not Zen's flat peak number. + */ +const DEEPSEEK_ZEN_TWIN = { + 'deepseek-flash': 'deepseek-v4.1-flash', +}; + +function renderPrices({ zen, deepseek, zenFetchedAt, deepseekFetchedAt }) { + // DeepSeek: merge official peak/off-peak onto the model entry. Zen's row, when + // present, is kept as `fallback` so `pricing.js` can still price a model the + // official page dropped. + const models = {}; + for (const [id, price] of Object.entries(zen.models)) { + models[id] = { source: 'zen', ...price }; + } + for (const [id, tiers] of Object.entries(deepseek.models)) { + const entry = { source: 'deepseek' }; + entry.peak = { + input: tiers.peak?.input ?? null, + output: tiers.peak?.output ?? null, + cacheRead: tiers.peak?.cacheRead ?? null, + cacheWrite: null, + }; + entry.offPeak = { + input: tiers.offPeak?.input ?? entry.peak.input, + output: tiers.offPeak?.output ?? entry.peak.output, + cacheRead: tiers.offPeak?.cacheRead ?? entry.peak.cacheRead, + cacheWrite: null, + }; + const twin = DEEPSEEK_ZEN_TWIN[id]; + for (const key of twin === undefined ? [id] : [id, twin]) { + const zenRow = models[key] ? { ...models[key] } : null; + const copy = { ...entry, peak: { ...entry.peak }, offPeak: { ...entry.offPeak } }; + if (zenRow !== null) copy.fallback = zenRow; + models[key] = copy; + } + } + const payload = { + capturedAt: new Date().toISOString(), + unit: 'USD per 1M tokens', + sources: [ + { name: 'opencode Zen', url: ZEN_URL, fetchedAt: zenFetchedAt, models: Object.keys(zen.models).length }, + { name: 'DeepSeek', url: DEEPSEEK_URL, fetchedAt: deepseekFetchedAt, models: Object.keys(deepseek.models).length }, + ], + note: 'Zen 每个模型单一价;DeepSeek 条目来自官网,峰谷两套价,参考成本按成交时刻判定(见 peak.js)。', + models, + surcharges: zen.surcharges, + deprecated: zen.deprecated, + notes: zen.notes, + }; + return HEADER + 'export const REFERENCE_PRICES = ' + JSON.stringify(payload, null, 2) + ';\n'; +} + +function renderHolidays({ dates, years }) { + const payload = { + capturedAt: new Date().toISOString(), + source: 'https://github.com/NateScarlet/holiday-cn', + note: '中国法定节假日(isOffDay=true 的日期)。峰谷判定中这些日期全天按空闲时段计。', + // The span the calendar was fetched for: every year the usage statistics can + // reach, plus one year forward (arrangements appear in November). + coverage: { + fromYear: HOLIDAY_SPAN.from, + toYear: HOLIDAY_SPAN.to, + basis: HOLIDAY_SPAN.source, + years: HOLIDAY_YEARS, + }, + years, + dates, + }; + return HEADER + 'export const PUBLIC_HOLIDAYS = ' + JSON.stringify(payload, null, 2) + ';\n'; +} + +/* -------------------------------------------------------------------------- * + * Main + * -------------------------------------------------------------------------- */ + +async function main() { + const zenFetch = await fetchText(ZEN_URL, 'zen.html'); + const deepseekFetch = await fetchText(DEEPSEEK_URL, 'deepseek.html'); + const zen = parseZen(zenFetch.text); + const deepseek = parseDeepSeek(deepseekFetch.text); + const holidays = await collectHolidays(); + + const modelCount = Object.keys(zen.models).length; + if (modelCount < 80) throw new Error(`Zen table only has ${modelCount} models — page layout probably changed`); + const flash = deepseek.models['deepseek-flash']; + if (!flash || !flash.peak || !flash.offPeak) { + throw new Error('DeepSeek table has no peak/off-peak pair for deepseek-flash — page layout probably changed'); + } + + writeFileSync(join(ROOT, 'src/host/prices.js'), renderPrices({ + zen, + deepseek, + zenFetchedAt: zenFetch.fetchedAt, + deepseekFetchedAt: deepseekFetch.fetchedAt, + })); + writeFileSync(join(ROOT, 'src/host/holidays.js'), renderHolidays(holidays)); + + console.log(`prices.js : ${modelCount} Zen models, ${Object.keys(deepseek.models).length} DeepSeek models with peak/off-peak`); + console.log(`holidays.js: ${Object.keys(holidays.dates).length} dates across ${Object.keys(holidays.years).join(', ') || '(none)'}`); + console.log(`warnings : ${warnings.length}`); +} + +main().catch((error) => { + console.error('FAILED ' + (error && error.stack ? error.stack : error)); + process.exit(1); +}); diff --git a/scripts/verify-remote-channel.mjs b/scripts/verify-remote-channel.mjs new file mode 100644 index 0000000..4df1385 --- /dev/null +++ b/scripts/verify-remote-channel.mjs @@ -0,0 +1,158 @@ +/** + * Verify the native Remote channel against the REAL cordis and typert registry. + * + * The unit tests fake the registry, which cannot catch the failure this plugin + * actually hit: `ctx.get(name)` only returns a service whose providing fiber is + * ACTIVE (cordis `Context.get` -> `_getImpl`: `if (strict && impl.fiber.state + * !== 2) return`), so a one-shot probe at activation time reports "no typert + * registry" on a host that has one. This script mounts the shipped code beside + * the shipped registry and checks both directions: + * + * A. registry first + `ctx.inject(['typert'])` -> must reach Remote + * B. registry first + a one-shot `ctx.get` -> must fail (the old bug) + * + * node scripts/verify-remote-channel.mjs [path/to/app.asar] + * + * Needs the harness archive (cordis + typert-registry + protocol + zod are read + * out of it). Without one it reports SKIPPED and exits 0; the structural gates + * in tests/typert.test.js still run everywhere. + */ +import { openSync, readSync, closeSync, mkdirSync, writeFileSync, mkdtempSync, existsSync, rmSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { join, dirname, posix } from 'node:path' +import { fileURLToPath, pathToFileURL } from 'node:url' + +const here = dirname(fileURLToPath(import.meta.url)) +const archive = process.argv[2] || process.env.DSH_ASAR || 'E:\\FXS\\APP\\DSH NEXT\\resources\\app.asar' +if (!existsSync(archive)) { + console.log('SKIPPED: no harness archive at ' + archive) + console.log('(pass it as argv[1] or set DSH_ASAR; tests/typert.test.js still covers the shape)') + process.exit(0) +} + +/** Read one package tree out of an Electron asar. */ +function extract(src, dest, pkgs) { + const fd = openSync(src, 'r') + const head = Buffer.alloc(16) + readSync(fd, head, 0, 16, 0) + const headerLen = head.readUInt32LE(12) + const jsonBuf = Buffer.alloc(headerLen) + readSync(fd, jsonBuf, 0, headerLen, 16) + const header = JSON.parse(jsonBuf.toString('utf8')) + // Data begins after the pickle whose size sits at offset 4 (already aligned). + const bases = [8 + head.readUInt32LE(4), 8 + ((headerLen + 4 + 3) & ~3), 16 + ((headerLen + 3) & ~3)] + const getEntry = (path) => path.split('/').reduce((n, p) => (n && n.files ? n.files[p] : undefined), header) + const readEntry = (entry) => { + const data = Buffer.alloc(entry.size) + for (const base of bases) { + readSync(fd, data, 0, entry.size, base + Number(entry.offset)) + const text = data.toString('utf8') + if (text.includes('\uFFFD')) continue + if (entry.size > 0 && !/^[\s\S]/.test(text)) continue + return data + } + return null + } + try { + for (const pkg of pkgs) { + const root = getEntry('node_modules/' + pkg) + if (!root || !root.files) throw new Error('package not in archive: ' + pkg) + const walk = (directory, rel) => { + for (const [name, entry] of Object.entries(directory.files || {})) { + const childRel = rel === '' ? name : rel + '/' + name + if (entry.files) { walk(entry, childRel); continue } + if (entry.unpacked || typeof entry.offset !== 'string') continue + const data = readEntry(entry) + if (data === null) throw new Error('undecodable: ' + pkg + '/' + childRel) + if (name.endsWith('.json')) JSON.parse(data.toString('utf8')) + const out = join(dest, 'node_modules', ...posix.normalize(pkg + '/' + childRel).split('/')) + mkdirSync(dirname(out), { recursive: true }) + writeFileSync(out, data) + } + } + walk(root, '') + } + } finally { + closeSync(fd) + } +} + +const work = mkdtempSync(join(tmpdir(), 'usage-remote-')) +extract(archive, work, [ + '@deepseek-ai/cordis', + '@deepseek-ai/cosmokit', + '@deepseek-ai/dsh-typert-registry', + '@deepseek-ai/dsh-typert-protocol', + 'zod', +]) + +const mods = (p) => pathToFileURL(join(work, 'node_modules', ...p.split('/'))).href +const cordis = await import(mods('@deepseek-ai/cordis/lib/index.js')) +const registry = await import(mods('@deepseek-ai/dsh-typert-registry/lib/index.js')) +const { registerTypert } = await import(pathToFileURL(join(here, '..', 'src', 'host', 'typert.js')).href) + +const Context = cordis.Context || cordis.default?.Context +const registryPlugin = registry.apply || registry.default +if (typeof Context !== 'function') throw new Error('cordis has no Context export') +if (typeof registryPlugin !== 'function') throw new Error('the typert registry has no apply()') + +const HANDLERS = new Map([ + ['query', (args) => ({ kind: 'query', args })], + ['prices', () => ({ prices: {} })], + ['pricing', (args) => ({ kind: 'pricing', args })], + ['contract', () => ({ package: 'dsh-plugin-usage', names: ['query', 'prices', 'pricing'] })], +]) +const tick = () => new Promise((resolve) => setTimeout(resolve, 250)) + +/** A. the shipped shape: declare the dependency, register when it is live. */ +const fixed = new Context() +fixed.plugin(registryPlugin) +const channel = { ok: false, transport: 'fetch', reason: 'pending' } +const usagePlugin = (ctx) => { + ctx.inject(['typert'], (typertCtx) => { + Object.assign(channel, registerTypert(typertCtx, HANDLERS, () => {})) + }) +} +usagePlugin.inject = [] +fixed.plugin(usagePlugin) +await tick() + +const typert = fixed.get('typert') +const face = typert && typert.local && typeof typert.local.get === 'function' + ? typert.local.get('dsh-plugin-usage/query') + : undefined +const receiver = fixed.get('dsh-plugin-usage') + +let failed = 0 +const check = (name, cond, detail) => { + console.log((cond ? ' ok ' : ' FAIL ') + name + (cond || detail === undefined ? '' : ' [' + detail + ']')) + if (!cond) failed += 1 +} + +check('the declared dependency activates the registration', channel.transport === 'remote', channel.reason) +check('the registry stores the face under /', Boolean(face), face === undefined ? 'not registered' : 'ok') +if (face !== undefined) { + check('the stored invocation names the package as its namespace', face.namespace === 'dsh-plugin-usage', String(face.namespace)) + check('the stored invocation exposes the endpoint as its method', face.method === 'query', String(face.method)) +} +check('the receiver service is provided on the app', Boolean(receiver), receiver === undefined ? 'missing' : 'ok') +check('the receiver carries the typertRemote binding', Boolean(receiver && receiver.typertRemote + && receiver.typertRemote.serviceKey === 'dsh-plugin-usage' + && receiver.typertRemote.namespace === 'dsh-plugin-usage')) + +/** B. the old bug: a one-shot probe while the registry has not activated yet. */ +const broken = new Context() +let probedEarly = true +const earlyPlugin = (ctx) => { + probedEarly = typeof ctx.get === 'function' ? ctx.get('typert') !== undefined : false +} +earlyPlugin.inject = [] +broken.plugin(earlyPlugin) +broken.plugin(registryPlugin) +await tick() +check('a one-shot probe before activation sees nothing (the bug this guards)', + probedEarly === false && broken.get('typert') !== undefined, 'probe=' + String(probedEarly)) + +rmSync(work, { recursive: true, force: true }) +console.log(failed === 0 ? 'ALL CHECKS PASSED' : failed + ' CHECK(S) FAILED') +process.exit(failed === 0 ? 0 : 1) diff --git a/scripts/verify-typert.mjs b/scripts/verify-typert.mjs new file mode 100644 index 0000000..4220420 --- /dev/null +++ b/scripts/verify-typert.mjs @@ -0,0 +1,98 @@ +/** + * Verify the plugin's typert contribution with the OFFICIAL validator. + * + * The rules a contribution must satisfy live in the shipped harness, so this + * script reads them from the installed archive instead of restating them: it + * extracts `@deepseek-ai/dsh-typert-loader/lib/index.js`, keeps the validation + * half (everything before `apply`), and runs `validateTypertManifest` on the + * contribution this plugin would register. + * + * node scripts/verify-typert.mjs [path/to/app.asar] + * + * When no archive is reachable the check reports SKIPPED (exit 0): a laptop + * without the harness installed cannot answer the question, and pretending it + * passed would be worse than saying so. CI runs the structural gate in + * tests/typert.test.js regardless. + */ +import { readFileSync, writeFileSync, mkdtempSync, existsSync, openSync, readSync, closeSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { join, dirname } from 'node:path' +import { fileURLToPath, pathToFileURL } from 'node:url' + +const here = dirname(fileURLToPath(import.meta.url)) +const archive = process.argv[2] || process.env.DSH_ASAR || 'E:\\FXS\\APP\\DSH NEXT\\resources\\app.asar' + +/** Read one entry out of an Electron asar (chromium pickle header). */ +function readAsarEntry(file, wanted, marker) { + const fd = openSync(file, 'r') + try { + const head = Buffer.alloc(16) + readSync(fd, head, 0, 16, 0) + const stringLen = head.readUInt32LE(12) + const json = Buffer.alloc(stringLen) + readSync(fd, json, 0, stringLen, 16) + const header = JSON.parse(json.toString('utf8')) + const entry = wanted.split('/').reduce((node, part) => { + if (!node || !node.files || !node.files[part]) throw new Error('missing ' + part + ' in ' + wanted) + return node.files[part] + }, header) + if (typeof entry.offset !== 'string') throw new Error('not a file: ' + wanted) + const data = Buffer.alloc(entry.size) + for (const base of [8 + ((stringLen + 4 + 3) & ~3), 16 + ((stringLen + 3) & ~3)]) { + readSync(fd, data, 0, entry.size, base + Number(entry.offset)) + const text = data.toString('utf8') + if (text.includes(marker)) { + const start = text.indexOf('/**') + return start > 0 ? text.slice(start) : text + } + } + throw new Error('could not decode ' + wanted) + } finally { + closeSync(fd) + } +} + +if (!existsSync(archive)) { + console.log('SKIPPED: no harness archive at ' + archive) + console.log('(pass it as argv[1] or set DSH_ASAR; the structural gate still runs in npm test)') + process.exit(0) +} + +const LOADER = 'node_modules/@deepseek-ai/dsh-typert-loader/lib/index.js' +let loaderSrc +try { + loaderSrc = readAsarEntry(archive, LOADER, 'function validateTypertManifest') +} catch (error) { + console.log('SKIPPED: this archive has no typert loader (' + String(error.message) + ')') + process.exit(0) +} + +// Keep the validation half only: `apply` needs the imports we are dropping. +const cut = loaderSrc.indexOf('async function apply') +if (cut < 0) throw new Error('could not find the apply() boundary in the official loader') +// `z` is only used to declare the plugin's config schema at module scope — a +// chainable no-op keeps that declaration harmless while the validator (which +// never touches zod) runs for real. +const zodShim = 'const z = new Proxy(function () {}, { get: () => () => z, apply: () => z });\n' +const validation = (zodShim + loaderSrc + .slice(0, cut) + .replace(/^import[^\n]*\n/gmu, '')) + .concat('\nexport { validateTypertManifest };\n') + +const dir = mkdtempSync(join(tmpdir(), 'usage-typert-')) +const modPath = join(dir, 'loader-validation.mjs') +writeFileSync(modPath, validation) +const { validateTypertManifest } = await import(pathToFileURL(modPath).href) + +const { USAGE_SERVICE, typertContribution } = await import(pathToFileURL(join(here, '..', 'src', 'host', 'typert.js')).href) + +const endpoints = ['query', 'prices', 'pricing', 'contract'] +try { + const contribution = typertContribution(endpoints) + validateTypertManifest(USAGE_SERVICE, contribution) + console.log('OK: the official loader accepts the contribution (' + endpoints.length + ' endpoints, namespace ' + USAGE_SERVICE + ')') +} catch (error) { + console.error('FAIL: the official loader rejected the contribution') + console.error(' ' + String((error && error.message) || error)) + process.exit(1) +} diff --git a/src/client/index.js b/src/client/index.js index d064193..0fd06e0 100644 --- a/src/client/index.js +++ b/src/client/index.js @@ -6,6 +6,7 @@ const CSS = ` /* ============ 布局 ============ */ .tsd-section { + position: relative; width: 100%; display: flex; flex-direction: column; @@ -13,6 +14,38 @@ const CSS = ` color: var(--dsw-alias-label-primary); animation: tsd-fade-in 0.4s var(--ds-ease-in-out); } +/* 刷新中的那条细进度条:贴在本节顶部,绝对定位所以不推动版面、不碰任何数字。 + 用它而不是把整块内容压暗 —— 已有数字本来就是对的,压暗只让人以为在重算。 */ +.tsd-progress { + position: absolute; + inset: -6px 0 auto 0; + height: 2px; + overflow: hidden; + border-radius: 2px; + background: color-mix(in srgb, var(--dsw-alias-brand-primary) 18%, transparent); + pointer-events: none; +} +.tsd-progress::after { + content: ''; + position: absolute; + inset: 0 auto 0 0; + width: 35%; + border-radius: inherit; + background: var(--dsw-alias-brand-primary); + animation: tsd-indeterminate 1.2s var(--ds-ease-in-out) infinite; +} +/* 知道分母时改成确定进度:宽度就是 done/total,不再来回扫 —— 用户看到的 + "算到哪了"是真的,而不是一个装忙的动画。 */ +.tsd-progress[data-determinate=true]::after { + width: var(--tsd-progress, 0%); + animation: none; + transform: none; + transition: width 240ms var(--ds-ease-in-out); +} +@keyframes tsd-indeterminate { + from { transform: translateX(-40%); } + to { transform: translateX(300%); } +} @keyframes tsd-fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } @@ -533,6 +566,49 @@ const CSS = ` text-overflow: ellipsis; white-space: nowrap; } +/* 标题带提示时给一个可发现的记号:虚线底边 + 感叹号按钮(见 HintTip)。 + 悬浮用原生 title,点击展开浮层;两段规则都在这一个组件里,别处不再各画一份。 */ +.tsd-card-label[title] { + cursor: help; + text-decoration: underline dotted; + text-underline-offset: 2px; +} +.tsd-hint { + display: inline-flex; + align-items: center; +} +.tsd-hint-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 16px; + height: 16px; + padding: 0; + border: none; + border-radius: 50%; + background: transparent; + color: var(--dsw-alias-label-tertiary); + cursor: help; +} +.tsd-hint-btn:hover, +.tsd-hint-btn-open { + background: var(--dsw-alias-interactive-bg-hover); + color: var(--dsw-alias-label-primary); +} +.tsd-hint-btn:focus-visible { + outline: 2px solid var(--dsw-alias-brand-primary); + outline-offset: 1px; +} +/* 浮层里两段规则分段读;行的左右内边距由 .tsd-popover 给,这里只补段间距 */ +.tsd-hint-line { + margin: 0; + font-size: 12px; + line-height: 1.5; + color: var(--dsw-alias-label-secondary); +} +.tsd-hint-line + .tsd-hint-line { + margin-top: 6px; +} .tsd-card-value { margin-top: 8px; font-size: 20px; @@ -552,8 +628,41 @@ const CSS = ` .tsd-card-note { margin-top: 4px; font-size: 11px; + color: var(--dsw-alias-label-tertiary); + line-height: 1.35; +} +/* 未定价是「少算了钱」,不是普通提示:其余脚注用三级灰,这一行用警示色 */ +.tsd-card-note-warn { color: var(--dsw-alias-state-warn-primary); } +.tsd-card-notes { + display: flex; + flex-direction: column; + gap: 2px; +} +/* 参考成本卡的入口按钮:跟着标题走,不抢数值行的位置 */ +.tsd-card-action { + margin-left: auto; + display: inline-flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + padding: 0; + border: none; + border-radius: 5px; + background: transparent; + color: var(--dsw-alias-label-tertiary); + cursor: pointer; +} +.tsd-card-action:hover { + background: var(--dsw-alias-interactive-bg-hover); + color: var(--dsw-alias-label-primary); +} +.tsd-card-action:focus-visible { + outline: 2px solid var(--dsw-alias-brand-primary); + outline-offset: 1px; +} /* ============ 卡片头部(图表 / 表格共用) ============ */ .tsd-card-header { @@ -913,13 +1022,23 @@ const CSS = ` } /* ============ 刷新时的内容态 ============ */ +/* 不再 opacity: .55:那会让每次轮询都闪一下,且暗示"数字正在重算" —— + 事实上数字是上一轮的正确答案。刷新的信号交给顶部那条 2px 进度条与按钮转圈。 */ .tsd-content { display: flex; flex-direction: column; gap: 16px; - transition: opacity var(--ds-transition-duration) var(--ds-ease-in-out); } -.tsd-content[data-busy=true] { opacity: 0.55; } + +/* ============ 减少动态效果 ============ */ +/* 官方客户端同样这么写(spinner / skeletonFill 都在 prefers-reduced-motion 下关动画), + 我们这两个无限动画(呼吸、旋转)此前一条都没关。 */ +@media (prefers-reduced-motion: reduce) { + .tsd-section { animation: none; } + .tsd-spinning svg { animation: none; } + .tsd-skeleton, .tsd-skeleton-row { animation: none; } + .tsd-progress::after { animation: none; width: 100%; opacity: 0.55; } +} /* ============ 无障碍 ============ */ .tsd-visually-hidden { @@ -1143,6 +1262,394 @@ const CSS = ` font-variant-numeric: tabular-nums; color: var(--dsw-alias-label-primary); } +/* ============ 定价匹配弹窗 ============ */ +/* 遮罩铺满视口:设置面板是 overflow:hidden 的裁剪容器,弹窗不能挂在面板内部, + 否则宽屏下左右各被切掉一块。层级压过 popover(40),低于任何系统级浮窗。 */ +.tsd-price-overlay { + position: fixed; + inset: 0; + z-index: 60; + display: flex; + align-items: center; + justify-content: center; + padding: 24px; + background: var(--dsw-alias-bg-mask, rgba(0, 0, 0, 0.4)); +} +.tsd-price-dialog { + display: flex; + flex-direction: column; + width: min(760px, 100%); + max-height: 100%; + padding: 16px 18px 14px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 14px; + background: var(--dsw-alias-bg-layer-1); + box-shadow: var(--dsw-shadow-lv3); + color: var(--dsw-alias-label-primary); + font-size: 13px; +} +.tsd-price-head { + display: flex; + align-items: center; + gap: 8px; +} +.tsd-price-title { + margin: 0; + font-size: 15px; + font-weight: 600; +} +.tsd-price-close { + margin-left: auto; + display: inline-flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + padding: 0; + border: none; + border-radius: 6px; + background: transparent; + color: var(--dsw-alias-label-tertiary); + cursor: pointer; +} +.tsd-price-close:hover { + background: var(--dsw-alias-interactive-bg-hover); + color: var(--dsw-alias-label-primary); +} +.tsd-price-desc { + margin: 6px 0 10px; + font-size: 12px; + line-height: 1.5; + color: var(--dsw-alias-label-secondary); +} +/* 只有中段滚动:标题与底部按钮必须常驻,否则长表里够不到「确定」 */ +.tsd-price-body { + flex: 1 1 auto; + min-height: 0; + overflow: auto; +} +.tsd-price-meta { + display: flex; + flex-wrap: wrap; + align-items: baseline; + gap: 4px 12px; + margin-bottom: 8px; + font-size: 11px; + color: var(--dsw-alias-label-tertiary); +} +.tsd-price-counts { color: var(--dsw-alias-label-secondary); } +.tsd-price-table { + width: 100%; + border-collapse: collapse; + font-size: 12px; +} +.tsd-price-table-sub { + margin-top: 10px; +} +.tsd-price-table th { + position: sticky; + top: 0; + z-index: 1; + padding: 6px 8px; + background: var(--dsw-alias-bg-layer-1); + border-bottom: 1px solid var(--dsw-alias-border-l2); + font-weight: 500; + font-size: 11px; + color: var(--dsw-alias-label-tertiary); + text-align: left; + white-space: nowrap; +} +.tsd-price-table td { + padding: 6px 8px; + border-bottom: 1px solid var(--dsw-alias-border-l2); + vertical-align: middle; +} +.tsd-price-row[data-dirty='true'] td { + background: var(--dsw-alias-interactive-bg-hover); +} +.tsd-price-model { + max-width: 240px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tsd-price-model-name { + font-family: ui-monospace, SFMono-Regular, Menlo, monospace; + font-size: 11.5px; + font-weight: 500; +} +.tsd-price-model-provider { + margin-left: 6px; + font-family: ui-monospace, SFMono-Regular, Menlo, monospace; + font-size: 10.5px; + color: var(--dsw-alias-label-tertiary); +} +/* 匹配目标格:整格是一颗紧凑的「选择」按钮(未匹配时虚线、文案是提示语), + 比每行摊两颗文字按钮安静得多;可搜索的下拉挂在它下面展开。 */ +.tsd-price-target { max-width: 230px; } +.tsd-price-target-btn { + display: inline-flex; + align-items: center; + gap: 4px; + max-width: 100%; + padding: 3px 6px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 6px; + background: var(--dsw-alias-bg-layer-2); + color: var(--dsw-alias-label-secondary); + font: inherit; + font-size: 12px; + cursor: pointer; +} +.tsd-price-target-btn:hover { + border-color: var(--dsw-alias-label-tertiary); + color: var(--dsw-alias-label-primary); +} +.tsd-price-target-btn:focus-visible { + outline: 2px solid var(--dsw-alias-brand-primary); + outline-offset: 1px; +} +.tsd-price-target-btn[data-empty='true'] { + border-style: dashed; + color: var(--dsw-alias-label-tertiary); +} +.tsd-price-target-id { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tsd-price-target-chev { flex: none; opacity: 0.7; } +/* 参考模型的来源标签:DeepSeek / Zen / 自定义。10px、无边框、只在格尾占一点点, + 免得把 id 挤掉 —— id 自己已经会 ellipsis。 */ +.tsd-price-src { + margin-left: 4px; + padding: 0 3px; + border-radius: 4px; + background: var(--dsw-alias-interactive-bg-hover); + color: var(--dsw-alias-label-tertiary); + font-size: 10px; + white-space: nowrap; +} +.tsd-price-src[data-source='deepseek'] { color: var(--dsw-static-blue-500); } +.tsd-price-src[data-source='custom'] { color: var(--dsw-static-green-500); } +/* 候选列表里的分组表头:粘在滚动容器顶部,滚到哪都知道自己在看哪一类。 */ +.tsd-price-pick-group { + position: sticky; + top: 0; + padding: 4px 4px 2px; + background: var(--dsw-alias-bg-layer-1); + color: var(--dsw-alias-label-tertiary); + font-size: 10.5px; + letter-spacing: 0.02em; +} +/* 空组(目前只有「自定义」)给一行说明,别让这一类隐形。 */ +.tsd-price-pick-sep { + margin: 4px 0; + border-top: 1px solid var(--dsw-alias-border-l2); +} +/* 「自定义」选项:顶部固定的一条,带一行说明。 */ +.tsd-price-pick-custom { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 2px; + border: 1px dashed var(--dsw-alias-border-l2); +} +.tsd-price-pick-custom-label { font-weight: 500; color: var(--dsw-alias-label-primary); } +.tsd-price-pick-custom-hint { font-size: 11px; color: var(--dsw-alias-label-tertiary); } +/* 手填单价的三格:一行一个字段,输入框占满剩余宽度。 */ +.tsd-price-custom-box { gap: 8px; } +.tsd-price-custom-title { font-weight: 500; } +.tsd-price-custom-field { + display: flex; + align-items: center; + gap: 8px; +} +.tsd-price-custom-field > span { + flex: none; + width: 52px; + color: var(--dsw-alias-label-secondary); +} +.tsd-price-custom-input { + box-sizing: border-box; + flex: 1 1 auto; + min-width: 0; + height: 26px; + padding: 0 8px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 6px; + background: var(--dsw-alias-bg-layer-1); + color: var(--dsw-alias-label-primary); + font: inherit; + font-size: 12px; +} +.tsd-price-custom-hint { color: var(--dsw-alias-label-tertiary); font-size: 11px; } +.tsd-price-stale { + margin-left: 6px; + font-size: 11px; + color: var(--dsw-alias-state-warn-primary); +} +.tsd-price-rate { + font-variant-numeric: tabular-nums; + white-space: nowrap; + color: var(--dsw-alias-label-secondary); +} +/* 操作格:默认空着,只有「自定义 / 有改动」的行才给一颗还原图标。 + 注意别给 td 设 display:flex —— 那会把单元格块级化,整列失去对齐。 */ +.tsd-price-ops { + width: 34px; + text-align: right; + white-space: nowrap; +} +.tsd-price-reset { + display: inline-flex; + align-items: center; + justify-content: center; + width: 22px; + height: 22px; + padding: 0; + border: 1px solid transparent; + border-radius: 6px; + background: none; + color: var(--dsw-alias-label-tertiary); + cursor: pointer; +} +.tsd-price-reset:hover { + border-color: var(--dsw-alias-border-l2); + color: var(--dsw-alias-label-primary); +} +.tsd-price-reset:focus-visible { + outline: 2px solid var(--dsw-alias-brand-primary); + outline-offset: 1px; +} +.tsd-btn-xs { + height: 24px; + padding: 0 8px; + font-size: 12px; + border-radius: 6px; +} +/* 带图标的按钮:图标与文字同一行,间距由 gap 给,别在文案里塞空格 */ +.tsd-btn-icon-label { + display: inline-flex; + align-items: center; + gap: 6px; +} +/* 参考模型候选是一座浮层(DSH 自己的模型选择器就是这种交互),不再塞进表格里: + 内联面板会把所在行撑高、把下面的行整体推走,看起来像表格坏了。 */ +.tsd-price-pick-box { + display: flex; + flex-direction: column; + gap: 6px; + min-height: 0; + padding: 6px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 10px; + background: var(--dsw-alias-bg-layer-1); + box-shadow: var(--dsw-shadow-lv3); +} +/* 四态徽标:精确(蓝) / 模糊(琥珀) / 未匹配(灰) / 自定义(绿),颜色族都用真实 token */ +.tsd-price-badge { + display: inline-block; + padding: 1px 7px; + border-radius: 10px; + font-size: 11px; + line-height: 16px; + white-space: nowrap; + background: var(--dsw-static-neutral-200, rgba(128, 128, 128, 0.14)); + color: var(--dsw-alias-label-secondary); +} +.tsd-price-badge[data-state='exact'] { + background: color-mix(in oklab, var(--dsw-static-deepseek-500) 16%, transparent); + color: var(--dsw-static-deepseek-500); +} +.tsd-price-badge[data-state='fuzzy'] { + background: color-mix(in oklab, var(--dsw-static-amber-500) 18%, transparent); + color: var(--dsw-static-amber-500); +} +.tsd-price-badge[data-state='custom'] { + background: color-mix(in oklab, var(--dsw-static-green-500) 16%, transparent); + color: var(--dsw-static-green-500); +} +/* 未匹配态没有主题色可用:容器那层 background: none 把徽标底色抹掉了,只剩 + 白字压在白底上。这里给它自己的底与字色,四态才都能看见。 */ +.tsd-price-row[data-state='none'] .tsd-price-badge { + background: var(--dsw-alias-interactive-bg-hover); + color: var(--dsw-alias-label-secondary); +} +.tsd-price-pick-input { + box-sizing: border-box; + width: 100%; + height: 28px; + padding: 0 8px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 6px; + background: var(--dsw-alias-bg-layer-1); + color: var(--dsw-alias-label-primary); + font: inherit; + font-size: 12px; +} +/* 候选列表自己滚,且必须自己封顶:useFixedPanel 只给位置和宽度,不给高度, + 89 个 id 摊开有近 2000px,不封顶就是一个超出视口的浮层。 */ +.tsd-price-pick-list { + display: flex; + flex-direction: column; + min-height: 0; + max-height: 260px; + overflow: auto; +} +.tsd-price-pick-item { + padding: 4px 8px; + border: none; + border-radius: 6px; + background: transparent; + color: var(--dsw-alias-label-primary); + font: inherit; + font-size: 12px; + text-align: left; + cursor: pointer; +} +.tsd-price-pick-item:hover { background: var(--dsw-alias-interactive-bg-hover); } +.tsd-price-pick-item-active { color: var(--dsw-static-deepseek-500); font-weight: 600; } +.tsd-price-history { + margin-top: 14px; + padding-top: 10px; + border-top: 1px solid var(--dsw-alias-border-l2); +} +.tsd-price-history-toggle { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 2px 0; + border: none; + background: transparent; + color: var(--dsw-alias-label-secondary); + font: inherit; + font-size: 12px; + cursor: pointer; +} +.tsd-price-history-chev { transition: transform 0.15s ease; } +.tsd-price-history-chev-open { transform: rotate(180deg); } +.tsd-price-empty, +.tsd-price-loading { + padding: 18px 0; + font-size: 12px; + color: var(--dsw-alias-label-tertiary); + text-align: center; +} +.tsd-price-foot { + display: flex; + align-items: center; + gap: 8px; + margin-top: 12px; + padding-top: 10px; + border-top: 1px solid var(--dsw-alias-border-l2); +} +.tsd-price-hint { + margin-left: auto; + font-size: 11px; + color: var(--dsw-alias-state-warn-primary); +} ` // 0.2+ host transport: POST /api//, args as the JSON body, @@ -1167,43 +1674,147 @@ function callFetch(channel, endpoint, args) { } return res.json().then((body) => { if (body && body.ok) return body.value - throw new Error((body && body.error && body.error.message) || ('RPC ' + endpoint + ' failed')) + throw rpcError(body && body.error, 'RPC ' + endpoint + ' failed') }) }) } +/** + * 把宿主返回的 `{code, message}` 变成可显示的错误。 + * + * 宿主对未处理的异常只发稳定的 `internal`,细节写在宿主日志里;界面上显示本插件的 + * 一句话,而不是原始堆栈(原始错误不上页面)。 + */ +function rpcError(error, fallback) { + const code = error && error.code + const message = code === 'internal' ? fallbackT('rpcInternalError') : ((error && error.message) || fallback) + const wrapped = new Error(message) + if (code) wrapped.code = code + return wrapped +} + // RPC bridge: dynamic-plugin runs provide a `host` global; static (bundle) // installs provide ctx.get('connection'). Keep one UI source for both. +// +// Channel preference, native first: the plugin's own typert Remote namespace +// (`remote['dsh-plugin-usage']`, registered by src/host/typert.js), then the +// Fetch routes on Connection's shared /api channel, then the legacy /usage +// prefix channel. A Remote namespace that exists but fails (host restarted +// mid-flight, receiver gone) must fall through instead of bricking the page. +const USAGE_REMOTE_NAMESPACE = 'dsh-plugin-usage' + +/** + * Descriptors for the client-side mount. + * + * The gateway's browser half wants a `src-json` result (a direct invocation is + * not result-decoded), while the host contribution declares a strict codec. + * Everything else must match the host field for field. + */ +function remoteDescriptors(packageName, names) { + const argsCodec = () => ({ + mode: 'strict', + typeSymbol: packageName + '/typert#EndpointArgs', + create: () => ({ parse: (value) => value }), + }) + return names.map((name) => ({ + id: packageName + '#' + packageName + '/' + name, + service: packageName, + namespace: packageName, + method: name, + invocation: { kind: 'direct' }, + parameters: [{ name: 'args', wire: 'args', source: 'json', codec: argsCodec() }], + result: { mode: 'src-json' }, + })) +} + +/** + * Join the native Remote channel on the browser side. + * + * A face registered at runtime on the host is invisible to the client's `remote` + * proxy until the consumer mounts it. Until the mount lands — or if it never + * does — hostCall keeps using the Fetch routes, so this is an optimization, + * never a hard dependency. + */ +function mountRemoteChannel(scope) { + let remote = null + try { + remote = scope.get('remote') + } catch (e) { + return + } + if (!remote || typeof remote.$mount !== 'function') return + fetchCall('usage/contract', {}).then((contract) => { + const names = contract && Array.isArray(contract.names) ? contract.names : [] + if (names.length === 0) return null + const packageName = contract.package || USAGE_REMOTE_NAMESPACE + return Promise.resolve(remote.$mount({ package: packageName, descriptors: remoteDescriptors(packageName, names) })) + }).catch(() => { + // Stay on the Fetch routes; the host reports which channel it opened. + }) +} + +function remoteCall(scope, method, args) { + const name = String(method) + const slash = name.indexOf('/') + const endpoint = slash === -1 ? name : name.slice(slash + 1) + const camel = endpoint.replace(/-([a-z])/g, (m, c) => c.toUpperCase()) + for (const service of [USAGE_REMOTE_NAMESPACE, 'usage']) { + // `ctx.get('remote.')` is the service key the gateway creates per + // face (dsh-api-gateway client: remoteServiceKey). The `remote[namespace]` + // property is the older shape and throws on the strict proxy, so it is a + // guarded second choice. + let namespace = null + try { + namespace = scope.get('remote.' + service) + } catch (e) { + namespace = null + } + if (!namespace) { + try { + const remote = scope.get('remote') + namespace = remote ? remote[service] : null + } catch (e) { + namespace = null + } + } + if (!namespace) continue + const fn = (typeof namespace[camel] === 'function' && namespace[camel]) + || (typeof namespace[endpoint] === 'function' && namespace[endpoint]) + if (!fn) continue + return Promise.resolve() + .then(() => fn(args)) + .then((res) => { + if (res && res.ok) return res.value + throw rpcError(res && res.error, 'RPC ' + method + ' failed') + }) + } + return null +} + function hostCall(method, args) { - // P0-3: prefer the official `remote` service when it exposes the usage API; - // otherwise fall through to the host/connection fallbacks unchanged. const remoteScope = (typeof ctx !== 'undefined' && ctx && typeof ctx.get === 'function') ? ctx : (typeof _usageCtx !== 'undefined' && _usageCtx && typeof _usageCtx.get === 'function' ? _usageCtx : null) if (remoteScope && typeof remoteScope.get === 'function') { + let pending = null try { - const remote = remoteScope.get('remote') - if (remote && remote.usage) { - const rName = String(method) - const rSlash = rName.indexOf('/') - const rEp = rSlash === -1 ? rName : rName.slice(rSlash + 1) - const rCamel = rEp.replace(/-([a-z])/g, (m, c) => c.toUpperCase()) - const fn = (typeof remote.usage[rCamel] === 'function' && remote.usage[rCamel]) - || (typeof remote.usage[rEp] === 'function' && remote.usage[rEp]) - if (fn) { - return Promise.resolve().then(() => fn(args)).then((res) => { - if (res && res.ok) return res.value - throw new Error((res && res.error && res.error.message) || ('RPC ' + method + ' failed')) - }) - } - } + pending = remoteCall(remoteScope, method, args) } catch (e) { - // remote probing failed — fall through to the existing fallbacks + pending = null + } + if (pending !== null) { + // Fall through to the Fetch routes when the Remote namespace turns out to + // be unreachable — the two channels answer the same question. + return pending.catch(() => fetchCall(method, args)) } } if (typeof host !== 'undefined' && host && typeof host.call === 'function') { return Promise.resolve(host.call(method, args)) } + return fetchCall(method, args) +} + +function fetchCall(method, args) { // Static bundle installs have no ctx/host globals: the entry apply() stores // the real context in _usageCtx (declared by the build wrapper). const scope = (typeof ctx !== 'undefined' && ctx && typeof ctx.get === 'function') @@ -1225,7 +1836,7 @@ function hostCall(method, args) { } return connection.rpc.call('/' + channel.replace(/^\/+/, ''), endpoint, args).then((res) => { if (res && res.ok) return res.value - throw new Error((res && res.error && res.error.message) || ('RPC ' + method + ' failed')) + throw rpcError(res && res.error, 'RPC ' + method + ' failed') }) } // Prefer the shared-channel Fetch route; an older host answers "route @@ -1243,6 +1854,20 @@ function hostCall(method, args) { * 设置域定价:官方 `ctx.configForms.get('usage')`(dsh-client-ui-settings)优先, * 不可用时回退 usage/prices RPC。绑定只做一次,读写共用同一 form。 * ------------------------------------------------------------------------- */ +/** + * 原生日志通道:宿主有 logger 就写它(官方插件都走 ctx.logger),否则退回 console。 + * ctx 是严格代理,未注入的属性能抛,所以整段包在 try 里。 + */ +function logWarn(message, detail) { + try { + const scope = (typeof _usageCtx !== 'undefined' && _usageCtx) ? _usageCtx : null + const logger = scope && typeof scope.get === 'function' ? scope.get('logger') : null + if (logger && typeof logger.warn === 'function') { logger.warn(message, detail); return } + if (scope && scope.logger && typeof scope.logger.warn === 'function') { scope.logger.warn(message, detail); return } + } catch (e) { /* no logger on this composition */ } + console.warn(message, detail) +} + let usageCtx = null let _usagePricesScope = null @@ -1342,6 +1967,55 @@ const ZH = { cost: '参考成本', approxIO: '≈ 输入+输出', unpricedNote: '{count} 次调用未定价', + // 参考成本卡上的常驻脚注:口径(卡片是估算而不是账单)+ 高峰规则(单价按 + // 北京时间分峰谷,不说清楚就等于藏了一条计价条件)。 + costSourceNote: '按 opencode Zen 和 DeepSeek 最新定价口径估算', + peakRuleShort: '北京时间周一至周五 9:00-12:00、14:00-18:00 为高峰,法定节假日除外', + holidayNote: '节假日数据:{range}', + holidayNoteUnpublished: '节假日数据:{range};{years} 尚未公布,该年按周末判定(落在高峰窗口的节假日可能被算高)', + pricingOpen: '拉取最新定价匹配', + pricingTitle: '定价匹配', + pricingDesc: '本会话出现过的模型会按名称逐级匹配到定价表;未匹配的按 0 计价,计入「未定价」。', + pricingPull: '更新匹配表', + pricingHistory: '历史匹配({n})', + pricingHistoryEmpty: '还没有确认过的匹配', + pricingColModel: '模型', + pricingColMatch: '匹配到', + pricingColState: '状态', + pricingColPrice: '单价({unit} / 1M)', + pricingSave: '确定', + pricingClear: '恢复自动匹配', + pricingApplyHint: '改完点「确定」才生效', + pricingHowAlias: '按别名', + // 模糊态的徽标:别名、孪生、变体后缀(-fast / -1017 / -free)都落在这一态, + // 所以文案说「推测」而不是某一种推断的名字;具体依据看徽标的 tooltip。 + pricingHowTwin: '按名称推测', + pricingHowLiteral: '按名称精确', + pricingHowCustom: '用户指定', + // 未匹配态的徽标文案。原来 MATCH_STATE_LABEL 指向一个不存在的键 + // 'unmatched',t() 缺键时原样返回 key,于是徽标上印着英文 "unmatched"。 + pricingHowNone: '未匹配', + pricingStale: '定价表里已没有这个模型', + pricingTableMeta: '数据源 {source} · 读取于 {date}', + pricingCounts: '精确 {exact} · 模糊 {fuzzy} · 未匹配 {none} · 自定义 {custom}', + pricingBothTiers: '高峰 {peak} · 空闲 {off}', + pricingSourceDeepseek: 'DeepSeek', + pricingSourceZen: 'Zen', + pricingSourceCustom: '自定义', + // 「自定义」是选择器顶部的一个选项,不是一组参考模型:选它就直接给这一行填三个单价。 + pricingCustomOption: '自定义', + pricingCustomHint: '直接填每百万 Token 的单价', + pricingCustomInput: '输入', + pricingCustomOutput: '输出', + pricingCustomCacheRead: '缓存读', + pricingCustomUnit: '单位:{unit} / 1M Token', + pricingCustomPending: '待填写', + rpcInternalError: '统计服务出错了,细节已写进宿主日志', + done: '完成', + pricingCardNoteTip: '参考成本的算法、匹配范围与高峰时段规则', + askEmpty: '暂无待匹配的模型', + askPick: '选择参考模型', + pricingFailed: '定价表拉取失败:{message}', dailyTrend: '每日用量趋势', barView: '柱状图', lineView: '折线图', @@ -1377,14 +2051,16 @@ const ZH = { unpriced: '未定价', unpricedRowHint: '该模型未配置定价,按 0 计价', noData: '暂无数据', + loading: '正在加载用量数据…', + computing: '正在统计 {done}/{total} 个会话…', emptyDesc: '该时间段内没有调用记录', emptyFiltered: '当前筛选条件下没有数据,试试调整时间范围或模型', resetFilters: '重置筛选', loadFailed: '数据加载失败:{message}', loadFailedTitle: '数据加载失败', retry: '重试', - barAria: '{key},输入 {in} Token,输出 {out} Token,合计 {tot} Token', - hmTitle: '{key}:{tokens} Token{calls}', + barAria: '{key},输入 {in} Token,输出 {out} Token,合计 {tot} Token,参考成本 {cost}', + hmTitle: '{key}:{tokens} Token{calls},参考成本 {cost}', hmCalls: ',{count} 次调用', wd0: '周日', wd1: '周一', @@ -1433,6 +2109,48 @@ const EN = { cost: 'Est. cost', approxIO: '≈ input+output', unpricedNote: '{count} calls unpriced', + costSourceNote: 'Estimated from the current opencode Zen and DeepSeek price lists', + peakRuleShort: 'Peak: Mon-Fri 09:00-12:00 and 14:00-18:00 Beijing time, excluding public holidays', + holidayNote: 'Holiday calendar: {range}', + holidayNoteUnpublished: 'Holiday calendar: {range}; {years} is not published yet, so that year falls back to the weekend rule (a holiday inside a peak window may be billed high)', + pricingOpen: 'Pull the latest price matching', + pricingTitle: 'Price matching', + pricingDesc: 'Models seen in this session are matched to the price list by name, one level at a time. Anything unmatched is billed at 0 and listed under unpriced.', + pricingPull: 'Update matches', + pricingHistory: 'Confirmed matches ({n})', + pricingHistoryEmpty: 'No match has been confirmed yet', + pricingColModel: 'Model', + pricingColMatch: 'Matched to', + pricingColState: 'State', + pricingColPrice: 'Rate ({unit} / 1M)', + pricingSave: 'Apply', + pricingClear: 'Back to automatic', + pricingApplyHint: 'Nothing changes until you press Apply', + pricingHowAlias: 'by alias', + pricingHowTwin: 'inferred from the name', + pricingHowLiteral: 'by exact name', + pricingHowCustom: 'set by you', + pricingHowNone: 'unmatched', + pricingStale: 'This model is no longer in the price list', + pricingTableMeta: 'Sources {source} · read {date}', + pricingCounts: 'exact {exact} · fuzzy {fuzzy} · unmatched {none} · custom {custom}', + pricingBothTiers: 'Peak {peak} · off-peak {off}', + pricingSourceDeepseek: 'DeepSeek', + pricingSourceZen: 'Zen', + pricingSourceCustom: 'Custom', + pricingCustomOption: 'Custom', + pricingCustomHint: 'Type the per-million rates by hand', + pricingCustomInput: 'Input', + pricingCustomOutput: 'Output', + pricingCustomCacheRead: 'Cache read', + pricingCustomUnit: 'Unit: {unit} per 1M tokens', + pricingCustomPending: 'not set', + rpcInternalError: 'The usage service failed — details are in the host log', + done: 'Done', + pricingCardNoteTip: 'How the reference cost is estimated, which models it covers, and the peak-hour rule', + askEmpty: 'No model is waiting to be matched', + askPick: 'Choose a reference model', + pricingFailed: 'Could not load the price lists: {message}', dailyTrend: 'Daily usage trend', barView: 'Bars', lineView: 'Line', @@ -1468,14 +2186,16 @@ const EN = { unpriced: 'Unpriced', unpricedRowHint: 'No pricing configured; counted as 0', noData: 'No data', + loading: 'Loading usage data…', + computing: 'Computing {done}/{total} sessions…', emptyDesc: 'No calls in this period', emptyFiltered: 'No data for the current filters, try adjusting the range or models', resetFilters: 'Reset filters', loadFailed: 'Failed to load data: {message}', loadFailedTitle: 'Failed to load data', retry: 'Retry', - barAria: '{key}, input {in} tokens, output {out} tokens, total {tot} tokens', - hmTitle: '{key}: {tokens} tokens{calls}', + barAria: '{key}, input {in} tokens, output {out} tokens, total {tot} tokens, {cost} reference cost', + hmTitle: '{key}: {tokens} tokens{calls}, {cost} reference cost', hmCalls: ', {count} calls', wd0: 'Sun', wd1: 'Mon', @@ -1662,6 +2382,31 @@ const ICON_PATHS = { // 饼图(占比):外圈 + 楔形,与卡片标题的「占比」语义一致 share: 'M21.21 15.89A10 10 0 118 2.83M22 12A10 10 0 0012 2v10z', check: 'M20 6L9 17l-5-5', + x: 'M6 6l12 12M18 6L6 18', + // 拉取匹配表按钮的图标:DSH 原生 icon-context-injection-outline。16 网格、 + // 线宽 1.5;图形是「剪贴板 + 从顶部穿入的下载箭头 + 一条内容线」,描边沿用 + // 外层的 currentColor,所以每条 path 只给 d。 + contextInjection: { + viewBox: '0 0 16 16', + strokeWidth: 1.5, + paths: [ + 'M5 2.5H3.5C3.23478 2.5 2.98043 2.60536 2.79289 2.79289C2.60536 2.98043 2.5 3.23478 2.5 3.5V13.5C2.5 13.7652 2.60536 14.0196 2.79289 14.2071C2.98043 14.3946 3.23478 14.5 3.5 14.5H12.5C12.7652 14.5 13.0196 14.3946 13.2071 14.2071C13.3946 14.0196 13.5 13.7652 13.5 13.5V3.5C13.5 3.23478 13.3946 2.98043 13.2071 2.79289C13.0196 2.60536 12.7652 2.5 12.5 2.5H11', + 'M8 0.5V7.5', + 'M5.5 5L8 7.5L10.5 5', + 'M5.5 11H10.5', + ], + }, + // 提示记号:圆圈 + 感叹号(16 网格、线宽 1.5)。原来用一个 CSS 伪元素画「?」, + // 字重太小、缩到 10px 后几乎看不见,也不能点;换成真图标后可以当按钮用。 + hint: { + viewBox: '0 0 16 16', + strokeWidth: 1.5, + paths: [ + 'M8 1.75a6.25 6.25 0 1 1 0 12.5a6.25 6.25 0 1 1 0-12.5Z', + 'M8 4.9v3.5', + 'M8 11.15h.01', + ], + }, } function SvgIcon(props) { const { name, size, className } = props @@ -1755,18 +2500,25 @@ function useFixedPanel(anchorRef, open, width, gap = 6, margin = 12) { * Header:标题 + 副标题 + 刷新按钮 * ------------------------------------------------------------------------- */ function StatsHeader(props) { - const { busy, onRefresh } = props + // `computing` 表示"统计还没算完"(宿主 backfill.status === 'running'), + // 和 `busy`(这一轮请求在飞)不是一回事:请求几十毫秒就结束,而全量统计要几秒。 + // 只在请求在飞时转圈,用户就会看到"页面明明没算完却什么都不动"。 + const { busy, onRefresh, computing, computeDone, computeTotal } = props const t = useT() + const subtitle = computing + ? t('computing', { done: formatInt(computeDone || 0), total: formatInt(computeTotal || 0) }) + : t('subtitle') return h('div', { className: 'tsd-header' }, h('div', { className: 'tsd-header-text' }, h('h2', { className: 'tsd-title' }, t('nav')), - h('p', { className: 'tsd-subtitle' }, t('subtitle'))), + // 副标题这一句直接换成进度句:同一个位置、同样的行高,所以不算完→算完不跳版。 + h('p', { className: 'tsd-subtitle', role: computing ? 'status' : null }, subtitle)), h('button', { type: 'button', - className: 'tsd-icon-btn' + (busy ? ' tsd-spinning' : ''), + className: 'tsd-icon-btn' + (busy || computing ? ' tsd-spinning' : ''), onClick: onRefresh, disabled: busy, - 'aria-busy': busy || undefined, + 'aria-busy': busy || computing || undefined, title: t('refresh'), 'aria-label': t('refresh'), }, h(SvgIcon, { name: 'refresh' }))) @@ -2073,6 +2825,20 @@ function shortModelName(key) { const i = s.lastIndexOf('/') return i === -1 ? s : s.slice(i + 1) } +/** + * 「读取于」要的是真实时刻,不是日期。 + * + * 价目表里存的是抓取那一刻的 ISO 时间(带秒、UTC);这里换成浏览器本地时区 + * 显示,精确到秒。早期只有日期(`2026-10-19`)的表也认得,补 00:00:00。 + */ +function stampText(v) { + if (!v) return '—' + const d = new Date(v) + if (Number.isNaN(d.getTime())) return String(v) + const p = (n) => (n < 10 ? '0' + n : String(n)) + return d.getFullYear() + '-' + p(d.getMonth() + 1) + '-' + p(d.getDate()) + + ' ' + p(d.getHours()) + ':' + p(d.getMinutes()) + ':' + p(d.getSeconds()) +} /** 宿主行是 `totalTokens`;兼容已映射成 `total` 的形状,空行也不能抛。 */ function rowTotal(r) { return r ? (r.totalTokens || r.total || 0) : 0 @@ -2130,7 +2896,7 @@ function ModelShareBar(props) { const shown = (tip && find(tip.key)) || occ.segs[0] const labelOf = (s) => (s.key === SHARE_REST_KEY ? t('shareOther') : s.label) const fullOf = (s) => (s.key === SHARE_REST_KEY ? t('shareOther') : s.key) - const costOf = (s) => (s.tokens > 0 && !(s.cost > 0) ? t('unpriced') : formatCost(s.cost, currency)) + const costOf = (s) => (s.unpriced === true ? t('unpriced') : formatCost(s.cost, currency)) // 悬停/聚焦:从段的视口矩形推开,fixed 定位不受设置面板 overflow 裁剪 const showTip = (e, s) => { const r = e.currentTarget.getBoundingClientRect() @@ -2180,11 +2946,76 @@ function ModelShareBar(props) { tipBox) } +/* --------------------------------------------------------------------------- + * 标题旁的提示记号 + * + * 「点击 / 悬浮双显示」是硬要求: + * - 悬浮走原生 title(浏览器自己弹,不依赖脚本,也不会被设置面板的 overflow 裁掉); + * - 点击展开同一个浮层 —— 触屏没有 hover,键盘也要能读到,且浮层里两段规则换行 + * 读起来比一整行 tooltip 清楚得多。 + * 原生 title 与浮层共用同一份文本(宿主/调用方只传一次),不维护第二份文案。 + * ------------------------------------------------------------------------- */ +function HintTip(props) { + const { text, label } = props + const [open, setOpen] = React.useState(false) + const ref = React.useRef(null) + const panelStyle = useFixedPanel(ref, open, 260) + useOutsideClick(open, ref, () => setOpen(false)) + const lines = String(text == null ? '' : text).split('\n').filter((s) => s.trim().length > 0) + return h('span', { className: 'tsd-hint', ref }, + h('button', { + type: 'button', + className: 'tsd-hint-btn' + (open ? ' tsd-hint-btn-open' : ''), + title: text || null, + 'aria-label': label || text || '', + 'aria-expanded': open, + onClick: () => setOpen((v) => !v), + onKeyDown: (e) => { + if (e.key === 'Escape' && open) { e.stopPropagation(); setOpen(false) } + }, + }, h(SvgIcon, { name: 'hint', size: 12 })), + open + ? h('div', { + className: 'tsd-popover tsd-hint-popover', + style: panelStyle, + role: 'note', + }, lines.map((s, i) => h('p', { key: i, className: 'tsd-hint-line' }, s))) + : null) +} + /* --------------------------------------------------------------------------- * 汇总指标卡 ×6 * ------------------------------------------------------------------------- */ + +/** + * 节假日覆盖说明:哪些年份在手、哪一年还没公布。 + * + * 峰谷价依赖中国法定节假日表;未公布的年份只能按「周末 + 时段」判定,节假日 + * 落在高峰窗口内的调用会被算高。与其让这个误差隐身,不如在「参考成本」的提示 + * 里把覆盖范围写清楚。 + */ +function holidayNote(pricing, t) { + const years = pricing && pricing.holidays && typeof pricing.holidays === 'object' + ? Object.keys(pricing.holidays).map(Number).filter((n) => Number.isFinite(n)).sort((a, b) => a - b) + : [] + if (years.length === 0) return null + const range = years.length === 1 ? String(years[0]) : years[0] + '–' + years[years.length - 1] + const missing = years.filter((year) => pricing.holidays[year] && pricing.holidays[year].unpublished === true) + if (missing.length === 0) return t('holidayNote', { range }) + return t('holidayNoteUnpublished', { range, years: missing.join('、') }) +} + +/* 统计卡的槽位表:骨架屏按它画占位块。 + * + * 这张表存在的唯一理由是**别再漂**:骨架屏曾经写死 5 个占位块,而真实卡片已经 + * 6 张(补了「模型占比」),结果加载态少一格、数据到达时整行重排。 + * 槽位顺序必须与 `SummaryCards` 里的 `cards` 数组一致 —— `tests/client-slots.test.js` + * 会逐字比对两边的 key 列表,改一处漏另一处直接变红。 + */ +const SUMMARY_CARD_SLOTS = ['total', 'input', 'output', 'calls', 'cost', 'share'] + function SummaryCards(props) { - const { total, currency, unpricedCalls, currencyCode, onCurrencyChange, byModel } = props + const { total, currency, unpricedCalls, currencyCode, onCurrencyChange, byModel, pricing, onOpenPricing } = props const tt = useT() const d = total || {} const inputTotal = (d.inputTokens || 0) + (d.cacheReadTokens || 0) + (d.cacheWriteTokens || 0) @@ -2210,11 +3041,15 @@ function SummaryCards(props) { color: 'var(--dsw-static-deepseek-500)', }, { - key: 'cost', icon: 'coins', label: tt('cost'), + key: 'cost', icon: 'coins', label: tt('cost'), action: true, // 符号由 prefix 的币种切换器画(它显示当前币种符号),这里只给数字 value: costDigits(d.cost), title: formatCost(d.cost, currency), color: 'var(--dsw-static-green-500)', prefix: h(CurrencyPicker, { code: currencyCode, onChange: onCurrencyChange }), + // 「这个数怎么来的」:口径句与高峰规则原本是两行常驻小字,把小卡挤满了, + // 改成标题的悬浮提示 —— 不在视野里占位,指一下就能读到全文。 + // 未定价条数仍然留在卡面上:它是一条待办,不是解释。 + tip: [tt('costSourceNote'), tt('peakRuleShort'), holidayNote(pricing, tt)].filter(Boolean).join('\n'), }, { key: 'share', icon: 'share', label: tt('modelShare'), @@ -2228,21 +3063,602 @@ function SummaryCards(props) { h('div', { className: 'tsd-card-head' }, h('span', { className: 'tsd-card-icon', style: { color: c.color } }, h(SvgIcon, { name: c.icon, size: 14 })), - h('span', { className: 'tsd-card-label' }, c.label)), + h('span', { className: 'tsd-card-label', title: c.tip || null }, c.label), + // 提示记号是独立按钮:悬浮有原生 title,点击展开浮层。 + c.tip ? h(HintTip, { text: c.tip, label: tt('pricingCardNoteTip') }) : null, + // 参考成本卡的「怎么算出来的」入口:打开匹配弹窗。图标与弹窗里的 + // 「更新匹配表」同款(剪贴板),一眼看出两者是同一件事。 + c.action + ? h('button', { + type: 'button', + className: 'tsd-card-action', + title: tt('pricingOpen'), + 'aria-label': tt('pricingOpen'), + onClick: onOpenPricing, + }, h(SvgIcon, { name: 'contextInjection', size: 12 })) + : null), c.content ? c.content : h('div', { className: 'tsd-card-value', title: c.title }, c.prefix || null, c.value), - c.sub ? h('div', { className: 'tsd-card-sub' }, c.sub) : null, + // 参考成本卡的脚注:口径与高峰规则已移到标题的悬浮提示,这里只剩 + // 「还有几次调用没定价」这条待办(有事才出现)。 c.key === 'cost' && unpricedCalls > 0 - ? h('div', { className: 'tsd-card-note' }, tt('unpricedNote', { count: formatInt(unpricedCalls) })) - : null))) + ? h('div', { className: 'tsd-card-notes' }, + h('div', { className: 'tsd-card-note tsd-card-note-warn' }, tt('unpricedNote', { count: formatInt(unpricedCalls) }))) + : null, + c.sub ? h('div', { className: 'tsd-card-sub' }, c.sub) : null))) +} + +/* --------------------------------------------------------------------------- + * 定价匹配弹窗 + * + * 解决的是「参考成本为什么是这个数」:每个模型按名称逐级匹配到定价表,匹配 + * 结果分四态(精确 / 模糊 / 未匹配 / 自定义),四态都能改、都能收回。 + * + * 两条硬规则写在这里,别处不要各写一份: + * 1. 打开弹窗、拉取匹配表都**不落盘**。只有「确定」才写,写入的是脏行和被 + * 收回的 key —— 没动过的行不写,免得把别人刚确认的匹配覆盖掉。 + * 2. 候选来自当前定价表的 id(宿主 propose 一并带回),不在前端另存一份名单。 + * ------------------------------------------------------------------------- */ +const MATCH_STATE_LABEL = { exact: 'pricingHowLiteral', fuzzy: 'pricingHowTwin', none: 'pricingHowNone', custom: 'pricingHowCustom' } + +/* + * 四态由宿主给(priceRow.state),前端不再解释 how。 + * 这里曾经有一份 matchStateOf(row),把 how 映射成四态;它写死了一个阶梯里不存在 + * 的值('literal'),于是所有精确命中都显示成「未匹配」——两个词表,两处维护, + * 一处错就全错。现在只有一处:pricing.js 的 resolvePrice。 + */ + +/** 弹窗里改动的草稿:key → { target, cleared, dirty }。 */ +function mergeDraft(prev, key, patch) { + const next = { ...prev } + const cur = next[key] || { target: null, cleared: false, dirty: false } + next[key] = { ...cur, ...patch, dirty: true } + return next +} + +/** 一行提交时会带什么:`undefined` = 没动过,不提交。 */ +function decisionOf(draft) { + if (!draft || !draft.dirty) return undefined + if (draft.cleared) return { key: draft.key, clear: true } + if (typeof draft.target === 'string' && draft.target !== '') return { key: draft.key, target: draft.target } + return undefined +} + +function PricingDialog(props) { + const { onClose, onApplied, currency } = props + const t = useT() + const [rows, setRows] = React.useState([]) + const [table, setTable] = React.useState(null) + const [saved, setSaved] = React.useState({}) + const [draft, setDraft] = React.useState({}) + const [status, setStatus] = React.useState('loading') // loading | ready | error + const [error, setError] = React.useState(null) + const [saving, setSaving] = React.useState(false) + const [pickFor, setPickFor] = React.useState(null) // 正在选参考模型的 key + const [pickText, setPickText] = React.useState('') + const [editFor, setEditFor] = React.useState(null) // 正在手填单价的 key(自定义选项) + const [historyOpen, setHistoryOpen] = React.useState(false) + // 候选列表挂在行内「匹配到」那一格上:浮层是 position: fixed,撑不开表格; + // 但 DOM 上仍留在那一格里 —— useOutsideClick 用 contains 判内外,必须这样挂。 + const pickAnchor = React.useRef(null) + const closePick = React.useCallback(() => { + setPickFor(null) + setPickText('') + }, []) + const pickStyle = useFixedPanel(pickAnchor, pickFor !== null, 300, 4, 12) + const customStyle = useFixedPanel(pickAnchor, editFor !== null, 280, 4, 12) + useOutsideClick(pickFor !== null, pickAnchor, closePick) + + const pull = React.useCallback(() => { + setStatus('loading') + setError(null) + hostCall('usage/query', { fill: false, models: [], heatmap: false, backfill: false }) + .then((r) => { + const seen = Array.isArray(r && r.models) ? r.models : [] + return hostCall('usage/pricing', { action: 'propose', models: seen }) + }) + .then((v) => { + setRows(Array.isArray(v && v.rows) ? v.rows : []) + setTable(v && v.table ? v.table : null) + setSaved(v && v.matchMap ? v.matchMap : {}) + setDraft({}) + setStatus('ready') + }, (e) => { + setError(e) + setStatus('error') + }) + }, []) + + React.useEffect(() => { pull() }, [pull]) + + const counts = React.useMemo(() => { + const n = { exact: 0, fuzzy: 0, none: 0, custom: 0 } + // 每一行都自带 state(宿主 priceRow 给的),前端不再从 how 反推 —— 反推过 + // 一次,写死的 'literal' 阶梯里根本不存在,所有精确命中都显示成「未匹配」。 + for (const r of rows) n[r.state] += 1 + return n + }, [rows]) + + // 单价本身是美元价(价目表就是美元),显示时套用当前展示币种,和卡片同一个数。 + const moneyPerUsd = React.useCallback(() => (currency && currency.code === 'USD' ? 1 : 7), [currency]) + const moneyOf = React.useCallback((usd) => { + const code = currency && currency.code === 'USD' ? 'USD' : 'CNY' + const symbol = currency && currency.symbol ? currency.symbol : (CURRENCY_SYMBOLS[code] || '¥') + return typeof usd === 'number' ? formatCost(usd * (code === 'USD' ? 1 : 7), symbol) : '—' + }, [currency]) + // 表头单位必须和单元格用的是同一个符号,否则会出现「单价($ / 1M)」配「¥2.10」。 + const priceUnit = (currency && currency.symbol) || '¥' + + // 待选 = 阶梯没找到价的行。判据用 state 而不是 unpriced:`unpriced` 是查询那边 + // 「某条记录没价」的字段,propose 的行从来没有它 —— 拿它当过滤条件的后果是待选 + // 表永远是空的,未匹配的模型一行都露不出来。 + const pending = rows.filter((r) => r.state === 'none') + // 历史表 = 已经写进 matchMap 的 confirmed 记录。判据只看 matchMap:目标若已从 + // 价目表下线,这一行仍然留在这里(还能收回),主表里则按「未匹配」显示并标 stale。 + const historyRows = rows.filter((r) => saved[r.key] !== undefined) + const pendingRows = pending.filter((r) => !historyRows.includes(r)) + const matchedRows = rows.filter((r) => r.state !== 'none' && !historyRows.includes(r)) + // 空状态判的是主表有没有行。此前判的是 `pending.length` —— 只要有模型按阶梯 + // 命中了价,第一张表就整块消失,于是「精确 / 模糊」两种状态永远没机会露面。 + const hasMainRows = pendingRows.length > 0 || matchedRows.length > 0 + + // 注意:组件里的 `setDraft` 是 useState 的 setter,不是上面那个纯函数。 + // 写成 setDraft((prev) => setDraft(prev, ...)) 会递归调自己(初值 undefined), + // 所以这里用纯函数的名字 `mergeDraft` 区分开。 + const choose = (key, target) => { + setDraft((prev) => mergeDraft(prev, key, { target, cleared: false, custom: null, key })) + setEditFor(null) + closePick() + } + const clearRow = (key) => { + setDraft((prev) => mergeDraft(prev, key, { target: null, cleared: true, custom: null, key })) + setEditFor((k) => (k === key ? null : k)) + } + + /** 手填单价:三格,都是「每百万 Token」的展示币种金额。 */ + const CUSTOM_FIELDS = [['input', 'pricingCustomInput'], ['output', 'pricingCustomOutput'], ['cacheRead', 'pricingCustomCacheRead']] + /** 某个 key 当前的手填值(草稿优先,其次宿主已有的自定义价)。 */ + const customOf = (r) => { + const d = draft[r.key] + if (d && d.custom) return d.custom + // 宿主已按自定义价计过账:用它当前的费率回填,方便改。 + if (r.how === 'custom' && r.rates) { + const per = moneyPerUsd() + const at = r.rates.peak || r.rates.offPeak + return { + input: String(Number((at.input * per).toFixed(4))), + output: String(Number((at.output * per).toFixed(4))), + cacheRead: String(Number((at.cacheRead * per).toFixed(4))), + } + } + return { input: '', output: '', cacheRead: '' } + } + /** 开始手填:把这一行切成编辑态,草稿里先放一份可编辑的值。 */ + const startCustom = (key) => { + const row = rows.find((x) => x.key === key) + const seed = row ? customOf(row) : { input: '', output: '', cacheRead: '' } + setDraft((prev) => mergeDraft(prev, key, { target: null, cleared: false, custom: seed, key })) + setEditFor(key) + closePick() + } + const setCustomField = (key, field, value) => { + setDraft((prev) => { + const cur = (prev[key] && prev[key].custom) || { input: '', output: '', cacheRead: '' } + return mergeDraft(prev, key, { target: null, cleared: false, custom: { ...cur, [field]: value }, key }) + }) + } + + const dirtyKeys = Object.keys(draft).filter((k) => draft[k].dirty) + /** 三格都能读成非负数字才算一条手填价,否则不发出去(避免把空串写成 0)。 */ + const customOfDraft = (d) => { + if (!d || !d.custom) return null + const out = {} + for (const [field] of CUSTOM_FIELDS) { + const raw = String(d.custom[field] == null ? '' : d.custom[field]).trim() + if (raw === '') return null + const v = Number(raw) + if (!Number.isFinite(v) || v < 0) return null + out[field] = v + } + return out + } + const submit = () => { + if (dirtyKeys.length === 0 || saving) { if (dirtyKeys.length === 0) onClose(); return } + const decisions = [] + const cleared = [] + const customs = [] + for (const k of dirtyKeys) { + const d = draft[k] + if (d.cleared) cleared.push(k) + else if (d.custom) { + const rate = customOfDraft(d) + if (rate !== null) customs.push({ key: k, ...rate }) + } else if (typeof d.target === 'string' && d.target !== '') decisions.push({ key: k, target: d.target }) + } + setSaving(true) + hostCall('usage/pricing', { action: 'commit', decisions, cleared, customs, currency: currency && currency.code ? currency.code : 'CNY' }) + .then((v) => { + setSaving(false) + setDraft({}) + setEditFor(null) + if (onApplied) onApplied(v) + onClose() + }, (e) => { + setSaving(false) + setError(e) + setStatus('error') + }) + } + + const onKeyDown = (e) => { + if (e.key === 'Escape') { + // 一路退出:先收候选列表,再关弹窗 + if (pickFor !== null) { closePick(); return } + onClose() + } + } + + // 单价:宿主给的是两档费率(rates),tier 是它自己算的「现在按哪档显示」。 + // 前端只查表、不猜档 —— 之前宿主把档折成一行再发过来,另一档就凭空消失了。 + const rateLine = (rates) => [rates.input, rates.output, rates.cacheRead].map(moneyOf).join(' / ') + const priceLine = (r) => { + // 手填价:三格都填好就照填的印(它们本来就是展示币种),否则提示还没填完。 + const d = r ? draft[r.key] : null + if (d && d.custom) { + const vals = CUSTOM_FIELDS.map(([field]) => String(d.custom[field] == null ? '' : d.custom[field]).trim()) + if (vals.every((v) => v !== '' && Number.isFinite(Number(v)))) { + return vals.map((v) => priceUnit + Number(v).toFixed(2)).join(' / ') + } + return t('pricingCustomPending') + } + return r && r.rates ? rateLine(r.rates[r.tier] || r.rates.peak) : t('unpriced') + } + /** 悬停时把两档都列出来:同一格只印一档,但不能让另一半价格看不见。 */ + const priceTitle = (r) => { + if (!r || !r.rates) return null + return t('pricingBothTiers', { peak: rateLine(r.rates.peak), off: rateLine(r.rates.offPeak) }) + } + + // 参考模型候选按来源分组:DeepSeek 官方、opencode Zen。「自定义」不是一个组, + // 而是列表顶部的一个单独选项 —— 选它不是挑一个参考模型,而是直接给这一行填 + // 三个单价(输入 / 输出 / 缓存读),存进 `prices`。 + const SOURCE_LABEL = { deepseek: 'pricingSourceDeepseek', zen: 'pricingSourceZen', custom: 'pricingSourceCustom' } + const candidateGroups = () => { + if (!table || !Array.isArray(table.groups)) return [] + const q = pickText.trim().toLowerCase() + let budget = 80 + const out = [] + for (const group of table.groups) { + const all = Array.isArray(group.ids) ? group.ids : [] + const ids = all.filter((id) => (q === '' ? true : id.toLowerCase().includes(q))) + if (ids.length === 0) continue + const kept = ids.slice(0, Math.max(0, budget)) + budget -= kept.length + out.push({ source: group.source, ids: kept }) + if (budget <= 0) break + } + return out + } + + /** 某组里的 id 属于哪个来源(草稿刚选的目标也查得到)。 */ + const sourceOf = (id) => { + if (!id || !table || !Array.isArray(table.groups)) return null + for (const group of table.groups) { + if (Array.isArray(group.ids) && group.ids.includes(id)) return group.source + } + return null + } + + /** + * 当前行要显示的匹配目标:草稿优先于宿主的答案。 + * + * 用户刚选完目标就要立刻看见,否则读起来像「点了没反应」;已收回的显示为空。 + */ + const shownOf = (r) => { + const d = draft[r.key] + if (!d) return r.target + if (d.cleared) return null + if (d.custom) return null // 手填价没有参考模型 id,格子显示「自定义」 + return d.target + } + + /** 一行的四态:收回即未匹配,选了目标或手填价即自定义,其余用宿主给的 state。 */ + const stateOf = (r) => { + const d = draft[r.key] + if (d && d.cleared) return 'none' + if (d && (d.target || d.custom)) return 'custom' + return r.state + } + + /** + * 选择器本体。 + * + * 未匹配的行不再要求先点一次「选择参考模型」:展开的那一刻输入框就带焦点, + * 选完直接落进草稿(仍然要按「确定」才写盘)。 + */ + const pickerFor = (key) => { + const row = rows.find((x) => x.key === key) + const cur = row ? shownOf(row) : null + return [ + h('input', { + key: 'q', + type: 'text', + className: 'tsd-price-pick-input', + value: pickText, + placeholder: t('askPick'), + autoFocus: true, + onChange: (e) => setPickText(e.target.value), + }), + h('div', { key: 'l', className: 'tsd-price-pick-list', role: 'listbox' }, + // 顶部固定一条「自定义」:选它不是挑参考模型,而是给这一行手填三个单价。 + h('button', { + key: 'custom', + type: 'button', + role: 'option', + 'aria-selected': 'false', + className: 'tsd-price-pick-item tsd-price-pick-custom', + onClick: () => startCustom(key), + }, + h('span', { className: 'tsd-price-pick-custom-label' }, t('pricingCustomOption')), + h('span', { className: 'tsd-price-pick-custom-hint' }, t('pricingCustomHint'))), + h('div', { key: 'sep', className: 'tsd-price-pick-sep', role: 'presentation' }), + // 一组一个表头 + 若干选项。role 保持 listbox/option,表头只是分组标签。 + candidateGroups().map((group) => [ + h('div', { + key: 'g:' + group.source, + className: 'tsd-price-pick-group', + role: 'presentation', + }, t(SOURCE_LABEL[group.source] || group.source)), + ...group.ids.map((id) => h('button', { + key: id, + type: 'button', + role: 'option', + 'aria-selected': id === (cur || ''), + className: 'tsd-price-pick-item' + (id === cur ? ' tsd-price-pick-item-active' : ''), + onClick: () => choose(key, id), + }, id)), + ])), + ] + } + + const bindPickAnchor = (el) => { if (el) pickAnchor.current = el } + + const renderRow = (r) => { + const d = draft[r.key] + const state = stateOf(r) + const shown = shownOf(r) + const picking = pickFor === r.key + const editing = editFor === r.key + const openPick = () => { if (picking) { closePick(); return } setEditFor(null); setPickFor(r.key); setPickText('') } + // 还原只在真的改过(或历史确认过)的行上出现:精确/模糊命中的行本来就没有 + // 可还原的东西,每行都挂一颗按钮只会把表格挤成表单。 + const canReset = state === 'custom' || (d && d.dirty) + // 弹窗遮罩是 z-index 60,浮层必须压在它上面;其余定位(上翻、封高)交给 hook。 + const pickPanel = picking + ? h('div', { + className: 'tsd-price-pick-box', + style: Object.assign({}, pickStyle, { zIndex: 70 }), + onKeyDown: (e) => { if (e.key === 'Escape') { e.stopPropagation(); closePick() } }, + }, pickerFor(r.key)) + : null + // 手填单价的浮层:三格(输入 / 输出 / 缓存读),单位就是表格的展示币种。 + const cur = editing ? customOf(r) : null + const customPanel = editing + ? h('div', { + className: 'tsd-price-pick-box tsd-price-custom-box', + style: Object.assign({}, customStyle, { zIndex: 70 }), + onKeyDown: (e) => { if (e.key === 'Escape') { e.stopPropagation(); setEditFor(null) } }, + }, + h('div', { className: 'tsd-price-custom-title' }, t('pricingCustomOption')), + ...CUSTOM_FIELDS.map(([field, label]) => h('label', { key: field, className: 'tsd-price-custom-field' }, + h('span', null, t(label)), + h('input', { + type: 'number', + min: '0', + step: '0.001', + className: 'tsd-price-custom-input', + 'data-field': field, + value: cur[field], + autoFocus: field === 'input', + onChange: (e) => setCustomField(r.key, field, e.target.value), + }))), + h('div', { className: 'tsd-price-custom-hint' }, t('pricingCustomUnit', { unit: priceUnit })), + h('button', { + type: 'button', + className: 'tsd-btn tsd-btn-ghost tsd-btn-xs', + onClick: () => setEditFor(null), + }, t('done'))) + : null + // 这一行匹配到的参考模型属于哪一类(DeepSeek / Zen / 自定义)。草稿里刚选的 + // 目标也查得到:候选名单本来就按来源分好了组,不用再问宿主一次。 + // 「自定义」不仅指草稿:从 `prices` 计价的行也没有参考模型 id(target 为空), + // 它的目标格要写「自定义」,不然会显示成待选。 + const isCustom = Boolean(d && d.custom) || (r.how === 'custom' && !r.target) + const src = shown ? (sourceOf(shown) || r.source) : (isCustom ? 'custom' : null) + return h('tr', { key: r.key, className: 'tsd-price-row', 'data-state': state, 'data-model': r.key, 'data-dirty': d && d.dirty ? 'true' : undefined }, + h('td', { className: 'tsd-price-model', title: r.key }, + h('span', { className: 'tsd-price-model-name' }, shortModelName(r.key)), + r.provider ? h('span', { className: 'tsd-price-model-provider' }, r.provider) : null), + // 匹配目标格本身就是选择器入口:一颗紧凑按钮,未匹配时虚线 + 提示语。 + h('td', { className: 'tsd-price-target', ref: picking || editing ? bindPickAnchor : undefined }, + h('button', { + type: 'button', + className: 'tsd-price-target-btn', + 'data-empty': shown || isCustom ? undefined : 'true', + 'aria-expanded': picking || editing ? 'true' : 'false', + 'aria-haspopup': 'listbox', + title: shown ? shown + (src ? ' · ' + t(SOURCE_LABEL[src] || src) : '') : null, + onClick: openPick, + }, + h('span', { className: 'tsd-price-target-id' }, shown || (isCustom ? t('pricingCustomOption') : t('askPick'))), + h(SvgIcon, { name: 'chevron', size: 12, className: 'tsd-price-target-chev' })), + src + ? h('span', { className: 'tsd-price-src', 'data-source': src }, t(SOURCE_LABEL[src] || src)) + : null, + state !== 'none' && !r.rates && !isCustom + ? h('span', { className: 'tsd-price-stale' }, t('pricingStale')) + : null, + pickPanel, + customPanel), + h('td', null, h('span', { className: 'tsd-price-badge', 'data-state': state, title: r.why || null }, t(MATCH_STATE_LABEL[state]))), + h('td', { className: 'tsd-price-rate', title: priceTitle(r) }, priceLine(r)), + h('td', { className: 'tsd-price-ops' }, + canReset + ? h('button', { + type: 'button', + className: 'tsd-price-reset', + title: t('pricingClear'), + 'aria-label': t('pricingClear'), + onClick: () => clearRow(r.key), + }, h(SvgIcon, { name: 'refresh', size: 12 })) + : null)) + } + + const body = status === 'loading' + ? h('div', { className: 'tsd-price-loading' }, t('loading')) + : status === 'error' + ? h('div', { className: 'tsd-alert-banner', role: 'alert' }, + h('span', null, t('pricingFailed', { message: String((error && error.message) || error) })), + h('button', { type: 'button', className: 'tsd-btn tsd-btn-ghost', onClick: pull }, t('retry'))) + : h('div', { className: 'tsd-price-body' }, + h('div', { className: 'tsd-price-meta' }, + table && table.source + ? t('pricingTableMeta', { source: table.source, date: stampText(table.capturedAt) }) + : null, + h('span', { className: 'tsd-price-counts' }, t('pricingCounts', { + exact: counts.exact, fuzzy: counts.fuzzy, none: counts.none, custom: counts.custom, + }))), + // 一张表装两段行:待选的未定价行在前,已按阶梯命中的行在后。 + // 分成两张表会出现两行表头,看起来像两份数据。 + !hasMainRows + ? h('div', { className: 'tsd-price-empty' }, t('askEmpty')) + : h('table', { className: 'tsd-price-table' }, + h('thead', null, h('tr', null, + h('th', null, t('pricingColModel')), + h('th', null, t('pricingColMatch')), + h('th', null, t('pricingColState')), + h('th', null, t('pricingColPrice', { unit: priceUnit })), + h('th', null, ''))), + h('tbody', null, + pendingRows.map((r) => renderRow(r)), + matchedRows.map((r) => renderRow(r)))), + h('div', { className: 'tsd-price-history' }, + h('button', { + type: 'button', + className: 'tsd-price-history-toggle', + 'aria-expanded': historyOpen, + onClick: () => setHistoryOpen((v) => !v), + }, + h(SvgIcon, { name: 'chevron', size: 12, className: 'tsd-price-history-chev' + (historyOpen ? ' tsd-price-history-chev-open' : '') }), + h('span', null, t('pricingHistory', { n: historyRows.length }))), + historyOpen + ? historyRows.length === 0 + ? h('div', { className: 'tsd-price-empty' }, t('pricingHistoryEmpty')) + : h('div', null, + h('table', { className: 'tsd-price-table tsd-price-table-sub' }, + h('thead', null, h('tr', null, + h('th', null, t('pricingColModel')), + h('th', null, t('pricingColMatch')), + h('th', null, t('pricingColState')), + h('th', null, t('pricingColPrice', { unit: priceUnit })), + h('th', null, ''))), + h('tbody', null, historyRows.map((r) => renderRow(r))))) + : null)) + + return h('div', { className: 'tsd-price-overlay', role: 'presentation', onMouseDown: (e) => { if (e.target === e.currentTarget) onClose() } }, + h('div', { + className: 'tsd-price-dialog', + role: 'dialog', + 'aria-modal': 'true', + 'aria-label': t('pricingTitle'), + onKeyDown, + }, + h('div', { className: 'tsd-price-head' }, + h('h3', { className: 'tsd-price-title' }, t('pricingTitle')), + h('button', { + type: 'button', + className: 'tsd-price-close', + title: t('cancel'), + 'aria-label': t('cancel'), + onClick: onClose, + }, h(SvgIcon, { name: 'x', size: 14 }))), + h('p', { className: 'tsd-price-desc' }, t('pricingDesc')), + body, + h('div', { className: 'tsd-price-foot' }, + h('button', { + type: 'button', + className: 'tsd-btn tsd-btn-ghost tsd-btn-icon-label', + onClick: pull, + disabled: status === 'loading' || saving, + }, + h(SvgIcon, { name: 'contextInjection', size: 14 }), + h('span', null, t('pricingPull'))), + h('span', { className: 'tsd-price-hint' }, dirtyKeys.length > 0 ? t('pricingApplyHint') : ''), + h('button', { type: 'button', className: 'tsd-btn tsd-btn-ghost', onClick: onClose, disabled: saving }, t('cancel')), + h('button', { + type: 'button', + className: 'tsd-btn tsd-btn-primary', + onClick: submit, + disabled: saving, + }, saving ? t('loading') : t('pricingSave'))))) } /* --------------------------------------------------------------------------- * 每日用量柱状图(手写 div 堆叠柱:下段输入蓝 / 上段输出绿) * ------------------------------------------------------------------------- */ +/** + * One hover-tip content block, shared by the trend chart (bar + line) and the + * yearly heatmap: date, input, output, total, reference cost. + * + * Cost comes from the host bucket (`cost`, already converted to the display + * currency), so all three tips show the same number as the summary card and the + * model table. A zero is printed as ¥0.00 — "0" is a price, "unpriced" is a + * different verdict, and it is the host's to give. + */ +function TipRows(props) { + const { row, t, currency, withSplit } = props + const inT = row.inputTokens || 0 + const outT = row.outputTokens || 0 + const totT = row.totalTokens || 0 + return [ + withSplit + ? h('div', { key: 'in', className: 'tsd-tooltip-row' }, + h('span', { className: 'tsd-tooltip-dot tsd-legend-in' }), + h('span', null, t('legendInput')), + h('span', { className: 'tsd-tooltip-val' }, formatInt(inT))) + : h('div', { key: 'in', className: 'tsd-tooltip-row' }, + h('span', { className: 'tsd-tooltip-dot', style: { background: 'var(--dsw-static-deepseek-500)' } }), + h('span', null, t('totalTokens')), + h('span', { className: 'tsd-tooltip-val' }, formatInt(totT))), + withSplit + ? h('div', { key: 'out', className: 'tsd-tooltip-row' }, + h('span', { className: 'tsd-tooltip-dot tsd-legend-out' }), + h('span', null, t('legendOutput')), + h('span', { className: 'tsd-tooltip-val' }, formatInt(outT))) + : null, + // 成本与调用次数没有对应图例,所以只留 10px 的空白占位(.tsd-tooltip-dot 本身无底色), + // 不画色块:色块的含义是「这一行对应图例里的哪个颜色」。 + h('div', { key: 'cost', className: 'tsd-tooltip-row' }, + h('span', { className: 'tsd-tooltip-dot', 'aria-hidden': 'true' }), + h('span', null, t('cost')), + h('span', { className: 'tsd-tooltip-val' }, formatCost(row.cost || 0, currency))), + row.calls > 0 + ? h('div', { key: 'calls', className: 'tsd-tooltip-row' }, + h('span', { className: 'tsd-tooltip-dot', 'aria-hidden': 'true' }), + h('span', null, t('calls')), + h('span', { className: 'tsd-tooltip-val' }, formatInt(row.calls))) + : null, + withSplit + ? h('div', { key: 'total', className: 'tsd-tooltip-total' }, + h('span', null, t('tooltipTotal')), + h('span', null, formatInt(totT))) + : null, + ] +} + function DailyChart(props) { - const { daily, gran, stepDays, granLabel } = props + const { daily, gran, stepDays, granLabel, currency } = props const t = useT() const chartRef = React.useRef(null) const [tip, setTip] = React.useState(null) // { row, x } @@ -2292,21 +3708,11 @@ function DailyChart(props) { const barTip = tip ? h('div', { className: 'tsd-tooltip', style: { left: tip.x + 'px' } }, h('div', { className: 'tsd-tooltip-date' }, tip.row.key + ' ' + weekdayName(tip.row.key, t)), - h('div', { className: 'tsd-tooltip-row' }, - h('span', { className: 'tsd-tooltip-dot tsd-legend-in' }), - h('span', null, t('legendInput')), - h('span', { className: 'tsd-tooltip-val' }, formatInt(inOf(tip.row)))), - h('div', { className: 'tsd-tooltip-row' }, - h('span', { className: 'tsd-tooltip-dot tsd-legend-out' }), - h('span', null, t('legendOutput')), - h('span', { className: 'tsd-tooltip-val' }, formatInt(outOf(tip.row)))), - h('div', { className: 'tsd-tooltip-total' }, - h('span', null, t('tooltipTotal')), - h('span', null, formatInt(totOf(tip.row))))) + h(TipRows, { row: tip.row, t, currency, withSplit: true })) : null const body = view === 'line' - ? h(LineChart, { rows, gran, stepDays, showTip, tip, setTip, chartRef }) + ? h(LineChart, { rows, gran, stepDays, showTip, tip, setTip, chartRef, currency }) : h('div', { className: 'tsd-chart', ref: chartRef }, rows.map((row, i) => { const inT = inOf(row) @@ -2323,7 +3729,7 @@ function DailyChart(props) { onMouseLeave: () => setTip(null), onFocus: (e) => showTip(e, row), onBlur: () => setTip(null), - 'aria-label': t('barAria', { key: row.key, in: formatInt(inT), out: formatInt(outT), tot: formatInt(totT) }), + 'aria-label': t('barAria', { key: row.key, in: formatInt(inT), out: formatInt(outT), tot: formatInt(totT), cost: formatCost(row.cost || 0, currency) }), }, h('div', { className: 'tsd-chart-plot' }, h('div', { className: 'tsd-chart-stack' }, @@ -2374,7 +3780,7 @@ function smoothPath(pts) { } function LineChart(props) { - const { rows, gran, stepDays, showTip, tip, setTip, chartRef } = props + const { rows, gran, stepDays, showTip, tip, setTip, chartRef, currency } = props const t = useT() const W = 620 const H = 240 @@ -2492,17 +3898,7 @@ function LineChart(props) { tip ? h('div', { className: 'tsd-tooltip', style: { left: tip.x + 'px' } }, h('div', { className: 'tsd-tooltip-date' }, tip.row.key + (stepDays > 1 ? ' ' + t('startNDays', { n: stepDays }) : '') + ' ' + weekdayName(tip.row.key, t)), - h('div', { className: 'tsd-tooltip-row' }, - h('span', { className: 'tsd-tooltip-dot tsd-legend-in' }), - h('span', null, t('legendInput')), - h('span', { className: 'tsd-tooltip-val' }, formatInt(inOf(tip.row)))), - h('div', { className: 'tsd-tooltip-row' }, - h('span', { className: 'tsd-tooltip-dot tsd-legend-out' }), - h('span', null, t('legendOutput')), - h('span', { className: 'tsd-tooltip-val' }, formatInt(outOf(tip.row)))), - h('div', { className: 'tsd-tooltip-total' }, - h('span', null, t('tooltipTotal')), - h('span', null, formatInt(totOf(tip.row))))) + h(TipRows, { row: tip.row, t, currency, withSplit: true })) : null) } @@ -2510,7 +3906,7 @@ function LineChart(props) { * 年度用量热力图(GitHub 风格) * ------------------------------------------------------------------------- */ function HeatmapCard(props) { - const { days } = props + const { days, currency } = props const t = useT() const [htip, setHtip] = React.useState(null) // { cell, left, top } in viewport coords const grid = React.useMemo(() => { @@ -2559,16 +3955,7 @@ function HeatmapCard(props) { style: { position: 'fixed', left: htip.left + 'px', top: htip.top + 'px', transform: 'translate(-50%, -110%)' }, }, h('div', { className: 'tsd-tooltip-date' }, htip.cell.key + ' ' + weekdayName(htip.cell.key, t)), - h('div', { className: 'tsd-tooltip-row' }, - h('span', { className: 'tsd-tooltip-dot', style: { background: 'var(--dsw-static-deepseek-500)' } }), - h('span', null, t('totalTokens')), - h('span', { className: 'tsd-tooltip-val' }, formatInt(htip.cell.totalTokens || 0))), - htip.cell.calls > 0 - ? h('div', { className: 'tsd-tooltip-row' }, - h('span', { className: 'tsd-tooltip-dot', style: { background: 'var(--dsw-alias-label-tertiary)' } }), - h('span', null, t('calls')), - h('span', { className: 'tsd-tooltip-val' }, formatInt(htip.cell.calls))) - : null) + h(TipRows, { row: htip.cell, t, currency, withSplit: false })) : null const dayNames = ['', t('weekdayMon'), '', t('weekdayWed'), '', t('weekdayFri'), ''] @@ -2600,7 +3987,7 @@ function HeatmapCard(props) { key: c.key, className: 'tsd-heatmap-cell', style: { background: heatColor(c.totalTokens || 0, grid.max) }, - title: t('hmTitle', { key: c.key, tokens: formatInt(c.totalTokens || 0), calls: c.calls ? t('hmCalls', { count: formatInt(c.calls) }) : '' }), + title: t('hmTitle', { key: c.key, tokens: formatInt(c.totalTokens || 0), calls: c.calls ? t('hmCalls', { count: formatInt(c.calls) }) : '', cost: formatCost(c.cost || 0, currency) }), onMouseEnter: (e) => showCellTip(e, c), onMouseLeave: () => setHtip(null), onFocus: (e) => showCellTip(e, c), @@ -2637,7 +4024,11 @@ function ModelTable(props) { output: r.outputTokens || 0, total: r.totalTokens || 0, cost: r.cost || 0, - unpriced: (r.totalTokens || 0) > 0 && !(r.cost > 0), + // The verdict comes from the host, which knows whether a price was found. + // This used to be re-derived here as `tokens > 0 && !(cost > 0)`, which + // labels every 0-cost row 未定价 — including a model the user explicitly + // priced at 0 (a real price, cost 0, so ¥0.00 is the honest answer). + unpriced: r.unpriced === true, })), [all]) const sumTotal = React.useMemo(() => view.reduce((s, r) => s + r.total, 0), [view]) @@ -2720,12 +4111,19 @@ function ModelTable(props) { /* --------------------------------------------------------------------------- * 三态:加载 / 错误 / 空 * ------------------------------------------------------------------------- */ -function LoadingState() { +function LoadingState(props) { const t = useT() - return h('div', { className: 'tsd-loading' }, + // 统计中(computing)时头部副标题已经在播报进度,这里就不再做第二个 live 区域, + // 否则屏幕阅读器会把「正在加载」和「正在统计 12/258」各念一遍。 + const announce = !props || props.announce !== false + return h('div', { className: 'tsd-loading', role: 'status', 'aria-live': announce ? 'polite' : 'off' }, + // 骨架屏对眼睛是"正在来",对屏幕阅读器什么都不是:给它一句可读的状态。 + announce ? h('span', { className: 'tsd-visually-hidden' }, t('loading')) : null, h('div', { className: 'tsd-cards' }, - [0, 1, 2, 3, 4].map((i) => - h('div', { key: i, className: 'tsd-card tsd-card-skeleton' }, + // 一张卡一个占位块,张数取自 SUMMARY_CARD_SLOTS —— 与真实卡片同一份顺序表, + // 所以补卡片时骨架自动跟上(这里曾经写死 5 个,真实是 6 个)。 + SUMMARY_CARD_SLOTS.map((slot) => + h('div', { key: slot, className: 'tsd-card tsd-card-skeleton' }, h('div', { className: 'tsd-skeleton', style: { width: '40%', height: 12 } }), h('div', { className: 'tsd-skeleton', style: { width: '70%', height: 22, marginTop: 10 } })))), h('div', { className: 'tsd-card' }, @@ -2774,10 +4172,17 @@ function StatsDashboard(props) { // 展示币种:宿主按它换算成本,所以换币种必须重查;选择记在本地(展示偏好, // 不写插件设置,免得每次取数都在改写用户配置)。 const [displayCurrency, setDisplayCurrency] = React.useState(readStoredCurrency) + // 定价匹配弹窗:只在这里开着,关掉即卸载(它的内部状态随之丢弃, + // 所以「不确定就不生效」不需要额外清理逻辑)。 + const [pricingOpen, setPricingOpen] = React.useState(false) // P1-6 backfill 轮询状态:queryKey 变化时重置,仅对同一查询串轮询 const queryKeyRef = React.useRef(null) const backfillSeenRef = React.useRef(false) const finalRefreshRef = React.useRef(false) + // 轮询节奏:统计窗口短则快问、长则慢问。固定 3 s 时,暖缓存 ~0.8 s 就跑完, + // 客户端要等 3 s 才更新 —— 进度条先躺着再跳一格,比没有更糟。 + const pollStepRef = React.useRef(0) + const POLL_DELAYS = [600, 1500, 3000] const eff = React.useMemo(() => rangeFor(range, custom), [range, custom]) // Fixed step policy: today = hourly; 7d/30d/custom = daily, custom uses a @@ -2796,6 +4201,7 @@ function StatsDashboard(props) { queryKeyRef.current = queryKey backfillSeenRef.current = false finalRefreshRef.current = false + pollStepRef.current = 0 } const isFinalRun = finalRefreshRef.current finalRefreshRef.current = false @@ -2819,10 +4225,14 @@ function StatsDashboard(props) { const bs = r && r.backfill ? r.backfill.status : null if (bs === 'running') { backfillSeenRef.current = true - // 同一 effect 至多挂一个定时器;重查复用 retry 计数器触发 effect 重跑 + // 同一 effect 至多挂一个定时器;重查复用 retry 计数器触发 effect 重跑。 + // 先快后慢:600 ms 起步能跟上 0.8 s 的暖缓存窗口,长任务再退到 3 s, + // 不至于把宿主问成压力测试。 + const delay = POLL_DELAYS[Math.min(pollStepRef.current, POLL_DELAYS.length - 1)] + pollStepRef.current += 1 backfillTimer = setTimeout(() => { if (current) setRetry((v) => v + 1) - }, 3000) + }, delay) } else if (bs === 'done' && backfillSeenRef.current && !isFinalRun) { // 回填收尾:恰好再查一次拿到完整数据后停止 finalRefreshRef.current = true @@ -2901,10 +4311,38 @@ function StatsDashboard(props) { const ready = data !== null const isError = status === 'error' const isEmpty = ready && data.daily.length === 0 && data.byModel.length === 0 + // "统计没算完":宿主还在回填历史(backfill.status === 'running')。 + // 它比 busy 长得多(全量 258 个会话要几秒),所以进度条与文案都以它为准; + // 请求在飞(busy)只是刷新,不该被当成"在算"。 + const backfill = (data && data.backfill) || null + const computing = Boolean(backfill && backfill.status === 'running') + const computeTotal = (backfill && backfill.total) || 0 + const computeDone = (backfill && backfill.done) || 0 + const computePct = computing && computeTotal > 0 + ? Math.min(100, Math.round((computeDone / computeTotal) * 100)) + : null + const showProgress = computing || (busy && ready && !isError) return h(T.Provider, { value: t }, - h('div', { className: 'tsd-section', 'aria-busy': busy || undefined }, - h(StatsHeader, { busy, onRefresh: reload }), + h('div', { className: 'tsd-section', 'aria-busy': busy || computing || undefined }, + // 首屏走后骨架屏(见 LoadingState);这里管"有数据但没算完"与"正在刷新": + // 一条 2px 的细进度条,绝对定位,不推动版面也不碰任何数字。 + // 算得完的时候它是确定进度(宽度 = done/total),否则是不确定扫动。 + showProgress + ? h('div', { + className: 'tsd-progress', + 'aria-hidden': 'true', + 'data-determinate': computePct === null ? undefined : 'true', + style: computePct === null ? undefined : { '--tsd-progress': computePct + '%' }, + }) + : null, + h(StatsHeader, { + busy, + computing, + computeDone, + computeTotal, + onRefresh: reload, + }), h(FilterBar, { range, custom, @@ -2920,19 +4358,27 @@ function StatsDashboard(props) { isError && !ready ? h(ErrorState, { error, onRetry: reload }) : null, - !ready && !isError - ? h(LoadingState, null) + // **从 DSH 启动到统计算完,整段都是加载态。** + // 覆盖两种"还没东西可看": + // ① 首屏请求还没回来(!ready); + // ② 宿主还在回填历史(computing)—— 哪怕是第二次进来、手里已经有半份数据。 + // 半份数字比骨架更误导:它看起来像"你只有这么多用量",而且会一格一格往上爬。 + // 这也正是「数字一点点往上爬」那个抱怨的来源,所以宁可等,也不要给残缺的答案。 + (!ready || computing) && !isError + ? h(LoadingState, { announce: !computing }) : null, ready && isError ? h('div', { className: 'tsd-alert-banner', role: 'alert' }, h('span', null, t('loadFailed', { message: String((error && error.message) || error) })), h('button', { type: 'button', className: 'tsd-btn tsd-btn-ghost', onClick: reload }, t('retry'))) : null, - ready && !isError && isEmpty + // 空态只在"确实算完了还没有记录"时出现。统计中不落到空态。 + ready && !isError && isEmpty && !computing ? h(EmptyState, { filtered: models.length > 0, onReset: resetFilters }) : null, - ready && !isError && !isEmpty - ? h('div', { className: 'tsd-content', 'data-busy': busy ? 'true' : undefined }, + // 数据区同理:算完之前不渲染,免得残缺数字先出现再跳变。 + ready && !isError && !isEmpty && !computing + ? h('div', { className: 'tsd-content' }, h(SummaryCards, { total: data.total, currency: currencySymbol, @@ -2940,26 +4386,44 @@ function StatsDashboard(props) { currencyCode: displayCurrency, onCurrencyChange: changeCurrency, byModel: data.byModel, + pricing: data.pricing, + onOpenPricing: () => setPricingOpen(true), }), h(DailyChart, { daily: data.daily, gran: effGran, stepDays, granLabel, + currency: currencySymbol, }), - h(HeatmapCard, { days: data.heatmap || [] }), + h(HeatmapCard, { days: data.heatmap || [], currency: currencySymbol }), h(ModelTable, { rows: data.byModel, currency: currencySymbol })) + : null, + pricingOpen + ? h(PricingDialog, { + currency: { code: displayCurrency, symbol: currencySymbol }, + onClose: () => setPricingOpen(false), + // 确定后重查一次:匹配改了,卡片上的数字必须跟着变,否则用户会以为没保存成功。 + onApplied: reload, + }) : null)) } /* --------------------------------------------------------------------------- * 设置页导航图标 * - * `settings.section` 只投影 id/order/label,导航图标由设置页按 id 白名单自己 - * 决定(dsh-client-ui-settings-general 的 navIcon),第三方没有插口。所以这里 - * 给「自己那一行」打一个属性标记,再用 CSS mask 把兜底的齿轮换成用量图标: - * 不替换节点、不碰 React 管的 svg(替换会让 React 卸载时抛 NotFoundError), - * 只加属性、只用 ::before 画字形。 + * 原生确实没有这个插口 —— 取证过的,不是"我觉得": + * · 官方设置页把 `settings.section` 的条目投影成 `{id, order, label}` 三字段, + * 没有 icon(`@deepseek-ai/dsh-client-ui-settings-general` 的 nav rows + * getSnapshot:`ctx.slots.entries("settings.section").map(e => ({id, order, + * label: resolveSlotLabel(e.options.label)}))`); + * · 图标由该包自己的 `navIcon(id)` 按 id 白名单选,未列出的 id 回落到设置齿轮 + * (同包 `function navIcon(id)`,其注释原文 "unknown ids fall back to the + * settings gear")。 + * 所以第三方只能给自己的那一行打属性标记、用 CSS mask 换字形:不替换节点、不碰 + * React 管的 svg(替换会让 React 卸载时抛 NotFoundError),只加属性、只用 ::before + * 画字形。官方一旦给 `settings.section` 加上 icon 字段,这个模块应整体删除 —— + * 那时它是可引用的 L0,不该再留 L2 补缺。 * * 认行只能按可见文本:类名是 CSS Modules 哈希,账号行还会条件出现。 * 官方一旦给 settings.section 加上 icon 字段,这个模块应整体删除。 @@ -2998,7 +4462,7 @@ function installSettingsNavIcon(label) { styleEl.textContent = NAV_ICON_CSS document.head.appendChild(styleEl) } catch (e) { - console.warn('[usage] settings nav icon: styles unavailable') + logWarn('[usage] settings nav icon: styles unavailable') return null } const mark = () => { @@ -3018,7 +4482,7 @@ function installSettingsNavIcon(label) { observer = new MutationObserver(() => { try { mark() } catch (e) {} }) observer.observe(document.body, { childList: true, subtree: true }) } catch (e) { - console.warn('[usage] settings nav icon: observer unavailable', e) + logWarn('[usage] settings nav icon: observer unavailable', e) } return () => { if (observer) observer.disconnect() @@ -3124,6 +4588,9 @@ function CostPill(props) { * ------------------------------------------------------------------------- */ function apply(ctx) { usageCtx = ctx + // Mount the native Remote face once the page is up; the Fetch routes carry + // every call until it lands. + mountRemoteChannel(ctx) _usagePricesScope = null // 每次激活重绑,避免复用已释放的 scope ctx.effect(() => { if (typeof styles !== 'undefined' && styles && typeof styles.insert === 'function') { @@ -3159,7 +4626,7 @@ function apply(ctx) { } } if (!slots || typeof slots.inject !== 'function' || typeof slots.register !== 'function') { - console.warn('[usage] settings.section slot unavailable') + logWarn('[usage] settings.section slot unavailable') return } slots.inject('settings.section', () => slots.register( diff --git a/src/host/client-source.js b/src/host/client-source.js deleted file mode 100644 index facbf6f..0000000 --- a/src/host/client-source.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Client source loader. - * - * The full dashboard UI lives in src/client/index.js (single source of - * truth). A dynamic plugin cannot import files, so the host reads the file - * and serves it to the browser half, which evaluates it with new Function. - * - * P1-4: candidates are derived from import.meta.url so the dynamic-plugin - * dev flow works from any checkout location. - */ -import { fileURLToPath } from 'node:url'; - -const CLIENT_SOURCE_CANDIDATES = [ - // src/host -> src/client in dev; lib/host -> lib/client when built. - fileURLToPath(new URL('../client/index.js', import.meta.url)), - // Repo source fallback when the built lib runs inside a checkout. - fileURLToPath(new URL('../../src/client/index.js', import.meta.url)), -]; - -export async function getClientSource(ctx) { - const fs = ctx.get('fs'); - if (fs === undefined) return { ok: false, error: 'fs service unavailable' }; - for (const p of CLIENT_SOURCE_CANDIDATES) { - try { - const target = await fs.resolve(p); - const body = await fs.readText(target); - if (typeof body === 'string' && body.length > 0) return { ok: true, body }; - } catch (error) { - // try the next candidate - } - } - return { ok: false, error: 'client source not found (tried: ' + CLIENT_SOURCE_CANDIDATES.join(', ') + ')' }; -} diff --git a/src/host/fold-cache.js b/src/host/fold-cache.js new file mode 100644 index 0000000..8bc874f --- /dev/null +++ b/src/host/fold-cache.js @@ -0,0 +1,117 @@ +/** + * Fold cache: the folded records of one session, kept on disk between runs. + * + * Why this exists: the plugin keeps its index in memory, so every restart folded + * the whole persisted history again. Measured on this machine (2026-10-29): + * 258 sessions, 404 MB compressed, 1.35 GB / 574k lines after inflation — 12.5 s + * just to read and inflate, before parsing and folding. A cache turns an + * unchanged session into a single JSON read. + * + * Layout: one file per session under `/cache/dsh-plugin-usage/fold/`. + * One file per session, not one big file, because the slow scan rewrites only + * the sessions that changed. + * + * Safety, in order of importance: + * - a cache entry is keyed by the backend's own change token (`revision`), so an + * appended log always misses and is re-folded; + * - the signature carries FOLD_CACHE_VERSION and the holiday calendar's + * `capturedAt` — a cached `tokens.peak`/`tokens.off` split is only valid for the + * calendar that produced it, and a fold-rule change must not be papered over; + * - every failure is a miss, never a throw: a broken cache degrades to the + * full scan it replaces. + */ +import { readFileSync, writeFileSync, mkdirSync, renameSync } from 'node:fs' +import { homedir } from 'node:os' +import { dirname, join } from 'node:path' + +import { PUBLIC_HOLIDAYS } from './holidays.js' + +/** + * Bump when the shape of a folded record changes (fields added/removed, tokens + * split differently). Not a nice-to-have: a stale entry would be served as if it + * were freshly folded. + */ +export const FOLD_CACHE_VERSION = 1 + +/** Everything a cached record depends on beyond the session log itself. */ +export function foldSignature() { + return FOLD_CACHE_VERSION + ':' + (PUBLIC_HOLIDAYS.capturedAt || 'no-calendar') +} + +/** Where the per-session files live; `DSH_HOME` wins so tests can redirect it. */ +export function cacheDir(home) { + const root = home || process.env.DSH_HOME || join(homedir(), '.dsh') + return join(root, 'cache', 'dsh-plugin-usage', 'fold') +} + +/** File name for one session. Ids are opaque; encode so no separator can escape. */ +function entryPath(dir, id) { + return join(dir, encodeURIComponent(id) + '.json') +} + +/** + * Read one session's entry. + * + * @param {string} dir - cache directory. + * @param {string} id - session id. + * @returns {{ revision?: string, watermark: number, records: unknown[] } | null} + * the entry, or null when absent/unreadable/stale-shaped. + */ +export function readEntry(dir, id) { + let text + try { + text = readFileSync(entryPath(dir, id), 'utf8') + } catch { + return null + } + let payload + try { + payload = JSON.parse(text) + } catch { + return null + } + if (!payload || typeof payload !== 'object') return null + if (payload.sig !== foldSignature()) return null; + if (!Array.isArray(payload.records)) return null; + if (typeof payload.watermark !== 'number' || !Number.isFinite(payload.watermark)) return null + return { revision: payload.revision, watermark: payload.watermark, records: payload.records } +} + +/** + * Write one session's entry (atomic: temp file then rename). + * + * @param {string} dir - cache directory. + * @param {string} id - session id. + * @param {{ revision?: string, watermark: number, records: unknown[] }} entry + * @returns {boolean} whether the file was written. + */ +export function writeEntry(dir, id, entry) { + if (!Array.isArray(entry && entry.records)) return false + try { + mkdirSync(dir, { recursive: true }) + const path = entryPath(dir, id) + const temp = path + '.tmp' + writeFileSync(temp, JSON.stringify({ + sig: foldSignature(), + revision: entry.revision, + watermark: entry.watermark, + records: entry.records, + })) + renameSync(temp, path) + return true + } catch { + return false + } +} + +/** +/* + * There is deliberately no prune(). + * + * `sp.list()` returns a PARTIAL list while the session store warms up after a + * start, so "absent from this listing" does not mean "gone". Pruning on it + * deleted 257 of 258 valid entries on a live instance (2026-10-30 00:18) and + * every following start had to fold the whole history again — the exact symptom + * the cache exists to remove. A stale entry costs a few kilobytes and nothing + * else; it is only ever read by id from a listing. + */ diff --git a/src/host/fold.js b/src/host/fold.js index 32dc74a..b88ec55 100644 --- a/src/host/fold.js +++ b/src/host/fold.js @@ -127,6 +127,17 @@ export function foldEvent(state, sessionId, e) { ? u.totalTokens : inputTokens + outputTokens + cacheReadTokens + cacheWriteTokens, }; + // Peak / off-peak buckets. This is the only place an event's own timestamp is + // available, and DeepSeek bills by that timestamp: one model can mix both + // tiers inside a single day, so an aggregate priced after the fact is always + // either too high or too low. `state.peakOf` is injected by apply(), which + // keeps this function a pure function of its arguments in tests. + if (typeof state.peakOf === 'function') { + const peak = state.peakOf(e.time) === true; + rec.tokens = { + [peak ? 'peak' : 'off']: { inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens }, + }; + } const previous = state.lastSample.get(sessionId); if (previous !== undefined diff --git a/src/host/holidays.js b/src/host/holidays.js new file mode 100644 index 0000000..8d8a5c6 --- /dev/null +++ b/src/host/holidays.js @@ -0,0 +1,104 @@ +// GENERATED by scripts/gen-prices.mjs — do not edit by hand. +export const PUBLIC_HOLIDAYS = { + "capturedAt": "2026-10-29T15:02:16.737Z", + "source": "https://github.com/NateScarlet/holiday-cn", + "note": "中国法定节假日(isOffDay=true 的日期)。峰谷判定中这些日期全天按空闲时段计。", + "coverage": { + "fromYear": 2025, + "toYear": 2027, + "basis": "session store (C:\\Users\\FXS\\.dsh\\sessions)", + "years": [ + 2025, + 2026, + 2027 + ] + }, + "years": { + "2025": { + "offDays": 28, + "first": "2025-01-01", + "last": "2025-10-08", + "papers": [ + "https://www.gov.cn/zhengce/zhengceku/202411/content_6986383.htm" + ] + }, + "2026": { + "offDays": 33, + "first": "2026-01-01", + "last": "2026-10-07", + "papers": [ + "https://www.gov.cn/zhengce/zhengceku/202511/content_7047091.htm" + ] + }, + "2027": { + "unpublished": true, + "offDays": 0, + "first": null, + "last": null, + "papers": [] + } + }, + "dates": { + "2025-01-01": "元旦", + "2025-01-28": "春节", + "2025-01-29": "春节", + "2025-01-30": "春节", + "2025-01-31": "春节", + "2025-02-01": "春节", + "2025-02-02": "春节", + "2025-02-03": "春节", + "2025-02-04": "春节", + "2025-04-04": "清明节", + "2025-04-05": "清明节", + "2025-04-06": "清明节", + "2025-05-01": "劳动节", + "2025-05-02": "劳动节", + "2025-05-03": "劳动节", + "2025-05-04": "劳动节", + "2025-05-05": "劳动节", + "2025-05-31": "端午节", + "2025-06-01": "端午节", + "2025-06-02": "端午节", + "2025-10-01": "国庆节、中秋节", + "2025-10-02": "国庆节、中秋节", + "2025-10-03": "国庆节、中秋节", + "2025-10-04": "国庆节、中秋节", + "2025-10-05": "国庆节、中秋节", + "2025-10-06": "国庆节、中秋节", + "2025-10-07": "国庆节、中秋节", + "2025-10-08": "国庆节、中秋节", + "2026-01-01": "元旦", + "2026-01-02": "元旦", + "2026-01-03": "元旦", + "2026-02-15": "春节", + "2026-02-16": "春节", + "2026-02-17": "春节", + "2026-02-18": "春节", + "2026-02-19": "春节", + "2026-02-20": "春节", + "2026-02-21": "春节", + "2026-02-22": "春节", + "2026-02-23": "春节", + "2026-04-04": "清明节", + "2026-04-05": "清明节", + "2026-04-06": "清明节", + "2026-05-01": "劳动节", + "2026-05-02": "劳动节", + "2026-05-03": "劳动节", + "2026-05-04": "劳动节", + "2026-05-05": "劳动节", + "2026-06-19": "端午节", + "2026-06-20": "端午节", + "2026-06-21": "端午节", + "2026-09-25": "中秋节", + "2026-09-26": "中秋节", + "2026-09-27": "中秋节", + "2026-10-01": "国庆节", + "2026-10-02": "国庆节", + "2026-10-03": "国庆节", + "2026-10-04": "国庆节", + "2026-10-05": "国庆节", + "2026-10-06": "国庆节", + "2026-10-07": "国庆节" + } +}; diff --git a/src/host/index.js b/src/host/index.js index ff12292..3c59fd8 100644 --- a/src/host/index.js +++ b/src/host/index.js @@ -1,8 +1,8 @@ /** * usage — Token usage statistics host half (entry module). * - * Wires the submodules (fold / scan / query / settings / aggregate / rpc / - * client-source) into the cordis plugin lifecycle. Strategy notes: + * Wires the submodules (fold / scan / query / settings / pricing / aggregate / + * rpc / typert) into the cordis plugin lifecycle. Strategy notes: * - DSH persists every loop model call's token usage in each session log as * an `assistant/message` (or `assistant/attempt`) settlement carrying * `usage`; this plugin folds those events with the same replacement / @@ -11,8 +11,12 @@ * - Live sessions are scanned from the in-memory store every poll tick; * persisted sessions are backfilled at startup and re-scanned incrementally * (watermark + revision per session). - * - Aggregation, cost (user-configurable price table) and model list are - * served through src/host/rpc.js. + * - The fold also splits each settlement by the price tier its own timestamp + * fell into, because DeepSeek bills peak and off-peak separately and one + * model can mix both inside a day. + * - Aggregation and the model list are served through src/host/rpc.js; prices + * come from the generated reference table (prices.js) unless the user has + * entered their own. * * The price table is the plugin's own config: the exported `Config` schema is * the official, durable form surface (`Plugins` settings tab -> profile @@ -25,65 +29,358 @@ */ import Schema from '@deepseek-ai/schemastery'; -import { DEFAULT_PRICES, DEFAULT_CURRENCY, createPriceStore, mergePrices } from './settings.js'; +import { DEFAULT_CURRENCY, configPrices, createPriceStore, currencyOf, normalizePrices } from './settings.js'; import { createState } from './state.js'; import { createUsageIndex } from './aggregate.js'; -import { scanLive, scanPersisted, runBackfill } from './scan.js'; +import { scanLive, scanPersisted, startBackfillOnDemand } from './scan.js'; import { query } from './query.js'; -import { registerRPC } from './rpc.js'; -import { getClientSource } from './client-source.js'; +import { registerRPC, logSink } from './rpc.js'; +import { USAGE_SERVICE } from './typert.js'; +import { priceRow, referenceGroups, referenceTable } from './pricing.js'; +import { isPeak } from './peak.js'; export const name = 'usage-host'; export const inject = ['timer']; -/** Durable price table + currency, materialized as the plugin's config form. */ +/** + * Durable overrides + currency + the user's confirmed model matches, + * materialized as the plugin's config form. + * + * `prices` defaults to EMPTY on purpose: every price the reference table can + * answer must come from the table (see settings.js). A row here is an override + * for an id only the user knows, and the ladder consults it first. + * + * `matchMap` is deliberately a free-form `dict(string)`: it maps a model key + * exactly as a session log recorded it (`provider/model`, including a `/` inside + * the model id) to a reference-table id. A plain dict rather than a structured + * object because the keys are user data, and a schema that rejected an + * unexpected shape would silently drop confirmed matches on save. + */ export const Config = Schema.object({ - currency: Schema.string().default(DEFAULT_CURRENCY), + // ⚠️ Every field this plugin writes back must be `.volatile()`. The official + // settings service refuses anything else: + // dsh-settings/lib/index.js `write()`: `volatileForm(schema)` is undefined + // when no field is volatile, and it throws `has no volatile fields`; + // `validatePaths` then rejects any non-volatile key in the patch. + // Without these markers `settings.update('usage', …)` threw on every write, + // and the old `.catch(() => {})` hid it — so confirmed matches, custom prices + // and the currency were lost at every restart. + currency: Schema.string().default(DEFAULT_CURRENCY).volatile().description({ + zh: '参考成本卡片与单价使用的币种(固定汇率 1 USD = 7 CNY)', + en: 'Currency for the reference-cost card and rates (fixed rate: 1 USD = 7 CNY)', + }), prices: Schema.dict(Schema.object({ inputPerM: Schema.number().default(0), outputPerM: Schema.number().default(0), cacheReadPerM: Schema.number().default(0), cacheWritePerM: Schema.number().default(0), - })).default(DEFAULT_PRICES), + })).default({}).volatile().description({ + zh: '自定义参考定价:模型 id → 每百万 token 的输入/输出/缓存读/缓存写价,单位美元(界面里按币种换算显示)', + en: 'Custom reference prices: model id → input/output/cache-read/cache-write per million tokens, in USD (the UI converts for display)', + }), + matchMap: Schema.dict(Schema.string()).default({}).volatile().description({ + zh: '已确认的模型匹配:模型 id → 参考模型 id(在「定价匹配」里点确定时写入)', + en: 'Confirmed model matches: model id → reference model id (written when you confirm in the pricing dialog)', + }), }); const LIVE_POLL_MS = 2000; const PERSISTED_POLL_MS = 30000; +/** + * Whether an instant bills at DeepSeek's peak rate. + * + * Wired into the state capsule rather than imported by fold.js so the fold stays + * a pure function of its arguments: tests pass their own predicate and never + * depend on today's calendar. Exported so a test can pin the wiring itself — + * the fold used to call `isPeak()` bare, which billed every public holiday at + * the peak rate while the price display showed it as off-peak. + * + * @param {number} atMs - epoch milliseconds. + * @returns {boolean} true inside a Beijing peak window on a non-holiday weekday. + */ +export function peakAt(atMs) { + return isPeak(atMs); +} + +/** + * Validate one `pricing` commit row. + * + * Nothing reaches the persisted config unless it passes: a bad id here becomes a + * silent zero cost later, which is the failure mode this whole rebuild exists to + * remove. + * + * @param {unknown} decision - `{ key, target }` from the dialog. + * @returns {{ ok: true, key: string, target: string } | { ok: false, key: string, why: string }} verdict. + */ +function checkDecision(decision) { + const key = decision && typeof decision.key === 'string' ? decision.key : ''; + if (key === '') return { ok: false, key, why: '缺少模型 key' }; + const target = decision.target; + if (typeof target !== 'string' || target.trim() === '') { + return { ok: false, key, why: '目标必须是一个参考模型 id' }; + } + if (referenceTable().models[target] === undefined) { + return { ok: false, key, why: '参考模型不在当前价目表中:' + target }; + } + return { ok: true, key, target }; +} + +/** + * Validate one hand-typed reference price. + * + * This is the dialog's 自定义 option: not a reference model but three rates the + * user enters, stored as a `prices` row for that model key. Values arrive in the + * DISPLAY currency the dialog printed (¥ by default), so they are converted to + * the table's USD here — the one place that knows the exchange rate. + * + * @param {unknown} entry - `{ key, input, output, cacheRead }`. + * @param {number} perUsd - display units per USD. + * @returns {{ ok: true, key: string, rate: object } | { ok: false, key: string, why: string }} verdict. + */ +function checkCustom(entry, perUsd) { + const key = entry && typeof entry.key === 'string' ? entry.key : ''; + if (key === '') return { ok: false, key, why: '缺少模型 key' }; + const rate = {}; + for (const field of ['input', 'output', 'cacheRead']) { + const v = Number(entry[field]); + if (!Number.isFinite(v) || v < 0) return { ok: false, key, why: '单价必须是非负数字:' + field }; + // Six decimals: a price per million tokens never needs more, and dividing by + // 7 otherwise stores 0.09999999999999999 where the user typed 0.7. + rate[field] = Math.round((v / (perUsd > 0 ? perUsd : 1)) * 1e6) / 1e6; + } + rate.cacheWrite = 0; + return { ok: true, key, rate }; +} + +/** + * Unwrap a cordis "volatile" config value. + * + * `Schema.prototype.volatile()` marks a field writable at runtime, and cordis + * then keeps the raw value in a wrapper (so a `!!js` expression stays unevaluated + * until someone asks). Neighbouring official code unwraps it — `dsh-settings` + * does `if (isVolatile(value)) value = value.get()` — and so must we: without + * this, `currency`/`prices`/`matchMap` arrive as wrapper objects. + */ +function plainConfigValue(value) { + if (value === null || typeof value !== 'object') return value; + // The wrapper is a plain object carrying `get` plus `Symbol(cosmokit.volatile.write)`, + // so detect it by that symbol rather than by its prototype. + const volatileOfValue = Object.getOwnPropertySymbols(value).some((symbol) => String(symbol).includes('cosmokit.volatile')); + if (volatileOfValue && typeof value.get === 'function') return value.get(); + return value; +} + +/** + * Resolved configuration: defaults applied, volatile wrappers unwrapped. + * + * ⚠️ Unwrap the INPUT too. The loader hands us the value the settings line + * stored, which for a volatile field is already the wrapper; calling `Config()` + * on it throws `ValidationError: $.currency expected string but got [object + * Object]` and the whole plugin fails to activate — no Remote face, no Fetch + * routes, every dashboard call 404/405. `dsh-settings` unwraps before validating + * for exactly this reason (`projectForm(…, plainConfig(raw) …)`). + * + * Exported because the tests must see exactly what `apply` sees. + */ +export function resolveConfig(raw) { + const source = raw && typeof raw === 'object' ? raw : {}; + // Deep-clone into mutable plain JSON: the values inside a volatile wrapper are + // frozen (`schemastery` freezes dict defaults), and re-validating a frozen + // object throws `Cannot assign to read only property …` inside the schema. + const clone = (value) => { + if (value === null || typeof value !== 'object') return value; + try { + return JSON.parse(JSON.stringify(value)); + } catch { + return value; + } + }; + const plain = {}; + for (const key of ['currency', 'prices', 'matchMap']) { + const value = plainConfigValue(source[key]); + if (value !== undefined) plain[key] = clone(value); + } + let resolved; + try { + resolved = Config(plain); + } catch { + // A hand-edited patch with a wrong type must not take the plugin down: fall + // back to the shipped defaults (the dashboard still works, the row shows 0). + resolved = Config({}); + } + return { + currency: plainConfigValue(resolved.currency), + prices: plainConfigValue(resolved.prices), + matchMap: plainConfigValue(resolved.matchMap), + }; +} + export function apply(ctx, config) { - const resolved = config && typeof config === 'object' ? config : {}; + const resolved = resolveConfig(config); const priceStore = createPriceStore( - mergePrices(resolved.prices), + resolved.prices, resolved.currency || DEFAULT_CURRENCY, + // A getter, not the map: a commit replaces `state.matchMap`, and a store + // closed over the old object would keep pricing from the pre-commit map. + { matches: () => state.matchMap }, ); const state = createState(priceStore); state.index = createUsageIndex(state); + state.peakOf = peakAt; + state.matchMap = resolved.matchMap && typeof resolved.matchMap === 'object' ? { ...resolved.matchMap } : {}; + + /** + * Write the durable half of the pricing config. + * + * Failures are LOGGED, not swallowed: a silent `.catch(() => {})` here hid a + * real defect for weeks — the settings service refused every patch (no field + * was volatile), so confirmed matches and custom prices vanished on restart + * with nothing in any log to say why. + */ + const persist = (patch) => { + // `logSink` returns a **function** `(message, level?)`, not a logger object. + // Calling `.warn` on it threw `TypeError: … warn is not a function`, which is + // how a "settings service unavailable" branch turned into a crashed host. + const log = logSink(ctx); + let settings; + try { + settings = typeof ctx.get === 'function' ? ctx.get('settings') : undefined; + } catch { + settings = undefined; + } + if (!settings || typeof settings.update !== 'function') { + log('[usage] settings service unavailable: this session keeps pricing in memory only'); + return patch; + } + Promise.resolve() + .then(() => settings.update('usage', patch)) + .catch((error) => { + log('[usage] could not persist pricing config: ' + (error && error.message ? error.message : String(error))); + }); + return patch; + }; const handlers = new Map(); - handlers.set('query', (args) => query(state, args || {})); + handlers.set('query', (args) => { + // 「缓存加载也是加载」:全量统计由第一次查询拉起,所以面板打开的这一刻就是 + // 统计开始的那一刻(暖缓存 ~0.8 s、冷缓存 ~12 s 的骨架与进度条都看得见)。 + // 幂等:只有第一次真正启动,后续查询只是读状态。 + startBackfillOnDemand(ctx, state, { log: logSink(ctx) }); + return query(state, args || {}); + }); + /** + * The face this plugin registers on the native Remote channel. + * + * The browser half cannot enumerate a face that was registered at runtime, and + * the endpoint names must match what the host registered (a duplicated list + * drifts). So it asks for them here — over the Fetch fallback — and mounts its + * own descriptors: the gateway's client side wants a src-json result, while the + * host contribution carries a strict codec, so the two are not identical. + */ + handlers.set('contract', () => ({ + package: USAGE_SERVICE, + names: [...handlers.keys()].filter((name) => name !== 'contract'), + })); handlers.set('prices', (args) => { const store = state.prices; store.setPrices(args && args.prices); if (args && typeof args.currency === 'string') store.setCurrency(args.currency); - // Secondary durability for hosts where the client cannot reach its config - // form: write the same values through the official SettingsForms API. - // The entry id is the bundle patch row id (`usage`). - try { - const settings = typeof ctx.get === 'function' ? ctx.get('settings') : undefined; - if (settings && typeof settings.update === 'function') { - settings.update('usage', { prices: Object.assign({}, store.prices), currency: store.currency }) - .catch(() => {}); + persist({ prices: configPrices(store.prices), currency: store.currency }); + return store.snapshot(); + }); + /** + * Model-id matching: propose, then commit. + * + * Two actions on one endpoint because they are two halves of one decision: + * `propose` answers "what would each of my models match to?" and writes + * nothing; `commit` applies the rows the user confirmed. Keeping them apart is + * what makes "确定才保存" true — opening the dialog cannot change a price. + */ + handlers.set('pricing', (args) => { + const action = args && args.action === 'commit' ? 'commit' : 'propose'; + + if (action === 'commit') { + const decisions = Array.isArray(args?.decisions) ? args.decisions : []; + const customs = Array.isArray(args?.customs) ? args.customs : []; + const applied = {}; + const typed = {}; + const rejected = []; + for (const decision of decisions) { + const verdict = checkDecision(decision); + if (verdict.ok) applied[verdict.key] = verdict.target; + else rejected.push({ key: verdict.key, why: verdict.why }); } - } catch { - // settings is optional; the in-memory store still answers this session. + // 自定义:三档手填单价,写进 `prices`(用户覆盖),不写 matchMap。 + const perUsd = currencyOf(args?.currency, state.prices.currency).perUsd; + for (const entry of customs) { + const verdict = checkCustom(entry, perUsd); + if (verdict.ok) typed[verdict.key] = verdict.rate; + else rejected.push({ key: verdict.key, why: verdict.why }); + } + // Clearing is expressed by listing the key with an empty target, and an + // empty change set is a no-op rather than a wipe. + const cleared = Array.isArray(args?.cleared) ? args.cleared.filter((k) => typeof k === 'string' && k !== '') : []; + if (Object.keys(applied).length > 0 || cleared.length > 0 || Object.keys(typed).length > 0) { + const next = { ...state.matchMap }; + for (const key of cleared) delete next[key]; + Object.assign(next, applied); + state.matchMap = next; + // One key, one answer — whichever the user just gave wins: + // · a hand-typed price replaces the confirmed match (the ladder checks + // `prices` first, so leaving it would silently outrank the match); + // · a confirmed table target drops a stale hand-typed price; + // · clearing drops both. + if (Object.keys(typed).length > 0) state.prices.setPrices(typed); + for (const key of [...Object.keys(applied), ...cleared, ...Object.keys(typed)]) { + delete state.matchMap[key]; + delete state.prices.prices[key]; + } + Object.assign(state.matchMap, applied); + if (Object.keys(typed).length > 0) Object.assign(state.prices.prices, typed); + persist({ matchMap: { ...state.matchMap }, prices: configPrices(state.prices.prices) }); + } + return { + ok: true, + applied: Object.keys(applied).length, + custom: Object.keys(typed).length, + cleared: cleared.length, + rejected, + matchMap: { ...state.matchMap }, + prices: configPrices(state.prices.prices), + }; } - return store.snapshot(); + + const models = Array.isArray(args?.models) ? args.models : []; + const atMs = Date.now(); + const rows = models.map((entry) => { + const model = typeof entry === 'string' ? entry : String(entry?.model ?? ''); + const provider = typeof entry === 'string' ? '' : String(entry?.provider ?? ''); + const key = typeof entry?.key === 'string' ? entry.key : (provider === '' ? model : provider + '/' + model); + // `priceRow` owns the wire shape for both this endpoint and `query`, so the + // dialog can never classify a model differently from the bill it shows. + return { key, provider, model, ...priceRow(priceStore.lookup({ model, provider }), atMs) }; + }); + return { + table: { + source: 'opencode Zen + DeepSeek', + capturedAt: referenceTable().capturedAt, + unit: referenceTable().unit, + // Three groups, not one flat list: the reference ids come from DeepSeek, + // from Zen, or from the user's own price rows, and the dialog shows them + // apart. `custom` used to be unreachable from the picker entirely. + groups: referenceGroups(), + }, + rows, + matchMap: { ...state.matchMap }, + }; }); - handlers.set('client-source', () => getClientSource(ctx)); - registerRPC(ctx, handlers); + // The chosen client→host channel travels with every dashboard response. + state.channel = registerRPC(ctx, handlers); - // Full history scan once at startup. - runBackfill(ctx, state); + // 全量回填**不在激活时跑**:它按需触发(见 `startBackfillOnDemand`),由第一次 + // 查询拉起。缓存加载(暖 0.8 s / 冷 12 s)因此发生在用户打开面板的那一刻, + // 而不是进程启动的头一秒 —— 否则加载态永远看不见。 // Live sessions every tick; persisted sessions on a slow cadence to keep // per-session log reads cheap (unchanged revisions are skipped). ctx.interval(() => { diff --git a/src/host/peak.js b/src/host/peak.js new file mode 100644 index 0000000..e1eb4ad --- /dev/null +++ b/src/host/peak.js @@ -0,0 +1,113 @@ +/** + * Peak / off-peak classification for DeepSeek's two-tier list price. + * + * The rule is DeepSeek's own, restated in the base time zone so the + * holiday table (which is published per Chinese calendar day) and the + * weekday test agree on what "a day" means: + * + * 北京时间周一至周五(不含中国法定节假日)9:00-12:00、14:00-18:00 为高峰时段; + * 其余时段,包括周末及中国法定节假日全天均为空闲时段。 + * + * Equivalences worth knowing before touching this file: + * - `Asia/Shanghai` has been a fixed UTC+8 offset with no DST since 1991, so + * `atMs + 8h` read through `getUTC*()` *is* Beijing wall-clock time. No + * Intl/DateTimeFormat and no time-zone database are involved. + * - DeepSeek's own wording is "01:00-04:00 and 06:00-10:00 UTC, Monday through + * Friday": those UTC windows map one-to-one onto 09:00-12:00 and + * 14:00-18:00 Beijing, and neither window crosses a UTC day boundary, so + * the weekday test is identical in both frames. + * - A 调休 workday (a Saturday/Sunday declared a working day) is still a + * weekend here: the rule above lists weekdays explicitly and carves out + * only public holidays, so a make-up Saturday stays off-peak. + */ + +import { PUBLIC_HOLIDAYS } from './holidays.js'; + +/** Beijing-time hour windows that bill at the peak rate, `[start, end)`. */ +export const PEAK_WINDOWS = [ + [9, 12], + [14, 18], +]; + +/** + * Whether a Beijing date is a Chinese public holiday (all day off-peak). + * + * Lives here, next to the rule that needs it, so the peak test and the price + * display cannot disagree about what a holiday is — they did once: the fold + * called `isPeak()` without a calendar while `priceRow` used the full one, so a + * National Day call was billed at the peak rate and shown as off-peak. + * + * @param {string} date - `YYYY-MM-DD`, Beijing. + * @returns {boolean} true when the generated calendar lists that date. + */ +export function holidayOf(date) { + const dates = PUBLIC_HOLIDAYS.dates; + return typeof date === 'string' && Object.prototype.hasOwnProperty.call(dates, date); +} + +/** The calendar's coverage metadata (which years are known), for the UI note. */ +export function holidayCoverage() { + return PUBLIC_HOLIDAYS.years; +} + +/** Milliseconds in one hour. */ +const HOUR_MS = 3_600_000; + +/** Beijing is UTC+8, always. */ +const BEIJING_OFFSET_MS = 8 * HOUR_MS; + +/** + * Beijing wall-clock parts of an instant. + * + * @param {number} atMs - epoch milliseconds. + * @returns {{ year: number, month: number, day: number, weekday: number, hour: number, minute: number, date: string }} + * `weekday` is 0=Sunday..6=Saturday; `month` is 1-based; `date` is `YYYY-MM-DD`. + */ +export function beijingParts(atMs) { + const d = new Date(atMs + BEIJING_OFFSET_MS); + const year = d.getUTCFullYear(); + const month = d.getUTCMonth() + 1; + const day = d.getUTCDate(); + const pad = (n) => (n < 10 ? '0' + n : String(n)); + return { + year, + month, + day, + weekday: d.getUTCDay(), + hour: d.getUTCHours(), + minute: d.getUTCMinutes(), + date: `${year}-${pad(month)}-${pad(day)}`, + }; +} + +/** + * Whether an instant falls inside a peak window, ignoring the calendar. + * + * Exported separately so a test can compare the window arithmetic against the + * calendar rules without needing a holiday table. + * + * @param {number} atMs - epoch milliseconds. + * @returns {boolean} true inside `[start, end)` of any peak window. + */ +export function inPeakWindow(atMs) { + const { hour, minute } = beijingParts(atMs); + const t = hour + minute / 60; + return PEAK_WINDOWS.some(([start, end]) => t >= start && t < end); +} + +/** + * Whether an instant bills at DeepSeek's peak rate. + * + * @param {number} atMs - epoch milliseconds of the billed settlement. + * @param {(date: string) => boolean} [isHoliday] - holiday test; DEFAULTS to the + * generated calendar. It used to default to "no holidays known", which let a + * caller bill a public holiday at the peak rate by forgetting the argument. + * @returns {boolean} true for peak. + */ +export function isPeak(atMs, isHoliday = holidayOf) { + if (typeof atMs !== 'number' || !Number.isFinite(atMs)) return false; + const { weekday, date } = beijingParts(atMs); + if (weekday === 0 || weekday === 6) return false; + if (!inPeakWindow(atMs)) return false; + return typeof isHoliday === 'function' ? !isHoliday(date) : true; +} diff --git a/src/host/prices.js b/src/host/prices.js new file mode 100644 index 0000000..09ae75d --- /dev/null +++ b/src/host/prices.js @@ -0,0 +1,876 @@ +// GENERATED by scripts/gen-prices.mjs — do not edit by hand. +export const REFERENCE_PRICES = { + "capturedAt": "2026-10-29T15:02:16.736Z", + "unit": "USD per 1M tokens", + "sources": [ + { + "name": "opencode Zen", + "url": "https://opencode.ai/v2/docs/console/models/", + "fetchedAt": "2026-10-29T15:02:16.729Z", + "models": 88 + }, + { + "name": "DeepSeek", + "url": "https://api-docs.deepseek.com/quick_start/pricing/", + "fetchedAt": "2026-10-29T15:02:16.730Z", + "models": 2 + } + ], + "note": "Zen 每个模型单一价;DeepSeek 条目来自官网,峰谷两套价,参考成本按成交时刻判定(见 peak.js)。", + "models": { + "big-pickle": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "glm-5.3-flash-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "deepseek-v4.1-flash-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "minimax-m3.1-flash-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "beam-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "ll-alpha-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "longcat-2.5-preview-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "exo-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "mimo-v2.6-flash-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "mimo-v2.5-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "nemotron-3-ultra-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "nemotron-3.5-lightning-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "nemotron-3.5-super-vl-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + }, + "jev-1.13-free": { + "source": "zen", + "input": 0, + "output": 0, + "cacheRead": null, + "cacheWrite": null + }, + "jev-1.13": { + "source": "zen", + "input": 0.042, + "output": 0, + "cacheRead": null, + "cacheWrite": null + }, + "minimax-m3": { + "source": "zen", + "input": 0.3, + "output": 1.2, + "cacheRead": 0.06, + "cacheWrite": null + }, + "minimax-m2.7": { + "source": "zen", + "input": 0.3, + "output": 1.2, + "cacheRead": 0.06, + "cacheWrite": null + }, + "minimax-m2.5": { + "source": "zen", + "input": 0.3, + "output": 1.2, + "cacheRead": 0.06, + "cacheWrite": null + }, + "glm-5.3-flash": { + "source": "zen", + "input": 0.15, + "output": 0.5, + "cacheRead": 0.03, + "cacheWrite": null + }, + "glm-5.3": { + "source": "zen", + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": null + }, + "glm-5.2": { + "source": "zen", + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": null + }, + "glm-5.1": { + "source": "zen", + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": null + }, + "glm-5": { + "source": "zen", + "input": 1, + "output": 3.2, + "cacheRead": 0.2, + "cacheWrite": null + }, + "kimi-k2.7-code": { + "source": "zen", + "input": 0.95, + "output": 4, + "cacheRead": 0.19, + "cacheWrite": null + }, + "kimi-k3": { + "source": "zen", + "input": 3, + "output": 15, + "cacheRead": 0.3, + "cacheWrite": null + }, + "kimi-k2.6": { + "source": "zen", + "input": 0.95, + "output": 4, + "cacheRead": 0.16, + "cacheWrite": null + }, + "kimi-k2.5": { + "source": "zen", + "input": 0.6, + "output": 3, + "cacheRead": 0.1, + "cacheWrite": null + }, + "mistral-large-4": { + "source": "zen", + "input": 0.68, + "output": 2.09, + "cacheRead": 0.07, + "cacheWrite": null + }, + "qwen3.8-max": { + "source": "zen", + "input": 2, + "output": 6, + "cacheRead": 0.25, + "cacheWrite": 2.5 + }, + "qwen3.8-flash": { + "source": "zen", + "input": 0.15, + "output": 0.47, + "cacheRead": 0.016, + "cacheWrite": 0.2 + }, + "qwen3.7-max": { + "source": "zen", + "input": 2.5, + "output": 7.5, + "cacheRead": 0.5, + "cacheWrite": 3.125 + }, + "qwen3.7-plus": { + "source": "zen", + "input": 0.4, + "output": 1.6, + "cacheRead": 0.04, + "cacheWrite": 0.5 + }, + "qwen3.6-plus": { + "source": "zen", + "input": 0.5, + "output": 3, + "cacheRead": 0.05, + "cacheWrite": 0.625 + }, + "qwen3.5-plus": { + "source": "zen", + "input": 0.2, + "output": 1.2, + "cacheRead": 0.02, + "cacheWrite": 0.25 + }, + "deepseek-v4.1-flash": { + "source": "deepseek", + "peak": { + "input": 0.3, + "output": 1.2, + "cacheRead": 0.006, + "cacheWrite": null + }, + "offPeak": { + "input": 0.15, + "output": 0.6, + "cacheRead": 0.003, + "cacheWrite": null + }, + "fallback": { + "source": "zen", + "input": 0.3, + "output": 1.2, + "cacheRead": 0.006, + "cacheWrite": null + } + }, + "deepseek-v4-pro": { + "source": "deepseek", + "peak": { + "input": 1.32, + "output": 3.96, + "cacheRead": 0.044, + "cacheWrite": null + }, + "offPeak": { + "input": 0.66, + "output": 1.98, + "cacheRead": 0.022, + "cacheWrite": null + }, + "fallback": { + "source": "zen", + "input": 1.74, + "output": 3.48, + "cacheRead": 0.145, + "cacheWrite": null + } + }, + "claude-fable-5-1": { + "source": "zen", + "input": 10, + "output": 50, + "cacheRead": 0.25, + "cacheWrite": 12.5 + }, + "claude-fable-5": { + "source": "zen", + "input": 10, + "output": 50, + "cacheRead": 1, + "cacheWrite": 12.5 + }, + "claude-opus-5-5": { + "source": "zen", + "input": 4, + "output": 20, + "cacheRead": 0.2, + "cacheWrite": 5 + }, + "claude-opus-5": { + "source": "zen", + "input": 5, + "output": 25, + "cacheRead": 0.5, + "cacheWrite": 6.25 + }, + "claude-opus-4-8": { + "source": "zen", + "input": 5, + "output": 25, + "cacheRead": 0.5, + "cacheWrite": 6.25 + }, + "claude-opus-4-7": { + "source": "zen", + "input": 5, + "output": 25, + "cacheRead": 0.5, + "cacheWrite": 6.25 + }, + "claude-opus-4-6": { + "source": "zen", + "input": 5, + "output": 25, + "cacheRead": 0.5, + "cacheWrite": 6.25 + }, + "claude-opus-4-5": { + "source": "zen", + "input": 5, + "output": 25, + "cacheRead": 0.5, + "cacheWrite": 6.25 + }, + "claude-sonnet-5-5": { + "source": "zen", + "input": 2, + "output": 10, + "cacheRead": 0.2, + "cacheWrite": 2.5 + }, + "claude-sonnet-5": { + "source": "zen", + "input": 2, + "output": 10, + "cacheRead": 0.2, + "cacheWrite": 2.5 + }, + "claude-sonnet-4-6": { + "source": "zen", + "input": 3, + "output": 15, + "cacheRead": 0.3, + "cacheWrite": 3.75 + }, + "claude-sonnet-4-5": { + "source": "zen", + "input": 3, + "output": 15, + "cacheRead": 0.3, + "cacheWrite": 3.75, + "contextTier": "≤ 200K tokens" + }, + "claude-haiku-5-5": { + "source": "zen", + "input": 0.1, + "output": 0.5, + "cacheRead": 0.01, + "cacheWrite": 0.125, + "contextTier": "≤ 100K tokens" + }, + "claude-haiku-4-5": { + "source": "zen", + "input": 1, + "output": 5, + "cacheRead": 0.1, + "cacheWrite": 1.25 + }, + "gemini-4-argon": { + "source": "zen", + "input": 2, + "output": 10, + "cacheRead": 0.1, + "cacheWrite": null + }, + "gemini-3.8-flash": { + "source": "zen", + "input": 1.5, + "output": 7.5, + "cacheRead": 0.15, + "cacheWrite": null + }, + "gemini-3.7-flash": { + "source": "zen", + "input": 1.5, + "output": 7.5, + "cacheRead": 0.15, + "cacheWrite": null + }, + "gemini-3.6-flash": { + "source": "zen", + "input": 1.5, + "output": 7.5, + "cacheRead": 0.15, + "cacheWrite": null + }, + "gemini-3.5-flash": { + "source": "zen", + "input": 1.5, + "output": 9, + "cacheRead": 0.15, + "cacheWrite": null + }, + "gemini-3.5-flash-lite": { + "source": "zen", + "input": 0.3, + "output": 2.5, + "cacheRead": 0.03, + "cacheWrite": null + }, + "gemini-3.1-pro": { + "source": "zen", + "input": 2, + "output": 12, + "cacheRead": 0.2, + "cacheWrite": null, + "contextTier": "≤ 200K tokens" + }, + "gemini-3-flash": { + "source": "zen", + "input": 0.5, + "output": 3, + "cacheRead": 0.05, + "cacheWrite": null + }, + "grok-4.7": { + "source": "zen", + "input": 2, + "output": 6, + "cacheRead": 0.5, + "cacheWrite": null, + "contextTier": "≤ 200K tokens" + }, + "grok-4.6": { + "source": "zen", + "input": 2, + "output": 6, + "cacheRead": 0.5, + "cacheWrite": null, + "contextTier": "≤ 200K tokens" + }, + "grok-4.5": { + "source": "zen", + "input": 2, + "output": 6, + "cacheRead": 0.3, + "cacheWrite": null, + "contextTier": "≤ 200K tokens" + }, + "grok-build-0.1": { + "source": "zen", + "input": 1, + "output": 2, + "cacheRead": 0.2, + "cacheWrite": null + }, + "muse-spark-1.3": { + "source": "zen", + "input": 1.25, + "output": 4.25, + "cacheRead": 0.15, + "cacheWrite": null + }, + "muse-spark-1.2": { + "source": "zen", + "input": 1.25, + "output": 4.25, + "cacheRead": 0.15, + "cacheWrite": null + }, + "gpt-6-astra": { + "source": "zen", + "input": 10, + "output": 50, + "cacheRead": 1, + "cacheWrite": 12.5, + "contextTier": "≤ 272K tokens" + }, + "gpt-6-sol": { + "source": "zen", + "input": 2, + "output": 10, + "cacheRead": 0.2, + "cacheWrite": 2.5, + "contextTier": "≤ 272K tokens" + }, + "gpt-6.1-sol": { + "source": "zen", + "input": 2, + "output": 10, + "cacheRead": 0.2, + "cacheWrite": 2.5, + "contextTier": "≤ 272K tokens" + }, + "gpt-6-luna": { + "source": "zen", + "input": 0.1, + "output": 0.5, + "cacheRead": 0.01, + "cacheWrite": 0.125, + "contextTier": "≤ 272K tokens" + }, + "gpt-5.6-sol": { + "source": "zen", + "input": 4, + "output": 20, + "cacheRead": 0.4, + "cacheWrite": 5, + "contextTier": "≤ 272K tokens" + }, + "gpt-5.6-terra": { + "source": "zen", + "input": 2, + "output": 12, + "cacheRead": 0.2, + "cacheWrite": 2.5, + "contextTier": "≤ 272K tokens" + }, + "gpt-5.6-luna": { + "source": "zen", + "input": 0.2, + "output": 1.2, + "cacheRead": 0.02, + "cacheWrite": 0.25, + "contextTier": "≤ 272K tokens" + }, + "gpt-5.5": { + "source": "zen", + "input": 5, + "output": 30, + "cacheRead": 0.5, + "cacheWrite": null, + "contextTier": "≤ 272K tokens" + }, + "gpt-5.5-pro": { + "source": "zen", + "input": 30, + "output": 180, + "cacheRead": 30, + "cacheWrite": null + }, + "gpt-5.4": { + "source": "zen", + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": null, + "contextTier": "≤ 272K tokens" + }, + "gpt-5.4-pro": { + "source": "zen", + "input": 30, + "output": 180, + "cacheRead": 30, + "cacheWrite": null + }, + "gpt-5.4-mini": { + "source": "zen", + "input": 0.75, + "output": 4.5, + "cacheRead": 0.075, + "cacheWrite": null + }, + "gpt-5.4-nano": { + "source": "zen", + "input": 0.2, + "output": 1.25, + "cacheRead": 0.02, + "cacheWrite": null + }, + "gpt-5.3-codex-spark": { + "source": "zen", + "input": 1.75, + "output": 14, + "cacheRead": 0.175, + "cacheWrite": null + }, + "gpt-5.3-codex": { + "source": "zen", + "input": 1.75, + "output": 14, + "cacheRead": 0.175, + "cacheWrite": null + }, + "gpt-5.2": { + "source": "zen", + "input": 1.75, + "output": 14, + "cacheRead": 0.175, + "cacheWrite": null + }, + "gpt-5.2-codex": { + "source": "zen", + "input": 1.75, + "output": 14, + "cacheRead": 0.175, + "cacheWrite": null + }, + "gpt-5.1": { + "source": "zen", + "input": 1.07, + "output": 8.5, + "cacheRead": 0.107, + "cacheWrite": null + }, + "gpt-5.1-codex": { + "source": "zen", + "input": 1.07, + "output": 8.5, + "cacheRead": 0.107, + "cacheWrite": null + }, + "gpt-5.1-codex-max": { + "source": "zen", + "input": 1.25, + "output": 10, + "cacheRead": 0.125, + "cacheWrite": null + }, + "gpt-5.1-codex-mini": { + "source": "zen", + "input": 0.25, + "output": 2, + "cacheRead": 0.025, + "cacheWrite": null + }, + "gpt-5": { + "source": "zen", + "input": 1.07, + "output": 8.5, + "cacheRead": 0.107, + "cacheWrite": null + }, + "gpt-5-codex": { + "source": "zen", + "input": 1.07, + "output": 8.5, + "cacheRead": 0.107, + "cacheWrite": null + }, + "gpt-5-nano": { + "source": "zen", + "input": 0.05, + "output": 0.4, + "cacheRead": 0.005, + "cacheWrite": null + }, + "deepseek-flash": { + "source": "deepseek", + "peak": { + "input": 0.3, + "output": 1.2, + "cacheRead": 0.006, + "cacheWrite": null + }, + "offPeak": { + "input": 0.15, + "output": 0.6, + "cacheRead": 0.003, + "cacheWrite": null + } + } + }, + "surcharges": { + "claude-sonnet-4-5": { + "input": 6, + "output": 22.5, + "cacheRead": 0.6, + "tier": "> 200K tokens" + }, + "claude-haiku-5-5": { + "input": 0.5, + "output": 2.5, + "cacheRead": 0.05, + "tier": "> 100K tokens" + }, + "gemini-3.1-pro": { + "input": 4, + "output": 18, + "cacheRead": 0.4, + "tier": "> 200K tokens" + }, + "grok-4.7": { + "input": 4, + "output": 12, + "cacheRead": 1, + "tier": "> 200K tokens" + }, + "grok-4.6": { + "input": 4, + "output": 12, + "cacheRead": 1, + "tier": "> 200K tokens" + }, + "grok-4.5": { + "input": 4, + "output": 12, + "cacheRead": 0.6, + "tier": "> 200K tokens" + }, + "gpt-6-astra": { + "input": 20, + "output": 75, + "cacheRead": 2, + "tier": "> 272K tokens" + }, + "gpt-6-sol": { + "input": 4, + "output": 15, + "cacheRead": 0.4, + "tier": "> 272K tokens" + }, + "gpt-6.1-sol": { + "input": 4, + "output": 15, + "cacheRead": 0.4, + "tier": "> 272K tokens" + }, + "gpt-6-luna": { + "input": 0.2, + "output": 0.75, + "cacheRead": 0.02, + "tier": "> 272K tokens" + }, + "gpt-5.6-sol": { + "input": 8, + "output": 30, + "cacheRead": 0.8, + "tier": "> 272K tokens" + }, + "gpt-5.6-terra": { + "input": 4, + "output": 18, + "cacheRead": 0.4, + "tier": "> 272K tokens" + }, + "gpt-5.6-luna": { + "input": 0.4, + "output": 1.8, + "cacheRead": 0.04, + "tier": "> 272K tokens" + }, + "gpt-5.5": { + "input": 10, + "output": 45, + "cacheRead": 1, + "tier": "> 272K tokens" + }, + "gpt-5.4": { + "input": 5, + "output": 22.5, + "cacheRead": 0.5, + "tier": "> 272K tokens" + } + }, + "deprecated": [ + { + "name": "GPT 5.2 Codex", + "date": "July 23, 2026" + }, + { + "name": "GPT 5.1 Codex", + "date": "July 23, 2026" + }, + { + "name": "GPT 5.1 Codex Max", + "date": "July 23, 2026" + }, + { + "name": "GPT 5.1 Codex Mini", + "date": "July 23, 2026" + }, + { + "name": "GPT 5 Codex", + "date": "July 23, 2026" + }, + { + "name": "Claude Opus 4.1", + "date": "August 5, 2026" + }, + { + "name": "Claude Sonnet 4", + "date": "June 15, 2026" + }, + { + "name": "Claude Haiku 3.5", + "date": "February 16, 2026" + }, + { + "name": "Gemini 3 Pro", + "date": "March 9, 2026" + }, + { + "name": "MiniMax M2.5", + "date": "August 5, 2026" + }, + { + "name": "MiniMax M2.1", + "date": "March 15, 2026" + }, + { + "name": "GLM 5", + "date": "May 14, 2026" + }, + { + "name": "GLM 4.7", + "date": "March 15, 2026" + }, + { + "name": "GLM 4.6", + "date": "March 15, 2026" + }, + { + "name": "Kimi K2.5", + "date": "August 5, 2026" + }, + { + "name": "Kimi K2 Thinking", + "date": "March 6, 2026" + }, + { + "name": "Kimi K2", + "date": "March 6, 2026" + }, + { + "name": "Qwen3 Coder 480B", + "date": "February 6, 2026" + } + ], + "notes": [ + { + "id": "mistral-large-4", + "kind": "promo", + "text": "促销价生效(原价 1.36 → 0.68)" + }, + { + "id": "gemini-4-argon", + "kind": "promo", + "text": "促销价生效(原价 4 → 2)" + } + ] +}; diff --git a/src/host/pricing.js b/src/host/pricing.js new file mode 100644 index 0000000..d014d41 --- /dev/null +++ b/src/host/pricing.js @@ -0,0 +1,364 @@ +/** + * The reference price table and the published peak rule, as one lookup with a + * visible resolution ladder. + * + * The problem this file exists for: a model id stored in a session log is not + * the key of any price table. The same model arrives as `deepseek-flash`, + * `deepseek-v4.1-flash`, `deepseek/deepseek-v4.1-flash`, + * `group/auto-deepseek-v4-1-flash`, or under a retired alias; the table is keyed + * by whatever the vendor — or opencode Zen — called it on the day the row was + * written. Guessing that mapping with string similarity silently prices a model + * at someone else's rate (a 0.62 similarity threshold once billed + * `deepseek-v4-flash` at 0.14/0.28 instead of 0.30/1.20), so every level below + * is deterministic and every outcome is reported. + * + * Resolution order (first hit wins), in ONE function: + * 1. the user's explicit `prices` entry how: 'custom' + * 2. a match the user confirmed in the dialog how: 'confirmed' + * 3. a normalized literal match on the table how: 'normalized' + * 4. the alias table how: 'alias' + * 5. a variant suffix on a published model how: 'variant' + * anything else how: 'unmatched' + * + * Literal beats everything inferred, which is what makes `-free` behave: an id + * the table really publishes (`glm-5.3-flash-free`) is an EXACT match and keeps + * its own published price (0 while the promotion runs); only a `-free` variant + * the table does not carry falls through to the variant rung, and that one is + * reported as fuzzy. The old order put the twin first, so every `-free` id — + * including the ones the table publishes — read as 模糊 and was billed at its + * paid sibling, i.e. the promo's real price of 0 was replaced by a guess. + * + * The variant rung is a closed list of rename suffixes (`-free`, `-exp`, + * `-fast`, `-latest`, a four-digit date), each resolved against a literal table + * row — never a similarity score. That is how `deepseek-v4.1-flash-fast` and + * `deepseek-v4.1-flash-1017` land on `deepseek-v4.1-flash` as 模糊 instead of + * 未匹配, while `deepseek-v4-flash-0731` (no such base row) stays unmatched. + * + * Every hit also carries `source`: where the answered price came from + * ('deepseek', 'zen' or 'custom'), so the UI can say which of the three kinds of + * reference id a row matched. + * + * Two vocabularies, and only these two, leave this file: + * - `how` — which rung of the ladder answered (5 values, for the tooltip); + * - `state` — what the user sees (4 values: exact / fuzzy / none / custom). + * `state` is derived HERE so no caller re-derives it: a client that mapped + * `how` itself once shipped a `'literal'` branch the ladder never emits, and + * every exact hit read as 未匹配 while the dashboard billed it. + * + * One rate shape, too. Whatever a row carries — a flat reference row, a DeepSeek + * row with `peak`/`offPeak`, or a hand-entered `inputPerM` row — `ratesOf` + * flattens it to `{ input, output, cacheRead, cacheWrite }` per tier. Nothing + * else in the codebase reads a price field. + */ +import { REFERENCE_PRICES } from './prices.js'; +import { holidayCoverage, holidayOf as holidayOfDefault, isPeak } from './peak.js'; + +/** Re-exported so callers keep one import site for "the calendar". */ +export { holidayCoverage, holidayOfDefault }; + +/** + * Aliases the table cannot derive on its own, each with the reason it exists. + * + * Only add an entry here when the mapping is a fact about the vendor's naming, + * not when two ids merely look alike: everything else is handled by the + * normalized match below. + */ +export const ALIASES = { + // Legacy names the vendor retired but that still appear in older session logs. + 'deepseek-chat': { to: 'deepseek-v4.1-flash', why: '官方 2026-07-24 停用;历史会话按现役 Flash 价估算' }, + 'deepseek-reasoner': { to: 'deepseek-v4.1-flash', why: '官方 2026-07-24 停用;历史会话按现役 Flash 价估算' }, + 'deepseek-v4-flash': { to: 'deepseek-v4.1-flash', why: '官方已退役,请求被路由到 V4.1 Flash 并按 Flash 价计费' }, +}; + +/** + * Suffixes that mark a variant of a model the table DOES publish. + * + * The list is closed and deterministic on purpose: `-free` / `-exp` (promo and + * experimental twins), `-fast` (the speed tier several providers resell), and a + * four-digit publish date (`-1017`, Zen's dated ids). The base id has to be a + * table row, so a suffix on an unknown model still lands in 未匹配 — this is a + * rename rule, not a similarity score. Two ids that merely look alike + * (`deepseek-v4-flash-0731`) never collapse into each other unless the rules + * below say so and the base exists. + */ +const VARIANT_SUFFIX = /-(?:free|exp|fast|latest|\d{4})$/; + +/** Rate field on a price row, and the older spelling a saved config may still use. */ +const RATE_FIELDS = [ + ['input', 'inputPerM'], + ['output', 'outputPerM'], + ['cacheRead', 'cacheReadPerM'], + ['cacheWrite', 'cacheWritePerM'], +]; + +/** + * Literal normalization: case, provider prefix, separator style, router prefix. + * + * The provider prefix is everything up to the LAST '/', because an id may itself + * contain one (`deepseek/deepseek-v4.1-flash`). Version suffixes are deliberately + * NOT stripped: `gpt-5.4` and `gpt-5` are different products, and a trailing + * date (`-1017`) is part of the id Zen publishes. + * + * `.` and `-` are unified because the two tables spell one model differently + * (`deepseek-v4.1-flash` vs `deepseek-v4-1-flash`), and a leading `auto-` is + * dropped because DSH's router reports `group/auto-`. Both rules are only + * safe while no two table ids collide into one key, which `price-data.test.js` + * enforces rather than trusting. + * + * @param {string} raw - model id as stored by the harness. + * @returns {string} the comparable form, never null. + */ +export function normalizeId(raw) { + const text = typeof raw === 'string' ? raw.trim().toLowerCase() : ''; + if (text === '') return ''; + const bare = text.includes('/') ? text.slice(text.lastIndexOf('/') + 1) : text; + return bare.replace(/^auto-/, '').replace(/_/g, '-').replace(/\./g, '-'); +} + +/** Lazily built `normalizeId(table id) -> table id` index. */ +let index = null; +function tableIndex() { + if (index !== null) return index; + index = new Map(); + for (const id of Object.keys(REFERENCE_PRICES.models)) { + const key = normalizeId(id); + // First writer wins: a later duplicate would otherwise shadow the canonical + // id depending on object order. The collision itself is a test failure. + if (!index.has(key)) index.set(key, id); + } + return index; +} + +/** Which tier an instant bills at. Beijing time, weekend and holiday aware. */ +export function tierAt(atMs, holidayOf = holidayOfDefault) { + return isPeak(atMs, holidayOf) ? 'peak' : 'off'; +} + +/** + * Flatten any price row to the four rates one tier bills. + * + * This is the only place that knows a price can be shaped three ways. Callers + * ask for a tier and get numbers or null; a missing field is 0, never NaN. + * + * @param {object|null} price - a ladder hit, a hand-entered price, or null. + * @param {'peak'|'off'} [tier] - which tier of a two-tier row to read. + * @returns {{ input: number, output: number, cacheRead: number, cacheWrite: number } | null} + */ +export function ratesOf(price, tier = 'peak') { + if (!price || typeof price !== 'object') return null; + let row = price; + if (price.peak !== undefined || price.offPeak !== undefined) { + const sub = tier === 'off' ? price.offPeak : price.peak; + // A tiered row with one side missing still answers: the present tier is the + // best fact available, and rateOf(0) would invent a price nobody published. + row = sub !== undefined && sub !== null ? sub : price; + } + const out = {}; + for (const [canonical, legacy] of RATE_FIELDS) { + const v = row[canonical] !== undefined ? row[canonical] : row[legacy]; + out[canonical] = typeof v === 'number' && Number.isFinite(v) ? v : 0; + } + return out; +} + +/** + * Resolve one model id to a price. + * + * Everything that can answer "what does this id cost" lives here — including the + * user's confirmed matches — because a second function wrapping this one is how + * `how` and the price diverged once already (`propose` reported 未匹配 on models + * the query billed). + * + * @param {object} options - lookup inputs. + * @param {string} options.model - model id from a usage record. + * @param {string} [options.provider] - provider id from the same record. + * @param {Record} [options.custom] - the user's explicit price + * table, keyed by `provider/model` or by bare model id. + * @param {Record} [options.matches] - confirmed matches, same keys, + * whose value is a reference-table id. + * @returns {{ price: object|null, how: string, state: string, target: string|null, why: string }} + * `price` is the row as published (flat, or with both tiers), never a + * pre-selected tier: the tier belongs to the billing site, which is the only + * place that knows an instant. `how` is the ladder rung, `state` the + * four-value verdict the UI shows. + */ +export function resolvePrice(options) { + const model = typeof options?.model === 'string' ? options.model : ''; + const provider = typeof options?.provider === 'string' ? options.provider : ''; + const custom = options?.custom && typeof options.custom === 'object' ? options.custom : null; + const matches = options?.matches && typeof options.matches === 'object' ? options.matches : null; + const composite = provider === '' ? '' : provider + '/' + model; + + /** One table row, as published. */ + const rowOf = (id) => (Object.prototype.hasOwnProperty.call(REFERENCE_PRICES.models, id) ? REFERENCE_PRICES.models[id] : null); + + // 1. The user's own price always wins, composite key before bare id. + if (custom !== null) { + const own = (composite !== '' && custom[composite]) || custom[model]; + if (own && typeof own === 'object') { + return { price: own, how: 'custom', state: 'custom', target: null, why: '用户自定义单价', source: 'custom' }; + } + } + + // 2. A match the user confirmed. It outranks the automatic ladder — it is a + // fact the user established — but never the explicit price above. A target + // may be one of the user's own rows as well as a table row, because a + // "custom" reference is one of the three kinds of reference id. + if (matches !== null) { + const confirmed = (composite !== '' && matches[composite]) || matches[model]; + if (typeof confirmed === 'string' && confirmed !== '') { + const own = custom !== null && Object.prototype.hasOwnProperty.call(custom, confirmed) ? custom[confirmed] : null; + if (own !== null && typeof own === 'object') { + return { price: own, how: 'confirmed', state: 'custom', target: confirmed, why: '用户确认的匹配(自定义价)', source: 'custom' }; + } + const price = rowOf(confirmed); + if (price !== null) { + return { price, how: 'confirmed', state: 'custom', target: confirmed, why: '用户确认的匹配', source: price.source }; + } + // The confirmed target left the table. Say so instead of falling through + // silently: a stale confirmation is a fact the user should see, not a + // price that quietly changed. + return { price: null, how: 'unmatched', state: 'none', target: confirmed, why: '已确认的参考模型不在当前价目表中', source: null }; + } + } + + const bare = normalizeId(model); + + // 3. A normalized literal match. This runs before the two inferred rungs: an + // id the table really publishes is a fact, and an inference may not + // override it. It is also the `-free` rule — a published `-free` row is + // exact and keeps its own price (0 during a promotion); a `-free` id the + // table does not carry is what the twin rung exists for. + const direct = tableIndex().get(bare); + if (direct !== undefined) { + const row = rowOf(direct); + return { price: row, how: 'normalized', state: 'exact', target: direct, why: '与价目表 id 字面一致', source: row.source }; + } + + // 4. The alias table. + const alias = ALIASES[bare] ?? ALIASES[model]; + if (alias !== undefined) { + const price = rowOf(alias.to); + if (price !== null) { + return { price, how: 'alias', state: 'fuzzy', target: alias.to, why: alias.why, source: price.source }; + } + } + + // 5. A variant of a model the table publishes, under a name the table does not: + // `deepseek-v4.1-flash-fast`, `deepseek-v4.1-flash-1017`, or a `-free` / + // `-exp` twin. Bill it at the base row and report it as 模糊 — the id is + // inferred, not literal, so the user can still see and override it. + // + // The base must exist in the table; otherwise this rung does nothing and the + // id stays 未匹配 (no guessing). A published `-free` row never reaches here: + // the literal rung above already answered it. + const variantBase = bare.replace(VARIANT_SUFFIX, ''); + if (variantBase !== bare) { + const baseId = tableIndex().get(variantBase); + if (baseId !== undefined) { + const baseRow = rowOf(baseId); + return { + price: baseRow, + how: 'variant', + state: 'fuzzy', + target: baseId, + why: '同一模型的变体名(' + bare.slice(variantBase.length) + ' 后缀),按 ' + baseId + ' 的价估算', + source: baseRow.source, + }; + } + } + + return { price: null, how: 'unmatched', state: 'none', target: null, why: '价目表里没有可对应的模型', source: null }; +} + +/** + * Reference cost of one folded record. + * + * The record supplies either `tokens` buckets (peak / off, computed while + * folding, which is the only place an event's own timestamp is available) or a + * flat token set, in which case the record's own instant picks the tier. + * + * @param {{ inputTokens?: number, outputTokens?: number, cacheReadTokens?: number, cacheWriteTokens?: number, + * tokens?: { peak?: object, off?: object }, time?: number }} record - a usage record. + * @param {object} price - any shape `ratesOf` accepts, USD per 1M tokens. + * @returns {number} USD. + */ +export function costOf(record, price) { + if (!record || !price) return 0; + const bill = (bucket, tier) => { + const rate = ratesOf(price, tier); + if (rate === null) return 0; + return ( + ((bucket && bucket.inputTokens) || 0) * rate.input + + ((bucket && bucket.outputTokens) || 0) * rate.output + + ((bucket && bucket.cacheReadTokens) || 0) * rate.cacheRead + + ((bucket && bucket.cacheWriteTokens) || 0) * rate.cacheWrite + ) / 1e6; + }; + const buckets = record.tokens; + if (buckets && (buckets.peak || buckets.off)) return bill(buckets.peak, 'peak') + bill(buckets.off, 'off'); + return bill(record, tierAt(typeof record.time === 'number' ? record.time : Date.now())); +} + +/** The table, for the settings dialog's model picker. */ +export function referenceTable() { + return REFERENCE_PRICES; +} + +/** + * The wire shape of one priced model, shared by `query` and `propose`. + * + * Both endpoints describing the same model must describe it identically; the + * one time they did not, the dialog showed 未匹配 on rows the dashboard billed. + * `rates` carries BOTH tiers so the client never has to guess a tier itself — + * it prints `rates[tier]`, where `tier` is the host's own answer for "now". + * + * `source` names the kind of reference id that answered: 'deepseek', 'zen' or + * 'custom'. Those are the three kinds the UI groups by, so it travels with the + * row instead of being looked up again on the other side. + * + * @param {{ price: object|null, how: string, state: string, target: string|null, why: string, + * source?: string|null }} hit - ladder output. + * @param {number} [atMs] - instant whose tier the UI labels the price with. + * @param {(date: string) => boolean} [holidayOf] - holiday test, for tests. + * @returns {{ state: string, how: string, target: string|null, why: string, + * source: string|null, tier: 'peak'|'off', rates: { peak: object, offPeak: object } | null }} + */ +export function priceRow(hit, atMs = Date.now(), holidayOf = holidayOfDefault) { + return { + state: hit.state, + how: hit.how, + target: hit.target === undefined ? null : hit.target, + why: hit.why === undefined ? null : hit.why, + source: hit.source === undefined ? null : hit.source, + tier: tierAt(atMs, holidayOf), + rates: hit.price === null + ? null + : { peak: ratesOf(hit.price, 'peak'), offPeak: ratesOf(hit.price, 'off') }, + }; +} + +/** + * The two generated reference tables, grouped, with the source each id came from. + * + * 'custom' is deliberately NOT a group here: in the dialog it is a single option + * ("type your own price"), not a list of ids — a hand-entered price is three + * numbers for one model key, not a reference model anyone could point another id + * at. DeepSeek first, then Zen. + * + * @returns {{ source: string, ids: string[] }[]} two groups, each stable-sorted. + */ +export function referenceGroups() { + const groups = [ + { source: 'deepseek', ids: [] }, + { source: 'zen', ids: [] }, + ]; + const bySource = new Map(groups.map((g) => [g.source, g])); + for (const [id, entry] of Object.entries(REFERENCE_PRICES.models)) { + const group = bySource.get(entry && entry.source); + if (group !== undefined) group.ids.push(id); + } + for (const group of groups) group.ids.sort(); + return groups; +} + diff --git a/src/host/query.js b/src/host/query.js index 0128b58..448c799 100644 --- a/src/host/query.js +++ b/src/host/query.js @@ -8,6 +8,7 @@ import { dayKey, DAY_MS, bucketKeyFor, stepMs, alignFloor, stepDayKey, MAX_BUCKETS, } from './time.js'; import { currencyOf } from './settings.js'; +import { holidayCoverage, priceRow, referenceTable } from './pricing.js'; function emptyBucket(key) { return { @@ -38,6 +39,29 @@ function compositeModelKey(r) { return r.provider ? r.provider + '/' + r.model : r.model; } +/** + * Where the numbers came from, so the dashboard can say it out loud. + * + * A reference cost is an estimate against a published list, not a bill: the card + * has to name both sources and the day they were read, or a user comparing it to + * an invoice has no way to tell a wrong number from a different scope. + * + * @param {object} state - runtime state capsule. + * @returns {{ source: string, capturedAt: string|null, note: string, holidays: object }} + */ +function pricingMeta(state) { + const table = referenceTable(); + const names = Array.isArray(table.sources) ? table.sources.map((s) => s && s.name).filter(Boolean) : []; + return { + // Named from the table itself: a hard-coded string here is a second source + // of truth that keeps claiming a source the generator no longer reads. + source: names.length > 0 ? names.join(' + ') : '—', + capturedAt: typeof table.capturedAt === 'string' ? table.capturedAt : null, + note: '按 opencode Zen 和 DeepSeek 最新定价口径估算', + holidays: holidayCoverage(), + }; +} + export function query(state, args) { const from = typeof args.from === 'number' ? args.from : -Infinity; const to = typeof args.to === 'number' ? args.to : Infinity; @@ -60,6 +84,11 @@ export function query(state, args) { const total = emptyBucket('total'); const seenModels = new Map(); // composite key -> {key, provider, model} (first composite wins) let unpricedCalls = 0; + // Models that resolved to no price at all, and how the rest were priced. The + // dialog reads the first list; the card note reads the second (a reference + // price and a hand-entered one are not the same claim). + const unmatched = new Map(); // composite key -> { key, provider, model, calls, totalTokens } + const resolution = new Map(); // composite key -> priceRow() // Range-anchored day-step grid: blocks start at the range's first day. const dayAnchor = Number.isFinite(from) ? alignFloor(from, 'day') : null; const useStepGrid = granularity === 'day' && stepDays > 1 && dayAnchor !== null; @@ -72,8 +101,19 @@ export function query(state, args) { const modelKey = compositeModelKey(r); if (!seenModels.has(modelKey)) seenModels.set(modelKey, { key: modelKey, provider: r.provider, model: r.model }); if (!modelMatches(r)) continue; - const cost = state.prices.costOf(r); - if (r.totalTokens > 0 && !state.prices.hasPrice(r)) unpricedCalls += 1; + const hit = state.prices.lookup(r); + const cost = hit.price === null ? 0 : state.prices.costOf(r); + if (r.totalTokens > 0 && hit.price === null) { + unpricedCalls += 1; + const seen = unmatched.get(modelKey); + if (seen === undefined) { + unmatched.set(modelKey, { key: modelKey, provider: r.provider, model: r.model, calls: 1, totalTokens: r.totalTokens }); + } else { + seen.calls += 1; + seen.totalTokens += r.totalTokens; + } + } + if (!resolution.has(modelKey)) resolution.set(modelKey, priceRow(hit)); const dk = useStepGrid ? stepDayKey(r, dayAnchor, stepDays) : bucketKeyFor(r.time, granularity, stepDays); let db = dailyMap.get(dk); @@ -164,14 +204,31 @@ export function query(state, args) { total.cost = toDisplay(total.cost); if (heatmap !== null) for (const b of heatmap) b.cost = toDisplay(b.cost); + // Per-model verdict, straight from the ladder's own row shape (`priceRow`), so + // a model the dashboard bills and the dialog shows carry the same four-value + // `state` — the dashboard does not re-derive one from `how` any more. + for (const row of byModel) { + const known = resolution.get(row.key); + if (known !== undefined) Object.assign(row, known); + if (unmatched.has(row.key)) row.unpriced = true; + } + return { daily, byModel, total, models, unpricedCalls, + unmatched: [...unmatched.values()], + pricing: pricingMeta(state), currency: { code: money.code, symbol: money.symbol }, + // Which client→host channel this process actually opened, and why — the + // plugin logger is not always wired into the harness log, so the decision + // rides along with the data the dashboard already asks for. + channel: state.channel ?? null, ...heatmap === null ? {} : { heatmap }, backfill: { status: state.backfill.status, total: state.backfill.total, done: state.backfill.done }, + // Diagnostics for "why was the first load slow": one object per scan pass. + scan: state.lastPass || null, }; } diff --git a/src/host/rpc.js b/src/host/rpc.js index 7c95788..9983c6b 100644 --- a/src/host/rpc.js +++ b/src/host/rpc.js @@ -37,6 +37,8 @@ * i.e. the same result shape the legacy RPC channel wraps, minus its envelope. */ +import { registerTypert } from './typert.js'; + /** Absolute logical channel owned by this plugin on pre-0.2 hosts. */ export const USAGE_RPC_CHANNEL = '/usage'; @@ -56,6 +58,9 @@ export function fetchRoutePath(endpoint) { /** * Failure result in the Connection RPC result shape. * + * The message here is for the CALLER and must be safe to render: raw error text + * belongs in the host log (see `dispatch`), never on the page. + * * @param {string} message - human-readable failure. * @param {string} [code] - stable error code. * @returns {{ ok: false, error: { code: string, message: string, details: object } }} failure result. @@ -64,21 +69,60 @@ export function errorResult(message, code = 'internal') { return { ok: false, error: { code, message, details: {} } }; } +/** What the page is told when a handler throws: the detail goes to the log. */ +export const INTERNAL_MESSAGE = 'internal error'; + +/** + * Log sink for one host context. + * + * `ctx.logger` is the native channel (official plugins log through it); the + * console is only a fallback for a composition that has no logger. Wrapped + * because ctx is a strict proxy and a bare `ctx.logger` can throw. + * + * @param {any} ctx - host plugin context. + * @returns {(message: string, level?: 'warn' | 'error') => void} sink. + */ +export function logSink(ctx) { + let logger = null; + try { + logger = ctx && typeof ctx.get === 'function' ? ctx.get('logger') : null; + } catch { + logger = null; + } + if (!logger) { + try { + if (ctx && ctx.logger && typeof ctx.logger.error === 'function') logger = ctx.logger; + } catch { + logger = null; + } + } + if (logger && typeof logger.error === 'function') { + return (message, level = 'warn') => { + const fn = level === 'error' ? logger.error : (typeof logger.warn === 'function' ? logger.warn : logger.error); + fn.call(logger, message); + }; + } + return (message, level = 'warn') => (level === 'error' ? console.error(message) : console.warn(message)); +} + /** * Run one endpoint through the handler map, converting throws into results. * * @param {Map any>} handlers - endpoint handlers. * @param {string} endpoint - endpoint name. * @param {unknown} args - decoded endpoint arguments. + * @param {(message: string, level?: 'warn' | 'error') => void} [log] - host log sink for the raw error. * @returns {Promise<{ ok: true, value: any } | { ok: false, error: object }>} RPC result. */ -export async function dispatch(handlers, endpoint, args) { +export async function dispatch(handlers, endpoint, args, log) { const fn = handlers.get(endpoint); if (fn === undefined) return errorResult(`unknown endpoint: ${endpoint}`, 'bad-request'); try { return { ok: true, value: await fn(args) }; } catch (error) { - return errorResult(String((error && error.message) || error)); + const detail = String((error && error.stack) || (error && error.message) || error); + if (typeof log === 'function') log(`[usage] ${endpoint} failed: ${detail}`, 'error'); + return errorResult(INTERNAL_MESSAGE, 'internal'); } } @@ -87,9 +131,10 @@ export async function dispatch(handlers, endpoint, args) { * * @param {Map any>} handlers - endpoint handlers. * @param {string} endpoint - endpoint name. + * @param {(message: string, level?: 'warn' | 'error') => void} [log] - host log sink. * @returns {(request: Request) => Promise} route handler. */ -export function createFetchRoute(handlers, endpoint) { +export function createFetchRoute(handlers, endpoint, log) { return async function fetchRoute(request) { let args = null; const text = await request.text(); @@ -100,7 +145,7 @@ export function createFetchRoute(handlers, endpoint) { return Response.json(errorResult('request body is not JSON', 'bad-request'), { status: 400 }); } } - return Response.json(await dispatch(handlers, endpoint, args)); + return Response.json(await dispatch(handlers, endpoint, args, log)); }; } @@ -119,35 +164,21 @@ export function registerRPC(ctx, handlers) { return; } - // P0-3 official Typert gateway path. - // - // Target API: @deepseek-ai/dsh-api-gateway host service, exposed on the host - // Read the gateway only via `ctx.get('typertGateway')` — cordis ctx is a - // property). The installed v0.1.0-rc.7 `TypertGateway` interface exposes - // only invoke() (see the package's lib/types/types.d.ts); the documented - // contribution path (@Remote/@RemoteScope + TypertRemoteService or - // bindTypertRemote from @deepseek-ai/dsh-typert-protocol) needs a runtime - // dependency this plugin must not add, so we only claim endpoints through a - // registration surface that already exists on the detected object: - // `typert.register(channel, endpoints)`, a forward-compatible contribution - // hook for host compositions that expose the gateway with registration. + // Native Remote channel (see ./typert.js for the contract and its evidence). + // Registered in addition to the Fetch routes below, not instead of them: the + // browser half prefers Remote and falls back to Fetch, so both must be real. // - // Precondition for this path to activate: the resolved typert gateway is - // non-null AND `typert.register` is a function. Endpoint functions receive - // (args) and return the raw value; the gateway/connection side owns the - // RPC envelope. Otherwise we fall back silently to the connection bridge - // below. All guards are typeof-based: nothing is imported, zero deps. - // cordis ctx is a strict proxy: direct property access to an un-injected - // service throws — always use ctx.get (returns undefined when absent). - const typert = typeof ctx.get === 'function' ? ctx.get('typertGateway') : undefined; - if (typert && typeof typert.register === 'function') { - const endpoints = {}; - for (const [endpoint, fn] of handlers) { - endpoints[endpoint] = fn; - } - typert.register('usage', endpoints); - return; - } + // ⚠️ Do not probe `ctx.get('typert')` at activation time: cordis `get` returns + // only services whose providing fiber is ACTIVE (`_getImpl` checks + // `impl.fiber.state === 2`), and sibling bundles in this composition can + // activate after us. A one-shot probe reports "no typert registry" on a host + // that has one. Declare the dependency instead — the same pattern used for + // `connection` below — and record the decision when it lands. + const log = logSink(ctx); + const channel = { ok: false, transport: 'fetch', reason: 'typert not active yet (waiting for the dependency)' }; + ctx.inject(['typert'], (typertCtx) => { + Object.assign(channel, registerTypert(typertCtx, handlers, log)); + }); // Static (bundle) installs: the `connection` service is provided // asynchronously by the client-connection plugin, so wait for it before @@ -169,11 +200,11 @@ export function registerRPC(ctx, handlers) { path, methods: ['POST'], requestBody: 'buffered', - fetch: createFetchRoute(handlers, endpoint), + fetch: createFetchRoute(handlers, endpoint, log), }); mountedFetchRoutes += 1; } catch (error) { - console.warn(`[usage] failed to mount shared Fetch route ${path}: ${String((error && error.message) || error)}`); + log(`[usage] failed to mount shared Fetch route ${path}: ${String((error && error.message) || error)}`); } } } @@ -185,12 +216,13 @@ export function registerRPC(ctx, handlers) { const rpcRegistry = connection.rpc; if (rpcRegistry !== undefined && typeof rpcRegistry.handle === 'function') { try { - rpcRegistry.handle(USAGE_RPC_CHANNEL, async (endpoint, args) => dispatch(handlers, endpoint, args), { authority: 'loopback' }); + rpcRegistry.handle(USAGE_RPC_CHANNEL, async (endpoint, args) => dispatch(handlers, endpoint, args, log), { authority: 'loopback' }); } catch (error) { if (mountedFetchRoutes === 0) { - console.warn(`[usage] failed to mount ${USAGE_RPC_CHANNEL} RPC channel: ${String((error && error.message) || error)}`); + log(`[usage] failed to mount ${USAGE_RPC_CHANNEL} RPC channel: ${String((error && error.message) || error)}`); } } } }); + return channel; } diff --git a/src/host/scan.js b/src/host/scan.js index b219206..02790c8 100644 --- a/src/host/scan.js +++ b/src/host/scan.js @@ -15,10 +15,14 @@ * cut, so folding starts there and the parent is never billed twice. * * Optimization lives here: bounded-concurrency backfill, per-session failure - * backoff, revision-based skip (unchanged logs are not re-read), progress - * callbacks, and watermark repair when a log shrank. + * backoff, revision-based skip (unchanged logs are not re-read), the on-disk fold + * cache (unchanged logs are not even opened after a restart), progress callbacks, + * and watermark repair when a log shrank. */ import { foldNew } from './fold.js'; +import { cacheDir, readEntry, writeEntry } from './fold-cache.js'; +import { writeFileSync } from 'node:fs'; +import { dirname, join } from 'node:path'; /** How many persisted headers are read concurrently per batch. */ const BATCH_SIZE = 8; @@ -107,6 +111,115 @@ export async function readSessionEvents(persistence, id, fromSeq) { return { events: [], inherited: 0 }; } +/* -------------------------------------------------------------------------- * + * Fold cache plumbing + * -------------------------------------------------------------------------- */ + +/** + * Open one scan pass. + * + * The cache is optional and never required: a pass without it behaves exactly as + * before, which is what a failing cache degrades to. + * + * @param {{ cache?: boolean, cacheDir?: string }} [options] + * @returns {{ dir: string | null, scanned: Set, hydrated: number }} + */ +function beginPass(options) { + const enabled = !(options && options.cache === false); + return { + dir: enabled ? (options && options.cacheDir) || cacheDir() : null, + scanned: new Set(), + hydrated: 0, + startedAt: Date.now(), + listMs: 0, + }; +} + +/** + * One line per pass, so a slow start explains itself instead of being guessed at. + * + * The line goes to the logger AND into `state.lastPass`, which the dashboard + * response carries: on this host the plugin logger does not reliably reach the + * desktop log file, and a probe nobody can read is not a probe. + */ +function reportPass(pass, counts, log) { + const ms = Date.now() - pass.startedAt; + const summary = { + at: pass.startedAt, + sessions: counts.total, + hydrated: counts.hydrated, + folded: counts.folded, + listMs: pass.listMs, + totalMs: ms, + }; + return summary; +} + +/** Records grouped by owning session, in one pass over the record array. */ +function groupRecordsBySession(records) { + const by = new Map(); + for (const record of records) { + const id = record && record.session; + if (typeof id !== 'string') continue; + let list = by.get(id); + if (list === undefined) { + list = []; + by.set(id, list); + } + list.push(record); + } + return by; +} + +/** + * Cache one hydrated session's records and bookkeeping into the live state. + * + * Refuses an entry whose records do not belong to `id`: a mixed-up file would + * otherwise attribute one session's tokens to another. + * + * @returns {boolean} whether the entry was usable (and therefore consumed). + */ +function hydrateFromCache(state, id, entry, revision) { + for (const record of entry.records) { + if (!record || record.session !== id) return false; + } + for (const record of entry.records) { + state.records.push(record); + if (state.index) state.index.add(record); + } + state.watermarks.set(id, entry.watermark); + if (revision !== undefined) state.revisions.set(id, revision); + return true; +} + +/** + * Persist what this pass folded, then drop sessions that no longer exist. + * + * Only sessions this pass actually folded are rewritten: an untouched session's + * entry stays valid because its revision did not change. + */ +function finishPass(state, headers, pass) { + if (pass.dir === null) return; + if (pass.scanned.size > 0) { + const bySession = groupRecordsBySession(state.records); + for (const id of pass.scanned) { + writeEntry(pass.dir, id, { + revision: state.revisions.get(id), + watermark: state.watermarks.get(id) ?? -1, + records: bySession.get(id) || [], + }); + } + } + // ⚠️ Do NOT prune entries missing from this listing. `sp.list()` returns a + // PARTIAL list while the session store is still warming up after a start, and a + // prune keyed on "absent here" therefore deletes entries that are perfectly + // valid. That is not hypothetical: it wiped 257 of 258 entries on a live + // instance at 00:18 and every following start had to fold the whole history + // again — the "numbers climb for 30 s" symptom. A stale entry costs disk and + // nothing else (it is only read by id from a listing), so it is never worth + // deleting speculatively. +} + /** * Incremental scan of persisted sessions (slow cadence). Headers are read in * small concurrent batches; unchanged revisions are skipped; a failing session @@ -115,16 +228,41 @@ export async function readSessionEvents(persistence, id, fromSeq) { */ export async function scanPersisted(ctx, state, options) { const sp = ctx.get('sessionPersistence'); - if (sp === undefined || sp === null) return; - if (persistedInFlight) return; // previous pass still running: skip this tick + if (sp === undefined || sp === null) return false; + if (persistedInFlight) return false; // previous pass still running: skip this tick persistedInFlight = true; + const pass = beginPass(options); try { + const listedAt = Date.now(); const headers = await sp.list(); - if (!Array.isArray(headers)) return; + pass.listMs = Date.now() - listedAt; + if (!Array.isArray(headers)) return true; state.backfill.total = headers.length; for (let i = 0; i < headers.length; i += BATCH_SIZE) { const batch = headers.slice(i, i + BATCH_SIZE); - await Promise.all(batch.map((h) => processHeader(sp, state, h, options))); + await Promise.all(batch.map((h) => processHeader(sp, state, h, options, pass))); + } + finishPass(state, headers, pass); + // The counters must agree at the end, WHOEVER started the pass: a cadence + // pass runs while status is already 'done', and gating on status left + // `{status: done, total: 258, done: 0}` in the response — which reads as + // "nothing was scanned" while every record was in fact loaded. + state.backfill.done = headers.length; + const summary = reportPass(pass, { total: headers.length, hydrated: pass.hydrated, folded: pass.scanned.size }); + state.lastPass = summary; + // Also leave it on disk: the log line needs a logger that reaches the host + // log (this host does not always), while the file is readable without a + // browser. Best effort: a failed diagnostic must never fail the pass. + if (pass.dir !== null) { + try { + writeFileSync(join(dirname(pass.dir), 'last-pass.json'), JSON.stringify(summary, null, 2)); + } catch { + // diagnostics only + } + } + if (options && typeof options.log === 'function') { + safeLog(options.log, '[usage] scan pass: ' + summary.sessions + ' sessions, ' + summary.hydrated + + ' from cache, ' + summary.folded + ' folded, list ' + summary.listMs + 'ms, total ' + summary.totalMs + 'ms'); } } finally { persistedInFlight = false; @@ -139,7 +277,7 @@ export async function scanPersisted(ctx, state, options) { } /** Read + fold one persisted session header; bounded by the batch caller. */ -async function processHeader(sp, state, snap, options) { +async function processHeader(sp, state, snap, options, pass) { const id = snapshotId(snap); if (id === undefined) return; const backoff = backoffBySession.get(id); @@ -154,6 +292,19 @@ async function processHeader(sp, state, snap, options) { backoffBySession.delete(id); return; } + // Cache hit: same change token as the snapshot on disk, so the folded + // records are still exactly what a fresh fold would produce. This is the + // whole point of the cache — after a restart, an unchanged session costs one + // JSON read instead of a full log read + inflate + fold. + if (pass !== undefined && pass !== null && pass.dir !== null && revision !== undefined) { + const entry = readEntry(pass.dir, id); + if (entry !== null && entry.revision === revision && hydrateFromCache(state, id, entry, revision)) { + pass.hydrated += 1; + backoffBySession.delete(id); + return; + } + } + let wm = state.watermarks.get(id) ?? -1; // A crash-repaired or migrated log can shrink below our watermark; the // backend reports the current event count, so repair instead of stalling. @@ -166,6 +317,7 @@ async function processHeader(sp, state, snap, options) { const next = foldNew(state, id, events, wm); if (next > wm) state.watermarks.set(id, next); if (revision !== undefined) state.revisions.set(id, revision); + if (pass !== undefined && pass !== null) pass.scanned.add(id); backoffBySession.delete(id); // success resets the consecutive-failure chain } catch (error) { // A session may be gone or mid-rewrite: back off before trying again. @@ -188,7 +340,39 @@ async function processHeader(sp, state, snap, options) { } } -/** Full history scan, once at startup. */ +/** + * Start the full-history scan on demand, from the first query. + * + * Why not at activation: the pass is the only moment "缓存加载" is visible, and it + * takes ~0.8 s warm (12 s cold). Started from `apply` it finishes before anyone + * opens the panel, so the loading state can never be seen — the user restarted a + * dozen times and saw nothing. Started from the first query, the panel's own + * opening *is* the computation window, so the skeleton and the progress line are + * on screen for exactly as long as the work takes. + * + * Returns true when this call started it, false when it was already started. + */ +export function startBackfillOnDemand(ctx, state, options) { + if (state.backfill.started === true) return false; + // Flip the visible state first: the caller renders the response for this very + // request, and it must already say "running" or the client shows the empty + // dashboard for one frame. `runBackfill` flips `started` synchronously. + state.backfill.status = 'running'; + state.backfill.done = 0; + const log = options && typeof options.log === 'function' ? options.log : undefined; + // Fire-and-forget **with** a catch. An unhandled rejection here is fatal on this + // host, and `runBackfill`'s own try only begins after its `ctx.get(...)` probe, + // so a throwing context access would otherwise crash the process from a plain + // read request. Same failure class as the `logSink(...).warn` crash: background + // work must never be able to take the host down. + void runBackfill(ctx, state, options).catch((error) => { + state.backfill.status = 'done'; + if (log !== undefined) safeLog(log, '[usage] backfill rejected: ' + (error && error.message ? error.message : String(error))); + }); + return true; +} + +/** Full history scan, once per process (lazily, from `startBackfillOnDemand`). */ export async function runBackfill(ctx, state, options) { const sp = ctx.get('sessionPersistence'); if (sp === undefined || sp === null) { @@ -196,23 +380,54 @@ export async function runBackfill(ctx, state, options) { fireBackfillDone(options, state); return; } + // "只跑一次"由 `started` 记,不由 `status` 记:按需启动时调用方会先把 status + // 置成 running(好让发起查询的那一帧就带上加载态),用 status 当守卫会把真正 + // 要干的活挡在门外。 + if (state.backfill.started === true) return; + state.backfill.started = true; state.backfill.status = 'running'; state.backfill.done = 0; // Delegate progress while the pass runs; onDone is fired right here exactly // once so the pass callback does not double-report backfill completion. - const scanOptions = options && typeof options.onProgress === 'function' - ? { onProgress: options.onProgress } - : undefined; + const log = options && typeof options.log === 'function' ? options.log : undefined; + // Forward every scan option (cache / cacheDir included) instead of rebuilding + // the object: rebuilding dropped `cache: false` and quietly used the real cache + // directory in tests. `onDone` stays here — runBackfill fires it exactly once. + const { onDone: ignoredOnDone, ...scanOptions } = options || {}; + if (log !== undefined) scanOptions.log = log; try { - await scanPersisted(ctx, state, scanOptions); + let ran = await scanPersisted(ctx, state, scanOptions); + // A cadence pass may already be in flight when the plugin activates. That pass + // does the work, but "done" must not be announced before anything was read — + // that is how the response ended up saying `done: 0` while every record was + // loaded. + for (let attempt = 0; ran === false && attempt < 40; attempt += 1) { + await new Promise((resolve) => setTimeout(resolve, 250)); + ran = await scanPersisted(ctx, state, scanOptions); + } state.backfill.status = 'done'; fireBackfillDone(options, state); } catch (error) { + // A failed pass must not wedge the plugin in `running` — but it must not + // vanish either: "the dashboard never filled in" is unanswerable if the + // reason was swallowed here. + // Logging is best-effort: a broken sink must cost one line, never the host. + // (This catch used to re-throw through a bad logger and took dsh down.) state.backfill.status = 'done'; + if (log !== undefined) safeLog(log, '[usage] backfill failed: ' + (error && error.message ? error.message : String(error))); fireBackfillDone(options, state); } } +/** Call a diagnostic sink without ever letting it throw into the work. */ +function safeLog(sink, message) { + try { + sink(message); + } catch { + // A logger that throws is a logging problem, not a scanning problem. + } +} + function fireBackfillDone(options, state) { if (options && typeof options.onDone === 'function') { options.onDone({ diff --git a/src/host/settings.js b/src/host/settings.js index 968f584..04f9983 100644 --- a/src/host/settings.js +++ b/src/host/settings.js @@ -1,26 +1,39 @@ /** - * Price table + cost computation. + * Currency + the user's own price table + the in-memory price store. * - * Persistence is the official plugin-config path: `index.js` exports a - * schemastery `Config`, so DSH materializes a form under the plugin entry's - * id (`usage`) in the Plugins settings tab and stores values in the profile - * patch. There is deliberately no private `settings.yaml` / settings-service - * registration here — DSH 0.2.x `ctx.settings` (SettingsForms) only offers - * `describe/update/replace/mutate/configure`, and hand-rolled namespaces are - * not reachable from the client config surface. + * There is exactly one pricing policy in this plugin, and it lives in + * pricing.js: the ladder. This file owns the two things around it that are not + * policy — * - * The store below stays the in-memory view the aggregation code reads. - */ -export const DEFAULT_CURRENCY = '¥'; -/** - * Currency the price table is denominated in. + * - the display currency, converted once at the query boundary; + * - the user's explicit price rows, which are an *override*, never a catalogue. * - * DEFAULT_PRICES carries DeepSeek's USD list price per 1M tokens (0.27 input / - * 1.10 output / 0.07 cache-read for `deepseek-chat`, which is exactly 2 / 8 / - * 0.5 CNY at the fixed 7:1). The table is never rewritten at runtime: a display - * switch converts on the way out, so a query can never pollute the next one. + * That last point is the whole reason this file lost its `DEFAULT_PRICES`: a + * hard-coded copy of a vendor price is a second source of truth that outranks + * the generated table (the ladder checks the user table first), so it silently + * wins even when it is stale. It was: one row carried a cached-input price 13.3× + * the official list, and seven of ten rows named ids the vendor had retired. A + * price the reference table can answer belongs in the generation script; a price + * only the user knows (an odd relay id) belongs here. + * + * Spelling: the config form persists `inputPerM`-style fields because that is + * what older profiles already contain, and renaming them would zero every saved + * price on the next save. `normalizePrices` / `configPrices` are the only two + * places that know this, and the store works in the canonical + * `{ input, output, cacheRead, cacheWrite }` shape that `ratesOf` reads. + * + * Persistence stays the official plugin-config path: `index.js` exports a + * schemastery `Config`, so DSH materializes a form under the plugin entry's id + * (`usage`) in the Plugins settings tab. There is deliberately no private + * `settings.yaml` / settings-service registration here — DSH 0.2.x + * `ctx.settings` (SettingsForms) only offers `describe/update/replace/mutate/ + * configure`, and hand-rolled namespaces are not reachable from the client + * config surface. */ -export const PRICE_UNIT_CURRENCY = 'USD'; +import { costOf, resolvePrice } from './pricing.js'; + +export const DEFAULT_CURRENCY = '¥'; + /** Display currencies; `perUsd` is how many units of it one USD buys. */ export const CURRENCIES = { USD: { code: 'USD', symbol: '$', perUsd: 1 }, @@ -49,86 +62,116 @@ export function currencyOf(value, fallback) { if (fb) return fb; return CURRENCIES[currencyCodeOf(DEFAULT_CURRENCY)] || CURRENCIES.CNY; } -export const DEFAULT_PRICES = { - 'deepseek-chat': { inputPerM: 0.27, outputPerM: 1.1, cacheReadPerM: 0.07, cacheWritePerM: 0.27 }, - 'deepseek-v3': { inputPerM: 0.27, outputPerM: 1.1, cacheReadPerM: 0.07, cacheWritePerM: 0.27 }, - 'deepseek-v3.1': { inputPerM: 0.27, outputPerM: 1.1, cacheReadPerM: 0.07, cacheWritePerM: 0.27 }, - 'deepseek-v4': { inputPerM: 0.27, outputPerM: 1.1, cacheReadPerM: 0.07, cacheWritePerM: 0.27 }, - 'deepseek-v4-flash': { inputPerM: 0.14, outputPerM: 0.56, cacheReadPerM: 0.04, cacheWritePerM: 0.14 }, - 'deepseek-v4.1-flash': { inputPerM: 0.14, outputPerM: 0.56, cacheReadPerM: 0.04, cacheWritePerM: 0.14 }, - 'deepseek-v4.1-flash-1017': { inputPerM: 0.14, outputPerM: 0.56, cacheReadPerM: 0.04, cacheWritePerM: 0.14 }, - // DSH's routed default model id (`magpie` provider) aliases the same route; - // without this entry every session bills as "unpriced" on a stock install. - 'group/auto-deepseek-v4-1-flash': { inputPerM: 0.14, outputPerM: 0.56, cacheReadPerM: 0.04, cacheWritePerM: 0.14 }, - 'deepseek-reasoner': { inputPerM: 0.55, outputPerM: 2.19, cacheReadPerM: 0.14, cacheWritePerM: 0.55 }, - 'deepseek-r1': { inputPerM: 0.55, outputPerM: 2.19, cacheReadPerM: 0.14, cacheWritePerM: 0.55 }, -}; + +/** Rate field on the canonical row, and the name the config form persists. */ +const RATE_FIELDS = [ + ['input', 'inputPerM'], + ['output', 'outputPerM'], + ['cacheRead', 'cacheReadPerM'], + ['cacheWrite', 'cacheWritePerM'], +]; /** - * Shallow-merge configured prices over the defaults. + * Turn configured rows into the canonical rate shape the ladder reads. + * + * Accepts both spellings, drops entries that are not objects, and coerces every + * rate to a number (a form field saved as a string must not become NaN and then + * a zero cost). Unknown keys are dropped: a typo must not become a price. * - * @param {unknown} incoming - configured per-model prices. - * @returns {Record} complete price table. + * @param {unknown} incoming - rows from the plugin config or the `prices` RPC. + * @returns {Record} */ -export function mergePrices(incoming) { - const merged = Object.assign({}, DEFAULT_PRICES); - if (incoming && typeof incoming === 'object' && !Array.isArray(incoming)) { - for (const [model, price] of Object.entries(incoming)) { - if (price && typeof price === 'object') { - merged[model] = { - inputPerM: Number(price.inputPerM) || 0, - outputPerM: Number(price.outputPerM) || 0, - cacheReadPerM: Number(price.cacheReadPerM) || 0, - cacheWritePerM: Number(price.cacheWritePerM) || 0, - }; - } +export function normalizePrices(incoming) { + const out = {}; + if (!incoming || typeof incoming !== 'object' || Array.isArray(incoming)) return out; + for (const [key, row] of Object.entries(incoming)) { + if (!row || typeof row !== 'object') continue; + const rate = {}; + for (const [canonical, legacy] of RATE_FIELDS) { + const v = row[canonical] !== undefined ? row[canonical] : row[legacy]; + rate[canonical] = Number(v) || 0; } + out[key] = rate; } - return merged; + return out; } -export function createPriceStore(defaultPrices, defaultCurrency) { - const prices = Object.assign({}, defaultPrices); +/** + * The inverse of `normalizePrices`, for the config form. + * + * Only needed because the persisted schema still spells `inputPerM`; keeping the + * mapper here means the rest of the codebase never sees that spelling. + * + * @param {Record} prices - canonical rows. + * @returns {Record} rows the Config schema accepts. + */ +export function configPrices(prices) { + const out = {}; + for (const [key, row] of Object.entries(prices || {})) { + const rate = {}; + for (const [canonical, legacy] of RATE_FIELDS) rate[legacy] = Number(row[canonical]) || 0; + out[key] = rate; + } + return out; +} + +/** + * The in-memory pricing view the aggregation code reads. + * + * It owns no policy: every answer comes from `resolvePrice` / `costOf`, so the + * dashboard, the dialog and the settings form cannot disagree about what a model + * costs. + * + * @param {unknown} defaultPrices - configured price rows (any spelling). + * @param {string} [defaultCurrency] - display currency. + * @param {{ matches?: Record|(() => Record) }} [options] + * confirmed matches, or a getter for the live map (a commit replaces the map, + * so a store closing over a snapshot would price from the pre-commit state). + */ +export function createPriceStore(defaultPrices, defaultCurrency, options = {}) { + const prices = normalizePrices(defaultPrices); let currency = defaultCurrency || DEFAULT_CURRENCY; + const matchesOf = typeof options.matches === 'function' + ? options.matches + : () => (options.matches && typeof options.matches === 'object' ? options.matches : null); + const isRecord = (r) => r !== null && typeof r === 'object'; const store = { prices, get currency() { return currency; }, - /** Merge incoming per-model prices (each field coerced to a number). */ + /** Merge incoming rows over the current ones (both normalized). */ setPrices(incoming) { - if (!incoming || typeof incoming !== 'object') return; - for (const [model, p] of Object.entries(incoming)) { - if (p && typeof p === 'object') { - prices[model] = { - inputPerM: Number(p.inputPerM) || 0, - outputPerM: Number(p.outputPerM) || 0, - cacheReadPerM: Number(p.cacheReadPerM) || 0, - cacheWritePerM: Number(p.cacheWritePerM) || 0, - }; - } - } + Object.assign(prices, normalizePrices(incoming)); }, setCurrency(v) { if (typeof v === 'string' && v.length > 0) currency = v; }, - /** Look up a price by `provider/model` composite first, then bare model. */ + /** + * Resolve one record to a price. + * + * @param {{ provider?: string, model?: string }} r - a usage record. + * @returns {{ price: object|null, how: string, state: string, target: string|null, why: string }} + */ + lookup(r) { + if (!isRecord(r)) return { price: null, how: 'unmatched', state: 'none', target: null, why: '' }; + return resolvePrice({ + model: typeof r.model === 'string' ? r.model : '', + provider: typeof r.provider === 'string' ? r.provider : '', + custom: prices, + matches: matchesOf(), + }); + }, + /** The first hit of the ladder, keeping the old `undefined when absent` contract. */ priceOf(r) { - const composite = r.provider ? r.provider + '/' + r.model : ''; - return prices[composite] || prices[r.model]; + const hit = store.lookup(r); + return hit.price === null ? undefined : hit.price; }, - /** Whether an explicit price entry exists (composite first, then bare model). */ + /** Whether the ladder found a price at all. */ hasPrice(r) { - const composite = r.provider ? r.provider + '/' + r.model : ''; - return composite in prices || r.model in prices; + return store.lookup(r).price !== null; }, costOf(r) { - const p = store.priceOf(r); - if (!p) return 0; - return ( - r.inputTokens * p.inputPerM + - r.outputTokens * p.outputPerM + - r.cacheReadTokens * (p.cacheReadPerM || 0) + - r.cacheWriteTokens * (p.cacheWritePerM || 0) - ) / 1e6; + const hit = store.lookup(r); + return hit.price === null ? 0 : costOf(r, hit.price); }, snapshot() { return { prices: Object.assign({}, prices), currency }; diff --git a/src/host/state.js b/src/host/state.js index b7f6916..7e0fb2f 100644 --- a/src/host/state.js +++ b/src/host/state.js @@ -2,7 +2,9 @@ * Mutable runtime state capsule for the usage host half. * * - records: folded usage records, one per billed assistant settlement - * (`assistant/message` or `assistant/attempt`) that reported usage. + * (`assistant/message` or `assistant/attempt`) that reported usage. A record + * may also carry `tokens: { peak?, off? }` — the same usage split by the price + * tier its own timestamp fell into (see fold.js). * - watermarks: sessionId -> last folded event seq. * - revisions: sessionId -> last persisted revision folded (opaque equality * token from `sessionPersistence.list()`); lets the slow scan skip sessions @@ -17,16 +19,30 @@ * (`assistant/attempt` never does). * - index: incremental aggregation index (aggregate.js), kept in sync by * fold.js and consumed by query.js. + * - peakOf: `(atMs) => boolean` price-tier test, injected by apply(). Absent + * means "record flat token fields only", which is what the tests rely on. + * - matchMap: model key -> reference model id, the user's confirmed matches. + * A key that is present overrides the automatic ladder in pricing.js. */ export function createState(priceStore) { return { records: [], watermarks: new Map(), revisions: new Map(), - backfill: { status: 'idle', total: 0, done: 0 }, + // 启动回填是**按需**触发的:`idle` 一直保持到第一次查询(面板真正要被看)。 + // 这样"缓存加载"这件事发生在用户眼前,而不是在进程启动的头一秒里悄悄做完。 + // `started` 与 `status` 分开:调用方会先把 status 置 running 好让这一帧就带上 + // 加载态,所以不能用 status 当"只跑一次"的守卫。 + backfill: { status: 'idle', total: 0, done: 0, started: false }, + // Last scan pass summary: how long listing took, how much came from the fold + // cache, how long the whole pass took. Surfaced in the dashboard response — + // the plugin logger does not reliably reach the host log file on this host. + lastPass: null, prices: priceStore, lastSample: new Map(), route: new Map(), index: null, // wired by apply() after createUsageIndex(state) + peakOf: null, // wired by apply() once the holiday calendar is known + matchMap: {}, }; } diff --git a/src/host/typert.js b/src/host/typert.js new file mode 100644 index 0000000..39b79cf --- /dev/null +++ b/src/host/typert.js @@ -0,0 +1,219 @@ +/** + * The native client→host channel: a typert Remote contribution. + * + * Why this file exists (xshared-lib experience ⓪, "原生优先"): the plugin used to + * invent its own envelope on top of `connection.fetch`. That registry is native, + * but the typed Remote channel is the one the rest of the harness speaks, and a + * third party can join it without compiling anything — `ctx.typert.register()` + * is a runtime API ("any other owner calls ctx.typert.register(contribution) + * directly", @deepseek-ai/dsh-typert-registry README). + * + * What the harness demands of a contribution (read from the shipped distribution, + * @deepseek-ai/dsh-typert-loader `validateTypertManifest` / `requireInvocation` / + * `requireStrictCodec`, and @deepseek-ai/dsh-typert-registry `register`): + * + * · `package` names the owner; the manifest must be owned by the package that + * declares it; + * · every invocation carries `id/service/namespace/method`; + * · `namespace` MUST be the package name: the client-side service key is + * `remote.` (@deepseek-ai/dsh-api-gateway client `remoteServiceKey`), + * so an endpoint name here means a service nobody can reach; + * · every parameter is `source: 'json'` or `'lookup'`, and each parameter and + * the result must be a STRICT codec (`mode: 'strict'`, non-empty + * `typeSymbol`, a `create()` factory; give `encode` on the result or the + * gateway skips its own result handling); + * · the gateway resolves `descriptor.service` on the receiver context and + * cross-checks the `typertRemote` binding, so the plugin must ALSO provide a + * service of that name whose binding says `service` (itself), `serviceKey` + * and `namespace` (both the package name). + * + * Everything here is feature-detected: a composition without `typert` (or + * without a reflect `provide`) keeps using the Fetch routes in rpc.js. A + * missing capability must never throw during activation. + */ + +/** The service key, the wire namespace and the package name — one string. */ +export const USAGE_SERVICE = 'dsh-plugin-usage'; + +/** Wire names the registry accepts for namespace/method (`validateWireName`). */ +const WIRE_NAME = /^[A-Za-z0-9_$.-]+$/; + +/** A schema projection: the gateway only calls `parse` on inputs. */ +const ANY_SCHEMA = Object.freeze({ + parse(value) { + return value; + }, +}); + +const argsCodec = (endpoint) => ({ + mode: 'strict', + typeSymbol: `${USAGE_SERVICE}/args/${endpoint}`, + create: () => ANY_SCHEMA, +}); + +const resultCodec = (endpoint) => ({ + mode: 'strict', + typeSymbol: `${USAGE_SERVICE}/result/${endpoint}`, + create: () => ANY_SCHEMA, + encode: (value) => value, +}); + +/** + * One InvocationDescriptor for an endpoint. + * + * One positional `args` field, because the gateway calls Remote methods with + * positional arguments: the client passes exactly one JSON object. + * + * @param {string} endpoint - endpoint name such as `query`. + * @returns {object} invocation descriptor. + */ +export function buildInvocation(endpoint) { + return { + id: `${USAGE_SERVICE}#${USAGE_SERVICE}/${endpoint}`, + service: USAGE_SERVICE, + namespace: USAGE_SERVICE, + method: endpoint, + invocation: { kind: 'direct' }, + parameters: [{ name: 'args', wire: 'args', source: 'json', codec: argsCodec(endpoint) }], + result: resultCodec(endpoint), + sourceLocation: { file: 'src/host/typert.js', line: 1, column: 1 }, + }; +} + +/** + * The contribution handed to `ctx.typert.register()`. + * + * @param {string[]} endpoints - endpoint names to expose. + * @returns {object} typert contribution. + */ +export function typertContribution(endpoints) { + if (!Array.isArray(endpoints) || endpoints.length === 0) { + throw new Error('typert contribution needs at least one endpoint'); + } + for (const endpoint of endpoints) { + if (typeof endpoint !== 'string' || !WIRE_NAME.test(endpoint)) { + throw new Error('endpoint name is not wire-safe: ' + String(endpoint)); + } + } + return { + package: USAGE_SERVICE, + face: 'host', + schemas: [], + model: { services: [], events: [], objects: [] }, + invocations: endpoints.map(buildInvocation), + }; +} + +/** + * The receiver service: the gateway resolves `descriptor.service` on it and + * checks the binding before calling a method. + * + * Methods are keyed by the endpoint name verbatim (hyphens are fine as keys); + * the browser half also tries the camelCase spelling, so both work. + * + * @param {Map any>} handlers - endpoint handlers. + * @returns {object} service instance with a frozen `typertRemote` binding. + */ +export function createReceiver(handlers) { + const receiver = {}; + for (const [endpoint, fn] of handlers) { + receiver[endpoint] = (args) => fn(args === undefined || args === null ? {} : args); + } + receiver.typertRemote = Object.freeze({ + service: receiver, + serviceKey: USAGE_SERVICE, + namespace: USAGE_SERVICE, + }); + return receiver; +} + +/** Read a service without tripping the strict ctx proxy. */ +function serviceOf(ctx, name) { + if (!ctx) return null; + try { + if (typeof ctx.get === 'function') { + const found = ctx.get(name); + if (found) return found; + } + } catch { + /* not injected */ + } + try { + return ctx[name] ?? null; + } catch { + return null; + } +} + +/** + * The service-providing entry point. + * + * `ctx.provide(name, value, check)` is Context's own API (cordis `Context.provide`, + * "register a service implementation owned by the current fiber", returns a + * disposer). `ctx.reflect.provide` is the same store reached through the reflect + * facade, kept as a fallback for compositions that hide the direct method. + */ +function providerOf(ctx) { + if (!ctx) return null; + try { + if (typeof ctx.provide === 'function') return (name, value) => ctx.provide(name, value); + } catch { + /* not exposed */ + } + try { + const reflect = ctx.reflect; + if (reflect && typeof reflect.provide === 'function') return (name, value) => reflect.provide(name, value); + } catch { + /* not exposed */ + } + return serviceOf(ctx, 'reflect'); +} + +/** + * Join the native Remote channel, when this composition has one. + * + * Returns a small record rather than a boolean: the plugin reports which channel + * it ended up on, and WHY when it could not take the native one. That record + * travels to the browser with the dashboard response (`channel`), because a + * plugin logger is not always wired into the harness log. + * + * @param {any} ctx - host plugin context. + * @param {Map any>} handlers - endpoint handlers. + * @param {(message: string, level?: string) => void} [log] - log sink. + * @returns {{ ok: boolean, transport: 'remote' | 'fetch', reason: string }} decision. + */ +export function registerTypert(ctx, handlers, log) { + const note = (message, level = 'warn') => { if (typeof log === 'function') log(message, level); }; + const failed = (reason) => { + note('[usage] client→host channel: Fetch (' + reason + ')'); + return { ok: false, transport: 'fetch', reason }; + }; + const typert = serviceOf(ctx, 'typert'); + if (typert === null || typeof typert.register !== 'function') { + return failed('no typert registry in this composition'); + } + + const provider = providerOf(ctx); + if (provider === null || typeof provider !== 'function') { + return failed('this ctx cannot provide a service (ctx.provide missing)'); + } + + let dispose = null; + try { + dispose = provider(USAGE_SERVICE, createReceiver(handlers)); + } catch (error) { + return failed('providing the receiver failed: ' + String((error && error.message) || error)); + } + try { + typert.register(typertContribution([...handlers.keys()])); + note('[usage] client→host channel: native typert Remote (' + handlers.size + ' endpoints)', 'info'); + return { ok: true, transport: 'remote', reason: 'registered ' + handlers.size + ' endpoints' }; + } catch (error) { + // Registration is atomic: a rejected contribution means nothing is reachable, + // so take the receiver back out and let the Fetch routes carry the plugin. + if (typeof dispose === 'function') { + try { dispose(); } catch { /* already gone */ } + } + return failed('typert rejected the contribution: ' + String((error && error.message) || error)); + } +} From 71624d32a2911ecc221440b6ff37afbabbac9fb5 Mon Sep 17 00:00:00 2001 From: xinspark <1813967922@qq.com> Date: Sat, 31 Oct 2026 02:11:23 +0800 Subject: [PATCH 2/6] test: gates for pricing, fold cache, parity, native hygiene and wiring MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 219 tests plus a 75-check build-artifact gate. Several pin the connections a refactor can quietly break, because that failure mode leaves both halves green on their own: - the model table renders the host's `unpriced` verdict instead of re-deriving it from `tokens > 0 && cost == 0` (how a model the user priced at 0 read 未定价); - the loading skeleton takes its card count from the same slot table as the dashboard (it was hard-coded to five while the row had six); - the on-demand scan stays wired to the query handler, and activation must not call runBackfill again; - the three chart hover cards share one TipRows whose cost comes from the host bucket, and only legend-backed rows carry a colour swatch. fold-parity compares our event fold against a recording of the official tokenUsage projection taken from the shipped asar. Each gate was mutation-checked: breaking the thing it guards turns it red. --- tests/client-slots.test.js | 132 +++++ tests/config.test.js | 106 +++- tests/dialog-draft.test.js | 69 +++ tests/dialog.test.cjs | 644 +++++++++++++++++++++++++ tests/fixtures/token-usage-parity.json | 174 +++++++ tests/fold-cache.test.js | 381 +++++++++++++++ tests/fold-parity.test.js | 92 ++++ tests/holiday-years.test.js | 117 +++++ tests/lazy-backfill.test.js | 131 +++++ tests/native-hygiene.test.js | 108 +++++ tests/peak.test.js | 107 ++++ tests/price-data.test.js | 201 ++++++++ tests/pricing-rpc.test.js | 322 +++++++++++++ tests/pricing.test.js | 317 ++++++++++++ tests/query.test.js | 2 +- tests/rpc.test.js | 107 +++- tests/scan.test.js | 10 +- tests/settings.test.js | 184 ++++--- tests/state.test.js | 13 +- tests/tier-billing.test.js | 162 +++++++ tests/typert.test.js | 154 ++++++ 21 files changed, 3420 insertions(+), 113 deletions(-) create mode 100644 tests/client-slots.test.js create mode 100644 tests/dialog-draft.test.js create mode 100644 tests/dialog.test.cjs create mode 100644 tests/fixtures/token-usage-parity.json create mode 100644 tests/fold-cache.test.js create mode 100644 tests/fold-parity.test.js create mode 100644 tests/holiday-years.test.js create mode 100644 tests/lazy-backfill.test.js create mode 100644 tests/native-hygiene.test.js create mode 100644 tests/peak.test.js create mode 100644 tests/price-data.test.js create mode 100644 tests/pricing-rpc.test.js create mode 100644 tests/pricing.test.js create mode 100644 tests/tier-billing.test.js create mode 100644 tests/typert.test.js diff --git a/tests/client-slots.test.js b/tests/client-slots.test.js new file mode 100644 index 0000000..3abf919 --- /dev/null +++ b/tests/client-slots.test.js @@ -0,0 +1,132 @@ +/** + * Wiring gates (source-level, not behavioural): they assert that two places stay + * connected to the same single source, because the failure mode is "both sides + * look right on their own". + * + * The summary-card slot table is the single source of "how many cards". + * + * The loading skeleton used to hard-code five placeholders while the real card + * row had six (「模型占比」 was added later), so the skeleton was one card short + * and the row re-flowed the moment data arrived. Pinning both sides to the same + * key list is what makes that impossible to repeat — and asserting it here is + * what catches an edit that only touches one side. + */ +import test from 'node:test' +import assert from 'node:assert/strict' +import { readFileSync } from 'node:fs' +import { join } from 'node:path' + +const root = new URL('..', import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1') +const src = readFileSync(join(root, 'src/client/index.js'), 'utf8').replace(/\r\n/g, '\n') + +test('the skeleton renders one placeholder per real summary card', () => { + const slots = /const SUMMARY_CARD_SLOTS = \[([^\]]+)\]/.exec(src) + assert.ok(slots, 'SUMMARY_CARD_SLOTS must exist — it is how the skeleton knows the card count') + const slotKeys = [...slots[1].matchAll(/'([a-zA-Z]+)'/g)].map((m) => m[1]) + + // The real card list: the `cards` array inside SummaryCards, one `key: 'x'` each. + const body = src.slice(src.indexOf('function SummaryCards'), src.indexOf('function SummaryCards') + 4000) + const cardsBlock = /const cards = \[([\s\S]*?)\n \]/.exec(body) + assert.ok(cardsBlock, 'SummaryCards must build its cards from a `cards` array') + const cardKeys = [...cardsBlock[1].matchAll(/key: '([a-zA-Z]+)'/g)].map((m) => m[1]) + + assert.deepEqual(slotKeys, cardKeys, + 'SUMMARY_CARD_SLOTS must list exactly the cards SummaryCards renders, in the same order'); + assert.equal(slotKeys.length, 6, 'the dashboard shows six summary cards today'); + + // And the skeleton must derive from it rather than count by hand: an index + // range like `[0, 1, 2, 3, 4]` is exactly the shape that drifted. + const from = src.indexOf('function LoadingState') + assert.ok(from >= 0, 'LoadingState must still exist') + const skeleton = src.slice(from, from + 1600) + assert.ok(/SUMMARY_CARD_SLOTS\.map/.test(skeleton), + 'the skeleton must map SUMMARY_CARD_SLOTS instead of hard-coding a count') + assert.ok(!/\[0,\s*1,\s*2,\s*3,\s*4\]\.map/.test(skeleton), + 'a hard-coded index range is the bug this gate exists for') +}); + +test('an unfinished computation is a loading state, never partial data', () => { + // The cold-start case: DSH has just booted and the host is still folding history. + // Two failures this pins down: + // - 「暂无数据」 there says "you have no usage" while the numbers are being computed; + // - rendering the partial rows says "this is your total" and then climbs — the + // "numbers creep up for 30 seconds" complaint. + // So: from boot until the host reports done, the panel is a loading state. + const dash = src.slice(src.indexOf('const busy = status ==='), src.indexOf('const busy = status ===') + 900) + assert.ok(/const computing = Boolean\(backfill && backfill\.status === 'running'\)/.test(dash), + 'the dashboard must derive `computing` from the host backfill status') + + const renderStart = src.indexOf('(!ready || computing) && !isError') + assert.ok(renderStart > 0, 'the skeleton must cover the whole computation, not just the empty case') + const render = src.slice(renderStart, renderStart + 1400) + assert.ok(/isEmpty && !computing/.test(render), + 'the empty state must not render while the computation is unfinished') + assert.ok(/!isEmpty && !computing/.test(render), + 'the data block must not render while the computation is unfinished (no climbing half-answers)') + + // A determinate bar while we know the denominator; the sweep only when we do not. + assert.ok(/data-determinate/.test(src), 'the progress bar must support a determinate mode') + assert.ok(/computeDone/.test(src) && /computeTotal/.test(src), + 'the determinate width must come from the host done/total counts') +}); + +test('every chart hover card shows the reference cost from the same row data', () => { + // Three tips exist — trend bar, trend line, yearly heatmap — and they used to + // repeat their markup three times, so a field added to one was missing from the + // others. They now share TipRows; this pins that, and pins that the cost comes + // from the row's own `cost` (host-computed, already in the display currency) + // rather than being recomputed from tokens on the client. + const rows = /function TipRows\(props\) \{([\s\S]*?)\n\}/.exec(src) + assert.ok(rows, 'TipRows must exist — it is the shared tip content') + assert.ok(/t\('cost'\)/.test(rows[1]), 'the shared tip must label the cost row') + assert.ok(/formatCost\(row\.cost \|\| 0, currency\)/.test(rows[1]), + 'the tip cost must be the host bucket cost, not a second calculation') + + // All three sites go through it. + const sites = src.match(/h\(TipRows, \{[^}]*\}\)/g) || [] + assert.equal(sites.length, 3, `expected three TipRows call sites, found ${sites.length}`) + assert.ok(!/tsd-tooltip-date[\s\S]{0,600}?formatInt\(totOf\(tip\.row\)\)/.test(src), + 'the trend tips must not keep their own inline rows') + + // The currency reaches both cards from the dashboard (one symbol for the page). + assert.ok(/h\(DailyChart, \{[^}]*currency: currencySymbol/s.test(src), + 'DailyChart must receive the display currency') + assert.ok(/h\(HeatmapCard, \{[^}]*currency: currencySymbol/s.test(src), + 'HeatmapCard must receive the display currency') + + // Screen readers get the same information: the aria label and the native title + // carry the cost too, or the card says more than the label does. + for (const key of ['barAria', 'hmTitle']) { + const zh = new RegExp(`${key}: '[^']*\{cost\}`).test(src) + const en = (src.match(new RegExp(`${key}: '[^']*\{cost\}`, 'g')) || []).length >= 2 + assert.ok(zh && en, `${key} must mention {cost} in both locales`) + } +}); + +test('only rows that correspond to a legend item carry a colour swatch', () => { + // The dot answers "which colour in the legend is this row". 输入/输出 are in the + // chart legend and 总 Token is the cell colour, so they get one; 参考成本 and + // 调用次数 have no legend entry, so they get a blank 10px spacer for alignment + // and no colour. Painting them was the bug this pins. + const rows = /function TipRows\(props\) \{([\s\S]*?)\n\}/.exec(src) + assert.ok(rows, 'TipRows must exist') + const body = rows[1] + + const costRow = /key: 'cost'([\s\S]*?)\)\),/.exec(body) + assert.ok(costRow, 'the cost row must exist') + assert.ok(!/tsd-legend-cost|background/.test(costRow[1]), + 'the cost row must not paint a swatch') + + const callsRow = /key: 'calls'([\s\S]*?)\)\,/.exec(body) + assert.ok(callsRow, 'the calls row must exist') + assert.ok(!/background/.test(callsRow[1]), 'the calls row must not paint a swatch') + + // The spacer class itself has no background: that is what keeps alignment + // without a colour, so it must stay colourless in the stylesheet. + const dotCss = /\.tsd-tooltip-dot \{([\s\S]*?)\n\}/.exec(src) + assert.ok(dotCss, '.tsd-tooltip-dot must exist') + assert.ok(!/background/.test(dotCss[1]), '.tsd-tooltip-dot must not set a background') + + // And nothing references the removed colour class any more. + assert.ok(!/tsd-legend-cost/.test(src), 'tsd-legend-cost was only used by the removed swatch') +}); diff --git a/tests/config.test.js b/tests/config.test.js index 136ad4d..1dde935 100644 --- a/tests/config.test.js +++ b/tests/config.test.js @@ -1,36 +1,106 @@ /** - * Config contract: the price table is the plugin's durable configuration. + * Config contract: overrides + currency + confirmed matches, nothing else. * * DSH 0.2.x materializes this schemastery schema as the plugin entry's form * (Plugins settings tab -> profile patch). The old hand-rolled * `settings.register('usage.prices', ...)` path does not exist in 0.2.x. + * + * The invariant this file now pins: the config's price table starts EMPTY. Every + * number the reference table can answer must come from the table, because a + * config row outranks it — the shipped defaults were a stale copy that silently + * won (one row billed cached input at 13.3× the official list). */ import { test } from 'node:test'; import assert from 'node:assert/strict'; -import { Config } from '../src/host/index.js'; -import { DEFAULT_CURRENCY, DEFAULT_PRICES, mergePrices } from '../src/host/settings.js'; +import { Config, resolveConfig } from '../src/host/index.js'; +import { resolvePrice } from '../src/host/pricing.js'; +import { DEFAULT_CURRENCY } from '../src/host/settings.js'; -test('Config resolves the default currency and price table', () => { - const resolved = Config({}); +/** + * Every field the plugin writes back must be `.volatile()`. + * + * The official settings service refuses anything else — `dsh-settings/lib/index.js` + * `write()`: `volatileForm(schema)` is `undefined` when no field is volatile and + * it throws `Plugin entry "usage" has no volatile fields`, then `validatePaths` + * rejects any non-volatile key in the patch. Without the markers every + * `settings.update('usage', …)` threw, and the swallowed rejection is exactly why + * confirmed matches and custom prices disappeared on restart. + */ +test('every field the plugin persists is volatile', () => { + const written = ['currency', 'prices', 'matchMap']; + for (const key of written) { + assert.equal(typeof Config.dict[key], 'function', `${key} must be a schema field`); + assert.equal(Config.dict[key].meta.volatile, true, `${key} must be declared .volatile()`); + } +}); + +test('resolveConfig unwraps volatile fields back to plain values', () => { + // A volatile field is a wrapper object with `get()`; the plugin must read the + // value, not the wrapper (a wrapper in `prices` would price nothing). + const resolved = resolveConfig({}); assert.equal(resolved.currency, DEFAULT_CURRENCY); - assert.deepEqual(resolved.prices['deepseek-chat'], DEFAULT_PRICES['deepseek-chat']); - assert.ok(Object.prototype.hasOwnProperty.call(resolved.prices, 'deepseek-v4.1-flash-1017')); + assert.deepEqual(resolved.prices, {}); + assert.deepEqual(resolved.matchMap, {}); }); -test('a user price entry overrides the table; apply() re-merges the defaults', () => { - const resolved = Config({ +test('resolveConfig accepts the loader shape, where volatile values arrive wrapped', () => { + // What the settings line hands the plugin is `Config(...)`'s own output — i.e. + // wrappers. Validating that a second time used to throw + // `ValidationError: $.currency expected string but got [object Object]`, which + // killed activation outright: no Remote face, no Fetch routes, every call 404. + const fromLoader = Config({ currency: '$', - prices: { - 'deepseek-v4.1-flash-1017': { inputPerM: 1, outputPerM: 2, cacheReadPerM: 3, cacheWritePerM: 4 }, - }, + prices: { m: { inputPerM: 3, outputPerM: 4, cacheReadPerM: 0, cacheWritePerM: 0 } }, + matchMap: { m: 'deepseek-flash' }, }); + const resolved = resolveConfig(fromLoader); assert.equal(resolved.currency, '$'); - assert.deepEqual(resolved.prices['deepseek-v4.1-flash-1017'], { - inputPerM: 1, outputPerM: 2, cacheReadPerM: 3, cacheWritePerM: 4, + assert.deepEqual(resolved.prices, { m: { inputPerM: 3, outputPerM: 4, cacheReadPerM: 0, cacheWritePerM: 0 } }); + assert.deepEqual(resolved.matchMap, { m: 'deepseek-flash' }); +}); + +test('every config field explains itself in both languages', () => { // The settings form renders `meta.description` through resolveText(), so a + // locale map is what an official plugin ships. Without it the form shows bare + // key names and nobody learns that `prices` is USD-denominated. + for (const key of ['currency', 'prices', 'matchMap']) { + const description = Config.dict[key].meta.description; + assert.equal(typeof description, 'object', `${key} needs a locale map`); + assert.equal(typeof description.zh, 'string', `${key} needs zh`); + assert.equal(typeof description.en, 'string', `${key} needs en`); + } +}); + +test('Config ships an empty override table, and the ladder prices the defaults', () => { + const resolved = resolveConfig({}); + assert.equal(resolved.currency, DEFAULT_CURRENCY); + assert.deepEqual(resolved.prices, {}); + assert.deepEqual(resolved.matchMap, {}); + // The ids the old table shadowed are priced by the ladder now. (`-1017` is not + // in this list: no table publishes it any more, so it is honestly unmatched — + // the old defaults were the only thing that ever claimed to know its price.) + for (const id of ['deepseek-chat', 'deepseek-v4.1-flash', 'deepseek-reasoner', 'deepseek-flash']) { + assert.notEqual(resolvePrice({ model: id }).how, 'unmatched', `${id} must stay priced without a config row`); + } + // DSH's router id resolves through normalization, so it needs no row either. + assert.equal(resolvePrice({ provider: 'magpie', model: 'group/auto-deepseek-v4-1-flash' }).how, 'normalized'); +}); + +test('a configured row is kept verbatim, in the spelling the form persists', () => { + const resolved = resolveConfig({ + currency: '$', + prices: { 'relay/odd': { inputPerM: 1, outputPerM: 2, cacheReadPerM: 3, cacheWritePerM: 4 } }, }); - // schemastery dicts replace rather than deep-merge, so apply() layers the - // configured table over DEFAULT_PRICES: untouched models keep their defaults. - const merged = mergePrices(resolved.prices); - assert.deepEqual(merged['deepseek-chat'], DEFAULT_PRICES['deepseek-chat']); + assert.equal(resolved.currency, '$'); + assert.deepEqual(resolved.prices['relay/odd'], { inputPerM: 1, outputPerM: 2, cacheReadPerM: 3, cacheWritePerM: 4 }); +}); + +test('a configured row for an id the ladder can price would shadow it', () => { + // Not a bug to fix here — it is the documented precedence — but the reason the + // shipped default table must stay empty. Pinned so the precedence cannot drift + // silently: a user row answers first, and says so. + const resolved = resolveConfig({ prices: { 'deepseek-flash': { inputPerM: 99, outputPerM: 0, cacheReadPerM: 0, cacheWritePerM: 0 } } }); + const hit = resolvePrice({ model: 'deepseek-flash', custom: resolved.prices }); + assert.equal(hit.how, 'custom'); + assert.equal(hit.state, 'custom'); }); diff --git a/tests/dialog-draft.test.js b/tests/dialog-draft.test.js new file mode 100644 index 0000000..697ff2c --- /dev/null +++ b/tests/dialog-draft.test.js @@ -0,0 +1,69 @@ +/** + * Regression guard for the dialog's draft helpers. + * + * `setDraft` used to be the pure merge helper AND, inside `PricingDialog`, the + * `useState` setter — so `setDraft((prev) => setDraft(prev, ...))` called the + * setter twice and merged `undefined` into the draft: choosing a reference + * model for an unpriced row threw `Cannot convert undefined or null to object` + * and the row never became dirty. The functional check that catches it lives + * outside this suite (it drives the real component); this one pins the merge + * contract so the helper keeps its name and its shape. + */ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; + +const SOURCE = readFileSync(new URL('../src/client/index.js', import.meta.url), 'utf8'); + +/** Extract a top-level `function name(...) { ... }` body by brace matching. */ +function extractFunction(name) { + const start = SOURCE.indexOf('function ' + name + '('); + assert.notEqual(start, -1, 'missing function ' + name); + let depth = 0; + let opened = false; + for (let i = start; i < SOURCE.length; i += 1) { + const ch = SOURCE[i]; + if (ch === '{') { depth += 1; opened = true; } + else if (ch === '}') { + depth -= 1; + if (opened && depth === 0) return SOURCE.slice(start, i + 1); + } + } + throw new Error('unterminated function ' + name); +} + +const mergeDraft = new Function(extractFunction('mergeDraft').replace('function mergeDraft(', 'return function mergeDraft('))(); + +/** Drop line/block comments, so prose about a bug is never read as the bug. */ +function stripComments(source) { + return source.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:])\/\/[^\n]*/g, '$1'); +} + +test('mergeDraft marks the row dirty and keeps the target', () => { + const next = mergeDraft({}, 'relay/b', { target: 'glm-5.3', cleared: false, key: 'relay/b' }); + assert.deepEqual(next['relay/b'], { target: 'glm-5.3', cleared: false, dirty: true, key: 'relay/b' }); +}); + +test('mergeDraft records a clear without dropping the key', () => { + const prev = { 'relay/a': { target: 'glm-5.3', cleared: false, dirty: true, key: 'relay/a' } }; + const next = mergeDraft(prev, 'relay/a', { target: null, cleared: true, key: 'relay/a' }); + assert.deepEqual(next['relay/a'], { target: null, cleared: true, dirty: true, key: 'relay/a' }); +}); + +test('mergeDraft never mutates its input', () => { + const prev = {}; + mergeDraft(prev, 'relay/b', { target: 'x', cleared: false, key: 'relay/b' }); + assert.deepEqual(prev, {}); +}); + +test('the dialog does not shadow the merge helper with a state setter', () => { + const dialog = stripComments(extractFunction('PricingDialog')); + assert.match(dialog, /const \[draft, setDraft\] = React\.useState\(\{\}\)/, 'the draft state keeps its setter name'); + assert.doesNotMatch(dialog, /setDraft\(\(prev\) => setDraft\(prev,/, 'the draft setter must not call itself'); + assert.match(dialog, /mergeDraft\(prev, key,/, 'the setter merges through the pure helper'); + // The comment stripping above is what lets this test read code only; if it + // ever stops working, the `doesNotMatch` above starts failing for the wrong + // reason (the explanatory comment quotes the broken call verbatim). + const raw = extractFunction('PricingDialog'); + assert.match(raw, /setDraft\(\(prev\) => setDraft\(prev,/, 'the comment explaining the bug is still present'); +}); diff --git a/tests/dialog.test.cjs b/tests/dialog.test.cjs new file mode 100644 index 0000000..bd1539c --- /dev/null +++ b/tests/dialog.test.cjs @@ -0,0 +1,644 @@ +/** + * The price-match dialog, driven for real. + * + * `_smoke-client.cjs` checks the pure helpers on extracted source. This file + * goes further: it loads the BUILT bundle, takes the real `PricingDialog` out + * of it, renders it with a hand-rolled React stand-in and a fake host, and + * checks the promises the dialog makes against the code that actually ships: + * + * 1. opening reads (query + propose) and never writes; + * 2. Apply with nothing touched closes without writing; + * 3. choosing a model sends exactly that row, then closes; + * 4. clearing a row sends it as `cleared`; + * 5. the four states are labelled and counted; + * 6. Escape closes, and the picker swallows the first Escape; + * 7. history starts collapsed. + * + * Runs as an ordinary `node --test` case, so `npm test` (and CI) covers the + * shipped bundle instead of only the extracted helpers. It used to live outside + * the repo, where nothing could run it. + */ +const fs = require('node:fs') +const vm = require('node:vm') +const path = require('node:path') +const test = require('node:test') +const assert = require('node:assert') + +// The BUILT bundle: `npm test` builds first (`pretest`), so this is the code that +// actually ships. Sales pitch not required — the point is that a stale build can +// no longer pass silently. +const bundlePath = path.join(__dirname, '..', 'lib', 'client', 'index.js') +if (!fs.existsSync(bundlePath)) { + throw new Error('lib/client/index.js is missing — run `npm run build` first (`npm test` does)') +} +const source = fs.readFileSync(bundlePath, 'utf8') + +let failed = 0 +const checks = [] +const ok = (name, cond, detail) => { + checks.push({ name, cond }) + if (!cond) failed += 1 + console.log((cond ? ' ok ' : ' FAIL ') + name + (cond || detail === undefined ? '' : ' [' + detail + ']')) +} + +/* ---------- load the built bundle ---------- */ + +let captured = null +const requireShim = () => require('node:module').createRequire(bundlePath)(...arguments) +requireShim.resolve = (id) => id + +// The bundle is an IIFE that registers itself on window.__ModuleLoader__. +const sandbox = { + console, + window: { __ModuleLoader__: { load(entry) { captured = entry } } }, + document: { createElement: () => ({ style: {} }), head: { appendChild() {} }, getElementById: () => null, querySelector: () => null }, + localStorage: { getItem: () => null, setItem() {} }, + React: null, +} + +/* ---------- the React stand-in ---------- */ + +const DEBUG_HOOKS = process.env.DEBUG_HOOKS === '1' + +function makeReact() { + // Hook storage is keyed by component instance, so opening a second dialog + // starts from clean state exactly as React would on a fresh mount. + const store = new Map() + let cursor = 0 + let currentKey = 'root' + let pending = false + let rerender = null + + const hooks = () => { + let slots = store.get(currentKey) + if (slots === undefined) { slots = []; store.set(currentKey, slots) } + return slots + } + + const flush = () => { + if (pending) return + pending = true + Promise.resolve().then(() => { pending = false; if (rerender) rerender() }) + } + + const React = { + Fragment: Symbol('Fragment'), + createElement: (type, props, ...children) => ({ + type, + props: props || {}, + children: children.length === 1 ? children[0] : children, + }), + createContext(defaultValue) { + const ctx = { _default: defaultValue, Provider: Symbol('Provider') } + return ctx + }, + useState(initial) { + const slots = hooks() + const i = cursor + cursor += 1 + // `initial` is only consulted on the first render of an instance: a + // remount must start blank, so re-calling it (React does not) would be + // wrong. The stored value is the state; the argument is ignored after it. + const init = initial + if (slots[i] === undefined) slots[i] = { value: typeof init === 'function' ? init() : init } + const slot = slots[i] + if (DEBUG_HOOKS) console.log('HOOK', currentKey, i, JSON.stringify(slot.value), 'init=' + JSON.stringify(init)) + return [slot.value, (next) => { + const v = typeof next === 'function' ? next(slot.value) : next + if (DEBUG_HOOKS) console.log('SET key=' + currentKey + ' slot=' + i + ' from=' + JSON.stringify(slot.value) + ' to=' + JSON.stringify(v) + ' at ' + ((new Error().stack || '').split('\n')[2] || '').trim()) + if (Object.is(v, slot.value)) return + slot.value = v + flush() + }] + }, + useRef(initial) { const slots = hooks(); const i = cursor; cursor += 1; if (slots[i] === undefined) slots[i] = { current: initial }; return slots[i] }, + useMemo(factory) { return factory() }, + useCallback(fn) { return fn }, + useEffect(fn) { + const slots = hooks() + const i = cursor + cursor += 1 + if (slots[i] === undefined) { slots[i] = true; Promise.resolve().then(fn) } + }, + } + + React.__begin = (fn, key) => { cursor = 0; currentKey = key || 'root'; return fn() } + // A draw keeps whatever key the test selected last; __begin also sets it. + React.__draw = (fn, key) => { cursor = 0; if (key) currentKey = key; if (DEBUG_HOOKS) console.log('DRAW key=' + currentKey + ' from ' + (new Error().stack || '').split('\n')[2].trim()); return fn() } + React.__keyNow = () => currentKey + React.__onRerender = (fn) => { rerender = fn } + React.__reset = (key) => { store.delete(key) } + React.__setKey = (key) => { currentKey = key } + return React +} + +const React = makeReact() +sandbox.React = React +vm.createContext(sandbox) +vm.runInContext(source, sandbox) + +ok('bundle registered itself with the module loader', captured !== null) +if (captured === null) throw new Error('the bundle did not register with __ModuleLoader__ — rebuild it (`npm run build`)') + +const mod = captured.factory((id) => { + if (id === 'react') return React + throw new Error('unexpected require: ' + id) +}) +ok('bundle exposes inject + apply', typeof mod.inject === 'object' && typeof mod.apply === 'function', + Object.keys(mod).join(',')) + +/* ---------- a fake host ---------- */ + +const propose = { + rows: [ + // The wire shape the host sends now: `state` is the verdict, `rates` both + // tiers, `tier` the one this row prints. Nothing here needs interpreting. + { key: 'relay/a', provider: 'relay', model: 'a', state: 'exact', how: 'normalized', target: 'glm-5.3', why: '与价目表 id 字面一致', source: 'zen', tier: 'peak', rates: { peak: { input: 1, output: 2, cacheRead: 0.1, cacheWrite: 0 }, offPeak: { input: 1, output: 2, cacheRead: 0.1, cacheWrite: 0 } } }, + { key: 'relay/b', provider: 'relay', model: 'b', state: 'none', how: 'unmatched', target: null, why: '价目表里没有可对应的模型', source: null, tier: 'peak', rates: null }, + { key: 'relay/c', provider: 'relay', model: 'c', state: 'fuzzy', how: 'alias', target: 'deepseek-v4.1-flash', why: '官方停用', source: 'deepseek', tier: 'peak', rates: { peak: { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }, offPeak: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 } } }, + // A row the user confirmed earlier: it is the only kind that carries a reset, + // because an auto-lit match has nothing to restore. + { key: 'relay/d', provider: 'relay', model: 'd', state: 'custom', how: 'confirmed', target: 'deepseek-v4.1-flash', why: '用户确认的匹配', source: 'deepseek', tier: 'peak', rates: { peak: { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }, offPeak: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 } } }, + ], + // Two groups of reference ids; 自定义 is an option in the picker, not a group. + table: { + groups: [ + { source: 'deepseek', ids: ['deepseek-v4.1-flash'] }, + { source: 'zen', ids: ['glm-5.3'] }, + ], + source: 'test-table', + capturedAt: '2026-10-19', + }, + matchMap: { 'relay/d': 'deepseek-v4.1-flash' }, +} +const calls = [] +const hostCall = (method, args) => { + calls.push({ method, args }) + if (method === 'usage/query') return Promise.resolve({ models: [{ key: 'relay/a' }] }) + if (method === 'usage/pricing') { + if (args.action === 'propose') return Promise.resolve(propose) + if (args.action === 'commit') return Promise.resolve({ applied: 1, cleared: 1, matchMap: {} }) + } + return Promise.reject(new Error('unexpected ' + method + ' ' + JSON.stringify(args))) +} + +// The factory gets `require` only; the rest of the module's free variables come +// from the bundle's own scope. The dialog is not exported, so we reach it the +// way the page does: render the page component and walk to the dialog. +ok('module exports nothing extra', Object.keys(mod).sort().join(',') === 'apply,inject', Object.keys(mod).join(',')) + +/* ---------- static checks: the promises are in the shipped bytes ---------- */ + +const commitSites = (source.match(/action:\s*"commit"/g) || []).length + (source.match(/action:\s*'commit'/g) || []).length +const proposeSites = (source.match(/action:\s*"propose"/g) || []).length + (source.match(/action:\s*'propose'/g) || []).length +ok('shipped bundle has exactly one commit call site', commitSites === 1, commitSites) +ok('shipped bundle has exactly one propose call site', proposeSites === 1, proposeSites) +ok('nothing writes outside the commit site', + (source.match(/usage\/pricing/g) || []).length === commitSites + proposeSites, + (source.match(/usage\/pricing/g) || []).length) +ok('Apply is disabled while saving', /disabled:\s*saving/.test(source)) +// ⑪ 原始错误不上页面: the bundle must translate the host's stable `internal` +// code instead of printing whatever text came back. The host half is tested in +// tests/rpc.test.js; this is the client end of the same contract. +ok('envelope errors go through the translating helper', (source.match(/throw rpcError\(/g) || []).length >= 2, + (source.match(/throw rpcError\(/g) || []).length) +ok('an internal failure is worded by the client, not by the host', + source.includes("code === 'internal'") && source.includes('rpcInternalError')) +// Native channel first: the bundle asks for the package-namespaced Remote +// service (src/host/typert.js registers that face) and keeps the Fetch routes +// as the fallback for compositions without typert. +ok('the bundle prefers the native Remote namespace', source.includes("'dsh-plugin-usage'") && /remote/.test(source)) +ok('a failing Remote call falls back to the Fetch route', /\.catch\(\(\) => fetchCall\(/.test(source)) +// The client mounts the face itself: a runtime-registered face is invisible to +// the remote proxy until the consumer calls $mount with matching descriptors. +// The check has to look INSIDE apply(): keeping the helper but dropping the call +// was a real regression, and "does the bundle mention $mount" missed it. +const applyAt = source.indexOf('function apply(ctx)') +const applyBody = (applyAt < 0 ? '' : source.slice(applyAt, applyAt + 800)) + // The bundle ships CRLF; `.` does not match `\r`, so normalise before stripping + // comments — otherwise a commented-out call still "matches". + .replace(/\r/g, '') + .split('\n').map((line) => line.replace(/\/\/.*$/, '')).join('\n') +ok('apply() mounts the native face on activation', /mountRemoteChannel\(ctx\)/.test(applyBody), + applyAt < 0 ? 'apply() not found' : applyBody.slice(0, 120)) +ok('the mount asks the host for its own endpoint list', source.includes('usage/contract')) +// The cost tooltip has to say which years of the holiday calendar are in hand: +// an unpublished year falls back to the weekend rule, and pretending otherwise +// hides a systematic over-estimate. +ok('the cost tooltip reports holiday coverage', source.includes('holidayNote') + && source.includes('holidayNoteUnpublished') && source.includes('unpublished')) +ok('Escape is handled', /"Escape"/.test(source) || /'Escape'/.test(source)) +ok('the picker swallows the first Escape', /pickFor !== null\)\s*\{\s*closePick\(\);\s*return/.test(source)) +ok('history starts collapsed', /historyOpen[^=]*=\s*(React\.)?useState\(!1\)|historyOpen[^=]*=\s*(React\.)?useState\(false\)/.test(source.replace(/!1/g, 'false'))) +ok('the four state labels are all shipped', ['精确', '模糊', '未匹配', '自定义'].filter((s) => source.includes(s)).length >= 0) + +/* ---------- render the page and find the dialog ---------- */ + +// The page component is not exported either, so the strongest thing we can do +// without a DOM is prove the dialog tree is reachable through apply(): apply +// registers slots. We fall back to a direct call of the extracted dialog when +// the bundle does not hand us a component (it never does). +const dialogMatch = source.indexOf('function PricingDialog') +ok('the dialog function ships in the bundle', dialogMatch !== -1) + +/* ---------- extract and drive the dialog ---------- */ + +function extractFunction(name) { + const start = source.indexOf('function ' + name + '(') + if (start === -1) throw new Error('missing ' + name) + let depth = 0 + let started = false + for (let i = start; i < source.length; i += 1) { + if (source[i] === '{') { depth += 1; started = true } + else if (source[i] === '}') { depth -= 1; if (started && depth === 0) return source.slice(start, i + 1) } + } + throw new Error('unterminated ' + name) +} + +// Object/array literal consts; stops at the matching close bracket, not at a +// semicolon (these are written without one). +function extractConst(name) { + const start = source.indexOf('const ' + name + ' =') + if (start === -1) throw new Error('missing const ' + name) + const open = source.indexOf('{', start) + if (open === -1) throw new Error('no object literal for ' + name) + let depth = 0 + for (let i = open; i < source.length; i += 1) { + if (source[i] === '{') depth += 1 + else if (source[i] === '}') { depth -= 1; if (depth === 0) return source.slice(start, i + 1) } + } + throw new Error('unterminated const ' + name) +} + +// The real zh dictionary, read from the source the bundle is built from. Only +// single-line `key: 'value',` entries matter here; the labels are all simple. +const ZH_DICT = (() => { + // Relative to this file: an absolute path passes on the author's machine and + // fails on every other one, CI included. + const src = fs.readFileSync(path.join(__dirname, '..', 'src', 'client', 'index.js'), 'utf8') + const start = src.indexOf('const ZH = {') + // `indexOf` takes a STRING, not a RegExp: passing `/\r?\n\}/` coerces it to the + // literal "/\r?\n\}/", which never matches, so the slice ran to EOF and the + // English dictionary (which comes later in the file) overwrote every Chinese + // key. Every label assertion below was then comparing English strings while + // claiming to check the Chinese ones. + const end = src.indexOf('\n}', start) + if (start === -1 || end === -1) throw new Error('could not isolate the ZH dictionary') + // The sources are CRLF, so split on \r?\n and allow a trailing \r: matching + // `...$` against a line that still ends in \r silently yields an empty map. + const body = src.slice(start, end) + const dict = {} + for (const line of body.split(/\r?\n/)) { + const m = /^ ([A-Za-z][A-Za-z0-9]*): '((?:[^'\\]|\\.)*)',?\r?$/.exec(line) + if (m) dict[m[1]] = m[2].replace(/\\'/g, "'").replace(/\\n/g, '\n') + } + return dict +})() + +// The stand-in must resolve through the real dictionary: several assertions read +// labels by asking the component for the same key, so a key-only stub would make +// every label test vacuous (and once a row's label looked up a missing key, a +// key-only stub turned the badge lookup into a silent pass). +const t = (key, vars) => { + let s = ZH_DICT[key] !== undefined ? ZH_DICT[key] : String(key) + if (vars) for (const [k, v] of Object.entries(vars)) s = s.split('{' + k + '}').join(String(v)) + return s +} + +const prelude = [ + 'const h = React.createElement', + extractConst('MATCH_STATE_LABEL'), + extractConst('CURRENCY_SYMBOLS'), + 'const ICON_PATHS = {}', + 'const SvgIcon = (p) => h("svg", { className: p && p.className, "data-icon": p && p.name })', + 'const useT = () => ' + t.toString(), + "const useOutsideClick = () => {}", + // The picker is a fixed-position popover now; positioning is the hook's job and + // irrelevant to behaviour, so stub it (null style still spreads harmlessly). + "const useFixedPanel = () => null", + 'const hostCall = HOST', + 'const formatCost = (n, symbol) => (symbol || "$") + Number(n).toFixed(2)', + 'const formatInt = (n) => String(n)', + extractFunction('shortModelName'), + extractFunction('stampText'), + // There is deliberately no matchStateOf to extract: the client renders + // `row.state`, and this harness fails if that mapping ever comes back. + extractFunction('mergeDraft'), + extractFunction('decisionOf'), + extractFunction('PricingDialog'), +].join('\n') + +let render +try { + const factory = vm.runInContext('(function(React, HOST, ZH_DICT){' + prelude + '\nreturn PricingDialog;})', sandbox) + const Dialog = factory(React, hostCall, ZH_DICT) + ok('PricingDialog is a function', typeof Dialog === 'function') + + const state = { closed: 0, applied: 0 } + const props = { + onClose: () => { state.closed += 1 }, + onApplied: () => { state.applied += 1 }, + currency: { code: 'CNY', symbol: '¥' }, + } + + render = () => React.__draw(() => Dialog(props)) + React.__onRerender(() => { render() }) + let tree = render() + ok('first render produced an overlay', tree && tree.props && String(tree.props.className).includes('tsd-price-overlay'), tree && tree.props && tree.props.className) + global.__firstTree = tree + global.__state = state + global.__render = render + global.__Dialog = Dialog +} catch (e) { + ok('dialog could be extracted and rendered', false, e.message) +} + +/* ---------- drive it ---------- */ + +const WALK_SKIP = new Set(['props.children', 'children']) +// createElement keeps kids in two places: `.children` (what we built) and +// `.props.children` (what the component passes down). Visiting both would walk +// every subtree twice, and the picker's list would be answered twice over. +// `h()` keeps children in BOTH `.children` (positional) and `.props.children` on +// some nodes and only in `.props.children` on others, and a component's rendered +// output replaces its own element entirely. Walking both would visit every node +// twice and descend into already-rendered component elements, so the walk stops at +// a component boundary: for an element it follows `.children`; for a bare object +// (a DOM node built by a component) it follows `.props.children`. +function walk(node, visit, seen) { + if (!node || typeof node !== 'object') return + const guard = seen || new Set() + if (guard.has(node)) return + guard.add(node) + if (Array.isArray(node)) { + node.forEach((x) => walk(x, visit, guard)) + return + } + if (typeof node.type === 'function') { + visit(node) + return + } + visit(node) + if (node.children !== undefined) walk(node.children, visit, guard) + else if (node.props && node.props.children !== undefined) walk(node.props.children, visit, guard) +} + +function findAll(tree, pred) { + const out = [] + walk(tree, (n) => { if (pred(n)) out.push(n) }) + return out +} + +function textOf(node) { + if (node === null || node === undefined || node === false) return '' + if (typeof node === 'string' || typeof node === 'number') return String(node) + if (Array.isArray(node)) return node.map(textOf).join('') + if (typeof node !== 'object') return '' + return textOf(node.children) + (node.props && node.props.children !== undefined ? textOf(node.props.children) : '') +} + +const tick = () => new Promise((r) => setTimeout(r, 30)) + +async function main() { + if (!render) { ok('the bundle exposes a dialog that renders', false); return } + const state = global.__state + + await tick() + const opens = calls.filter((c) => c.method === 'usage/query') + const proposes = calls.filter((c) => c.args && c.args.action === 'propose') + const commits = calls.filter((c) => c.args && c.args.action === 'commit') + ok('opening reads once (query)', opens.length === 1, opens.length) + ok('opening reads once (propose)', proposes.length === 1, proposes.length) + ok('opening writes nothing', commits.length === 0, commits.length) + ok('propose carries the seen models', proposes[0] && JSON.stringify(proposes[0].args.models) === JSON.stringify([{ key: 'relay/a' }]), + proposes[0] && JSON.stringify(proposes[0].args.models)) + + let tree = global.__render() + const badgeEls = findAll(tree, (n) => n.props && String(n.props.className || '').split(/\s+/).includes('tsd-price-badge')) + const badgeStates = badgeEls.map((n) => ({ state: n.props['data-state'], label: textOf(n.props.children) })) + ok('three candidate rows render a badge each', badgeStates.length === 3, JSON.stringify(badgeStates)) + ok('state classes are exact/fuzzy/none', badgeStates.map((b) => b.state).join(',') === 'exact,alias,none'.replace('alias', 'fuzzy') || badgeStates.map((b) => b.state).sort().join(',') === 'exact,fuzzy,none', + badgeStates.map((b) => b.state).join(',')) + + const buttons = findAll(tree, (n) => n.type === 'button') + ok('the footer has four buttons', buttons.length >= 4, buttons.length) + const applyBtn = buttons.find((b) => String(b.props.className || '').includes('tsd-btn-primary')) + ok('the Apply button is rendered', Boolean(applyBtn)) + + // Press Apply with a clean draft: must close without writing. + applyBtn.props.onClick() + await tick() + ok('Apply with nothing dirty writes nothing', calls.filter((c) => c.args && c.args.action === 'commit').length === 0) + ok('Apply with nothing dirty closes', state.closed === 1, state.closed) + ok('Apply with nothing dirty keeps counts', state.applied === 0, state.applied) + + // Re-open a fresh dialog (new mount key) to drive a dirty row. + state.closed = 0 + state.applied = 0 + calls.length = 0 + const Dialog = global.__Dialog + const freshProps = { onClose: () => { state.closed += 1 }, onApplied: () => { state.applied += 1 }, currency: { code: 'CNY', symbol: '¥' } } + const mount = (key) => { + React.__setKey(key) + React.__reset(key) + React.__onRerender(draw) + return draw() + } + // One render entry point: whatever key the test last selected, and always the + // dialog's latest props (a closure over the first mount's props would keep a + // stale onClose and silently miscount). + let currentProps = freshProps + const draw = () => React.__draw(() => Dialog(currentProps), 'b') + tree = mount('b') + await tick() + ok('reopened dialog pulled again', calls.filter((c) => c.args && c.args.action === 'propose').length === 1) + + // Pick: open the row's picker, choose a table id, then Apply. + tree = draw() + const rowB = findAll(tree, (n) => n.type === 'tr' && n.props && n.props['data-state'] === 'none' && n.props.className === 'tsd-price-row') + ok('the unmatched row is rendered', rowB.length === 1, rowB.length) + if (rowB.length !== 1) { + console.log('DIAG rows ' + findAll(tree, (n) => n.type === 'tr').map((n) => n.props.className + ':' + n.props['data-state']).join(' | ')) + } + // Rate cell: the host sends both tiers plus which one this row prints, so the + // cell must show the CURRENT tier's number (¥2.10 = 0.30 USD × 7), not the + // other one. This is the check that used to be impossible: the host collapsed + // the tier before the client saw it. + const rowC = findAll(tree, (n) => n.type === 'tr' && n.props && n.props['data-model'] === 'relay/c')[0] + ok('a fuzzy row prints its current-tier rate', Boolean(rowC) && textOf(rowC).includes('¥2.10'), rowC ? textOf(rowC) : 'missing') + ok('the rate cell carries the other tier in a tooltip', + Boolean(rowC) && findAll(rowC, (n) => n.props && typeof n.props.title === 'string' && n.props.title.includes('¥1.05')).length === 1) + + const pickButton = findAll(rowB[0], (n) => n.type === 'button')[0] + ok('the row offers a picker button', Boolean(pickButton), pickButton && textOf(pickButton.props.children)) + pickButton.props.onClick() + tree = draw() + // The picker is a floating panel anchored on the row's target cell now (it used + // to be an extra table row). What matters is that it exists and lives inside + // that cell — outside-click is a `contains` check on the anchor. + const pickerBox = findAll(tree, (n) => n.props && String(n.props.className || '') === 'tsd-price-pick-box') + ok('the picker opens as a panel', pickerBox.length === 1, pickerBox.length) + const rowFresh = findAll(tree, (n) => n.type === 'tr' && n.props && n.props['data-model'] === 'relay/b')[0] + const anchored = Boolean(rowFresh && pickerBox[0] && findAll(rowFresh, (n) => n === pickerBox[0]).length === 1) + ok('the panel is anchored on the row cell', anchored) + const options = pickerBox.length === 1 + ? findAll(pickerBox[0], (n) => n.type === 'button' && n.props && n.props.role === 'option') + : [] + // One option is the 自定义 entry (not a reference id — it opens the three-input + // editor), the rest are the two table rows. + ok('the picker offers 自定义 plus every reference id', options.length === 3, 'count=' + options.length) + const optionLabels = options.map((o) => textOf(o)) + ok('the 自定义 option comes first', optionLabels[0] === '自定义直接填每百万 Token 的单价', optionLabels[0]) + ok('the picker shows each id as its label', optionLabels.slice(1).join('|') === 'deepseek-v4.1-flash|glm-5.3', optionLabels.slice(1).join('|')) + // The two kinds of reference model are separated by group headers. + const groupHeads = findAll(pickerBox[0], (n) => n.props && String(n.props.className || '') === 'tsd-price-pick-group') + ok('the picker heads each source group', groupHeads.map((g) => textOf(g)).join('|') === 'DeepSeek|Zen', + groupHeads.map((g) => textOf(g)).join('|')) + const escapeBefore = state.closed + const dialogNode = findAll(tree, (n) => n.props && n.props.className === 'tsd-price-dialog')[0] + ok('placeholder-before-probe', true) + ok('the dialog root carries the key handler', Boolean(dialogNode && dialogNode.props.onKeyDown)) + dialogNode.props.onKeyDown({ key: 'Escape' }) + ok('Escape with the picker open only closes the picker', state.closed === escapeBefore, state.closed - escapeBefore) + // Pick by label, not by position: the groups make position meaningless. + const zenOption = options.find((o) => textOf(o) === 'glm-5.3') + ok('the Zen option is reachable by label', Boolean(zenOption)) + zenOption.props.onClick() + await tick() // let the setPickFor/setDraft updates land, as React would before our next manual render + tree = draw() + const dirtyRows = findAll(tree, (n) => n.type === 'tr' && n.props && n.props['data-dirty'] === 'true') + ok('choosing a model marks exactly one row dirty', dirtyRows.length === 1, dirtyRows.length) + ok('the chosen target is shown on the row', textOf(dirtyRows[0]).includes('glm-5.3'), textOf(dirtyRows[0])) + // The row now says which kind of reference it points at. + const srcTag = findAll(dirtyRows[0], (n) => n.props && String(n.props.className || '') === 'tsd-price-src')[0] + ok('the row labels the target source', Boolean(srcTag) && srcTag.props['data-source'] === 'zen' && textOf(srcTag) === 'Zen', + srcTag ? srcTag.props['data-source'] + '/' + textOf(srcTag) : 'missing') + ok('nothing was written by choosing', calls.filter((c) => c.args && c.args.action === 'commit').length === 0) + + const applyBtn2 = findAll(tree, (n) => n.type === 'button' && String(n.props.className || '').includes('tsd-btn-primary'))[0] + ok('the footer still offers Apply', Boolean(applyBtn2)) + applyBtn2.props.onClick() + await tick() + const commits2 = calls.filter((c) => c.args && c.args.action === 'commit') + ok('Apply writes exactly once', commits2.length === 1, commits2.length) + if (commits2.length === 1) { + ok('Apply sends only the touched row', JSON.stringify(commits2[0].args.decisions) === JSON.stringify([{ key: 'relay/b', target: 'glm-5.3' }]), + JSON.stringify(commits2[0].args.decisions)) + ok('Apply sends no clears', JSON.stringify(commits2[0].args.cleared) === '[]', JSON.stringify(commits2[0].args.cleared)) + } + ok('Apply reports applied and closes', state.applied === 1 && state.closed === 1, 'applied=' + state.applied + ' closed=' + state.closed) + + // Clear: an already-matched row can be cleared, and clear is sent as `cleared`. + state.closed = 0 + state.applied = 0 + calls.length = 0 + tree = mount('c') + await tick() + tree = draw() + const exactRow = findAll(tree, (n) => n.type === 'tr' && n.props && n.props.className === 'tsd-price-row' && n.props['data-state'] === 'exact') + ok('the matched row is rendered', exactRow.length === 1, exactRow.length) + // The dialog renders candidates FIRST and matched rows after, so the row that + // starts exact is the fixture's 'a' row, not the first one. Pressing the first + // clear button used to clear the other row and then crash on the vanished + // element; target the row by its model instead. + const matchedRow = findAll(tree, (n) => n.type === 'tr' && n.props && String(n.props['data-model'] || '') === 'relay/a')[0] + ok('the exact fixture row can be addressed', Boolean(matchedRow), matchedRow && String(matchedRow.props['data-state'])) + // Density pass rule: a reset only exists where something can be restored, so an + // auto-lit row must NOT offer it. The label resolves through ZH_DICT, so compare + // against it rather than the raw key; the reset is icon-only, hence aria-label. + const resetOf = (row) => row && findAll(row, (n) => n.type === 'button') + .find((b) => textOf(b) === ZH_DICT.pricingClear || (b.props && b.props['aria-label'] === ZH_DICT.pricingClear)) + ok('an auto-matched row offers no reset', !resetOf(matchedRow), 'found one') + // A confirmed mapping lives in the collapsed history drawer, so it is not in the + // main table until the drawer opens — that is the rule under test. + const historyRowBefore = findAll(tree, (n) => n.type === 'tr' && n.props && String(n.props['data-model'] || '') === 'relay/d') + ok('the confirmed row is hidden while the history drawer is closed', historyRowBefore.length === 0, historyRowBefore.length) + const historyToggle = findAll(tree, (n) => n.type === 'button' && String(n.props.className || '').includes('tsd-price-history-toggle'))[0] + ok('the history drawer has a toggle', Boolean(historyToggle)) + historyToggle.props.onClick() + await tick() + tree = draw() + const customRow = findAll(tree, (n) => n.type === 'tr' && n.props && String(n.props['data-model'] || '') === 'relay/d')[0] + ok('a confirmed row is rendered as custom', Boolean(customRow) && customRow.props['data-state'] === 'custom', customRow && customRow.props['data-state']) + const clearBtn = resetOf(customRow) + ok('the confirmed row offers a reset', Boolean(clearBtn), clearBtn ? ZH_DICT.pricingClear : 'not found') + clearBtn.props.onClick() + await tick() + tree = draw() + const clearedRow = findAll(tree, (n) => n.type === 'tr' && n.props && String(n.props['data-model'] || '') === 'relay/d')[0] + const clearedBadge = clearedRow ? [clearedRow] : [] + const rowsNow = findAll(tree, (n) => n.type === 'tr' && n.props && String(n.props.className || '').includes('tsd-price-row')).map((n) => n.props['data-state'] + '/' + n.props['data-dirty']) + ok('clearing turns the row into a dirty unmatched row', clearedBadge.length === 1 && clearedBadge[0].props['data-state'] === 'none' && clearedBadge[0].props['data-dirty'] === 'true', rowsNow.join(' ')) + findAll(tree, (n) => n.type === 'button' && String(n.props.className || '').includes('tsd-btn-primary'))[0].props.onClick() + await tick() + const commits3 = calls.filter((c) => c.args && c.args.action === 'commit') + ok('clearing writes exactly once', commits3.length === 1, commits3.length) + if (commits3.length === 1) { + ok('clearing sends the row in cleared, not decisions', JSON.stringify(commits3[0].args.cleared) === JSON.stringify(['relay/d']) && commits3[0].args.decisions.length === 0, + JSON.stringify(commits3[0].args)) + } + + // 自定义: one option, three hand-typed rates for this row (no reference id). + state.closed = 0 + state.applied = 0 + calls.length = 0 + tree = mount('e') + await tick() + tree = draw() + const openPicker = (key) => { + const row = findAll(tree, (n) => n.type === 'tr' && n.props && String(n.props['data-model'] || '') === key)[0] + const btn = findAll(row, (n) => n.type === 'button' && String(n.props.className || '').includes('tsd-price-target-btn'))[0] + btn.props.onClick() + tree = draw() + } + openPicker('relay/b') + const customOption = findAll(tree, (n) => n.type === 'button' && n.props && n.props.role === 'option') + .find((o) => textOf(o).startsWith('自定义')) + ok('the 自定义 option exists in the picker', Boolean(customOption)) + customOption.props.onClick() + await tick() + tree = draw() + const fields = findAll(tree, (n) => n.type === 'input' && n.props && n.props['data-field']) + ok('choosing 自定义 opens three rate inputs', fields.length === 3, 'count=' + fields.length + ' ' + fields.map((f) => f.props['data-field']).join(',')) + ok('the three inputs are input / output / cacheRead', + fields.map((f) => f.props['data-field']).join(',') === 'input,output,cacheRead', + fields.map((f) => f.props['data-field']).join(',')) + const setField = (name, value) => { + const el = findAll(tree, (n) => n.type === 'input' && n.props && n.props['data-field'] === name)[0] + el.props.onChange({ target: { value } }) + } + setField('input', '7') + setField('output', '14') + setField('cacheRead', '0.7') + await tick() + tree = draw() + const customRowNow = findAll(tree, (n) => n.type === 'tr' && n.props && String(n.props['data-model'] || '') === 'relay/b')[0] + ok('the typed rates show in the price column', textOf(customRowNow).includes('¥7.00'), textOf(customRowNow)) + ok('the row is a dirty custom row', customRowNow.props['data-state'] === 'custom' && customRowNow.props['data-dirty'] === 'true', + customRowNow.props['data-state'] + '/' + customRowNow.props['data-dirty']) + ok('typing wrote nothing yet', calls.filter((c) => c.args && c.args.action === 'commit').length === 0) + findAll(tree, (n) => n.type === 'button' && String(n.props.className || '').includes('tsd-btn-primary'))[0].props.onClick() + await tick() + const commits4 = calls.filter((c) => c.args && c.args.action === 'commit') + ok('Apply writes once for the typed price', commits4.length === 1, commits4.length) + if (commits4.length === 1) { + ok('Apply sends the three rates as customs, with the display currency', + JSON.stringify(commits4[0].args.customs) === JSON.stringify([{ key: 'relay/b', input: 7, output: 14, cacheRead: 0.7 }]) + && commits4[0].args.currency === 'CNY', + JSON.stringify(commits4[0].args.customs) + ' cur=' + commits4[0].args.currency) + ok('a typed price sends no decision for that row', + commits4[0].args.decisions.every((d) => d.key !== 'relay/b'), + JSON.stringify(commits4[0].args.decisions)) + } + +} + +const summary = () => (failed === 0 ? 'ALL CHECKS PASSED' : failed + ' CHECK(S) FAILED') + + ' (' + (checks.length - failed) + '/' + checks.length + ')' + +test('the pricing dialog keeps its promises against the built bundle', async () => { + await main() + const red = checks.filter((c) => !c.cond).map((c) => ' ✗ ' + c.name) + assert.equal(failed, 0, summary() + (red.length ? '\n' + red.join('\n') : '')) + console.log(' ' + summary()) +}) diff --git a/tests/fixtures/token-usage-parity.json b/tests/fixtures/token-usage-parity.json new file mode 100644 index 0000000..bfff6d5 --- /dev/null +++ b/tests/fixtures/token-usage-parity.json @@ -0,0 +1,174 @@ +{ + "$comment": "Recorded, never hand-edited: expected is the OFFICIAL tokenUsage fold (@deepseek-ai/dsh-token-meter 0.2.1-rc.3) applied to these events by scripts/fold-parity-fixture.mjs. Re-run that script after a Harness upgrade.", + "provenance": { + "package": "@deepseek-ai/dsh-token-meter", + "version": "0.2.1-rc.3", + "projection": "lib/types/usage-projection.js#tokenUsageProjectionDefinition", + "recordedAt": "2026-10-29", + "generator": "scripts/fold-parity-fixture.mjs" + }, + "events": [ + { + "seq": 1, + "time": 1761300000000, + "type": "session", + "data": {} + }, + { + "seq": 2, + "time": 1761300001000, + "type": "request/context", + "data": { + "provider": "deepseek-account", + "model": "deepseek-flash" + } + }, + { + "seq": 3, + "time": 1761300002000, + "type": "assistant/message", + "data": { + "turn": 0, + "step": 0, + "usage": { + "inputTokens": 1000, + "outputTokens": 200, + "cacheReadTokens": 5000, + "cacheWriteTokens": 100 + } + } + }, + { + "seq": 4, + "time": 1761300003000, + "type": "assistant/message", + "data": { + "turn": 0, + "step": 0, + "usage": { + "inputTokens": 1200, + "outputTokens": 250, + "cacheReadTokens": 5000, + "cacheWriteTokens": 100 + } + } + }, + { + "seq": 5, + "time": 1761300004000, + "type": "assistant/message", + "data": { + "turn": 0, + "step": 0, + "usage": { + "inputTokens": 1200, + "outputTokens": 250, + "cacheReadTokens": 5000, + "cacheWriteTokens": 100 + } + } + }, + { + "seq": 6, + "time": 1761300005000, + "type": "assistant/attempt", + "data": { + "turn": 1, + "step": 0, + "stream": [ + { + "type": "chunk", + "chunk": { + "type": "text", + "text": "hi" + } + }, + { + "type": "chunk", + "chunk": { + "type": "usage", + "usage": { + "inputTokens": 300, + "outputTokens": 40, + "cacheReadTokens": 0, + "cacheWriteTokens": 0 + } + } + } + ] + } + }, + { + "seq": 7, + "time": 1761300006000, + "type": "llm/retry-started", + "data": { + "turn": 1, + "step": 0 + } + }, + { + "seq": 8, + "time": 1761300007000, + "type": "assistant/message", + "data": { + "turn": 1, + "step": 0, + "usage": { + "inputTokens": 310, + "outputTokens": 45, + "cacheReadTokens": 10, + "cacheWriteTokens": 0 + } + } + }, + { + "seq": 9, + "time": 1761300008000, + "type": "assistant/message", + "data": { + "turn": 2, + "step": 0, + "stream": [ + { + "type": "chunk", + "chunk": { + "type": "text", + "text": "no usage here" + } + } + ] + } + }, + { + "seq": 10, + "time": 1761300009000, + "type": "request/context", + "data": { + "provider": "coding-plan", + "model": "glm-5.3-flash" + } + }, + { + "seq": 11, + "time": 1761300010000, + "type": "assistant/message", + "data": { + "turn": 2, + "step": 1, + "usage": { + "inputTokens": 50, + "outputTokens": 5, + "cacheReadTokens": 900, + "cacheWriteTokens": 0 + } + } + } + ], + "expected": { + "uncachedInputTokens": 1860, + "outputTokens": 340, + "cacheReadTokens": 5910, + "cacheWriteTokens": 100 + } +} diff --git a/tests/fold-cache.test.js b/tests/fold-cache.test.js new file mode 100644 index 0000000..4858501 --- /dev/null +++ b/tests/fold-cache.test.js @@ -0,0 +1,381 @@ +/** + * The fold cache: what makes a restart cheap. + * + * Without it every start re-read and re-folded the whole persisted history; the + * measured floor on this machine was 12.5 s of pure inflate for 404 MB across + * 258 sessions. With it an unchanged session costs one JSON read. + * + * The tests here are about correctness, not speed: a cache that changes a number + * is worse than no cache. So every case compares a hydrated state against a cold + * fold, and every failure mode must degrade to the cold path. + */ +import { test } from 'node:test' +import assert from 'node:assert/strict' +import { mkdtempSync, readdirSync, readFileSync, rmSync, writeFileSync, mkdirSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { join } from 'node:path' + +import { createState } from '../src/host/state.js' +import { runBackfill, scanPersisted } from '../src/host/scan.js' +import { query } from '../src/host/query.js' +import { FOLD_CACHE_VERSION, foldSignature, readEntry, writeEntry } from '../src/host/fold-cache.js' + +function usageEvent(seq, turn, step, input = 10) { + return { + seq, + time: 1_700_000_000_000 + seq * 1000, + type: 'assistant/message', + data: { + turn, + step, + usage: { inputTokens: input, outputTokens: 1, cacheReadTokens: 2, cacheWriteTokens: 0 }, + message: { source: { provider: 'p', model: 'm' } }, + }, + } +} + +/** A real aggregation index, so hydration is exercised against the production one. */ +function makeState() { + const state = createState(null) + // query() reads a price store; a local price is not what this file is about. + state.prices = { lookup: () => ({ price: null }), costOf: () => 0, currency: 'CNY' } + const indexed = [] + state.index = { + add(record) { indexed.push(record) }, + remove(record) { + const at = indexed.indexOf(record) + if (at >= 0) indexed.splice(at, 1) + }, + // query() walks the index; keep the fake honest about that contract. + recordsInRange(from, to) { + return indexed.filter((r) => r.time >= from && r.time < to) + }, + } + state.__indexed = indexed + return state +} + +/** Fake sessionPersistence: one log per id, with a mutable revision. */ +function fakePersistence(sessions) { + return { + list: async () => Object.entries(sessions).map(([id, s]) => ({ header: { id }, revision: s.revision, eventCount: s.events.length })), + open: async (id) => ({ + inheritedEventCount: 0, + read: async () => ({ events: sessions[id].events }), + close: async () => {}, + }), + } +} + +const ctxWith = (persistence) => ({ get: (name) => (name === 'sessionPersistence' ? persistence : undefined) }) + +const totals = (state) => ({ + records: state.records.length, + indexed: state.__indexed.length, + tokens: state.records.reduce((sum, r) => sum + r.inputTokens + r.outputTokens + r.cacheReadTokens, 0), +}) + +test('a hydrated pass produces exactly what a cold fold produced', async () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { + s1: { revision: 'r1', events: [usageEvent(0, 1, 0), usageEvent(1, 1, 1)] }, + s2: { revision: 'r1', events: [usageEvent(0, 1, 0, 99)] }, + s3: { revision: 'r1', events: [] }, + } + const persistence = fakePersistence(sessions) + + const cold = makeState() + await scanPersisted(ctxWith(persistence), cold, { cacheDir: dir }) + const coldTotals = totals(cold) + assert.equal(coldTotals.records, 3, 'the cold fold saw all three settlements') + + // Fresh process: nothing in memory, the cache on disk is all there is. + const warm = makeState() + await scanPersisted(ctxWith(persistence), warm, { cacheDir: dir }) + + assert.deepEqual(totals(warm), coldTotals, 'hydration must match the cold fold') + assert.deepEqual(warm.records.map((r) => r.session).sort(), ['s1', 's1', 's2']) + assert.equal(warm.watermarks.get('s1'), 1, 'the watermark is restored, not recomputed') + assert.equal(warm.revisions.get('s1'), 'r1') + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('a changed revision is a miss and re-folds, and the cache follows', async () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] } } + const persistence = fakePersistence(sessions) + + const first = makeState() + await scanPersisted(ctxWith(persistence), first, { cacheDir: dir }) + assert.equal(first.records.length, 1) + + // Append a settlement: the revision changes, so the entry must not be used. + sessions.s1 = { revision: 'r2', events: [usageEvent(0, 1, 0), usageEvent(1, 1, 1)] } + const second = makeState() + await scanPersisted(ctxWith(persistence), second, { cacheDir: dir }) + assert.equal(second.records.length, 2, 'the appended settlement is folded') + assert.equal(second.revisions.get('s1'), 'r2') + + // And the entry written by that pass is already usable again. + const third = makeState() + await scanPersisted(ctxWith(persistence), third, { cacheDir: dir }) + assert.equal(third.records.length, 2) + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('a corrupt entry is a miss, never a crash', async () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] } } + const persistence = fakePersistence(sessions) + const cold = makeState() + await scanPersisted(ctxWith(persistence), cold, { cacheDir: dir }) + + // Corrupt the file the previous pass wrote. + const [name] = readdirSync(dir) + writeFileSync(join(dir, name), '{ this is not json') + + const warm = makeState() + await scanPersisted(ctxWith(persistence), warm, { cacheDir: dir }) + assert.equal(warm.records.length, 1, 'the cold path still folded it') + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('an entry from another fold signature is a miss', async () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] } } + const persistence = fakePersistence(sessions) + const cold = makeState() + await scanPersisted(ctxWith(persistence), cold, { cacheDir: dir }) + + // Pretend the fold rule or the holiday calendar changed. + const [name] = readdirSync(dir) + const path = join(dir, name) + const payload = JSON.parse(readFileSync(path, 'utf8')) + payload.sig = 'old-signature' + writeFileSync(path, JSON.stringify(payload)) + + assert.equal(readEntry(dir, 's1'), null, 'a stale signature is refused') + + const warm = makeState() + await scanPersisted(ctxWith(persistence), warm, { cacheDir: dir }) + assert.equal(warm.records.length, 1, 'and the session is folded again') + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('the cache is optional: cache:false keeps the old behaviour', async () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] } } + const persistence = fakePersistence(sessions) + const state = makeState() + await scanPersisted(ctxWith(persistence), state, { cache: false, cacheDir: dir }) + assert.equal(state.records.length, 1) + assert.deepEqual(readdirSync(dir), [], 'nothing was written') + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('a partial listing never deletes cache entries', async () => { + // This is the incident that made every start slow: `sp.list()` returns a + // PARTIAL list while the session store warms up, and pruning on "absent from + // this listing" deleted 257 of 258 valid entries. A missing entry costs one + // re-fold; deleting them costs one re-fold of the whole history per start. + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] }, s2: { revision: 'r1', events: [usageEvent(0, 1, 0)] } } + await scanPersisted(ctxWith(fakePersistence(sessions)), makeState(), { cacheDir: dir }) + assert.equal(readdirSync(dir).length, 2) + + // The store now reports only s1; s2 is simply not enumerated yet. + const partial = { + list: async () => [{ header: { id: 's1' }, revision: 'r1', eventCount: 1 }], + open: async (id) => ({ inheritedEventCount: 0, read: async () => ({ events: sessions[id].events }), close: async () => {} }), + } + await scanPersisted(ctxWith(partial), makeState(), { cacheDir: dir }) + assert.equal(readdirSync(dir).length, 2, 'nothing was deleted') + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('an entry holding another session\u2019s records is refused', async () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] } } + const persistence = fakePersistence(sessions) + await scanPersisted(ctxWith(persistence), makeState(), { cacheDir: dir }) + + // Swap in a record that belongs to a different session: accepting it would + // attribute one session's tokens to another. + const [name] = readdirSync(dir) + const path = join(dir, name) + const payload = JSON.parse(readFileSync(path, 'utf8')) + payload.records = [{ session: 'other', time: 1, inputTokens: 5, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 }] + writeFileSync(path, JSON.stringify(payload)) + + const warm = makeState() + await scanPersisted(ctxWith(persistence), warm, { cacheDir: dir }) + assert.deepEqual(warm.records.map((r) => r.session), ['s1'], 'the foreign record never lands') + assert.equal(warm.records.length, 1, 'the session was folded from its log instead') + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('a warm pass never opens the session log', async () => { + // The cache is only worth anything if the log is not read. Make `open()` throw + // on the second pass: a warm start that still opens logs fails loudly instead of + // quietly being as slow as before. + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { + s1: { revision: 'r1', events: [usageEvent(0, 1, 0), usageEvent(1, 1, 1)] }, + s2: { revision: 'r1', events: [usageEvent(0, 1, 0)] }, + } + const cold = fakePersistence(sessions) + await scanPersisted(ctxWith(cold), makeState(), { cacheDir: dir }) + + const sealed = { + list: cold.list, + open: async (id) => { + throw new Error('a warm pass must not open ' + id) + }, + } + const warm = makeState() + await scanPersisted(ctxWith(sealed), warm, { cacheDir: dir }) + assert.equal(warm.records.length, 3, 'all records came from the cache') + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('each pass reports its own timing line', async () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { + s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] }, + s2: { revision: 'r1', events: [usageEvent(0, 1, 0)] }, + } + const persistence = fakePersistence(sessions) + + const coldLogs = [] + await scanPersisted(ctxWith(persistence), makeState(), { cacheDir: dir, log: (m) => coldLogs.push(m) }) + assert.equal(coldLogs.length, 1, 'one line per pass') + assert.match(coldLogs[0], /2 sessions, 0 from cache, 2 folded, list \d+ms, total \d+ms/) + + const warmLogs = [] + await scanPersisted(ctxWith(persistence), makeState(), { cacheDir: dir, log: (m) => warmLogs.push(m) }) + assert.match(warmLogs[0], /2 sessions, 2 from cache, 0 folded, list \d+ms, total \d+ms/) + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('the dashboard response and the cache dir both carry the last pass', async () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] } } + const state = makeState() + await scanPersisted(ctxWith(fakePersistence(sessions)), state, { cacheDir: dir }) + + // The response field: readable through the dashboard call, no log plumbing. + const out = query(state, { from: 0, to: Date.UTC(2030, 0, 1), granularity: 'day' }) + assert.ok(out.scan, 'the response carries the pass summary') + assert.equal(out.scan.sessions, 1) + assert.equal(out.scan.hydrated, 0) + assert.ok(out.scan.totalMs >= 0 && out.scan.listMs >= 0) + + // The file next to the cache, for a host whose logger swallows plugin lines. + const summary = JSON.parse(readFileSync(join(dir, '..', 'last-pass.json'), 'utf8')) + assert.equal(summary.sessions, 1) + assert.equal(summary.folded, 1) + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('a second runBackfill while one is running does not reset the counters', async () => { const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] }, s2: { revision: 'r1', events: [] } } + let release + const gate = new Promise((resolve) => { release = resolve }) + const slow = { + list: async () => { + await gate + return Object.entries(sessions).map(([id, s]) => ({ header: { id }, revision: s.revision, eventCount: s.events.length })) + }, + open: async (id) => ({ inheritedEventCount: 0, read: async () => ({ events: sessions[id].events }), close: async () => {} }), + } + const state = makeState() + const first = runBackfill(ctxWith(slow), state, { cacheDir: dir }) + // While the first pass is in flight, a second call must return instead of + // zeroing `done` — that used to surface as `status: done, total: 258, done: 0`. + await runBackfill(ctxWith(slow), state, { cacheDir: dir }) + assert.equal(state.backfill.done, 0, 'the second call left the counters alone') + release() + await first + assert.equal(state.backfill.status, 'done') + assert.equal(state.backfill.done, state.backfill.total, 'done catches up to total') + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('runBackfill waits for an in-flight pass instead of announcing done: 0', async () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + const sessions = { s1: { revision: 'r1', events: [usageEvent(0, 1, 0)] }, s2: { revision: 'r1', events: [] } } + let release + const gate = new Promise((resolve) => { release = resolve }) + const slow = { + list: async () => { + await gate + return Object.entries(sessions).map(([id, s]) => ({ header: { id }, revision: s.revision, eventCount: s.events.length })) + }, + open: async (id) => ({ inheritedEventCount: 0, read: async () => ({ events: sessions[id].events }), close: async () => {} }), + } + const state = makeState() + // A cadence pass is already running when the plugin activates. + const inFlight = scanPersisted(ctxWith(slow), state, { cacheDir: dir }) + const backfill = runBackfill(ctxWith(slow), state, { cacheDir: dir }) + release() + await Promise.all([inFlight, backfill]) + + assert.equal(state.backfill.status, 'done') + assert.equal(state.backfill.total, 2) + assert.equal(state.backfill.done, 2, 'the retry produced a consistent counter') + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) + +test('the signature covers the fold version and the holiday calendar', () => { const sig = foldSignature() + assert.ok(sig.startsWith(String(FOLD_CACHE_VERSION) + ':'), 'the version leads') + assert.ok(sig.length > String(FOLD_CACHE_VERSION).length + 1, 'the calendar is part of it') +}) + +test('writeEntry round-trips, and refuses a shapeless entry', () => { + const dir = mkdtempSync(join(tmpdir(), 'usage-foldcache-')) + try { + assert.equal(writeEntry(dir, 'x/y z', { revision: 'r', watermark: 7, records: [{ a: 1 }] }), true) + assert.deepEqual(readEntry(dir, 'x/y z'), { revision: 'r', watermark: 7, records: [{ a: 1 }] }) + assert.equal(writeEntry(dir, 'bad', { watermark: 1 }), false, 'records are required') + mkdirSync(join(dir, 'nested'), { recursive: true }) + assert.equal(readEntry(dir, 'missing'), null) + } finally { + rmSync(dir, { recursive: true, force: true }) + } +}) diff --git a/tests/fold-parity.test.js b/tests/fold-parity.test.js new file mode 100644 index 0000000..bfc5393 --- /dev/null +++ b/tests/fold-parity.test.js @@ -0,0 +1,92 @@ +/** + * The fold parity gate. + * + * `src/host/fold.js` claims to mirror the official `tokenUsage` session + * projection, and the dashboard's numbers are only trustworthy if that claim + * holds. Tests/fixtures/token-usage-parity.json is a recording: the OFFICIAL + * fold (@deepseek-ai/dsh-token-meter) applied to a fixed event script by + * `scripts/fold-parity-fixture.mjs`. This test runs the same events through the + * plugin's fold and demands the same totals — a claim, not a copy. + * + * The reference & the plugin's own reasoning both live in the fixture's + * `$comment`; re-record after a Harness upgrade rather than editing numbers. + */ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { foldEvent } from '../src/host/fold.js'; + +const fixture = JSON.parse( + readFileSync(fileURLToPath(new URL('./fixtures/token-usage-parity.json', import.meta.url)), 'utf8'), +); + +/** The smallest state capsule foldEvent() accepts. */ +function freshState() { + return { records: [], index: null, lastSample: new Map(), route: new Map() }; +} + +/** Totals of everything the fold billed, in the official projection's shape. */ +function totalsOf(records) { + const sum = (field) => records.reduce((acc, r) => acc + (r[field] || 0), 0); + return { + uncachedInputTokens: sum('inputTokens'), + outputTokens: sum('outputTokens'), + cacheReadTokens: sum('cacheReadTokens'), + cacheWriteTokens: sum('cacheWriteTokens'), + }; +} + +test('the recorded fixture came from the official projection', () => { + // Guard against a fixture that was hand-edited or recorded from the plugin + // itself: the provenance must name the official package and its version. + assert.equal(fixture.provenance.package, '@deepseek-ai/dsh-token-meter'); + assert.match(fixture.provenance.version, /^\d+\.\d+\.\d+/); + assert.match(fixture.provenance.projection, /usage-projection/); + assert.ok(Array.isArray(fixture.events) && fixture.events.length > 8); + // Recording the plugin's own output would make this gate a tautology: the + // script that produces it must be the asar reader, not the plugin. + assert.equal(fixture.provenance.generator, 'scripts/fold-parity-fixture.mjs'); +}); + +test('the plugin fold agrees with the official tokenUsage totals', () => { + const state = freshState(); + for (const event of fixture.events) foldEvent(state, 'parity-session', event); + assert.deepEqual(totalsOf(state.records), fixture.expected); +}); + +test('the fold keeps one row per billed attempt, not one per report', () => { + // The totals above could match by luck while the rows are wrong. The script + // reports the same (turn, step) twice (replace) and once more (no-op), so + // only distinct attempts may survive. + const state = freshState(); + for (const event of fixture.events) foldEvent(state, 'parity-session', event); + const attempts = state.records.map((r) => `${r.turn}/${r.step}:${r.inputTokens}`); + assert.deepEqual(attempts, ['0/0:1200', '1/0:300', '1/0:310', '2/1:50']); +}); + +test('a replaced settlement keeps its slot and takes the newer figures', () => { + const state = freshState(); + const first = fixture.events.find((e) => e.seq === 3); + const second = fixture.events.find((e) => e.seq === 4); + const same = fixture.events.find((e) => e.seq === 5); + foldEvent(state, 's', first); + const row = state.records[0]; + foldEvent(state, 's', second); + assert.equal(state.records.length, 1, 'a re-report must not append a row'); + assert.equal(state.records[0], row, 'it must reuse the same row object'); + assert.equal(row.inputTokens, 1200); + foldEvent(state, 's', same); + assert.equal(state.records.length, 1); + assert.equal(row.inputTokens, 1200, 'an identical re-report changes nothing'); +}); + +test('a retried attempt bills again instead of replacing', () => { + const state = freshState(); + for (const event of fixture.events) { + if (event.seq > 8) break; + foldEvent(state, 's', event); + } + // 0/0 replaced, 1/0 stream attempt, then retry + a second 1/0 settlement. + assert.deepEqual(state.records.map((r) => `${r.turn}/${r.step}:${r.inputTokens}`), ['0/0:1200', '1/0:300', '1/0:310']); +}); diff --git a/tests/holiday-years.test.js b/tests/holiday-years.test.js new file mode 100644 index 0000000..0495b37 --- /dev/null +++ b/tests/holiday-years.test.js @@ -0,0 +1,117 @@ +/** + * The holiday calendar's year span. + * + * The peak/off-peak rule needs a holiday for every date the usage statistics can + * contain, plus one year forward (the next arrangement appears in November). The + * span therefore comes from the usage data, not from "today ± 1": a dashboard + * with 2024 sessions must ship 2024 holidays, or those holidays get billed at + * the peak rate. These tests pin the span rules and the "unpublished year must be + * recorded, not dropped" contract. + */ +import test from 'node:test' +import assert from 'node:assert/strict' +import { mkdtempSync, mkdirSync, writeFileSync, utimesSync, rmSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { join } from 'node:path' + +import { + beijingYear, + holidaySpan, + mergeHolidayYear, + sessionSpan, + unpublishedYears, +} from '../scripts/lib/holiday-years.mjs' + +const at = (iso) => Date.parse(iso) + +test('beijingYear reads the calendar year in Beijing, not UTC', () => { + // 2026-12-31T16:00Z is already 2027-01-01 in Beijing. + assert.equal(beijingYear(at('2026-12-31T16:00:00Z')), 2027) + assert.equal(beijingYear(at('2026-12-31T15:59:59Z')), 2026) +}) + +test('with usage data the span covers every usage year and one year forward', () => { + const span = holidaySpan({ + usageFromMs: at('2024-03-01T00:00:00Z'), + usageToMs: at('2026-08-01T00:00:00Z'), + nowMs: at('2026-10-29T00:00:00Z'), + }) + assert.equal(span.usedUsage, true) + // 2024 sessions: the file mtime is the last write, so the past side gets a + // year of slack — 2023 is fetched even though no file says 2023. + assert.equal(span.from, 2023) + assert.equal(span.to, 2027, 'latest usage 2026 + 1') +}) + +test('a stale dashboard still covers next year', () => { + // Usage ends in 2024, but "now" is 2026: the coming year must still be known. + const span = holidaySpan({ + usageFromMs: at('2024-01-05T00:00:00Z'), + usageToMs: at('2024-06-01T00:00:00Z'), + nowMs: at('2026-10-29T00:00:00Z'), + }) + assert.equal(span.from, 2023) + assert.equal(span.to, 2027) +}) + +test('without usage data the span is last year through next year', () => { + const span = holidaySpan({ nowMs: at('2026-10-29T00:00:00Z') }) + assert.equal(span.usedUsage, false) + assert.deepEqual([span.from, span.to], [2025, 2027]) +}) + +test('sessionSpan finds the oldest and newest session files', () => { + const root = mkdtempSync(join(tmpdir(), 'usage-sessions-')) + try { + mkdirSync(join(root, '--E-FXS-Data--', 'session-a'), { recursive: true }) + mkdirSync(join(root, '--E-FXS-Data--', 'session-b'), { recursive: true }) + const oldFile = join(root, '--E-FXS-Data--', 'session-a', 'session.v4.jsonl.zstd') + const newFile = join(root, '--E-FXS-Data--', 'session-b', 'session.v4.jsonl.zstd') + writeFileSync(oldFile, 'x') + writeFileSync(newFile, 'x') + utimesSync(oldFile, new Date('2024-03-02T00:00:00Z'), new Date('2024-03-02T00:00:00Z')) + utimesSync(newFile, new Date('2026-08-09T00:00:00Z'), new Date('2026-08-09T00:00:00Z')) + // A non-session file must not count. + writeFileSync(join(root, 'notes.txt'), 'x') + utimesSync(join(root, 'notes.txt'), new Date('2019-01-01T00:00:00Z'), new Date('2019-01-01T00:00:00Z')) + + const span = sessionSpan(root) + assert.ok(span, 'two session files were found'); + assert.equal(span.files, 2); + assert.equal(new Date(span.fromMs).toISOString(), '2024-03-02T00:00:00.000Z') + assert.equal(new Date(span.toMs).toISOString(), '2026-08-09T00:00:00.000Z') + } finally { + rmSync(root, { recursive: true, force: true }) + } +}) + +test('sessionSpan returns null when there is nothing to scan', () => { + const root = mkdtempSync(join(tmpdir(), 'usage-sessions-empty-')) + try { + assert.equal(sessionSpan(root), null) + assert.equal(sessionSpan(join(root, 'missing')), null) + } finally { + rmSync(root, { recursive: true, force: true }) + } +}) + +test('an unpublished year is recorded, not dropped', () => { + const acc = { dates: {}, years: {} } + mergeHolidayYear(acc, 2026, { + days: [{ date: '2026-01-01', name: '元旦', isOffDay: true }], + papers: ['p1'], + }) + mergeHolidayYear(acc, 2027, { days: [], papers: [] }) + assert.deepEqual(acc.dates, { '2026-01-01': '元旦' }) + assert.equal(acc.years[2026].offDays, 1) + assert.equal(acc.years[2027].unpublished, true); + assert.deepEqual(unpublishedYears(acc.years), [2027]) +}) + +test('a published year clears nothing it should keep', () => { + const acc = { dates: {}, years: {} } + mergeHolidayYear(acc, 2025, { days: [{ date: '2025-10-01', name: '国庆节', isOffDay: true }] }) + mergeHolidayYear(acc, 2025, { days: [] }) // a later empty payload must not invent holidays + assert.deepEqual(acc.dates, { '2025-10-01': '国庆节' }) + assert.equal(acc.years[2025].unpublished, true, 'the year is re-labelled unpublished') +}) diff --git a/tests/lazy-backfill.test.js b/tests/lazy-backfill.test.js new file mode 100644 index 0000000..dbc593d --- /dev/null +++ b/tests/lazy-backfill.test.js @@ -0,0 +1,131 @@ +/** + * Wiring gates (a few are source-level, the rest are behavioural): the point is + * that the scan is *connected to the request path*, which no amount of + * unit-testing `runBackfill` would prove — deleting the call site keeps every + * behavioural test green while the panel goes back to showing nothing. + * + * The backfill starts on the first query, not at activation. + * + * Why this is a test and not a comment: the whole point of the lazy start is that + * the cache-loading window (≈0.8 s warm, ≈12 s cold) happens while the panel is + * open. Started from `apply` it finished before anyone looked, so the loading + * state existed in code and never on screen — the user restarted a dozen times + * and saw nothing. A future "let's warm the cache at startup, it's faster" edit + * would silently bring that back, so it is pinned here. + */ +import test from 'node:test' +import assert from 'node:assert/strict' +import { readFileSync } from 'node:fs' +import { join } from 'node:path' + +import { createState } from '../src/host/state.js' +import { startBackfillOnDemand } from '../src/host/scan.js' + +const root = new URL('..', import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1') +const hostIndex = readFileSync(join(root, 'src/host/index.js'), 'utf8').replace(/\r\n/g, '\n') + +const ctxWith = (persistence) => ({ get: (name) => (name === 'sessionPersistence' ? persistence : undefined) }) + +function slowPersistence(sessions) { + const queue = Object.entries(sessions) + return { + list: async () => queue.map(([id]) => id), + open: async (id) => sessions[id], + read: async () => ({ events: [] }), + } +} + +test('the first query starts the scan and the response can say "running"', async () => { + const state = createState(null) + assert.equal(state.backfill.status, 'idle', 'a fresh process must not claim to be scanning') + + const ctx = ctxWith(slowPersistence({})) + // The handler flips the visible state *before* rendering its response — that is + // what makes the very first frame a loading frame instead of an empty panel. + const started = startBackfillOnDemand(ctx, state, { cache: false }) + assert.equal(started, true) + assert.equal(state.backfill.status, 'running') + assert.equal(state.backfill.started, true) + + // Idempotent: every later query reads the state, none of them restarts the pass. + assert.equal(startBackfillOnDemand(ctx, state, { cache: false }), false) + assert.equal(state.backfill.status, 'running', 'a second query must not reset the counters') +}); + +test('without persistence the scan still settles, so the panel never hangs', () => { + const state = createState(null) + const started = startBackfillOnDemand(ctxWith(undefined), state, { cache: false }) + assert.equal(started, true) + // runBackfill's synchronous prefix marks it done when there is nothing to read. + assert.equal(state.backfill.status, 'done') +}); + +test('the scan that finishes flips to done, which is what stops the skeleton', async () => { + const state = createState(null) + const persistence = { + list: async () => [], + open: async () => ({ events: [] }), + read: async () => ({ events: [] }), + } + startBackfillOnDemand(ctxWith(persistence), state, { cache: false }) + // The pass is async; let it run out. + for (let i = 0; i < 50 && state.backfill.status !== 'done'; i += 1) { + await new Promise((resolve) => setTimeout(resolve, 10)) + } + assert.equal(state.backfill.status, 'done', 'an empty store must settle to done, not stay running') + assert.equal(state.backfill.done, state.backfill.total) +}); + +test('the query handler is what starts it — not activation', () => { + // The behaviour tests above prove the function works; this one proves it is + // actually wired to the request path. Without it, deleting the call site leaves + // every test green while the panel goes back to showing nothing at all. + const queryHandler = /handlers\.set\('query',[\s\S]{0,600}?startBackfillOnDemand\(ctx, state/.exec(hostIndex) + assert.ok(queryHandler, 'the query handler must call startBackfillOnDemand') + + // And activation must not do it eagerly: that is exactly the regression this + // whole change exists to prevent (the pass finishes before anyone opens the + // panel, so the loading state can never be seen). + const applyTail = hostIndex.slice(hostIndex.indexOf('state.channel = registerRPC')) + assert.ok(!/^\s*runBackfill\(/m.test(applyTail), + 'apply() must not start the full scan; it belongs to the first query') +}); + +test('a diagnostic sink that throws costs one line, never the host', async () => { + // Not hypothetical: `logSink` returns a function, and calling `.warn(...)` on it + // threw `TypeError: logSink(...).warn is not a function` inside the pass-end log. + // The throw escaped `runBackfill`'s catch (which logged through the same broken + // sink) and dsh died with `fatal load failure` the moment the usage screen opened. + const state = createState(null) + const persistence = { list: async () => [], open: async () => ({ events: [] }), read: async () => ({ events: [] }) } + const exploding = () => { throw new TypeError('logSink(...).warn is not a function') } + + startBackfillOnDemand(ctxWith(persistence), state, { cache: false, log: exploding }) + for (let i = 0; i < 50 && state.backfill.status !== 'done'; i += 1) { + await new Promise((resolve) => setTimeout(resolve, 10)) + } + assert.equal(state.backfill.status, 'done', 'a broken logger must not leave the scan wedged in running') +}); + +test('a context probe that throws cannot crash the process from a read request', async () => { + // `runBackfill` reads `ctx.get('sessionPersistence')` before its own try block. + // Fire-and-forget without a catch therefore turns a throwing context access into + // an unhandled rejection — which this host treats as fatal. The loading window is + // opened by a plain GET, so it must be impossible for it to take dsh down. + const state = createState(null) + const hostileCtx = { get: () => { throw new Error('inject conflict') } } + assert.equal(startBackfillOnDemand(hostileCtx, state, { cache: false }), true) + for (let i = 0; i < 50 && state.backfill.status !== 'done'; i += 1) { + await new Promise((resolve) => setTimeout(resolve, 10)) + } + assert.equal(state.backfill.status, 'done', 'the rejection must be caught and the state settled') +}); + +test('logSink is used as a function, never as a logger object', () => { + // The same shape bug existed in persist(): `const logger = logSink(ctx)` then + // `logger.warn(...)`. Pin the contract so it cannot come back. + assert.ok(!/logSink\(ctx\)\s*\.\s*(warn|error|info)\(/.test(hostIndex), + 'logSink returns a function — do not call .warn/.error on its result') + assert.ok(!/const\s+logger\s*=\s*logSink\(ctx\)[\s\S]{0,400}?logger\.(warn|error|info)\(/.test(hostIndex), + 'do not alias logSink to a `logger` object and then call .warn on it') +}); diff --git a/tests/native-hygiene.test.js b/tests/native-hygiene.test.js new file mode 100644 index 0000000..6cd8ab5 --- /dev/null +++ b/tests/native-hygiene.test.js @@ -0,0 +1,108 @@ +/** + * Native-hygiene gates (mostly source-level by design — they police *shape*, not + * behaviour: which renderer owns a verdict, where disk writes may live, which + * namespace the settings line targets). A behavioural test cannot catch "the + * client re-derives what the host decided", because both halves pass on their own. + * + * Native-hygiene gates: the four habits that keep this plugin honest about what + * it borrows from the harness and what it decides for itself. + * + * Every case here pins a lesson that was paid for once: + * - the baseline version must be declared (exp-version: one place, never a + * range wider than what was verified); + * - the client renders the host's verdict instead of re-deriving it (today's + * bug: the table said 未定价 for a model the user had priced at 0); + * - disk writes live only in the cache module and the one diagnostics line + * (第〇条 3: no new bypass without a documented counter-proof); + * - the settings namespace equals the patch row id (a mismatch silently + * writes to a namespace nobody reads). + */ +import test from 'node:test' +import assert from 'node:assert/strict' +import { readFileSync, readdirSync } from 'node:fs' +import { join } from 'node:path' + +const root = new URL('..', import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1') +const read = (rel) => readFileSync(join(root, rel), 'utf8').replace(/\r\n/g, '\n') + +const pkg = JSON.parse(read('package.json')) + +/** Compare two `x.y.z(-tag.n)` versions; prerelease sorts below the release. */ +function cmpVersion(a, b) { + const parse = (v) => { + const [core, pre] = String(v).split('-') + return { nums: core.split('.').map(Number), pre: pre ? pre.split('.') : [] } + } + const A = parse(a) + const B = parse(b) + for (let i = 0; i < 3; i += 1) { + const x = A.nums[i] || 0 + const y = B.nums[i] || 0 + if (x !== y) return x < y ? -1 : 1 + } + if (A.pre.length === 0 && B.pre.length === 0) return 0 + if (A.pre.length === 0) return 1 + if (B.pre.length === 0) return -1 + for (let i = 0; i < Math.max(A.pre.length, B.pre.length); i += 1) { + const x = A.pre[i] + const y = B.pre[i] + if (x === undefined) return -1 + if (y === undefined) return 1 + const nx = Number(x) + const ny = Number(y) + const numeric = Number.isFinite(nx) && Number.isFinite(ny) + if (numeric ? nx !== ny : x !== y) return (numeric ? nx < ny : x < y) ? -1 : 1 + } + return 0 +} + +test('the manifest declares the harness build this plugin was verified against', () => { + const declared = pkg.dsh && pkg.dsh.verifiedAgainst + assert.equal(typeof declared, 'string', 'package.json dsh.verifiedAgainst must name a build'); + assert.match(declared, /^\d+\.\d+\.\d+(-[0-9A-Za-z.-]+)?$/, 'verifiedAgainst is one concrete version, not a range'); + // The baseline has to be *inside* the declared support range. It may be newer + // than the floor (a build verified later must not narrow who can install), but + // it must never fall outside — that would be advertising a build we never ran. + const range = String(pkg.engines && pkg.engines.dsh) + const m = /^>=(\S+)\s+<(\S+)$/.exec(range) + assert.ok(m, `engines.dsh must stay a simple lower/upper range, got ${range}`); + assert.ok(cmpVersion(declared, m[1]) >= 0, `verifiedAgainst ${declared} is below the floor ${m[1]}`); + assert.ok(cmpVersion(declared, m[2]) < 0, `verifiedAgainst ${declared} is outside the ceiling ${m[2]}`); +}); + +test('the model table renders the host verdict instead of re-deriving it', () => { + const src = read('src/client/index.js'); + assert.ok( + src.includes('unpriced: r.unpriced === true'), + 'ModelTable must take `unpriced` from the host response', + ); + // The re-derivation that caused the 未定价 regression: cost 0 + tokens > 0 was + // treated as "no price", so a user-priced zero row could never show ¥0.00. + for (const banned of ['!(r.cost > 0)', '!(s.cost > 0)', 's.tokens > 0 &&']) { + assert.ok(!src.includes(banned), `client must not re-derive a cost verdict (${banned})`); + } +}); + +test('disk writes stay in the cache module and the one diagnostics line', () => { + const hostDir = join(root, 'src/host'); + const offenders = []; + for (const name of readdirSync(hostDir)) { + if (!name.endsWith('.js')) continue; + const src = readFileSync(join(hostDir, name), 'utf8'); + const writes = src.match(/writeFileSync|appendFileSync|createWriteStream|mkdirSync|renameSync/g) || []; + if (writes.length === 0) continue; + if (name === 'fold-cache.js' || name === 'scan.js') continue; // documented in docs/native-transport.md §3 + offenders.push(`${name}: ${writes.join(', ')}`); + } + assert.deepEqual(offenders, [], 'a new disk write needs its own counter-proof in docs/native-transport.md §3'); +}); + +test('the settings namespace is the patch row id', () => { + const patch = read('cordis.patch.yml'); + const ids = [...patch.matchAll(/^\s*-\s*id:\s*(\S+)\s*$/gm)].map((m) => m[1]); + assert.ok(ids.includes('usage'), 'cordis.patch.yml must declare the usage row explicitly'); + const host = read('src/host/index.js'); + const namespaces = [...host.matchAll(/settings\.update\(\s*'([^']+)'/g)].map((m) => m[1]); + assert.ok(namespaces.length > 0, 'the plugin persists through settings.update'); + for (const ns of namespaces) assert.equal(ns, 'usage', 'settings.update must target the row id from the patch'); +}); diff --git a/tests/peak.test.js b/tests/peak.test.js new file mode 100644 index 0000000..fc7874b --- /dev/null +++ b/tests/peak.test.js @@ -0,0 +1,107 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; + +import { PEAK_WINDOWS, beijingParts, inPeakWindow, isPeak } from '../src/host/peak.js'; + +/** Beijing wall-clock -> epoch ms. Written out so the tests do not share the code's own arithmetic. */ +function bj(date, time) { + const [y, m, d] = date.split('-').map(Number); + const [hh, mm] = time.split(':').map(Number); + return Date.UTC(y, m - 1, d, hh, mm) - 8 * 3_600_000; +} + +/** Holiday predicate over an explicit set of Beijing dates. */ +function holidays(...dates) { + const set = new Set(dates); + return (date) => set.has(date); +} + +test('peak windows are the two DeepSeek windows', () => { + assert.deepEqual(PEAK_WINDOWS, [ + [9, 12], + [14, 18], + ]); +}); + +test('beijingParts reads Beijing, not UTC', () => { + // 2026-10-19 00:30 UTC is 08:30 in Beijing on the same calendar day. + const parts = beijingParts(Date.UTC(2026, 9, 19, 0, 30)); + assert.equal(parts.date, '2026-10-19'); + assert.equal(parts.hour, 8); + assert.equal(parts.minute, 30); + assert.equal(parts.weekday, 1); // Monday + + // 2026-10-18 20:00 UTC is already Monday 04:00 in Beijing. + const rolled = beijingParts(Date.UTC(2026, 9, 18, 20, 0)); + assert.equal(rolled.date, '2026-10-19'); + assert.equal(rolled.hour, 4); +}); + +test('window boundary cases', () => { + const monday = '2026-10-19'; + assert.equal(isPeak(bj(monday, '08:59')), false, 'Monday 08:59 is off-peak'); + assert.equal(isPeak(bj(monday, '09:00')), true, 'Monday 09:00 is peak'); + assert.equal(isPeak(bj(monday, '11:59')), true, 'Monday 11:59 is peak'); + assert.equal(isPeak(bj(monday, '12:00')), false, 'Monday 12:00 (lunch) is off-peak'); + assert.equal(isPeak(bj(monday, '13:59')), false, 'Monday 13:59 (lunch) is off-peak'); + assert.equal(isPeak(bj(monday, '14:00')), true, 'Monday 14:00 is peak'); + assert.equal(isPeak(bj(monday, '17:59')), true, 'Monday 17:59 is peak'); + assert.equal(isPeak(bj(monday, '18:00')), false, 'Monday 18:00 is off-peak'); +}); + +test('the minute before a boundary is peak, the boundary itself is not', () => { + // 09:59:59 is inside; 10:00:00 is inside; 11:59:59.999 is inside; 12:00:00 is not. + const at = (time) => bj('2026-10-20', time); + assert.equal(isPeak(at('09:59')), true); + assert.equal(isPeak(at('11:59')), true); + assert.equal(isPeak(at('12:00')), false); + assert.equal(isPeak(at('17:59')), true); + assert.equal(isPeak(at('18:00')), false); +}); + +test('weekends are off-peak all day', () => { + assert.equal(isPeak(bj('2026-10-24', '10:00')), false, 'Saturday 10:00'); + assert.equal(isPeak(bj('2026-10-25', '15:00')), false, 'Sunday 15:00'); + assert.equal(isPeak(bj('2026-10-25', '09:30')), false, 'Sunday inside a window'); +}); + +test('Friday inside a window is peak', () => { + // 2026-10-23 is a Friday. + assert.equal(isPeak(bj('2026-10-23', '10:00')), true); + assert.equal(isPeak(bj('2026-10-23', '18:00')), false); +}); + +test('a public holiday is off-peak even inside a window on a weekday', () => { + // 2026-10-01 is a Thursday and a public holiday. + assert.equal(isPeak(bj('2026-10-01', '10:00'), holidays('2026-10-01')), false); + // The DEFAULT calendar is the shipped one: forgetting the argument must not + // silently bill a holiday at the peak rate. (It did: the fold called + // `isPeak()` bare while the price display used the calendar, so a National + // Day call was billed peak and shown off-peak.) + assert.equal(isPeak(bj('2026-10-01', '10:00')), false); + // An explicitly empty calendar is the only way to opt out. + assert.equal(isPeak(bj('2026-10-01', '10:00'), () => false), true); + // A neighbouring workday still bills peak. + assert.equal(isPeak(bj('2026-10-09', '10:00'), holidays('2026-10-01')), true); + assert.equal(isPeak(bj('2026-10-29', '10:00')), true, 'an ordinary weekday window is peak by default'); +}); + +test('a make-up Saturday stays off-peak', () => { + // 2026-02-14 is a Saturday declared a working day by the 调休 arrangement. + // The published rule names weekdays and carves out only public holidays, so a + // make-up workday is NOT peak. + assert.equal(isPeak(bj('2026-02-14', '10:00'), holidays()), false); +}); + +test('inPeakWindow ignores the calendar, isPeak does not', () => { + const saturday = bj('2026-10-24', '10:00'); + assert.equal(inPeakWindow(saturday), true); + assert.equal(isPeak(saturday), false); +}); + +test('a non-finite timestamp is never peak', () => { + assert.equal(isPeak(undefined), false); + assert.equal(isPeak(null), false); + assert.equal(isPeak(Number.NaN), false); + assert.equal(isPeak(Number.POSITIVE_INFINITY), false); +}); diff --git a/tests/price-data.test.js b/tests/price-data.test.js new file mode 100644 index 0000000..c675429 --- /dev/null +++ b/tests/price-data.test.js @@ -0,0 +1,201 @@ +/** + * Data-integrity gates for the generated price table and holiday calendar. + * + * These are not "does the generator run" tests — they are the gates that turn a + * silent pricing defect into a red build: + * + * - a parsing change that yields an empty or tiny table; + * - a price table that stopped being refreshed (the capturedAt date); + * - a DeepSeek entry that lost its peak/off-peak pair (the fallback would then + * price it at Zen's peak rate, silently doubling every estimate); + * - holiday data that silently shrank to nothing. + */ +import test from 'node:test'; +import assert from 'node:assert/strict'; + +import { REFERENCE_PRICES } from '../src/host/prices.js'; +import { PUBLIC_HOLIDAYS } from '../src/host/holidays.js'; +import { normalizeId } from '../src/host/pricing.js'; + +const DAY_MS = 86_400_000; + +test('every table id normalizes to a key no other id claims', () => { + // The lookup index is keyed by `normalizeId`, which unifies `.`/`-`, `_`, + // case, the provider prefix and a router `auto-` prefix. Those rules are only + // safe while they stay injective over the table: two rows collapsing into one + // key would price one model at the other's rate, depending on object order. + // This is the gate for that, and the reason the rules may be that broad. + const keys = new Map(); + for (const id of Object.keys(REFERENCE_PRICES.models)) { + const key = normalizeId(id); + assert.equal(keys.has(key), false, `${id} and ${keys.get(key)} both normalize to ${key}`); + keys.set(key, id); + } + assert.equal(keys.size, Object.keys(REFERENCE_PRICES.models).length); +}); + +test('every official DeepSeek model is tiered under its own id and its Zen twin', () => { + // Pinned roster on purpose: these are the ids the two tables name differently, + // and the failure this catches is invisible to a `source === 'deepseek'` scan — + // a row reverted to Zen's single price simply stops being sourced deepseek, so + // the tier test above would pass while every off-peak call was billed at double + // (that is exactly how `deepseek-v4-pro` sat uncovered). + for (const id of ['deepseek-flash', 'deepseek-v4.1-flash', 'deepseek-v4-pro']) { + const entry = REFERENCE_PRICES.models[id]; + assert.ok(entry, `${id} must be in the table`); + assert.equal(entry.source, 'deepseek', `${id} must carry the official two-tier row`); + assert.ok(entry.peak && entry.offPeak, `${id} must keep both tiers`); + assert.ok(entry.offPeak.input < entry.peak.input, `${id}: off-peak must be cheaper than peak`); + } + // The generator fetched this many DeepSeek rows; the table must carry at least + // that many deepseek-sourced entries (the Zen twin adds one). + const deepseek = REFERENCE_PRICES.sources.find((s) => s && s.name === 'DeepSeek'); + assert.ok(deepseek && Number.isInteger(deepseek.models) && deepseek.models >= 1, 'the source record must count its rows'); + const tiered = Object.values(REFERENCE_PRICES.models).filter((e) => e && e.source === 'deepseek').length; + assert.ok(tiered >= deepseek.models, `only ${tiered} deepseek rows for ${deepseek.models} fetched`); +}); + +/** Every usable price field of one model entry, as numbers. */ +function priceFields(entry) { + const tiers = entry.source === 'deepseek' ? [entry.peak, entry.offPeak] : [entry]; + const out = []; + for (const tier of tiers) { + assert.ok(tier && typeof tier === 'object', 'every price tier must be an object'); + for (const key of ['input', 'output', 'cacheRead', 'cacheWrite']) { + const value = tier[key]; + assert.ok( + value === null || (typeof value === 'number' && Number.isFinite(value) && value >= 0), + `${key} must be a finite non-negative number or null, got ${JSON.stringify(value)}`, + ); + if (typeof value === 'number') out.push(value); + } + } + return out; +} + +test('the table is non-trivial', () => { + const ids = Object.keys(REFERENCE_PRICES.models); + assert.ok(ids.length >= 80, `expected at least 80 models, got ${ids.length}`); + assert.equal(REFERENCE_PRICES.unit, 'USD per 1M tokens'); + assert.ok(Array.isArray(REFERENCE_PRICES.sources) && REFERENCE_PRICES.sources.length >= 2); +}); + +test('the table was captured recently', () => { + // 30 days: a stale table is a wrong table, and hiding that behind a green test + // is exactly the failure this file exists to prevent. + // capturedAt is a full ISO instant now (the dialog prints it to the second); a + // date-only value from an older table still parses as UTC midnight. + const raw = String(REFERENCE_PRICES.capturedAt || ''); + const captured = Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(raw) ? raw + 'T00:00:00Z' : raw); + assert.ok(Number.isFinite(captured), `capturedAt is not a date: ${REFERENCE_PRICES.capturedAt}`); + const ageDays = (Date.now() - captured) / DAY_MS; + assert.ok(ageDays <= 30, `price table is ${ageDays.toFixed(1)} days old — run scripts/gen-prices.mjs`); +}); + +test('every model carries at least one usable price', () => { + const empty = []; + for (const [id, entry] of Object.entries(REFERENCE_PRICES.models)) { + assert.ok(entry && typeof entry === 'object', `${id}: entry must be an object`); + assert.ok(entry.source === 'zen' || entry.source === 'deepseek', `${id}: unknown source ${entry.source}`); + if (priceFields(entry).length === 0) empty.push(id); + } + assert.deepEqual(empty, [], 'these models have no usable price field at all'); +}); + +test('DeepSeek models carry both tiers, and off-peak is never above peak', () => { + const deepseekIds = Object.entries(REFERENCE_PRICES.models) + .filter(([, entry]) => entry.source === 'deepseek') + .map(([id]) => id); + assert.ok(deepseekIds.length >= 2, `expected the DeepSeek models to be present, got ${deepseekIds.join(', ') || 'none'}`); + + for (const id of deepseekIds) { + const entry = REFERENCE_PRICES.models[id]; + assert.ok(entry.peak && entry.offPeak, `${id}: both peak and offPeak are required`); + for (const key of ['input', 'output', 'cacheRead']) { + const peak = entry.peak[key]; + const off = entry.offPeak[key]; + assert.ok(typeof peak === 'number' && peak > 0, `${id}.peak.${key} must be a positive number`); + assert.ok(typeof off === 'number' && off > 0, `${id}.offPeak.${key} must be a positive number`); + assert.ok(off <= peak, `${id}.${key}: off-peak (${off}) must not exceed peak (${peak})`); + } + } +}); + +test('deepseek-flash matches the published list price', () => { + // Pinned on purpose: this is the row every estimate leans on, and a silent + // change to it is indistinguishable from a parsing bug. + const flash = REFERENCE_PRICES.models['deepseek-flash']; + assert.ok(flash, 'deepseek-flash must be in the table'); + assert.equal(flash.source, 'deepseek'); + assert.deepEqual(flash.offPeak, { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: null }); + assert.deepEqual(flash.peak, { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: null }); +}); + +test('Zen rows that exist for a DeepSeek model are kept only as a fallback', () => { + for (const [id, entry] of Object.entries(REFERENCE_PRICES.models)) { + if (entry.source !== 'deepseek' || entry.fallback === undefined) continue; + assert.equal(entry.fallback.source, 'zen', `${id}: fallback must be the Zen row`); + assert.ok(entry.fallback.input > 0, `${id}: fallback must carry a price`); + } +}); + +test('the free-tier twins are zero-priced and their paid siblings are not', () => { + const free = Object.keys(REFERENCE_PRICES.models).filter((id) => id.endsWith('-free')); + assert.ok(free.length >= 10, `expected the free tier to be present, got ${free.length}`); + for (const id of free) { + const entry = REFERENCE_PRICES.models[id]; + const tiers = entry.source === 'deepseek' ? [entry.peak, entry.offPeak] : [entry]; + for (const tier of tiers) { + assert.equal(tier.input, 0, `${id}: a -free row must price at 0`); + } + } + // The paid twin of a promo twin must stay non-zero, otherwise `pricing.js` + // would "fix" a free lookup into another free row. That row is now a DeepSeek + // two-tier entry, so the non-zero price lives in `peak` / `offPeak`. + const paid = REFERENCE_PRICES.models['deepseek-v4.1-flash']; + assert.ok(paid, 'deepseek-v4.1-flash must be in the table'); + assert.ok(paid.peak.input > 0, 'the paid twin of deepseek-v4.1-flash-free must be non-zero'); +}); + +test('the holiday calendar has real data and reports its coverage', () => { + const dates = Object.keys(PUBLIC_HOLIDAYS.dates); + assert.ok(dates.length >= 20, `expected a real holiday calendar, got ${dates.length} dates`); + for (const date of dates) assert.match(date, /^\d{4}-\d{2}-\d{2}$/, `${date} is not a YYYY-MM-DD date`); + const years = Object.keys(PUBLIC_HOLIDAYS.years).map(Number).sort((a, b) => a - b); + assert.ok(years.length >= 1); + for (const year of years) { + const info = PUBLIC_HOLIDAYS.years[year]; + if (info.unpublished === true) { + // The State Council publishes next year's arrangement in November. Such a + // year must be RECORDED (the UI says so) rather than dropped — a dropped + // year is indistinguishable from "no holidays", which bills them peak. + assert.equal(info.offDays, 0, `${year} is unpublished, so it has no off days`); + assert.equal(info.last, null, `${year} is unpublished, so it has no last date`); + continue; + } + assert.ok(info.offDays > 0, `${year} has no off days`); + // Coverage metadata is what the UI shows when the calendar stops early. + assert.ok(info.last, `${year} must report the last covered date`); + } +}); + +test('the calendar spans every usage year plus one forward', () => { + const coverage = PUBLIC_HOLIDAYS.coverage; + assert.ok(coverage, 'the table must record the span it was fetched for'); + assert.ok(Number.isInteger(coverage.fromYear) && Number.isInteger(coverage.toYear)); + assert.ok(coverage.toYear > coverage.fromYear, 'a span, not a single year'); + assert.ok(Array.isArray(coverage.years) && coverage.years.length === coverage.toYear - coverage.fromYear + 1); + // Every year in the span is present, published or explicitly unpublished. + for (let year = coverage.fromYear; year <= coverage.toYear; year += 1) { + assert.ok(PUBLIC_HOLIDAYS.years[year], `${year} is in the span but missing from years`); + } + // The forward year exists: that is what keeps next January from being billed + // at the peak rate on a holiday. + assert.ok(PUBLIC_HOLIDAYS.years[coverage.toYear], 'the forward year must be present'); +}); + +test('a known public holiday is present and a known workday is not', () => { + assert.ok(PUBLIC_HOLIDAYS.dates['2026-10-01'], '2026-10-01 is a public holiday'); + assert.ok(PUBLIC_HOLIDAYS.dates['2026-02-17'], '2026 Spring Festival day is a public holiday'); + assert.equal(PUBLIC_HOLIDAYS.dates['2026-10-09'], undefined, '2026-10-09 is an ordinary workday'); +}); diff --git a/tests/pricing-rpc.test.js b/tests/pricing-rpc.test.js new file mode 100644 index 0000000..6e53105 --- /dev/null +++ b/tests/pricing-rpc.test.js @@ -0,0 +1,322 @@ +/** + * The `pricing` endpoint: propose matches, then commit what the user confirmed. + * + * The contract this file pins is "确定才保存": opening the dialog, or asking for a + * proposal, must not change a single price. Only `action: 'commit'` touches the + * persisted match map, and only rows that survive validation reach it — a bad id + * here would become a silent zero cost later, which is the failure mode the whole + * pricing rebuild exists to remove. + * + * A second contract lives here because the dialog depends on it and cannot fake + * it: `propose` must classify a model exactly the way `query` prices it. When it + * did not, every row in the dialog read 未匹配 while the dashboard happily billed + * those same calls — the answer was computed, then discarded, and the badge was + * derived from a field the proposal never set. + */ +import test from 'node:test'; +import assert from 'node:assert/strict'; + +import { apply } from '../src/host/index.js'; +import { costOf, referenceTable } from '../src/host/pricing.js'; + +/** + * A cordis-like host that mounts the plugin's Fetch routes and records the + * settings writes, so a test can assert both the answer and the side effects. + */ +function makeHost(config) { + const routes = new Map(); + const updates = []; + const ctx = { + get(name) { + if (name === 'settings') { + return { update: (id, patch) => { updates.push({ id, patch }); return Promise.resolve(patch); } }; + } + return undefined; + }, + interval() { return () => {}; }, + effect(fn) { return typeof fn === 'function' ? fn() : undefined; }, + inject(_deps, fn) { + fn({ + connection: { + fetch: { + register(route) { + routes.set(String(route.path).split('/').pop(), route.fetch); + }, + }, + }, + }); + return () => {}; + }, + }; + apply(ctx, config); + const post = async (endpoint, args) => { + const route = routes.get(endpoint); + assert.ok(route, `${endpoint} route was never mounted`); + const res = await route(new Request('http://host/api/usage/' + endpoint, { + method: 'POST', + body: JSON.stringify(args), + })); + const body = await res.json(); + assert.equal(body.ok, true, JSON.stringify(body.error || null)); + return body.value; + }; + return { post, updates, routes }; +} + +const FLASH = { key: 'deepseek-account/deepseek-flash', provider: 'deepseek-account', model: 'deepseek-flash' }; +const ODD = { key: 'relay/odd-model', provider: 'relay', model: 'odd-model' }; + +test('propose reports the ladder level for every model and writes nothing', async () => { + const host = makeHost({}); + const value = await host.post('pricing', { + action: 'propose', + models: [FLASH, { key: 'stepfun/step-5-preview', provider: 'stepfun', model: 'step-5-preview' }], + }); + + const flash = value.rows.find((r) => r.model === 'deepseek-flash'); + assert.equal(flash.how, 'normalized'); + assert.equal(flash.state, 'exact'); + assert.equal(flash.target, 'deepseek-flash'); + assert.ok(flash.rates && flash.rates.peak.input > 0); + // Both tiers travel; the client prints the one the host calls current. + assert.equal(flash.rates.offPeak.input, 0.15); + assert.ok(flash.tier === 'peak' || flash.tier === 'off'); + + const step = value.rows.find((r) => r.model === 'step-5-preview'); + assert.equal(step.how, 'unmatched'); + assert.equal(step.state, 'none'); + assert.equal(step.source, null); + assert.equal(step.rates, null); + + // The reference ids travel grouped by kind, so the dialog needs no second trip + // and no second source of truth about where an id comes from. Two groups: a + // custom price is an OPTION in the dialog, not a list of ids. + assert.deepEqual(value.table.groups.map((g) => g.source), ['deepseek', 'zen']); + const deepseek = value.table.groups.find((g) => g.source === 'deepseek').ids; + const zen = value.table.groups.find((g) => g.source === 'zen').ids; + assert.ok(deepseek.includes('deepseek-v4.1-flash'), 'the official row is a DeepSeek reference'); + assert.ok(zen.includes('glm-5.3-flash'), 'a Zen-only row is a Zen reference'); + assert.equal(value.table.capturedAt, referenceTable().capturedAt); + assert.deepEqual(host.updates, [], 'propose must not write the persisted config'); +}); + +test('propose classifies a literal hit instead of dropping to unmatched', async () => { + // These are the ids the dialog showed as 未匹配 in the report that opened this + // bug: every one of them is a literal row of the shipped table. + const host = makeHost({}); + const wanted = [ + { key: 'commandcode-plan/deepseek-v4.1-flash', provider: 'commandcode-plan', model: 'deepseek-v4.1-flash' }, + { key: 'coding-plan/glm-5.3-flash', provider: 'coding-plan', model: 'glm-5.3-flash' }, + { key: 'qwen-token-plan-cn/qwen3.8-flash', provider: 'qwen-token-plan-cn', model: 'qwen3.8-flash' }, + ]; + const value = await host.post('pricing', { action: 'propose', models: wanted }); + for (const row of value.rows) { + assert.equal(row.how, 'normalized', `${row.key} is a literal table row and must classify as a literal hit`); + assert.equal(row.state, 'exact', `${row.key} must show as 精确, not 未匹配`); + assert.equal(row.target, row.model); + assert.ok(row.rates !== null, `${row.key} must carry the price the query would bill`); + } +}); + +test('every proposed row carries the price and the unit the card is priced in', async () => { + const host = makeHost({}); + const value = await host.post('pricing', { + action: 'propose', + models: [FLASH, { key: 'commandcode-plan/deepseek-v4.1-flash', provider: 'commandcode-plan', model: 'deepseek-v4.1-flash' }], + }); + for (const row of value.rows) { + if (row.rates === null) continue; + for (const tier of ['peak', 'offPeak']) { + // The dialog prints these three fields; the card bills the same three. + for (const field of ['input', 'output', 'cacheRead']) { + assert.equal(typeof row.rates[tier][field], 'number', `${row.key} is missing rates.${tier}.${field}`); + } + } + assert.ok(row.rates.peak.input > 0); + } + assert.equal(value.table.unit, referenceTable().unit, 'the dialog labels the column with the table unit'); +}); + +test('a proposal never disagrees with the bill the dashboard shows', async () => { + // The same record, priced through the dialog's path and through the query's + // path, must agree. They used different shapes for the same number before. + const host = makeHost({}); + const atMs = Date.UTC(2026, 9, 19, 12, 0); // 20:00 Beijing: off-peak + const value = await host.post('pricing', { + action: 'propose', + models: [{ key: 'commandcode-plan/deepseek-v4.1-flash', provider: 'commandcode-plan', model: 'deepseek-v4.1-flash' }], + }); + const row = value.rows[0]; + const record = { + provider: 'commandcode-plan', + model: 'deepseek-v4.1-flash', + time: atMs, + tokens: { off: { inputTokens: 1e6, outputTokens: 0, cacheReadTokens: 0 } }, + }; + // The proposal's two tiers, fed back into the bill, must produce the off-peak + // input rate for one million tokens — the rate the row itself prints. + assert.equal(costOf(record, { peak: row.rates.peak, offPeak: row.rates.offPeak }), row.rates.offPeak.input); +}); + +test('commit validates every row, persists the good ones and reports the rest', async () => { + const host = makeHost({}); + const value = await host.post('pricing', { + action: 'commit', + decisions: [ + { key: 'relay/odd-model', target: 'glm-5.3-flash' }, + { key: 'relay/bad-model', target: 'not-a-real-id' }, + { key: '', target: 'glm-5.3-flash' }, + ], + }); + + assert.equal(value.applied, 1); + assert.equal(value.rejected.length, 2, 'an unknown target and a missing key are both refused'); + assert.equal(value.matchMap['relay/odd-model'], 'glm-5.3-flash'); + assert.equal(value.matchMap['relay/bad-model'], undefined); + assert.equal(value.matchMap[''], undefined); + + const write = host.updates.find((u) => u.patch && u.patch.matchMap); + assert.ok(write, 'a successful commit must write the config'); + assert.equal(write.id, 'usage'); + assert.equal(write.patch.matchMap['relay/odd-model'], 'glm-5.3-flash'); +}); + +test('a confirmed match outranks the ladder, and clearing restores the ladder', async () => { + const host = makeHost({ matchMap: { 'relay/odd-model': 'glm-5.3-flash' } }); + + const confirmed = await host.post('pricing', { action: 'propose', models: [ODD] }); + const row = confirmed.rows[0]; + assert.equal(row.state, 'custom'); + assert.equal(row.how, 'confirmed'); + assert.equal(row.target, 'glm-5.3-flash'); + assert.ok(row.rates); + + const cleared = await host.post('pricing', { action: 'commit', cleared: ['relay/odd-model'] }); + assert.equal(cleared.cleared, 1); + assert.equal(cleared.matchMap['relay/odd-model'], undefined); + + const back = await host.post('pricing', { action: 'propose', models: [ODD] }); + assert.equal(back.rows[0].state, 'none'); + assert.equal(back.rows[0].how, 'unmatched', 'without the confirmation the odd id is unpriced again'); +}); + +test('an empty commit is a no-op rather than a wipe', async () => { + const host = makeHost({ matchMap: { 'relay/odd-model': 'glm-5.3-flash' } }); + const value = await host.post('pricing', { action: 'commit' }); + assert.equal(value.applied, 0); + assert.equal(value.cleared, 0); + assert.equal(value.matchMap['relay/odd-model'], 'glm-5.3-flash'); + assert.deepEqual(host.updates, [], 'an empty commit must not write'); +}); + +test('a confirmed target that left the table is reported, not silently repriced', async () => { + const host = makeHost({ matchMap: { 'relay/odd-model': 'retired-model-id' } }); + const value = await host.post('pricing', { action: 'propose', models: [ODD] }); + const row = value.rows[0]; + assert.equal(row.how, 'unmatched'); + assert.equal(row.state, 'none'); + assert.equal(row.target, 'retired-model-id'); + assert.equal(row.rates, null); +}); + +test('an explicit price still wins over a confirmed match', async () => { + const host = makeHost({ + matchMap: { 'relay/odd-model': 'glm-5.3-flash' }, + prices: { 'relay/odd-model': { inputPerM: 1, outputPerM: 2, cacheReadPerM: 0, cacheWritePerM: 0 } }, + }); + const value = await host.post('pricing', { action: 'propose', models: [ODD] }); + assert.equal(value.rows[0].how, 'custom'); + assert.equal(value.rows[0].state, 'custom'); + assert.equal(value.rows[0].target, null, 'a hand-entered price has no reference model'); + // Canonical on the wire, even though the config row is spelled with `PerM`. + assert.deepEqual(value.rows[0].rates.peak, { input: 1, output: 2, cacheRead: 0, cacheWrite: 0 }); + assert.deepEqual(value.rows[0].rates.offPeak, value.rows[0].rates.peak, 'a hand-entered price has one tier'); +}); + +test('prices persistence keeps working', async () => { + const host = makeHost({}); + const value = await host.post('prices', { prices: { 'relay/odd-model': { inputPerM: 2, outputPerM: 4, cacheReadPerM: 0.2, cacheWritePerM: 0 } } }); + assert.ok(value.prices['relay/odd-model']); + const write = host.updates.find((u) => u.patch && u.patch.prices); + assert.ok(write, 'the prices endpoint still persists'); + // The config still speaks `inputPerM`; the store speaks canonical fields. + assert.equal(write.patch.prices['relay/odd-model'].inputPerM, 2); + assert.equal(write.patch.prices['relay/odd-model'].input, undefined); +}); + +test('the 自定义 option stores three hand-typed rates for one model key', async () => { + // The dialog's 自定义 is not a reference id: it is three numbers the user types + // for THIS model. They arrive in the display currency (¥, 7 per USD) and are + // stored USD-denominated, because the whole table is USD. + const host = makeHost({}); + const committed = await host.post('pricing', { + action: 'commit', + currency: 'CNY', + customs: [{ key: 'relay/odd-model', input: 7, output: 14, cacheRead: 0.7 }], + }); + assert.equal(committed.custom, 1, 'one hand-typed price applied'); + assert.deepEqual(committed.rejected, []); + + const write = host.updates.find((u) => u.patch && u.patch.prices); + assert.ok(write, 'the typed price is persisted'); + assert.deepEqual(write.patch.prices['relay/odd-model'], { + inputPerM: 1, outputPerM: 2, cacheReadPerM: 0.1, cacheWritePerM: 0, + }, 'stored in USD, in the config\'s spelling'); + + // …and the row is now priced from it, both tiers, as a custom reference. + const after = await host.post('pricing', { action: 'propose', models: [ODD] }); + const row = after.rows[0]; + assert.equal(row.how, 'custom'); + assert.equal(row.state, 'custom'); + assert.equal(row.source, 'custom'); + assert.deepEqual(row.rates.peak, { input: 1, output: 2, cacheRead: 0.1, cacheWrite: 0 }); + assert.deepEqual(row.rates.offPeak, row.rates.peak, 'a hand-typed price has one tier'); +}); + +test('a hand-typed price outranks a confirmed match, and clearing drops both', async () => { + const host = makeHost({ matchMap: { 'relay/odd-model': 'glm-5.3-flash' } }); + await host.post('pricing', { + action: 'commit', + currency: 'USD', + customs: [{ key: 'relay/odd-model', input: 9, output: 9, cacheRead: 9 }], + }); + const typed = await host.post('pricing', { action: 'propose', models: [ODD] }); + assert.equal(typed.rows[0].how, 'custom', 'the typed price wins (the ladder checks it first)'); + assert.equal(typed.rows[0].rates.peak.input, 9); + + const cleared = await host.post('pricing', { action: 'commit', cleared: ['relay/odd-model'] }); + assert.equal(cleared.cleared, 1); + assert.equal(cleared.prices['relay/odd-model'], undefined, 'clearing drops the typed price too'); + const back = await host.post('pricing', { action: 'propose', models: [ODD] }); + assert.equal(back.rows[0].state, 'none'); +}); + +test('typing a price takes the key out of the confirmed-match map', async () => { + // One key, one answer: a typed price and a confirmed target would both sit + // there, and the ladder would silently prefer the typed one while the dialog's + // history drawer still showed a match that no longer applies. + const host = makeHost({ matchMap: { 'relay/odd-model': 'glm-5.3-flash' } }); + const value = await host.post('pricing', { + action: 'commit', + currency: 'USD', + customs: [{ key: 'relay/odd-model', input: 1, output: 1, cacheRead: 0 }], + }); + assert.equal(value.custom, 1); + assert.equal(value.matchMap['relay/odd-model'], undefined, 'the stale match is dropped'); +}); + +test('a malformed hand-typed price is refused, not stored as zero', async () => { + const host = makeHost({}); + const value = await host.post('pricing', { + action: 'commit', + currency: 'CNY', + customs: [ + { key: 'relay/a', input: -1, output: 1, cacheRead: 0 }, + { key: 'relay/b', input: 'abc', output: 1, cacheRead: 0 }, + { key: '', input: 1, output: 1, cacheRead: 0 }, + ], + }); + assert.equal(value.custom, 0); + assert.equal(value.rejected.length, 3); + assert.deepEqual(host.updates, [], 'a rejected row must not write the config'); +}); diff --git a/tests/pricing.test.js b/tests/pricing.test.js new file mode 100644 index 0000000..7d28ee7 --- /dev/null +++ b/tests/pricing.test.js @@ -0,0 +1,317 @@ +/** + * Resolution-ladder tests for the reference price lookup. + * + * The cases below are not invented: the model ids are the ones this machine's + * session logs actually recorded, and the expected costs are what the harness's + * own billing reports for the same records. A change that breaks any of them + * changes what the dashboard claims the user spent. + * + * Two contracts are pinned beyond the ladder itself: + * - `resolvePrice` returns the row AS PUBLISHED and never a pre-selected tier; + * the tier belongs to the billing site, so `ratesOf(price, tier)` is how a + * test asks "what would a peak call cost". + * - `state` (exact / fuzzy / none / custom) is derived here, once. The client + * renders it and never re-derives it from `how`. + */ +import test from 'node:test'; +import assert from 'node:assert/strict'; + +import { + ALIASES, + costOf, + holidayOfDefault, + normalizeId, + priceRow, + ratesOf, + referenceGroups, + referenceTable, + resolvePrice, +} from '../src/host/pricing.js'; + +const TABLE = referenceTable(); + +test('normalizeId lowercases, drops the provider prefix and unifies separators', () => { + assert.equal(normalizeId('DeepSeek/DeepSeek-V4.1-Flash'), 'deepseek-v4-1-flash'); + assert.equal(normalizeId('deepseek/deepseek-v4.1_flash'), 'deepseek-v4-1-flash'); + assert.equal(normalizeId(' deepseek-flash '), 'deepseek-flash'); + assert.equal(normalizeId(''), ''); + assert.equal(normalizeId(null), ''); +}); + +test('normalizeId drops the router prefix DSH itself reports', () => { + // `group/auto-deepseek-v4-1-flash` is what the magpie router records. Without + // this rule the id needed its own hand-copied row in the config table, which + // then outranked the reference table and never followed the peak tiers. + assert.equal(normalizeId('group/auto-deepseek-v4-1-flash'), 'deepseek-v4-1-flash'); + assert.equal(normalizeId('magpie/auto-glm-5.3-flash'), 'glm-5-3-flash'); +}); + +test('normalizeId keeps version suffixes that are part of the id', () => { + // Only the separator style is unified; a version or a published date is not + // stripped, because `deepseek-v4-flash-0731` is a different generation. + assert.equal(normalizeId('deepseek-v4-flash-latest'), 'deepseek-v4-flash-latest'); + assert.equal(normalizeId('deepseek-v4.1-flash-1017'), 'deepseek-v4-1-flash-1017'); +}); + +test('level 2: the alias table bridges the vendor name to the table id', () => { + const hit = resolvePrice({ model: 'deepseek-chat' }); + assert.equal(hit.how, 'alias'); + assert.equal(hit.state, 'fuzzy'); + assert.equal(hit.target, 'deepseek-v4.1-flash'); + assert.equal(hit.why, ALIASES['deepseek-chat'].why); +}); + +test('the live Flash name is a literal hit, so it keeps its two-tier price', () => { + // It used to alias onto the Zen id; the table now carries the official + // DeepSeek row under this very id, and aliasing away from it would hide the + // off-peak half of the price. + const hit = resolvePrice({ model: 'deepseek-flash' }); + assert.equal(hit.how, 'normalized'); + assert.equal(hit.target, 'deepseek-flash'); + assert.equal(ratesOf(hit.price, 'peak').input, 0.3); + assert.equal(ratesOf(hit.price, 'off').input, 0.15); +}); + +test('level 2: every retired name still resolves', () => { + for (const model of ['deepseek-chat', 'deepseek-reasoner', 'deepseek-v4-flash']) { + const hit = resolvePrice({ model }); + assert.equal(hit.how, 'alias', `${model} should resolve through the alias table`); + assert.ok(ratesOf(hit.price, 'peak').output > 0, `${model} should carry a price`); + } +}); + +test('level 3: a normalized literal match needs no alias', () => { + const cases = [ + 'deepseek-v4.1-flash', + 'deepseek/deepseek-v4.1-flash', + 'group/auto-deepseek-v4-1-flash', + 'glm-5.3-flash', + 'qwen3.8-flash', + 'claude-opus-5-5', + ]; + for (const model of cases) { + const hit = resolvePrice({ model }); + assert.equal(hit.how, 'normalized', `${model} should resolve literally`); + assert.ok(ratesOf(hit.price, 'peak').input !== null, `${model} should carry an input price`); + } +}); + +test('level 1: a user price wins over every other level', () => { + const custom = { 'acme/deepseek-flash': { input: 9, output: 8, cacheRead: 7, cacheWrite: 6 } }; + const composite = resolvePrice({ model: 'deepseek-flash', provider: 'acme', custom }); + assert.equal(composite.how, 'custom'); + assert.equal(composite.state, 'custom'); + assert.equal(ratesOf(composite.price, 'peak').input, 9); + + const bare = resolvePrice({ model: 'glm-5.3-flash', provider: 'acme', custom: { 'glm-5.3-flash': { input: 1 } } }); + assert.equal(bare.how, 'custom', 'a bare-model custom entry also wins'); + assert.equal(ratesOf(bare.price, 'peak').input, 1); +}); + +test('a -free id the table publishes is exact and keeps its published price', () => { + // The rule: a `-free` id is fuzzy only when it is NOT an exact match. Zen + // publishes these rows as free, so the reference cost of a call under them is + // 0 — which is also what the harness charged. Pricing them at the paid + // sibling (the old order) invented a cost nobody paid. + const free = Object.keys(TABLE.models).filter((id) => /-free$/.test(id)); + assert.ok(free.length > 0, 'the table has no -free row, so this rule cannot be exercised'); + for (const id of free) { + const hit = resolvePrice({ model: id }); + assert.equal(hit.how, 'normalized', `${id} is a published row and must be an exact hit`); + assert.equal(hit.state, 'exact'); + assert.equal(hit.target, id); + assert.equal(ratesOf(hit.price, 'peak').input, 0, `${id} is published as free`); + } +}); + +test('a variant name the table does not publish resolves to its base as fuzzy', () => { + // The report that produced this test: `deepseek-v4.1-flash-fast` and + // `deepseek-v4.1-flash-1017` sat in 未匹配 (1,851 calls between them) although + // both are the same model under a variant suffix. The suffix list is closed — + // free/exp/fast/latest and a four-digit publish date — and the base has to be a + // real row, so this is a rename rule, not a similarity score. + const cases = [ + ['deepseek-v4.1-flash-fast', 'deepseek-v4.1-flash'], + ['deepseek-v4.1-flash-1017', 'deepseek-v4.1-flash'], + ['glm-5.3-flash-exp', 'glm-5.3-flash'], + ['deepseek-v4.1-flash-exp', 'deepseek-v4.1-flash'], + ]; + for (const [id, base] of cases) { + const hit = resolvePrice({ model: id }); + assert.equal(hit.how, 'variant', `${id} must resolve through the variant rung`); + assert.equal(hit.state, 'fuzzy'); + assert.equal(hit.target, base); + assert.ok(TABLE.models[hit.target] !== undefined, `${id} must point at a table row`); + assert.ok(ratesOf(hit.price, 'peak').input > 0, `${id} is billed at the base row`); + assert.ok(hit.why.includes(base), 'the reason names the base it inferred'); + } + // Billed at the base row's rate, not at zero and not at some other model's. + const fast = resolvePrice({ model: 'deepseek-v4.1-flash-fast' }); + const base = resolvePrice({ model: 'deepseek-v4.1-flash' }); + assert.deepEqual(fast.price, base.price); +}); + +test('a variant suffix on an unknown base stays unmatched', () => { + // The base must exist: `deepseek-v4-flash-0731` has no `deepseek-v4-flash-0731` + // row and no `deepseek-v4-flash` row either, so it must NOT collapse onto the + // nearest thing. This is the line between a rename rule and resemblance. + for (const id of ['deepseek-v4-flash-0731', 'step-5-preview-1017', 'mock-flash-fast']) { + assert.equal(resolvePrice({ model: id }).how, 'unmatched', `${id} has no base row`); + } +}); + +test('the literal level runs before the inferred ones', () => { + // `glm-5.3-flash-free` is both a literal table row and a variant candidate (its + // base is priced). Literal wins: the table says what this id costs, and an + // inference may not overrule a fact. + const literal = resolvePrice({ model: 'glm-5.3-flash-free' }); + assert.equal(literal.how, 'normalized'); + assert.equal(literal.state, 'exact'); + assert.equal(ratesOf(literal.price, 'peak').input, 0); + // The same model without the promo suffix is its own row, priced normally. + const paid = resolvePrice({ model: 'glm-5.3-flash' }); + assert.equal(paid.how, 'normalized'); + assert.ok(ratesOf(paid.price, 'peak').input > 0); +}); + +test('unmatched ids are reported, never guessed', () => { + for (const model of ['step-5-preview', 'mock-flash', 'default', '', 'deepseek-v4-flash-0731']) { + const hit = resolvePrice({ model }); + assert.equal(hit.how, 'unmatched', `${model || '(empty)'} must stay unmatched`); + assert.equal(hit.state, 'none'); + assert.equal(hit.price, null); + assert.equal(hit.target, null); + assert.equal(hit.source, null); + } +}); + +test('every table id resolves exactly, and every alias is fuzzy', () => { + // The exhaustive gate: the table is generated, so a row that the ladder cannot + // reach is a data bug nobody would see until a cost came out zero. `state` is + // the value the UI shows, so this is also the gate for the four-value + // vocabulary the client renders. + for (const id of Object.keys(TABLE.models)) { + const hit = resolvePrice({ model: id }); + assert.equal(hit.how, 'normalized', `${id} must be reachable by its own id`); + assert.equal(hit.state, 'exact'); + assert.equal(hit.target, id); + assert.ok(hit.price !== null, `${id} must carry a price`); + } + for (const key of Object.keys(ALIASES)) { + const hit = resolvePrice({ model: key }); + assert.equal(hit.how, 'alias', `${key} must resolve through the alias table`); + assert.equal(hit.state, 'fuzzy'); + } +}); + +test('state is one of exactly four values', () => { + const seen = new Set(); + for (const id of [...Object.keys(TABLE.models), ...Object.keys(ALIASES), 'no-such-model']) { + seen.add(resolvePrice({ model: id }).state); + } + seen.add(resolvePrice({ model: 'deepseek-flash', custom: { 'deepseek-flash': { input: 1 } } }).state); + seen.add(resolvePrice({ model: 'odd', matches: { odd: 'deepseek-flash' } }).state); + assert.deepEqual([...seen].sort(), ['custom', 'exact', 'fuzzy', 'none']); +}); + +test('every hit names one of the three kinds of reference id', () => { + // The dialog groups reference ids by origin and labels the row it matched. + // 'custom' is the user's own price row — a kind that used to be unreachable. + assert.equal(resolvePrice({ model: 'deepseek-flash' }).source, 'deepseek'); + assert.equal(resolvePrice({ model: 'glm-5.3-flash' }).source, 'zen'); + assert.equal(resolvePrice({ model: 'odd', custom: { odd: { input: 1 } } }).source, 'custom'); + assert.equal(resolvePrice({ model: 'no-such-model' }).source, null); + // An alias reports where its target lives, not the fact that it was an alias. + assert.equal(resolvePrice({ model: 'deepseek-chat' }).source, 'deepseek'); +}); + +test('reference ids come in exactly two groups', () => { + // 'custom' is NOT a group: in the dialog it is one option ("type your own + // price"), because a hand-entered price is three numbers for one model key, + // not a reference model anyone could point another id at. + const groups = referenceGroups(); + assert.deepEqual(groups.map((g) => g.source), ['deepseek', 'zen']); + const ids = groups.map((g) => g.ids); + assert.ok(ids[0].length >= 2 && ids[1].length >= 80, 'DeepSeek and Zen rows are both listed'); + // A table id never shows up in two groups. + const all = groups.flatMap((g) => g.ids); + assert.equal(new Set(all).size, all.length); + assert.equal(all.length, Object.keys(TABLE.models).length, 'every table row is offered exactly once'); + for (const group of groups) { + assert.deepEqual(group.ids, [...group.ids].sort(), 'each group is stable-sorted'); + } +}); + + +test('holidayOfDefault reads the generated calendar', () => { + assert.equal(holidayOfDefault('2026-10-01'), true, '2026-10-01 is a public holiday'); + assert.equal(holidayOfDefault('2026-10-09'), false, '2026-10-09 is an ordinary workday'); + assert.equal(holidayOfDefault(undefined), false); +}); + +test('priceRow carries both tiers and the instant own tier', () => { + // 2026-10-19 10:00 Beijing (peak window) and 20:00 (off-peak). + const peakAt = Date.UTC(2026, 9, 19, 2, 0); + const offAt = Date.UTC(2026, 9, 19, 12, 0); + const hit = resolvePrice({ model: 'deepseek-flash' }); + const atPeak = priceRow(hit, peakAt); + assert.equal(atPeak.tier, 'peak'); + assert.equal(atPeak.rates.peak.input, 0.3); + assert.equal(atPeak.rates.offPeak.input, 0.15); + const atNight = priceRow(hit, offAt); + assert.equal(atNight.tier, 'off'); + assert.equal(atNight.rates.peak.input, 0.3, 'both tiers travel, whichever is current'); + assert.equal(priceRow(resolvePrice({ model: 'no-such-model' }), peakAt).rates, null); +}); + +/** + * The cost arithmetic, pinned against the harness's own billing. + * + * Record: 69 sessions of deepseek-flash, aggregated usage + * input 27849720, output 6841763, cacheRead 2061403776. + * The harness reports 14.923583058 for those tokens. That number is NOT what + * this plugin should produce: the harness bills the instant of each call (mostly + * off-peak), while a reference cost applies one tier. This test pins the + * arithmetic on one tier — off-peak reproduces 14.4667, peak reproduces 28.9335 — + * and leaves the scope difference to the UI, which says so. + */ +test('costOf multiplies each token bucket by its own rate', () => { + const usage = { inputTokens: 27849720, outputTokens: 6841763, cacheReadTokens: 2061403776, cacheWriteTokens: 0 }; + const off = { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }; + const peak = { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }; + // Tolerance, not equality: the harness multiplies in its own order and the last + // bits differ (6.9e-18 on a single call). One nanodollar is a million times + // smaller than a cent and still catches a wrong factor. + assert.ok(Math.abs(costOf(usage, off) - 14.466727128) < 1e-9, String(costOf(usage, off))); + assert.ok(Math.abs(costOf(usage, peak) - 28.933454256) < 1e-9, String(costOf(usage, peak))); +}); + +test('costOf reproduces a single-call sample', () => { + // input 50681, output 22231, cacheRead 1983104 at the published off-peak rate. + // The harness stored 0.026890061999999992 for exactly this call. + const record = { inputTokens: 50681, outputTokens: 22231, cacheReadTokens: 1983104, cacheWriteTokens: 0 }; + const off = { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }; + assert.ok(Math.abs(costOf(record, off) - 0.026890061999999992) < 1e-15, String(costOf(record, off))); +}); + +test('costOf splits peak and off-peak buckets per record', () => { + const record = { + tokens: { + peak: { inputTokens: 1000000, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 }, + off: { inputTokens: 1000000, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 }, + }, + }; + const price = { peak: { input: 0.3, output: 1.2, cacheRead: 0.006 }, offPeak: { input: 0.15, output: 0.6, cacheRead: 0.003 } }; + assert.ok(Math.abs(costOf(record, price) - 0.45) < 1e-12); +}); + +test('costOf never throws on a missing record or price', () => { + assert.equal(costOf(null, { input: 1 }), 0); + assert.equal(costOf({ inputTokens: 100 }, null), 0); + assert.equal(costOf({}, {}), 0); +}); + +test('the table the resolver reads is the generated one', () => { + assert.ok(TABLE.models['deepseek-v4.1-flash'], 'the official Flash row must be present'); + assert.ok(Object.keys(TABLE.models).length >= 80); +}); diff --git a/tests/query.test.js b/tests/query.test.js index d37b526..947968c 100644 --- a/tests/query.test.js +++ b/tests/query.test.js @@ -219,7 +219,7 @@ test('a currency query never rewrites the price table', () => { const state = makeState(); const args = { from: Date.UTC(2025, 0, 1), to: Date.UTC(2025, 1, 1) }; query(state, { ...args, currency: 'CNY' }); - assert.equal(state.prices.priceOf({ provider: 'anthropic', model: 'claude' }).inputPerM, 1); + assert.equal(state.prices.priceOf({ provider: 'anthropic', model: 'claude' }).input, 1); // A later USD query must still see the original USD numbers. assert.equal(query(state, { ...args, currency: 'USD' }).total.cost, 0.0105); }); diff --git a/tests/rpc.test.js b/tests/rpc.test.js index 86d9c29..a6e3a8b 100644 --- a/tests/rpc.test.js +++ b/tests/rpc.test.js @@ -11,6 +11,7 @@ import { test } from 'node:test'; import assert from 'node:assert/strict'; import { + INTERNAL_MESSAGE, USAGE_API_PREFIX, USAGE_RPC_CHANNEL, createFetchRoute, @@ -51,19 +52,36 @@ function fakeConnection(overrides = {}) { } /** Fake host context: `inject` runs the callback immediately, like a live fiber. */ -function fakeCtx(connection, { typert } = {}) { +function fakeCtx(connection, { typert, logger = true, noProvide = false } = {}) { const seen = {}; - return { + const logs = []; + const recorder = logger === false ? undefined : { + warn: (message) => logs.push({ level: 'warn', message }), + error: (message) => logs.push({ level: 'error', message }), + }; + const provided = []; + const ctx = { seen, + connection, + logs, + provided, get(name) { - return name === 'typertGateway' ? typert : undefined; + if (name === 'typert') return typert; + if (name === 'logger') return recorder; + return undefined; }, + provide: noProvide ? undefined : (name, value) => { provided.push({ name, value }); return () => {}; }, inject(deps, callback) { + // Declared dependencies fire synchronously in this fake; the child ctx + // sees the same services as the parent (which is what cordis does for an + // active service), so one recorder is enough. seen.deps = deps; + seen.depsHistory = (seen.depsHistory || []).concat([deps]); seen.connectionCtx = { connection }; - callback(seen.connectionCtx); + callback(ctx); }, }; + return ctx; } /** Capture console.warn while a block runs. */ @@ -83,7 +101,7 @@ test('fetchRoutePath keeps every route below Connection\'s /api mount', () => { assert.equal(fetchRoutePath('query'), USAGE_API_PREFIX + '/query'); assert.equal(fetchRoutePath('query'), '/api/usage/query'); // connection.fetch.register() rejects any route outside /api. - assert.match(fetchRoutePath('client-source'), /^\/api\/usage\/[A-Za-z0-9_$.-]+$/); + assert.match(fetchRoutePath('pricing'), /^\/api\/usage\/[A-Za-z0-9_$.-]+$/); }); test('registerRPC mounts one POST Fetch route per endpoint (0.2.x transport)', async () => { @@ -120,13 +138,14 @@ test('registerRPC survives a throwing legacy registration when Fetch routes moun }, }, }); - const warnings = await captureWarnings(async () => { - registerRPC(fakeCtx(connection.value), HANDLERS); + const ctx = fakeCtx(connection.value); + await captureWarnings(async () => { + registerRPC(ctx, HANDLERS); }); assert.equal(connection.routes.length, 2); - // A mounted Fetch registry already carries the channel: stay quiet. - assert.deepEqual(warnings, []); + // A mounted Fetch registry already carries the channel: no mount failure. + assert.deepEqual(ctx.logs.filter((line) => /failed to mount/.test(line.message)), []); }); test('registerRPC warns when no transport could be mounted at all', async () => { @@ -138,11 +157,29 @@ test('registerRPC warns when no transport could be mounted at all', async () => }, }, }); + const ctx = fakeCtx(connection.value); const warnings = await captureWarnings(async () => { - registerRPC(fakeCtx(connection.value), HANDLERS); + registerRPC(ctx, HANDLERS); + }); + // The native channel carries it: nothing is written to the console. + assert.deepEqual(warnings, []); + const failures = ctx.logs.filter((line) => /failed to mount/.test(line.message)); + assert.equal(failures.length, 1); + assert.match(failures[0].message, /failed to mount \/usage RPC channel/); +}); + +test('without a logger the mount failure still reaches the console', async () => { + // A composition with no logger must not swallow the failure: the fallback + // exists so a missing service is visible, not so it is silent. + const connection = fakeConnection({ + fetch: undefined, + rpc: { handle() { throw new Error('no webServer'); } }, + }); + const warnings = await captureWarnings(async () => { + registerRPC(fakeCtx(connection.value, { logger: false }), HANDLERS); }); - assert.equal(warnings.length, 1); - assert.match(warnings[0], /failed to mount \/usage RPC channel/); + const failures = warnings.filter((line) => /failed to mount/.test(line)); + assert.equal(failures.length, 1); }); test('fetch route decodes JSON args and returns the RPC result envelope', async () => { @@ -183,10 +220,15 @@ test('dispatch converts unknown endpoints and thrown handlers into results', asy assert.deepEqual(await dispatch(HANDLERS, 'nope', null), errorResult('unknown endpoint: nope', 'bad-request')); - const body = await dispatch(throwing, 'boom', null); + const logged = []; + const body = await dispatch(throwing, 'boom', null, (message) => logged.push(message)); assert.equal(body.ok, false); assert.equal(body.error.code, 'internal'); - assert.equal(body.error.message, 'handler exploded'); + // The page gets a stable, safe line; the raw error goes to the host log. + assert.equal(body.error.message, INTERNAL_MESSAGE); + assert.ok(!body.error.message.includes('handler exploded'), 'the raw error must not reach the caller'); + assert.equal(logged.length, 1); + assert.ok(logged[0].includes('handler exploded'), logged[0]); }); test('a dynamic-plugin run keeps using harness.handle', async () => { @@ -202,15 +244,40 @@ test('a dynamic-plugin run keeps using harness.handle', async () => { } }); -test('a Typert gateway exposes the channel without touching Connection', async () => { +test('the plugin joins the native typert Remote channel when the host has one', async () => { const registered = []; - const typert = { register: (channel, endpoints) => registered.push({ channel, endpoints }) }; + const typert = { register: (contribution) => { registered.push(contribution); return () => {}; } }; const connection = fakeConnection(); - registerRPC(fakeCtx(connection.value, { typert }), HANDLERS); + const ctx = fakeCtx(connection.value, { typert }); + registerRPC(ctx, HANDLERS); + + // The receiver service is what the gateway resolves descriptor.service on. + assert.equal(ctx.provided.length, 1); + assert.equal(ctx.provided[0].name, 'dsh-plugin-usage'); + const receiver = ctx.provided[0].value; + assert.equal(typeof receiver.query, 'function'); + assert.equal(typeof receiver.prices, 'function'); + assert.deepEqual(receiver.typertRemote.serviceKey, 'dsh-plugin-usage'); + assert.deepEqual(receiver.typertRemote.namespace, 'dsh-plugin-usage'); + assert.equal(receiver.typertRemote.service, receiver); + assert.deepEqual(await receiver.query({ from: 'x' }), { echo: { from: 'x' }, kind: 'query' }); + // …and the face is registered as a typert contribution, not a 2-arg call. assert.equal(registered.length, 1); - assert.equal(registered[0].channel, 'usage'); - assert.deepEqual(Object.keys(registered[0].endpoints), ['query', 'prices']); - assert.deepEqual(connection.routes, []); + assert.equal(registered[0].package, 'dsh-plugin-usage'); + assert.equal(registered[0].face, 'host'); + assert.deepEqual(registered[0].invocations.map((i) => i.method).sort(), ['prices', 'query']); + // Both channels stay mounted: Remote is preferred, Fetch is the fallback. + assert.deepEqual(connection.routes.map((route) => route.path).sort(), ['/api/usage/prices', '/api/usage/query']); +}); + +test('without a typert service the plugin keeps the Fetch routes and says which one it uses', async () => { + const connection = fakeConnection(); + const ctx = fakeCtx(connection.value, { typert: undefined }); + registerRPC(ctx, HANDLERS); + assert.deepEqual(connection.routes.map((route) => route.path).sort(), ['/api/usage/prices', '/api/usage/query']); + // The choice is reported, not swallowed: a support log names the channel. + assert.equal(ctx.logs.length, 1); + assert.match(ctx.logs[0].message, /Fetch \(no typert registry/); }); diff --git a/tests/scan.test.js b/tests/scan.test.js index 92867b0..bec1c0d 100644 --- a/tests/scan.test.js +++ b/tests/scan.test.js @@ -135,7 +135,7 @@ test('runBackfill folds persisted sessions with 0.2.x snapshots and stores the r close: async () => {}, }), }; - await runBackfill(ctxWith((name) => (name === 'sessionPersistence' ? persistence : undefined)), state); + await runBackfill(ctxWith((name) => (name === 'sessionPersistence' ? persistence : undefined)), state, { cache: false }); assert.equal(state.records.length, 2); assert.equal(state.watermarks.get('persisted-1'), 1); @@ -161,8 +161,8 @@ test('an unchanged revision is not re-read on the next pass', async () => { }), }; const ctx = ctxWith((name) => (name === 'sessionPersistence' ? persistence : undefined)); - await scanPersisted(ctx, state); - await scanPersisted(ctx, state); + await scanPersisted(ctx, state, { cache: false }); + await scanPersisted(ctx, state, { cache: false }); assert.equal(reads, 1); }); @@ -181,7 +181,7 @@ test('a shrunk log resets the watermark instead of stalling forever', async () = close: async () => {}, }), }; - await runBackfill(ctxWith((name) => (name === 'sessionPersistence' ? persistence : undefined)), state); + await runBackfill(ctxWith((name) => (name === 'sessionPersistence' ? persistence : undefined)), state, { cache: false }); assert.deepEqual(offsets, [0]); assert.equal(state.records.length, 2); assert.equal(state.watermarks.get('s'), 1); @@ -198,7 +198,7 @@ test('readSessionEvents falls back to a legacy readFrom backend', async () => { test('runBackfill reports done when persistence is unavailable', async () => { const state = makeState(); const calls = []; - await runBackfill(ctxWith(() => undefined), state, { onDone: (progress) => calls.push(progress) }); + await runBackfill(ctxWith(() => undefined), state, { cache: false, onDone: (progress) => calls.push(progress) }); assert.equal(state.backfill.status, 'done'); assert.deepEqual(calls, [{ status: 'done', total: 0, done: 0 }]); }); diff --git a/tests/settings.test.js b/tests/settings.test.js index 74fe57c..6f7e306 100644 --- a/tests/settings.test.js +++ b/tests/settings.test.js @@ -1,99 +1,151 @@ /** - * P2-12: node:test unit coverage for src/host/settings.js. + * The price store: user rows, both spellings, and the ladder behind it. + * + * Two contracts are worth pinning here because the store used to have a second + * personality (exact-key lookup when nothing was injected) and both personalities + * answered differently for the same model. There is one now. */ import { test } from 'node:test'; import assert from 'node:assert/strict'; + import { DEFAULT_CURRENCY, - DEFAULT_PRICES, + configPrices, createPriceStore, - mergePrices, + normalizePrices, } from '../src/host/settings.js'; +import { ratesOf, resolvePrice } from '../src/host/pricing.js'; + +/** Beijing wall-clock -> epoch ms. */ +function bj(date, time) { + const [y, m, d] = date.split('-').map(Number); + const [hh, mm] = time.split(':').map(Number); + return Date.UTC(y, m - 1, d, hh, mm) - 8 * 3_600_000; +} -const base = () => createPriceStore(DEFAULT_PRICES, DEFAULT_CURRENCY); -const FULL_ZERO = { inputPerM: 0, outputPerM: 0, cacheReadPerM: 0, cacheWritePerM: 0 }; +const oneMillion = { inputTokens: 1_000_000, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 }; -test('priceOf falls back to the bare model price', () => { - const store = base(); - assert.deepEqual(store.priceOf({ model: 'deepseek-chat' }), DEFAULT_PRICES['deepseek-chat']); - assert.deepEqual(store.priceOf({ provider: '', model: 'deepseek-chat' }), DEFAULT_PRICES['deepseek-chat']); - assert.equal(store.priceOf({ model: 'nope' }), undefined); +test('normalizePrices accepts both spellings and coerces every field', () => { + const rows = normalizePrices({ + 'relay/a': { inputPerM: '2.5', outputPerM: '3', cacheReadPerM: 'x', cacheWritePerM: null }, + 'relay/b': { input: 1, output: 2, cacheRead: 3, cacheWrite: 4 }, + broken: null, + 'also-broken': 'nope', + }); + assert.deepEqual(rows['relay/a'], { input: 2.5, output: 3, cacheRead: 0, cacheWrite: 0 }); + assert.deepEqual(rows['relay/b'], { input: 1, output: 2, cacheRead: 3, cacheWrite: 4 }); + assert.equal(Object.prototype.hasOwnProperty.call(rows, 'broken'), false); + assert.equal(Object.prototype.hasOwnProperty.call(rows, 'also-broken'), false); + assert.deepEqual(normalizePrices(undefined), {}); + assert.deepEqual(normalizePrices([1, 2]), {}); }); -test('priceOf prefers the provider/model composite over the bare model', () => { - const store = base(); - const composite = { inputPerM: 9, outputPerM: 8, cacheReadPerM: 7, cacheWritePerM: 6 }; - store.setPrices({ 'acme/deepseek-chat': composite }); - assert.deepEqual(store.priceOf({ provider: 'acme', model: 'deepseek-chat' }), composite); - assert.deepEqual(store.priceOf({ provider: 'other', model: 'deepseek-chat' }), DEFAULT_PRICES['deepseek-chat']); - assert.deepEqual(store.priceOf({ model: 'deepseek-chat' }), DEFAULT_PRICES['deepseek-chat']); +test('configPrices round-trips normalizePrices', () => { + const canonical = { 'relay/a': { input: 1, output: 2, cacheRead: 3, cacheWrite: 4 } }; + assert.deepEqual(normalizePrices(configPrices(canonical)), canonical); }); -test('hasPrice reports explicit entries, composite first, zero prices included', () => { - const store = base(); - store.setPrices({ 'acme/only-composite': FULL_ZERO }); - assert.ok(store.hasPrice({ provider: 'acme', model: 'deepseek-chat' })); // composite wins - assert.ok(store.hasPrice({ provider: 'other', model: 'deepseek-chat' })); // bare fallback - assert.ok(store.hasPrice({ provider: 'acme', model: 'only-composite' })); // composite-only entry - assert.ok(!store.hasPrice({ model: 'only-composite' })); // no bare entry exists - assert.ok(!store.hasPrice({ provider: 'acme', model: 'missing' })); - assert.ok(!store.hasPrice({ model: 'unknown' })); - // A zero-value price entry still counts as priced. - store.setPrices({ 'free-model': { inputPerM: 0, outputPerM: 0 } }); +test('the store resolves a table id through the ladder, not by exact key', () => { + const store = createPriceStore({}, DEFAULT_CURRENCY); + // A session id and a table id spell the same model differently. + for (const id of ['deepseek-flash', 'deepseek-v4.1-flash', 'group/auto-deepseek-v4-1-flash']) { + const hit = store.lookup({ model: id }); + assert.equal(hit.state, 'exact', `${id} resolves`); + assert.ok(hit.price !== null); + } + assert.equal(store.lookup({ model: 'no-such-model-anywhere' }).state, 'none'); +}); + +test('a user row still wins over the table, composite before bare id', () => { + const store = createPriceStore({ + 'acme/deepseek-flash': { inputPerM: 9, outputPerM: 8, cacheReadPerM: 7, cacheWritePerM: 6 }, + }, DEFAULT_CURRENCY); + const own = store.lookup({ provider: 'acme', model: 'deepseek-flash' }); + assert.equal(own.how, 'custom'); + assert.equal(ratesOf(own.price, 'peak').input, 9); + // Another provider gets the table's price, not acme's. + const table = store.lookup({ provider: 'other', model: 'deepseek-flash' }); + assert.equal(table.how, 'normalized'); + assert.equal(ratesOf(table.price, 'peak').input, 0.3); +}); + +test('hasPrice counts zero rows and rejects unknown ids', () => { + const store = createPriceStore({ 'free-model': { inputPerM: 0, outputPerM: 0 } }, DEFAULT_CURRENCY); assert.ok(store.hasPrice({ model: 'free-model' })); + assert.ok(store.hasPrice({ model: 'deepseek-flash' })); + assert.ok(!store.hasPrice({ model: 'unknown' })); + assert.ok(!store.hasPrice(null)); }); -test('costOf computes per-million token cost across all four fields', () => { - const store = base(); - store.setPrices({ 'acme/m': { inputPerM: 1, outputPerM: 2, cacheReadPerM: 3, cacheWritePerM: 4 } }); - store.setPrices({ 'free-zero': { inputPerM: 0, outputPerM: 0 } }); - const r = { - provider: 'acme', model: 'm', - inputTokens: 1000000, outputTokens: 500000, - cacheReadTokens: 200000, cacheWriteTokens: 100000, +test('costOf bills each token bucket at its own tier', () => { + const store = createPriceStore({}, DEFAULT_CURRENCY); + const record = { + provider: 'deepseek-account', model: 'deepseek-flash', + tokens: { peak: { ...oneMillion }, off: { ...oneMillion } }, }; - assert.equal(store.costOf(r), 3); - assert.equal(store.costOf({ ...r, model: 'nope' }), 0); // missing price -> 0 - assert.equal( - store.costOf({ provider: 'acme', model: 'm', inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 }), - 0, - ); - assert.equal(store.costOf({ model: 'free-zero', inputTokens: 100, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 }), 0); + // 0.30 peak + 0.15 off-peak per 1M input tokens, from the shipped table. + assert.ok(Math.abs(store.costOf(record) - 0.45) < 1e-12); }); -test('setPrices coerces number fields and ignores non-objects', () => { - const store = base(); - store.setPrices({ m1: { inputPerM: '2.5', outputPerM: '3', cacheReadPerM: 'x', cacheWritePerM: null } }); - assert.deepEqual(store.priceOf({ model: 'm1' }), { inputPerM: 2.5, outputPerM: 3, cacheReadPerM: 0, cacheWritePerM: 0 }); +test('costOf prices a record without buckets at its own instant', () => { + const store = createPriceStore({}, DEFAULT_CURRENCY); + const base = { provider: 'deepseek-account', model: 'deepseek-flash', ...oneMillion }; + assert.equal(store.costOf({ ...base, time: bj('2026-10-19', '10:00') }), 0.3); + assert.equal(store.costOf({ ...base, time: bj('2026-10-19', '20:00') }), 0.15); +}); + +test('setPrices merges, coerces and ignores non-objects', () => { + const store = createPriceStore({}, DEFAULT_CURRENCY); + store.setPrices({ m1: { inputPerM: '2.5', outputPerM: '3' } }); + assert.deepEqual(store.snapshot().prices, { m1: { input: 2.5, output: 3, cacheRead: 0, cacheWrite: 0 } }); const before = store.snapshot(); - for (const bad of [null, undefined, 'nope', 42, [1, 2], {}]) { - store.setPrices(bad); - } + for (const bad of [null, undefined, 'nope', 42, [1, 2], {}]) store.setPrices(bad); assert.deepEqual(store.snapshot(), before); }); test('setCurrency accepts non-empty strings and ignores everything else', () => { - const store = createPriceStore(DEFAULT_PRICES); // default currency + const store = createPriceStore({}); assert.equal(store.currency, DEFAULT_CURRENCY); store.setCurrency('$'); assert.equal(store.currency, '$'); - store.setCurrency(''); - assert.equal(store.currency, '$'); - store.setCurrency(123); + for (const bad of ['', 123, null]) store.setCurrency(bad); assert.equal(store.currency, '$'); - store.setCurrency(null); - assert.equal(store.currency, '$'); - assert.equal(createPriceStore(DEFAULT_PRICES, '€').currency, '€'); }); -test('mergePrices layers configured prices over the defaults', () => { - assert.deepEqual(mergePrices(undefined), DEFAULT_PRICES); - assert.deepEqual(mergePrices({}), DEFAULT_PRICES); - const merged = mergePrices({ - 'deepseek-v4.1-flash-1017': { inputPerM: 0, outputPerM: 1, cacheReadPerM: 0, cacheWritePerM: 0 }, +test('a confirmed match outranks the ladder, and only a live target counts', () => { + const store = createPriceStore({}, DEFAULT_CURRENCY, { + matches: { 'acme/odd-id': 'deepseek-v4-pro' }, }); - assert.deepEqual(merged['deepseek-v4.1-flash-1017'], { inputPerM: 0, outputPerM: 1, cacheReadPerM: 0, cacheWritePerM: 0 }); - assert.deepEqual(merged['deepseek-chat'], DEFAULT_PRICES['deepseek-chat']); // untouched default survives - // The input table is never mutated. - assert.deepEqual(DEFAULT_PRICES['deepseek-chat'], { inputPerM: 0.27, outputPerM: 1.1, cacheReadPerM: 0.07, cacheWritePerM: 0.27 }); + const hit = store.lookup({ provider: 'acme', model: 'odd-id' }); + assert.equal(hit.how, 'confirmed'); + assert.equal(hit.state, 'custom'); + assert.equal(hit.target, 'deepseek-v4-pro'); + + // The store reads the getter on every lookup, so a commit is visible at once. + let live = {}; + const mutable = createPriceStore({}, DEFAULT_CURRENCY, { matches: () => live }); + assert.equal(mutable.lookup({ model: 'odd-id' }).state, 'none'); + live = { 'odd-id': 'deepseek-v4-pro' }; + assert.equal(mutable.lookup({ model: 'odd-id' }).state, 'custom'); +}); + +test('a confirmed target that left the table is reported, not repriced', () => { + const store = createPriceStore({}, DEFAULT_CURRENCY, { matches: { 'odd-id': 'retired-model' } }); + const hit = store.lookup({ model: 'odd-id' }); + assert.equal(hit.price, null); + assert.equal(hit.state, 'none'); + assert.equal(hit.target, 'retired-model'); +}); + +test('the store and the ladder answer the same question identically', () => { + // The regression this guards: propose used to re-derive its own verdict from a + // field the ladder never set, so the dialog said 未匹配 on billed models. + const store = createPriceStore({}, DEFAULT_CURRENCY); + for (const id of ['deepseek-flash', 'deepseek-v4.1-flash', 'deepseek-chat', 'no-such-model']) { + const fromStore = store.lookup({ model: id }); + const fromLadder = resolvePrice({ model: id }); + assert.equal(fromStore.how, fromLadder.how, id); + assert.equal(fromStore.state, fromLadder.state, id); + assert.equal(fromStore.target, fromLadder.target, id); + } }); diff --git a/tests/state.test.js b/tests/state.test.js index 8a22915..a50b49a 100644 --- a/tests/state.test.js +++ b/tests/state.test.js @@ -10,7 +10,7 @@ test('createState exposes the full runtime capsule shape', () => { const state = createState(prices); assert.deepEqual( Object.keys(state).sort(), - ['backfill', 'index', 'lastSample', 'prices', 'records', 'revisions', 'route', 'watermarks'], + ['backfill', 'index', 'lastPass', 'lastSample', 'matchMap', 'peakOf', 'prices', 'records', 'revisions', 'route', 'watermarks'], ); assert.deepEqual(state.records, []); assert.ok(state.watermarks instanceof Map); @@ -18,8 +18,15 @@ test('createState exposes the full runtime capsule shape', () => { assert.ok(state.lastSample instanceof Map); assert.ok(state.route instanceof Map); assert.equal(state.index, null); + // Injected by apply(): the price-tier test and the user's confirmed matches. + // Both default to "not wired", which is the behaviour the fold tests rely on. + assert.equal(state.peakOf, null); + assert.deepEqual(state.matchMap, {}); assert.equal(state.prices, prices); - assert.deepEqual(state.backfill, { status: 'idle', total: 0, done: 0 }); + // `started` is the lazy-start latch (see startBackfillOnDemand): the pass runs + // on the first query, not at activation, so the cache-loading window is the + // one the user can actually see. + assert.deepEqual(state.backfill, { status: 'idle', total: 0, done: 0, started: false }); }); test('createState instances are isolated from each other', () => { @@ -36,5 +43,5 @@ test('createState instances are isolated from each other', () => { assert.equal(b.revisions.size, 0); assert.equal(b.lastSample.size, 0); assert.equal(b.route.size, 0); - assert.deepEqual(b.backfill, { status: 'idle', total: 0, done: 0 }); + assert.deepEqual(b.backfill, { status: 'idle', total: 0, done: 0, started: false }); }); diff --git a/tests/tier-billing.test.js b/tests/tier-billing.test.js new file mode 100644 index 0000000..b1aa60e --- /dev/null +++ b/tests/tier-billing.test.js @@ -0,0 +1,162 @@ +/** + * Peak / off-peak billing, end to end: the fold splits a settlement by the tier + * its own timestamp fell into, and the store prices each bucket with the rate of + * that tier. + * + * Why this file exists: the harness reports one aggregate per model, and DeepSeek + * bills by the instant of each call. Measured on this machine, one model mixed + * ~42% peak and ~58% off-peak inside a single month, so any single-rate estimate + * is off by up to 2x — in a direction nobody can predict from the aggregate. + */ +import test from 'node:test'; +import assert from 'node:assert/strict'; + +import { createState } from '../src/host/state.js'; +import { foldEvent } from '../src/host/fold.js'; +import { createPriceStore } from '../src/host/settings.js'; +import { costOf, resolvePrice } from '../src/host/pricing.js'; +import { isPeak } from '../src/host/peak.js'; +import { peakAt } from '../src/host/index.js'; + +/** Beijing wall-clock -> epoch ms. */ +function bj(date, time) { + const [y, m, d] = date.split('-').map(Number); + const [hh, mm] = time.split(':').map(Number); + return Date.UTC(y, m - 1, d, hh, mm) - 8 * 3_600_000; +} + +/** A settlement carrying `usage`, attributed to `provider/model`. */ +function message(seq, atMs, usage, model = 'deepseek-flash', provider = 'deepseek-account') { + return { + seq, + time: atMs, + type: 'assistant/message', + data: { turn: 1, step: seq, usage, message: { source: { provider, model } } }, + }; +} + +const usage = (inputTokens) => ({ inputTokens, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 }); + +test('the live tier rule is the holiday-aware one, not the bare window test', () => { + // The fold asks the state capsule for a predicate. That predicate must know + // the calendar: it once called isPeak() without one, so every public holiday + // inside a window was billed at the peak rate while the price display (which + // did use the calendar) showed it as off-peak. + assert.equal(peakAt(bj('2026-10-29', '10:00')), true, 'an ordinary Thursday window is peak'); + assert.equal(peakAt(bj('2026-10-01', '10:00')), false, '2026-10-01 is National Day'); + assert.equal(peakAt(bj('2026-10-01', '10:00')), isPeak(bj('2026-10-01', '10:00')), + 'the wired predicate and the rule must agree'); + assert.equal(peakAt(bj('2026-10-31', '10:00')), false, 'Saturday stays off-peak'); +}); + +/** An official two-tier price, shaped like a reference-table DeepSeek row. */ +const TWO_TIER = { + peak: { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }, + offPeak: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }, +}; + +test('a settlement inside a peak window lands in the peak bucket', () => { + const state = createState(null); + state.peakOf = (atMs) => isPeak(atMs, () => false); + const rec = foldEvent(state, 's1', message(1, bj('2026-10-19', '10:00'), usage(1_000_000))); + assert.ok(rec.tokens.peak, 'the peak bucket must exist'); + assert.equal(rec.tokens.off, undefined, 'nothing should be counted as off-peak'); + assert.equal(rec.tokens.peak.inputTokens, 1_000_000); + // The flat fields stay: summaries and the token table never change shape. + assert.equal(rec.inputTokens, 1_000_000); +}); + +test('a settlement outside the window lands in the off-peak bucket', () => { + const state = createState(null); + state.peakOf = (atMs) => isPeak(atMs, () => false); + const rec = foldEvent(state, 's1', message(1, bj('2026-10-19', '20:00'), usage(1_000_000))); + assert.ok(rec.tokens.off); + assert.equal(rec.tokens.peak, undefined); +}); + +test('the tier follows the event, not the query time', () => { + const state = createState(null); + state.peakOf = (atMs) => isPeak(atMs, () => false); + const peakRec = foldEvent(state, 's1', message(1, bj('2026-10-19', '09:30'), usage(1_000_000))); + const offRec = foldEvent(state, 's2', message(2, bj('2026-10-19', '21:30'), usage(1_000_000))); + assert.deepEqual(Object.keys(peakRec.tokens), ['peak']); + assert.deepEqual(Object.keys(offRec.tokens), ['off']); +}); + +test('a re-reported settlement replaces its bucket instead of doubling it', () => { + const state = createState(null); + state.peakOf = (atMs) => isPeak(atMs, () => false); + const at = bj('2026-10-19', '10:00'); + foldEvent(state, 's1', message(1, at, usage(1_000_000))); + const second = message(2, at, usage(500_000)); + second.data.turn = 1; + second.data.step = 1; // same (turn, step) as the first settlement's own step + foldEvent(state, 's1', second); + assert.equal(state.records.length, 1, 'the replacement slot keeps one record'); + assert.equal(state.records[0].tokens.peak.inputTokens, 500_000, 'the later sample wins'); +}); + +test('without a peakOf the record keeps no buckets (the old shape)', () => { + const state = createState(null); + const rec = foldEvent(state, 's1', message(1, bj('2026-10-19', '10:00'), usage(10))); + assert.equal(rec.tokens, undefined); +}); + +test('a mixed day is billed as the sum of its two tiers', () => { + const state = createState(null); + state.peakOf = (atMs) => isPeak(atMs, () => false); + foldEvent(state, 's1', message(1, bj('2026-10-19', '10:00'), usage(1_000_000))); + foldEvent(state, 's1', message(2, bj('2026-10-19', '20:00'), usage(1_000_000))); + const billed = state.records.map((r) => costOf(r, TWO_TIER)); + assert.equal(billed[0], 0.3, '1M input at the peak rate'); + assert.equal(billed[1], 0.15, '1M input at the off-peak rate'); + // A float sum of two exact halves is 0.44999999999999996; the point of the + // assertion is that neither bucket is priced twice or dropped. + assert.ok(Math.abs(billed[0] + billed[1] - 0.45) < 1e-12, String(billed[0] + billed[1])); +}); + +test('the store has exactly one policy: injecting another changes nothing', () => { + // The store used to accept `resolve` / `costFor` hooks, which is how a second + // pricing policy survived for a release (exact-key lookup when nothing was + // injected). They are gone; passing them must not resurrect a second answer. + const flat = { model: 'deepseek-flash', inputTokens: 1_000_000, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 }; + const plain = createPriceStore({}, '¥'); + const injected = createPriceStore({}, '¥', { + resolve: () => ({ price: { inputPerM: 99, outputPerM: 0, cacheReadPerM: 0, cacheWritePerM: 0 }, how: 'custom', target: null }), + costFor: () => 42, + }); + assert.equal(plain.costOf(flat), injected.costOf(flat)); + assert.equal(plain.lookup(flat).how, injected.lookup(flat).how); +}); + +test('an unpriced record still costs nothing and is reported as unmatched', () => { + const state = createState(null); + state.peakOf = () => true; + const store = createPriceStore({}, '¥'); + const rec = foldEvent(state, 's1', message(1, bj('2026-10-19', '10:00'), usage(100), 'no-such-model')); + assert.equal(store.costOf(rec), 0); + assert.equal(store.hasPrice(rec), false); + assert.equal(store.lookup(rec).how, 'unmatched'); +}); + +test('the shipped table bills both live Flash ids at two tiers through the store', () => { + // Regression gate. `deepseek-flash` used to alias onto Zen's single-price row, + // and that number is DeepSeek's PEAK rate, so every off-peak call was billed at + // double while the dialog reported a confident 按名称归一 hit. + const store = createPriceStore({}, '¥'); + const oneM = (at, model) => ({ + time: at, + provider: 'deepseek-account', + model, + inputTokens: 1_000_000, + outputTokens: 0, + cacheReadTokens: 0, + cacheWriteTokens: 0, + }); + for (const model of ['deepseek-flash', 'deepseek-v4.1-flash']) { + assert.equal(store.costOf(oneM(bj('2026-10-19', '10:00'), model)), 0.3, `${model} at peak`); + assert.equal(store.costOf(oneM(bj('2026-10-19', '20:00'), model)), 0.15, `${model} at off-peak`); + } + // A retired name rides the alias table onto the same two-tier row. + assert.equal(store.costOf(oneM(bj('2026-10-19', '20:00'), 'deepseek-chat')), 0.15); +}); diff --git a/tests/typert.test.js b/tests/typert.test.js new file mode 100644 index 0000000..26c00b0 --- /dev/null +++ b/tests/typert.test.js @@ -0,0 +1,154 @@ +/** + * The native Remote contract, checked structurally. + * + * The authoritative gate is `npm run verify:typert`, which runs the OFFICIAL + * `validateTypertManifest` from the installed harness. It needs the archive, so + * it cannot run in CI; the rules below are the same requirements plus the ones + * the loader does NOT check but the gateway does (namespace = package name, the + * receiver binding) — each cites where it comes from. + */ +import test from 'node:test' +import assert from 'node:assert/strict' + +import { + USAGE_SERVICE, + buildInvocation, + createReceiver, + registerTypert, + typertContribution, +} from '../src/host/typert.js' + +const ENDPOINTS = ['query', 'prices', 'pricing', 'contract'] +const HANDLERS = new Map([ + ['query', (args) => ({ kind: 'query', args })], + ['prices', () => ({ currency: 'CNY' })], + ['pricing', (args) => ({ kind: 'pricing', args })], + ['contract', () => ({ package: USAGE_SERVICE, names: [] })], +]) + +test('the namespace is the package name, because the client key is remote.', () => { + // dsh-api-gateway client `remoteServiceKey(namespace) = 'remote.' + namespace`. + // Writing an endpoint name here mounts a service nobody can reach. + const contribution = typertContribution(ENDPOINTS) + assert.equal(USAGE_SERVICE, 'dsh-plugin-usage') + assert.equal(contribution.package, USAGE_SERVICE) + for (const invocation of contribution.invocations) { + assert.equal(invocation.namespace, USAGE_SERVICE) + assert.equal(invocation.service, USAGE_SERVICE) + } +}) + +test('the contribution has the shape the loader validates', () => { + const contribution = typertContribution(ENDPOINTS) + assert.equal(contribution.face, 'host') + assert.ok(Array.isArray(contribution.schemas)) + assert.deepEqual(Object.keys(contribution.model).sort(), ['events', 'objects', 'services']) + for (const key of Object.keys(contribution.model)) { + assert.ok(Array.isArray(contribution.model[key]), key + ' must be an array') + } + assert.equal(contribution.invocations.length, ENDPOINTS.length) + // Wire names: the registry accepts only [A-Za-z0-9_$. -] for namespace/method. + for (const invocation of contribution.invocations) { + assert.match(invocation.method, /^[A-Za-z0-9_$.-]+$/) + assert.match(invocation.id, /^[A-Za-z0-9_$./#-]+$/) + } + // Ids are the uniqueness key of a face. + const ids = contribution.invocations.map((i) => i.id) + assert.equal(new Set(ids).size, ids.length) +}) + +test('every parameter and every result uses a strict codec', () => { + // requireStrictCodec: mode === 'strict', non-empty typeSymbol, create(). + for (const invocation of typertContribution(ENDPOINTS).invocations) { + assert.equal(invocation.parameters.length, 1, 'the gateway calls methods positionally: one JSON arg') + const parameter = invocation.parameters[0] + assert.equal(parameter.wire, 'args') + // `source` is only ever 'json' or 'lookup'. + assert.equal(parameter.source, 'json') + assert.equal(parameter.codec.mode, 'strict') + assert.ok(parameter.codec.typeSymbol.length > 0) + assert.equal(typeof parameter.codec.create, 'function') + assert.equal(typeof parameter.codec.create().parse, 'function') + + assert.equal(invocation.result.mode, 'strict') + assert.ok(invocation.result.typeSymbol.length > 0) + assert.equal(typeof invocation.result.create, 'function') + // The gateway skips its own result handling without an encode(). + assert.equal(typeof invocation.result.encode, 'function') + } +}) + +test('sourceLocation names a real file and positive coordinates', () => { + const invocation = buildInvocation('query') + assert.equal(invocation.sourceLocation.file, 'src/host/typert.js') + assert.ok(Number.isInteger(invocation.sourceLocation.line) && invocation.sourceLocation.line >= 1) + assert.ok(Number.isInteger(invocation.sourceLocation.column) && invocation.sourceLocation.column >= 1) +}) + +test('a non-wire-safe endpoint name is refused before it reaches the registry', () => { + assert.throws(() => typertContribution(['ok-name', 'not ok']), /wire-safe/) + assert.throws(() => typertContribution([]), /at least one endpoint/) +}) + +test('the receiver answers every endpoint and carries the binding the gateway checks', async () => { + const receiver = createReceiver(HANDLERS) + assert.equal(receiver.typertRemote.service, receiver) + assert.equal(receiver.typertRemote.serviceKey, USAGE_SERVICE) + assert.equal(receiver.typertRemote.namespace, USAGE_SERVICE) + assert.ok(Object.isFrozen(receiver.typertRemote)) + // Methods are keyed verbatim, so a hyphenated endpoint is reachable. + assert.deepEqual(await receiver.query({ a: 1 }), { kind: 'query', args: { a: 1 } }) + // A missing argument must not become `undefined` inside a handler. + assert.deepEqual(await receiver.pricing(undefined), { kind: 'pricing', args: {} }) +}) + +test('registration reports the channel it chose, and never throws', () => { + const registered = [] + const makeCtx = (services) => ({ + get: (name) => services[name], + ...(services.provide === undefined ? {} : { provide: services.provide }), + }) + + // No typert registry at all: the Fetch routes are the channel, and the reason + // says so (it travels to the dashboard as `channel`). + const noRegistry = registerTypert(makeCtx({}), HANDLERS, () => {}) + assert.equal(noRegistry.ok, false) + assert.equal(noRegistry.transport, 'fetch') + assert.match(noRegistry.reason, /no typert registry/) + + // A registry but no way to provide the receiver service: registering anyway + // would point the client at a channel that cannot answer. + const noProvide = registerTypert(makeCtx({ typert: { register: (c) => registered.push(c) } }), HANDLERS, () => {}) + assert.equal(noProvide.ok, false) + assert.match(noProvide.reason, /cannot provide/) + assert.deepEqual(registered, []) + + // ctx.provide() — the real entry point — is enough on its own. + const provided = [] + const ok = registerTypert(makeCtx({ + typert: { register: (c) => { registered.push(c); return () => {} } }, + provide: (name, value) => { provided.push({ name, value }); return () => {} }, + }), HANDLERS, () => {}) + assert.equal(ok.ok, true) + assert.equal(ok.transport, 'remote') + assert.equal(provided.length, 1) + assert.equal(provided[0].name, 'dsh-plugin-usage') + + // provide() throws: stay on the Fetch path, say why. + const throwing = registerTypert(makeCtx({ + typert: { register: () => {} }, + provide: () => { throw new Error('nope') }, + }), HANDLERS, () => {}) + assert.equal(throwing.ok, false) + assert.match(throwing.reason, /providing the receiver failed: nope/) + + // register() throws: the receiver must be taken back out again. + let disposed = 0 + const rejecting = registerTypert(makeCtx({ + typert: { register: () => { throw new Error('face rejected') } }, + provide: () => () => { disposed += 1 }, + }), HANDLERS, () => {}) + assert.equal(rejecting.ok, false) + assert.equal(disposed, 1, 'a rejected face must not leave the receiver behind') + assert.match(rejecting.reason, /typert rejected the contribution: face rejected/) +}) From 90ea4fa05886c6f10e5c8cc26a5f47d26083d428 Mon Sep 17 00:00:00 2001 From: xinspark <1813967922@qq.com> Date: Sat, 31 Oct 2026 02:11:24 +0800 Subject: [PATCH 3/6] docs: native-transport evidence, release notes for 0.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs/native-transport.md records the two L2 gaps with their counter-proofs (the settings nav icon and the fetch fallback), the fold-cache bypass with the three facts that justify keeping it, and the read-triggers-write trade-off the on-demand scan introduced. CHANGELOG carries one 0.5.0 entry. The local 0.4.1-0.4.8 iterations and the 0.5.1/0.5.2 bumps are folded into it: they were never releases, only local iterations and a workaround for replacing a same-version file: dependency. README's module map lists the modules that exist, and its install section records what was measured: a same-version file: dependency cannot be replaced in this profile (pnpm resolves from the store by the lockfile integrity), and replacing files under a running host is not an option — at 02:00 on 2026-10-31 a hand copy into node_modules was followed 0.8 s later by a host exit with 0xC0000005. --- .gitignore | 6 + CHANGELOG.md | 372 +++++++++++++++++++++++++++++++++++++++ README.md | 107 ++++++++++- docs/native-transport.md | 188 ++++++++++++++++++++ 4 files changed, 665 insertions(+), 8 deletions(-) create mode 100644 docs/native-transport.md diff --git a/.gitignore b/.gitignore index b791200..cc80523 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,9 @@ node_modules/ # build output lib/ +# generator snapshot cache (scripts/gen-prices.mjs --offline) +.cache/ + # logs *.log npm-debug.log* @@ -14,3 +17,6 @@ npm-debug.log* # editor .idea/ .vscode/ + +# packaged tarballs (npm pack) +*.tgz diff --git a/CHANGELOG.md b/CHANGELOG.md index 80d9c87..c4f231e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,56 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - 83 → **87**。新增 `tests/client-dock.test.js`:dock 注册契约(slot 名 / id / order)、 不再注册旧 `stats` 行 ID、`dsh.client.inject` 必须声明 slot 归属模块、pill 的币种符号 必须来自宿主动态解析(防止 USD 视图印出 ¥)。 +## [0.5.0] - 2026-10-31 + +一次发布的累积改动。`0.4.1`–`0.4.8` 是本地开发迭代(未单独发布),逐条明细在文末保留。 + +### Added + +- **参考价目表与逐级匹配**:内置 opencode Zen + DeepSeek 价目(`src/host/prices.js`,由 + `scripts/gen-prices.mjs` 生成),查询走 `resolvePrice` 的唯一阶梯:用户自定义价 → 用户确认的匹配 → + 按名称精确 → 变体(`-free` / `-fast` / `-1017`)→ 模糊;四态由宿主给出,客户端不再二次解释。 +- **峰谷计价**:北京时间 `09:00–12:00`、`14:00–18:00` 为峰时,排除中国大陆法定节假日, + 节假表随用量数据年份顺延;未公布年份显式标注而不是静默丢表。 +- **折叠结果落盘缓存**(`src/host/fold-cache.js`):热启动 **0.08 s**(此前每次重启都要重读 + 404 MB / 1.35 GB 解压,仅解压就 12.5 s)。签名 = 折叠规则版本 + 节假表版本,缓存损坏一律降级全量扫。 +- **图表悬浮卡也显示参考成本**:每日/每小时趋势图(柱状与折线)与年度热力图的提示卡,现在 + 在输入/输出/合计之外给出该时段的参考成本(取自宿主桶里的 `cost`,已按展示币种换算); + 三处卡片抽成同一个 `TipRows`,避免"给一处加字段、另几处漏"。读屏走同一份信息: + `barAria` / `hmTitle` 一并带上 `{cost}`。 +- **悬浮卡里只有「有图例的那几行」带色块**:色块的语义是「这一行对应图例里的哪个颜色」, + 所以 `输入` / `输出` / `总 Token` 有,而 `参考成本` / `调用次数` 没有——它们各留一个 + 10px 无底色的占位(`.tsd-tooltip-dot` 本身不设背景),文字仍与上方对齐。 +- **原生 typert Remote 通道**(`src/host/typert.js`):注册一份原生贡献并提供接收方服务, + `connection.fetch` 的 `/api/usage/*` 常驻兜底;实际通道随每次响应返回(`channel`)。 +- **仪表盘**:按模型明细(可排序)、定价匹配弹窗(四态可改可撤)、年度热力图、币种切换、 + 每日/每小时趋势、未定价调用计数。 +- `prices.yml` 定时重生成价目,`release.yml` 校验版本并创建 Release。 + +### Changed + +- **全量统计改为第一次查询才启动**(`startBackfillOnDemand`):此前在激活时开扫,缓存加载 + (暖 0.78 s / 冷 ~12 s)总在用户打开面板之前完成,加载态永远看不见。代价是"读请求触发写", + 权衡与边界写在 `docs/native-transport.md` §3。 +- **加载态如实反映进度**:统计未完成期间整段骨架屏 + 确定进度条(宽度 = `done/total`)+ + `正在统计 n/N 个会话…`,不再先给半份会往上爬的数字;尊重 `prefers-reduced-motion`。 +- 设置写入全部走 `.volatile()` 字段,重启后自定义价与已确认匹配不再丢失。 + +### Fixed + +- 参考成本为 0 的模型被显示成「未定价」(表格曾自行重算宿主已给出的判定)。 +- 加载骨架比真实卡片少一格(写死 5 格,实际 6 张)。 +- 统计未完成时落到「暂无数据」。 +- **`logSink(...).warn is not a function` 导致进入用量统计即崩溃**(`logSink` 返回的是函数)。 +- `backfill` 计数出现 `{status: done, total: 258, done: 0}`("扫完了"其实读作"一条没扫")。 +- 部分会话列表触发的 `prune()` 误删 257/258 条缓存,导致每次启动重折全量。 +- 法定节假日被按峰时计价、`-free` 行被按付费孪生计价、变体名被判「未匹配」。 + +### Tests + +`npm test` 217 项(宿主行为 + 客户端槽位/加载态接线门);`tests/dialog.test.cjs` 75 项(构建产物); +`npm run verify:typert`(官方 loader 校验 4 个端点)与 `npm run verify:remote`(7 项)为原生契约门。 + ## [0.3.0] - 2026-10-19 @@ -197,3 +247,325 @@ Token 用量统计插件的重要版本:内部架构重构(host 拆分为模 - 无已知安全问题;价格等配置仅经本地 loopback RPC/官方 settings 传输。 [0.2.0]: https://github.com/bennett-dsh/dsh-plugin-usage/compare/v0.1.4...v0.2.0 + +--- + +## 附录:0.5.0 之前的本地迭代(未单独发布) + +这一节是开发过程记录,不属于任何一次发布说明。 + +##### 迭代明细(本地 0.4.x 迭代,均未单独发布) + + +#### 0.4.8 · 2026-10-31 + +##### Fixed +- **按需启动的全量扫描补上 rejection 兜底**(`startBackfillOnDemand`):`void runBackfill(...)` + 此前没有 `.catch`,而 `runBackfill` 自己的 `try` 要在 `ctx.get('sessionPersistence')` 之后才开始 —— + 上下文探测一旦抛错,就变成未处理的 rejection,被宿主判为致命(与 0.4.7 修的 `logSink` 崩溃同一类, + 且同样由"打开用量统计"这一读请求触发)。现在 `.catch` 里落 `status='done'` 并记一行日志。 + 门:`tests/lazy-backfill.test.js` 新增「`ctx.get` 抛错也不能让读请求弄死进程」(变异验证: + 去掉 `.catch` 立即变红)。 + +##### Docs +- `docs/native-transport.md`:新增「为什么一次查询会启动一轮全量扫描(读请求带写副作用)」—— + 把这条**明知偏离原生**的权衡连代价与边界写清楚(幂等 / 只写派生物缓存 / 后台不可能弄死宿主 / + 接线门防回退),免得上游 review 当成性能回退;开头改为基线小表(rc.3 → rc.4)。 +- `README.md`:新增「装进本机 profile 时的一条硬规矩」——用官方插件管理器、同版本 `file:` 依赖 + 会被 pnpm 判为已满足(`ambiguous-install`),日常替换请 `pnpm install --force`,**版本号只在 + 值得发版时动**;装完必须核对产物而不是只看 `applied`。 +- 三个接线门文件补了抬头声明:它们是**源码级接线门**(守"两处是否仍指向同一源头"), + 与行为门分工不同。 + +#### 0.4.7 · 2026-10-31 + +##### Fixed +- **进入「用量统计」直接崩溃(`fatal load failure: TypeError: logSink(...).warn is not a function`)**。 + `logSink(ctx)` 返回的是**函数** `(message, level?)`,而两处把它当 logger 对象用了: + `persist()` 里的 `const logger = logSink(ctx)` + `logger.warn(...)`,以及按需启动回填时传的 + `log: (m) => logSink(ctx).warn(m)`。后者在 0.4.6 把回填搬到查询路径后立刻暴露:扫描收尾写日志 + →抛错→ 进入 `catch` 又用同一个坏 sink 写日志 → 异常逃出 `runBackfill` → 宿主把未处理的 rejection + 当致命错误,进程退出。 + 现在两处都按函数契约调用;并且 `scan.js` 的所有日志经过 `safeLog()`,**日志坏了最多丢一行, + 绝不会再弄死宿主**。 +- 门(`tests/lazy-backfill.test.js` 新增 2 条):日志 sink 抛异常时扫描仍落到 `done`; + `logSink` 只能以函数形式调用(禁止 `.warn/.error`、禁止别名成 `logger` 对象)。 + 变异验证:把 `.warn` 写法加回去立即变红。 + +#### 0.4.6 · 2026-10-31 + +##### Changed +- **全量统计改为按需启动:第一次查询才开扫**(`startBackfillOnDemand`,`src/host/scan.js`; + 接线在 `handlers.set('query')`)。此前在 `apply` 里就开扫,暖缓存 0.78 s(冷缓存 ~12 s)的 + "缓存加载"窗口发生在用户打开面板之前 —— 代码里的加载态永远看不见,重启多少次都一样。 + 现在面板打开的那一刻就是统计开始的那一刻:骨架 + `正在统计 n/N 个会话…` + 确定进度条, + 暖冷缓存都可见。`state.backfill` 增加 `started` 闩(`status` 会被调用方先置 running, + 不能拿它当"只跑一次"的守卫)。 +- 客户端轮询节奏改为**先快后慢** 600 ms → 1.5 s → 3 s:固定 3 s 会让 0.8 s 就结束的暖缓存 + 窗口"躺 3 秒再跳一格",比没有进度更糟。 + +##### Tests +- 新增 `tests/lazy-backfill.test.js`(4 条):首次调用置 running 且幂等;无持久化时立即 done + (面板不会永远转);空库跑完落到 done 且 `done === total`;**接线门**——`query` 处理器必须调用 + `startBackfillOnDemand`,且 `apply` 不得再直接 `runBackfill`(变异验证:删掉调用点即变红)。 + +#### 0.4.5 · 2026-10-31 + +##### Changed +- **从 DSH 启动到统计算完,整段都是加载态**(`src/client/index.js` 的仪表盘渲染): + 此前只在"数据为空"时给骨架,半份结果会先显示出来再一格一格往上爬 —— 既像"你只有这么多 + 用量",也正是「数字一点点往上爬」那类抱怨的来源。现在只要 `backfill.status === 'running'` + 就渲染骨架屏,数据区(`!computing`)与空态(`!computing`)都等算完才出现。 + 统计期间仍保留:顶部确定进度条(宽度 = done/total)、头部「正在统计 n/N 个会话…」、 + 旋转的刷新图标;屏幕阅读器只播报头部这一处(骨架屏的 live 区域在统计期间置 `aria-live="off"`, + 避免重复朗读)。 + 门:`tests/client-slots.test.js` 第 2 条同步加强(断言骨架覆盖整段 computing、数据区必须带 + `!computing`;变异验证:把条件退回只覆盖 `!ready` 立即变红)。 + +#### 0.4.4 · 2026-10-31 + +##### Added +- **「统计没算完」本身就是一个加载态**。此前只有"请求在飞"(busy)才有反馈, + 而全量统计(258 个会话)远比一次请求长:冷启动那几秒页面看起来是静止的, + 数据为空时还会显示「暂无数据」—— 把"还在算"说成了"没有用量"。 + 现在 `backfill.status === 'running'` 即 `computing`: + - 顶部进度条改**确定进度**,宽度 = 宿主返回的 `done/total`(知道分母就不装忙); + - 头部副标题换成 `正在统计 {done}/{total} 个会话…`(同位置同行高,算完不跳版); + - 刷新图标在统计期间也保持旋转; + - `computing && isEmpty` 时显示骨架屏,**不再**落到「暂无数据」; + - `role="status"` 让屏幕阅读器也能读到进度。 + 门:`tests/client-slots.test.js` 第 2 条(变异验证:去掉 `computing && isEmpty` 即变红)。 + +#### 0.4.3 · 2026-10-31 + +##### Fixed +- **骨架屏比真实卡片少一格**(`LoadingState`):占位块写死 `[0,1,2,3,4]` 五张,而「模型占比」 + 让统计卡变成 **6 张** —— 加载态少一格,数据到达时整行重排。 + 现在张数从 `SUMMARY_CARD_SLOTS` 派生,`SummaryCards` 与骨架屏共用同一份 key 顺序; + 新增门 `tests/client-slots.test.js` 逐字比对两边的 key 列表,并禁止骨架再出现写死的索引区间 + (变异验证:把骨架改回 `[0..4]` 该门立即变红)。 + +#### 0.4.2 · 2026-10-30 + +##### Changed (基线抬到 rc.4,无行为变化) +- 桌面版实例当日升到 **0.2.1-rc.4**,按「原生会动:先对账再抬基线」复核两个契约门: + `verify:typert` 报 `OK: the official loader accepts the contribution (4 endpoints, namespace dsh-plugin-usage)`, + `verify:remote` 7/7 全绿 → `dsh.verifiedAgainst` 由 `0.2.1-rc.3` 抬到 `0.2.1-rc.4`; + `engines.dsh` 保持 `>=0.2.1-rc.3 <0.3.0`(rc.3 也验证过,不缩小可安装范围)。 +- 卫生门里「基线必须出现在下限字符串里」这条过窄判据改成**区间判定**(基线必须落在 `engines.dsh` + 区间内,允许比下限新)—— 否则"验证了更新的构建"这个正确动作会被自己的门判红。 +- 为什么要有 0.4.2:0.4.1 在 22:06 已装进桌面版,之后又改了 manifest 基线;同版本号 + 同 `file:` 路径时 + pnpm 判定"无需新增"(返回 `ambiguous-install`),只有换版本号才能让内容真正替换。 + +#### 0.4.1 · 2026-10-30 + +##### Changed (基线抬到 rc.4) +- 桌面版实例当日升到 **0.2.1-rc.4**,按「原生会动:先对账再抬基线」复核两个契约门: + `verify:typert` 报 `OK: the official loader accepts the contribution (4 endpoints, namespace dsh-plugin-usage)`, + `verify:remote` 7/7 全绿 → `dsh.verifiedAgainst` 由 `0.2.1-rc.3` 抬到 `0.2.1-rc.4`; + `engines.dsh` 保持 `>=0.2.1-rc.3 <0.3.0`(rc.3 也验证过,不缩小可安装范围)。 + 同时把卫生门里「基线必须出现在下限字符串里」这条过窄判据改成**区间判定**(基线必须在 + `engines.dsh` 区间内,允许比下限新),否则"验证了更新的构建"这个正确动作会被自己的门判红。 + +##### Fixed +- **参考成本为 0 的模型被显示成「未定价」**(`src/client/index.js` 的 `ModelTable`):表格在 `useMemo` + 里自己重算了一次 `unpriced: (tokens > 0) && !(cost > 0)`,把「用户明确把单价填成 0」也判成未定价 —— + 历史记录里因此永远看不到 ¥0.00。现在判定只取宿主结论(`unpriced: r.unpriced === true`), + `¥0.00` 与「未定价」的区别回到唯一来源:查得到价 vs 查不到价。门:`tests/native-hygiene.test.js`。 + +##### Changed +- **加载态做诚实**(`src/client/index.js`): + - 补 `@media (prefers-reduced-motion: reduce)`:关掉骨架屏呼吸、刷新按钮旋转与入场淡入 + (官方客户端同样写法:`plugin-manager.client.js` / `settings-general.client.js`); + - 删掉刷新时整块内容 `opacity: .55` —— 每次轮询闪一下,且暗示"数字在重算";改为顶部 **2px 细进度条** + (绝对定位、不推版面、`aria-hidden`),只在「已有数据、正在刷新」时出现; + - 骨架屏补 `role="status"` + `aria-live="polite"` 与可读文案(`loading` 双语 key), + 屏幕阅读器不再只知道 `aria-busy`。 +- **原生对齐收口**(对照共享库经验第〇条 `exp-native-first`): + - `package.json` 声明 `dsh.verifiedAgainst: "0.2.1-rc.3"`,并把 `engines.dsh` 收紧到 + `>=0.2.1-rc.3 <0.3.0` —— 之前写的是 `>=0.2.0-rc.2`,那是一个**从未验证过**的下限。 + - `docs/native-transport.md` 新增 §3:折叠缓存这处**已知自建旁路**的取证(官方 `dsh-storage` / + `dsh-storage-json` / `dsh-storage-domain`,以及官方 `dsh-session-projection-cache` 的同类先例)、 + 三条可复核的保留理由(派生物需可整目录删;`open()` 急加载而缓存 258 条已 12 MB 且随历史线性增长; + 零运行时依赖)、以及迁移路径。同时删掉该文件 §4 表格里重复的一行。 + - `runBackfill` 的兜底 `catch` 不再静默:失败原因经 `log` 落到宿主日志。 +- **新增原生卫生门 `tests/native-hygiene.test.js`(4 条)**:`verifiedAgainst` 必须存在且与 `engines.dsh` + 下限一致;按模型明细的 `unpriced` 只能取宿主结论(禁止客户端重新派生 `!(cost > 0)`);`src/host/**` 的 + 磁盘写只允许出现在 `fold-cache.js` 与 `scan.js` 的 `last-pass.json`(新写盘必须先写进 §3 的反证); + `settings.update` 的命名空间必须等于 `cordis.patch.yml` 里的行 id。 + +##### Added +- **折叠结果落盘缓存,重启不再全量重扫**(`src/host/fold-cache.js`):索引只在内存里,所以此前每次重启 + 都把全部历史重新读一遍 —— 本机实测 258 个会话、404 MB、解压后 1.35 GB / 57 万行,**仅读取和解压就 + 12.5 s**。现在按会话落成 `/cache/dsh-plugin-usage/fold/.json`,命中条件是后端给的 + `revision` 与条目一致;一个会话一个文件,所以一次扫描只重写变化的会话。 + 实测(258 会话 / 30,186 条记录,日志全程不打开):**热启动 0.08 s**,缓存写回 0.46 s。 + 正确性约束:签名 = `FOLD_CACHE_VERSION` + 节假日历 `capturedAt`(折叠规则或节假表一变即失效); + 记录的 `session` 必须与文件名一致,否则整条当未命中(防止串账);解析失败、签名过期、记录形状不对 + 一律降级为全量扫,绝不抛错。 + 门(`tests/fold-cache.test.js`,10 条):冷折叠与热启动逐字段相等、`open()` 在热启动时必须不被调用、 + revision 变化必重扫、串账记录被拒、缓存损坏/签名过期降级、`cache:false` 保持旧行为、孤儿会话被清理。 + 变异验证:把命中分支改 `if (false)`、或不写条目,对应用例立即变红。 + +##### Changed +- **节假日历的年份范围跟着用量数据走,并向后顺延一年**(`scripts/lib/holiday-years.mjs`): + 原来是 `[今年-1, 今年, 今年+1]` 的固定窗口,与「全部」里早期的会话无关 —— 2024 年的用量根本 + 取不到 2024 的节假日。现在从会话目录里最早/最晚的会话文件取年份:往前留一年余量(文件 + mtime 是**最后**写入时间,最早那次可能更早)、往后**必多备一年**(次年安排 11 月才公布), + 并与「今年」取并集。`--holiday-years` / `--usage-from` / `--usage-to` 可显式覆盖。 + 生成物新增 `coverage: {fromYear, toYear, basis, years}`。 +- **未公布的年份要记下来,不能丢**:原来 `days: []` 的年份直接 `continue`,从表里消失 —— + 与「这一年没有节假日」不可区分,于是该年节假日被按高峰计价且界面上毫无提示。现在记成 + `unpublished: true`,`holidayCoverage()` 会带出去,参考成本的提示里写明覆盖范围与未公布年份。 +- 顺手修掉一条**误报**:原来按「数据是否到 12-31」判断截断,而实际每年最后一个法定假日都在 + 10 月初(国庆),于是 2025、2026 每年都报一条假警告。改成「是否缺当年的国庆(10-01)」。 + +##### Fixed +- **法定节假日被算成高峰价**:折叠时用的判定是 `isPeak(atMs)`(不带日历),而价目显示用的是带日历 + 的那条 —— 同一天(例如 2026-10-01 国庆,周四)账单按高峰计价、界面却标「空闲」。DeepSeek 的规则 + 是「周一至周五 01:00-04:00、06:00-10:00 UTC,**不含中国法定节假日**」,所以窗口内落在节假日的 + 调用被最高多算一倍。 + 修法在根上:`isPeak` 的默认参数改成**真正的日历**(`holidayOf` 移到 `peak.js`,与规则同源), + `pricing.js` 反向复用同一份判定并 re-export,任何调用方漏传参数都不会再静默走「无节假日」。 + 新增两道门:`tests/peak.test.js` 断言默认就认日历,`tests/tier-billing.test.js` 直接钉住 + `peakAt`(折叠实际用的那个函数)。变异验证:把默认改回 `undefined`,两道门同时红。 + +##### Changed +- **真机确认原生通道生效(2026-10-29,work-exp)**:dashboard 的查询/定价请求走 + `POST /api/dsh-plugin-usage/query` → 200,响应里的 `channel` 为 + `{"ok":true,"transport":"remote","reason":"registered 4 endpoints"}`;`/api/usage/*` + 只在自举阶段(面尚未挂载时)出现,随后自动切换。同一轮之前的两次失败分别暴露了 + `ctx.reflect` 取不到、以及激活期一次性探测 `ctx.get('typert')` 的时序问题,都已修掉。 +- **修掉一个"宿主明明有、插件却说没有"的时序缺陷**:`ctx.get('typert')` 只返回**已激活**的服务 + (cordis `Context.get` → `_getImpl` 检查 `impl.fiber.state === 2`),而 typert 注册表在同一 + 组合里可能比本插件晚激活。激活期一次性探测的结果就是 "no typert registry in this composition" + 并永久落到 Fetch。改成 `ctx.inject(['typert'], …)` 声明依赖、就绪时再注册(与 `connection` + 的写法一致)。 +- **通道决策可查**:`registerTypert` 返回 `{ ok, transport, reason }`,随每次 dashboard 响应 + 以 `channel` 字段下发;走 Fetch 时 reason 会写明原因(没有 typert 注册表 / ctx 不能 + provide / provide 抛错 / typert 拒收)。插件 logger 不一定进宿主日志,所以判断不再靠猜。 +- **删掉 `client-source` 端点**(`src/host/client-source.js`):它是动态插件时代"宿主读源码、 + 前端 `new Function` 执行"的遗留,客户端早已改成真正的 bundle,这个端点既没人调用、又把 + 源码文本经 RPC 发出去。换成一个只报端点名的 `contract` 端点 —— 浏览器半靠它在 + `remote.$mount` 时与宿主侧的清单对齐,不再各自维护一份端点列表。 +- **client→host 走原生 typert Remote**(`src/host/typert.js`):注册一份 typert 贡献 + (`package = dsh-plugin-usage`,namespace 与包名相同,参数/结果都是 strict codec)并 + `ctx.reflect.provide` 一个同名接收方服务(gateway 会核对 `typertRemote` 绑定)。浏览器半 + **优先**调 `remote['dsh-plugin-usage']`,失败自动落回 `/api/usage/*` 与 `/usage` 兜底 —— + 两条通道都常驻。注册被拒时会把接收方服务撤回去,不会留下"挂上了但调不到"的半面。 + 旧代码里 `typert.register('usage', endpoints)` 的两参调用是错的形状,已删除。 +- **按原生工程习惯收口(对照 `xshared-lib` 经验库第〇条「原生优先」)**: + - 宿主日志走 `ctx.logger`(`ctx.get('logger')` → `ctx.logger` → `console` 三层兜底), + 不再直接 `console.warn`;挂载失败与端点异常都进宿主日志。 + - **原始错误不再上页面**:`dispatch` 把未处理异常压成稳定码 `internal`,界面按码 + 自己说话(`rpcInternalError`),堆栈只写日志。 + - 设置页导航图标的 DOM 补缺注释补上**官方符号出处**(`settings.section` 只投影 + `{id, order, label}`、`navIcon(id)` 未知 id 回落齿轮),让「官方确实没有」这条 + 反证可核,而不是"我觉得"。 + - 仓库里的门补了两处:`tests/dialog.test.cjs`(驱动构建产物的 70 项 UI 检查)从 + 仓库外挪进 `tests/` 并接进 `npm test`(`pretest` 先构建);新增 + `tests/fold-parity.test.js`,用 `scripts/fold-parity-fixture.mjs` 从官方 + `@deepseek-ai/dsh-token-meter` 录下的 `tokenUsage` 结果对账本插件的 fold。 + +参考成本这块的整理:把「同一个问题有好几处各自回答」的地方收成一处,并按原设计 +补上参考模型的三类来源与 `-free` 的判定规则。删掉的是**第二条政策**和**第二套词表**。 + +##### Fixed + +- **`-fast` / `-1017` 这类变体名被判成「未匹配」**:`deepseek-v4.1-flash-fast`(1,380 次) + 和 `deepseek-v4.1-flash-1017`(471 次)是同一个模型换了后缀,却因为表里没有这一行而 + 按 0 计价 —— 全部历史里 1,865 次未定价基本就是它们。新增第 5 级**变体后缀**: + `-free` / `-exp` / `-fast` / `-latest` / 四位日期,去掉后缀后必须在表里查到基模型, + 命中即按基模型的价估算、标「模糊」。这是封闭的改名规则(后缀表固定 + 基模型必须 + 存在),不是相似度:`deepseek-v4-flash-0731` 没有基模型行,仍然未匹配。 +- **`-free` 一律被算成「模糊」并按付费孪生计价**:孪生规则排在字面命中之前,于是 + 价目表真实发布的 `glm-5.3-flash-free`、`deepseek-v4.1-flash-free` 等 13 行也被 + 判成模糊,促销期的 0 元被换成一个没人付过的付费价。现在**精确优先**:表里真有这 + 一行就是精确、按它自己的价;只有表里没有的变体名才走第 5 级。 +- **「自定义」不是一组参考模型,而是「直接填单价」**:之前把它做成了第三个 id 分组, + 只能选「别的模型」;实际要的是在选择器顶部给一个「自定义」选项,选中后就在这一行 + 填三个数(输入 / 输出 / 缓存读,展示币种、每百万 Token),确定后写进 `prices`, + 按填的价计。金额按当前展示币种换算成美元存储(价目表是美元),负数/非数字会被拒。 + 同一个 key 只留一个答案:手填价顶掉已确认的匹配,确认匹配 / 收回答也会清掉手填价。 +- **未匹配的模型在「定价匹配」里一行都看不见**:待选表按 `r.unpriced` 过滤,而 + propose 的行从来没有这个字段(它是查询那边「某条记录没价」的标记)——于是待选表 + 永远为空,一个都没匹配上的会话反而显示「暂无待匹配的模型」。 +- **价目表的两档价被折成一档之后再发出去**:`propose` 先把行折成「当下这一档」, + 弹窗只能印那一档,另一档凭空消失;而且「当下」是打开弹窗时的钟点,不是会话里的 + 任何时刻。现在宿主把两档一起发(`rates.peak` / `rates.offPeak`)并标明该印哪档, + 另一档挂在同一格的 tooltip 上。 +- **`DEFAULT_PRICES` 那一行 `group/auto-deepseek-v4-1-flash`**:它是 DeepSeek Flash + 旧空闲价的抄件,本身是单档(峰谷对它无效),又排在参考表前面(`how: 'custom'`), + 所以高峰期比参考价低 53%。归一化里补了路由器前缀规则之后,这个 id 由参考表自己 + 回答,这行连同 `ALIAS_PRICES` / `mergePrices` 一起删掉,`prices` 默认改为空。 +- **两套插件内词表**:宿主算出的 `how`(5 个值)在 client 里被再映射成四态,映射 + 写死过一个阶梯里不存在的值。现在 `state`(exact / fuzzy / none / custom)由宿主 + `resolvePrice` 产出,client 只渲染。 +- `query` 的 `pricing.source` 不再写死字符串,改从价目表 `sources` 派生。 + +##### Changed + +- **一处查价**:`resolvePrice` 收下 `matchMap`(`matches`)成为唯一入口, + `index.js` 的 `resolveWithMatches` 包装层删除;store 不再接受 `resolve` / + `costFor` 注入,也不再有「没注入时按精确键查」的第二人格。 +- **一种费率形状**:`ratesOf(price, tier)` 是唯一读价格字段的函数(flat 行 / + DeepSeek 两档行 / 手填的 `inputPerM` 行都归一到 `{input, output, cacheRead, + cacheWrite}`),`tierPriceOf` 删除。价格行以「发布时的样子」流过阶梯,档位只由 + 计费点(`costOf` 的桶、`priceRow` 的展示)决定。 +- 归一化新增两条规则:`.` 与 `-` 等价、去掉路由器加的 `auto-` 前缀。两条都有 + **89 行零冲突**的常驻门(`price-data.test.js`)。 +- **参考模型 id 从一张扁平表变成三组**:`propose` 的 `table.ids` 换成 + `table.groups`(deepseek / zen / custom),每行的 `source` 说明这个价出自哪一类; + 选择器按组显示并带组头,匹配到的行旁边标出来源。 +- 阶梯顺序改为「精确优先」:自定义 → 确认 → 精确 → 别名 → 孪生。 + +#### 0.4.0 · 2026-10-19(本地定价改造,随 0.5.0 发布) + +参考成本的算法版本:从「10 行手抄的价目表 + 精确字符串匹配」换成「按上游定价源 +生成、四级阶梯解析、高峰/空闲分档、未命中的模型可以在界面上确认」。这一版会把 +账算得比 0.3.0 高 —— 因为 0.3.0 少算了,不是这版多算了(见下)。 + +##### Fixed + +- **在售型号根本没进价目表,成本记 0**:旧表 10 行里有 7 行是已下线的型号 id, + 而 `deepseek-flash`、`deepseek/deepseek-v4.1-flash` 这类实际在用的 id 一行都 + 匹配不上。本机 94 个会话实测:宿主的 `costUsage` 投影记 $62.8792,插件记 + $1.8378(2.9%)。价目表改由 `scripts/gen-prices.mjs` 从 opencode Zen 与 + DeepSeek 官方定价生成,生成物随包发布。 +- **拉美价被当成通用价**:旧表 `deepseek-v4.1-flash` 一行 0.14 / 0.56 / **0.04**, + 缓存放大了 13.3 倍;官方在售价是 0.15 / 0.60 / 0.003。 +- **模型多一层前缀就判未定价**:`provider/model` 与裸 `model` 之外没别的匹配, + provider 前缀改了、分隔符换了(`_` / `.`)、大小写不同都算未命中。 +- **弹窗里给未匹配模型选参考模型会报错**(`Cannot convert undefined or null to + object`,行也不变脏):`PricingDialog` 里的 `const [draft, setDraft] = + React.useState({})` 遮蔽了同名的纯函数 `setDraft(prev, key, patch)`,组件内 + `setDraft((prev) => setDraft(prev, ...))` 调的是 setter 自己。 + +##### Added + +- **价目表生成**:`npm run prices`(`scripts/gen-prices.mjs`)抓 opencode Zen + 与 DeepSeek 官方定价,输出 `src/host/prices.js`(89 个型号 + 每个型号的三档价 + 与上下文加成)和 `src/host/holidays.js`(节假日历)。CI 每周跑一次,上游有变化 + 才开 PR。生成物是 `.js` 而不是 `.json`:`tsconfig.json` 的 `rootDir` 是 `src`, + 发布只带 `lib/`,`.json` 到不了用户手里。 +- **四级解析阶梯**(`src/host/pricing.js`):自定义 → 别名 → 孪生(去 provider + 前缀、统一分隔符与大小写;`-free` 免费型号一律归到这里,不参与精确)→ 精确 + 字面命中。**任何一级都不做相似度打分**:字面命中自动采用,0.62–0.90 那一段 + 只提示、不自动确认。 +- **高峰/空闲分档**:DeepSeek 两个在售型号按官方两档价计价,时段在**扫描时**记进 + Token 分桶(`rec.tokens.peak` / `rec.tokens.off`),切换币种不改写分桶。 + 规则按北京时间:周一至周五(不含中国法定节假日)9:00-12:00、14:00-18:00 为高峰。 +- **「定价匹配」弹窗**:参考成本卡右上角的按钮打开。会话内未匹配的模型列在最前, + 可从价目表里挑参考模型;已匹配的单独一张表可逐行清掉;历史匹配默认折叠。四种 + 状态(精确 / 模糊 / 未匹配 / 自定义)常显。**不改动就不落盘**:草稿只活在弹窗里, + 点「确定」才 commit;没改动时「确定」就是关窗。 +- **自定义价优先级最高**:设置里的 `prices`,以及弹窗里确认过的 `matchMap`, + 都排在自动匹配之前。 +- **`unmatched` 与 `pricing` 元信息**:`usage/query` 响应带未命中列表、价目表来源 + 与抓取日期、覆盖率,以及每行的 `how` / `target`;新增 `usage/pricing` 端点 + (`propose` 只读、`commit` 写入)。 + +##### Changed + +- 成本卡脚注拆成三行:常驻的口径说明、高峰/空闲规则,以及只在有未定价调用时出现 + 的提示。原来所有卡片共用一条 warn 色脚注,与事实不符。 diff --git a/README.md b/README.md index ef8cf1d..dd3f8a6 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,9 @@ DeepSeek Harness 的 **Token 用量统计**插件:按天 / 自定义范围查 - 模型筛选、按模型明细(请求数、输入/输出、缓存、成本、占比) - KPI 网格里的「模型占比」卡:按总 Token 显示前 4 个模型与「其它」 - 参考成本可在 ¥ / $ 之间切换(固定汇率 1 USD = 7 CNY,宿主侧折算) -- 可配置的每百万 Token 价格表(内置 DeepSeek 常见模型默认价) +- 参考价目表由脚本从 opencode Zen 与 DeepSeek 官方定价生成,高峰/空闲按北京时间分档 +- 参考成本卡右上角的按钮打开「定价匹配」:未匹配的模型可直接挑参考模型,已确认的可以清掉;不改动就不落盘 +- 可配置的每百万 Token 价格表(自定义价格优先于自动匹配) - 年度热力图;深/浅色自适应,只用 DSH 主题变量,无第三方图表库 - **输入区成本 pill**:composer 旁显示「今日 ¥x.xx」(今日无调用时不占位),title 带调用次数与 Token;币种跟随设置页的 ¥/$ 选择 @@ -31,9 +33,39 @@ DeepSeek Harness 的 **Token 用量统计**插件:按天 / 自定义范围查 ## 配置 设置 → 插件 → `dsh-plugin-usage` 可改 `currency` 和 `prices`(每百万 Token 价格),写入 profile patch,重启保留。 -`currency` 是默认显示币种;仪表盘上参考成本卡里的 ¥ / $ 切换只影响当前界面(同浏览器记住选择)。 +`currency` 是默认显示币种;仪表盘参考成本卡里的 ¥ / $ 切换只影响当前界面(同浏览器记住选择)。 -价格优先匹配 `provider/model`,其次裸 `model`;未配置的模型标为「未定价」,成本记 0。 +`prices` 默认**为空**,只用来放参考价目表给不了的 id(某条中转、某个私有 id)。 +给一个价目表本来就能查到的 id 写行会盖住参考价 —— 这正是 0.4.0 之前那份手抄默认表 +的问题(一行缓存价是官方 13.3 倍,七行是已下线的型号)。所以默认表不再预置任何行。 + +价格按下面的阶梯解析,**任何一级都不做相似度打分**: + +1. 自定义(设置里的 `prices`,键可以是 `provider/model` 或裸 model) +2. 仪表盘「定价匹配」里确认过的模型(`matchMap`,可以指向价目表 id,也可以指向自定义价) +3. 精确字面命中(大小写、`provider/model` 前缀、`_`/`.`/`-` 分隔符、路由器加的 + `auto-` 前缀都归一再比) +4. 别名(`deepseek-chat`、`deepseek-reasoner`、`deepseek-v4-flash` 等已停用名的去向) +5. 变体后缀(`-free` / `-exp` / `-fast` / `-latest` / 四位日期,如 `-1017`): + 去掉后缀后**能在表里查到基模型**才算命中,按基模型的价估算,标「模糊」 + +**精确优先**:价目表里真有这一行就是「精确」,推断不能盖住事实。所以 `-free` 结尾的 +id 只要表里有这一行就是精确、按它自己的价(促销期就是 0,和宿主实际扣费一致);只有 +表里没有的变体名才落到第 5 级,标成「模糊」。 + +第 5 级是**封闭的改名规则,不是相似度**:后缀表固定,且基模型必须真实存在。 +`deepseek-v4.1-flash-fast`、`deepseek-v4.1-flash-1017` → `deepseek-v4.1-flash`(模糊); +`deepseek-v4-flash-0731` 没有基模型行,仍然「未匹配」,不会被塞到最像的那一行。 + +参考模型候选按来源分两组:**DeepSeek 官方**、**opencode Zen**。列表顶部另有一个 +**自定义** 选项 —— 它不是一组参考模型,而是「直接填单价」:选中后在行内填三个数 +(输入 / 输出 / 缓存读,单位就是表格的展示币种、每百万 Token),确定后写进 `prices`, +这一行的参考价就按你填的算,两档(高峰/空闲)同价。匹配到的行会在旁边标出来源。 + +五级都不中的模型在「定价匹配」里标为「未匹配」(排在待选表最前面),成本记 0; +选好参考模型点「确定」后写进 `matchMap`。DeepSeek 的两个型号按高峰/空闲两档计价: +**北京时间周一至周五(不含中国法定节假日)9:00-12:00、14:00-18:00 为高峰时段; +其余时段,包括周末及中国法定节假日全天均为空闲时段。** ## 数据来源与口径 @@ -42,10 +74,25 @@ DeepSeek Harness 的 **Token 用量统计**插件:按天 / 自定义范围查 折叠 DSH 会话日志中已持久化的用量事件,不自己记日志: - 读取走官方接口:活跃会话 `snapshotEvents()`,历史会话 `sessionPersistence.open/read`,按 `revision` 跳过未变日志 +- 折叠结果落盘缓存(`~/.dsh/cache/dsh-plugin-usage/fold/<会话>.json`,可用 `DSH_HOME` 改根目录): + 一个会话一个文件,命中条件是该会话的 `revision` 与缓存里的一致,所以追加过的日志必然未命中重扫。 + 签名里带 `FOLD_CACHE_VERSION` 与节假日历的 `capturedAt` —— 折叠规则或节假表一变,旧条目自动失效 + (缓存的 `tokens.peak/off` 只能由产生它的那份日历解释)。缓存坏了/读不了就当未命中,退回全量扫。 + 实测:258 个会话、30k 条记录,热启动 0.08 s;冷启动仅读取+解压就要 12.5 s - 计费对齐官方 `tokenUsage` 投影:同一 `(turn, step)` 替换;`llm/retry-started` 后的重试累加;`assistant/attempt` 的 stream 用量也计入 - fork 会话按 `inheritedEventCount` 跳过父会话前缀,不重复计费 -- 费用 = Σ(各 Token 分桶 × 对应单价) / 1e6 +- 费用 = Σ(各 Token 分桶 × 对应单价) / 1e6;DeepSeek 的分桶在扫描时就按当时的时段 + 记成高峰/空闲,切换币种不改写分桶 - 价目表以**美元 / 百万 Token** 为基准(与 DeepSeek 官方价一致);显示 `¥` 时按固定 7:1 折算,价目表本身不改写 +- 价目表与节假日历由 `scripts/gen-prices.mjs` 生成(`npm run prices`),CI 每周跑一次, + 上游有变化才提 PR;生成物是 `.js` 而不是 `.json`,因为发布只带 `lib/` +- 法定节假日取自 [NateScarlet/holiday-cn](https://github.com/NateScarlet/holiday-cn); + 年份范围由**用量数据的日期跨度**决定并向后再顺延一年(`scripts/lib/holiday-years.mjs`): + 取会话目录里最早/最晚的会话文件年份,往前留一年余量、往后多备一年,所以旧会话与来年 + 一月都落在覆盖范围内。`--holiday-years 2024-2027` / `--usage-from` / `--usage-to` 可显式覆盖。 +- 还未公布的年份(国务院一般 11 月公布次年安排)会以 `unpublished: true` 记进表里,不丢掉; + 「参考成本」的提示里会写明覆盖到哪一年、哪年未公布 —— 那种年份只能按周末规则判定, + 窗口内撞上节假日的调用会偏高(不会偏低)。 ## 兼容性 @@ -56,18 +103,62 @@ DeepSeek Harness 的 **Token 用量统计**插件:按天 / 自定义范围查 ```sh npm install -npm run build # tsc → lib/,再生成 lib/client/index.js -npm test # node --test +npm run build # tsc → lib/,再生成 lib/client/index.js +npm test # 先构建(pretest),再跑单测 + 驱动构建产物的 UI 门 +npm run verify:typert # 用本机 DSH 里的官方 loader 校验 typert 贡献(缺 asar 会明确 SKIPPED) +npm run verify:remote # 用本机真实的 cordis + typert 注册表跑通原生通道(同上) ``` +`npm test` 有三层,缺一层就会漏掉一类问题: + +| 层 | 覆盖什么 | 失败会长什么样 | +|---|---|---| +| `tests/*.test.js` | 纯函数与宿主行为(fold / pricing / rpc / typert …) | 断言 | +| `tests/dialog.test.cjs` | **构建产物**里的定价弹窗:真实 bundle + 假宿主,75 项 | `CHECK(S) FAILED` 并列出名字 | +| `tests/fold-parity.test.js` | 事件 fold 与官方 `tokenUsage` 投影的**对账** | 四个计数不相等 | +| `npm run verify:remote` | 真实 cordis + 真实 typert 注册表:面注册、接收方服务、以及"激活期一次性探测会失败"这个回归 | `CHECK(S) FAILED` | + +对账用的 fixture 是**录**下来的,不是手写:`scripts/fold-parity-fixture.mjs` 从本机 asar 里取出 +官方 `@deepseek-ai/dsh-token-meter` 的 `usage-projection.js`、原样执行、把结果写进 +`tests/fixtures/token-usage-parity.json`。DSH 升级后重跑它,别手改数字。 + CI 跑 install → build → test → bundle id 契约 → tarball 内容检查;推 `v*` tag 会校验版本、构建测试并创建 GitHub Release。 ``` -src/host/ 宿主:scan / fold / query / settings / aggregate / rpc +src/host/ 宿主:scan / fold / fold-cache / query / state / aggregate / prices / pricing / peak / holidays / settings / rpc / typert src/client/ 设置页「用量统计」仪表盘(纯 JS,样式内联) -scripts/ 构建客户端 bundle 入口 +scripts/ 构建入口 + 价目与节假表生成(gen-prices / holiday-years)+ fold 对账录制 + 两个原生契约校验 +docs/ 与原生 DSH 的距离:L2 补缺的取证(含"读请求触发写"这条权衡)、升级路径与已对齐清单 ``` +浏览器半 → 宿主半的通道:优先走原生 typert Remote(`src/host/typert.js` 注册面、客户端 +`remote.$mount` 挂载),取不到时自动落回 `connection.fetch` 的 `/api/usage/*`。两条都常驻, +所以宿主有没有那个服务都不会让页面瞎掉;实际走了哪条由 dashboard 响应里的 `channel` 字段写明。 + +### 装进本机 profile 时的一条硬规矩 + +用官方插件管理器装(`plugin_manager install_bundle` + `file:` tarball)。但 pnpm 对 +**同版本号、同路径**的 `file:` 依赖有一条让人踩坑的判定链,实测(2026-10-31,pnpm 11.7/11.28): + +| 尝试 | 结果 | +|---|---| +| 同版本、换掉 tarball 内容后再 `install_bundle` | `ambiguous-install`:只有清理没有新增,什么都没装 | +| `pnpm install --force` | `Already up to date`(或仍装旧内容)——它按**锁文件里的 integrity** 从 store 取,不看文件本身变了 | +| 删掉 `node_modules/` 再 `pnpm install` | 依旧 `Already up to date`,目录**不会**被补回来 | + +所以同版本替换**没有**可靠办法,别去试。唯一稳的路径是:**升版本号 → `install_bundle` → 重启**。 + +> ⚠️ **不要在 DSH 运行时手工覆盖 `node_modules/`。** 2026-10-31 02:00 实测:把 tarball 直接 +> 铺进正在运行的 profile 后约 0.8 秒,宿主进程以 `0xC0000005`(STATUS_ACCESS_VIOLATION)退出, +> 前端整块掉线。崩溃日志里没有本插件的栈帧(这不是 JS 异常),但时间点与覆盖完全吻合—— +> 运行中的宿主正在读这些文件,替换它们是不可接受的操作。**先退出 DSH,再改文件;或干脆走管理器 + 重启。** + +版本号只在"值得发版"时动:曾经一天之内 0.4.1→0.4.7 七个补丁,其中三个纯粹是为了绕过上面这条, +等于把工具约束写进了产品版本线。 + +装完必须**核对产物**,不能只看管理器回 `applied`:读 `package.json` 的版本、 +`grep` 一两个本次新增的标识(如 `TipRows`),再决定要不要重启——**只改客户端就刷新页面,改了宿主半才需要重启**。 + > 开发期也可用 `--patch` 从源码加载:`dsh web --patch cordis.yml`(路径见 `cordis.yml`)。 ## License diff --git a/docs/native-transport.md b/docs/native-transport.md new file mode 100644 index 0000000..612cae1 --- /dev/null +++ b/docs/native-transport.md @@ -0,0 +1,188 @@ +# 与原生 DSH 的距离:L2 补缺的取证与升级路径 + +对照 `xshared-lib` 经验库第〇条(原生优先:先取证原生,能引用不重写;补缺要有 +「官方确实没有」的反证;原生结论要可核)。本文件把**仍然自研**的地方、以及**明知偏离原生、 +但权衡后保留**的地方,连证据一起记下来 —— 省得下次重推一遍,也免得把"我觉得"当成反证。 + +取证对象:本机 `E:\FXS\APP\DSH NEXT\resources\app.asar`。引用的符号与行号都来自该分发物里的文件,不是转述。 + +| 项 | 值 | +|---|---| +| 首次取证 | `0.2.1-rc.3` | +| 当前基线 | `0.2.1-rc.4`(实例升级后按第〇条第 5 点重跑过两个契约门:`verify:typert` → 4 端点 OK;`verify:remote` → 7/7) | +| `engines.dsh` | `>=0.2.1-rc.3 <0.3.0` —— rc.3 也验证过,不因抬基线而缩小可安装范围 | + +--- + +## 1. settings 导航图标:用 DOM 打标 + CSS mask(`src/client/index.js` 的 `installSettingsNavIcon`) + +**为什么自研**:官方没有 icon 插口。 + +- 官方设置页把 `settings.section` 的条目投影成三个字段 —— `id` / `order` / `label`: + `@deepseek-ai/dsh-client-ui-settings-general` 的 nav rows `getSnapshot` 里 + `ctx.slots.entries("settings.section").map((e) => ({ id: e.options.id ?? "", order: + e.options.order ?? 0, label: resolveSlotLabel(e.options.label) ?? "" }))`。 +- 图标由该包自己的 `navIcon(id)` 按 id 白名单决定,未列出的 id 回落到设置齿轮 —— + 同包 `function navIcon(id)`,注释原文 "unknown ids fall back to the settings gear"。 + +**所以**:第三方分区只能拿齿轮。当前实现给"自己那一行"加 `data-tsd-nav` 属性,再用 +`::before` + mask 画字形:不改 DOM 结构、不碰 React 管的 ``(替换会让 React 卸载 +时抛 `NotFoundError`)、认不出行就静默退化。 + +**升级路径**:官方一旦给 `settings.section` 的 options 加上 `icon` 字段,这个模块整体 +删除(那时它是可引用的 L0,不该再留补缺)。 + +--- + +## 2. client → host:原生 typert Remote(已接)+ `connection.fetch` 兜底 + +**现状**:`src/host/typert.js` 在宿主有 typert 注册表时,注册一份**原生贡献**并提供一个**接收方 +服务**;`src/client/index.js` 的 `hostCall` **先**走 `remote['dsh-plugin-usage']`,失败再退回 +`connection.fetch` 的 `/api/usage/*` 与 legacy `/usage` 通道。两条通道都常驻,不是二选一。 + +**原生要求逐条(都从分发物里取证,不是转述)**: + +1. 贡献形状:`package` / `face: 'host'` / `schemas[]` / `model.{services,events,objects}` / + `invocations[]`(`@deepseek-ai/dsh-typert-loader` `validateTypertManifest`)。 +2. 每条 invocation 要 `id/service/namespace/method`;参数 `source` 只允许 `json`/`lookup`, + **参数与结果都必须是 strict codec**:`mode === 'strict'` + 非空 `typeSymbol` + `create()`; + 结果还要给 `encode`(`requireStrictCodec`;没有 encode 时 gateway 会跳过自己的结果处理)。 +3. `namespace` **必须是包名**:client 侧服务键 `remote.` + (`dsh-api-gateway` client 的 `remoteServiceKey`)。写成端点名会挂载成功但永远调不到。 +4. **接收方服务**:gateway 按 `descriptor.service` 在接收方 ctx 上解析服务,并逐字段核对 + `typertRemote` 绑定(`service` = 实例本身 / `serviceKey` = 包名 / `namespace` = 包名)。 + 所以 `registerTypert` 先 `ctx.reflect.provide('dsh-plugin-usage', receiver)`,再注册面; + 注册被拒时**把接收方服务撤回去**并留在 Fetch 通道上 —— 半个挂上的面比没有更糟。 + +**为什么不是构建期 `exports["./typert"]`**:那条路径要官方 loader 扫描到包,同时仍要接收方 +服务;运行期 `ctx.typert.register()` 是官方公开入口(typert-registry README:"any other owner +calls ctx.typert.register(contribution) directly"),不需要新增运行时依赖,且归属落在本插件 +自己的 fiber 上(随卸载自动注销)。 + +**两条落地时的实测坑(别再踩)**: + +1. 提供服务用 **`ctx.provide(name, value)`**(cordis `Context.provide`,"Register a service + implementation owned by the current fiber… returns a disposer")。`ctx.reflect` 是 `Service` + 构造器内部的门面,插件 ctx 上取不到 —— 用它会让整条路径静默失效。 +2. 客户端取 Remote 用 **`ctx.get('remote.<包名>')`**(gateway 按 `remoteServiceKey(namespace)` + 建的服务键);`ctx.remote[包名]` 是旧形状,且属性访问在严格代理上**会抛**,只能作为受 + 保护的次选。 +3. **不要在激活期一次性探测 `ctx.get('typert')`**:cordis 的 `get` 只返回 + **提供方 fiber 已激活**的服务(`Context.get` → `_getImpl` 里 `if (strict && impl.fiber.state + !== 2) return`),而同一组合里的兄弟 bundle 可能比我们晚激活。实机后果是:宿主编排里 + 明明有 typert 注册表,插件却报 "no typert registry in this composition" 并落到 Fetch。 + 正确写法是**声明依赖**,在依赖就绪时再注册: + ```js + ctx.inject(['typert'], (typertCtx) => { Object.assign(channel, registerTypert(typertCtx, handlers, log)) }) + ``` + 与 `connection` 的写法一致(`registerRPC` 里两处并列),缺这个服务时回调不触发、Fetch 照样工作。 + +**通道决策可查**:`registerTypert` 返回 `{ ok, transport, reason }`,随每次 dashboard 响应 +以 `channel` 字段下发(插件 logger 不一定进宿主日志)。所以"走了哪条、为什么"不需要猜。 + +**真机实测(2026-10-29,work-exp,DSH NEXT 0.2.1-rc.3)**:dashboard 打开后网络里出现 +`POST /api/dsh-plugin-usage/query` → **200**,响应 `channel` 为 +`{"ok":true,"transport":"remote","reason":"registered 4 endpoints"}`;页面数据完整渲染 +(991.43M token / 2,562 次调用)。`/api/usage/*` 只在自举窗口(`$mount` 尚未落地的头一两个 +请求)出现,之后自动走 Remote —— 这就是"两条通道都常驻"的设计意图,不是残留。 + +**门**: +- `npm run verify:typert` 直接从本机 asar 取出官方 `validateTypertManifest` 跑一遍 + (缺 asar 时明确 SKIPPED,不假装通过); +- `npm run verify:remote` 更狠一步:把**真实的 cordis + 真实的 typert 注册表**从 asar 里取出来, + 在进程里跑一遍本插件的注册路径,并**反向**验证"激活期一次性探测 `ctx.get('typert')` 必然失败"。 + 这一条不需要重启真机就能证明通道成立(2026-10-29 实测:面落在 `dsh-plugin-usage/query`, + namespace/method 正确,接收方服务带 `typertRemote` 绑定); +- `tests/typert.test.js` 覆盖 loader 不查但 gateway 要的规则:namespace = 包名、接收方绑定、 + wire 名合法性、id 唯一性、以及"注册被拒要把接收方撤回去"; +- `tests/rpc.test.js` 断言两条通道都挂上,客户端侧 `tests/dialog.test.cjs` 断言优先 Remote、 + 失败回落 Fetch。 + + +--- + +## 3. 折叠缓存与诊断文件:一处**已知的**自建旁路,以及它为什么还留着 + +**现状**:`src/host/fold-cache.js` 把每个会话折叠后的记录写到 +`/cache/dsh-plugin-usage/fold/.json`(临时文件 + rename 原子写), +`src/host/scan.js` 在同一目录写一份 `last-pass.json`(一轮扫描的耗时摘要,纯诊断)。 + +**官方确实有对应通道**(这条要写清楚,否则"留着"就成了"我觉得"): + +- `@deepseek-ai/dsh-storage` —— 服务键 `storage`,`var Storage = class extends Service { constructor(ctx) { super(ctx, "storage") } }`, + 后端注册在 `backend`,数据面挂在 `forms`,`get domain()` 取 domain 形态; +- `@deepseek-ai/dsh-storage-json` —— `config: { root: !!js dshHomePath('storages') }`; +- `@deepseek-ai/dsh-storage-domain` —— `async open(spec)`(`lib/index.js`),返回带表/键/校验的 domain,并 `provide("storageDomain", facility)`; +- **官方自己就是这么存同类东西的**:`@deepseek-ai/dsh-session-projection-cache` 的注释原文 + "per-record layout — one version-stamped checkpoint document per session",数据落在 `session_projcache` domain 上。 + 也就是说"按会话存一份带版本号的检查点"这件事,官方已经有先例,而且走的是 storageDomain。 + +**所以按第〇条第 3 点,这是一处自建旁路。保留它的理由(三条,都不是"更好用"):** + +1. **这份数据是派生物,必须能整目录删掉重算**。`FOLD_CACHE_VERSION` 变化、节假日表更新、会话日志回滚, + 都是"作废重算";而 storageDomain 把数据当 **durable**:`open(spec)` 会 `await unit.loadAll()` 后 + **逐条**过 `valueSchema.parse`,不合法要 `invalidRecords: 'backup-and-skip'` 搬走并记日志。 + 给一份按设计就该丢弃的缓存背上迁移语义,是把成本放到错的一侧。 +2. **`open()` 是急加载的,而缓存只该懒读**。本机实测(2026-10-30):258 个会话、合计 **12 MB**、 + 最大单条 1.6 MB、中位数 7 KB。今天 12 MB 还能接受,但这是**随历史线性增长**的派生物 —— + 把它变成"每次激活先把全部记录 parse 一遍",等于把刚修掉的启动开销换个位置搬回来 + (对照:404 MB 日志的读取+解压是 12.5 s,热启动靠懒读压到 0.08 s)。 +3. **插件零运行时依赖**(只有 schemastery)。domain 的 `valueSchema` 需要一个校验器;为缓存引入 zod + 或自写一套 schema,只为校验我们自己写出去、自己也认得出的 JSON,不划算。 + 另外缓存按后端 `revision` 整条覆盖、不需要变更事件 —— 而那正是 storageDomain 相对自由命名空间多出来的部分。 + +这三条都是**可复核的事实**(服务实现、实测字节数、依赖清单),不是"我觉得它不好用"。一旦第 2 条的前提变了 +(缓存不再随历史增长,或官方给 domain 加了懒加载/只读视图),这处旁路就应当按下面的路径迁走。 + +**升级路径**(一旦出现"跨实例共享/可见性/诊断要统一"的需求,按这个走,不要再加第三个目录): + +```js +const domain = await ctx.storageDomain.open(defineDomain({ + name: 'dsh_usage_fold', + tables: { sessions: { valueSchema } }, +})) +ctx.effect(() => () => domain.close(), 'usage: fold domain') +``` + +`readEntry/writeEntry` 换成 domain 的读/写,`FOLD_CACHE_VERSION` 变成 `version` 字段(domain 自己会校验)。 + +**可核**:`tests/fold-cache.test.js`(原子写 / 签名 / 不做 prune)把行为钉住; +`last-pass.json` 是**诊断面**不是数据面 —— 删掉它不影响任何统计,`response.scan` 里也有同一份摘要。 + +**为什么一次查询会启动一轮全量扫描(读请求带写副作用)** + +第〇条第 3 点讲"不自建旁路",但这里还有一条更微妙的:**查询不该有副作用**。我们明知故犯, +因为不这么做,加载态根本不可能被看见: + +- 全量统计(含缓存水合)暖缓存 **0.78 s**、冷缓存 **~12 s**(实测,见上); +- 面板是**按需挂载**的:用户点开 设置 → 用量统计 时,进程启动早就过去了。 + +所以若在 `apply` 里开扫,那 0.78 s 永远发生在用户打开面板之前 —— 代码里有加载态、屏幕上一帧都没有 +(这条我们踩过:连着重启十几次都"没有加载动画")。现在改成 `handlers.set('query')` 里调 +`startBackfillOnDemand`:**面板打开的那一刻就是统计开始的那一刻**,骨架屏与 +`正在统计 n/N 个会话…` 的可见时长等于工作本身的时长。 + +代价与边界,写在这里免得上游 review 当成性能回退: + +1. 查询是**幂等**的:`state.backfill.started` 闩住,只有第一次查询真正启动; +2. 写入的只是**派生物缓存**(`cache/dsh-plugin-usage/fold`,可整目录删除),不碰用户数据、不写设置; +3. 后台任务**不可能弄死宿主**:`void runBackfill(...).catch(...)` 兜底,日志经 `safeLog()` + —— 这两条是实际事故的产物(`logSink(...).warn is not a function` 直接把 dsh 打挂过); +4. 门:`tests/lazy-backfill.test.js`(首次启动 / 幂等 / 无持久化立即 done / 接线门 / 坏 logger / + `ctx.get` 抛异常),其中接线门断言 `apply` 里不得再出现 `runBackfill`,防止有人"顺手"改回启动时预热。 + +--- + +## 4. 已经和原生对齐的部分(同样取证过,别再改回去) + +| 项 | 位置 | 官方对照 | +|---|---|---| +| 词典注册/绑定 | `ctx.effect(() => ctx.locale.register(NS, {zh, en}))` + `ctx.locale.bind(NS)` | 官方 `dsh-client-ui-settings-plugin-inventory` 的 `apply`(同形) | +| 设置分区注册 | `ctx.slots.inject('settings.section', () => ctx.slots.register({name, id, order, label, locale}, C))` | 同上(官方也不把 `slots.inject` 包进 `ctx.effect`) | +| 客户端 bundle 契约 | 构建产物 `window.__ModuleLoader__.load({id, factory})` | 任一官方 `*.client.js` | +| 日志 | `ctx.logger`(`ctx.get('logger')` → `ctx.logger` → `console` 兜底) | 官方插件用 `ctx.logger.*` | +| 会话用量 fold | 自己折叠事件(官方 `tokenUsage` 只有会话级总量,没有分模型/分时刻) | 由 `tests/fold-parity.test.js` 拿官方 fold 的录制结果对账 | +| client→host | 原生 typert Remote(贡献 + 接收方服务),Fetch 作兜底 | 见上面 §2,`npm run verify:typert` 用官方校验器验 | +| 错误上页面 | 宿主只发稳定码 `internal`,界面按码出话,堆栈进日志 | 库经验⑪ | +| 配置 | schemastery `Config` + `ctx.settings.update('usage', patch)` | 原生配置路径 | +| patch 行 | `cordis.patch.yml` 里 `id: usage` | 库经验⑧ | From 28f438a6eda00ac564a795ab42d10fb82d1ea2a6 Mon Sep 17 00:00:00 2001 From: XinSpark Date: Sat, 31 Oct 2026 03:19:13 +0800 Subject: [PATCH 4/6] fix(prices): keep the generated calendar free of machine paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The holiday generator recorded the directory it derived the year span from (`session store (C:\Users\...\sessions)`) into `coverage.basis`. That string ships inside the package, so it leaked the maintainer's home directory — and the weekly CI run, which has no session store, would rewrite it to `calendar default` and back on every regeneration. The span still comes from the session store; only the recorded label is now environment-neutral (`session store` / `calendar default`). A gate in tests/holiday-years.test.js rejects an absolute path in the generated file. --- scripts/gen-prices.mjs | 6 +++++- src/host/holidays.js | 2 +- tests/holiday-years.test.js | 13 ++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/scripts/gen-prices.mjs b/scripts/gen-prices.mjs index 16cbb92..5d2dc12 100644 --- a/scripts/gen-prices.mjs +++ b/scripts/gen-prices.mjs @@ -76,7 +76,11 @@ const HOLIDAY_SPAN = (() => { usageFromMs: Number.isFinite(usage.fromMs) ? usage.fromMs : undefined, usageToMs: Number.isFinite(usage.toMs) ? usage.toMs : undefined, }); - return { ...span, source: span.usedUsage ? 'session store (' + SESSIONS_ROOT + ')' : 'calendar default' }; + // Deliberately NOT the directory it was read from: this string ships inside the + // package, and a maintainer's home path is both a privacy leak and a source of + // churn (the weekly CI run, which has no session store, would rewrite it and + // flip the file back and forth on every regeneration). + return { ...span, source: span.usedUsage ? 'session store' : 'calendar default' }; })(); const HOLIDAY_YEARS = (() => { diff --git a/src/host/holidays.js b/src/host/holidays.js index 8d8a5c6..d76b852 100644 --- a/src/host/holidays.js +++ b/src/host/holidays.js @@ -6,7 +6,7 @@ export const PUBLIC_HOLIDAYS = { "coverage": { "fromYear": 2025, "toYear": 2027, - "basis": "session store (C:\\Users\\FXS\\.dsh\\sessions)", + "basis": "session store", "years": [ 2025, 2026, diff --git a/tests/holiday-years.test.js b/tests/holiday-years.test.js index 0495b37..8671343 100644 --- a/tests/holiday-years.test.js +++ b/tests/holiday-years.test.js @@ -10,7 +10,7 @@ */ import test from 'node:test' import assert from 'node:assert/strict' -import { mkdtempSync, mkdirSync, writeFileSync, utimesSync, rmSync } from 'node:fs' +import { mkdtempSync, mkdirSync, writeFileSync, utimesSync, rmSync, readFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' @@ -115,3 +115,14 @@ test('a published year clears nothing it should keep', () => { assert.deepEqual(acc.dates, { '2025-10-01': '国庆节' }) assert.equal(acc.years[2025].unpublished, true, 'the year is re-labelled unpublished') }) + +test('the generated calendar records its span without a machine path', () => { + const text = readFileSync(new URL('../src/host/holidays.js', import.meta.url), 'utf8') + const basis = /"basis":\s*"([^"]*)"/.exec(text) + assert.ok(basis, 'coverage.basis must be present') + // The basis ships inside the package. A drive letter or POSIX absolute path + // would leak the maintainer's home directory, and the weekly CI run (which has + // no session store) would rewrite the string on every regeneration — churn on + // a file whose only job is data. Two environment-neutral values are allowed. + assert.ok(['session store', 'calendar default'].includes(basis[1]), basis[1]) +}) From 8f5205640ee623ee621328bc98f219470fb7dd33 Mon Sep 17 00:00:00 2001 From: XinSpark Date: Sat, 31 Oct 2026 03:19:13 +0800 Subject: [PATCH 5/6] docs: 0.5.0 demo images and market screenshots - Replace image.png / image-1.png with the 0.5.0 dashboard (overview, then the tooltip / heatmap / model table). - Add screenshots.json so the plugin market reads these two images straight from this repository instead of extracting them from the README. - README: state the verified engines range (>=0.2.1-rc.3, verified on rc.4) and the composer-dock requirement; CHANGELOG: fold in the 0.4.0 merge (dock pill kept), the current test count (224) and the generated-path fix. --- CHANGELOG.md | 11 +++++++++-- README.md | 5 +++-- image-1.png | Bin 667897 -> 949671 bytes image.png | Bin 659915 -> 948586 bytes package.json | 3 ++- screenshots.json | 4 ++++ 6 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 screenshots.json diff --git a/CHANGELOG.md b/CHANGELOG.md index c4f231e..b689925 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,7 +34,8 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). 必须来自宿主动态解析(防止 USD 视图印出 ¥)。 ## [0.5.0] - 2026-10-31 -一次发布的累积改动。`0.4.1`–`0.4.8` 是本地开发迭代(未单独发布),逐条明细在文末保留。 +基于 0.4.0(输入区成本 pill)发布;`0.4.1`–`0.4.8` 以及本地标注为 `0.4.0` 的定价改造都是 +开发迭代(未单独发布),逐条明细在文末保留。 ### Added @@ -57,9 +58,12 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **仪表盘**:按模型明细(可排序)、定价匹配弹窗(四态可改可撤)、年度热力图、币种切换、 每日/每小时趋势、未定价调用计数。 - `prices.yml` 定时重生成价目,`release.yml` 校验版本并创建 Release。 +- README 演示图更新为 0.5.0 仪表盘截图;新增 `screenshots.json`,插件市场按仓库里的声明取图。 ### Changed +- **与上游 0.4.0 合并**:输入区成本 pill(`conversation.composer.dock`,id `usage-cost`)原样保留, + 与重写后的 `apply` / 主题变量共存;`tests/client-dock.test.js` 继续守它的注册契约。 - **全量统计改为第一次查询才启动**(`startBackfillOnDemand`):此前在激活时开扫,缓存加载 (暖 0.78 s / 冷 ~12 s)总在用户打开面板之前完成,加载态永远看不见。代价是"读请求触发写", 权衡与边界写在 `docs/native-transport.md` §3。 @@ -76,10 +80,13 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `backfill` 计数出现 `{status: done, total: 258, done: 0}`("扫完了"其实读作"一条没扫")。 - 部分会话列表触发的 `prune()` 误删 257/258 条缓存,导致每次启动重折全量。 - 法定节假日被按峰时计价、`-free` 行被按付费孪生计价、变体名被判「未匹配」。 +- 节假日历生成物把维护者本机路径写进了 `coverage.basis`(随包发布、且每周 CI 重生成会来回翻转): + 现在只保留 `session store` / `calendar default` 两个与环境无关的值,并加门。 ### Tests -`npm test` 217 项(宿主行为 + 客户端槽位/加载态接线门);`tests/dialog.test.cjs` 75 项(构建产物); +`npm test` 224 项(宿主行为 + 客户端槽位/加载态/定价接线门);`tests/dialog.test.cjs` 75 项(构建产物); +`tests/client-dock.test.js`(0.4.0 输入区 pill)与 `tests/holiday-years.test.js` 的生成物路径门一并保留; `npm run verify:typert`(官方 loader 校验 4 个端点)与 `npm run verify:remote`(7 项)为原生契约门。 diff --git a/README.md b/README.md index dd3f8a6..9689b74 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,8 @@ id 只要表里有这一行就是精确、按它自己的价(促销期就是 0 ## 兼容性 -- DSH `>=0.2.0-rc.2 <0.3.0`(`engines.dsh`),Node ≥ 22 +- DSH `>=0.2.1-rc.3 <0.3.0`(`engines.dsh`;在 `0.2.1-rc.4` 上验证过两个原生契约门),Node ≥ 22 +- 输入区成本 pill 依赖 0.2.1 的 `conversation.composer.dock`:0.2.0 没有这个 slot,注入失败只告警,不影响设置页 - 更早的宿主保留 `Session.events` / `readFrom` 回退路径 ## 开发 @@ -109,7 +110,7 @@ npm run verify:typert # 用本机 DSH 里的官方 loader 校验 typert 贡献 npm run verify:remote # 用本机真实的 cordis + typert 注册表跑通原生通道(同上) ``` -`npm test` 有三层,缺一层就会漏掉一类问题: +`npm test` 有三层,外加一个真机契约门,缺一层就会漏掉一类问题: | 层 | 覆盖什么 | 失败会长什么样 | |---|---|---| diff --git a/image-1.png b/image-1.png index ed1517348df591ff3842c547920311a24af6a175..d2d866a764c8e6ba22222e7d1234473bf26deaee 100644 GIT binary patch literal 949671 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

67GCSixET8-&yZj8duBy`MWA76EO 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 z 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

*!pp_nId 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

+-;YTC{{8a2`gNvj!@7^&t!)31} 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 z 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ïXX#>t$q5DOjE)+O;{SH;Cn%}f?Pu%R5hp<^fe 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

9F_j%5F{@HW(th>tqpU-{2 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⁢8Tq;nOjrjS4T};vT~b$ee1*8$kJVHAt@}R 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

  • v95db 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

    y+3D_P-Kco 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%0ALfeFp!SLMO$J+XPPKCD@vsRVF68^ZV=gAR^ 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�qRi*9cXsTXiwZ*tPG57=WKq9^fdS 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

    ~xvfvGS09ZWb~P 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≪m2=b^71;_hL2`*HzOe)u#szIdPqK;N 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¥h@ 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�PNYvwBrmskrQc;2Cbjpiky&78|tj4)WV9e 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 Z<}pF8-k$vO5D|PS-c`PnCubb^{{hno)_(v1 literal 667897 zcmeFYRa{$N*De~gNO3I=#oeuVNYNH|cPLi0IJ9V?#hn&+r?}JN#VKxSaR?ARKtgi* zo$uY>zWKlV-FN5aTqJ9)U)Ee}WR7Rd@eG+CwO^|c;L+d#0006tRb^cOfbj3>6BZoo zzlVLfsfxb`+_$PGJ^%nE+kbt~)O1k#Jpf>Iu^}InR$EP-fLc)wHJ{1&7{pAt`4@b#&gP}}O#7a2#`q{F`*MJL@ zf-=(%>?)WfFoco$zkc{PUzdzK6IlYB{lU-w-5vjX=p_!8!vDVdH)p$KN@&Ud{(b)% zbswb-VEsRc_20M2F_Qyu|Bc}P^ZI11|6i>CS9kv(%$8e!Fvfqv4LBy}@$3~7CV+{h zKbQ=u$_XI-AKm>UPA)$d?W!R0dlt30o`k*lj|jN8*M4{&PU;$7{`5}hKR+BdK-x_+9w_#e86e z=p%w}CE~+&o72$2oeh>BL&?#=G5=9$`J85)o9Ydf)g%N}=W#oW_uZq(Sui^~@|4v2 zev?+=|E%b-f=M3Tf*ks=aAZz0O1k0JOTAGg8=(3hMrm#H%JkmAoEn&SwYI-p!+7tZ zh}?cL+~of(?)#*%a7GFg((qY)NSNj6M1yJ=1d25LzZsfswAXLsP}Q#!!h(8L&)U~+ z3{p^!NcxX!((aSXOazSN0;=x&u)fQ23Eum1-i|!0Tjn@`J=T#j{bw){H;jcty)yHV z?5iIUQsy7SYldJ9PIFMt3;@@EGz^Tpt=)bD=LgEpBTtgzv4cNmrAy6YFt;2QC0yeF zY$zUK=?GZn?6t($>)rn0;LywJnF6dnr-R`KSicE+>3{3$ay-z_@DnWHX5@DDA-@-e zcwh{~aNm)K;6)U8B_K^-;D_zrSz8iIufR5IhZ+2y=hxD}*j zTFgunofYM->f6u|Cs}4J{vqtoWC=+D$umYs;Eg4m;=y`>e3%5(wrF481b7 z+GvMbKo^;Idi}yRzHLG&F;1CdF4pyk!NDCDy%TC-9lj5Zg$D<}gGWy{LGnGGZSRn$ zvQ0NCp7K7A72?=o09&*>}>u6uyxd@+dtx)$A9Rhq&&w z-Kseay6NVrf~*eg)#Yf_-&M-onZA%IXUeB!h=uK3?lmKkweoU#H-{OI0S%A&U(=lS zgRRIc<)_!SW|l8(KF))$&*89#6%pKv=F97#$Whisqv# znYGxYw;2O!|77E1PTS9KEM|7)&=eo!gx`$ajav>ROwMdsh3woia3*;BNCj(%=jf{G^S)4^7T`;0kjISK<))9+ zS-@*^`oUNj`TLa}>6uZ!HeO`dCc{BNGeLdSkD5Jsh||D@%+Jsetwz~~gS%$>>4q6; z?Xb+>0c_~#%eb*%ZmB*t{cs*n+&b{gx>|(1t%V(YYCrY${8n?+cO!-m^%IYu9#j6w z<0I%p+*lCp4*f>Q)|Mnh1&g>ys$;kOSRz)>Wx2;UVJ)1n?t5qVLs)!71Ge{Wu%X)9 z$ISw~|6Xj9!9y8{it3#jZtJB{XyW{I$0Dne?EhF z?E|c{57EVc%PI8`X34hO`=d*%y032o-1>DZ^&)YUIc@WVsUjfHufzF{Q>tFrG@dtb zWAgfKh*9U&#c3{*SPnCsRg5(~fz78O(t}DFgu=7VmtQ0$H!oZJ7V_t`5q9t*P_tYbA}%F zjzY;d$!!&+?Hr>1;A%d#1-`(?b;gU(i(5B;UG1Q%;kuSvtz^>}M)^zTJCsR$Z;dig zTab+=3(5V4qH>$bsqR}Uci|f4>Rf+Vlz}jB8SjrGMf9jYTl1s-{ zMqK!Mjv{(s6_IT2AgCu!L;x{I63Y@xR0g_5B?VW)uv8o&5QrxWY8=+TfWMfmk!s7b!no`Gi6)eMn*vR|g+V;Jx-bWsh zxzMoz8{A@GT`P&pf||iw3iPDc&bg1ELVVYp?}7>-J2k7FS_}?DGyjFTH-azJGq2|G z%ymVcg+5EzJq*u$2fJAvOpH`G2KV#`K*w9}lMhQKLVfNzJ_go9E)W4;eCO=4KQo9R z!NBa0zUcr#f77%36_S7Q5SKgw2H9QJ>-UEDP?NfOGlf;J;c8yve~J2xI-1-v|>?xvwgD2ZR#TaRq^kj^(?FGbCEP zB582#&(0@(n}=;^(M{^;S+H99xh&B;?8*);fK0~;k}d2Hi+6JEFWNUpTs272S&~h4 zK+jVex>;ibpL?(~BVRF3N2_>7hJ0?u(;N(;a~CY@kJrU&C0{Tl+WxaPePBOqR0>QZ zpTxr}XEJd8{9P$J5+F^t_a6gk2+NK5F3J)^M4h&Z%@%tIXRYkAItB1Jq zzq~5?nZ9UiN2COn0Y{K0Y9h=pkQBCu0lgz_LxE+ZzEh-+1fa%YsZ>Z~ z7Qt!Q9q|H7&AMEpJ`|7GWrxm}WVXSnv#0&`qUs#>mhjk>#Tv(bM_Sf041AXgPVn2EF`oVm8j-2x*c++XE)w|VeOsSK z4)2Du{8NZ={~|!(+393(+J}B_)K}Nc`ZpQu%`ctn`nyx>ELUR+z6Tet@@%i(`^g8( zZ;=Vj$fWH}hoiolFaHRn-@1nmtQBaazgYuOeJVTuh6J|THKmZ9;30brJjJ^I^%qD}RU)Nd`X6V8;f zLh-#4u1>zAU}g%-o2woFS7^VIfGV!i>*^G3@wqk?IWA909gfndz0GguPIjaUG4V9F zscVYNV%s#|C&bcBNM)?cJj8Rm;e3Qx!#j|sJf^GKuJLvn)xQ-T`4pOf^7-h6_>DYU z%MV8zH@feKe+10av&u^p#^#LSEPJ_JgI2!;(>g zd;K{>QtPgAyWdtT)D_1Y-oC#-{yx-|^p`eKmAJEp??aOyBP&ag79CA5k3gI(VRO8| z%!9bY9!myEjUWe{+Jh&-kmeLW+2&VQAzy5d)?!0!Qu0kP(G@?2axx!3v#$-`Q+xev`JP*I zXXy!}&pL2X^*u!@kpxJa)~y`Jxce|Sq!U&F^jW^v7fDzQwaB$Kr>EBlDw6{ed=Ix{ zl-2V!!YS6t<{GX;hFHZ1cKh+^(5ABp z`ZN?E56JqVJknQ@jyFR{hifIy%4>BNL}&VoSeq{~JZX6k;x6;){4_~)ge95O);=_y zT~GH~JkIx(L3SH+*a*Wg#(OS_dyJGAxhT-pSB3mw(vMjbtsY)Iw@pa$NAs~Rbu|qs zvAqfN882%qb=pvyb?KjmIvUZ1pV?krG(>B5!)Fc~!x*mNO`>AiiM8!3b;&LhFFRN@715s#ej+u;4;7!~*0OwD@dEAgrei^DyT1~dpJmE49DC9C z6-PEYXMQZa_Zcf)%~UJ5i?8set^)`$VYgvwrRJ0$(v**<4c;A6@%i$m|SseAw>n$_m5(|Sh_KD76ARhp55sGwEP zgF66yV(6zINE_ZfONGq%~jsv9}9b zZ3ieb=Am0JxqU{GE0W5qk8~erF}^}Wq!s=Py|~#QbX6b(@MU_d{<98n|8^fVAEz>i zJUL#23!UnGpM6NwQWIBt_*UUsIY1KIU3k67nztg>Ei3%pfj7e_qBHO1{BAnH z47&AXv43AWiHNn_UYbE6oqS0ty>@uLI;PUZ!kAvzO5%Ep5I43{EB1PXdGDB*oAKd+ z#m%t*wzF6Ppbid8&Kh}GLTgUw;HvB-d&9XSd4Initmuw>B!7ywn8TlQU;yd%Y~PQJ z5*v2M^By%xF}(L3^mpy3(x|uUqmJm32{{DlDm>DCTf7-0{~T8L+(yTS|K$i9s5*%I zD{ifLAyuK9>i3Hr%z)Od8yi!J=+7-WOlbzAZMaMjZ)GND{#O6U_|HC5dW>0i9jx}I zcrnS$tqcwMMyW;H*`-xG%wXf#Rn_>(8vtH(K>r7gv|QJT2#vdAypUCzs?^FpIV~Rx zGKUJ@r@xaIvbSB>TiEl(dAu|c()QV;;^%k738ep+KfF)rVPo!1-M{?_U3T~iNf%`Y zE{9q894OaS`Y!0ooD@#_)u(xkdJ2^FdXm-GJM>H#@s9^VZY!e1t+HC*1#t=1pWgM3 z2R8IAC#l4^&^c%V6m-b**4yJFT!Uv$Lwh$ZH}`8wN3UF$VRY>M?LGt>=F?5`_q*_} zlbyu}%Rf20FiX7O6ydt3)c?cvP4vg#8$m-=W#DJ%zn2@{oiMBKDX{+<6)vP7d;glf zq7K&<%WwT{x8FvWErj;i@Od=u;W4_kYeM$Ya^7_b;BX`wynwOar?z5}KV;an>A}1l ziu2Ej%$47Vac9k>X$^>;Cf>0e%qQig<7Kv$CReyn&Zp#ZWLk z97qZ_iTRnMDp)$2j^^rxTeF;4Pdn)`o3~w_Uz@EvM^5+G0^gm$8u)!j`r4Lex3f)K zd{Tl`Q8nu^b%t*31nr@~?#;LB-VtH6?k4dg)<5AouJPprp);WnfS~=ipqdVY$ZC9P zYz27wWe;kKwNsNOArtq0YEM+F@(OAph&i+^snJr?b+YT?%Z1=m+COt|V%L7NJor?Y z3&4`7Hg(;vi^x{ayQwSjm9t0nrz4MnLLKnW z=zJOp#gedi@#?DY=<)j7 z;<&od;-YlItuqc_<_X5{7d~*~RbhcBTAfRI_D7>%7N4Y&(|oAg2R8OiGB^Oqt{o~T z+Ck)tc;;GsXH5JqrQ!2~|ClMelFYYto6-wFHL?zd3QcY0lWI<54lbNZC;J--R$ zw#FpLTxP6RFyT$fPvbLI~FSmA5GiSKf+5 z8d4GYEahx1=sf`jY^*0P1)XS|VZ4U9*a&{)Xk4s&;46;f_?|(EF|S&#`~D5>JoxeK zH1~%cG?eus=O7|*Vo~+cjO@VvmHr8THRs>wZQ3%qVZ|pOozcU?Mwj7<@a2ZPAlMBQ z7F^r?SuwTZs8iBs0<$fpJYX=a`%l4^jTLzW`Y=|xJ4XC;DUgc3!v0X$iLf@8L-Ce? zrs@;K+6hVk?*+X$72y-WlKDb*cdPo_hvaQ}M&LK2@~wM?iL~>?M;XvqOdAX+4K{|d z0CMTbxHRxw69lUqS8PXe@_$hF^tWnux`oDt-WMtfzj`WSQ3sI`Xu^r$XL)_m=t*H_ z;Jevq0IH+ECuYS`=nm*t^*u-*q5MNU;U@o=6Lz~Fn&ER@Q#S9DX9pA)SBMAo_d&S; zw}VerDGw6&pQ=^FQUK*nCBTFt10LDqiD9yVU)bIl(1z1zU0Q`ew+n`)s%Jgs`T_|) zkq>M?sxJofmj1}-Bv802px_+Nve-pv+iqs2qso0ZT2xZY70u#(#8V##hy2lQ`%s^iV5Huo?!#DE76|5)A5tXbbIc)Sebd2!#&2#5xshqd##@EJD zU|gwDnpewwX}XxZ4fRe675S{SSa2+5S>VA1*Z(D9{~_G)~aq}8@- z!F|LYCAh%-yyQ1`s29cUR!wk_XWnB6SK|U|9|AVL^}2klbdiaAaafe-N}>K$hCSjq zkkS3*#l5&(1K=+4u>GzY%F;ktV!6`SAKiZY_3PIVffK7J#Iq39xc0%Utlu}kvl^$z zY?;+M2OOM3Rn}>5+jjc8F+1A#m!526caSd#HLI{@=5UyCAx3)R3tjv=m4?`Qg%ohm z1cxevYdwiBYO0i!x~hT6-1%}8YI=_R&STWcIHq+SH?%G5UT=%g*U8J=gcPzP(W&~) zr;qERlbuppGMmGqv|Di^#Pq%?YX=cpwo@y+r--+*1A_2==eu{Qdgl}xFeRgta{<{W zuLpJU)cwYrYUp3{=oK0=O5RJuRFPMHp^rgH%A*a;e&Q{mv8M0BUxs{brQCo}a)qv| z>h-uV7JpWaPA6=NL03pn6&k7jU%dc#O~Uy14MgKjt=I_^3#PLVF#-XF zwN&#_bV4cMkY%r2{K1q&u?nm89vlqibcn1@>=SYNo1kE1yh6hsSx%=3Eui8u1?q{* zCvHAnDgpXMe;+mziZ-~r(DO5?@5XR81Q@Ig4;Dub^~#uEm5ytEHIFi!eBxFkox@d9 z2C$`I$HKzqu_;e98WB3-`pnJyi$Q4bhcMg4V| zcX~{%#sz%KO8qi-Qe6~(BRE4I@)$f|20Ac09a|A?Hq>(grv7}cF3IEf2klw~ ziHpLK>b`#Ogs>CcKM$H8S^k;7&B>5$Z9S~3l(rm9gg(tXoWdXt0{0r~u5;FsR&j!K zsugTHaypA0unY6qKUg``l^If~NS&^>)w%dKoLDVQPt$P7KDtu?yzbyNWYJpB&hA}D zf-qx0ZZ4HRi+ZsyuiuM4nJL&3+u zNR1GFwDY1XwB~fdFgbDo%L)MiM-3(Q(gn{ay~E=l@Mgk?8kW%@FNajJzziao0K)SA z0BB2g&xJr^d>hVcB*8Ng-k&wdx9il&fVi0S&yOUJG>!EKLFoBdg{XqpR4gLcbq_Wk)T~!18jxl`)h@uk;vdqWq2Z(rjFOcPajILINWgxq!-Kq%u zF|p_SSzqd=rBic^RxP4eG4HdTaB07(i~~PwCCeh&toR^-(8>qiDr-G}TV2WNyOUr% zKQ6Q_3v|uz{PTMN1*PJeR@-%nmeUx4Uf_**VpV#)DU>s>kkT6LlS$6_wspy?9|bu| zfs+HU7@GV12uOZHdo?bY-@nOI`!ol=T`H8_6XRejOIHgfQN6Gqb!(3mmCRYr=IUw_ zf@}XQ$j4r>*@S~8^qUzl#D(m+?b_0!t~0#1lg%9x$@F(Zj`?ouid4eCXX`kA-Fx{w z@FYEqGT2c4T2}t!ev_H#632yVx-h1 z1xdbx^nZy)>{%VqOr>3weBnM~*y$}gAi7Y2g`mFL)~vnBcVXTfQR9Qn2+k5t+@lMw zlU{FNfvFH3gp?;a=9b)q;9zEDp;7(R|Lx_c(12AQLx5dJKQG}dmWB4`U?%A4doG3t z@kzVQ#l6*DsPn72sRp4ZHXbB`IuW+p-lzL#%tLy&li~`}+CPay(Lj0$u^a48GaYnY)e%z!0GVH}<5j;R zn`u~D)xg6f$RR%VuAWvNH1~9i+;2kH9JTA+}dfnE8GPC=*@MopUySg}G!9g=YBlcA5{BZadOHS5}HZe-HP`A(TwR;~2gE zVSp{;G1wY)r-?B81)u!ZC#ZxQv^3=3Qa-k}W{R&Y!zYk-(bX{ITF;u8mA(9g@rPXE z)`Cvrm-VoXWrlSNo25~?T9=QW6X8CL!f`C&?d2LvYbq9-ZvADBCrapuRX=kl#Vf7q zXK*_7--nV_LiVHAN*i-clbOr4{!pp8fe{v20|jdVhURB8o!Q+pQE~U>%aq7ZH^t$^ zXoiFE9@$*S9avo+;yy$V^+S{=3`@(yKdf{`*>a~7@apKU-CLR=>A-uV^b>rVDsi!c z*(wV@as&A7G_A$qng2p`xWggBpU6e6RYjMs@LN%Opw_OiCF7AMIu)xnX0cqQ-n#iG zE`Et;=9lNRKA>M>)!lrt{R&;*DG~z;%EwY+Yzjvd)f5uc@c}HBn>=rDZPWn$odO!l zcXXnaLEE`5V|3_oe71&b;f>Ud0h%5DRQg>s3joNUn{;Y@<@GfdyUw?5M9&&w#4W79 zQ0BKhW-0;{ApEvs=4@qQQ?IIT@A?lkhd~r}v(4>iYLW27;Ps1}u+hgpJ214PJ!Z={ z?kj(5=gLw$gUG51p5hF=IBXTP2bGH!I5kW?m<`E@b28p41!=vFTwM4>zs5r-+wdGep9N%ZA z%z{U&8-gVLt#jyR^+gdA@2j!nlx7iVs$-6>$2L7QaiSpFX30*?8s?n`jO38UHdUVl z-lO@i-)oiP(YgT!2;Eh@MzKOSeyKsH?VoaX&VsMzL>o|l`PMoIL;Nt!@ODuOZtX)W zHExtu*#$MZ>F`N z0{02=!+=(5>oP!{LiNiJ%+?1&{h#rP{?VrUGnyl=tCO!esYaq6YH&Ir*)n}%4TD!S z0s@C56zRp4ZD=cK8vx(m`)TgWZw@zqe3!y|JL+Cz~Jq2+aR~5J_Mg>E0gK88w;Pf3{OYAdyNdv#JuCUf@2M&eX(b^OwIvS+msNl zGAB%4a3bqe%|*2ru&`gK6Bt2Xd1-5h&f z_Uq2Gpkyxx&%cH9k)FPZEr2i2koQ|Alg(sw9}sz7)=hr6%BX>CDoXbSk=+N%+<%e$ zdC^>nT73m$lLhPToA^KUG}(GRjB+r51`0+3#R=266t7kJA$27;p{z}vA=s4^V~335 ztnpQu`swwvxj!u9gsK~LWrV7`B}*uO7~rRr&b-fvb*hY>=wg0kVtL z&m=yA58F({Z_1&Yur+-n;IEjav;5tTZu^y6Y_WchrD`vD2O%Dh zGBd2uIIEW9AWvV`oALF%k*b;B#Y%;o&QXXS-J^x$NQdH~GT4bwi|9EqSZmtoGMKPs|d~`%mhIlj~2m-$a5D=r^%A2HSoL zt!%6A4^dPymMVO~2h^HoW3Oq7ZF;87535^0?fLq7`CQlZ+9aX1yU