@almightygpt/core 0.3.0 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAUpB,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,IAAI,SAAW,EAAE,OAAO,GAAE,oBAAyB;IAUzD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CA2D3D"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAUpB,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,IAAI,SAAW,EAAE,OAAO,GAAE,oBAAyB;IAUzD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CAkG3D"}
@@ -49,7 +49,23 @@ export class ClaudeAdapter {
49
49
  response = await this.client.messages.create({
50
50
  model,
51
51
  max_tokens: maxOutputTokens,
52
- system: input.systemPrompt,
52
+ // Pass system as a content-block array with cache_control:
53
+ // ephemeral on the (only) block. Anthropic caches the marked
54
+ // block for ~5 minutes; subsequent calls with the same prefix
55
+ // get charged at 10% of normal input rate for the cached span.
56
+ // The CLI's review flow re-sends the same memory (AGENTS.md +
57
+ // CODEX_AGENT.md + rules.md) on every run, so this is a near-
58
+ // perfect fit.
59
+ // cache_control isn't in the SDK 0.30.x .d.ts yet but the
60
+ // v1/messages API accepts it. Cast at the call site.
61
+ system: [
62
+ {
63
+ type: "text",
64
+ text: input.systemPrompt,
65
+ cache_control: { type: "ephemeral" },
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
+ },
68
+ ],
53
69
  messages: [{ role: "user", content: input.userMessage }],
54
70
  }, { timeout: timeoutMs });
55
71
  }
@@ -64,12 +80,28 @@ export class ClaudeAdapter {
64
80
  if (!content) {
65
81
  throw new AdapterError("Anthropic returned no text content (tool-use or empty response).", this.name);
66
82
  }
67
- const tokensIn = response.usage.input_tokens;
68
- const tokensOut = response.usage.output_tokens;
69
- const costUsd = estimateCostUsd(model, tokensIn, tokensOut);
83
+ // Anthropic usage fields with caching enabled:
84
+ // input_tokens — fresh-hit input tokens (full price)
85
+ // cache_creation_input_tokens tokens that just got written to the
86
+ // cache (1.25× of normal rate, one-time)
87
+ // cache_read_input_tokens — tokens served from existing cache
88
+ // (0.1× of normal rate)
89
+ // We surface cache_read as `cachedTokensIn`. Cache-creation tokens are
90
+ // folded into `tokensIn` total for visibility and cost-modeled at the
91
+ // normal rate (close enough — the 25% surcharge is small relative to
92
+ // the savings on subsequent reads).
93
+ const usage = response.usage;
94
+ const freshIn = usage.input_tokens;
95
+ const cacheCreationIn = usage.cache_creation_input_tokens ?? 0;
96
+ const cacheReadIn = usage.cache_read_input_tokens ?? 0;
97
+ const tokensIn = freshIn + cacheCreationIn + cacheReadIn;
98
+ const tokensOut = usage.output_tokens;
99
+ const costUsd = estimateCostUsdWithCache(model, freshIn + cacheCreationIn, // both billed at ~normal input rate
100
+ cacheReadIn, tokensOut);
70
101
  return {
71
102
  content,
72
103
  tokensIn,
104
+ cachedTokensIn: cacheReadIn,
73
105
  tokensOut,
74
106
  costUsd,
75
107
  latencyMs: Date.now() - start,
@@ -78,13 +110,21 @@ export class ClaudeAdapter {
78
110
  };
79
111
  }
80
112
  }
