@amalgm/chat 0.1.1 → 0.2.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.
Files changed (282) hide show
  1. package/AGENTS.md +98 -0
  2. package/PURPOSE.md +143 -104
  3. package/README.md +82 -54
  4. package/dist/acp/index.d.ts +7 -0
  5. package/dist/acp/index.d.ts.map +1 -0
  6. package/dist/acp/index.js +7 -0
  7. package/dist/acp/index.js.map +1 -0
  8. package/dist/acp/projection.d.ts +30 -0
  9. package/dist/acp/projection.d.ts.map +1 -0
  10. package/dist/acp/projection.js +147 -0
  11. package/dist/acp/projection.js.map +1 -0
  12. package/dist/api/conversations.d.ts +66 -0
  13. package/dist/api/conversations.d.ts.map +1 -0
  14. package/dist/api/conversations.js +202 -0
  15. package/dist/api/conversations.js.map +1 -0
  16. package/dist/api/index.d.ts +3 -3
  17. package/dist/api/index.d.ts.map +1 -1
  18. package/dist/api/index.js +1 -2
  19. package/dist/api/index.js.map +1 -1
  20. package/dist/conversations/index.d.ts +3 -0
  21. package/dist/conversations/index.d.ts.map +1 -0
  22. package/dist/conversations/index.js +3 -0
  23. package/dist/conversations/index.js.map +1 -0
  24. package/dist/conversations/transcript.d.ts +13 -0
  25. package/dist/conversations/transcript.d.ts.map +1 -0
  26. package/dist/conversations/transcript.js +171 -0
  27. package/dist/conversations/transcript.js.map +1 -0
  28. package/dist/conversations/types.d.ts +147 -0
  29. package/dist/conversations/types.d.ts.map +1 -0
  30. package/dist/conversations/types.js +9 -0
  31. package/dist/conversations/types.js.map +1 -0
  32. package/dist/events/constructors.d.ts +9 -15
  33. package/dist/events/constructors.d.ts.map +1 -1
  34. package/dist/events/constructors.js +6 -12
  35. package/dist/events/constructors.js.map +1 -1
  36. package/dist/events/index.d.ts +2 -3
  37. package/dist/events/index.d.ts.map +1 -1
  38. package/dist/events/index.js +2 -3
  39. package/dist/events/index.js.map +1 -1
  40. package/dist/events/schema.d.ts +2 -5
  41. package/dist/events/schema.d.ts.map +1 -1
  42. package/dist/events/schema.js +2 -5
  43. package/dist/events/schema.js.map +1 -1
  44. package/dist/execution/contract.d.ts +51 -0
  45. package/dist/execution/contract.d.ts.map +1 -0
  46. package/dist/execution/contract.js +127 -0
  47. package/dist/execution/contract.js.map +1 -0
  48. package/dist/execution/index.d.ts +6 -0
  49. package/dist/execution/index.d.ts.map +1 -0
  50. package/dist/execution/index.js +4 -0
  51. package/dist/execution/index.js.map +1 -0
  52. package/dist/execution/revision.d.ts +5 -0
  53. package/dist/execution/revision.d.ts.map +1 -0
  54. package/dist/execution/revision.js +17 -0
  55. package/dist/execution/revision.js.map +1 -0
  56. package/dist/execution/store.d.ts +26 -0
  57. package/dist/execution/store.d.ts.map +1 -0
  58. package/dist/execution/store.js +38 -0
  59. package/dist/execution/store.js.map +1 -0
  60. package/dist/index.d.ts +8 -23
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +7 -23
  63. package/dist/index.js.map +1 -1
  64. package/dist/input/index.d.ts +3 -0
  65. package/dist/input/index.d.ts.map +1 -0
  66. package/dist/input/index.js +2 -0
  67. package/dist/input/index.js.map +1 -0
  68. package/dist/input/prompt.d.ts +17 -0
  69. package/dist/input/prompt.d.ts.map +1 -0
  70. package/dist/input/prompt.js +104 -0
  71. package/dist/input/prompt.js.map +1 -0
  72. package/dist/normalizers/claude.d.ts +6 -9
  73. package/dist/normalizers/claude.d.ts.map +1 -1
  74. package/dist/normalizers/claude.js +5 -8
  75. package/dist/normalizers/claude.js.map +1 -1
  76. package/dist/normalizers/codex.d.ts +5 -8
  77. package/dist/normalizers/codex.d.ts.map +1 -1
  78. package/dist/normalizers/codex.js +4 -7
  79. package/dist/normalizers/codex.js.map +1 -1
  80. package/dist/normalizers/cursor.d.ts +1 -2
  81. package/dist/normalizers/cursor.d.ts.map +1 -1
  82. package/dist/normalizers/cursor.js +2 -3
  83. package/dist/normalizers/cursor.js.map +1 -1
  84. package/dist/normalizers/index.d.ts +3 -5
  85. package/dist/normalizers/index.d.ts.map +1 -1
  86. package/dist/normalizers/index.js +3 -5
  87. package/dist/normalizers/index.js.map +1 -1
  88. package/dist/normalizers/opencode.d.ts +2 -4
  89. package/dist/normalizers/opencode.d.ts.map +1 -1
  90. package/dist/normalizers/opencode.js +2 -4
  91. package/dist/normalizers/opencode.js.map +1 -1
  92. package/dist/normalizers/pi.d.ts +3 -4
  93. package/dist/normalizers/pi.d.ts.map +1 -1
  94. package/dist/normalizers/pi.js +3 -4
  95. package/dist/normalizers/pi.js.map +1 -1
  96. package/dist/sessions/chat.d.ts +176 -0
  97. package/dist/sessions/chat.d.ts.map +1 -0
  98. package/dist/sessions/chat.js +701 -0
  99. package/dist/sessions/chat.js.map +1 -0
  100. package/dist/sessions/index.d.ts +3 -0
  101. package/dist/sessions/index.d.ts.map +1 -0
  102. package/dist/sessions/index.js +2 -0
  103. package/dist/sessions/index.js.map +1 -0
  104. package/dist/transcript/index.d.ts +1 -1
  105. package/dist/transcript/index.js +1 -1
  106. package/dist/transcript/message-reducer.d.ts +1 -1
  107. package/dist/transcript/message-reducer.js +1 -1
  108. package/dist/transcript/part-accumulator.d.ts +1 -1
  109. package/dist/transcript/part-accumulator.js +1 -1
  110. package/dist/transcript/tool-display.d.ts +1 -1
  111. package/dist/transcript/tool-display.js +1 -1
  112. package/dist/transcript/tool-shape.d.ts +1 -1
  113. package/dist/transcript/tool-shape.js +1 -1
  114. package/dist/usage/finalize.d.ts +7 -9
  115. package/dist/usage/finalize.d.ts.map +1 -1
  116. package/dist/usage/finalize.js +11 -13
  117. package/dist/usage/finalize.js.map +1 -1
  118. package/dist/usage/index.d.ts +2 -3
  119. package/dist/usage/index.d.ts.map +1 -1
  120. package/dist/usage/index.js +2 -3
  121. package/dist/usage/index.js.map +1 -1
  122. package/dist/usage/model-catalog.d.ts +2 -3
  123. package/dist/usage/model-catalog.d.ts.map +1 -1
  124. package/dist/usage/model-catalog.js +10 -3
  125. package/dist/usage/model-catalog.js.map +1 -1
  126. package/dist/usage/normalize.d.ts +5 -7
  127. package/dist/usage/normalize.d.ts.map +1 -1
  128. package/dist/usage/normalize.js +3 -5
  129. package/dist/usage/normalize.js.map +1 -1
  130. package/dist/usage/ports.d.ts +14 -24
  131. package/dist/usage/ports.d.ts.map +1 -1
  132. package/dist/usage/ports.js +9 -17
  133. package/dist/usage/ports.js.map +1 -1
  134. package/dist/usage/steps.d.ts +70 -0
  135. package/dist/usage/steps.d.ts.map +1 -0
  136. package/dist/usage/steps.js +152 -0
  137. package/dist/usage/steps.js.map +1 -0
  138. package/dist/usage/tokens.d.ts +4 -7
  139. package/dist/usage/tokens.d.ts.map +1 -1
  140. package/dist/usage/tokens.js +4 -7
  141. package/dist/usage/tokens.js.map +1 -1
  142. package/docs/contracts/acp-and-step-usage.md +51 -0
  143. package/docs/contracts/conversation-persistence.md +47 -0
  144. package/docs/contracts/input-and-execution.md +177 -0
  145. package/docs/contracts/platform-authorization.md +17 -0
  146. package/host/adapters/acp-capabilities.js +30 -0
  147. package/host/adapters/acp-client.js +156 -0
  148. package/host/adapters/acp.js +284 -0
  149. package/host/adapters/claude.js +235 -0
  150. package/host/adapters/codex.js +733 -0
  151. package/host/adapters/cursor.js +347 -0
  152. package/host/adapters/input-capabilities.js +89 -0
  153. package/host/adapters/opencode.js +486 -0
  154. package/host/adapters/pi.js +519 -0
  155. package/host/adapters/prompt.js +212 -0
  156. package/host/auth.js +257 -0
  157. package/host/credentials/store.js +209 -0
  158. package/host/http.d.ts +32 -0
  159. package/host/http.js +238 -0
  160. package/host/index.d.ts +84 -0
  161. package/host/index.js +59 -0
  162. package/host/lib/runtime-paths.js +44 -0
  163. package/host/model-resolution.js +313 -0
  164. package/host/native-contract.js +185 -0
  165. package/host/native-runtime.js +194 -0
  166. package/host/permissions.js +27 -0
  167. package/host/platform-egress.js +114 -0
  168. package/host/recorder.js +61 -0
  169. package/host/sqlite/index.d.ts +69 -0
  170. package/host/sqlite/index.js +704 -0
  171. package/host/tooling/mcp-bundle.js +214 -0
  172. package/host/tooling/mcp-relay.js +83 -0
  173. package/host/tooling/native-binaries.js +667 -0
  174. package/host/tooling/native-config.js +460 -0
  175. package/host/tooling/package-import.js +111 -0
  176. package/host/tooling/runtime-home.js +26 -0
  177. package/host/tooling/system-instructions.js +69 -0
  178. package/host/tooling/system-prompt.js +35 -0
  179. package/package.json +45 -21
  180. package/skills/chat/SKILL.md +97 -0
  181. package/skills/chat/agents/openai.yaml +4 -0
  182. package/skills/chat/references/contracts.md +131 -0
  183. package/dist/api/chat-payloads.d.ts +0 -10
  184. package/dist/api/chat-payloads.d.ts.map +0 -1
  185. package/dist/api/chat-payloads.js +0 -57
  186. package/dist/api/chat-payloads.js.map +0 -1
  187. package/dist/contract/chat-input.d.ts +0 -144
  188. package/dist/contract/chat-input.d.ts.map +0 -1
  189. package/dist/contract/chat-input.js +0 -261
  190. package/dist/contract/chat-input.js.map +0 -1
  191. package/dist/contract/create.d.ts +0 -191
  192. package/dist/contract/create.d.ts.map +0 -1
  193. package/dist/contract/create.js +0 -249
  194. package/dist/contract/create.js.map +0 -1
  195. package/dist/contract/freeze.d.ts +0 -85
  196. package/dist/contract/freeze.d.ts.map +0 -1
  197. package/dist/contract/freeze.js +0 -151
  198. package/dist/contract/freeze.js.map +0 -1
  199. package/dist/contract/harnesses.d.ts +0 -21
  200. package/dist/contract/harnesses.d.ts.map +0 -1
  201. package/dist/contract/harnesses.js +0 -39
  202. package/dist/contract/harnesses.js.map +0 -1
  203. package/dist/contract/index.d.ts +0 -17
  204. package/dist/contract/index.d.ts.map +0 -1
  205. package/dist/contract/index.js +0 -17
  206. package/dist/contract/index.js.map +0 -1
  207. package/dist/contract/input.d.ts +0 -45
  208. package/dist/contract/input.d.ts.map +0 -1
  209. package/dist/contract/input.js +0 -78
  210. package/dist/contract/input.js.map +0 -1
  211. package/dist/contract/models.d.ts +0 -57
  212. package/dist/contract/models.d.ts.map +0 -1
  213. package/dist/contract/models.js +0 -380
  214. package/dist/contract/models.js.map +0 -1
  215. package/dist/contract/payload-merge.d.ts +0 -76
  216. package/dist/contract/payload-merge.d.ts.map +0 -1
  217. package/dist/contract/payload-merge.js +0 -215
  218. package/dist/contract/payload-merge.js.map +0 -1
  219. package/dist/events/tool-display.d.ts +0 -22
  220. package/dist/events/tool-display.d.ts.map +0 -1
  221. package/dist/events/tool-display.js +0 -60
  222. package/dist/events/tool-display.js.map +0 -1
  223. package/dist/events/tool-shape.d.ts +0 -48
  224. package/dist/events/tool-shape.d.ts.map +0 -1
  225. package/dist/events/tool-shape.js +0 -225
  226. package/dist/events/tool-shape.js.map +0 -1
  227. package/dist/turns/index.d.ts +0 -11
  228. package/dist/turns/index.d.ts.map +0 -1
  229. package/dist/turns/index.js +0 -11
  230. package/dist/turns/index.js.map +0 -1
  231. package/dist/turns/queries.d.ts +0 -36
  232. package/dist/turns/queries.d.ts.map +0 -1
  233. package/dist/turns/queries.js +0 -37
  234. package/dist/turns/queries.js.map +0 -1
  235. package/dist/turns/replay.d.ts +0 -105
  236. package/dist/turns/replay.d.ts.map +0 -1
  237. package/dist/turns/replay.js +0 -163
  238. package/dist/turns/replay.js.map +0 -1
  239. package/dist/turns/status.d.ts +0 -49
  240. package/dist/turns/status.d.ts.map +0 -1
  241. package/dist/turns/status.js +0 -56
  242. package/dist/turns/status.js.map +0 -1
  243. package/dist/turns/turn-store.d.ts +0 -109
  244. package/dist/turns/turn-store.d.ts.map +0 -1
  245. package/dist/turns/turn-store.js +0 -169
  246. package/dist/turns/turn-store.js.map +0 -1
  247. package/dist/warm/client-cache.d.ts +0 -47
  248. package/dist/warm/client-cache.d.ts.map +0 -1
  249. package/dist/warm/client-cache.js +0 -48
  250. package/dist/warm/client-cache.js.map +0 -1
  251. package/dist/warm/envelope-cache.d.ts +0 -79
  252. package/dist/warm/envelope-cache.d.ts.map +0 -1
  253. package/dist/warm/envelope-cache.js +0 -85
  254. package/dist/warm/envelope-cache.js.map +0 -1
  255. package/dist/warm/index.d.ts +0 -18
  256. package/dist/warm/index.d.ts.map +0 -1
  257. package/dist/warm/index.js +0 -12
  258. package/dist/warm/index.js.map +0 -1
  259. package/dist/warm/payload.d.ts +0 -137
  260. package/dist/warm/payload.d.ts.map +0 -1
  261. package/dist/warm/payload.js +0 -112
  262. package/dist/warm/payload.js.map +0 -1
  263. package/dist/warm/revision.d.ts +0 -70
  264. package/dist/warm/revision.d.ts.map +0 -1
  265. package/dist/warm/revision.js +0 -63
  266. package/dist/warm/revision.js.map +0 -1
  267. package/dist/warm/store-policy.d.ts +0 -57
  268. package/dist/warm/store-policy.d.ts.map +0 -1
  269. package/dist/warm/store-policy.js +0 -89
  270. package/dist/warm/store-policy.js.map +0 -1
  271. package/dist/warm/store.d.ts +0 -42
  272. package/dist/warm/store.d.ts.map +0 -1
  273. package/dist/warm/store.js +0 -69
  274. package/dist/warm/store.js.map +0 -1
  275. package/dist/wire/frames.d.ts +0 -208
  276. package/dist/wire/frames.d.ts.map +0 -1
  277. package/dist/wire/frames.js +0 -245
  278. package/dist/wire/frames.js.map +0 -1
  279. package/dist/wire/index.d.ts +0 -7
  280. package/dist/wire/index.d.ts.map +0 -1
  281. package/dist/wire/index.js +0 -7
  282. package/dist/wire/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/sessions/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { ChatOptions, ChatRuntimePort, InterruptResult, ReconnectOptions, ResumeSessionOptions, ResumeStoredSessionResult, RuntimePromptRequest, RuntimeInterruptRequest, RuntimeResumeRequest, RuntimeStartRequest, SendOptions, StartSessionOptions, TurnReplay, } from './chat.js';
