@pentoshi/clai 4.0.3 → 4.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 (314) hide show
  1. package/README.md +45 -9
  2. package/dist/agent/compaction-executor.d.ts +68 -0
  3. package/dist/agent/compaction-executor.js +343 -0
  4. package/dist/agent/compaction-executor.js.map +1 -0
  5. package/dist/agent/confirm-port.js +6 -3
  6. package/dist/agent/confirm-port.js.map +1 -1
  7. package/dist/agent/context-breakdown.js +2 -0
  8. package/dist/agent/context-breakdown.js.map +1 -1
  9. package/dist/agent/context-manager.d.ts +23 -9
  10. package/dist/agent/context-manager.js +72 -43
  11. package/dist/agent/context-manager.js.map +1 -1
  12. package/dist/agent/events.d.ts +3 -0
  13. package/dist/agent/loop-guard.d.ts +2 -0
  14. package/dist/agent/loop-guard.js +48 -3
  15. package/dist/agent/loop-guard.js.map +1 -1
  16. package/dist/agent/prompt-composer.js +6 -6
  17. package/dist/agent/prompt-composer.js.map +1 -1
  18. package/dist/agent/reliability-policy.d.ts +1 -0
  19. package/dist/agent/reliability-policy.js +6 -3
  20. package/dist/agent/reliability-policy.js.map +1 -1
  21. package/dist/agent/request-accounting.d.ts +97 -0
  22. package/dist/agent/request-accounting.js +207 -0
  23. package/dist/agent/request-accounting.js.map +1 -0
  24. package/dist/agent/request-budget.d.ts +2 -2
  25. package/dist/agent/request-budget.js +2 -4
  26. package/dist/agent/request-budget.js.map +1 -1
  27. package/dist/agent/runner.d.ts +8 -2
  28. package/dist/agent/runner.js +412 -181
  29. package/dist/agent/runner.js.map +1 -1
  30. package/dist/agent/session-title.d.ts +0 -26
  31. package/dist/agent/session-title.js +0 -80
  32. package/dist/agent/session-title.js.map +1 -1
  33. package/dist/agent/tool-history.d.ts +2 -2
  34. package/dist/agent/tool-history.js +19 -6
  35. package/dist/agent/tool-history.js.map +1 -1
  36. package/dist/agent/turn-outcome.d.ts +1 -1
  37. package/dist/agent/turn-outcome.js +2 -12
  38. package/dist/agent/turn-outcome.js.map +1 -1
  39. package/dist/app/adapters/agent-event-adapter.js +19 -0
  40. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  41. package/dist/app/adapters/current-agent-adapter.js +4 -0
  42. package/dist/app/adapters/current-agent-adapter.js.map +1 -1
  43. package/dist/app/commands/catalog.js +23 -16
  44. package/dist/app/commands/catalog.js.map +1 -1
  45. package/dist/app/controllers/cancel-coordinator.d.ts +51 -0
  46. package/dist/app/controllers/cancel-coordinator.js +48 -0
  47. package/dist/app/controllers/cancel-coordinator.js.map +1 -0
  48. package/dist/app/controllers/session-compact-helper.d.ts +19 -2
  49. package/dist/app/controllers/session-compact-helper.js +100 -127
  50. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  51. package/dist/app/controllers/session-context-usage.d.ts +32 -15
  52. package/dist/app/controllers/session-context-usage.js +186 -51
  53. package/dist/app/controllers/session-context-usage.js.map +1 -1
  54. package/dist/app/controllers/session-controller.d.ts +22 -11
  55. package/dist/app/controllers/session-controller.js +137 -92
  56. package/dist/app/controllers/session-controller.js.map +1 -1
  57. package/dist/app/controllers/session-naming.d.ts +31 -0
  58. package/dist/app/controllers/session-naming.js +173 -0
  59. package/dist/app/controllers/session-naming.js.map +1 -0
  60. package/dist/app/controllers/session-persistence.d.ts +2 -2
  61. package/dist/app/controllers/session-persistence.js +3 -6
  62. package/dist/app/controllers/session-persistence.js.map +1 -1
  63. package/dist/app/controllers/session-turn-request.d.ts +2 -1
  64. package/dist/app/controllers/session-turn-request.js +3 -0
  65. package/dist/app/controllers/session-turn-request.js.map +1 -1
  66. package/dist/app/controllers/turn-continuation.d.ts +0 -6
  67. package/dist/app/controllers/turn-continuation.js +4 -21
  68. package/dist/app/controllers/turn-continuation.js.map +1 -1
  69. package/dist/app/controllers/turn-controller.d.ts +2 -1
  70. package/dist/app/controllers/turn-controller.js +1 -0
  71. package/dist/app/controllers/turn-controller.js.map +1 -1
  72. package/dist/app/events/app-event.d.ts +9 -0
  73. package/dist/app/events/app-event.js.map +1 -1
  74. package/dist/app/ports/agent-port.d.ts +8 -1
  75. package/dist/app/ports/transcript-item.d.ts +9 -1
  76. package/dist/classic/app/ClassicApp.js +3 -3
  77. package/dist/classic/app/ClassicApp.js.map +1 -1
  78. package/dist/classic/app/app-wiring.js +1 -2
  79. package/dist/classic/app/app-wiring.js.map +1 -1
  80. package/dist/classic/app/wiring-interactions.js +4 -9
  81. package/dist/classic/app/wiring-interactions.js.map +1 -1
  82. package/dist/classic/blocks/TurnSummaryBlock.d.ts +3 -0
  83. package/dist/classic/blocks/TurnSummaryBlock.js +6 -0
  84. package/dist/classic/blocks/TurnSummaryBlock.js.map +1 -0
  85. package/dist/classic/blocks/tool-lines.js +2 -1
  86. package/dist/classic/blocks/tool-lines.js.map +1 -1
  87. package/dist/classic/blocks/turn-summary-lines.d.ts +3 -0
  88. package/dist/classic/blocks/turn-summary-lines.js +7 -0
  89. package/dist/classic/blocks/turn-summary-lines.js.map +1 -0
  90. package/dist/classic/chrome/status-rows.d.ts +0 -1
  91. package/dist/classic/chrome/status-rows.js +0 -12
  92. package/dist/classic/chrome/status-rows.js.map +1 -1
  93. package/dist/classic/feed/Feed.js +2 -0
  94. package/dist/classic/feed/Feed.js.map +1 -1
  95. package/dist/classic/feed/feed-blocks.d.ts +1 -1
  96. package/dist/classic/feed/feed-blocks.js +3 -0
  97. package/dist/classic/feed/feed-blocks.js.map +1 -1
  98. package/dist/classic/input/cancel-ladder.d.ts +2 -19
  99. package/dist/classic/input/cancel-ladder.js +13 -20
  100. package/dist/classic/input/cancel-ladder.js.map +1 -1
  101. package/dist/commands/providers.js +2 -0
  102. package/dist/commands/providers.js.map +1 -1
  103. package/dist/llm/adapters/anthropic-tools.d.ts +31 -14
  104. package/dist/llm/adapters/anthropic-tools.js +124 -29
  105. package/dist/llm/adapters/anthropic-tools.js.map +1 -1
  106. package/dist/llm/adapters/gemini-tools.d.ts +16 -4
  107. package/dist/llm/adapters/gemini-tools.js +117 -16
  108. package/dist/llm/adapters/gemini-tools.js.map +1 -1
  109. package/dist/llm/adapters/openai-tools.d.ts +13 -2
  110. package/dist/llm/adapters/openai-tools.js +58 -11
  111. package/dist/llm/adapters/openai-tools.js.map +1 -1
  112. package/dist/llm/agentrouter.js +68 -45
  113. package/dist/llm/agentrouter.js.map +1 -1
  114. package/dist/llm/anthropic.js +69 -36
  115. package/dist/llm/anthropic.js.map +1 -1
  116. package/dist/llm/aws-mantle.js +70 -32
  117. package/dist/llm/aws-mantle.js.map +1 -1
  118. package/dist/llm/bynara.js +26 -69
  119. package/dist/llm/bynara.js.map +1 -1
  120. package/dist/llm/capabilities.d.ts +2 -1
  121. package/dist/llm/capabilities.js +56 -1
  122. package/dist/llm/capabilities.js.map +1 -1
  123. package/dist/llm/context-snapshot.d.ts +100 -0
  124. package/dist/llm/context-snapshot.js +277 -0
  125. package/dist/llm/context-snapshot.js.map +1 -0
  126. package/dist/llm/context-windows.d.ts +10 -0
  127. package/dist/llm/context-windows.js +129 -0
  128. package/dist/llm/context-windows.js.map +1 -0
  129. package/dist/llm/custom-provider-profile.d.ts +75 -0
  130. package/dist/llm/custom-provider-profile.js +558 -0
  131. package/dist/llm/custom-provider-profile.js.map +1 -0
  132. package/dist/llm/custom-providers.d.ts +13 -1
  133. package/dist/llm/custom-providers.js +77 -25
  134. package/dist/llm/custom-providers.js.map +1 -1
  135. package/dist/llm/effort-fallback.d.ts +44 -0
  136. package/dist/llm/effort-fallback.js +101 -0
  137. package/dist/llm/effort-fallback.js.map +1 -0
  138. package/dist/llm/fireworks.d.ts +3 -0
  139. package/dist/llm/fireworks.js +103 -0
  140. package/dist/llm/fireworks.js.map +1 -0
  141. package/dist/llm/free.js +4 -0
  142. package/dist/llm/free.js.map +1 -1
  143. package/dist/llm/gemini.d.ts +1 -1
  144. package/dist/llm/gemini.js +89 -51
  145. package/dist/llm/gemini.js.map +1 -1
  146. package/dist/llm/groq.js +4 -0
  147. package/dist/llm/groq.js.map +1 -1
  148. package/dist/llm/hetzner.d.ts +3 -0
  149. package/dist/llm/hetzner.js +98 -0
  150. package/dist/llm/hetzner.js.map +1 -0
  151. package/dist/llm/http.d.ts +60 -10
  152. package/dist/llm/http.js +465 -156
  153. package/dist/llm/http.js.map +1 -1
  154. package/dist/llm/kimchi.js +4 -0
  155. package/dist/llm/kimchi.js.map +1 -1
  156. package/dist/llm/lightning.js +4 -0
  157. package/dist/llm/lightning.js.map +1 -1
  158. package/dist/llm/meta.d.ts +2 -0
  159. package/dist/llm/meta.js +839 -624
  160. package/dist/llm/meta.js.map +1 -1
  161. package/dist/llm/modal.js +4 -0
  162. package/dist/llm/modal.js.map +1 -1
  163. package/dist/llm/model-families.d.ts +9 -0
  164. package/dist/llm/model-families.js +39 -0
  165. package/dist/llm/model-families.js.map +1 -0
  166. package/dist/llm/nvidia.js +4 -0
  167. package/dist/llm/nvidia.js.map +1 -1
  168. package/dist/llm/ollama.js +44 -40
  169. package/dist/llm/ollama.js.map +1 -1
  170. package/dist/llm/openai.js +4 -0
  171. package/dist/llm/openai.js.map +1 -1
  172. package/dist/llm/openrouter.js +4 -0
  173. package/dist/llm/openrouter.js.map +1 -1
  174. package/dist/llm/operation-ledger.d.ts +60 -0
  175. package/dist/llm/operation-ledger.js +136 -0
  176. package/dist/llm/operation-ledger.js.map +1 -0
  177. package/dist/llm/operation-usage.d.ts +32 -0
  178. package/dist/llm/operation-usage.js +172 -0
  179. package/dist/llm/operation-usage.js.map +1 -0
  180. package/dist/llm/orcarouter.d.ts +7 -0
  181. package/dist/llm/orcarouter.js +166 -0
  182. package/dist/llm/orcarouter.js.map +1 -0
  183. package/dist/llm/provider-profile-layers.d.ts +7 -0
  184. package/dist/llm/provider-profile-layers.js +961 -0
  185. package/dist/llm/provider-profile-layers.js.map +1 -0
  186. package/dist/llm/provider-profile.d.ts +181 -0
  187. package/dist/llm/provider-profile.js +329 -0
  188. package/dist/llm/provider-profile.js.map +1 -0
  189. package/dist/llm/provider-profiles.d.ts +13 -0
  190. package/dist/llm/provider-profiles.js +86 -0
  191. package/dist/llm/provider-profiles.js.map +1 -0
  192. package/dist/llm/provider.d.ts +2 -0
  193. package/dist/llm/provider.js +198 -21
  194. package/dist/llm/provider.js.map +1 -1
  195. package/dist/llm/qwen-cloud.js +4 -0
  196. package/dist/llm/qwen-cloud.js.map +1 -1
  197. package/dist/llm/reasoning-artifacts.d.ts +101 -0
  198. package/dist/llm/reasoning-artifacts.js +440 -0
  199. package/dist/llm/reasoning-artifacts.js.map +1 -0
  200. package/dist/llm/request-fingerprint.d.ts +10 -0
  201. package/dist/llm/request-fingerprint.js +313 -0
  202. package/dist/llm/request-fingerprint.js.map +1 -0
  203. package/dist/llm/request-plan.d.ts +119 -0
  204. package/dist/llm/request-plan.js +279 -0
  205. package/dist/llm/request-plan.js.map +1 -0
  206. package/dist/llm/router.d.ts +19 -1
  207. package/dist/llm/router.js +504 -102
  208. package/dist/llm/router.js.map +1 -1
  209. package/dist/llm/stream-events.d.ts +47 -0
  210. package/dist/llm/stream-events.js +55 -0
  211. package/dist/llm/stream-events.js.map +1 -0
  212. package/dist/llm/stream-terminal.d.ts +30 -0
  213. package/dist/llm/stream-terminal.js +51 -0
  214. package/dist/llm/stream-terminal.js.map +1 -0
  215. package/dist/llm/token-estimate-calibration.d.ts +23 -0
  216. package/dist/llm/token-estimate-calibration.js +140 -0
  217. package/dist/llm/token-estimate-calibration.js.map +1 -0
  218. package/dist/llm/token-usage.d.ts +35 -5
  219. package/dist/llm/token-usage.js +212 -162
  220. package/dist/llm/token-usage.js.map +1 -1
  221. package/dist/llm/tokenrouter.js +13 -6
  222. package/dist/llm/tokenrouter.js.map +1 -1
  223. package/dist/modes/ask.js +11 -5
  224. package/dist/modes/ask.js.map +1 -1
  225. package/dist/noninteractive/start-noninteractive.js +31 -2
  226. package/dist/noninteractive/start-noninteractive.js.map +1 -1
  227. package/dist/noninteractive/stream-blocks.js +15 -4
  228. package/dist/noninteractive/stream-blocks.js.map +1 -1
  229. package/dist/prompts/embedded.js +1 -1
  230. package/dist/prompts/embedded.js.map +1 -1
  231. package/dist/prompts/system.agent.md +6 -0
  232. package/dist/store/config.js +7 -1
  233. package/dist/store/config.js.map +1 -1
  234. package/dist/store/history.d.ts +2 -0
  235. package/dist/store/history.js +19 -10
  236. package/dist/store/history.js.map +1 -1
  237. package/dist/store/plan.js +20 -14
  238. package/dist/store/plan.js.map +1 -1
  239. package/dist/tools/elevated-shell.d.ts +1 -1
  240. package/dist/tools/elevated-shell.js +24 -72
  241. package/dist/tools/elevated-shell.js.map +1 -1
  242. package/dist/tools/fs.d.ts +5 -3
  243. package/dist/tools/fs.js +8 -5
  244. package/dist/tools/fs.js.map +1 -1
  245. package/dist/tools/nmap-runner.js +30 -36
  246. package/dist/tools/nmap-runner.js.map +1 -1
  247. package/dist/tools/sudo-session.d.ts +83 -0
  248. package/dist/tools/sudo-session.js +124 -0
  249. package/dist/tools/sudo-session.js.map +1 -0
  250. package/dist/tui-v2/app/App.js +9 -24
  251. package/dist/tui-v2/app/App.js.map +1 -1
  252. package/dist/tui-v2/components/plan/plan-view.js +5 -3
  253. package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
  254. package/dist/tui-v2/components/status/context-limit-chip.js +2 -2
  255. package/dist/tui-v2/components/status/context-limit-chip.js.map +1 -1
  256. package/dist/tui-v2/components/status/status-line.js +1 -14
  257. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  258. package/dist/tui-v2/components/transcript/intro-card.js +2 -1
  259. package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
  260. package/dist/tui-v2/components/transcript/notice-row.d.ts +3 -1
  261. package/dist/tui-v2/components/transcript/notice-row.js +28 -3
  262. package/dist/tui-v2/components/transcript/notice-row.js.map +1 -1
  263. package/dist/tui-v2/components/transcript/thinking-block.d.ts +0 -5
  264. package/dist/tui-v2/components/transcript/thinking-block.js +3 -8
  265. package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
  266. package/dist/tui-v2/components/transcript/tool-card.js +16 -7
  267. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  268. package/dist/tui-v2/components/transcript/transcript-row.d.ts +0 -2
  269. package/dist/tui-v2/components/transcript/transcript-row.js +7 -3
  270. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  271. package/dist/tui-v2/components/transcript/transcript-view.js +1 -3
  272. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  273. package/dist/tui-v2/composer/composer-editor.js +2 -1
  274. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  275. package/dist/types.d.ts +156 -1
  276. package/dist/types.js +3 -0
  277. package/dist/types.js.map +1 -1
  278. package/dist/ui-core/bootstrap/composition-root.d.ts +2 -0
  279. package/dist/ui-core/bootstrap/composition-root.js +26 -3
  280. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  281. package/dist/ui-core/commands/picker-commands.js +11 -5
  282. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  283. package/dist/ui-core/commands/session-commands.js +41 -5
  284. package/dist/ui-core/commands/session-commands.js.map +1 -1
  285. package/dist/ui-core/plan/plan-lifecycle.js +3 -2
  286. package/dist/ui-core/plan/plan-lifecycle.js.map +1 -1
  287. package/dist/ui-core/rendering/context-limit.js +4 -1
  288. package/dist/ui-core/rendering/context-limit.js.map +1 -1
  289. package/dist/ui-core/rendering/duration.d.ts +5 -0
  290. package/dist/ui-core/rendering/duration.js +43 -0
  291. package/dist/ui-core/rendering/duration.js.map +1 -0
  292. package/dist/ui-core/rendering/intro-header.js +2 -2
  293. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  294. package/dist/ui-core/rendering/theme.d.ts +1 -0
  295. package/dist/ui-core/rendering/theme.js +2 -0
  296. package/dist/ui-core/rendering/theme.js.map +1 -1
  297. package/dist/ui-core/rendering/transcript-semantic.js +2 -0
  298. package/dist/ui-core/rendering/transcript-semantic.js.map +1 -1
  299. package/dist/ui-core/state/transcript-compaction.js +2 -0
  300. package/dist/ui-core/state/transcript-compaction.js.map +1 -1
  301. package/dist/ui-core/state/transcript-hydrate.js +34 -4
  302. package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
  303. package/dist/ui-core/state/transcript-reducer.d.ts +5 -0
  304. package/dist/ui-core/state/transcript-reducer.js +96 -8
  305. package/dist/ui-core/state/transcript-reducer.js.map +1 -1
  306. package/dist/ui-core/state/transcript-store.d.ts +10 -1
  307. package/dist/ui-core/state/transcript-store.js +22 -1
  308. package/dist/ui-core/state/transcript-store.js.map +1 -1
  309. package/dist/ui-core/state/transcript-types.d.ts +9 -1
  310. package/dist/ui-core/state/transcript-types.js +3 -1
  311. package/dist/ui-core/state/transcript-types.js.map +1 -1
  312. package/dist/version.generated.d.ts +2 -2
  313. package/dist/version.generated.js +2 -2
  314. package/package.json +6 -1
