@atomic-chat/core 0.20.7 → 0.21.1

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 (303) hide show
  1. package/dist/backend/install/service.d.ts +2 -20
  2. package/dist/backend/install/service.js +1 -0
  3. package/dist/backend/install/service.js.map +1 -1
  4. package/dist/cli/launch.d.ts +23 -3
  5. package/dist/cli/launch.js +59 -8
  6. package/dist/cli/launch.js.map +1 -1
  7. package/dist/cli/main.d.ts +1 -1
  8. package/dist/contracts/diagnostics.d.ts +21 -0
  9. package/dist/contracts/diagnostics.js +70 -0
  10. package/dist/contracts/diagnostics.js.map +1 -0
  11. package/dist/contracts/errors.d.ts +17 -75
  12. package/dist/contracts/errors.js +130 -2
  13. package/dist/contracts/errors.js.map +1 -1
  14. package/dist/contracts/events.d.ts +8 -0
  15. package/dist/contracts/index.d.ts +1 -0
  16. package/dist/contracts/index.js +1 -0
  17. package/dist/contracts/index.js.map +1 -1
  18. package/dist/contracts/settings.d.ts +5 -0
  19. package/dist/contracts/settings.js.map +1 -1
  20. package/dist/core/atomic-core.d.ts +3 -1
  21. package/dist/core/atomic-core.js +6 -2
  22. package/dist/core/atomic-core.js.map +1 -1
  23. package/dist/core/create.js +13 -3
  24. package/dist/core/create.js.map +1 -1
  25. package/dist/core/managed-environment.d.ts +2 -0
  26. package/dist/core/managed-environment.js +2 -0
  27. package/dist/core/managed-environment.js.map +1 -1
  28. package/dist/core/sessions.js +1 -0
  29. package/dist/core/sessions.js.map +1 -1
  30. package/dist/decision/service.d.ts +2 -23
  31. package/dist/decision/service.js +27 -0
  32. package/dist/decision/service.js.map +1 -1
  33. package/dist/decision/wiring.d.ts +2 -0
  34. package/dist/decision/wiring.js +1 -6
  35. package/dist/decision/wiring.js.map +1 -1
  36. package/dist/diffusion/errors.js +3 -3
  37. package/dist/diffusion/errors.js.map +1 -1
  38. package/dist/diffusion/jobs.js +1 -0
  39. package/dist/diffusion/jobs.js.map +1 -1
  40. package/dist/diffusion/remote-job.js +1 -0
  41. package/dist/diffusion/remote-job.js.map +1 -1
  42. package/dist/diffusion/service.d.ts +2 -6
  43. package/dist/diffusion/service.js +1 -0
  44. package/dist/diffusion/service.js.map +1 -1
  45. package/dist/diffusion/session.d.ts +2 -5
  46. package/dist/diffusion/session.js +1 -0
  47. package/dist/diffusion/session.js.map +1 -1
  48. package/dist/diffusion/wiring.d.ts +2 -0
  49. package/dist/diffusion/wiring.js +1 -5
  50. package/dist/diffusion/wiring.js.map +1 -1
  51. package/dist/downloads/downloader.d.ts +2 -18
  52. package/dist/downloads/downloader.js +204 -96
  53. package/dist/downloads/downloader.js.map +1 -1
  54. package/dist/downloads/protocol.d.ts +6 -2
  55. package/dist/downloads/protocol.js +27 -5
  56. package/dist/downloads/protocol.js.map +1 -1
  57. package/dist/embedding/service.d.ts +2 -18
  58. package/dist/embedding/service.js +21 -1
  59. package/dist/embedding/service.js.map +1 -1
  60. package/dist/embedding/wiring.d.ts +2 -0
  61. package/dist/embedding/wiring.js +1 -6
  62. package/dist/embedding/wiring.js.map +1 -1
  63. package/dist/integrations/catalog.d.ts +25 -8
  64. package/dist/integrations/catalog.js +105 -38
  65. package/dist/integrations/catalog.js.map +1 -1
  66. package/dist/integrations/configure/atomic-agent.d.ts +9 -1
  67. package/dist/integrations/configure/atomic-agent.js +42 -3
  68. package/dist/integrations/configure/atomic-agent.js.map +1 -1
  69. package/dist/integrations/configure/backup.d.ts +21 -0
  70. package/dist/integrations/configure/backup.js +52 -0
  71. package/dist/integrations/configure/backup.js.map +1 -0
  72. package/dist/integrations/configure/claude-code.d.ts +11 -4
  73. package/dist/integrations/configure/claude-code.js +73 -24
  74. package/dist/integrations/configure/claude-code.js.map +1 -1
  75. package/dist/integrations/configure/cline.d.ts +14 -4
  76. package/dist/integrations/configure/cline.js +78 -6
  77. package/dist/integrations/configure/cline.js.map +1 -1
  78. package/dist/integrations/configure/codex.d.ts +5 -3
  79. package/dist/integrations/configure/codex.js +12 -5
  80. package/dist/integrations/configure/codex.js.map +1 -1
  81. package/dist/integrations/configure/copilot.d.ts +28 -5
  82. package/dist/integrations/configure/copilot.js +124 -8
  83. package/dist/integrations/configure/copilot.js.map +1 -1
  84. package/dist/integrations/configure/droid.d.ts +13 -7
  85. package/dist/integrations/configure/droid.js +48 -17
  86. package/dist/integrations/configure/droid.js.map +1 -1
  87. package/dist/integrations/configure/dsh.d.ts +36 -20
  88. package/dist/integrations/configure/dsh.js +250 -48
  89. package/dist/integrations/configure/dsh.js.map +1 -1
  90. package/dist/integrations/configure/goose.d.ts +21 -7
  91. package/dist/integrations/configure/goose.js +141 -10
  92. package/dist/integrations/configure/goose.js.map +1 -1
  93. package/dist/integrations/configure/hermes.d.ts +63 -10
  94. package/dist/integrations/configure/hermes.js +360 -75
  95. package/dist/integrations/configure/hermes.js.map +1 -1
  96. package/dist/integrations/configure/json-backup.d.ts +73 -0
  97. package/dist/integrations/configure/json-backup.js +292 -0
  98. package/dist/integrations/configure/json-backup.js.map +1 -0
  99. package/dist/integrations/configure/json-key-backup.d.ts +43 -0
  100. package/dist/integrations/configure/json-key-backup.js +113 -0
  101. package/dist/integrations/configure/json-key-backup.js.map +1 -0
  102. package/dist/integrations/configure/kilo.d.ts +4 -4
  103. package/dist/integrations/configure/kilo.js +6 -9
  104. package/dist/integrations/configure/kilo.js.map +1 -1
  105. package/dist/integrations/configure/legacy-env-block.d.ts +18 -0
  106. package/dist/integrations/configure/legacy-env-block.js +47 -0
  107. package/dist/integrations/configure/legacy-env-block.js.map +1 -0
  108. package/dist/integrations/configure/mimo.d.ts +3 -2
  109. package/dist/integrations/configure/mimo.js +8 -9
  110. package/dist/integrations/configure/mimo.js.map +1 -1
  111. package/dist/integrations/configure/muse.d.ts +3 -3
  112. package/dist/integrations/configure/muse.js +5 -6
  113. package/dist/integrations/configure/muse.js.map +1 -1
  114. package/dist/integrations/configure/openclaude.d.ts +22 -7
  115. package/dist/integrations/configure/openclaude.js +132 -39
  116. package/dist/integrations/configure/openclaude.js.map +1 -1
  117. package/dist/integrations/configure/openclaw.d.ts +19 -5
  118. package/dist/integrations/configure/openclaw.js +79 -23
  119. package/dist/integrations/configure/openclaw.js.map +1 -1
  120. package/dist/integrations/configure/opencode-style.d.ts +53 -11
  121. package/dist/integrations/configure/opencode-style.js +218 -23
  122. package/dist/integrations/configure/opencode-style.js.map +1 -1
  123. package/dist/integrations/configure/opencode.d.ts +5 -4
  124. package/dist/integrations/configure/opencode.js +8 -10
  125. package/dist/integrations/configure/opencode.js.map +1 -1
  126. package/dist/integrations/configure/openhands.d.ts +5 -4
  127. package/dist/integrations/configure/openhands.js +7 -7
  128. package/dist/integrations/configure/openhands.js.map +1 -1
  129. package/dist/integrations/configure/pi.d.ts +6 -5
  130. package/dist/integrations/configure/pi.js +79 -30
  131. package/dist/integrations/configure/pi.js.map +1 -1
  132. package/dist/integrations/configure/poolside.d.ts +5 -4
  133. package/dist/integrations/configure/poolside.js +7 -7
  134. package/dist/integrations/configure/poolside.js.map +1 -1
  135. package/dist/integrations/configure/registry.d.ts +6 -0
  136. package/dist/integrations/configure/registry.js +1 -0
  137. package/dist/integrations/configure/registry.js.map +1 -1
  138. package/dist/integrations/configure/zcode.d.ts +6 -7
  139. package/dist/integrations/configure/zcode.js +26 -11
  140. package/dist/integrations/configure/zcode.js.map +1 -1
  141. package/dist/integrations/configure/zed.d.ts +16 -4
  142. package/dist/integrations/configure/zed.js +61 -13
  143. package/dist/integrations/configure/zed.js.map +1 -1
  144. package/dist/lock/instance-lock.js +7 -3
  145. package/dist/lock/instance-lock.js.map +1 -1
  146. package/dist/models/gguf/kv-cache.d.ts +20 -1
  147. package/dist/models/gguf/kv-cache.js +97 -7
  148. package/dist/models/gguf/kv-cache.js.map +1 -1
  149. package/dist/models/gguf/reader.d.ts +5 -3
  150. package/dist/models/gguf/reader.js +10 -6
  151. package/dist/models/gguf/reader.js.map +1 -1
  152. package/dist/remote-access/manager.d.ts +2 -0
  153. package/dist/remote-access/manager.js +18 -2
  154. package/dist/remote-access/manager.js.map +1 -1
  155. package/dist/runtime/environment/service.d.ts +2 -14
  156. package/dist/runtime/environment/service.js +10 -0
  157. package/dist/runtime/environment/service.js.map +1 -1
  158. package/dist/runtime/environment/wiring.d.ts +2 -23
  159. package/dist/runtime/environment/wiring.js +1 -0
  160. package/dist/runtime/environment/wiring.js.map +1 -1
  161. package/dist/runtime/llamacpp/args.d.ts +14 -0
  162. package/dist/runtime/llamacpp/args.js +48 -4
  163. package/dist/runtime/llamacpp/args.js.map +1 -1
  164. package/dist/runtime/llamacpp/ctx-ladder.d.ts +6 -3
  165. package/dist/runtime/llamacpp/ctx-ladder.js +6 -3
  166. package/dist/runtime/llamacpp/ctx-ladder.js.map +1 -1
  167. package/dist/runtime/llamacpp/errors.d.ts +2 -2
  168. package/dist/runtime/llamacpp/errors.js +29 -19
  169. package/dist/runtime/llamacpp/errors.js.map +1 -1
  170. package/dist/runtime/llamacpp/fit-margin.d.ts +24 -0
  171. package/dist/runtime/llamacpp/fit-margin.js +31 -0
  172. package/dist/runtime/llamacpp/fit-margin.js.map +1 -1
  173. package/dist/runtime/llamacpp/generation-limits.d.ts +45 -0
  174. package/dist/runtime/llamacpp/generation-limits.js +61 -0
  175. package/dist/runtime/llamacpp/generation-limits.js.map +1 -0
  176. package/dist/runtime/llamacpp/load-plan.d.ts +14 -2
  177. package/dist/runtime/llamacpp/load-plan.js +64 -13
  178. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  179. package/dist/runtime/llamacpp/runtime.d.ts +1 -0
  180. package/dist/runtime/llamacpp/runtime.js +2 -0
  181. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  182. package/dist/runtime/managed-engines/runtime.js +13 -2
  183. package/dist/runtime/managed-engines/runtime.js.map +1 -1
  184. package/dist/runtime/managed-engines/spec.d.ts +6 -0
  185. package/dist/runtime/managed-engines/spec.js.map +1 -1
  186. package/dist/runtime/managed-models/auto-limits.d.ts +47 -0
  187. package/dist/runtime/managed-models/auto-limits.js +60 -0
  188. package/dist/runtime/managed-models/auto-limits.js.map +1 -0
  189. package/dist/runtime/managed-models/index.d.ts +1 -0
  190. package/dist/runtime/managed-models/index.js +1 -0
  191. package/dist/runtime/managed-models/index.js.map +1 -1
  192. package/dist/runtime/mlx/config.d.ts +9 -5
  193. package/dist/runtime/mlx/config.js +12 -6
  194. package/dist/runtime/mlx/config.js.map +1 -1
  195. package/dist/runtime/mlx/model-files.d.ts +9 -0
  196. package/dist/runtime/mlx/model-files.js +26 -0
  197. package/dist/runtime/mlx/model-files.js.map +1 -1
  198. package/dist/runtime/mlx/runtime.d.ts +7 -0
  199. package/dist/runtime/mlx/runtime.js +24 -2
  200. package/dist/runtime/mlx/runtime.js.map +1 -1
  201. package/dist/runtime/sglang/adapter.d.ts +4 -0
  202. package/dist/runtime/sglang/adapter.js +9 -6
  203. package/dist/runtime/sglang/adapter.js.map +1 -1
  204. package/dist/runtime/sglang/engine.js +2 -1
  205. package/dist/runtime/sglang/engine.js.map +1 -1
  206. package/dist/runtime/sglang/memory.d.ts +11 -1
  207. package/dist/runtime/sglang/memory.js +34 -3
  208. package/dist/runtime/sglang/memory.js.map +1 -1
  209. package/dist/runtime/sglang/settings.d.ts +2 -1
  210. package/dist/runtime/sglang/settings.js +11 -7
  211. package/dist/runtime/sglang/settings.js.map +1 -1
  212. package/dist/runtime/vllm/adapter.d.ts +4 -0
  213. package/dist/runtime/vllm/adapter.js +9 -6
  214. package/dist/runtime/vllm/adapter.js.map +1 -1
  215. package/dist/runtime/vllm/engine.js +1 -0
  216. package/dist/runtime/vllm/engine.js.map +1 -1
  217. package/dist/runtime/vllm/memory.d.ts +12 -1
  218. package/dist/runtime/vllm/memory.js +44 -2
  219. package/dist/runtime/vllm/memory.js.map +1 -1
  220. package/dist/runtime/vllm/settings.d.ts +2 -1
  221. package/dist/runtime/vllm/settings.js +12 -7
  222. package/dist/runtime/vllm/settings.js.map +1 -1
  223. package/dist/server/public/context-window.d.ts +29 -0
  224. package/dist/server/public/context-window.js +77 -0
  225. package/dist/server/public/context-window.js.map +1 -0
  226. package/dist/server/public/decision-preview.js +1 -0
  227. package/dist/server/public/decision-preview.js.map +1 -1
  228. package/dist/server/public/errors.d.ts +17 -4
  229. package/dist/server/public/errors.js +58 -8
  230. package/dist/server/public/errors.js.map +1 -1
  231. package/dist/server/public/forward.js +86 -22
  232. package/dist/server/public/forward.js.map +1 -1
  233. package/dist/server/public/index.d.ts +1 -0
  234. package/dist/server/public/index.js +1 -0
  235. package/dist/server/public/index.js.map +1 -1
  236. package/dist/server/public/listing.d.ts +9 -2
  237. package/dist/server/public/listing.js +30 -9
  238. package/dist/server/public/listing.js.map +1 -1
  239. package/dist/server/public/responses.js +9 -5
  240. package/dist/server/public/responses.js.map +1 -1
  241. package/dist/server/public/system-messages.d.ts +39 -0
  242. package/dist/server/public/system-messages.js +166 -0
  243. package/dist/server/public/system-messages.js.map +1 -0
  244. package/dist/server/public/telemetry.d.ts +9 -0
  245. package/dist/server/public/telemetry.js +42 -6
  246. package/dist/server/public/telemetry.js.map +1 -1
  247. package/dist/server/public/thinking.d.ts +26 -0
  248. package/dist/server/public/thinking.js +62 -0
  249. package/dist/server/public/thinking.js.map +1 -0
  250. package/dist/server/public/trace.d.ts +8 -0
  251. package/dist/server/public/trace.js +17 -0
  252. package/dist/server/public/trace.js.map +1 -1
  253. package/dist/server/public/types.d.ts +8 -0
  254. package/dist/server/shims/index.d.ts +1 -0
  255. package/dist/server/shims/index.js +1 -0
  256. package/dist/server/shims/index.js.map +1 -1
  257. package/dist/server/shims/reminders.d.ts +8 -0
  258. package/dist/server/shims/reminders.js +14 -0
  259. package/dist/server/shims/reminders.js.map +1 -0
  260. package/dist/server/shims/responses.d.ts +33 -9
  261. package/dist/server/shims/responses.js +160 -36
  262. package/dist/server/shims/responses.js.map +1 -1
  263. package/dist/settings/default-migrations.d.ts +34 -0
  264. package/dist/settings/default-migrations.js +47 -0
  265. package/dist/settings/default-migrations.js.map +1 -0
  266. package/dist/settings/schema/atomic-prism.json +23 -9
  267. package/dist/settings/schema/llamacpp-upstream.json +23 -9
  268. package/dist/settings/schema/llamacpp.json +23 -9
  269. package/dist/settings/schema/sglang.json +8 -8
  270. package/dist/settings/schema/vllm.json +8 -8
  271. package/dist/settings/schema.js +1 -0
  272. package/dist/settings/schema.js.map +1 -1
  273. package/dist/settings/store.d.ts +6 -0
  274. package/dist/settings/store.js +19 -2
  275. package/dist/settings/store.js.map +1 -1
  276. package/dist/telemetry/diagnostics.d.ts +14 -0
  277. package/dist/telemetry/diagnostics.js +285 -0
  278. package/dist/telemetry/diagnostics.js.map +1 -0
  279. package/dist/telemetry/envelope.d.ts +1 -1
  280. package/dist/telemetry/envelope.js +57 -28
  281. package/dist/telemetry/envelope.js.map +1 -1
  282. package/dist/telemetry/index.d.ts +1 -0
  283. package/dist/telemetry/index.js +1 -0
  284. package/dist/telemetry/index.js.map +1 -1
  285. package/dist/telemetry/policy.d.ts +1 -1
  286. package/dist/telemetry/policy.js +45 -2
  287. package/dist/telemetry/policy.js.map +1 -1
  288. package/dist/telemetry/reporter.d.ts +1 -0
  289. package/dist/telemetry/reporter.js +0 -0
  290. package/dist/telemetry/reporter.js.map +1 -1
  291. package/dist/telemetry/reports.d.ts +2 -7
  292. package/dist/telemetry/reports.js +34 -29
  293. package/dist/telemetry/reports.js.map +1 -1
  294. package/dist/telemetry/stack.d.ts +1 -1
  295. package/dist/telemetry/stack.js +8 -1
  296. package/dist/telemetry/stack.js.map +1 -1
  297. package/dist/telemetry/subscribe.d.ts +1 -1
  298. package/dist/telemetry/subscribe.js +7 -5
  299. package/dist/telemetry/subscribe.js.map +1 -1
  300. package/dist/telemetry/types.d.ts +3 -2
  301. package/dist/version.d.ts +1 -1
  302. package/dist/version.js +1 -1
  303. package/package.json +1 -1