2
+ export { Chat, ChatTurnStream, ChatSession, InterruptUnsupportedError, SessionAgentMismatchError, SessionAlreadyExistsError, SessionBusyError, SessionNotFoundError, SubscriberBackpressureError, TurnStreamError, } from './chat.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sessions/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,IAAI,EACJ,cAAc,EACd,WAAW,EACX,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,GAChB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Chat, ChatTurnStream, ChatSession, InterruptUnsupportedError, SessionAgentMismatchError, SessionAlreadyExistsError, SessionBusyError, SessionNotFoundError, SubscriberBackpressureError, TurnStreamError, } from './chat.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sessions/index.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,IAAI,EACJ,cAAc,EACd,WAAW,EACX,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,GAChB,MAAM,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @amalgm/chat transcript module — the transcript-truth core ported from
3
- * amalgm-engine `runtime/scripts/chat-core/{message-reducer,parts,tool-shape,tool-display}.js`.
3
+ * shared by live delivery, replay, and reload.
4
4
  *
5
5
  * `isRecord` is exported once, from tool-shape (the engine exports an
6
6
  * identical implementation from both tool-shape.js and tool-display.js).
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @amalgm/chat transcript module — the transcript-truth core ported from
3
- * amalgm-engine `runtime/scripts/chat-core/{message-reducer,parts,tool-shape,tool-display}.js`.
3
+ * shared by live delivery, replay, and reload.
4
4
  *