81
- function estimateCostUsd(model, tokensIn, tokensOut) {
113
+ /**
114
+ * Anthropic cache read discount: cache_read_input_tokens are charged at
115
+ * roughly 10% of normal input rate. (See
116
+ * https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching.)
117
+ */
118
+ const CACHE_READ_DISCOUNT = 0.1;
119
+ function estimateCostUsdWithCache(model, freshOrCreationIn, cacheReadIn, tokensOut) {
82
120
  const key = Object.keys(PRICING_USD_PER_1M).find((k) => model.toLowerCase().startsWith(k));
83
121
  if (!key)
84
122
  return 0;
85
123
  const rates = PRICING_USD_PER_1M[key];
86
124
  if (!rates)
87
125
  return 0;
88
- return (tokensIn / 1_000_000) * rates.input + (tokensOut / 1_000_000) * rates.output;
126
+ return ((freshOrCreationIn / 1_000_000) * rates.input +
127
+ (cacheReadIn / 1_000_000) * rates.input * CACHE_READ_DISCOUNT +
128
+ (tokensOut / 1_000_000) * rates.output);
89
129
  }
90
130
  //# sourceMappingURL=claude.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAY/F,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAGxC,IAAI,SAAU,EACd,OAAO,GAAE,oBAAyB;IAkB9B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CA6D3D"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAY/F,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAGxC,IAAI,SAAU,EACd,OAAO,GAAE,oBAAyB;IAkB9B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CA8E3D"}
@@ -78,12 +78,20 @@ export class OpenAIAdapter {
78
78
  throw new AdapterError("OpenAI returned an empty response (no choices or empty content).", this.name);
79
79
  }
80
80
  const content = choice.message.content;
81
- const tokensIn = response.usage?.prompt_tokens ?? 0;
82
- const tokensOut = response.usage?.completion_tokens ?? 0;
83
- const costUsd = estimateCostUsd(model, tokensIn, tokensOut);
81
+ // OpenAI prompt caching is automatic for prompts > 1024 tokens; the
82
+ // cached span is the longest common prefix across recent calls with
83
+ // the same model. The fraction cached comes back in
84
+ // prompt_tokens_details.cached_tokens. Cache reads are billed at ~50%
85
+ // of normal input rate.
86
+ const usage = response.usage;
87
+ const tokensIn = usage?.prompt_tokens ?? 0;
88
+ const cacheReadIn = usage?.prompt_tokens_details?.cached_tokens ?? 0;
89
+ const tokensOut = usage?.completion_tokens ?? 0;
90
+ const costUsd = estimateCostUsdWithCache(model, tokensIn - cacheReadIn, cacheReadIn, tokensOut);
84
91
  return {
85
92
  content,
86
93
  tokensIn,
94
+ cachedTokensIn: cacheReadIn,
87
95
  tokensOut,
88
96
  costUsd,
89
97
  latencyMs: Date.now() - start,
@@ -92,7 +100,12 @@ export class OpenAIAdapter {
92
100
  };
93
101
  }
94
102
  }