@@ -0,0 +1,86 @@
1
+ import { applyObservedControlRejections, resolveProviderProfile, } from "./provider-profile.js";
2
+ import { providerContextOverrideTokens } from "./token-usage.js";
3
+ import { FAMILY_LAYERS, modelLayerFor, providerDoc } from "./provider-profile-layers.js";
4
+ const NATIVE_WIRE_API = {
5
+ anthropic: "anthropic-messages",
6
+ gemini: "gemini-generate-content",
7
+ meta: "meta-responses",
8
+ ollama: "ollama-chat",
9
+ };
10
+ export function providerWireApi(provider, model) {
11
+ if (provider === "aws-mantle") {
12
+ return /(?:^|[./-])(?:anthropic|claude)(?:[./-]|$)/i.test(model)
13
+ ? "anthropic-messages"
14
+ : "chat-completions";
15
+ }
16
+ return NATIVE_WIRE_API[provider] ?? "chat-completions";
17
+ }
18
+ export function builtInProfileLayers(provider, model) {
19
+ const family = FAMILY_LAYERS[provider];
20
+ const modelLayer = modelLayerFor(provider, model);
21
+ const overrideTokens = providerContextOverrideTokens(provider, model);
22
+ const familyWithLimits = family
23
+ ? {
24
+ ...family,
25
+ limits: overrideTokens
26
+ ? { contextTokens: overrideTokens, source: "catalog" }
27
+ : family.limits,
28
+ }
29
+ : undefined;
30
+ return {
31
+ ...(familyWithLimits ? { family: familyWithLimits } : {}),
32
+ ...(modelLayer ? { builtin: modelLayer } : {}),
33
+ };
34
+ }
35
+ export function resolveBuiltInProfile(input) {
36
+ const layers = builtInProfileLayers(input.provider, input.model);
37
+ return applyObservedControlRejections(resolveProviderProfile({
38
+ provider: input.provider,
39
+ model: input.model,
40
+ wireApi: providerWireApi(input.provider, input.model),
41
+ endpointHash: input.endpointHash,
42
+ credentialHash: input.credentialHash,
43
+ configGeneration: input.configGeneration,
44
+ layers: {
45
+ ...layers,
46
+ ...(input.catalogLayer ? { catalog: input.catalogLayer } : {}),
47
+ },
48
+ }));
49
+ }
50
+ export function directDeepSeekV4Layer() {
51
+ return {
52
+ evidence: providerDoc("deepseek-thinking-mode"),
53
+ reasoning: {
54
+ generation: "default-on",
55
+ control: {
56
+ dialect: "deepseek-thinking",
57
+ status: "supported",
58
+ evidence: providerDoc("deepseek-thinking-mode"),
59
+ },
60
+ acceptedEfforts: ["low", "high", "max"],
61
+ disable: "supported",
62
+ disableForm: "thinking-disabled",
63
+ replayScope: "tool-turn",
64
+ outputShapes: ["reasoning-content"],
65
+ },
66
+ limits: {
67
+ contextTokens: 1_000_000,
68
+ outputTokens: 384_000,
69
+ source: "provider-doc",
70
+ },
71
+ cache: {
72
+ kind: "automatic-prefix",
73
+ cacheAffectingFields: ["messages", "tools", "thinking", "reasoning_effort"],
74
+ },
75
+ usage: {
76
+ cachedInput: ["usage.prompt_cache_hit_tokens"],
77
+ uncachedInput: ["usage.prompt_cache_miss_tokens"],
78
+ },
79
+ terminal: {
80
+ proofs: ["done-sentinel", "finish-reason"],
81
+ naturalEofAccepted: false,
82
+ },
83
+ capabilities: { tools: "supported" },
84
+ };
85
+ }
86
+ //# sourceMappingURL=provider-profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-profiles.js","sourceRoot":"","sources":["../../src/llm/provider-profiles.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import type { CompletionRequest, CompletionResult, ProviderId } from "../types.js";
2
+ import type { ReasoningStyle } from "./http.js";
2
3
  export interface LlmProvider {
3
4
  id: ProviderId;
4
5
  displayName: string;
5
6
  defaultModel: string;
7
+ reasoningStyle?: ReasoningStyle | undefined;
6
8
  envVar?: string | undefined;
7
9
  validateKey(key: string): boolean;
8
10
  ping(options: ProviderAuth): Promise<void>;
@@ -48,6 +48,14 @@ export const providerAliases = {
48
48
  metamodelapi: "meta",
49
49
  metamodel: "meta",
50
50
  muse: "meta",
51
+ fireworks: "fireworks",
52
+ fw: "fireworks",
53
+ hetzner: "hetzner",
54
+ "hetzner-inference": "hetzner",
55
+ "hetzner-experiments": "hetzner",
56
+ orcarouter: "orcarouter",
57
+ "orca-router": "orcarouter",
58
+ orca: "orcarouter",
51
59
  };
52
60
  export const defaultModels = {
53
61
  free: "free-1/deepseek-v4-flash-free",
@@ -67,9 +75,13 @@ export const defaultModels = {
67
75
  modal: "moonshotai/Kimi-K3",
68
76
  // Lightning AI namespaces model ids by vendor.
69
77
  lightning: "openai/gpt-5",
70
- // TokenRouter ids are short and case-sensitive (kimi-k2p6, not Kimi K2.6).
71
- tokenrouter: "kimi-k2p6",
78
+ // TokenRouter namespaces model ids by vendor (moonshotai/kimi-k3).
79
+ tokenrouter: "moonshotai/kimi-k3",
72
80
  meta: "muse-spark-1.2",
81
+ fireworks: "accounts/fireworks/models/kimi-k2p6",
82
+ hetzner: "Qwen/Qwen3.6-35B-A3B-FP8",
83
+ // OrcaRouter namespaces model ids by upstream vendor (openai/gpt-4o-mini).
84
+ orcarouter: "openai/gpt-4o-mini",
73
85
  };
74
86
  const retiredModelReplacements = {
75
87
  groq: {
@@ -94,6 +106,22 @@ const retiredModelReplacements = {
94
106
  "gpt-4o-mini": "gpt-5.4-mini",
95
107
  "gpt-4o": "gpt-5.4",
96
108
  },
109
+ tokenrouter: {
110
+ // The gateway retired short ids; models are now namespaced by vendor.
111
+ "kimi-k2p6": "moonshotai/kimi-k2.6",
112
+ "kimi-k2p5": "moonshotai/kimi-k2.5",
113
+ "kimi-k2p7-code": "moonshotai/kimi-k2.7-code",
114
+ "kimi-k2p7-fast": "moonshotai/kimi-k2.7-code",
115
+ "deepseek-v4-pro": "deepseek/deepseek-v4-pro",
116
+ "deepseek-v4-flash": "deepseek/deepseek-v4-flash",
117
+ "qwen3p7-plus": "qwen/qwen3.7-plus",
118
+ "qwen3p6-plus": "qwen/qwen3.6-plus",
119
+ "glm-5p1": "z-ai/glm-5.1",
120
+ "glm-5p1-fast": "z-ai/glm-5.1",
121
+ "gpt-oss-120b": "openai/gpt-oss-120b",
122
+ "minimax-m3": "MiniMax-M3",
123
+ "minimax-m2p7": "minimax/minimax-m2.7",
124
+ },
97
125
  };
98
126
  export const envVars = {
99
127
  free: "FREE_API_KEY",
@@ -116,6 +144,9 @@ export const envVars = {
116
144
  lightning: "LIGHTNING_API_KEY",
117
145
  tokenrouter: "TOKENROUTER_API_KEY",
118
146
  meta: "MODEL_API_KEY",
147
+ fireworks: "FIREWORKS_API_KEY",
148
+ hetzner: "HETZNER_API_KEY",
149
+ orcarouter: "ORCAROUTER_API_KEY",
119
150
  };
120
151
  /** Resolve the env var for any provider, including user-defined custom ones. */
121
152
  export function getEnvVar(provider) {
@@ -281,34 +312,22 @@ WHAT IT IS
281
312
  Auth Authorization: Bearer <key>
282
313
  Endpoints /models · /chat/completions
283
314
 
284
- MODELS (ids are exact and case-sensitive — kimi-k2p6, not "Kimi K2.6")
285
- kimi-k2p7-code / -fast 256K ctx agentic coding, tools + vision
286
- kimi-k2p6 256K ctx long-horizon agent work (clai default)
287
- kimi-k2p5 256K ctx faster, cheaper coding
288
- deepseek-v4-pro 1M ctx deep reasoning over huge codebases
289
- deepseek-v4-flash 1M ctx cheapest long context
290
- qwen3p7-plus 256K ctx multilingual general purpose
291
- qwen3p6-plus 256K ctx multilingual general purpose
292
- glm-5p1 / glm-5p1-fast 200K ctx agentic engineering
293
- gpt-oss-120b 128K ctx open-source OpenAI model
294
- minimax-m3 512K ctx very long context, agent harnesses
295
- minimax-m2p7 196K ctx budget agent tasks
296
-
297
- /model reads the live list from /models, which is filtered to the channels
298
- your key can actually reach — trust that over this table.
315
+ MODELS
316
+ Ids are namespaced by vendor and case-sensitive (moonshotai/kimi-k3, not
317
+ "Kimi K3"). /model reads the live list from /models, filtered to the
318
+ channels your key can actually reach.
299
319
 
300
320
  COST
301
321
  Prepaid balance billed per token; the dashboard header shows what is left.
302
322
  There is no published free tier, so treat it as paid: clai classes it
303
323
  paid-cloud and /freeonly on keeps it out of the fallback chain. Prices vary
304
- a lot between the flash/fast variants and the pro ones — deepseek-v4-flash
305
- is the cheap long-context option, kimi-k2p7-code the premium coding one.
324
+ a lot between the flash/fast variants and the pro ones.
306
325
 
307
326
  SETUP
308
327
  1. Create an API key in your TokenRouter account under API Keys.
309
328
  2. clai set tokenrouter sk-yourKey
310
329
  3. clai use tokenrouter
311
- 4. /model kimi-k2p6 (or any id from /model)
330
+ 4. /model moonshotai/kimi-k3 (or any id from /model)
312
331
 
313
332
  MANAGING KEYS AND ENDPOINTS IN CLAI
314
333
  clai set tokenrouter <key> add a key (up to 10, rotated on failure)
@@ -329,7 +348,7 @@ GOOD TO KNOW
329
348
  - max_tokens above a model's ceiling is clamped by the gateway rather than
330
349
  rejected, but prompt + max_tokens must still fit the context window.
331
350
  - The model field in responses may echo a fully-qualified upstream path
332
- instead of the short id you sent. That is expected.
351
+ instead of the id you sent. That is expected.
333
352
  - Env var: TOKENROUTER_API_KEY (used when nothing is stored).
334
353
 
335
354
  Docs: https://docs.tokenrouter.me`,
@@ -597,6 +616,164 @@ GOOD TO KNOW
597
616
  - Env var: MODEL_API_KEY (used when nothing is stored).
598
617
 
599
618
  Docs: https://dev.meta.ai/docs`,
619
+ fireworks: `Fireworks AI — OpenAI-compatible inference for open models
620
+
621
+ WHAT IT IS
622
+ Fireworks serves open models behind an OpenAI-compatible API at
623
+ https://api.fireworks.ai/inference/v1. One key, many models, billed per
624
+ token. Chat Completions with SSE streaming, native tool calling, vision
625
+ via image_url, structured outputs and reasoning all work.
626
+
627
+ Base URL https://api.fireworks.ai/inference/v1
628
+ Auth Authorization: Bearer <key>
629
+ Endpoints /models · /chat/completions
630
+
631
+ MODELS (ids are fully-qualified — accounts/fireworks/models/<name>)
632
+ accounts/fireworks/models/kimi-k2p6 (clai default) 256K ctx
633
+ accounts/fireworks/models/kimi-k2-instruct-0905 256K ctx
634
+ accounts/fireworks/models/deepseek-v3p1 128K ctx
635
+ accounts/fireworks/models/glm-5p2 200K ctx
636
+ accounts/fireworks/models/qwen3-235b-a22b 128K ctx
637
+ accounts/fireworks/models/gpt-oss-120b 128K ctx
638
+ /model reads the live list from /models (cached 1h).
639
+
640
+ COST
641
+ Pay-as-you-go per token. No free tier — clai classes it paid-cloud so
642
+ /freeonly on keeps it out of the fallback chain.
643
+
644
+ SETUP
645
+ 1. Create an API key at https://app.fireworks.ai/settings/users/api-keys
646
+ 2. clai set fireworks <your-key>
647
+ 3. clai use fireworks
648
+ 4. /model accounts/fireworks/models/kimi-k2p6
649
+
650
+ MANAGING KEYS IN CLAI
651
+ clai set fireworks <key> add a key (up to 10, rotated on failure)
652
+ clai set fireworks <key2> add another; last success is sticky
653
+ clai keys masked keys
654
+ clai unset fireworks remove every stored key
655
+ /set fireworks TUI: multi-key editor
656
+ /info fireworks this page
657
+
658
+ GOOD TO KNOW
659
+ - Reasoning models return thinking in reasoning_content; clai folds it
660
+ into the usual thinking block so /think and /effort work.
661
+ - Vision models accept image_url; clai sends images as OpenAI image_url
662
+ blocks when the model supports vision.
663
+ - Env var: FIREWORKS_API_KEY (used when nothing is stored).
664
+
665
+ Docs: https://docs.fireworks.ai
666
+ API: https://docs.fireworks.ai/api-reference/introduction`,
667
+ hetzner: `Hetzner Inference — OpenAI-compatible inference on EU infrastructure
668
+
669
+ WHAT IT IS
670
+ Hetzner's experimental inference API at https://inference.hetzner.com/api/v1.
671
+ OpenAI-compatible Chat Completions with SSE streaming, native tool calling
672
+ and vision via image_url. Servers in Germany and Finland, outside the US
673
+ CLOUD Act. Currently experimental — free during test phase, no SLA/DPA yet.
674
+
675
+ Base URL https://inference.hetzner.com/api/v1
676
+ Auth Authorization: Bearer <key>
677
+ Endpoints /models · /chat/completions
678
+
679
+ MODELS
680
+ Qwen/Qwen3.6-35B-A3B-FP8 current model (clai default) 262K ctx
681
+ Qwen/Qwen3.6-35B-A3B alias without FP8 suffix
682
+ /model reads the live list from /models (cached 1h). Additional models
683
+ will be added based on demand.
684
+
685
+ COST
686
+ Free during experimental phase — no billing yet. clai classes it free-cloud
687
+ so /freeonly on keeps it in the fallback chain. Expect Hetzner pricing
688
+ well below US hyperscalers once billing arrives.
689
+
690
+ SETUP
691
+ 1. Create an API token at https://experiments.hetzner.com/
692
+ 2. clai set hetzner <your-token>
693
+ 3. clai use hetzner
694
+ 4. /model Qwen/Qwen3.6-35B-A3B-FP8
695
+
696
+ MANAGING KEYS IN CLAI
697
+ clai set hetzner <key> add a key (up to 10, rotated on failure)
698
+ clai set hetzner <key2> add another; last success is sticky
699
+ clai keys masked keys
700
+ clai unset hetzner remove every stored key
701
+ /set hetzner TUI: multi-key editor
702
+ /info hetzner this page
703
+
704
+ GOOD TO KNOW
705
+ - Qwen3 is a reasoning model: it thinks before answering. /effort on|off
706
+ maps to chat_template_kwargs.enable_thinking so thinking can be disabled
707
+ and the completion budget is not spent on hidden reasoning.
708
+ - Vision: Qwen3.6 accepts images; clai sends them as OpenAI image_url blocks
709
+ when the model supports vision.
710
+ - Tool calling works via OpenAI tools; streaming and prompt caching work.
711
+ - Env var: HETZNER_API_KEY (also HETZNER_INFERENCE_API_KEY, used when
712
+ nothing is stored).
713
+
714
+ Docs: https://experiments.hetzner.com/docs/inference
715
+ API: https://inference.hetzner.com/api/v1`,
716
+ orcarouter: `OrcaRouter — one key for OpenAI, Anthropic, Google, DeepSeek,
717
+ Grok, Qwen, Kimi, MiniMax and GLM at provider cost price
718
+
719
+ WHAT IT IS
720
+ An OpenAI-compatible gateway at https://api.orcarouter.ai/v1 that routes
721
+ eleven upstream providers behind one bearer key, with zero token markup
722
+ (you pay each provider's published price). Model ids are vendor-prefixed:
723
+ openai/gpt-4o-mini, openai/gpt-5, openai/o3-mini
724
+ anthropic/claude-sonnet-4.6, anthropic/claude-opus-4.7
725
+ google/gemini-2.5-flash, google/gemini-3-pro-preview
726
+ deepseek/deepseek-reasoner, grok/grok-4-fast-reasoning
727
+ qwen/qwen3-max, kimi/kimi-k2.6, minimax/minimax-m2.7, z-ai/glm-5.1
728
+ Chat Completions with SSE streaming, native tool calling, structured
729
+ outputs (response_format json_schema), vision via image_url and a unified
730
+ reasoning_effort knob all work.
731
+
732
+ Base URL https://api.orcarouter.ai/v1
733
+ Auth Authorization: Bearer <key>
734
+ Endpoints /models · /chat/completions
735
+
736
+ MODELS
737
+ Ids are namespaced by upstream vendor and case-sensitive. /model reads the
738
+ live list from /models (cached 1h), filtered to models reachable over Chat
739
+ Completions — image/video/tts/embedding ids are hidden. orcarouter/auto
740
+ picks the cheapest model that fits the request.
741
+
742
+ REASONING
743
+ One unified syntax: top-level reasoning_effort (low/medium/high, plus
744
+ minimal/max on some models). The gateway translates it per upstream —
745
+ OpenAI native, Claude thinking budgets, Gemini thinkingConfig, Grok
746
+ native. /think and /effort map onto it; thinking arrives as
747
+ reasoning_content and folds into the usual thinking block.
748
+
749
+ COST
750
+ Zero markup: provider list price per token. Revenue comes from optional
751
+ subscription plans, not inflated token cost. clai classes it paid-cloud,
752
+ so /freeonly on keeps it out of the fallback chain.
753
+
754
+ SETUP
755
+ 1. Create an API key at https://www.orcarouter.ai/console (starts sk-…).
756
+ 2. clai set orcarouter sk-yourKey
757
+ 3. clai use orcarouter
758
+ 4. /model openai/gpt-4o-mini (or any id from /model)
759
+
760
+ MANAGING KEYS IN CLAI
761
+ clai set orcarouter <key> add a key (up to 10, rotated on failure)
762
+ clai set orcarouter <key2> add another; the last that worked is sticky
763
+ clai keys masked keys + the active endpoint
764
+ clai unset orcarouter remove every stored key
765
+ /set orcarouter TUI: multi-key editor
766
+ /info orcarouter this page
767
+
768
+ GOOD TO KNOW
769
+ - Multi-key rotation, prompt caching, tool calling and compaction behave
770
+ exactly like every other OpenAI-compatible provider.
771
+ - Per-key options at creation: name, credit limit, expiration. Rate limits
772
+ are workspace-level, not per-key.
773
+ - Env var: ORCAROUTER_API_KEY (used when nothing is stored).
774
+
775
+ Docs: https://docs.orcarouter.ai
776
+ API: https://api.orcarouter.ai/v1 (OpenAI-compatible; /models, /chat/completions)`,
600
777
  };
601
778
  export function getProviderInfoText(provider) {
602
779
  const known = providerInfo[provider.toLowerCase()];
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ let lastFetchTime = 0;
8
8
  const CACHE_TTL_MS = 60 * 60 * 1000;
9
9
  export const qwenCloudProvider = {
10
10
  id: "qwen-cloud",
11
+ reasoningStyle: "openai",
11
12
  displayName: "Qwen Cloud",
12
13
  defaultModel: defaultModels["qwen-cloud"],
13
14
  envVar: "DASHSCOPE_API_KEY",
@@ -56,6 +57,7 @@ export const qwenCloudProvider = {
56
57
  tools: request.tools,
57
58
  toolChoice: request.toolChoice,
58
59
  parallelToolCalls: request.parallelToolCalls,
60
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
59
61
  });
60
62
  return toCompletionResult("qwen-cloud", model, payload);
61
63
  },
@@ -75,11 +77,13 @@ export const qwenCloudProvider = {
75
77
  signal: request.signal,
76
78
  onToken,
77
79
  onToolCallDelta: request.onToolCallDelta,
80
+ onStreamEvent: request.onStreamEvent,
78
81
  reasoning: request.thinking,
79
82
  reasoningStyle: "openai",
80
83
  tools: request.tools,
81
84
  toolChoice: request.toolChoice,
82
85
  parallelToolCalls: request.parallelToolCalls,
86
+ reasoningArtifactReplayObserver: request.onReasoningArtifactReplayDecision,
83
87
  });
84
88
  return toCompletionResult("qwen-cloud", model, payload);
85
89
  },
@@ -1 +1 @@
1
- {"version":3,"file":"qwen-cloud.js","sourceRoot":"","sources":["../../src/llm/qwen-cloud.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,GAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAEnB,yEAAyE;AACzE,2FAA2F;AAC3F,MAAM,OAAO,GAAG,wDAAwD,CAAC;AAEzE,IAAI,YAAY,GAAoB,IAAI,CAAC;AACzC,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,EAAE,EAAE,YAAY;IAChB,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC;IACzC,MAAM,EAAE,mBAAmB;IAC3B,uEAAuE;IACvE,iDAAiD;IACjD,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC;IACjE,KAAK,CAAC,UAAU,CAAC,IAAkB;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,IAAI,GAAG,GAAG,aAAa,GAAG,YAAY,EAAE,CAAC;YACvD,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE;YAChD,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE;SACpD,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAoC,QAAQ,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,wBAAwB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,YAAY,GAAG,MAAM,CAAC;YACtB,aAAa,GAAG,GAAG,CAAC;QACtB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAkB;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpE,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,CAAC,QAAQ,CACZ,OAA0B,EAC1B,IAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;YAC7C,QAAQ,EAAE,YAAY;YACtB,UAAU,EAAE,YAAY;YACxB,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,cAAc,EAAE,QAAQ;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC,CAAC;QACH,OAAO,kBAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,CAAC,MAAM,CACV,OAA0B,EAC1B,IAAkB,EAClB,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;YAC3C,QAAQ,EAAE,YAAY;YACtB,UAAU,EAAE,YAAY;YACxB,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,cAAc,EAAE,QAAQ;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC,CAAC;QACH,OAAO,kBAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"qwen-cloud.js","sourceRoot":"","sources":["../../src/llm/qwen-cloud.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import type { ChatMessage, NativeToolCall, ReasoningArtifact, ReasoningArtifactKind, ReasoningArtifactProvenance, ReasoningArtifactReplayDecision, ReasoningArtifactReplayObserver, ReasoningArtifactReplayTarget, ReasoningBlock } from "../types.js";
2
+ /** Input accepted by the canonical artifact factory before it is frozen. */
3
+ export interface CreateReasoningArtifactInput {
4
+ readonly kind: ReasoningArtifactKind;
5
+ /** Raw provider payload; never use this for display or telemetry. */
6
+ readonly raw: ReasoningArtifact["raw"];
7
+ /** Display-only projection, intentionally separate from the raw payload. */
8
+ readonly displaySummary?: string | undefined;
9
+ readonly provenance: ReasoningArtifactProvenance;
10
+ readonly replay: ReasoningArtifact["replay"];
11
+ readonly position?: ReasoningArtifact["position"] | undefined;
12
+ }
13
+ /** Metadata needed at a serializer boundary to decide whether replay is safe. */
14
+ export interface ReasoningArtifactReplayContext {
15
+ readonly hasToolCalls?: boolean | undefined;
16
+ }
17
+ /**
18
+ * Builds privacy-safe route provenance. Endpoint identity is a one-way hash so
19
+ * persisted artifacts and replay diagnostics never retain custom URL/query data.
20
+ */
21
+ export declare function createReasoningArtifactProvenance(input: {
22
+ provider: ReasoningArtifactProvenance["provider"];
23
+ model?: string | undefined;
24
+ dialect: ReasoningArtifactProvenance["dialect"];
25
+ endpoint?: string | undefined;
26
+ legacy?: true | undefined;
27
+ }): ReasoningArtifactProvenance;
28
+ /** Creates a safe serialization target without retaining the endpoint itself. */
29
+ export declare function createReasoningArtifactReplayTarget(input: {
30
+ provider: ReasoningArtifactReplayTarget["provider"];
31
+ model: string;
32
+ dialect: ReasoningArtifactReplayTarget["dialect"];
33
+ endpoint?: string | undefined;
34
+ }): ReasoningArtifactReplayTarget;
35
+ /**
36
+ * Clones and freezes raw provider state before attaching byte/token accounting.
37
+ * The factory is the only supported way to create artifacts from provider data.
38
+ */
39
+ export declare function createReasoningArtifact(input: CreateReasoningArtifactInput): ReasoningArtifact;
40
+ /** Returns the plaintext payload only for plaintext/signed artifact formats. */
41
+ export declare function reasoningArtifactText(artifact: ReasoningArtifact): string | undefined;
42
+ /** Returns the opaque signature only for signed/thought-signature artifacts. */
43
+ export declare function reasoningArtifactSignature(artifact: ReasoningArtifact): string | undefined;
44
+ /** Preserves encrypted items exactly as opaque JSON records for Meta replay. */
45
+ export declare function reasoningArtifactItems(artifact: ReasoningArtifact): Array<Record<string, unknown>>;
46
+ /**
47
+ * Returns canonical artifacts for a message. Legacy fields are converted only
48
+ * when canonical data is absent, preventing duplicate replay after migration.
49
+ */
50
+ export declare function reasoningArtifactsForMessage(message: ChatMessage): readonly ReasoningArtifact[];
51
+ /** Projects canonical artifacts back onto the existing legacy replay surface. */
52
+ export declare function legacyReasoningBlockFromArtifacts(artifacts: readonly ReasoningArtifact[]): ReasoningBlock | undefined;
53
+ /**
54
+ * Hydrates persisted legacy data into canonical artifacts while retaining the
55
+ * original fields for older consumers and provider adapters.
56
+ */
57
+ export declare function canonicalizeChatMessageReasoningArtifacts(message: ChatMessage): ChatMessage;
58
+ /** Canonical artifact accounting for a message, including un-migrated history. */
59
+ export declare function reasoningArtifactTokensForMessage(message: ChatMessage): number;
60
+ export interface SignedThinkingArtifactInput {
61
+ readonly sequence: number;
62
+ readonly thinking: string;
63
+ readonly signature?: string | undefined;
64
+ readonly raw: ReasoningArtifact["raw"];
65
+ readonly toolCallIndex?: number | undefined;
66
+ }
67
+ /** Builds signed Anthropic-family artifacts without deriving replay state from display text. */
68
+ export declare function createSignedThinkingArtifacts(input: {
69
+ blocks: readonly SignedThinkingArtifactInput[];
70
+ provenance: ReasoningArtifactProvenance;
71
+ }): readonly ReasoningArtifact[];
72
+ /**
73
+ * Rebinds artifact positions only after duplicate and empty tool-call ids have
74
+ * been repaired. Raw artifact bytes stay immutable; only the history position
75
+ * receives the durable call id.
76
+ */
77
+ export declare function rebindReasoningArtifactsToToolCalls(input: {
78
+ artifacts: readonly ReasoningArtifact[] | undefined;
79
+ toolCalls: readonly NativeToolCall[];
80
+ }): readonly ReasoningArtifact[] | undefined;
81
+ /** Retain active tool artifacts unconditionally; retain final turns only by policy. */
82
+ export declare function reasoningArtifactsForPersistence(input: {
83
+ artifacts: readonly ReasoningArtifact[] | undefined;
84
+ hasToolCalls: boolean;
85
+ }): readonly ReasoningArtifact[] | undefined;
86
+ /**
87
+ * Conservative compatibility predicate used at final serialization only. It
88
+ * never mutates stored history and never returns raw payloads in its decision.
89
+ */
90
+ export declare function reasoningArtifactReplayDecision(artifact: ReasoningArtifact, target: ReasoningArtifactReplayTarget, context?: ReasoningArtifactReplayContext): ReasoningArtifactReplayDecision;
91
+ /**
92
+ * Filters only the wire projection. Omitted artifacts remain unchanged in the
93
+ * message/persistence timeline, while callers can emit the metadata-only
94
+ * decisions to their operation telemetry.
95
+ */
96
+ export declare function selectReasoningArtifactsForReplay(input: {
97
+ artifacts: readonly ReasoningArtifact[] | undefined;
98
+ target: ReasoningArtifactReplayTarget;
99
+ context?: ReasoningArtifactReplayContext | undefined;
100
+ observe?: ReasoningArtifactReplayObserver | undefined;
101
+ }): readonly ReasoningArtifact[];