@tokenfactory/acc-runner 0.44.0 → 0.44.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -1
- package/dist/bin-resolve.d.ts +39 -3
- package/dist/bin-resolve.d.ts.map +1 -1
- package/dist/bin-resolve.js +176 -12
- package/dist/bin-resolve.js.map +1 -1
- package/dist/build-fingerprint.d.ts +66 -0
- package/dist/build-fingerprint.d.ts.map +1 -0
- package/dist/build-fingerprint.js +70 -0
- package/dist/build-fingerprint.js.map +1 -0
- package/dist/build-info.generated.d.ts +3 -0
- package/dist/build-info.generated.d.ts.map +1 -0
- package/dist/build-info.generated.js +3 -0
- package/dist/build-info.generated.js.map +1 -0
- package/dist/capacity/resume-controller.d.ts +5 -3
- package/dist/capacity/resume-controller.d.ts.map +1 -1
- package/dist/capacity/resume-controller.js +9 -0
- package/dist/capacity/resume-controller.js.map +1 -1
- package/dist/chat-delegation-guard.d.ts +23 -0
- package/dist/chat-delegation-guard.d.ts.map +1 -0
- package/dist/chat-delegation-guard.js +62 -0
- package/dist/chat-delegation-guard.js.map +1 -0
- package/dist/chat-lane.d.ts +17 -6
- package/dist/chat-lane.d.ts.map +1 -1
- package/dist/chat-lane.js +29 -8
- package/dist/chat-lane.js.map +1 -1
- package/dist/companion-identity.d.ts +37 -0
- package/dist/companion-identity.d.ts.map +1 -1
- package/dist/companion-identity.js +98 -29
- package/dist/companion-identity.js.map +1 -1
- package/dist/companion-run.d.ts +1 -50
- package/dist/companion-run.d.ts.map +1 -1
- package/dist/companion-run.js +48 -105
- package/dist/companion-run.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -3
- package/dist/config.js.map +1 -1
- package/dist/conformance.d.ts +49 -0
- package/dist/conformance.d.ts.map +1 -0
- package/dist/conformance.js +121 -0
- package/dist/conformance.js.map +1 -0
- package/dist/cost-pricing.d.ts +91 -0
- package/dist/cost-pricing.d.ts.map +1 -1
- package/dist/cost-pricing.js +115 -1
- package/dist/cost-pricing.js.map +1 -1
- package/dist/credential-identity.d.ts +70 -0
- package/dist/credential-identity.d.ts.map +1 -0
- package/dist/credential-identity.js +128 -0
- package/dist/credential-identity.js.map +1 -0
- package/dist/doctor.d.ts +37 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +300 -41
- package/dist/doctor.js.map +1 -1
- package/dist/engines/chat-stream.d.ts +71 -1
- package/dist/engines/chat-stream.d.ts.map +1 -1
- package/dist/engines/chat-stream.js +126 -8
- package/dist/engines/chat-stream.js.map +1 -1
- package/dist/engines/claude-code-chat.d.ts +11 -1
- package/dist/engines/claude-code-chat.d.ts.map +1 -1
- package/dist/engines/claude-code-chat.js +69 -5
- package/dist/engines/claude-code-chat.js.map +1 -1
- package/dist/engines/claude-code.d.ts.map +1 -1
- package/dist/engines/claude-code.js +30 -6
- package/dist/engines/claude-code.js.map +1 -1
- package/dist/engines/codex.d.ts.map +1 -1
- package/dist/engines/codex.js +18 -5
- package/dist/engines/codex.js.map +1 -1
- package/dist/engines/registry.d.ts +26 -0
- package/dist/engines/registry.d.ts.map +1 -1
- package/dist/engines/registry.js +37 -0
- package/dist/engines/registry.js.map +1 -1
- package/dist/engines/types.d.ts +5 -0
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/failure-classifier.d.ts +1 -1
- package/dist/failure-classifier.d.ts.map +1 -1
- package/dist/failure-classifier.js +65 -12
- package/dist/failure-classifier.js.map +1 -1
- package/dist/gh.d.ts +15 -0
- package/dist/gh.d.ts.map +1 -1
- package/dist/gh.js +18 -0
- package/dist/gh.js.map +1 -1
- package/dist/git.d.ts +6 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +27 -1
- package/dist/git.js.map +1 -1
- package/dist/instance.d.ts +30 -0
- package/dist/instance.d.ts.map +1 -0
- package/dist/instance.js +51 -0
- package/dist/instance.js.map +1 -0
- package/dist/keychain.d.ts +20 -7
- package/dist/keychain.d.ts.map +1 -1
- package/dist/keychain.js +40 -4
- package/dist/keychain.js.map +1 -1
- package/dist/loc-advisory.d.ts +70 -0
- package/dist/loc-advisory.d.ts.map +1 -0
- package/dist/loc-advisory.js +196 -0
- package/dist/loc-advisory.js.map +1 -0
- package/dist/locks/claim-lock-policy.d.ts +67 -0
- package/dist/locks/claim-lock-policy.d.ts.map +1 -0
- package/dist/locks/claim-lock-policy.js +132 -0
- package/dist/locks/claim-lock-policy.js.map +1 -0
- package/dist/login.d.ts +63 -2
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +93 -8
- package/dist/login.js.map +1 -1
- package/dist/mcp-spawn.d.ts +54 -0
- package/dist/mcp-spawn.d.ts.map +1 -1
- package/dist/mcp-spawn.js +88 -4
- package/dist/mcp-spawn.js.map +1 -1
- package/dist/memory-context.d.ts +106 -0
- package/dist/memory-context.d.ts.map +1 -0
- package/dist/memory-context.js +220 -0
- package/dist/memory-context.js.map +1 -0
- package/dist/memory-curation.d.ts +172 -0
- package/dist/memory-curation.d.ts.map +1 -0
- package/dist/memory-curation.js +277 -0
- package/dist/memory-curation.js.map +1 -0
- package/dist/migration-seq-guard.d.ts +28 -1
- package/dist/migration-seq-guard.d.ts.map +1 -1
- package/dist/migration-seq-guard.js +111 -6
- package/dist/migration-seq-guard.js.map +1 -1
- package/dist/output-diagnostics.d.ts +15 -0
- package/dist/output-diagnostics.d.ts.map +1 -0
- package/dist/output-diagnostics.js +95 -0
- package/dist/output-diagnostics.js.map +1 -0
- package/dist/pr-open-guard.d.ts +67 -0
- package/dist/pr-open-guard.d.ts.map +1 -0
- package/dist/pr-open-guard.js +79 -0
- package/dist/pr-open-guard.js.map +1 -0
- package/dist/prepr-gate.d.ts +229 -1
- package/dist/prepr-gate.d.ts.map +1 -1
- package/dist/prepr-gate.js +406 -3
- package/dist/prepr-gate.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +43 -5
- package/dist/program.js.map +1 -1
- package/dist/provider-auth.d.ts +27 -0
- package/dist/provider-auth.d.ts.map +1 -1
- package/dist/provider-auth.js +33 -0
- package/dist/provider-auth.js.map +1 -1
- package/dist/runtime/cache-dir.d.ts.map +1 -1
- package/dist/runtime/cache-dir.js +8 -3
- package/dist/runtime/cache-dir.js.map +1 -1
- package/dist/runtime/decision-provenance.d.ts +63 -0
- package/dist/runtime/decision-provenance.d.ts.map +1 -0
- package/dist/runtime/decision-provenance.js +107 -0
- package/dist/runtime/decision-provenance.js.map +1 -0
- package/dist/runtime/prompt-substitute.d.ts +100 -0
- package/dist/runtime/prompt-substitute.d.ts.map +1 -0
- package/dist/runtime/prompt-substitute.js +124 -0
- package/dist/runtime/prompt-substitute.js.map +1 -0
- package/dist/runtime/quarantine.d.ts +11 -0
- package/dist/runtime/quarantine.d.ts.map +1 -1
- package/dist/runtime/quarantine.js +16 -1
- package/dist/runtime/quarantine.js.map +1 -1
- package/dist/runtime/review-cost-cap.d.ts +167 -0
- package/dist/runtime/review-cost-cap.d.ts.map +1 -0
- package/dist/runtime/review-cost-cap.js +182 -0
- package/dist/runtime/review-cost-cap.js.map +1 -0
- package/dist/runtime/reviewer-abstain.d.ts +101 -0
- package/dist/runtime/reviewer-abstain.d.ts.map +1 -0
- package/dist/runtime/reviewer-abstain.js +138 -0
- package/dist/runtime/reviewer-abstain.js.map +1 -0
- package/dist/runtime/reviewer.d.ts +165 -2
- package/dist/runtime/reviewer.d.ts.map +1 -1
- package/dist/runtime/reviewer.js +752 -111
- package/dist/runtime/reviewer.js.map +1 -1
- package/dist/runtime/running-build.d.ts +24 -0
- package/dist/runtime/running-build.d.ts.map +1 -0
- package/dist/runtime/running-build.js +62 -0
- package/dist/runtime/running-build.js.map +1 -0
- package/dist/runtime/singleton.d.ts.map +1 -1
- package/dist/runtime/singleton.js +9 -1
- package/dist/runtime/singleton.js.map +1 -1
- package/dist/runtime/worktree.d.ts +45 -0
- package/dist/runtime/worktree.d.ts.map +1 -1
- package/dist/runtime/worktree.js +174 -5
- package/dist/runtime/worktree.js.map +1 -1
- package/dist/serving-auth/index.d.ts +79 -0
- package/dist/serving-auth/index.d.ts.map +1 -0
- package/dist/serving-auth/index.js +169 -0
- package/dist/serving-auth/index.js.map +1 -0
- package/dist/task-runner.d.ts +134 -5
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +1255 -129
- package/dist/task-runner.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/watch-chat/wire.d.ts +80 -0
- package/dist/watch-chat/wire.d.ts.map +1 -1
- package/dist/watch-chat/wire.js +203 -43
- package/dist/watch-chat/wire.js.map +1 -1
- package/dist/watch.d.ts +70 -16
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +548 -108
- package/dist/watch.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformance.js","sourceRoot":"","sources":["../src/conformance.ts"],"names":[],"mappings":"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"}
|
package/dist/cost-pricing.d.ts
CHANGED
|
@@ -29,6 +29,21 @@ export interface ClaudeUsage {
|
|
|
29
29
|
cache_creation_input_tokens?: number;
|
|
30
30
|
cache_read_input_tokens?: number;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* COST-ATTR-1: one entry of the `modelUsage` map Claude Code emits in its
|
|
34
|
+
* `--output-format=json` envelope, keyed by the CONCRETE model id that served
|
|
35
|
+
* the turn (e.g. `claude-sonnet-4-6`). Field names are camelCase there, unlike
|
|
36
|
+
* the snake_case top-level `usage` block. Every field is optional because the
|
|
37
|
+
* shape varies across CLI builds — only the KEY is load-bearing for
|
|
38
|
+
* attribution.
|
|
39
|
+
*/
|
|
40
|
+
export interface ClaudeModelUsage {
|
|
41
|
+
inputTokens?: number;
|
|
42
|
+
outputTokens?: number;
|
|
43
|
+
cacheReadInputTokens?: number;
|
|
44
|
+
cacheCreationInputTokens?: number;
|
|
45
|
+
costUSD?: number;
|
|
46
|
+
}
|
|
32
47
|
export interface NormalizedUsage {
|
|
33
48
|
input_tokens: number;
|
|
34
49
|
output_tokens: number;
|
|
@@ -75,9 +90,39 @@ export declare function priceUsdCents(model: string, usage: NormalizedUsage): nu
|
|
|
75
90
|
export interface ClaudeJsonOutput {
|
|
76
91
|
result?: string;
|
|
77
92
|
model?: string;
|
|
93
|
+
/** COST-ATTR-1: per-model usage map; its keys are the concrete model ids. */
|
|
94
|
+
modelUsage?: Record<string, ClaudeModelUsage>;
|
|
78
95
|
usage?: ClaudeUsage;
|
|
79
96
|
}
|
|
80
97
|
export declare function parseClaudeJson(stdout: string): ClaudeJsonOutput | null;
|
|
98
|
+
/**
|
|
99
|
+
* COST-ATTR-1 — the token written to `acc.cost_events.model` when NOTHING
|
|
100
|
+
* names the model that produced the spend: neither the engine envelope nor
|
|
101
|
+
* the task's model pin. Deliberately NOT `unknown` (the value 1,303/1,303
|
|
102
|
+
* historical rows carry, which conflated "nobody looked" with "nothing to
|
|
103
|
+
* find") and deliberately specific, so an operator can tell an unattributable
|
|
104
|
+
* row from an attributed one at a glance. `acc.record_cost_event` treats it as
|
|
105
|
+
* a request to resolve the binding server-side (task pin -> project -> org,
|
|
106
|
+
* DEC-P9) and only persists it when that chain is empty too.
|
|
107
|
+
*/
|
|
108
|
+
export declare const UNRESOLVED_MODEL = "unresolved";
|
|
109
|
+
/** True when a model string carries no attribution information. */
|
|
110
|
+
export declare function isPlaceholderModel(model: string | null | undefined): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* COST-ATTR-1 — the concrete model id an engine result actually names, or null.
|
|
113
|
+
*
|
|
114
|
+
* WHY THIS IS NOT JUST `parsed.model`. Claude Code's `--output-format=json`
|
|
115
|
+
* envelope does not always carry a top-level `model` key; recent CLI builds
|
|
116
|
+
* report the model(s) that served the run in `modelUsage`, keyed by model id.
|
|
117
|
+
* `buildCostEvent` read `parsed?.model` only, so on those builds the whole
|
|
118
|
+
* chain fell through to the `unknown` literal and every by-model / by-agent
|
|
119
|
+
* rollup on the Cost surface came back empty.
|
|
120
|
+
*
|
|
121
|
+
* When more than one model served one run (a fallback hop mid-session) the key
|
|
122
|
+
* with the most tokens wins — that is the model the spend is mostly FOR. Ties
|
|
123
|
+
* keep the first key, so the result is deterministic for a given envelope.
|
|
124
|
+
*/
|
|
125
|
+
export declare function engineResultModel(parsed: ClaudeJsonOutput | null | undefined): string | null;
|
|
81
126
|
/**
|
|
82
127
|
* v0.12-MODEL-ALIAS — wire-format translation for the ACC model
|
|
83
128
|
* registry. `acc.models.id` is the short alias the rest of ACC uses
|
|
@@ -127,6 +172,52 @@ export declare function toCliAlias(modelId: string | null | undefined): string;
|
|
|
127
172
|
* api.anthropic.com. Same verbatim-fallback semantics as toCliAlias.
|
|
128
173
|
*/
|
|
129
174
|
export declare function toApiId(modelId: string | null | undefined): string;
|
|
175
|
+
/**
|
|
176
|
+
* SEED-MODEL-REGISTRY-1 AC2 (b): the runner's spawn-model decision (task-runner.ts's
|
|
177
|
+
* spawnClaude site). No pin → `{}`. An EXPLICIT NULL cli_alias (a real DB NULL — 0108's
|
|
178
|
+
* id-verbatim hazard) or `enabled === false` → `{ refusedReason }`, NO `--model`; else
|
|
179
|
+
* `{ model: toCliAlias(id) }`. An absent cli_alias (legacy `{ id }`) is left alone.
|
|
180
|
+
* // keep in sync with api/_lib/model-registry-seed.ts resolvePinnedAlias
|
|
181
|
+
*/
|
|
182
|
+
export declare function resolveSpawnModel(pinned: {
|
|
183
|
+
id?: string | null;
|
|
184
|
+
cli_alias?: string | null;
|
|
185
|
+
enabled?: boolean | null;
|
|
186
|
+
} | null | undefined): {
|
|
187
|
+
model?: string;
|
|
188
|
+
refusedReason?: string;
|
|
189
|
+
};
|
|
190
|
+
/** pin_refused logs ONLY on the routed path (useRoutedModel + a refusal); on the
|
|
191
|
+
* non-routed fallback no `--model` is used, so logging there is a false signal. */
|
|
192
|
+
export declare function shouldLogPinRefusal(useRoutedModel: boolean, spawn: {
|
|
193
|
+
refusedReason?: string;
|
|
194
|
+
}): boolean;
|
|
195
|
+
/**
|
|
196
|
+
* REVIEWER-MODEL-NS-SPLIT — the ONE reviewer alias→channel mapping.
|
|
197
|
+
*
|
|
198
|
+
* Each entry carries BOTH channels for one reviewer-policy value:
|
|
199
|
+
* - cli: passed to `claude --model` on the operator CLI subscription.
|
|
200
|
+
* - api: sent to api.anthropic.com/v1/messages (a canonical id).
|
|
201
|
+
*
|
|
202
|
+
* This table is the single data source that drives BOTH reviewer channel
|
|
203
|
+
* resolvers (`toReviewerCliAlias` / `toReviewerApiId`) — there is no separate
|
|
204
|
+
* bare-alias literal set or reverse-lookup over `MODEL_ALIASES`; the channels
|
|
205
|
+
* are read straight off this table. The server declares a byte-identical
|
|
206
|
+
* `REVIEWER_MODEL_CHANNEL_IDS` in api/_lib/reviewer/model-aliases.ts (the two
|
|
207
|
+
* packages are bundled independently and cannot import each other — the same
|
|
208
|
+
* mirror convention the pricing tables use). They are NOT allowed to drift:
|
|
209
|
+
* tests/unit/reviewer-model-alias-drift.test.ts imports BOTH tables, asserts
|
|
210
|
+
* they are deep-equal, and checks both packages' CLI+API resolvers resolve to
|
|
211
|
+
* this table, hard-failing CI the moment either side diverges.
|
|
212
|
+
* // keep in sync with api/_lib/reviewer/model-aliases.ts REVIEWER_MODEL_CHANNEL_IDS
|
|
213
|
+
*/
|
|
214
|
+
export interface ReviewerModelChannels {
|
|
215
|
+
cli: string;
|
|
216
|
+
api: string;
|
|
217
|
+
}
|
|
218
|
+
export declare const REVIEWER_MODEL_CHANNEL_IDS: Record<string, ReviewerModelChannels>;
|
|
219
|
+
export declare function toReviewerCliAlias(modelId: string | null | undefined): string;
|
|
220
|
+
export declare function toReviewerApiId(modelId: string | null | undefined): string;
|
|
130
221
|
export type ModelStrengthTier = "low" | "medium" | "high";
|
|
131
222
|
/** Strength tier per known model id (both aliases and canonical ids). */
|
|
132
223
|
export declare const MODEL_STRENGTH: Record<string, ModelStrengthTier>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-pricing.d.ts","sourceRoot":"","sources":["../src/cost-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAO,MAAM,CAAC;IACxB,WAAW,EAAM,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAiB,MAAM,CAAC;IACrC,aAAa,CAAC,EAAgB,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,uBAAuB,CAAC,EAAM,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAQ,MAAM,CAAC;IAC3B,aAAa,EAAO,MAAM,CAAC;IAC3B,iBAAiB,EAAG,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAmCD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAUtD,CAAC;AAoBF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAQ,OAAO,CAAC;IAClB,OAAO,EAAG,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAG,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0B/E;AAuBD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAStD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,CAOnF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAQ3E;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"cost-pricing.d.ts","sourceRoot":"","sources":["../src/cost-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAO,MAAM,CAAC;IACxB,WAAW,EAAM,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAiB,MAAM,CAAC;IACrC,aAAa,CAAC,EAAgB,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,uBAAuB,CAAC,EAAM,MAAM,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAgB,MAAM,CAAC;IACnC,YAAY,CAAC,EAAe,MAAM,CAAC;IACnC,oBAAoB,CAAC,EAAO,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAG,MAAM,CAAC;IACnC,OAAO,CAAC,EAAoB,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAQ,MAAM,CAAC;IAC3B,aAAa,EAAO,MAAM,CAAC;IAC3B,iBAAiB,EAAG,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAmCD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAUtD,CAAC;AAoBF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAQ,OAAO,CAAC;IAClB,OAAO,EAAG,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAG,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0B/E;AAuBD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAStD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,CAOnF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAQ3E;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAM,MAAM,CAAC;IACpB,KAAK,CAAC,EAAO,MAAM,CAAC;IACpB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAO,WAAW,CAAC;CAC1B;AACD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAYvE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAK7C,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAG5E;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAmB5F;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAK,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAcpD,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAExE;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIrE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIlE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACrG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAK5C;AAED;oFACoF;AACpF,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAEvG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAmB5E,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAI7E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAI1E;AAWD,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAI1D,yEAAyE;AACzE,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAS5D,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CActF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,MAAM,SAAI,GACT,MAAM,EAAE,CAaV"}
|
package/dist/cost-pricing.js
CHANGED
|
@@ -155,8 +155,70 @@ export function parseClaudeJson(stdout) {
|
|
|
155
155
|
return null;
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* COST-ATTR-1 — the token written to `acc.cost_events.model` when NOTHING
|
|
160
|
+
* names the model that produced the spend: neither the engine envelope nor
|
|
161
|
+
* the task's model pin. Deliberately NOT `unknown` (the value 1,303/1,303
|
|
162
|
+
* historical rows carry, which conflated "nobody looked" with "nothing to
|
|
163
|
+
* find") and deliberately specific, so an operator can tell an unattributable
|
|
164
|
+
* row from an attributed one at a glance. `acc.record_cost_event` treats it as
|
|
165
|
+
* a request to resolve the binding server-side (task pin -> project -> org,
|
|
166
|
+
* DEC-P9) and only persists it when that chain is empty too.
|
|
167
|
+
*/
|
|
168
|
+
export const UNRESOLVED_MODEL = "unresolved";
|
|
169
|
+
/** Placeholders a caller may send that mean "I did not resolve the model". */
|
|
170
|
+
const PLACEHOLDER_MODELS = new Set(["unknown", "unresolved", "none", "null", "undefined", "default"]);
|
|
171
|
+
/** True when a model string carries no attribution information. */
|
|
172
|
+
export function isPlaceholderModel(model) {
|
|
173
|
+
const m = (model ?? "").trim().toLowerCase();
|
|
174
|
+
return m.length === 0 || PLACEHOLDER_MODELS.has(m);
|
|
175
|
+
}
|
|
176
|
+
function tokenTotal(u) {
|
|
177
|
+
const n = (v) => (typeof v === "number" && Number.isFinite(v) && v > 0 ? v : 0);
|
|
178
|
+
return n(u?.inputTokens) + n(u?.outputTokens) + n(u?.cacheReadInputTokens) + n(u?.cacheCreationInputTokens);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* COST-ATTR-1 — the concrete model id an engine result actually names, or null.
|
|
182
|
+
*
|
|
183
|
+
* WHY THIS IS NOT JUST `parsed.model`. Claude Code's `--output-format=json`
|
|
184
|
+
* envelope does not always carry a top-level `model` key; recent CLI builds
|
|
185
|
+
* report the model(s) that served the run in `modelUsage`, keyed by model id.
|
|
186
|
+
* `buildCostEvent` read `parsed?.model` only, so on those builds the whole
|
|
187
|
+
* chain fell through to the `unknown` literal and every by-model / by-agent
|
|
188
|
+
* rollup on the Cost surface came back empty.
|
|
189
|
+
*
|
|
190
|
+
* When more than one model served one run (a fallback hop mid-session) the key
|
|
191
|
+
* with the most tokens wins — that is the model the spend is mostly FOR. Ties
|
|
192
|
+
* keep the first key, so the result is deterministic for a given envelope.
|
|
193
|
+
*/
|
|
194
|
+
export function engineResultModel(parsed) {
|
|
195
|
+
const direct = typeof parsed?.model === "string" ? parsed.model.trim() : "";
|
|
196
|
+
if (direct && !isPlaceholderModel(direct))
|
|
197
|
+
return direct;
|
|
198
|
+
const usage = parsed?.modelUsage;
|
|
199
|
+
if (!usage || typeof usage !== "object")
|
|
200
|
+
return null;
|
|
201
|
+
let best = null;
|
|
202
|
+
let bestTokens = -1;
|
|
203
|
+
for (const [id, entry] of Object.entries(usage)) {
|
|
204
|
+
const name = id.trim();
|
|
205
|
+
if (!name || isPlaceholderModel(name))
|
|
206
|
+
continue;
|
|
207
|
+
const tokens = tokenTotal(entry);
|
|
208
|
+
if (tokens > bestTokens) {
|
|
209
|
+
best = name;
|
|
210
|
+
bestTokens = tokens;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return best;
|
|
214
|
+
}
|
|
158
215
|
export const MODEL_ALIASES = {
|
|
159
|
-
//
|
|
216
|
+
// opus-4-8 is a real, canonical model on both channels (see the OPERATOR
|
|
217
|
+
// DECISION note on REVIEWER_MODEL_CHANNEL_IDS below). MODEL_ALIASES mirrors the
|
|
218
|
+
// rows backfilled by supabase/migrations/0108_v12_model_alias.sql, and
|
|
219
|
+
// tests/unit/model-alias.test.ts deep-equals the whole table against that
|
|
220
|
+
// migration so the runner can never silently desync from the DB. This 4-8 row
|
|
221
|
+
// and the REVIEWER_MODEL_CHANNEL_IDS 4-8 row now agree — both canonical.
|
|
160
222
|
"claude-opus-4-8": { cli_alias: "claude-opus-4-8", api_id: "claude-opus-4-8" },
|
|
161
223
|
"claude-sonnet-4": { cli_alias: "sonnet", api_id: "claude-sonnet-4-6" },
|
|
162
224
|
"claude-opus-4": { cli_alias: "opus", api_id: "claude-opus-4-7" },
|
|
@@ -202,6 +264,58 @@ export function toApiId(modelId) {
|
|
|
202
264
|
return modelId ?? "";
|
|
203
265
|
return currentAliases[id]?.api_id ?? id;
|
|
204
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* SEED-MODEL-REGISTRY-1 AC2 (b): the runner's spawn-model decision (task-runner.ts's
|
|
269
|
+
* spawnClaude site). No pin → `{}`. An EXPLICIT NULL cli_alias (a real DB NULL — 0108's
|
|
270
|
+
* id-verbatim hazard) or `enabled === false` → `{ refusedReason }`, NO `--model`; else
|
|
271
|
+
* `{ model: toCliAlias(id) }`. An absent cli_alias (legacy `{ id }`) is left alone.
|
|
272
|
+
* // keep in sync with api/_lib/model-registry-seed.ts resolvePinnedAlias
|
|
273
|
+
*/
|
|
274
|
+
export function resolveSpawnModel(pinned) {
|
|
275
|
+
const id = pinned?.id;
|
|
276
|
+
if (!id)
|
|
277
|
+
return {};
|
|
278
|
+
if (pinned?.cli_alias === null || pinned?.enabled === false)
|
|
279
|
+
return { refusedReason: `unverified_cli_alias:${id}` };
|
|
280
|
+
return { model: toCliAlias(id) };
|
|
281
|
+
}
|
|
282
|
+
/** pin_refused logs ONLY on the routed path (useRoutedModel + a refusal); on the
|
|
283
|
+
* non-routed fallback no `--model` is used, so logging there is a false signal. */
|
|
284
|
+
export function shouldLogPinRefusal(useRoutedModel, spawn) {
|
|
285
|
+
return useRoutedModel && spawn.refusedReason !== undefined;
|
|
286
|
+
}
|
|
287
|
+
export const REVIEWER_MODEL_CHANNEL_IDS = {
|
|
288
|
+
sonnet: { cli: "sonnet", api: "claude-sonnet-4-6" },
|
|
289
|
+
opus: { cli: "opus", api: "claude-opus-4-7" },
|
|
290
|
+
haiku: { cli: "haiku", api: "claude-haiku-4-5" },
|
|
291
|
+
"claude-sonnet-4": { cli: "sonnet", api: "claude-sonnet-4-6" },
|
|
292
|
+
"claude-opus-4": { cli: "opus", api: "claude-opus-4-7" },
|
|
293
|
+
"claude-haiku-4": { cli: "haiku", api: "claude-haiku-4-5" },
|
|
294
|
+
"claude-sonnet-4-6": { cli: "sonnet", api: "claude-sonnet-4-6" },
|
|
295
|
+
"claude-opus-4-7": { cli: "opus", api: "claude-opus-4-7" },
|
|
296
|
+
"claude-haiku-4-5": { cli: "haiku", api: "claude-haiku-4-5" },
|
|
297
|
+
// OPERATOR DECISION 2026-09-05 (PR #2169): claude-opus-4-8 is a REAL model.
|
|
298
|
+
// acc.model_catalog has carried it active since 2026-07-06, priced 500/2500 per
|
|
299
|
+
// Mtok (vs 4-7's 1500/7500), and it is the current default model in Claude Code,
|
|
300
|
+
// so the CLI accepts the versioned name. It resolves to itself on BOTH channels
|
|
301
|
+
// (canonical), never aliased down to 4-7 -- aliasing it billed and reported every
|
|
302
|
+
// 4-8 review at ~3x its real cost. This whole object literal is kept
|
|
303
|
+
// BYTE-IDENTICAL to the packages/acc-runner mirror in cost-pricing.ts;
|
|
304
|
+
// tests/unit/reviewer-model-alias-drift.test.ts compares the two source texts.
|
|
305
|
+
"claude-opus-4-8": { cli: "claude-opus-4-8", api: "claude-opus-4-8" },
|
|
306
|
+
};
|
|
307
|
+
export function toReviewerCliAlias(modelId) {
|
|
308
|
+
const id = (modelId ?? "").trim();
|
|
309
|
+
if (!id)
|
|
310
|
+
return modelId ?? "";
|
|
311
|
+
return REVIEWER_MODEL_CHANNEL_IDS[id]?.cli ?? toCliAlias(id);
|
|
312
|
+
}
|
|
313
|
+
export function toReviewerApiId(modelId) {
|
|
314
|
+
const id = (modelId ?? "").trim();
|
|
315
|
+
if (!id)
|
|
316
|
+
return modelId ?? "";
|
|
317
|
+
return REVIEWER_MODEL_CHANNEL_IDS[id]?.api ?? toApiId(id);
|
|
318
|
+
}
|
|
205
319
|
const TIER_RANK = { low: 1, medium: 2, high: 3 };
|
|
206
320
|
/** Strength tier per known model id (both aliases and canonical ids). */
|
|
207
321
|
export const MODEL_STRENGTH = {
|
package/dist/cost-pricing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-pricing.js","sourceRoot":"","sources":["../src/cost-pricing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cost-pricing.js","sourceRoot":"","sources":["../src/cost-pricing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export type CredentialSource = "env_var" | "credentials_file" | "keychain";
|
|
2
|
+
export interface CredentialIdentity {
|
|
3
|
+
account_email: string | null;
|
|
4
|
+
account_org: string | null;
|
|
5
|
+
credential_source: CredentialSource;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Injectable seams so the resolver is unit-testable without touching the real
|
|
9
|
+
* filesystem or OS keychain.
|
|
10
|
+
*/
|
|
11
|
+
export interface ResolveCredentialIdentityOptions {
|
|
12
|
+
env?: NodeJS.ProcessEnv;
|
|
13
|
+
/**
|
|
14
|
+
* Read the Claude CLI config JSON (default: `~/.claude.json`, or the
|
|
15
|
+
* isolated / CLAUDE_CONFIG_DIR-pinned path). Returns null when absent or
|
|
16
|
+
* unreadable.
|
|
17
|
+
*/
|
|
18
|
+
readClaudeConfig?: (env: NodeJS.ProcessEnv) => string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Read the Claude CLI's OS-keychain credential blob (default:
|
|
21
|
+
* `readClaudeCliCredential`). Returns null when absent/unavailable.
|
|
22
|
+
*/
|
|
23
|
+
readClaudeKeychain?: () => Promise<string | null>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* TOLERANT parse of a Claude account artifact — either the `.claude.json`
|
|
27
|
+
* config OR the OS-keychain credential blob (both carry an `oauthAccount` /
|
|
28
|
+
* `claudeAiOauth` object). Extracts ONLY the safe identity labels (email, org);
|
|
29
|
+
* the OAuth token material the keychain blob also carries is never read out, so
|
|
30
|
+
* an identity spread into a task event or bus message can never leak a secret.
|
|
31
|
+
* Any shape drift (missing file / non-JSON / unexpected shape) degrades to
|
|
32
|
+
* nulls, never a throw.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseClaudeAccountFields(raw: string | null): {
|
|
35
|
+
account_email: string | null;
|
|
36
|
+
account_org: string | null;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* SYNC identity resolution — env-var + config-file only, NO keychain read.
|
|
40
|
+
* Used as the `runnerCapsWithRepos` default and by any sync caller; the
|
|
41
|
+
* production register paths await the full async `resolveCredentialIdentity`
|
|
42
|
+
* below (which additionally consults the OS keychain). A BYOK-api-key or a
|
|
43
|
+
* file-backed login resolves fully here; a keychain-only login degrades to
|
|
44
|
+
* honest nulls under source=keychain (never the ACC/runner session email).
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveCredentialIdentitySync(opts?: Pick<ResolveCredentialIdentityOptions, "env" | "readClaudeConfig">): CredentialIdentity;
|
|
47
|
+
/**
|
|
48
|
+
* Resolve the SERVING model-credential account identity — the account the
|
|
49
|
+
* spawned `claude` authenticates AS, which is NOT the runner/ACC operator
|
|
50
|
+
* session. Resolution order:
|
|
51
|
+
*
|
|
52
|
+
* 1. BYOK api_key forwarded (`forwardsAmbientKey` + a key present): a bare
|
|
53
|
+
* API key carries NO consumer account, so account_email/org are null — we
|
|
54
|
+
* never substitute the ACC session email, which is a different identity
|
|
55
|
+
* (the operator's login, not the model account the CLI bills).
|
|
56
|
+
* 2. A `.claude.json` config file THAT CARRIES AN ACCOUNT (email or org): read
|
|
57
|
+
* the OAuth account from it. source = credentials_file. A readable but
|
|
58
|
+
* settings-only config (no account fields) does NOT count — it falls through
|
|
59
|
+
* to (3) rather than masking a keychain login as an unknown credentials_file.
|
|
60
|
+
* 3. Otherwise the login lives only in the OS keychain ("Claude
|
|
61
|
+
* Code-credentials"): ACTUALLY read that blob and resolve whatever account
|
|
62
|
+
* it carries — honest nulls when it holds no email, never a fabricated
|
|
63
|
+
* one. source = keychain.
|
|
64
|
+
*
|
|
65
|
+
* Only the safe labels (email, org, source) are ever returned; the token
|
|
66
|
+
* material in the config/keychain is parsed past (see parseClaudeAccountFields),
|
|
67
|
+
* never surfaced.
|
|
68
|
+
*/
|
|
69
|
+
export declare function resolveCredentialIdentity(opts?: ResolveCredentialIdentityOptions): Promise<CredentialIdentity>;
|
|
70
|
+
//# sourceMappingURL=credential-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-identity.d.ts","sourceRoot":"","sources":["../src/credential-identity.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,UAAU,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,gBAAgB,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,gCAAgC;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,GAAG,IAAI,CAAC;IAC7D;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACnD;AAwBD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG;IAC5D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CA4BA;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,GAAE,IAAI,CAAC,gCAAgC,EAAE,KAAK,GAAG,kBAAkB,CAAM,GAC5E,kBAAkB,CAepB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,GAAE,gCAAqC,GAC1C,OAAO,CAAC,kBAAkB,CAAC,CAiB7B"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { anthropicApiKey, claudeConfigIsolationEnabled, forwardsAmbientKey, isolatedClaudeConfigDir, } from "./provider-auth.js";
|
|
5
|
+
import { readClaudeCliCredential } from "./keychain.js";
|
|
6
|
+
function claudeConfigPath(env) {
|
|
7
|
+
const explicit = (env.CLAUDE_CONFIG_DIR ?? "").trim();
|
|
8
|
+
if (explicit)
|
|
9
|
+
return path.join(explicit, ".claude.json");
|
|
10
|
+
if (claudeConfigIsolationEnabled(env))
|
|
11
|
+
return path.join(isolatedClaudeConfigDir(env), ".claude.json");
|
|
12
|
+
return path.join(os.homedir(), ".claude.json");
|
|
13
|
+
}
|
|
14
|
+
function defaultReadClaudeConfig(env) {
|
|
15
|
+
try {
|
|
16
|
+
return fs.readFileSync(claudeConfigPath(env), "utf8");
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function stringField(...values) {
|
|
23
|
+
for (const value of values) {
|
|
24
|
+
if (typeof value === "string" && value.trim())
|
|
25
|
+
return value.trim();
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* TOLERANT parse of a Claude account artifact — either the `.claude.json`
|
|
31
|
+
* config OR the OS-keychain credential blob (both carry an `oauthAccount` /
|
|
32
|
+
* `claudeAiOauth` object). Extracts ONLY the safe identity labels (email, org);
|
|
33
|
+
* the OAuth token material the keychain blob also carries is never read out, so
|
|
34
|
+
* an identity spread into a task event or bus message can never leak a secret.
|
|
35
|
+
* Any shape drift (missing file / non-JSON / unexpected shape) degrades to
|
|
36
|
+
* nulls, never a throw.
|
|
37
|
+
*/
|
|
38
|
+
export function parseClaudeAccountFields(raw) {
|
|
39
|
+
const s = (raw ?? "").trim();
|
|
40
|
+
if (!s.startsWith("{"))
|
|
41
|
+
return { account_email: null, account_org: null };
|
|
42
|
+
let parsed;
|
|
43
|
+
try {
|
|
44
|
+
parsed = JSON.parse(s);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return { account_email: null, account_org: null };
|
|
48
|
+
}
|
|
49
|
+
if (typeof parsed !== "object" || parsed === null) {
|
|
50
|
+
return { account_email: null, account_org: null };
|
|
51
|
+
}
|
|
52
|
+
const rec = parsed;
|
|
53
|
+
const oauth = (typeof rec.oauthAccount === "object" && rec.oauthAccount !== null
|
|
54
|
+
? rec.oauthAccount
|
|
55
|
+
: {});
|
|
56
|
+
const claudeAi = (typeof rec.claudeAiOauth === "object" && rec.claudeAiOauth !== null
|
|
57
|
+
? rec.claudeAiOauth
|
|
58
|
+
: {});
|
|
59
|
+
return {
|
|
60
|
+
account_email: stringField(oauth.emailAddress, oauth.email, claudeAi.emailAddress),
|
|
61
|
+
account_org: stringField(oauth.organizationName, oauth.organization, oauth.org, claudeAi.organizationName),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* SYNC identity resolution — env-var + config-file only, NO keychain read.
|
|
66
|
+
* Used as the `runnerCapsWithRepos` default and by any sync caller; the
|
|
67
|
+
* production register paths await the full async `resolveCredentialIdentity`
|
|
68
|
+
* below (which additionally consults the OS keychain). A BYOK-api-key or a
|
|
69
|
+
* file-backed login resolves fully here; a keychain-only login degrades to
|
|
70
|
+
* honest nulls under source=keychain (never the ACC/runner session email).
|
|
71
|
+
*/
|
|
72
|
+
export function resolveCredentialIdentitySync(opts = {}) {
|
|
73
|
+
const env = opts.env ?? process.env;
|
|
74
|
+
if (forwardsAmbientKey(env) && anthropicApiKey(env)) {
|
|
75
|
+
return { account_email: null, account_org: null, credential_source: "env_var" };
|
|
76
|
+
}
|
|
77
|
+
const configRaw = (opts.readClaudeConfig ?? defaultReadClaudeConfig)(env);
|
|
78
|
+
const fromConfig = parseClaudeAccountFields(configRaw);
|
|
79
|
+
// AC5 (sync mirror): a settings-only `.claude.json` with no account fields must
|
|
80
|
+
// not mask a keychain login as `credentials_file`. This sync path does not read
|
|
81
|
+
// the keychain, so it reports honest keychain nulls — never a config identity it
|
|
82
|
+
// could not actually find.
|
|
83
|
+
if (fromConfig.account_email !== null || fromConfig.account_org !== null) {
|
|
84
|
+
return { ...fromConfig, credential_source: "credentials_file" };
|
|
85
|
+
}
|
|
86
|
+
return { account_email: null, account_org: null, credential_source: "keychain" };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Resolve the SERVING model-credential account identity — the account the
|
|
90
|
+
* spawned `claude` authenticates AS, which is NOT the runner/ACC operator
|
|
91
|
+
* session. Resolution order:
|
|
92
|
+
*
|
|
93
|
+
* 1. BYOK api_key forwarded (`forwardsAmbientKey` + a key present): a bare
|
|
94
|
+
* API key carries NO consumer account, so account_email/org are null — we
|
|
95
|
+
* never substitute the ACC session email, which is a different identity
|
|
96
|
+
* (the operator's login, not the model account the CLI bills).
|
|
97
|
+
* 2. A `.claude.json` config file THAT CARRIES AN ACCOUNT (email or org): read
|
|
98
|
+
* the OAuth account from it. source = credentials_file. A readable but
|
|
99
|
+
* settings-only config (no account fields) does NOT count — it falls through
|
|
100
|
+
* to (3) rather than masking a keychain login as an unknown credentials_file.
|
|
101
|
+
* 3. Otherwise the login lives only in the OS keychain ("Claude
|
|
102
|
+
* Code-credentials"): ACTUALLY read that blob and resolve whatever account
|
|
103
|
+
* it carries — honest nulls when it holds no email, never a fabricated
|
|
104
|
+
* one. source = keychain.
|
|
105
|
+
*
|
|
106
|
+
* Only the safe labels (email, org, source) are ever returned; the token
|
|
107
|
+
* material in the config/keychain is parsed past (see parseClaudeAccountFields),
|
|
108
|
+
* never surfaced.
|
|
109
|
+
*/
|
|
110
|
+
export async function resolveCredentialIdentity(opts = {}) {
|
|
111
|
+
const env = opts.env ?? process.env;
|
|
112
|
+
if (forwardsAmbientKey(env) && anthropicApiKey(env)) {
|
|
113
|
+
return { account_email: null, account_org: null, credential_source: "env_var" };
|
|
114
|
+
}
|
|
115
|
+
const configRaw = (opts.readClaudeConfig ?? defaultReadClaudeConfig)(env);
|
|
116
|
+
const fromConfig = parseClaudeAccountFields(configRaw);
|
|
117
|
+
// AC5: only a config that actually carries an account (email OR org) counts as
|
|
118
|
+
// a credentials_file identity. A readable-but-settings-only `.claude.json` (no
|
|
119
|
+
// oauthAccount / claudeAiOauth) must NOT short-circuit here — doing so masked a
|
|
120
|
+
// real keychain login behind an unknown `credentials_file`. Fall through and
|
|
121
|
+
// report what the keychain holds instead.
|
|
122
|
+
if (fromConfig.account_email !== null || fromConfig.account_org !== null) {
|
|
123
|
+
return { ...fromConfig, credential_source: "credentials_file" };
|
|
124
|
+
}
|
|
125
|
+
const keychainRaw = await (opts.readClaudeKeychain ?? readClaudeCliCredential)().catch(() => null);
|
|
126
|
+
return { ...parseClaudeAccountFields(keychainRaw), credential_source: "keychain" };
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=credential-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-identity.js","sourceRoot":"","sources":["../src/credential-identity.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { type ResolveExecutableOptions } from "./bin-resolve.js";
|
|
1
2
|
import type { EngineCredentialProbe } from "./engines/types.js";
|
|
2
3
|
import { type BootstrapConfigInput, type RunnerConfig } from "./config.js";
|
|
4
|
+
import { type StoredSession } from "./types.js";
|
|
3
5
|
import { type GitAuthProbe } from "./git-auth/index.js";
|
|
4
6
|
import { type NpmLatestDeps } from "./runtime/version-drift.js";
|
|
7
|
+
import { type RunnerBuildFingerprint } from "./build-fingerprint.js";
|
|
8
|
+
import { probeMcpServer, type McpProbeResult } from "./mcp-spawn.js";
|
|
5
9
|
export declare const LAUNCHD_LABEL = "com.tokenfactory.acc-runner";
|
|
6
10
|
export declare function launchdPlistPath(): string;
|
|
7
11
|
export declare const ENV_NAMES: Record<keyof RunnerConfig, string>;
|
|
@@ -19,6 +23,7 @@ interface CheckOutcome {
|
|
|
19
23
|
detail: string;
|
|
20
24
|
fix?: string;
|
|
21
25
|
}
|
|
26
|
+
export declare function checkClaude(resolveOptions?: ResolveExecutableOptions): Promise<CheckOutcome>;
|
|
22
27
|
/**
|
|
23
28
|
* CC-1C (ENGINE-REF): chat-lane credential probe. Runs the chat-conformant
|
|
24
29
|
* claude-code adapter's `credentialProbe()` and reports the tier the resolved
|
|
@@ -32,7 +37,13 @@ interface CheckOutcome {
|
|
|
32
37
|
* Secrets are never printed (the probe detail redacts key material). The probe
|
|
33
38
|
* is injectable so the doctor test exercises the rendering without live gh/auth.
|
|
34
39
|
*/
|
|
35
|
-
export declare function checkChatAuth(probe?: () => Promise<EngineCredentialProbe
|
|
40
|
+
export declare function checkChatAuth(probe?: () => Promise<EngineCredentialProbe>, engineId?: string): Promise<CheckOutcome>;
|
|
41
|
+
export interface CheckMcpServerDeps {
|
|
42
|
+
loadSession?: () => Promise<StoredSession | null>;
|
|
43
|
+
probe?: (args: Parameters<typeof probeMcpServer>[0]) => Promise<McpProbeResult>;
|
|
44
|
+
}
|
|
45
|
+
/** Prove the installed/fallback MCP command can initialize and list its catalog. */
|
|
46
|
+
export declare function checkMcpServer(cfg: RunnerConfig | null, deps?: CheckMcpServerDeps): Promise<CheckOutcome>;
|
|
36
47
|
/**
|
|
37
48
|
* M4 (ENGINE-CODEX): per-engine validation for the codex engine — binary in
|
|
38
49
|
* PATH + a usable auth channel. Skipped-green when the `engines.codex_enabled`
|
|
@@ -70,8 +81,17 @@ export interface EngineDetectDeps {
|
|
|
70
81
|
}>;
|
|
71
82
|
codexEnabled?: () => boolean;
|
|
72
83
|
codexProbe?: () => Promise<CheckOutcome>;
|
|
84
|
+
logRejected?: (line: string) => void;
|
|
73
85
|
}
|
|
74
86
|
export declare function detectCapableEngines(deps?: EngineDetectDeps): Promise<string[]>;
|
|
87
|
+
/**
|
|
88
|
+
* CAPS-ENGINES-STALE-KEYCHAIN-1 (AC5): surface WHY an enabled engine is or isn't
|
|
89
|
+
* advertised, on doctor's DEFAULT reporting path — so an operator sees the same
|
|
90
|
+
* rejection reason detectCapableEngines uses, without reading source. Runs that
|
|
91
|
+
* exact detection and folds every rejection line into the row's detail. `detect`
|
|
92
|
+
* is injectable so the reason is testable without the real binaries.
|
|
93
|
+
*/
|
|
94
|
+
export declare function checkEngineDetection(detect?: (deps: EngineDetectDeps) => Promise<string[]>): Promise<CheckOutcome>;
|
|
75
95
|
/**
|
|
76
96
|
* GIT-AUTH-ALERT: prove the base clone's GitHub credential actually works with a
|
|
77
97
|
* masked `ls-remote origin` dry-run — the same probe the watch loop runs. This
|
|
@@ -86,6 +106,10 @@ export declare function detectCapableEngines(deps?: EngineDetectDeps): Promise<s
|
|
|
86
106
|
* clone or network.
|
|
87
107
|
*/
|
|
88
108
|
export declare function checkGitAuth(cfg: RunnerConfig | null, probeFactory?: (repoPath: string) => GitAuthProbe): Promise<CheckOutcome>;
|
|
109
|
+
/** NAMED-INSTANCES-1: names what diverges per instance — the name, its
|
|
110
|
+
* keychain slot, and the runner id that slot resolved to. Always OK: unnamed
|
|
111
|
+
* is normal, and a missing session already fails `runner registered`. */
|
|
112
|
+
export declare function checkInstance(): Promise<CheckOutcome>;
|
|
89
113
|
/**
|
|
90
114
|
* v1.00-B: validate env-token (ephemeral) configuration. No-op for the
|
|
91
115
|
* keychain path (desktop runners), so it stays green and silent there.
|
|
@@ -98,6 +122,7 @@ export declare function checkGitAuth(cfg: RunnerConfig | null, probeFactory?: (r
|
|
|
98
122
|
* An already-expired token fails the check with a clear remediation.
|
|
99
123
|
*/
|
|
100
124
|
export declare function checkEnvToken(): Promise<CheckOutcome>;
|
|
125
|
+
export declare function checkCredentialIdentity(): Promise<CheckOutcome>;
|
|
101
126
|
/**
|
|
102
127
|
* RD-1 (BOOTSTRAP-CONFIG): best-effort load of the persisted keychain / env
|
|
103
128
|
* session so the doctor can show WHERE the Supabase config resolved from and
|
|
@@ -147,6 +172,17 @@ export interface DoctorOptions {
|
|
|
147
172
|
*/
|
|
148
173
|
strict?: boolean;
|
|
149
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* BUILD-FINGERPRINT-RUNNING-1 (AC4): compare the build the long-lived
|
|
177
|
+
* `watch`/companion process recorded at boot against the build THIS `acc doctor`
|
|
178
|
+
* process loaded (=== the installed on-disk build). Answers the operator's real
|
|
179
|
+
* question — "did the launchd process pick up the fix I just installed?" —
|
|
180
|
+
* WITHOUT needing any symbol name from the diff, the check the incident had to
|
|
181
|
+
* invent by grepping dist. A stale process is advisory (WARN), not a hard
|
|
182
|
+
* environment failure; `--strict` promotes it like every other WARN. No record
|
|
183
|
+
* (nothing long-lived has booted since the feature shipped) is not a problem.
|
|
184
|
+
*/
|
|
185
|
+
export declare function checkRunningBuild(read?: () => Promise<RunnerBuildFingerprint | null>): Promise<CheckOutcome>;
|
|
150
186
|
export declare function doctorCommand(options?: DoctorOptions): Promise<number>;
|
|
151
187
|
export {};
|
|
152
188
|
//# sourceMappingURL=doctor.d.ts.map
|
package/dist/doctor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|