humanish 0.48.0 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,67 @@
1
+ export declare const KEY_RESOLUTION_SCHEMA = "humanish.key-resolution.v1";
2
+ /** The ONLY names implicit discovery may fill (and `humanish keys set` may store). Everything
3
+ * else in an overlay/store file is ignored-and-named: a repo-planted NODE_OPTIONS/LD_PRELOAD
4
+ * must never enter process env off a file the operator did not explicitly pass (an explicit
5
+ * --env-file remains the operator's own full-file load). Red-team finding, #436. */
6
+ export declare const KNOWN_PROVIDER_KEYS: readonly ["OPENAI_API_KEY", "ANTHROPIC_API_KEY", "E2B_API_KEY", "GH_TOKEN", "GITHUB_TOKEN", "CODEX_API_KEY"];
7
+ /** `humanish keys set <vendor>` aliases; a raw ENV_NAME is also accepted. */
8
+ export declare const KEY_VENDOR_ALIASES: Record<string, string>;
9
+ export interface ResolvedKeyFill {
10
+ name: string;
11
+ /** Human-readable source label (a path or command name) — never a value. */
12
+ source: string;
13
+ }
14
+ export interface KeyResolutionDeps {
15
+ /** Injectable for tests: run `gh auth token`-style probes. Resolves to trimmed single-line
16
+ * stdout, or null on any failure (missing binary, non-zero exit, empty/multi-line output). */
17
+ execText?: (command: string, args: string[], timeoutMs: number) => Promise<string | null>;
18
+ homeDir?: string;
19
+ }
20
+ export declare const PROJECT_OVERLAY_RELATIVE: string;
21
+ export declare function userKeyStorePath(env: NodeJS.ProcessEnv, deps?: KeyResolutionDeps): string;
22
+ /**
23
+ * Fill missing provider keys into `env` from the discovery chain, announcing each fill as
24
+ * `NAME from SOURCE`. Returns the fills. Opt-out: HUMANISH_STRICT_KEYS=1 returns [] untouched.
25
+ */
26
+ export declare function discoverProviderKeys(args: {
27
+ cwd: string;
28
+ env: NodeJS.ProcessEnv;
29
+ announce: (line: string) => void;
30
+ deps?: KeyResolutionDeps;
31
+ }): Promise<ResolvedKeyFill[]>;
32
+ export interface KeySourceProbe {
33
+ name: string;
34
+ /** The source that supplies the key right now, or null when missing everywhere. */
35
+ source: string | null;
36
+ /** The command/path that would fill it when missing. */
37
+ hint: string;
38
+ }
39
+ /** The nearest fill instruction for a missing key — used by doctor rows and appended to
40
+ * *_KEYS_MISSING errors so the failure names the fix, not just the absence (#436). */
41
+ export declare function missingKeyHint(name: string): string;
42
+ /** One shared suffix for *_KEYS_MISSING messages: where discovery looked, and what fills each
43
+ * missing key. Pure text; never values. */
44
+ export declare function describeMissingKeys(names: string[], env: NodeJS.ProcessEnv): string;
45
+ /**
46
+ * Non-mutating probe for doctor: report, per key, the source that currently supplies it.
47
+ * Runs the same chain against a scratch copy of env so nothing observable changes.
48
+ */
49
+ export declare function probeKeySources(names: readonly string[], args: {
50
+ cwd: string;
51
+ env: NodeJS.ProcessEnv;
52
+ deps?: KeyResolutionDeps;
53
+ }): Promise<KeySourceProbe[]>;
54
+ /** Resolve a `humanish keys set` target: a vendor alias or a raw env name. Null = invalid. */
55
+ export declare function resolveKeyName(vendorOrName: string): string | null;
56
+ /** Write one key into the user store (0700 dir, 0600 file). Only allowlisted provider names
57
+ * are storable (the store feeds implicit discovery — an arbitrary-name store would be an env
58
+ * injection vector with extra steps). The value must be a single non-empty line that
59
+ * round-trips the store's own parser byte-identically, and the write refuses symlinks at the
60
+ * file AND its parent directory (red-team findings). */
61
+ export declare function setUserKey(name: string, value: string, env: NodeJS.ProcessEnv, deps?: KeyResolutionDeps): {
62
+ path: string;
63
+ };
64
+ /** Remove one key from the user store. Returns whether it was present. */
65
+ export declare function unsetUserKey(name: string, env: NodeJS.ProcessEnv, deps?: KeyResolutionDeps): boolean;
66
+ /** The names (never values) currently in the user store. */
67
+ export declare function listUserKeys(env: NodeJS.ProcessEnv, deps?: KeyResolutionDeps): string[];
@@ -0,0 +1,373 @@
1
+ // Provider-key discovery (#436): resolve the keys a live run needs through each vendor's
2
+ // native chain instead of demanding a per-repo --env-file that operators hand-copy keys into.
3
+ //
4
+ // The chain, per key, FILL-ONLY (a rung never overrides anything already present):
5
+ // 1. process env — including whatever --env-file just loaded (explicit always wins);
6
+ // 2. `.humanish/local/provider.env` — the project-local overlay this CLI's own --help
7
+ // examples document;
8
+ // 3. the OWNING vendor's native store, where one exists:
9
+ // E2B_API_KEY <- ~/.e2b/config.json (written by `e2b auth login`);
10
+ // GH_TOKEN <- `gh auth token` (the gh CLI's credential chain);
11
+ // 4. the humanish user-level store `$XDG_CONFIG_HOME/humanish/keys.env`, written only by
12
+ // `humanish keys set` (0600, prompted or --stdin) — the fallback for vendors that ship
13
+ // no machine chain of their own (OpenAI, Anthropic).
14
+ //
15
+ // Every fill is ANNOUNCED by key name + source, never by value. The subject app's own
16
+ // `.env`/`.env.local` are NEVER read — those hold product credentials, a different class
17
+ // (#11); this module only reads humanish-owned files and vendor-owned stores.
18
+ // `HUMANISH_STRICT_KEYS=1` disables every rung below process env (the pre-#436 behavior).
19
+ import { spawn } from "node:child_process";
20
+ import { chmodSync, closeSync, constants as fsConstants, existsSync, ftruncateSync, lstatSync, mkdirSync, openSync, readFileSync, writeSync } from "node:fs";
21
+ import { homedir } from "node:os";
22
+ import path from "node:path";
23
+ import { loadEnvFile } from "./env-file.js";
24
+ export const KEY_RESOLUTION_SCHEMA = "humanish.key-resolution.v1";
25
+ /** The ONLY names implicit discovery may fill (and `humanish keys set` may store). Everything
26
+ * else in an overlay/store file is ignored-and-named: a repo-planted NODE_OPTIONS/LD_PRELOAD
27
+ * must never enter process env off a file the operator did not explicitly pass (an explicit
28
+ * --env-file remains the operator's own full-file load). Red-team finding, #436. */
29
+ export const KNOWN_PROVIDER_KEYS = [
30
+ "OPENAI_API_KEY",
31
+ "ANTHROPIC_API_KEY",
32
+ "E2B_API_KEY",
33
+ "GH_TOKEN",
34
+ "GITHUB_TOKEN",
35
+ "CODEX_API_KEY"
36
+ ];
37
+ const PROVIDER_KEY_SET = new Set(KNOWN_PROVIDER_KEYS);
38
+ /** `humanish keys set <vendor>` aliases; a raw ENV_NAME is also accepted. */
39
+ export const KEY_VENDOR_ALIASES = {
40
+ openai: "OPENAI_API_KEY",
41
+ e2b: "E2B_API_KEY",
42
+ anthropic: "ANTHROPIC_API_KEY",
43
+ github: "GH_TOKEN"
44
+ };
45
+ export const PROJECT_OVERLAY_RELATIVE = path.join(".humanish", "local", "provider.env");
46
+ export function userKeyStorePath(env, deps = {}) {
47
+ const home = deps.homeDir ?? homedir();
48
+ const declared = env.XDG_CONFIG_HOME?.trim();
49
+ // The XDG spec: a relative XDG_CONFIG_HOME MUST be ignored. Honoring one would make the
50
+ // key store cwd-relative — `humanish keys set` would write a secret into the current repo.
51
+ const configHome = declared !== undefined && declared !== "" && path.isAbsolute(declared) ? declared : path.join(home, ".config");
52
+ return path.join(configHome, "humanish", "keys.env");
53
+ }
54
+ function e2bConfigPath(deps) {
55
+ return path.join(deps.homeDir ?? homedir(), ".e2b", "config.json");
56
+ }
57
+ /** Default exec: bounded, quiet, stdin closed; null on ANY failure. Never throws. */
58
+ function defaultExecText(command, args, timeoutMs) {
59
+ return new Promise((resolve) => {
60
+ let child;
61
+ try {
62
+ child = spawn(command, args, { stdio: ["ignore", "pipe", "ignore"] });
63
+ }
64
+ catch {
65
+ resolve(null);
66
+ return;
67
+ }
68
+ let out = "";
69
+ let settled = false;
70
+ const settle = (value) => {
71
+ if (!settled) {
72
+ settled = true;
73
+ resolve(value);
74
+ }
75
+ };
76
+ const timer = setTimeout(() => {
77
+ try {
78
+ child.kill();
79
+ }
80
+ catch {
81
+ // best effort
82
+ }
83
+ settle(null);
84
+ }, timeoutMs);
85
+ timer.unref?.();
86
+ child.stdout?.on("data", (chunk) => {
87
+ out += chunk.toString("utf8");
88
+ });
89
+ child.on("error", () => settle(null));
90
+ child.on("close", (code) => {
91
+ clearTimeout(timer);
92
+ if (code !== 0) {
93
+ settle(null);
94
+ return;
95
+ }
96
+ const trimmed = out.trim();
97
+ settle(trimmed.length > 0 && !trimmed.includes("\n") ? trimmed : null);
98
+ });
99
+ });
100
+ }
101
+ /** Read the E2B team key from the e2b CLI's own config. Defensive on shape: accept the
102
+ * documented `teamApiKey`, fall back to `apiKey`; anything else is a miss, never an error. */
103
+ function readE2bConfigKey(deps) {
104
+ try {
105
+ const raw = readFileSync(e2bConfigPath(deps), "utf8");
106
+ const parsed = JSON.parse(raw);
107
+ if (parsed === null || typeof parsed !== "object")
108
+ return null;
109
+ const record = parsed;
110
+ for (const field of ["teamApiKey", "apiKey"]) {
111
+ const value = record[field];
112
+ if (typeof value === "string" && value.trim().length > 0)
113
+ return value.trim();
114
+ }
115
+ return null;
116
+ }
117
+ catch {
118
+ return null;
119
+ }
120
+ }
121
+ /** Refuse to READ a store through a symlink: a repo-local overlay that is secretly a link to
122
+ * an unrelated file is exactly the retargeting shape the artifact paths refuse elsewhere. */
123
+ function isRegularFile(filePath) {
124
+ try {
125
+ return lstatSync(filePath).isFile();
126
+ }
127
+ catch {
128
+ return false;
129
+ }
130
+ }
131
+ /**
132
+ * Fill missing provider keys into `env` from the discovery chain, announcing each fill as
133
+ * `NAME from SOURCE`. Returns the fills. Opt-out: HUMANISH_STRICT_KEYS=1 returns [] untouched.
134
+ */
135
+ export async function discoverProviderKeys(args) {
136
+ const { cwd, env, announce } = args;
137
+ const deps = args.deps ?? {};
138
+ if (env.HUMANISH_STRICT_KEYS?.trim() === "1")
139
+ return [];
140
+ const fills = [];
141
+ const ignored = [];
142
+ // Fill-only means PRESENCE wins, including an explicitly-set empty value: an operator who
143
+ // exported OPENAI_API_KEY="" said "off", and a rung that "fixes" that has overridden them
144
+ // (red-team finding). Only a truly-unset name is fillable.
145
+ const fillable = (name) => env[name] === undefined;
146
+ const fill = (name, value, source) => {
147
+ env[name] = value;
148
+ fills.push({ name, source });
149
+ };
150
+ // Rung 2: the documented project-local overlay. Parsed ATOMICALLY against a scratch env so a
151
+ // file loadEnvFile rejects can never half-apply (red-team finding: earlier lines used to land
152
+ // in env unannounced before the parse error aborted). Only allowlisted provider names cross
153
+ // from the file into the real env.
154
+ const overlayPath = path.resolve(cwd, PROJECT_OVERLAY_RELATIVE);
155
+ if (isRegularFile(overlayPath) && !dirIsSymlink(overlayPath)) {
156
+ const scratch = {};
157
+ const overlay = await loadEnvFile(cwd, PROJECT_OVERLAY_RELATIVE, scratch);
158
+ if (overlay.ok) {
159
+ for (const name of overlay.loaded) {
160
+ const value = scratch[name];
161
+ if (value === undefined || !fillable(name))
162
+ continue;
163
+ if (!PROVIDER_KEY_SET.has(name)) {
164
+ ignored.push(`${name} (${PROJECT_OVERLAY_RELATIVE})`);
165
+ continue;
166
+ }
167
+ fill(name, value, PROJECT_OVERLAY_RELATIVE);
168
+ }
169
+ }
170
+ }
171
+ // Rung 3a: the e2b CLI's own login store.
172
+ if (fillable("E2B_API_KEY")) {
173
+ const teamKey = readE2bConfigKey(deps);
174
+ if (teamKey !== null)
175
+ fill("E2B_API_KEY", teamKey, "~/.e2b/config.json (e2b auth login)");
176
+ }
177
+ // Rung 3b: the gh CLI's credential chain. Only consulted when NEITHER GitHub env name is
178
+ // present; fills GH_TOKEN (the name humanish reads first).
179
+ if (fillable("GH_TOKEN") && fillable("GITHUB_TOKEN")) {
180
+ const exec = deps.execText ?? defaultExecText;
181
+ const token = await exec("gh", ["auth", "token"], 3_000);
182
+ if (token !== null)
183
+ fill("GH_TOKEN", token, "gh auth token");
184
+ }
185
+ // Rung 4: the humanish user-level store — read with the SAME lenient parser `keys set`/`list`
186
+ // use, so one hand-mangled line degrades to that line alone instead of silently voiding the
187
+ // whole store (red-team finding: the strict parser disagreed with the store's own reader).
188
+ const storePath = userKeyStorePath(env, deps);
189
+ if (isRegularFile(storePath) && !dirIsSymlink(storePath)) {
190
+ for (const [name, value] of readStoreEntries(storePath)) {
191
+ if (!fillable(name))
192
+ continue;
193
+ if (!PROVIDER_KEY_SET.has(name)) {
194
+ ignored.push(`${name} (${storeLabel(env, deps)})`);
195
+ continue;
196
+ }
197
+ fill(name, value, storeLabel(env, deps));
198
+ }
199
+ }
200
+ for (const fill_ of fills)
201
+ announce(`humanish keys: ${fill_.name} from ${fill_.source}`);
202
+ for (const name of ignored)
203
+ announce(`humanish keys: ignored non-provider name ${name} — implicit discovery fills provider keys only; pass the file via --env-file to load everything in it`);
204
+ return fills;
205
+ }
206
+ /** True when the file's PARENT directory is (or traverses) a symlink at its last component —
207
+ * the dir-level retarget that defeats a file-level lstat check (red-team finding). */
208
+ function dirIsSymlink(filePath) {
209
+ try {
210
+ return lstatSync(path.dirname(filePath)).isSymbolicLink();
211
+ }
212
+ catch {
213
+ return false;
214
+ }
215
+ }
216
+ function storeLabel(env, deps) {
217
+ const home = deps.homeDir ?? homedir();
218
+ return userKeyStorePath(env, deps).replace(home, "~");
219
+ }
220
+ /** The nearest fill instruction for a missing key — used by doctor rows and appended to
221
+ * *_KEYS_MISSING errors so the failure names the fix, not just the absence (#436). */
222
+ export function missingKeyHint(name) {
223
+ switch (name) {
224
+ case "E2B_API_KEY":
225
+ return "run `e2b auth login`, or `humanish keys set e2b`";
226
+ case "GH_TOKEN":
227
+ case "GITHUB_TOKEN":
228
+ return "run `gh auth login`, or `humanish keys set github`";
229
+ case "OPENAI_API_KEY":
230
+ return "run `humanish keys set openai`";
231
+ case "ANTHROPIC_API_KEY":
232
+ return "run `humanish keys set anthropic`";
233
+ default:
234
+ return `run \`humanish keys set ${name}\``;
235
+ }
236
+ }
237
+ /** One shared suffix for *_KEYS_MISSING messages: where discovery looked, and what fills each
238
+ * missing key. Pure text; never values. */
239
+ export function describeMissingKeys(names, env) {
240
+ const hints = names.map((name) => `${name}: ${missingKeyHint(name)}`).join("; ");
241
+ const strict = env.HUMANISH_STRICT_KEYS?.trim() === "1";
242
+ const chain = strict
243
+ ? "key discovery is disabled (HUMANISH_STRICT_KEYS=1); only process env and --env-file are read"
244
+ : `also checked ${PROJECT_OVERLAY_RELATIVE}, ~/.e2b/config.json, gh auth token, and ${path.join("~", ".config", "humanish", "keys.env")}`;
245
+ return `${chain}. Fill: ${hints}.`;
246
+ }
247
+ /**
248
+ * Non-mutating probe for doctor: report, per key, the source that currently supplies it.
249
+ * Runs the same chain against a scratch copy of env so nothing observable changes.
250
+ */
251
+ export async function probeKeySources(names, args) {
252
+ const scratch = { ...args.env };
253
+ const fills = await discoverProviderKeys({
254
+ cwd: args.cwd,
255
+ env: scratch,
256
+ announce: () => { },
257
+ ...(args.deps === undefined ? {} : { deps: args.deps })
258
+ });
259
+ const bySource = new Map(fills.map((fill) => [fill.name, fill.source]));
260
+ return names.map((name) => {
261
+ const inEnv = args.env[name] !== undefined && args.env[name]?.trim() !== "";
262
+ // GH_TOKEN and GITHUB_TOKEN are one credential with two spellings; a doctor row that says
263
+ // "missing" while GITHUB_TOKEN sits in the env would be wrong (red-team nit).
264
+ const aliasInEnv = name === "GH_TOKEN" && args.env.GITHUB_TOKEN !== undefined && args.env.GITHUB_TOKEN.trim() !== "";
265
+ const source = inEnv ? "process env" : aliasInEnv ? "process env (GITHUB_TOKEN)" : (bySource.get(name) ?? null);
266
+ return { name, source, hint: missingKeyHint(name) };
267
+ });
268
+ }
269
+ const ENV_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/;
270
+ /** Resolve a `humanish keys set` target: a vendor alias or a raw env name. Null = invalid. */
271
+ export function resolveKeyName(vendorOrName) {
272
+ const alias = KEY_VENDOR_ALIASES[vendorOrName.toLowerCase()];
273
+ if (alias !== undefined)
274
+ return alias;
275
+ return ENV_NAME.test(vendorOrName) ? vendorOrName : null;
276
+ }
277
+ /** Write one key into the user store (0700 dir, 0600 file). Only allowlisted provider names
278
+ * are storable (the store feeds implicit discovery — an arbitrary-name store would be an env
279
+ * injection vector with extra steps). The value must be a single non-empty line that
280
+ * round-trips the store's own parser byte-identically, and the write refuses symlinks at the
281
+ * file AND its parent directory (red-team findings). */
282
+ export function setUserKey(name, value, env, deps = {}) {
283
+ const trimmed = value.trim();
284
+ if (trimmed.length === 0 || /\r|\n/.test(trimmed)) {
285
+ throw new Error("The key value must be a single non-empty line.");
286
+ }
287
+ if (!ENV_NAME.test(name)) {
288
+ throw new Error(`Not a valid env name: ${name}`);
289
+ }
290
+ if (!PROVIDER_KEY_SET.has(name)) {
291
+ throw new Error(`The store holds provider keys only (${[...PROVIDER_KEY_SET].join(", ")}). For anything else, use an explicit --env-file.`);
292
+ }
293
+ const storePath = userKeyStorePath(env, deps);
294
+ const dir = path.dirname(storePath);
295
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
296
+ if (lstatSync(dir).isSymbolicLink()) {
297
+ throw new Error(`Refusing to write through a symlinked store directory: ${dir}`);
298
+ }
299
+ if (existsSync(storePath) && !lstatSync(storePath).isFile()) {
300
+ throw new Error(`Refusing to write the store: ${storePath} is not a regular file.`);
301
+ }
302
+ const entries = readStoreEntries(storePath);
303
+ entries.set(name, trimmed);
304
+ // The written line must read back byte-identically through the store's own parser: a value
305
+ // that parses differently (an embedded '#', a leading quote the env parser would strip)
306
+ // would silently resolve to a DIFFERENT secret on the next run.
307
+ const roundTrip = parseStoreLine(`${name}=${trimmed}`);
308
+ if (roundTrip === null || roundTrip[0] !== name || roundTrip[1] !== trimmed) {
309
+ throw new Error("The value does not round-trip the store format (avoid leading quotes and '#'); pass it via --env-file instead.");
310
+ }
311
+ writeStore(storePath, entries);
312
+ return { path: storePath };
313
+ }
314
+ /** Remove one key from the user store. Returns whether it was present. */
315
+ export function unsetUserKey(name, env, deps = {}) {
316
+ const storePath = userKeyStorePath(env, deps);
317
+ if (!isRegularFile(storePath) || dirIsSymlink(storePath))
318
+ return false;
319
+ const entries = readStoreEntries(storePath);
320
+ const had = entries.delete(name);
321
+ if (had)
322
+ writeStore(storePath, entries);
323
+ return had;
324
+ }
325
+ /** The names (never values) currently in the user store. */
326
+ export function listUserKeys(env, deps = {}) {
327
+ const storePath = userKeyStorePath(env, deps);
328
+ if (!isRegularFile(storePath) || dirIsSymlink(storePath))
329
+ return [];
330
+ return [...readStoreEntries(storePath).keys()];
331
+ }
332
+ function readStoreEntries(storePath) {
333
+ const entries = new Map();
334
+ if (!existsSync(storePath))
335
+ return entries;
336
+ const text = readFileSync(storePath, "utf8");
337
+ for (const line of text.split(/\r?\n/)) {
338
+ const parsed = parseStoreLine(line);
339
+ if (parsed !== null)
340
+ entries.set(parsed[0], parsed[1]);
341
+ }
342
+ return entries;
343
+ }
344
+ function writeStore(storePath, entries) {
345
+ const body = [...entries.entries()].map(([name, value]) => `${name}=${value}`).join("\n");
346
+ const text = body.length > 0 ? `${body}\n` : "";
347
+ // O_NOFOLLOW: a symlinked keys.env must never carry the write to its target (red-team
348
+ // reproduced writing a secret through the link into an attacker-chosen file).
349
+ const fd = openSync(storePath, fsConstants.O_WRONLY | fsConstants.O_CREAT | fsConstants.O_NOFOLLOW, 0o600);
350
+ try {
351
+ ftruncateSync(fd, 0);
352
+ writeSync(fd, text, 0, "utf8");
353
+ }
354
+ finally {
355
+ closeSync(fd);
356
+ }
357
+ // mkdir/open modes are masked by umask; enforce the final bits explicitly.
358
+ chmodSync(storePath, 0o600);
359
+ }
360
+ /** The store's line grammar, shared by read and the set-time round-trip check. */
361
+ function parseStoreLine(line) {
362
+ const trimmed = line.trim();
363
+ if (trimmed === "" || trimmed.startsWith("#"))
364
+ return null;
365
+ const separator = trimmed.indexOf("=");
366
+ if (separator <= 0)
367
+ return null;
368
+ const name = trimmed.slice(0, separator).trim();
369
+ if (!ENV_NAME.test(name))
370
+ return null;
371
+ return [name, trimmed.slice(separator + 1).trim()];
372
+ }
373
+ //# sourceMappingURL=key-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-resolution.js","sourceRoot":"","sources":["../src/key-resolution.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { ActorCapabilities } from "./actor-contract.js";
2
2
  import type { CuaAction, CuaProvider, CuaSafetyCheck, CuaTurn } from "./computer-use.js";