@@ -24,7 +24,10 @@ export declare function promptPreview(body: JsonValue, maxChars?: number): Promp
24
24
  export declare function extractReasoning(choice: JsonValue): string | undefined;
25
25
  export interface TelemetryFields {
26
26
  ttft_ms: number | null;
27
+ /** The whole prompt, its cached part included. */
27
28
  prompt_tokens: number | null;
29
+ /** The part of the prompt the engine took from its cache instead of processing it again. */
30
+ cached_tokens: number | null;
28
31
  completion_tokens: number | null;
29
32
  total_tokens: number | null;
30
33
  tokens_estimated: boolean;
@@ -38,6 +41,7 @@ export interface TelemetryFields {
38
41
  export declare class StreamTelemetry {
39
42
  firstContentAt: number | undefined;
40
43
  promptTokens: number | undefined;
44
+ cachedTokens: number | undefined;
41
45
  completionTokens: number | undefined;
42
46
  totalTokens: number | undefined;
43
47
  promptPerSecond: number | undefined;
@@ -55,6 +59,11 @@ export declare class StreamTelemetry {
55
59
  previews?: boolean;
56
60
  });
57
61
  onJson(v: JsonValue, now: number): void;
62
+ /**
63
+ * Anthropic `usage`: `input_tokens` leaves out what was read from or written to the prompt cache,
64
+ * so the prompt is the three together and the cached part is what was read.
65
+ */
66
+ private onAnthropicUsage;
58
67
  private onContent;
59
68
  private onReasoning;
60
69
  private markToken;
@@ -117,6 +117,7 @@ export function extractReasoning(choice) {
117
117
  export class StreamTelemetry {
118
118
  firstContentAt;
119
119
  promptTokens;
120
+ cachedTokens;
120
121
  completionTokens;
121
122
  totalTokens;
122
123
  promptPerSecond;
@@ -145,17 +146,24 @@ export class StreamTelemetry {
145
146
  return;
146
147
  }
147
148
  case 'message_start':
148
- this.promptTokens = asU64(pointer(v, ['message', 'usage', 'input_tokens'])) ?? this.promptTokens;
149
+ // Its `output_tokens` is a placeholder (0 or 1); the count comes with `message_delta`.
150
+ this.onAnthropicUsage(pointer(v, ['message', 'usage']), false);
149
151
  return;
150
152
  case 'message_delta': {
151
- const n = asU64(pointer(v, ['usage', 'output_tokens']));
152
- if (n !== undefined)
153
- this.completionTokens = n;
153
+ this.onAnthropicUsage(get(v, 'usage'), true);
154
154
  const reason = asStr(pointer(v, ['delta', 'stop_reason']));
155
155
  if (reason !== undefined)
156
156
  this.finishReason = reason;
157
157
  return;
158
158
  }
159
+ case 'message': {
160
+ // A whole (non-streamed) Anthropic reply.
161
+ this.onAnthropicUsage(get(v, 'usage'), true);
162
+ const reason = asStr(get(v, 'stop_reason'));
163
+ if (reason !== undefined)
164
+ this.finishReason = reason;
165
+ return;
166
+ }
159
167
  }
160
168
  const choice = pointer(v, ['choices', '0']);
161
169
  if (choice !== undefined) {
@@ -180,17 +188,26 @@ export class StreamTelemetry {
180
188
  const prompt = asU64(get(usage, 'prompt_tokens'));
181
189
  const completion = asU64(get(usage, 'completion_tokens'));
182
190
  const total = asU64(get(usage, 'total_tokens'));
191
+ const cached = asU64(pointer(usage, ['prompt_tokens_details', 'cached_tokens']));
183
192
  if (prompt !== undefined)
184
193
  this.promptTokens = prompt;
185
194
  if (completion !== undefined)
186
195
  this.completionTokens = completion;
187
196
  if (total !== undefined)
188
197
  this.totalTokens = total;
198
+ if (cached !== undefined)
199
+ this.cachedTokens = cached;
189
200
  }
190
201
  const timings = get(v, 'timings');
191
202
  if (isJsonObject(timings)) {
192
- if (this.promptTokens === undefined)
193
- this.promptTokens = asU64(timings['prompt_n']);
203
+ // llama.cpp: `prompt_n` is what it processed, `cache_n` what it reused; the prompt is both.
204
+ const reused = asU64(timings['cache_n']);
205
+ if (this.cachedTokens === undefined)
206
+ this.cachedTokens = reused;
207
+ if (this.promptTokens === undefined) {
208
+ const processed = asU64(timings['prompt_n']);
209
+ this.promptTokens = processed === undefined ? undefined : processed + (reused ?? 0);
210
+ }
194
211
  if (this.completionTokens === undefined)
195
212
  this.completionTokens = asU64(timings['predicted_n']);
196
213
  // The upstream's own rates win: they see queue time a proxy-side clock cannot.
@@ -202,6 +219,24 @@ export class StreamTelemetry {
202
219
  this.predictedPerSecond = dps;
203
220
  }
204
221
  }
222
+ /**
223
+ * Anthropic `usage`: `input_tokens` leaves out what was read from or written to the prompt cache,
224
+ * so the prompt is the three together and the cached part is what was read.
225
+ */
226
+ onAnthropicUsage(usage, withOutput) {
227
+ if (!isJsonObject(usage))
228
+ return;
229
+ const input = asU64(usage['input_tokens']);
230
+ const read = asU64(usage['cache_read_input_tokens']);
231
+ const written = asU64(usage['cache_creation_input_tokens']);
232
+ if (input !== undefined)
233
+ this.promptTokens = input + (read ?? 0) + (written ?? 0);
234
+ if (read !== undefined)
235
+ this.cachedTokens = read;
236
+ const output = withOutput ? asU64(usage['output_tokens']) : undefined;
237
+ if (output !== undefined)
238
+ this.completionTokens = output;
239
+ }
205
240
  onContent(text, now) {
206
241
  if (text === '')
207
242
  return;
@@ -240,6 +275,7 @@ export class StreamTelemetry {
240
275
  return {
241
276
  ttft_ms: this.ttftMs(start),
242
277
  prompt_tokens: this.promptTokens ?? null,
278
+ cached_tokens: this.cachedTokens ?? null,
243
279
  completion_tokens: completion,
244
280
  total_tokens: total,
245
281
  tokens_estimated: estimated,
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/server/public/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/server/public/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Extended thinking for Anthropic `/messages` on a llama.cpp engine.
3
+ *
4
+ * The Anthropic API thinks only when a request asks for it (`thinking: {type: "enabled"}` or
5
+ * `"adaptive"`); a request with no `thinking`, or with `{type: "disabled"}`, gets none. llama.cpp's
6
+ * `/v1/messages` maps only `enabled` (to a thinking budget) and otherwise leaves the chat template's
7
+ * thinking at the server default, which `--jinja` turns on for every template that can think. So a
8
+ * request that asked for no thinking thought anyway: Claude Code's session-title request, sent with
9
+ * no `thinking` and `max_tokens: 32000`, made Qwen3.5 4B think for 20,000 tokens, and on a one-slot
10
+ * server the user's own turn waited behind it (QA B08).
11
+ *
12
+ * The core tells the template what the request meant: `chat_template_kwargs.enable_thinking: false`,
13
+ * which llama.cpp's Anthropic conversion passes to the template (b10777 and later; an older build
14
+ * drops the field and answers as before). A request that sets the switch itself is sent as it is.
15
+ */
16
+ import type { JsonObject, JsonValue } from '../shims/index.js';
17
+ import type { LocalProvider } from '../../router/index.js';
18
+ /** Whether `provider` is llama.cpp's own server, whose `/v1/messages` reads the Anthropic fields itself. */
19
+ export declare function isLlamaCppServer(provider: LocalProvider): boolean;
20
+ /**
21
+ * The `chat_template_kwargs` an Anthropic request to `provider` goes with so the template does not
22
+ * think, the client's own kwargs kept; `undefined` to send it as it is: an engine other than
23
+ * llama.cpp, a request that asks for thinking or sets the switch itself, or kwargs that are not an
24
+ * object (the engine's to refuse).
25
+ */
26
+ export declare function noThinkingTemplateKwargs(provider: LocalProvider, body: JsonValue): JsonObject | undefined;
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Extended thinking for Anthropic `/messages` on a llama.cpp engine.
3
+ *
4
+ * The Anthropic API thinks only when a request asks for it (`thinking: {type: "enabled"}` or
5
+ * `"adaptive"`); a request with no `thinking`, or with `{type: "disabled"}`, gets none. llama.cpp's
6
+ * `/v1/messages` maps only `enabled` (to a thinking budget) and otherwise leaves the chat template's
7
+ * thinking at the server default, which `--jinja` turns on for every template that can think. So a
8
+ * request that asked for no thinking thought anyway: Claude Code's session-title request, sent with
9
+ * no `thinking` and `max_tokens: 32000`, made Qwen3.5 4B think for 20,000 tokens, and on a one-slot
10
+ * server the user's own turn waited behind it (QA B08).
11
+ *
12
+ * The core tells the template what the request meant: `chat_template_kwargs.enable_thinking: false`,
13
+ * which llama.cpp's Anthropic conversion passes to the template (b10777 and later; an older build
14
+ * drops the field and answers as before). A request that sets the switch itself is sent as it is.
15
+ */
16
+ import { isJsonObject } from '../shims/index.js';
17
+ /** The engines that are llama.cpp's own server: both llama.cpp builds and the PrismML fork. */
18
+ const LLAMACPP_SERVERS = new Set([
19
+ 'llamacpp',
20
+ 'llamacpp-upstream',
21
+ 'atomic-prism',
22
+ ]);
23
+ /** Whether `provider` is llama.cpp's own server, whose `/v1/messages` reads the Anthropic fields itself. */
24
+ export function isLlamaCppServer(provider) {
25
+ return LLAMACPP_SERVERS.has(provider);
26
+ }
27
+ function hasKey(value, key) {
28
+ return isJsonObject(value) && Object.prototype.hasOwnProperty.call(value, key);
29
+ }
30
+ /** Whether an Anthropic `thinking` value asks for thinking: anything but absent, `null` or `disabled`. */
31
+ function asksForThinking(thinking) {
32
+ if (thinking === undefined || thinking === null)
33
+ return false;
34
+ return !(isJsonObject(thinking) && thinking['type'] === 'disabled');
35
+ }
36
+ /**
37
+ * Whether the body already says whether to think, in the fields llama.cpp reads: the template's own
38
+ * switch at the top level, or the switch or a reasoning effort in the `extra_params` it merges in.
39
+ */
40
+ function setsThinkingItself(body) {
41
+ const extra = body['extra_params'];
42
+ return (hasKey(body['chat_template_kwargs'], 'enable_thinking') ||
43
+ hasKey(extra, 'reasoning_effort') ||
44
+ (isJsonObject(extra) && hasKey(extra['chat_template_kwargs'], 'enable_thinking')));
45
+ }
46
+ /**
47
+ * The `chat_template_kwargs` an Anthropic request to `provider` goes with so the template does not
48
+ * think, the client's own kwargs kept; `undefined` to send it as it is: an engine other than
49
+ * llama.cpp, a request that asks for thinking or sets the switch itself, or kwargs that are not an
50
+ * object (the engine's to refuse).
51
+ */
52
+ export function noThinkingTemplateKwargs(provider, body) {
53
+ if (!LLAMACPP_SERVERS.has(provider) || !isJsonObject(body))
54
+ return undefined;
55
+ if (asksForThinking(body['thinking']) || setsThinkingItself(body))
56
+ return undefined;
57
+ const kwargs = body['chat_template_kwargs'];
58
+ if (kwargs === undefined)
59
+ return { enable_thinking: false };
60
+ return isJsonObject(kwargs) ? { ...kwargs, enable_thinking: false } : undefined;
61
+ }
62
+ //# sourceMappingURL=thinking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking.js","sourceRoot":"","sources":["../../../src/server/public/thinking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIhD,+FAA+F;AAC/F,MAAM,gBAAgB,GAA+B,IAAI,GAAG,CAAC;IAC3D,UAAU;IACV,mBAAmB;IACnB,cAAc;CACf,CAAC,CAAA;AAEF,4GAA4G;AAC5G,MAAM,UAAU,gBAAgB,CAAC,QAAuB;IACtD,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,MAAM,CAAC,KAA4B,EAAE,GAAW;IACvD,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAChF,CAAC;AAED,0GAA0G;AAC1G,SAAS,eAAe,CAAC,QAA+B;IACtD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC7D,OAAO,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,CAAA;AACrE,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,IAAgB;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;IAClC,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,iBAAiB,CAAC;QACvD,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC;QACjC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAClF,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAuB,EAAE,IAAe;IAC/E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5E,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACnF,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAC3C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;IAC3D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACjF,CAAC"}
@@ -38,6 +38,8 @@ export declare class RequestTrace {
38
38
  ctxOverflowDetected: boolean;
39
39
  /** Streamed telemetry for the inspector, when a relay collected any. */
40
40
  telemetry: StreamTelemetry | undefined;
41
+ /** The window of the session the request went to, once known (`recordWindow`). */
42
+ ctxLen: number | null;
41
43
  private readonly startedAt;
42
44
  private readonly startedAtMs;
43
45
  private headersAt;
@@ -62,6 +64,12 @@ export declare class RequestTrace {
62
64
  * request; it keeps reply text only while the inspector watches.
63
65
  */
64
66
  startTelemetry(): StreamTelemetry | undefined;
67
+ /**
68
+ * Keep the window of the session the request goes to with the request, as it is now: the log shows
69
+ * it after that model has been reloaded with another window, or unloaded (QA B04). Read only when
70
+ * the request is reported at all; one that finishes before the window is known reports none.
71
+ */
72
+ recordWindow(read: () => Promise<number | undefined>): void;
65
73
  /** Telemetry from a whole (non-streamed) response body: there is no time to first token. */
66
74
  stash(fields: TelemetryFields): void;
67
75
  /** A throttled progress tick for a long stream. */
@@ -77,6 +77,8 @@ export class RequestTrace {
77
77
  ctxOverflowDetected = false;
78
78
  /** Streamed telemetry for the inspector, when a relay collected any. */
79
79
  telemetry;
80
+ /** The window of the session the request went to, once known (`recordWindow`). */
81
+ ctxLen = null;
80
82
  startedAt = now();
81
83
  startedAtMs = Date.now();
82
84
  headersAt;
@@ -144,6 +146,19 @@ export class RequestTrace {
144
146
  this.telemetry ??= new StreamTelemetry({ previews: this.inspecting });
145
147
  return this.telemetry;
146
148
  }
149
+ /**
150
+ * Keep the window of the session the request goes to with the request, as it is now: the log shows
151
+ * it after that model has been reloaded with another window, or unloaded (QA B04). Read only when
152
+ * the request is reported at all; one that finishes before the window is known reports none.
153
+ */
154
+ recordWindow(read) {
155
+ if (!this.deps.emit)
156
+ return;
157
+ void read().then((window) => {
158
+ if (window !== undefined)
159
+ this.ctxLen = window;
160
+ }, () => { });
161
+ }
147
162
  /** Telemetry from a whole (non-streamed) response body: there is no time to first token. */
148
163
  stash(fields) {
149
164
  this.stashed = { ...fields, ttft_ms: null };
@@ -206,6 +221,7 @@ export class RequestTrace {
206
221
  finish = {
207
222
  ttft_ms: null,
208
223
  prompt_tokens: null,
224
+ cached_tokens: null,
209
225
  completion_tokens: null,
210
226
  total_tokens: null,
211
227
  tokens_estimated: false,
@@ -215,6 +231,7 @@ export class RequestTrace {
215
231
  reply_preview: null,
216
232
  reply_chars: null,
217
233
  ...telemetry,
234
+ ctx_len: this.ctxLen,
218
235
  // PRIVACY (ATO-113): whatever collected it, no reply text leaves for a request nobody watched.
219
236
  ...(this.inspecting ? {} : { reply_preview: null }),
220
237
  status: status || null,
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../../src/server/public/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAI/D,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,mGAAmG;AACnG,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAEpC,IAAI,OAAO,GAAG,CAAC,CAAA;AACf,IAAI,QAAQ,GAAG,CAAC,CAAA;AAEhB,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,mBAAmB;YACtB,OAAO,kBAAkB,CAAA;QAC3B,KAAK,YAAY;YACf,OAAO,WAAW,CAAA;QACpB,KAAK,WAAW;YACd,OAAO,UAAU,CAAA;QACnB,KAAK,cAAc;YACjB,OAAO,aAAa,CAAA;QACtB,KAAK,aAAa;YAChB,OAAO,YAAY,CAAA;QACrB,KAAK,wBAAwB;YAC3B,OAAO,uBAAuB,CAAA;QAChC,KAAK,qBAAqB;YACxB,OAAO,oBAAoB,CAAA;QAC7B,KAAK,eAAe;YAClB,OAAO,cAAc,CAAA;QACvB,KAAK,eAAe;YAClB,OAAO,cAAc,CAAA;QACvB,KAAK,YAAY;YACf,OAAO,WAAW,CAAA;QACpB,KAAK,eAAe;YAClB,OAAO,cAAc,CAAA;QACvB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAA;QACjB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAA;QACjB,KAAK,mBAAmB;YACtB,OAAO,kBAAkB,CAAA;QAC3B,KAAK,UAAU;YACb,OAAO,SAAS,CAAA;QAClB;YACE,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;IAC3D,CAAC;AACH,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAA;AAEnC,MAAM,OAAO,YAAY;IA2BJ;IACA;IA3BnB,QAAQ,CAAoB;IAC5B,OAAO,GAAkB,IAAI,CAAA;IAC7B,OAAO,GAAG,SAAS,CAAA;IACnB,QAAQ,GAAkB,IAAI,CAAA;IAC9B,MAAM,GAAG,KAAK,CAAA;IACd,iBAAiB,GAAG,KAAK,CAAA;IACzB,SAAS,GAAkB,IAAI,CAAA;IAC/B,sGAAsG;IACtG,QAAQ,GAAG,KAAK,CAAA;IAChB,cAAc,GAAkB,IAAI,CAAA;IACpC,WAAW,GAAG,KAAK,CAAA;IACnB,mBAAmB,GAAG,KAAK,CAAA;IAC3B,wEAAwE;IACxE,SAAS,CAA6B;IAErB,SAAS,GAAG,GAAG,EAAE,CAAA;IACjB,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACjC,SAAS,CAAoB;IACpB,EAAE,GAAG,UAAU,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;IAC/C,GAAG,CAAoB;IAChC,SAAS,GAAG,KAAK,CAAA;IACjB,MAAM,GAAG,KAAK,CAAA;IACd,YAAY,GAAG,CAAC,CAAA;IAChB,OAAO,CAA6B;IAE5C,YACmB,MAAc,EACd,IAAsB;QADtB,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAkB;QAEvC,8FAA8F;QAC9F,6CAA6C;QAC7C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,CAAA;YACpB,QAAQ,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;IAED,sGAAsG;IACtG,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,KAAK,SAAS,CAAA;IAC/B,CAAC;IAED,0FAA0F;IAC1F,MAAM,CAAC,GAAmB;QACxB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAA2C,CAClF;QAAC,GAAwE,CAAC,SAAS,GAAG,CACrF,GAAG,IAAe,EAClB,EAAE;YACF,IAAI,CAAC,SAAS,KAAK,GAAG,EAAE,CAAA;YACxB,OAAO,SAAS,CAAC,GAAG,IAAI,CAAC,CAAA;QAC3B,CAAC,CAAA;QACD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAgB,EAAE,GAAY,EAAE,UAA0B;QACjE,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,MAAM,OAAO,GAAG,UAAU,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACpF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;YAC9B,KAAK,EAAE,SAAS;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO;YAClC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,IAAI;YAC7C,cAAc,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI;YACrC,YAAY,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;YACpC,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,KAAK;YACxD,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SAC/D,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAA;QACrC,IAAI,CAAC,SAAS,KAAK,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QACrE,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,4FAA4F;IAC5F,KAAK,CAAC,MAAuB;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC7C,CAAC;IAED,mDAAmD;IACnD,QAAQ;QACN,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAM;QACpE,IAAI,QAAQ,GAAG,yBAAyB;YAAE,OAAM;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,oBAAoB;YAAE,OAAM;QAC9D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;YAC9B,KAAK,EAAE,UAAU;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9C,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;YAC9D,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;YACtC,UAAU,EAAE,OAAO;SACpB,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,GAAmB;QAC/B,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;YAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAA;QAChE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAM;QAE3B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAA;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAA;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,EAAE,CAAA;QAEnC,MAAM,WAAW,GAAiC,IAAI,CAAC,QAAQ;YAC7D,CAAC,CAAC,IAAI;YACN,CAAC,CAAC;gBACE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO;gBAClC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM;gBACN,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;gBAChD,qBAAqB,EAAE,IAAI,CAAC,iBAAiB;gBAC7C,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,eAAe,EAAE,IAAI,CAAC,cAAc;gBACpC,YAAY,EAAE,IAAI,CAAC,WAAW;gBAC9B,qBAAqB,EAAE,IAAI,CAAC,mBAAmB;aAChD,CAAA;QAEL,gGAAgG;QAChG,gGAAgG;QAChG,IAAI,MAAM,GAAkC,IAAI,CAAA;QAChD,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAA;YAC9E,MAAM,GAAG;gBACP,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,IAAI;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,KAAK;gBACvB,iBAAiB,EAAE,IAAI;gBACvB,oBAAoB,EAAE,IAAI;gBAC1B,aAAa,EAAE,IAAI;gBACnB,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,IAAI;gBACjB,GAAG,SAAS;gBACZ,+FAA+F;gBAC/F,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBACnD,MAAM,EAAE,MAAM,IAAI,IAAI;gBACtB,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,OAAO,EAAE,CAAC,GAAG,CAAC,gBAAgB;gBAC9B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;gBAChD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;aAC9C,CAAA;QACH,CAAC;QACD,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM;YAAE,OAAM;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAC5B,KAAK,EAAE,UAAU;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACnB,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;YAC1B,WAAW;YACX,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../../src/server/public/trace.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,8 @@ export interface LocalTarget {
37
37
  isEmbedding: boolean;
38
38
  /** Absent for an engine that takes every route (llama.cpp, MLX): the server's own defaults apply. */
39
39
  policy?: LocalTargetPolicy;
40
+ /** Changes each time the model is loaded again (`SessionInfo.generation`), when the session has one. */
41
+ generation?: string;
40
42
  }
41
43
  /** What asking the owning runtime for a larger context produced. */
42
44
  export interface CtxIncreaseOutcome {
@@ -211,6 +213,12 @@ export interface PublicServerDeps {
211
213
  * a round trip to the llama.cpp extension; in the core it is the runtime's own `increaseCtx`.
212
214
  */
213
215
  increaseCtx: (provider: LocalProvider, modelId: string, trigger: string) => Promise<CtxIncreaseOutcome>;
216
+ /**
217
+ * The context window a local session serves, when the host can learn it (`SessionWindows`): what
218
+ * `/models` advertises and the request log records. Absent: no window is advertised, except the one
219
+ * a declared session states itself.
220
+ */
221
+ contextWindow?: (target: LocalTarget) => Promise<number | undefined>;
214
222
  /**
215
223
  * Whether the app's API screen is watching. Only then are prompt and reply previews and stream
216
224
  * telemetry collected (ATO-113); the analytics observation is sent regardless.
@@ -6,3 +6,4 @@ export * from './json.js';
6
6
  export * from './responses.js';
7
7
  export * from './chat-to-responses.js';
8
8
  export * from './anthropic.js';
9
+ export * from './reminders.js';
@@ -6,4 +6,5 @@ export * from './json.js';
6
6
  export * from './responses.js';
7
7
  export * from './chat-to-responses.js';
8
8
  export * from './anthropic.js';
9
+ export * from './reminders.js';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/shims/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/shims/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A system or developer message in the middle of a conversation, as the shims and the server pass
3
+ * it to a llama.cpp chat template: user text wrapped the way Claude Code writes its own reminders.
4
+ * Strict templates (Qwen3.5) refuse a system message after the first turn, and moving it to the
5
+ * start of the prompt would make llama.cpp process the whole conversation again.
6
+ */
7
+ /** `text` as a reminder, unless the client already wrapped it as one. */
8
+ export declare function asSystemReminder(text: string): string;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A system or developer message in the middle of a conversation, as the shims and the server pass
3
+ * it to a llama.cpp chat template: user text wrapped the way Claude Code writes its own reminders.
4
+ * Strict templates (Qwen3.5) refuse a system message after the first turn, and moving it to the
5
+ * start of the prompt would make llama.cpp process the whole conversation again.
6
+ */
7
+ /** `text` as a reminder, unless the client already wrapped it as one. */
8
+ export function asSystemReminder(text) {
9
+ const trimmed = text.trim();
10
+ if (trimmed.startsWith('<system-reminder>') && trimmed.endsWith('</system-reminder>'))
11
+ return trimmed;
12
+ return `<system-reminder>\n${trimmed}\n</system-reminder>`;
13
+ }
14
+ //# sourceMappingURL=reminders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reminders.js","sourceRoot":"","sources":["../../../src/server/shims/reminders.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yEAAyE;AACzE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAAE,OAAO,OAAO,CAAA;IACrG,OAAO,sBAAsB,OAAO,sBAAsB,CAAA;AAC5D,CAAC"}
@@ -20,26 +20,48 @@ export declare function newResponseId(): string;
20
20
  /** Convert a Responses API request body into a Chat Completions request body. */
21
21
  export declare function responsesRequestToChat(body: JsonValue): JsonValue;
22
22
  /**
23
- * Collapse every `system`/`developer` message into a single leading `system` message, joined by a
24
- * blank line; messages whose flattened text is empty contribute nothing, and if nothing remains no
25
- * system message is emitted. Strict chat templates (notably Qwen3-family GGUFs) raise "System
26
- * message must be at the beginning" when a request carries more than one system message or places
27
- * one after the first turn — which Codex does by combining `instructions` with developer/system
28
- * input items. Order of the other messages is preserved.
23
+ * Place the `system`/`developer` messages for a strict chat template (notably Qwen3-family GGUFs,
24
+ * which raise "System message must be at the beginning" for a second system message or a later one;
25
+ * Codex sends `instructions` and developer input items). Those before the first turn become one
26
+ * leading `system` message, joined by a blank line. A later one stays where it is, as user text
27
+ * wrapped in `<system-reminder>`, so the start of the prompt does not change and llama.cpp keeps its
28
+ * prompt cache: it is put before the text of the user message that follows it, or else at the end
29
+ * of the user or tool message before it (never between a tool call and its result), or else in a
30
+ * user message of its own. Messages whose flattened text is empty contribute nothing; the order of
31
+ * the other messages is preserved.
29
32
  */
30
- export declare function mergeSystemMessages(messages: JsonValue[]): JsonValue[];
33
+ export declare function placeSystemMessages(messages: JsonValue[]): JsonValue[];
31
34
  /**
32
35
  * Flatten Responses content (a string, or an array of typed parts) to plain text: every part's
33
36
  * string `text` is concatenated regardless of the part's type; parts without one (images, files)
34
37
  * are skipped. Anything else yields "".
35
38
  */
36
39
  export declare function flattenContentToText(content: JsonValue | undefined): string;
40
+ /**
41
+ * The chat function name for function `name` in Responses namespace `namespace`: `<ns>__<name>`, the
42
+ * way MCP tools have always been named, and the plain name in Codex's default namespace. A namespace
43
+ * that already ends in the delimiter is not given a second one.
44
+ */
45
+ export declare function flatToolName(namespace: string, name: string): string;
46
+ /** The namespace and name of each function the request offered in a namespace, by its chat name. */
47
+ export type NamespacedToolNames = ReadonlyMap<string, {
48
+ namespace: string;
49
+ name: string;
50
+ }>;
51
+ /**
52
+ * How to name a call back in the namespace it was offered in (Codex sends its MCP tools as
53
+ * `{type: "namespace", name, tools: [...]}` and runs a call only with its `namespace`). Functions in
54
+ * the default namespace need no entry: a call without one lands there.
55
+ */
56
+ export declare function namespacedToolNames(body: JsonValue): NamespacedToolNames;
37
57
  /**
38
58
  * Convert a non-streaming Chat Completions response into a Responses object. Only the first choice
39
59
  * is used, `finish_reason` is ignored (status is always "completed"), and a present `usage` — even
40
60
  * `null` — is mapped, so `usage: null` becomes an all-zero usage block; only an absent one is null.
41
61
  */
42
- export declare function chatResponseToResponses(chat: JsonValue, responseId: string, modelFallback: string): JsonValue;
62
+ export declare function chatResponseToResponses(chat: JsonValue, responseId: string, modelFallback: string,
63
+ /** The request's namespaced functions (`namespacedToolNames`), whose calls are named back. */
64
+ names?: NamespacedToolNames): JsonValue;
43
65
  /**
44
66
  * Stateful converter from a Chat Completions chunk stream to the Responses event protocol. Feed each
45
67
  * parsed Chat `data:` chunk to `onChunk` and emit the returned events; call `finish` when the stream
@@ -59,7 +81,9 @@ export declare class ResponsesStreamConverter {
59
81
  private msgOutputIndex;
60
82
  private text;
61
83
  private tools;
62
- constructor(responseId: string, model: string);
84
+ private readonly names;
85
+ /** `names`: the request's namespaced functions (`namespacedToolNames`), whose calls are named back. */
86
+ constructor(responseId: string, model: string, names?: NamespacedToolNames);
63
87
  private nextSeq;
64
88
  private responseEnvelope;
65
89
  /** The opening `response.created` event. Send once, before any chunk. */