5
5
  * `isRecord` is exported once, from tool-shape (the engine exports an
6
6
  * identical implementation from both tool-shape.js and tool-display.js).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Port of amalgm-engine `runtime/scripts/chat-core/message-reducer.js`
2
+ * Canonical transcript reducer —
3
3
  * the transcript-truth reducer. Streams of canonical message events fold
4
4
  * into an ordered parts array; published parts are never mutated in place
5
5
  * (each change replaces the part object), so snapshots stay stable.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Port of amalgm-engine `runtime/scripts/chat-core/message-reducer.js`
2
+ * Canonical transcript reducer —
3
3
  * the transcript-truth reducer. Streams of canonical message events fold
4
4
  * into an ordered parts array; published parts are never mutated in place
5
5
  * (each change replaces the part object), so snapshots stay stable.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Port of amalgm-engine `runtime/scripts/chat-core/parts.js` — the small
2
+ * The small
3
3
  * stateful wrapper over the message reducer used by replay paths.
4
4
  *
5
5
  * The engine version has no constructor arguments; here an optional
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Port of amalgm-engine `runtime/scripts/chat-core/parts.js` — the small
2
+ * The small
3
3
  * stateful wrapper over the message reducer used by replay paths.
4
4
  *
5
5
  * The engine version has no constructor arguments; here an optional
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Port of amalgm-engine `runtime/scripts/chat-core/tool-display.js`.
2
+ * Canonical tool presentation projection.
3
3
  *