3
3
  export declare const OPENAI_RESPONSES_CU_CAPABILITIES: ActorCapabilities;
4
- export declare const DEFAULT_OPENAI_CU_MODEL = "gpt-5.5";
4
+ export declare const DEFAULT_OPENAI_CU_MODEL = "gpt-5.6-sol";
5
5
  /**
6
6
  * Map an OpenAI computer action object to a provider-neutral CuaAction, or null
7
7
  * for an unknown type. Every coordinate and field is read defensively so a
@@ -49,7 +49,10 @@ export const OPENAI_RESPONSES_CU_CAPABILITIES = {
49
49
  inProcessTools: false,
50
50
  license: "proprietary"
51
51
  };
52
- export const DEFAULT_OPENAI_CU_MODEL = "gpt-5.5";
52
+ // The flagship 5.6-generation tier ("gpt-5.6" is OpenAI's alias for this exact id; the
53
+ // computer-use guide's own examples run on it). Explicit tier id so trace provenance and the
54
+ // rate-table key stay stable if OpenAI repoints the alias (#334).
55
+ export const DEFAULT_OPENAI_CU_MODEL = "gpt-5.6-sol";
53
56
  // ---------------------------------------------------------------------------
54
57
  // Defensive readers. The Responses wire shape is loosely typed (unknown), so we
55
58
  // read every field defensively: a non-object is treated as empty, a non-number
@@ -230,12 +233,15 @@ export function parseOpenAiResponse(raw) {
230
233
  // a long session is a cache hit billed at a fraction of the full rate. Not reading it made every
231
234
  // cost line materially overstate the bill (#391).
232
235
  const usageCachedInput = optionalNumber(asRecord(usageRecord.input_tokens_details).cached_tokens);
236
+ // GPT-5.6+ bills cache WRITES (1.25x input) and reports them here; older models omit the field.
237
+ const usageCacheWriteInput = optionalNumber(asRecord(usageRecord.input_tokens_details).cache_write_tokens);
233
238
  const usage = usageInput === undefined && usageOutput === undefined
234
239
  ? undefined
235
240
  : {
236
241
  ...(usageInput === undefined ? {} : { input: usageInput }),
237
242
  ...(usageOutput === undefined ? {} : { output: usageOutput }),
238
- ...(usageCachedInput === undefined ? {} : { cachedInput: usageCachedInput })
243
+ ...(usageCachedInput === undefined ? {} : { cachedInput: usageCachedInput }),
244
+ ...(usageCacheWriteInput === undefined ? {} : { cacheWriteInput: usageCacheWriteInput })
239
245
  };
240
246
  const turn = {
241
247
  actions,
@@ -1 +1 @@
1
- {"version":3,"file":"openai-responses-cu.js","sourceRoot":"","sources":["../src/openai-responses-cu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-responses-cu.js","sourceRoot":"","sources":["../src/openai-responses-cu.ts"],"names":[],"mappings":"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"}
package/dist/pricing.d.ts CHANGED
@@ -11,6 +11,21 @@ export interface ModelRate {
11
11
  * billed at `inputUsdPerToken` — the previous behavior, kept as the fallback so a rate sheet
12
12
  * without this field prices exactly as it did before (#391). */