95
- function estimateCostUsd(model, tokensIn, tokensOut) {
103
+ /**
104
+ * OpenAI cache-read discount: cached input tokens are billed at 50% of
105
+ * normal input rate. (See https://platform.openai.com/docs/guides/prompt-caching.)
106
+ */
107
+ const CACHE_READ_DISCOUNT = 0.5;
108
+ function estimateCostUsdWithCache(model, freshTokensIn, cacheReadIn, tokensOut) {
96
109
  // Match by prefix so versioned model names (gpt-4o-2024-08-06) still resolve.
97
110
  const key = Object.keys(PRICING_USD_PER_1M).find((k) => model.toLowerCase().startsWith(k));
98
111
  if (!key)
@@ -100,6 +113,8 @@ function estimateCostUsd(model, tokensIn, tokensOut) {
100
113
  const rates = PRICING_USD_PER_1M[key];
101
114
  if (!rates)
102
115
  return 0;
103
- return (tokensIn / 1_000_000) * rates.input + (tokensOut / 1_000_000) * rates.output;
116
+ return ((freshTokensIn / 1_000_000) * rates.input +
117
+ (cacheReadIn / 1_000_000) * rates.input * CACHE_READ_DISCOUNT +
118
+ (tokensOut / 1_000_000) * rates.output);
104
119
  }
105
120
  //# sourceMappingURL=openai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"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"}
@@ -29,11 +29,21 @@ export interface AdapterInput {
29
29
  export interface AdapterOutput {
30
30
  /** The model's text response. */
31
31
  content: string;
32
- /** Input token count (prompt). */
32
+ /** Input token count (prompt). Total — includes any cached portion. */
33
33
  tokensIn: number;
34
+ /**
35
+ * Subset of `tokensIn` that was served from the provider's prompt cache
36
+ * (cheaper). Anthropic returns `cache_read_input_tokens`. OpenAI returns
37
+ * `prompt_tokens_details.cached_tokens`. Adapters that don't support
38
+ * caching yet (or for which caching didn't trigger this run) leave this
39
+ * at 0 — meaning every input token was a fresh hit at full price.
40
+ */
41
+ cachedTokensIn?: number;
34
42
  /** Output token count (completion). */
35
43
  tokensOut: number;
36
- /** Estimated USD cost based on the model's published rates. */
44
+ /** Estimated USD cost based on the model's published rates, with cache
45
+ * discount applied to `cachedTokensIn` per provider's published rate
46
+ * (Anthropic: 90% off on cache reads; OpenAI: 50% off; Gemini: varies). */
37
47
  costUsd: number;
38
48
  /** Wall-clock latency in milliseconds. */
39
49
  latencyMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,gGAAgG;IAChG,IAAI,EAAE,SAAS,CAAC;IAChB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IACxC,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,8BAA8B;IAC9B,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACtD;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAInB,WAAW,EAAE,MAAM;aACV,KAAK,CAAC,EAAE,OAAO;IAJ1C,SAAkB,IAAI,kBAAkB;gBAEtC,OAAO,EAAE,MAAM,EACC,WAAW,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,OAAO,YAAA;CAI3C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,gGAAgG;IAChG,IAAI,EAAE,SAAS,CAAC;IAChB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IACxC,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB;;+EAE2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,8BAA8B;IAC9B,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACtD;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAInB,WAAW,EAAE,MAAM;aACV,KAAK,CAAC,EAAE,OAAO;IAJ1C,SAAkB,IAAI,kBAAkB;gBAEtC,OAAO,EAAE,MAAM,EACC,WAAW,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,OAAO,YAAA;CAI3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiDH;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAInB;IACS;IAJT,IAAI,GAAG,cAAc,CAAC;IACxC,YACE,OAAe,EACC,WAAmB,EACV,KAAe;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,gBAAW,GAAX,WAAW,CAAQ;QACV,UAAK,GAAL,KAAK,CAAU;IAG1C,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA2DH;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAInB;IACS;IAJT,IAAI,GAAG,cAAc,CAAC;IACxC,YACE,OAAe,EACC,WAAmB,EACV,KAAe;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,gBAAW,GAAX,WAAW,CAAQ;QACV,UAAK,GAAL,KAAK,CAAU;IAG1C,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -12,7 +12,7 @@
12
12
  * - review/ ✅ task #11 diff review pipeline (with #12/#13/#14 wiring)
13
13
  * - budget/ ✅ task #14 BudgetTracker + BudgetExceededError
14
14
  */
15
- export declare const VERSION = "0.3.0";
15
+ export declare const VERSION = "0.4.0";
16
16
  export { checkGitStatus, assertSafeToWrite, GitStatusDirtyError, type GitStatusCheck, } from "./git/status.js";
17
17
  export { installTemplate, hasExistingConfig, type InstallOptions, type InstallResult, } from "./templates/install.js";
18
18
  export { loadConfig, ConfigError } from "./config/load.js";
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@
12
12
  * - review/ ✅ task #11 diff review pipeline (with #12/#13/#14 wiring)
13
13
  * - budget/ ✅ task #14 BudgetTracker + BudgetExceededError
14
14
  */
15
- export const VERSION = "0.3.0";
15
+ export const VERSION = "0.4.0";
16
16
  // Git safety primitives
17
17
  export { checkGitStatus, assertSafeToWrite, GitStatusDirtyError, } from "./git/status.js";
18
18
  // Template installer
@@ -33,6 +33,8 @@ export interface AgentCompletedEvent {
33
33
  model: string;
34
34
  outputPath: string;
35
35
  tokensIn: number;
36
+ /** Cache-hit portion of tokensIn (Anthropic cache_read / OpenAI cached). */
37
+ cachedTokensIn?: number;
36
38
  tokensOut: number;
37
39
  costUsd: number;
38
40
  latencyMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/review/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,kBAAkB,GAClB,iBAAiB,GACjB,cAAc,CAAC;AAEnB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/review/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,kBAAkB,GAClB,iBAAiB,GACjB,cAAc,CAAC;AAEnB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC"}
@@ -33,6 +33,8 @@ export interface DiffReviewResult {
33
33
  provider: string;
34
34
  modelUsed: string;
35
35
  tokensIn: number;
36
+ /** Portion of tokensIn served from prompt cache (0 if no cache hit). */
37
+ cachedTokensIn: number;
36
38
  tokensOut: number;
37
39
  costUsd: number;
38
40
  latencyMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"run-diff-review.d.ts","sourceRoot":"","sources":["../../src/review/run-diff-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA8BH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAuN3B"}
1
+ {"version":3,"file":"run-diff-review.d.ts","sourceRoot":"","sources":["../../src/review/run-diff-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA8BH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA2N3B"}
@@ -165,6 +165,9 @@ export async function runDiffReview(opts) {
165
165
  provider: adapter.provider,
166
166
  model: adapterOut.modelUsed,
167
167
  tokensIn: adapterOut.tokensIn,
168
+ ...(adapterOut.cachedTokensIn !== undefined && adapterOut.cachedTokensIn > 0
169
+ ? { cachedTokensIn: adapterOut.cachedTokensIn }
170
+ : {}),
168
171
  tokensOut: adapterOut.tokensOut,
169
172
  costUsd: adapterOut.costUsd,
170
173
  latencyMs: adapterOut.latencyMs,
@@ -185,6 +188,7 @@ export async function runDiffReview(opts) {
185
188
  provider: adapter.provider,
186
189
  modelUsed: adapterOut.modelUsed,
187
190
  tokensIn: adapterOut.tokensIn,
191
+ cachedTokensIn: adapterOut.cachedTokensIn ?? 0,
188
192
  tokensOut: adapterOut.tokensOut,
189
193
  costUsd: adapterOut.costUsd,
190
194
  latencyMs: adapterOut.latencyMs,
@@ -1 +1 @@
1
- {"version":3,"file":"run-diff-review.js","sourceRoot":"","sources":["../../src/review/run-diff-review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-diff-review.js","sourceRoot":"","sources":["../../src/review/run-diff-review.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-worker-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/run-worker-reviewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAoBH,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,kBAAkB,CAAC;AAWlE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CA0X/B"}
1
+ {"version":3,"file":"run-worker-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/run-worker-reviewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAoBH,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,kBAAkB,CAAC;AAWlE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAsY/B"}
@@ -185,6 +185,9 @@ export async function runWorkerReviewerReview(opts) {
185
185
  model: workerOut.modelUsed,
186
186
  outputPath: `${runFolder.relPath}/outputs/worker.md`,
187
187
  tokensIn: workerOut.tokensIn,
188
+ ...(workerOut.cachedTokensIn !== undefined && workerOut.cachedTokensIn > 0
189
+ ? { cachedTokensIn: workerOut.cachedTokensIn }
190
+ : {}),
188
191
  tokensOut: workerOut.tokensOut,
189
192
  costUsd: workerOut.costUsd,
190
193
  latencyMs: workerOut.latencyMs,
@@ -230,6 +233,9 @@ export async function runWorkerReviewerReview(opts) {
230
233
  model: reviewerOut.modelUsed,
231
234
  outputPath: `${runFolder.relPath}/outputs/reviewer.md`,
232
235
  tokensIn: reviewerOut.tokensIn,
236
+ ...(reviewerOut.cachedTokensIn !== undefined && reviewerOut.cachedTokensIn > 0
237
+ ? { cachedTokensIn: reviewerOut.cachedTokensIn }
238
+ : {}),
233
239
  tokensOut: reviewerOut.tokensOut,
234
240
  costUsd: reviewerOut.costUsd,
235
241
  latencyMs: reviewerOut.latencyMs,
@@ -280,6 +286,9 @@ export async function runWorkerReviewerReview(opts) {
280
286
  provider: workerAdapter.provider,
281
287
  model: workerOut.modelUsed,
282
288
  tokensIn: workerOut.tokensIn,
289
+ ...(workerOut.cachedTokensIn !== undefined && workerOut.cachedTokensIn > 0
290
+ ? { cachedTokensIn: workerOut.cachedTokensIn }
291
+ : {}),
283
292
  tokensOut: workerOut.tokensOut,
284
293
  costUsd: workerOut.costUsd,
285
294
  latencyMs: workerOut.latencyMs,
@@ -290,6 +299,9 @@ export async function runWorkerReviewerReview(opts) {
290
299
  provider: reviewerAdapter.provider,
291
300
  model: reviewerOut.modelUsed,
292
301
  tokensIn: reviewerOut.tokensIn,
302
+ ...(reviewerOut.cachedTokensIn !== undefined && reviewerOut.cachedTokensIn > 0
303
+ ? { cachedTokensIn: reviewerOut.cachedTokensIn }
304
+ : {}),
293
305
  tokensOut: reviewerOut.tokensOut,
294
306
  costUsd: reviewerOut.costUsd,
295
307
  latencyMs: reviewerOut.latencyMs,
@@ -1 +1 @@
1
- {"version":3,"file":"run-worker-reviewer.js","sourceRoot":"","sources":["../../src/review/run-worker-reviewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-worker-reviewer.js","sourceRoot":"","sources":["../../src/review/run-worker-reviewer.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ export interface AgentMetrics {
17
17
  provider: string;
18
18
  model: string;
19
19
  tokensIn: number;
20
+ /**
21
+ * Portion of tokensIn served from the provider's prompt cache (Anthropic
22
+ * cache_read, OpenAI prompt_tokens_details.cached_tokens). Always less
23
+ * than or equal to tokensIn. Zero when caching didn't trigger.
24
+ */
25
+ cachedTokensIn?: number;
20
26
  tokensOut: number;
21
27
  costUsd: number;
22
28
  latencyMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runs/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,OAAO,GACf,aAAa,GACb,aAAa,GACb,oBAAoB,GACpB,wBAAwB,CAAC;AAE7B,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,GAAG,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,+BAA+B;IAC/B,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,kBAAkB,GAAG,KAAK,CAAC;QACpE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,sDAAsD;IACtD,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC7E,gCAAgC;IAChC,eAAe,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxD,oBAAoB;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,yBAAyB;IACzB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,wBAAwB;IACxB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,uCAAuC;IACvC,MAAM,EAAE;QACN,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,wDAAwD;IACxD,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,eAAe,GACf,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runs/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almightygpt/core",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Core orchestrator, adapters, config, runs, and review logic for AlmightyGPT",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -76,7 +76,23 @@ export class ClaudeAdapter implements Adapter {
76
76
  {
77
77
  model,
78
78
  max_tokens: maxOutputTokens,
79
- system: input.systemPrompt,
79
+ // Pass system as a content-block array with cache_control:
80
+ // ephemeral on the (only) block. Anthropic caches the marked
81
+ // block for ~5 minutes; subsequent calls with the same prefix
82
+ // get charged at 10% of normal input rate for the cached span.
83
+ // The CLI's review flow re-sends the same memory (AGENTS.md +
84
+ // CODEX_AGENT.md + rules.md) on every run, so this is a near-
85
+ // perfect fit.
86
+ // cache_control isn't in the SDK 0.30.x .d.ts yet but the
87
+ // v1/messages API accepts it. Cast at the call site.
88
+ system: [
89
+ {
90
+ type: "text",
91
+ text: input.systemPrompt,
92
+ cache_control: { type: "ephemeral" },
93
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
+ } as any,
95
+ ],
80
96
  messages: [{ role: "user", content: input.userMessage }],
81
97
  },
82
98
  { timeout: timeoutMs },
@@ -102,13 +118,36 @@ export class ClaudeAdapter implements Adapter {
102
118
  );
103
119
  }
104
120
 
105
- const tokensIn = response.usage.input_tokens;
106
- const tokensOut = response.usage.output_tokens;
107
- const costUsd = estimateCostUsd(model, tokensIn, tokensOut);
121
+ // Anthropic usage fields with caching enabled:
122
+ // input_tokens — fresh-hit input tokens (full price)
123
+ // cache_creation_input_tokens tokens that just got written to the
124
+ // cache (1.25× of normal rate, one-time)
125
+ // cache_read_input_tokens — tokens served from existing cache
126
+ // (0.1× of normal rate)
127
+ // We surface cache_read as `cachedTokensIn`. Cache-creation tokens are
128
+ // folded into `tokensIn` total for visibility and cost-modeled at the
129
+ // normal rate (close enough — the 25% surcharge is small relative to
130
+ // the savings on subsequent reads).
131
+ const usage = response.usage as Anthropic.Usage & {
132
+ cache_creation_input_tokens?: number;
133
+ cache_read_input_tokens?: number;
134
+ };
135
+ const freshIn = usage.input_tokens;
136
+ const cacheCreationIn = usage.cache_creation_input_tokens ?? 0;
137
+ const cacheReadIn = usage.cache_read_input_tokens ?? 0;
138
+ const tokensIn = freshIn + cacheCreationIn + cacheReadIn;
139
+ const tokensOut = usage.output_tokens;
140
+ const costUsd = estimateCostUsdWithCache(
141
+ model,
142
+ freshIn + cacheCreationIn, // both billed at ~normal input rate
143
+ cacheReadIn,
144
+ tokensOut,
145
+ );
108
146
 
109
147
  return {
110
148
  content,
111
149
  tokensIn,
150
+ cachedTokensIn: cacheReadIn,
112
151
  tokensOut,
113
152
  costUsd,
114
153
  latencyMs: Date.now() - start,
@@ -118,9 +157,17 @@ export class ClaudeAdapter implements Adapter {
118
157
  }
119
158
  }
120
159
 
121
- function estimateCostUsd(
160
+ /**
161
+ * Anthropic cache read discount: cache_read_input_tokens are charged at
162
+ * roughly 10% of normal input rate. (See
163
+ * https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching.)
164
+ */
165
+ const CACHE_READ_DISCOUNT = 0.1;
166
+
167
+ function estimateCostUsdWithCache(
122
168
  model: string,
123
- tokensIn: number,
169
+ freshOrCreationIn: number,
170
+ cacheReadIn: number,
124
171
  tokensOut: number,
125
172
  ): number {
126
173
  const key = Object.keys(PRICING_USD_PER_1M).find((k) =>
@@ -129,5 +176,9 @@ function estimateCostUsd(
129
176
  if (!key) return 0;
130
177
  const rates = PRICING_USD_PER_1M[key];
131
178
  if (!rates) return 0;
132
- return (tokensIn / 1_000_000) * rates.input + (tokensOut / 1_000_000) * rates.output;
179
+ return (
180
+ (freshOrCreationIn / 1_000_000) * rates.input +
181
+ (cacheReadIn / 1_000_000) * rates.input * CACHE_READ_DISCOUNT +
182
+ (tokensOut / 1_000_000) * rates.output
183
+ );
133
184
  }
@@ -118,13 +118,30 @@ export class OpenAIAdapter implements Adapter {
118
118
  }
119
119
 
120
120
  const content = choice.message.content;
121
- const tokensIn = response.usage?.prompt_tokens ?? 0;
122
- const tokensOut = response.usage?.completion_tokens ?? 0;
123
- const costUsd = estimateCostUsd(model, tokensIn, tokensOut);
121
+ // OpenAI prompt caching is automatic for prompts > 1024 tokens; the
122
+ // cached span is the longest common prefix across recent calls with
123
+ // the same model. The fraction cached comes back in
124
+ // prompt_tokens_details.cached_tokens. Cache reads are billed at ~50%
125
+ // of normal input rate.
126
+ const usage = response.usage as
127
+ | (typeof response.usage & {
128
+ prompt_tokens_details?: { cached_tokens?: number };
129
+ })
130
+ | undefined;
131
+ const tokensIn = usage?.prompt_tokens ?? 0;
132
+ const cacheReadIn = usage?.prompt_tokens_details?.cached_tokens ?? 0;
133
+ const tokensOut = usage?.completion_tokens ?? 0;
134
+ const costUsd = estimateCostUsdWithCache(
135
+ model,
136
+ tokensIn - cacheReadIn,
137
+ cacheReadIn,
138
+ tokensOut,
139
+ );
124
140
 
125
141
  return {
126
142
  content,
127
143
  tokensIn,
144
+ cachedTokensIn: cacheReadIn,
128
145
  tokensOut,
129
146
  costUsd,
130
147
  latencyMs: Date.now() - start,
@@ -134,9 +151,16 @@ export class OpenAIAdapter implements Adapter {
134
151
  }
135
152
  }
136
153
 
137
- function estimateCostUsd(
154
+ /**
155
+ * OpenAI cache-read discount: cached input tokens are billed at 50% of
156
+ * normal input rate. (See https://platform.openai.com/docs/guides/prompt-caching.)
157
+ */
158
+ const CACHE_READ_DISCOUNT = 0.5;
159
+
160
+ function estimateCostUsdWithCache(
138
161
  model: string,
139
- tokensIn: number,
162
+ freshTokensIn: number,
163
+ cacheReadIn: number,
140
164
  tokensOut: number,
141
165
  ): number {
142
166
  // Match by prefix so versioned model names (gpt-4o-2024-08-06) still resolve.
@@ -146,5 +170,9 @@ function estimateCostUsd(
146
170
  if (!key) return 0;
147
171
  const rates = PRICING_USD_PER_1M[key];
148
172
  if (!rates) return 0;
149
- return (tokensIn / 1_000_000) * rates.input + (tokensOut / 1_000_000) * rates.output;
173
+ return (
174
+ (freshTokensIn / 1_000_000) * rates.input +
175
+ (cacheReadIn / 1_000_000) * rates.input * CACHE_READ_DISCOUNT +
176
+ (tokensOut / 1_000_000) * rates.output
177
+ );
150
178
  }
@@ -32,11 +32,21 @@ export interface AdapterInput {
32
32
  export interface AdapterOutput {
33
33
  /** The model's text response. */
34
34
  content: string;
35
- /** Input token count (prompt). */
35
+ /** Input token count (prompt). Total — includes any cached portion. */
36
36
  tokensIn: number;
37
+ /**
38
+ * Subset of `tokensIn` that was served from the provider's prompt cache
39
+ * (cheaper). Anthropic returns `cache_read_input_tokens`. OpenAI returns
40
+ * `prompt_tokens_details.cached_tokens`. Adapters that don't support
41
+ * caching yet (or for which caching didn't trigger this run) leave this
42
+ * at 0 — meaning every input token was a fresh hit at full price.
43
+ */
44
+ cachedTokensIn?: number;
37
45
  /** Output token count (completion). */
38
46
  tokensOut: number;
39
- /** Estimated USD cost based on the model's published rates. */
47
+ /** Estimated USD cost based on the model's published rates, with cache
48
+ * discount applied to `cachedTokensIn` per provider's published rate
49
+ * (Anthropic: 90% off on cache reads; OpenAI: 50% off; Gemini: varies). */
40
50
  costUsd: number;
41
51
  /** Wall-clock latency in milliseconds. */
42
52
  latencyMs: number;
package/src/index.ts CHANGED
@@ -13,7 +13,7 @@
13
13
  * - budget/ ✅ task #14 BudgetTracker + BudgetExceededError
14
14
  */
15
15
 
16
- export const VERSION = "0.3.0";
16
+ export const VERSION = "0.4.0";
17
17
 
18
18
  // Git safety primitives
19
19
  export {
@@ -45,6 +45,8 @@ export interface AgentCompletedEvent {
45
45
  model: string;
46
46
  outputPath: string;
47
47
  tokensIn: number;
48
+ /** Cache-hit portion of tokensIn (Anthropic cache_read / OpenAI cached). */
49
+ cachedTokensIn?: number;
48
50
  tokensOut: number;
49
51
  costUsd: number;
50
52
  latencyMs: number;
@@ -63,6 +63,8 @@ export interface DiffReviewResult {
63
63
  provider: string;
64
64
  modelUsed: string;
65
65
  tokensIn: number;
66
+ /** Portion of tokensIn served from prompt cache (0 if no cache hit). */
67
+ cachedTokensIn: number;
66
68
  tokensOut: number;
67
69
  costUsd: number;
68
70
  latencyMs: number;
@@ -247,6 +249,9 @@ export async function runDiffReview(
247
249
  provider: adapter.provider,
248
250
  model: adapterOut.modelUsed,
249
251
  tokensIn: adapterOut.tokensIn,
252
+ ...(adapterOut.cachedTokensIn !== undefined && adapterOut.cachedTokensIn > 0
253
+ ? { cachedTokensIn: adapterOut.cachedTokensIn }
254
+ : {}),
250
255
  tokensOut: adapterOut.tokensOut,
251
256
  costUsd: adapterOut.costUsd,
252
257
  latencyMs: adapterOut.latencyMs,
@@ -268,6 +273,7 @@ export async function runDiffReview(
268
273
  provider: adapter.provider,
269
274
  modelUsed: adapterOut.modelUsed,
270
275
  tokensIn: adapterOut.tokensIn,
276
+ cachedTokensIn: adapterOut.cachedTokensIn ?? 0,
271
277
  tokensOut: adapterOut.tokensOut,
272
278
  costUsd: adapterOut.costUsd,
273
279
  latencyMs: adapterOut.latencyMs,
@@ -281,6 +281,9 @@ export async function runWorkerReviewerReview(
281
281
  model: workerOut.modelUsed,
282
282
  outputPath: `${runFolder.relPath}/outputs/worker.md`,
283
283
  tokensIn: workerOut.tokensIn,
284
+ ...(workerOut.cachedTokensIn !== undefined && workerOut.cachedTokensIn > 0
285
+ ? { cachedTokensIn: workerOut.cachedTokensIn }
286
+ : {}),
284
287
  tokensOut: workerOut.tokensOut,
285
288
  costUsd: workerOut.costUsd,
286
289
  latencyMs: workerOut.latencyMs,
@@ -335,6 +338,9 @@ export async function runWorkerReviewerReview(
335
338
  model: reviewerOut.modelUsed,
336
339
  outputPath: `${runFolder.relPath}/outputs/reviewer.md`,
337
340
  tokensIn: reviewerOut.tokensIn,
341
+ ...(reviewerOut.cachedTokensIn !== undefined && reviewerOut.cachedTokensIn > 0
342
+ ? { cachedTokensIn: reviewerOut.cachedTokensIn }
343
+ : {}),
338
344
  tokensOut: reviewerOut.tokensOut,
339
345
  costUsd: reviewerOut.costUsd,
340
346
  latencyMs: reviewerOut.latencyMs,
@@ -390,6 +396,9 @@ export async function runWorkerReviewerReview(
390
396
  provider: workerAdapter.provider,
391
397
  model: workerOut.modelUsed,
392
398
  tokensIn: workerOut.tokensIn,
399
+ ...(workerOut.cachedTokensIn !== undefined && workerOut.cachedTokensIn > 0
400
+ ? { cachedTokensIn: workerOut.cachedTokensIn }
401
+ : {}),
393
402
  tokensOut: workerOut.tokensOut,
394
403
  costUsd: workerOut.costUsd,
395
404
  latencyMs: workerOut.latencyMs,
@@ -400,6 +409,9 @@ export async function runWorkerReviewerReview(
400
409
  provider: reviewerAdapter.provider,
401
410
  model: reviewerOut.modelUsed,
402
411
  tokensIn: reviewerOut.tokensIn,
412
+ ...(reviewerOut.cachedTokensIn !== undefined && reviewerOut.cachedTokensIn > 0
413
+ ? { cachedTokensIn: reviewerOut.cachedTokensIn }
414
+ : {}),
403
415
  tokensOut: reviewerOut.tokensOut,
404
416
  costUsd: reviewerOut.costUsd,
405
417
  latencyMs: reviewerOut.latencyMs,
package/src/runs/types.ts CHANGED
@@ -24,6 +24,12 @@ export interface AgentMetrics {
24
24
  provider: string;
25
25
  model: string;
26
26
  tokensIn: number;
27
+ /**
28
+ * Portion of tokensIn served from the provider's prompt cache (Anthropic
29
+ * cache_read, OpenAI prompt_tokens_details.cached_tokens). Always less
30
+ * than or equal to tokensIn. Zero when caching didn't trigger.
31
+ */
32
+ cachedTokensIn?: number;
27
33
  tokensOut: number;
28
34
  costUsd: number;
29
35
  latencyMs: number;