4
4
  * Compact human-readable summaries of tool requests and outputs. Pure:
5
5
  * every function is a deterministic mapping from its inputs.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Port of amalgm-engine `runtime/scripts/chat-core/tool-display.js`.
2
+ * Canonical tool presentation projection.
3
3
  *
4
4
  * Compact human-readable summaries of tool requests and outputs. Pure:
5
5
  * every function is a deterministic mapping from its inputs.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Port of amalgm-engine `runtime/scripts/chat-core/tool-shape.js` (working
2
+ * Canonical tool-shape normalization (working
3
3
  * tree, including the cua/dialog/tab/console browser-tool titles and the
4
4
  * apps_register cwd title). Classifies tools into kinds and renders titles.
5
5
  * Pure: deterministic mappings only.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Port of amalgm-engine `runtime/scripts/chat-core/tool-shape.js` (working
2
+ * Canonical tool-shape normalization (working
3
3
  * tree, including the cua/dialog/tab/console browser-tool titles and the
4
4
  * apps_register cwd title). Classifies tools into kinds and renders titles.
5
5
  * Pure: deterministic mappings only.
@@ -1,7 +1,6 @@
1
1
  /**
2
- * Turn-usage finalization engine `chat-core/usage.js:208-323`, ported
3
- * byte-exact. A turn accumulates per-step usage records; finalization
4
- * collapses them into the single record that gets billed:
2
+ * Turn-usage finalization. A turn accumulates per-step usage records;
3
+ * finalization collapses them into one provider-neutral record:
5
4
  *
6
5
  * - pi: sum of exact billable steps, native provider USD cost preserved.
7
6
  * - codex: cumulative-meter delta (last cumulative − first baseline,
@@ -35,16 +34,15 @@ export interface UsageContract {
35
34
  /** A per-step usage record; normally a `NormalizedUsage`, tolerated partial. */
36
35
  export type TurnUsageRecord = Partial<NormalizedUsage>;
37
36
  /**
38
- * Engine `usageFromTokenList()`: promote a token list to an exact,
39
- * billable `chat_turn` usage record.
37
+ * Promote a token list to an exact, billable `chat_turn` usage record.
40
38
  */
41
39
  export declare function usageFromTokenList(tokenList: Partial<TokenList> | null | undefined, base?: UsageInput): NormalizedUsage;
42
40
  /**
43
- * Engine `summedTurnUsage()`: bucket-wise sum of the records' token lists,
44
- * or null when the sum carries no tokens.
41
+ * Bucket-wise sum of the records' token lists, or null when the sum carries
42
+ * no tokens.
45
43
  */
46
44
  export declare function summedTurnUsage(records: readonly TurnUsageRecord[], base?: UsageInput): NormalizedUsage | null;
47
- /** Arguments to `finalizeTurnUsage` — engine call shape preserved. */
45
+ /** Arguments to `finalizeTurnUsage`. */
48
46
  export interface FinalizeTurnUsageArgs {
49
47
  contract?: UsageContract | undefined;
50
48
  /** The latest live usage snapshot (context limit / footprint source). */
@@ -52,6 +50,6 @@ export interface FinalizeTurnUsageArgs {
52
50
  /** All per-step records observed during the turn. */
53
51
  usageRecords?: readonly TurnUsageRecord[] | null | undefined;
54
52
  }
55
- /** Engine `finalizeTurnUsage()`, byte-exact. Null = nothing billable. */
53
+ /** Finalize the turn usage. Null means there is nothing billable. */
56
54
  export declare function finalizeTurnUsage({ contract, usage, usageRecords }?: FinalizeTurnUsageArgs): NormalizedUsage | null;
57
55
  //# sourceMappingURL=finalize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../src/usage/finalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEvF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEvD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAChD,IAAI,GAAE,UAAe,GACpB,eAAe,CAejB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,IAAI,GAAE,UAAe,GACpB,eAAe,GAAG,IAAI,CAOxB;AA0CD,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACrC,yEAAyE;IACzE,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,qDAAqD;IACrD,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;CAC9D;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAE,qBAA0B,GAAG,eAAe,GAAG,IAAI,CA4DvH"}
1
+ {"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../src/usage/finalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEvF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEvD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAChD,IAAI,GAAE,UAAe,GACpB,eAAe,CAejB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,IAAI,GAAE,UAAe,GACpB,eAAe,GAAG,IAAI,CAOxB;AA0CD,wCAAwC;AACxC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACrC,yEAAyE;IACzE,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,qDAAqD;IACrD,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;CAC9D;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAE,qBAA0B,GAAG,eAAe,GAAG,IAAI,CA4DvH"}
@@ -1,7 +1,6 @@
1
1
  /**
2
- * Turn-usage finalization engine `chat-core/usage.js:208-323`, ported
3
- * byte-exact. A turn accumulates per-step usage records; finalization
4
- * collapses them into the single record that gets billed:
2
+ * Turn-usage finalization. A turn accumulates per-step usage records;
3
+ * finalization collapses them into one provider-neutral record:
5
4
  *
6
5
  * - pi: sum of exact billable steps, native provider USD cost preserved.
7
6
  * - codex: cumulative-meter delta (last cumulative − first baseline,
@@ -13,8 +12,7 @@
13
12
  import { addTokenLists, hasTokenListBuckets, normalizeTokenList, subtractTokenLists, zeroTokenList, } from './tokens.js';
14
13
  import { normalizeUsage } from './normalize.js';
15
14
  /**
16
- * Engine `usageFromTokenList()`: promote a token list to an exact,
17
- * billable `chat_turn` usage record.
15
+ * Promote a token list to an exact, billable `chat_turn` usage record.
18
16
  */
19
17
  export function usageFromTokenList(tokenList, base = {}) {
20
18
  const normalized = normalizeTokenList({ tokenList });
@@ -33,8 +31,8 @@ export function usageFromTokenList(tokenList, base = {}) {
33
31
  });
34
32
  }
35
33
  /**
36
- * Engine `summedTurnUsage()`: bucket-wise sum of the records' token lists,
37
- * or null when the sum carries no tokens.
34
+ * Bucket-wise sum of the records' token lists, or null when the sum carries
35
+ * no tokens.
38
36
  */
39
37
  export function summedTurnUsage(records, base = {}) {
40
38
  const sum = records.reduce((acc, entry) => addTokenLists(acc, entry.tokenList), zeroTokenList());
@@ -46,7 +44,7 @@ export function summedTurnUsage(records, base = {}) {
46
44
  });
47
45
  }
48
46
  /**
49
- * Engine `codexTurnUsage()`: codex reports a cumulative meter per step.
47
+ * Codex reports a cumulative meter per step.
50
48
  * The turn's usage is `last cumulative − first record's baseline`
51
49
  * (`previousCumulativeTokenList`, else zero), subtracted with per-bucket
52
50
  * clamping so a meter reset across compaction never yields negative
@@ -79,7 +77,7 @@ function codexTurnUsage(records, base = {}) {
79
77
  source: 'codex_app_server_step_sum',
80
78
  });
81
79
  }
82
- /** Engine `finalizeTurnUsage()`, byte-exact. Null = nothing billable. */
80
+ /** Finalize the turn usage. Null means there is nothing billable. */
83
81
  export function finalizeTurnUsage({ contract, usage, usageRecords } = {}) {
84
82
  const records = Array.isArray(usageRecords) && usageRecords.length > 0
85
83
  ? usageRecords
@@ -97,10 +95,10 @@ export function finalizeTurnUsage({ contract, usage, usageRecords } = {}) {
97
95
  source: 'pi_rpc_step_sum',
98
96
  });
99
97
  if (summed) {
100
- const costUsd = exactRecords.reduce((total, entry) => {
101
- const cost = Number(entry.costUsd);
102
- return Number.isFinite(cost) ? (total ?? 0) + cost : total;
103
- }, null);
98
+ const costs = exactRecords.map((entry) => entry.costUsd);
99
+ const costUsd = costs.every((cost) => typeof cost === 'number' && Number.isFinite(cost))
100
+ ? costs.reduce((total, cost) => total + Number(cost), 0)
101
+ : null;
104
102
  return { ...summed, costUsd, marketCostUsd: costUsd ?? summed.marketCostUsd };
105
103
  }
106
104
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../src/usage/finalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../src/usage/finalize.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  /**
2
- * @amalgm/chat usage module — the usage/billing law, ported byte-exact
3
- * from engine `chat-core/usage.js` + `chat-server/model-catalog.js`
4
- * (+ the `usage_logs` row shape from `chat-server/db.js`).
2
+ * @amalgm/chat usage module — the usage and billing-normalization law.
5
3
  */
6
4
  export { n, nonNegativeOrNull, normalizeTokenList, hasTokenListBuckets, zeroTokenList, addTokenLists, subtractTokenLists, totalUsageTokens, type TokenList, type TokenListInput, type UsageLike, } from './tokens.js';
7
5
  export { positiveOrNull, normalizeUsage, providerFromModel, type UsageInput, type NormalizedUsage, } from './normalize.js';
8
6
  export { usageFromTokenList, summedTurnUsage, finalizeTurnUsage, type UsageContract, type TurnUsageRecord, type FinalizeTurnUsageArgs, } from './finalize.js';
9
7
  export { decideBeginProxyTurn, decideTurnUsageLog, buildUsageLogRow, type BeginProxyTurnBody, type BeginProxyTurnDecision, type BillingPort, type UsageLogPayload, type UsageLogRow, type UsageLogPort, type TurnUsageLogDecision, type DecideTurnUsageLogArgs, } from './ports.js';
10
8
  export { MODEL_CATALOG, getModel, calculateCost, getModelsByProvider, getProviders, type CatalogModel, } from './model-catalog.js';
9
+ export { createStepUsage, createStepUsageLedger, recordStepUsage, aggregateTurnUsage, usageDeltaFromCumulative, type UsageTokenCounts, type UsageExactness, type StepUsageModel, type StepUsage, type StepUsageInput, type StepUsageLedger, type TurnUsage, } from './steps.js';
11
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/usage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,CAAC,EACD,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/usage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,CAAC,EACD,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,SAAS,GACf,MAAM,YAAY,CAAC"}
@@ -1,11 +1,10 @@
1
1
  /**
2
- * @amalgm/chat usage module — the usage/billing law, ported byte-exact
3
- * from engine `chat-core/usage.js` + `chat-server/model-catalog.js`
4
- * (+ the `usage_logs` row shape from `chat-server/db.js`).
2
+ * @amalgm/chat usage module — the usage and billing-normalization law.
5
3
  */
6
4
  export { n, nonNegativeOrNull, normalizeTokenList, hasTokenListBuckets, zeroTokenList, addTokenLists, subtractTokenLists, totalUsageTokens, } from './tokens.js';
7
5
  export { positiveOrNull, normalizeUsage, providerFromModel, } from './normalize.js';
8
6
  export { usageFromTokenList, summedTurnUsage, finalizeTurnUsage, } from './finalize.js';
9
7
  export { decideBeginProxyTurn, decideTurnUsageLog, buildUsageLogRow, } from './ports.js';
10
8
  export { MODEL_CATALOG, getModel, calculateCost, getModelsByProvider, getProviders, } from './model-catalog.js';
9
+ export { createStepUsage, createStepUsageLedger, recordStepUsage, aggregateTurnUsage, usageDeltaFromCumulative, } from './steps.js';
11
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/usage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,CAAC,EACD,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GAIjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,GAGlB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAIlB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GASjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,YAAY,GAEb,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/usage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,CAAC,EACD,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GAIjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,GAGlB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAIlB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GASjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,YAAY,GAEb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,GAQzB,MAAM,YAAY,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Model catalog engine `chat-server/model-catalog.js`, ported byte-exact.
2
+ * Provider model catalog used by usage normalization.
3
3
  *
4
4
  * Complete pricing & specs for all Vercel AI Gateway language models,
5
5
  * auto-generated upstream from https://ai-gateway.vercel.sh/v1/models on
@@ -8,8 +8,7 @@
8
8
  * available/applicable — never zero (a pricing miss must surface as
9
9
  * `null`, not a free model).
10
10
  *
11
- * The `MODEL_CATALOG` entries and `MODEL_ALIASES` map below are copied
12
- * verbatim from the engine source; do not hand-edit rates here.
11
+ * The catalog is generated upstream; do not hand-edit rates here.
13
12
  */
14
13
  /** One catalog entry. Prices are USD per 1M tokens; `null` = not offered. */
15
14
  export interface CatalogModel {
@@ -1 +1 @@
1
- {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/usage/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,YAAY,EAoOhD,CAAC;AAwBF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,CAuChF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,eAAe,SAAI,EACnB,gBAAgB,SAAI,GACnB,MAAM,GAAG,IAAI,CAef;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAEpE;AAED,iCAAiC;AACjC,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC"}
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/usage/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,YAAY,EAoOhD,CAAC;AAwBF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,CAuChF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,eAAe,SAAI,EACnB,gBAAgB,SAAI,GACnB,MAAM,GAAG,IAAI,CAuBf;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAEpE;AAED,iCAAiC;AACjC,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Model catalog engine `chat-server/model-catalog.js`, ported byte-exact.
2
+ * Provider model catalog used by usage normalization.
3
3
  *
4
4
  * Complete pricing & specs for all Vercel AI Gateway language models,
5
5
  * auto-generated upstream from https://ai-gateway.vercel.sh/v1/models on
@@ -8,8 +8,7 @@
8
8
  * available/applicable — never zero (a pricing miss must surface as
9
9
  * `null`, not a free model).
10
10
  *
11
- * The `MODEL_CATALOG` entries and `MODEL_ALIASES` map below are copied
12
- * verbatim from the engine source; do not hand-edit rates here.
11
+ * The catalog is generated upstream; do not hand-edit rates here.
13
12
  */
14
13
  export const MODEL_CATALOG = [
15
14
  // ── alibaba (22) ───────────────────────────────────────────
@@ -320,6 +319,14 @@ export function calculateCost(modelId, inputTokens, outputTokens, cacheReadToken
320
319
  const m = getModel(modelId);
321
320
  if (!m)
322
321
  return null;
322
+ const buckets = [
323
+ [inputTokens, m.inputPrice],
324
+ [outputTokens, m.outputPrice],
325
+ [cacheReadTokens, m.cacheRead],
326
+ [cacheWriteTokens, m.cacheWrite],
327
+ ];
328
+ if (buckets.some(([tokens, price]) => tokens > 0 && price === null))
329
+ return null;
323
330
  let cost = 0;
324
331
  if (m.inputPrice != null)
325
332
  cost += (inputTokens / 1_000_000) * m.inputPrice;