13
13
  cachedInputUsdPerToken?: number;
14
+ /** USD per input token newly WRITTEN to the provider's prompt cache, when the provider bills
15
+ * writes (OpenAI: GPT-5.6+ bills `cache_write_tokens` at 1.25x the uncached input rate, as the
16
+ * TOTAL rate for those tokens — not an extra charge on top). Absent = writes are free (every
17
+ * pre-5.6 model) and any reported write tokens price at the plain input rate. */
18
+ cacheWriteUsdPerToken?: number;
19
+ /** Long-context tier, when the provider re-prices the WHOLE request past an input-size
20
+ * threshold (OpenAI GPT-5.6: >272K input tokens => 2x input-side, 1.5x output, full request).
21
+ * Priced exactly only when the usage carries per-request `turns` records; totals alone cannot
22
+ * say which requests crossed, so without turns the estimate stays on the short-context rate
23
+ * (the historical behavior, and the under-estimate direction is called out in #334's fix). */
24
+ longContext?: {
25
+ thresholdInputTokens: number;
26
+ inputMultiplier: number;
27
+ outputMultiplier: number;
28
+ };
14
29
  /** "YYYY-MM-DD" the entry was last checked against `source`. */
15
30
  asOf: string;
16
31
  /** Public pricing page the number came from (a comment/URL, never a secret). */
@@ -53,6 +68,11 @@ export interface ActorEstimatedCost {
53
68
  /** Of `inputTokens`, how many were billed at the reduced cached rate. Present only when the
54
69
  * provider reported cache hits AND the rate sheet models a cached rate. */
55
70
  cachedInputTokens?: number;
71
+ /** Of `inputTokens`, how many were billed at the cache-WRITE rate (OpenAI 5.6+). */
72
+ cacheWriteInputTokens?: number;
73
+ /** How many requests crossed the long-context threshold and were re-tiered. Present only
74
+ * when per-request `turns` records made exact tiering possible. */
75
+ longContextTurns?: number;
56
76
  };
57
77
  }
58
78
  /** The desktop-minute cost ESTIMATE (host-side create->teardown span * a per-minute rate). Same