codeburn/packages/core/package.json
iamtoruk 4ef24e9fcd refactor(core): tail migrations — hermes, warp, cursor-agent, quickdesk, devin (phase 8, sqlite batch 2)
Move the pure record decode for five sqlite-backed providers into
@codeburn/core, keeping discovery, sqlite I/O, pricing, and bash
base-name extraction CLI-side behind the dual-registry bridge.

sqlite variant: the host opens the database, runs the SQL, textualizes
BLOBs (warp stylized_command, quickdesk content/tool_names), probes
sqlite_master table variants (quickdesk), and re-throws SQLITE_BUSY so a
transient lock on a live database retries instead of being cached as an
empty result (hermes). The core decoders receive already-normalized rows.

Validator fixes over the drafted migration (original behavior is the
authority in every case):

- warp: restored the `run_command` tool-name check as an identity
  comparison. The draft had rewritten it as a bare Record lookup, so
  'constructor'/'toString'/'__proto__' resolved to inherited Object
  members instead of passing through. Added a regression test.
- warp: restored `safeNumber` to the host's semantics (positive finite
  numbers only). The draft's rewrite accepted numeric strings and
  negative values, changing token budgets and dominant-model selection
  for untrusted conversation_data.
- warp: `estimateTokensFromChars` now mirrors the host helper exactly.
- devin: model DISPLAY names move back CLI-side. The draft shipped a
  7-line regex standing in for the host's `getShortModelName`, which
  mis-rendered every non-Claude model id. The decoder now emits the raw
  generation_model / model_name ids and the CLI formats them.
- devin: dropped the added `costBasis: 'measured'`; the pre-migration
  call carried `costUSD` with no basis marker. Golden corrected.
- quickdesk: fixed an inverted source-variant predicate that routed
  `sourceId: 'metrics'` on a sessions.db path (and `sourceId:
  'sessions-db'` on a metrics path) to the wrong parser.
- cursor-agent: the "unrecognized transcript format" warning is now
  re-emitted from the real decode result via a decode wrapper. The draft
  re-derived `recognized` host-side as `hasUser && hasAssistant`, which
  silently dropped the warning whenever a jsonl transcript had both roles
  but produced no turns.
- cursor-agent: restored the per-conversation summary cache, so the
  attribution database is opened once per conversation id, not per source.
- cursor-agent/devin: the session id is derived once, host-side, and
  passed through, removing a second derivation that could disagree with
  the host's on Windows-style paths.
- hermes: `browser_vision` maps to Vision, matching the original table.

Goldens re-verified by running each bridge fixture through the
pre-migration provider implementation: all five reproduce field-for-field.
2026-07-26 20:26:18 -07:00

175 lines
5.3 KiB
JSON

{
"name": "@codeburn/core",
"version": "0.9.19",
"description": "Shared, provider-agnostic core for CodeBurn (parsing, pricing, models). Skeleton — populated in later phases of the core extraction.",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js"
},
"./schema": {
"types": "./dist/schema.d.ts",
"import": "./dist/schema.js"
},
"./observations": {
"types": "./dist/observations.d.ts",
"import": "./dist/observations.js"
},
"./diagnostics": {
"types": "./dist/diagnostics.d.ts",
"import": "./dist/diagnostics.js"
},
"./fingerprint": {
"types": "./dist/fingerprint.d.ts",
"import": "./dist/fingerprint.js"
},
"./contracts": {
"types": "./dist/contracts.d.ts",
"import": "./dist/contracts.js"
},
"./detectors": {
"types": "./dist/detectors/index.d.ts",
"import": "./dist/detectors/index.js"
},
"./providers/claude": {
"types": "./dist/providers/claude/index.d.ts",
"import": "./dist/providers/claude/index.js"
},
"./providers/codebuff": {
"types": "./dist/providers/codebuff/index.d.ts",
"import": "./dist/providers/codebuff/index.js"
},
"./providers/codewhale": {
"types": "./dist/providers/codewhale/index.d.ts",
"import": "./dist/providers/codewhale/index.js"
},
"./providers/codex": {
"types": "./dist/providers/codex/index.d.ts",
"import": "./dist/providers/codex/index.js"
},
"./providers/grok": {
"types": "./dist/providers/grok/index.d.ts",
"import": "./dist/providers/grok/index.js"
},
"./providers/kimi": {
"types": "./dist/providers/kimi/index.d.ts",
"import": "./dist/providers/kimi/index.js"
},
"./providers/qwen": {
"types": "./dist/providers/qwen/index.d.ts",
"import": "./dist/providers/qwen/index.js"
},
"./providers/zerostack": {
"types": "./dist/providers/zerostack/index.d.ts",
"import": "./dist/providers/zerostack/index.js"
},
"./providers/droid": {
"types": "./dist/providers/droid/index.d.ts",
"import": "./dist/providers/droid/index.js"
},
"./providers/mux": {
"types": "./dist/providers/mux/index.d.ts",
"import": "./dist/providers/mux/index.js"
},
"./providers/openclaw": {
"types": "./dist/providers/openclaw/index.d.ts",
"import": "./dist/providers/openclaw/index.js"
},
"./providers/open-design": {
"types": "./dist/providers/open-design/index.d.ts",
"import": "./dist/providers/open-design/index.js"
},
"./providers/lingtai-tui": {
"types": "./dist/providers/lingtai-tui/index.d.ts",
"import": "./dist/providers/lingtai-tui/index.js"
},
"./providers/gemini": {
"types": "./dist/providers/gemini/index.d.ts",
"import": "./dist/providers/gemini/index.js"
},
"./providers/kimicode": {
"types": "./dist/providers/kimicode/index.d.ts",
"import": "./dist/providers/kimicode/index.js"
},
"./providers/pi": {
"types": "./dist/providers/pi/index.d.ts",
"import": "./dist/providers/pi/index.js"
},
"./providers/crush": {
"types": "./dist/providers/crush/index.d.ts",
"import": "./dist/providers/crush/index.js"
},
"./providers/zcode": {
"types": "./dist/providers/zcode/index.d.ts",
"import": "./dist/providers/zcode/index.js"
},
"./providers/zed": {
"types": "./dist/providers/zed/index.d.ts",
"import": "./dist/providers/zed/index.js"
},
"./providers/forge": {
"types": "./dist/providers/forge/index.d.ts",
"import": "./dist/providers/forge/index.js"
},
"./providers/goose": {
"types": "./dist/providers/goose/index.d.ts",
"import": "./dist/providers/goose/index.js"
},
"./providers/hermes": {
"types": "./dist/providers/hermes/index.d.ts",
"import": "./dist/providers/hermes/index.js"
},
"./providers/warp": {
"types": "./dist/providers/warp/index.d.ts",
"import": "./dist/providers/warp/index.js"
},
"./providers/cursor-agent": {
"types": "./dist/providers/cursor-agent/index.d.ts",
"import": "./dist/providers/cursor-agent/index.js"
},
"./providers/quickdesk": {
"types": "./dist/providers/quickdesk/index.d.ts",
"import": "./dist/providers/quickdesk/index.js"
},
"./providers/devin": {
"types": "./dist/providers/devin/index.d.ts",
"import": "./dist/providers/devin/index.js"
}
},
"files": [
"dist",
"schemas"
],
"scripts": {
"build": "tsup",
"typecheck": "tsc --noEmit",
"test": "vitest run",
"emit-schemas": "tsx scripts/emit-schemas.mts"
},
"engines": {
"node": ">=22.13.0"
},
"dependencies": {
"zod": "^3.25.76"
},
"devDependencies": {
"@types/node": "^22.0.0",
"ajv": "^8.17.1",
"tsup": "^8.0.0",
"tsx": "^4.19.0",
"typescript": "^5.5.0",
"vitest": "^3.1.0",
"zod-to-json-schema": "^3.24.1"
},
"author": "AgentSeal <hello@agentseal.org>",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/getagentseal/codeburn.git",
"directory": "packages/core"
}
}