@pentoshi/clai 4.2.2 → 4.3.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 (163) hide show
  1. package/README.md +14 -16
  2. package/dist/agent/compaction-summary.d.ts +1 -1
  3. package/dist/agent/compaction-summary.js +1 -1
  4. package/dist/agent/compaction-summary.js.map +1 -1
  5. package/dist/agent/runner.js +4 -4
  6. package/dist/agent/runner.js.map +1 -1
  7. package/dist/agent/tool-output-formatting.d.ts +6 -0
  8. package/dist/agent/tool-output-formatting.js +126 -40
  9. package/dist/agent/tool-output-formatting.js.map +1 -1
  10. package/dist/app/adapters/agent-event-adapter.d.ts +4 -0
  11. package/dist/app/adapters/agent-event-adapter.js +28 -3
  12. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  13. package/dist/app/commands/catalog.js +4 -21
  14. package/dist/app/commands/catalog.js.map +1 -1
  15. package/dist/app/controllers/session-controller.js +7 -0
  16. package/dist/app/controllers/session-controller.js.map +1 -1
  17. package/dist/app/events/app-event.d.ts +2 -0
  18. package/dist/app/events/app-event.js.map +1 -1
  19. package/dist/classic/app/use-feed.js +2 -1
  20. package/dist/classic/app/use-feed.js.map +1 -1
  21. package/dist/commands/providers.js +0 -4
  22. package/dist/commands/providers.js.map +1 -1
  23. package/dist/llm/adapters/openai-tools.d.ts +1 -0
  24. package/dist/llm/adapters/openai-tools.js +4 -1
  25. package/dist/llm/adapters/openai-tools.js.map +1 -1
  26. package/dist/llm/agentrouter.js +2 -0
  27. package/dist/llm/agentrouter.js.map +1 -1
  28. package/dist/llm/aws-mantle.js +2 -0
  29. package/dist/llm/aws-mantle.js.map +1 -1
  30. package/dist/llm/bynara.js +2 -0
  31. package/dist/llm/bynara.js.map +1 -1
  32. package/dist/llm/capabilities.d.ts +19 -0
  33. package/dist/llm/capabilities.js +165 -79
  34. package/dist/llm/capabilities.js.map +1 -1
  35. package/dist/llm/catalog-facts.d.ts +23 -0
  36. package/dist/llm/catalog-facts.js +253 -0
  37. package/dist/llm/catalog-facts.js.map +1 -0
  38. package/dist/llm/catalog-prefetch.d.ts +5 -0
  39. package/dist/llm/catalog-prefetch.js +38 -0
  40. package/dist/llm/catalog-prefetch.js.map +1 -0
  41. package/dist/llm/context-windows.d.ts +2 -0
  42. package/dist/llm/context-windows.js +20 -6
  43. package/dist/llm/context-windows.js.map +1 -1
  44. package/dist/llm/custom-profile-resolver.d.ts +5 -0
  45. package/dist/llm/custom-profile-resolver.js +8 -0
  46. package/dist/llm/custom-profile-resolver.js.map +1 -0
  47. package/dist/llm/custom-provider-profile.d.ts +7 -2
  48. package/dist/llm/custom-provider-profile.js +38 -8
  49. package/dist/llm/custom-provider-profile.js.map +1 -1
  50. package/dist/llm/custom-providers.js +2 -0
  51. package/dist/llm/custom-providers.js.map +1 -1
  52. package/dist/llm/effort-fallback.js +3 -0
  53. package/dist/llm/effort-fallback.js.map +1 -1
  54. package/dist/llm/fireworks.js +2 -0
  55. package/dist/llm/fireworks.js.map +1 -1
  56. package/dist/llm/free.js +2 -0
  57. package/dist/llm/free.js.map +1 -1
  58. package/dist/llm/hetzner.js +2 -0
  59. package/dist/llm/hetzner.js.map +1 -1
  60. package/dist/llm/http.d.ts +21 -2
  61. package/dist/llm/http.js +100 -141
  62. package/dist/llm/http.js.map +1 -1
  63. package/dist/llm/learned-capabilities.d.ts +22 -0
  64. package/dist/llm/learned-capabilities.js +147 -0
  65. package/dist/llm/learned-capabilities.js.map +1 -0
  66. package/dist/llm/lightning.js +2 -0
  67. package/dist/llm/lightning.js.map +1 -1
  68. package/dist/llm/modal.js +2 -0
  69. package/dist/llm/modal.js.map +1 -1
  70. package/dist/llm/model-families.d.ts +20 -0
  71. package/dist/llm/model-families.js +227 -19
  72. package/dist/llm/model-families.js.map +1 -1
  73. package/dist/llm/nvidia.js +2 -0
  74. package/dist/llm/nvidia.js.map +1 -1
  75. package/dist/llm/openai.js +2 -0
  76. package/dist/llm/openai.js.map +1 -1
  77. package/dist/llm/openrouter.js +2 -0
  78. package/dist/llm/openrouter.js.map +1 -1
  79. package/dist/llm/orcarouter.js +2 -0
  80. package/dist/llm/orcarouter.js.map +1 -1
  81. package/dist/llm/provider-model-layers.d.ts +3 -0
  82. package/dist/llm/provider-model-layers.js +522 -0
  83. package/dist/llm/provider-model-layers.js.map +1 -0
  84. package/dist/llm/provider-profile-layers.d.ts +4 -1
  85. package/dist/llm/provider-profile-layers.js +8 -523
  86. package/dist/llm/provider-profile-layers.js.map +1 -1
  87. package/dist/llm/provider-profile.d.ts +13 -1
  88. package/dist/llm/provider-profile.js +18 -0
  89. package/dist/llm/provider-profile.js.map +1 -1
  90. package/dist/llm/provider-profiles.d.ts +5 -1
  91. package/dist/llm/provider-profiles.js +177 -4
  92. package/dist/llm/provider-profiles.js.map +1 -1
  93. package/dist/llm/provider.js +0 -15
  94. package/dist/llm/provider.js.map +1 -1
  95. package/dist/llm/qwen-cloud.js +2 -0
  96. package/dist/llm/qwen-cloud.js.map +1 -1
  97. package/dist/llm/reasoning-artifacts.d.ts +1 -0
  98. package/dist/llm/reasoning-artifacts.js +7 -5
  99. package/dist/llm/reasoning-artifacts.js.map +1 -1
  100. package/dist/llm/reasoning-controls.d.ts +16 -0
  101. package/dist/llm/reasoning-controls.js +210 -0
  102. package/dist/llm/reasoning-controls.js.map +1 -0
  103. package/dist/llm/reasoning-errors.d.ts +4 -0
  104. package/dist/llm/reasoning-errors.js +45 -0
  105. package/dist/llm/reasoning-errors.js.map +1 -0
  106. package/dist/llm/request-plan.d.ts +8 -6
  107. package/dist/llm/request-plan.js +47 -13
  108. package/dist/llm/request-plan.js.map +1 -1
  109. package/dist/llm/route-dialect-registry.d.ts +8 -0
  110. package/dist/llm/route-dialect-registry.js +33 -0
  111. package/dist/llm/route-dialect-registry.js.map +1 -0
  112. package/dist/llm/route-vocabulary.d.ts +2 -0
  113. package/dist/llm/route-vocabulary.js +23 -0
  114. package/dist/llm/route-vocabulary.js.map +1 -0
  115. package/dist/llm/router.d.ts +2 -0
  116. package/dist/llm/router.js +70 -20
  117. package/dist/llm/router.js.map +1 -1
  118. package/dist/llm/tokenrouter.js +2 -0
  119. package/dist/llm/tokenrouter.js.map +1 -1
  120. package/dist/store/config.d.ts +11 -0
  121. package/dist/store/config.js +21 -3
  122. package/dist/store/config.js.map +1 -1
  123. package/dist/store/keys.d.ts +1 -1
  124. package/dist/store/keys.js +1 -1
  125. package/dist/store/session-workspace.d.ts +1 -0
  126. package/dist/store/session-workspace.js +21 -1
  127. package/dist/store/session-workspace.js.map +1 -1
  128. package/dist/tools/definitions.js +5 -10
  129. package/dist/tools/definitions.js.map +1 -1
  130. package/dist/tools/output-selection.js +47 -3
  131. package/dist/tools/output-selection.js.map +1 -1
  132. package/dist/tools/web/content-encoding.d.ts +6 -0
  133. package/dist/tools/web/content-encoding.js +57 -0
  134. package/dist/tools/web/content-encoding.js.map +1 -0
  135. package/dist/tools/web/fetch-core.js +23 -1
  136. package/dist/tools/web/fetch-core.js.map +1 -1
  137. package/dist/tui-v2/components/picker/picker.js +1 -1
  138. package/dist/tui-v2/components/picker/picker.js.map +1 -1
  139. package/dist/types.d.ts +2 -1
  140. package/dist/types.js +0 -2
  141. package/dist/types.js.map +1 -1
  142. package/dist/ui-core/commands/command-handlers.js +2 -3
  143. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  144. package/dist/ui-core/commands/picker-commands.js +34 -11
  145. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  146. package/dist/ui-core/commands/session-commands.d.ts +2 -3
  147. package/dist/ui-core/commands/session-commands.js +44 -17
  148. package/dist/ui-core/commands/session-commands.js.map +1 -1
  149. package/dist/ui-core/rendering/format-help.js +1 -1
  150. package/dist/ui-core/rendering/format-help.js.map +1 -1
  151. package/dist/ui-core/state/transcript-reducer.js +78 -19
  152. package/dist/ui-core/state/transcript-reducer.js.map +1 -1
  153. package/dist/ui-core/state/transcript-types.d.ts +1 -0
  154. package/dist/ui-core/state/transcript-types.js.map +1 -1
  155. package/dist/version.generated.d.ts +2 -2
  156. package/dist/version.generated.js +2 -2
  157. package/package.json +1 -2
  158. package/dist/llm/groq.d.ts +0 -24
  159. package/dist/llm/groq.js +0 -155
  160. package/dist/llm/groq.js.map +0 -1
  161. package/dist/llm/kimchi.d.ts +0 -2
  162. package/dist/llm/kimchi.js +0 -96
  163. package/dist/llm/kimchi.js.map +0 -1
package/README.md CHANGED
@@ -6,14 +6,14 @@
6
6
 
7
7
  Two things make it practical for everyday use:
8
8
 
9
- - **It's cheap-to-free to run.** A fresh install runs **keyless out of the box** on the built-in Free provider — no signup, no API key. Point it at Groq, Google Gemini, NVIDIA NIM, OpenRouter, Bynara, Kimchi, Hetzner, or a local Ollama — all have free access — and clai stacks them. Add several keys per provider; when one hits a rate limit, it rotates to the next automatically. Want frontier models instead? Serve **Kimi K3 on your own Modal endpoint** on Modal's **$30/month of free credit**, or start on **Lightning AI's 40M free tokens**.
9
+ - **It's cheap-to-free to run.** A fresh install runs **keyless out of the box** on the built-in Free provider — no signup, no API key. Point it at Google Gemini, NVIDIA NIM, OpenRouter, Bynara, Hetzner, or a local Ollama — all have free access — and clai stacks them. Add several keys per provider; when one hits a rate limit, it rotates to the next automatically. Want frontier models instead? Serve **Kimi K3 on your own Modal endpoint** on Modal's **$30/month of free credit**, or start on **Lightning AI's 40M free tokens**.
10
10
  - **It's honest.** Findings need real tool output. Builds get typechecked/run before "done." Compaction and history keep long sessions coherent instead of hallucinating progress.
11
11
 
12
12
  ---
13
13
 
14
14
  ## Highlights
15
15
 
16
- - **Free-tier first.** 19 providers wired in, 8 cloud free tiers + local Ollama. The default provider is the **keyless Free** gateway (`free-1/deepseek-v4-flash-free`) so a fresh install runs at no cost with zero setup — no API key required.
16
+ - **Free-tier first.** 18 providers wired in, 6 cloud free tiers + local Ollama. The default provider is the **keyless Free** gateway (`free-1/deepseek-v4-flash-free`) so a fresh install runs at no cost with zero setup — no API key required.
17
17
  - **Multi-key smart switching.** Up to 10 keys per provider with a *sticky* active key and circular rotation on rate-limit / auth / quota / transient / 5xx / empty-response errors. Disable any key or endpoint row to skip it without deleting it. Optional cross-provider fallback and a free-only filter.
18
18
  - **Bring your own endpoint.** Deploy Kimi K3 (or Qwen / DeepSeek / GLM / GPT-OSS / your own fine-tune) to a [Modal](#modal--run-kimi-k3-on-your-own-endpoint-on-30month-of-free-credit) endpoint and drive it from clai on **$30/month of free compute credit**. Modal, Lightning AI and TokenRouter each keep a list of up to 10 base URLs with a sticky active one, so several deployments live side by side and you switch with one command — same editor, same ★ active row as keys.
19
19
  - **Scope-based pentesting.** Opt-in engagement scope with authorized/excluded targets, allowed phases, rate and concurrency ceilings, redirect and DNS-rebinding escape detection, and out-of-scope flagging — designed for authorized pentests and bug-bounty programs.
@@ -105,9 +105,9 @@ clai # launch the full-screen agent console (already on the free provid
105
105
  Prefer a different provider? Get a free key, add it, and go:
106
106
 
107
107
  ```sh
108
- # Add a free key (Groq shown; NVIDIA/Gemini/OpenRouter/Bynara/Kimchi/Hetzner work the same)
109
- clai set groq gsk_your_key_here
110
- clai use groq
108
+ # Add a free key (NVIDIA shown; Gemini/OpenRouter/Bynara/Hetzner work the same)
109
+ clai set nvidia nvapi-your_key_here
110
+ clai use nvidia
111
111
 
112
112
  # Launch the full-screen agent console
113
113
  clai
@@ -138,11 +138,9 @@ This is the core of clai's design: assemble capacity from free tiers, then survi
138
138
  |----------|---------------|------|---------|
139
139
  | Free (keyless) | `free-1/deepseek-v4-flash-free` | Free · keyless | — (no key needed) |
140
140
  | NVIDIA NIM | `openai/gpt-oss-20b` | Free | `NVIDIA_API_KEY` |
141
- | Groq | `llama-3.3-70b-versatile` | Free | `GROQ_API_KEY` |
142
141
  | Google Gemini | `gemini-3.5-flash` | Free | `GEMINI_API_KEY` |
143
142
  | OpenRouter | `meta-llama/llama-3.3-70b-instruct:free` | Free | `OPENROUTER_API_KEY` |
144
143
  | Bynara | `mimo-v2.5-free` | Free | `BYNARA_API_KEY` |
145
- | Kimchi | `kimi-k2.6` | Free | `CASTAI_API_KEY` |
146
144
  | Ollama | `llama3.1:8b` | Local / free | `OLLAMA_HOST` |
147
145
  | OpenAI | `gpt-5.4-mini` | Paid | `OPENAI_API_KEY` |
148
146
  | Anthropic | `claude-3-5-haiku-latest` | Paid | `ANTHROPIC_API_KEY` |
@@ -267,10 +265,10 @@ Streaming, native tool calling, structured outputs (`response_format`), vision v
267
265
  ### Manage keys
268
266
 
269
267
  ```sh
270
- clai set groq gsk_first_key # store a key (appends if one exists)
271
- clai set groq gsk_second_key # add another key for the same provider
268
+ clai set nvidia nvapi-first_key # store a key (appends if one exists)
269
+ clai set nvidia nvapi-second_key # add another key for the same provider
272
270
  clai set gemini --from-env GEMINI_API_KEY
273
- echo "gsk_..." | clai set groq --stdin
271
+ echo "nvapi-..." | clai set nvidia --stdin
274
272
  clai set ollama --url http://localhost:11434
275
273
  clai set modal --url https://ws--ep-kimi-k3-server.us-west.modal.direct # endpoint (repeatable)
276
274
  clai set modal wk-tokenId:ws-tokenSecret # …then the proxy token pair
@@ -282,9 +280,9 @@ clai set orcarouter sk-your-key # OrcaRouter (orcarouter.ai/console)
282
280
  clai set free <key> # optional: unlock premium models (free is keyless by default)
283
281
  clai unset modal --url # drop stored endpoint URLs, keep the keys
284
282
  clai keys # providers + masked keys (★ active) + endpoint URLs
285
- clai use groq # set active provider
283
+ clai use nvidia # set active provider
286
284
  clai provider # interactive provider/model picker
287
- clai unset groq # remove ALL keys for a provider
285
+ clai unset nvidia # remove ALL keys for a provider
288
286
  ```
289
287
 
290
288
  In the console, **`/set`** opens a multi-row editor: add rows with `+`, remove rows, star a row to make it the active one, or disable a row to skip it in rotation without deleting it (`d` in the classic UI, `Ctrl+D` or the ○ marker in OpenTUI) — then **Save**, or **Reset all**. Providers with their own base URL (Modal, Lightning AI, TokenRouter) get a second **endpoints** row in the `/set` picker that edits their URL list the same way — URLs are shown in full rather than masked, since they aren't secrets. `/set <provider> https://…` adds and activates one URL directly. **`/keys`** lists keys masked plus the active endpoint, marking disabled rows `(disabled)`; **`/unset`** clears a provider. Disabled entries are never tried until re-enabled, and disabling every key for a provider fails fast with a clear error instead of burning requests.
@@ -296,7 +294,7 @@ In the console, **`/set`** opens a multi-row editor: add rows with `+`, remove r
296
294
  - **What triggers a switch** — HTTP 429 (rate limit), 401/403 (auth), 402 / quota / billing text, transient network errors, 500–504, and empty completions. Auth and quota errors switch **immediately** (no backoff wait); rate limits back off briefly first.
297
295
  - **Cross-provider fallback** *(opt-in)* — `/fallback on` lets clai try other configured providers after the active one is exhausted (only when running a provider's default model).
298
296
  - **Free-only mode** *(opt-in)* — `/freeonly on` excludes paid-cloud providers from the fallback chain, so you never accidentally spend.
299
- - **Quiet status** — a single non-stacking status line shows what happened, e.g. `switching groq key [2/4] …ab12 (rate limited)`. Keys are always masked to the last 4 chars.
297
+ - **Quiet status** — a single non-stacking status line shows what happened, e.g. `switching nvidia key [2/4] …ab12 (rate limited)`. Keys are always masked to the last 4 chars.
300
298
 
301
299
  ```sh
302
300
  /freeonly on # stay on free tiers only
@@ -423,12 +421,12 @@ Tool cards show the command/input clearly, with a live elapsed timer next to the
423
421
  | `/output [last\|id\|list]` | Open full tool output (also `Ctrl+O`) |
424
422
  | `/jobs` | Background jobs (also `Ctrl+J`) |
425
423
  | `/compact` · `/context` | Compact history now · show context size |
426
- | `/history` · `/save <name>` · `/new` · `/clear` · `/reset` | Session lifecycle |
424
+ | `/history` · `/save <name>` · `/new` · `/clear` · `/reset` | Session lifecycle (`/clear` deletes the current session outright) |
427
425
  | `/allow <tool>` · `/disallow <tool>` · `/permissions` | Tool permissions |
428
426
  | `/cwd <path>` | Change working directory |
429
427
  | `/think` · `/thinking` | Show thinking from the last response |
430
428
  | `/privacy [...]` | Private mode · clear history/logs/artifacts |
431
- | `/update` · `/help` · `/shortcuts` · `/clean` · `/exit` | Housekeeping |
429
+ | `/update` · `/help` · `/shortcuts` · `/exit` | Housekeeping |
432
430
 
433
431
  ---
434
432
 
@@ -596,7 +594,7 @@ clai/
596
594
  ├─ src/
597
595
  │ ├─ index.ts # CLI entry + subcommands
598
596
  │ ├─ agent/ # loop, plans, compaction, resume orientation, tool parsing
599
- │ ├─ llm/ # 19 providers, streaming, native tools, key rotation + fallback
597
+ │ ├─ llm/ # 18 providers, streaming, native tools, key rotation + fallback
600
598
  │ ├─ tools/ # fs, shell, net, http, web, pentest, batch, plan
601
599
  │ ├─ safety/ # risk classifier + engagement (scope) policy
602
600
  │ ├─ store/ # config, history, keys, plans, scope
@@ -31,7 +31,7 @@ export declare const COMPACTION_TRANSCRIPT_CHAR_BUDGET = 48000;
31
31
  export declare const COMPACTION_MAX_COMPLETION_TOKENS = 12288;
32
32
  export declare const COMPACTION_INPUT_SAFETY_TOKENS = 4096;
33
33
  export declare function compactionSinglePassInputBudget(contextLimitTokens: number): number;
34
- export declare const COMPACTION_MAP_MAX_COMPLETION_TOKENS = 4096;
34
+ export declare const COMPACTION_MAP_MAX_COMPLETION_TOKENS = 16384;
35
35
  export declare const COMPACTION_CHUNK_CHAR_BUDGET = 64000;
36
36
  export declare const MAX_COMPACTION_CHUNKS = 8;
37
37
  /**
@@ -73,7 +73,7 @@ export function compactionSinglePassInputBudget(contextLimitTokens) {
73
73
  COMPACTION_MAX_COMPLETION_TOKENS -
74
74
  COMPACTION_INPUT_SAFETY_TOKENS);
75
75
  }
76
- export const COMPACTION_MAP_MAX_COMPLETION_TOKENS = 4_096;
76
+ export const COMPACTION_MAP_MAX_COMPLETION_TOKENS = 16_384;
77
77
  export const COMPACTION_CHUNK_CHAR_BUDGET = 64_000;
78
78
  export const MAX_COMPACTION_CHUNKS = 8;
79
79
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-summary.js","sourceRoot":"","sources":["../../src/agent/compaction-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction-summary.js","sourceRoot":"","sources":["../../src/agent/compaction-summary.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { streamWithProvider } from "../llm/router.js";
3
3
  import { operationUsageFromError } from "../llm/operation-ledger.js";
4
4
  import { contextAttemptFromOperationUsage } from "../llm/context-snapshot.js";
5
5
  import { modelContextWindow } from "../llm/token-usage.js";
6
+ import { providerInputTokenBudget } from "../llm/context-windows.js";
6
7
  import { streamAlreadyEmitted } from "../llm/stream-progress.js";
7
8
  import { classifyStreamFailure, planStreamRecovery, recordRecoveryAttempt, createStreamRecoveryState, resetStreamRecoveryState, } from "./stream-recovery.js";
8
9
  import { modelSupportsVision, resolveToolDialect } from "../llm/capabilities.js";
@@ -14,7 +15,6 @@ import { isResponderResultLedgerMessage, responderContextMessage, upsertResponde
14
15
  import { agentModeDirective, planModeDirective, renderAgentSystemPrompt, renderCompactAgentSystemPrompt, renderRequestEnvironmentContext, scratchDirFor, toolNudge, } from "../prompts/index.js";
15
16
  import { getConfig, getProviderModel } from "../store/config.js";
16
17
  import { beginSessionWorkspace, getActiveSessionWorkspace, } from "../store/session-workspace.js";
17
- import { groqInputTokenBudget } from "../llm/groq.js";
18
18
  import { classifyToolCall, isPentestToolCall, scopeTargetForToolCall, } from "../safety/classifier.js";
19
19
  /**
20
20
  * Scope/engagement classification runs on every tool call and parses
@@ -425,11 +425,11 @@ export async function runAgentTurn(prompt, options = {}) {
425
425
  const currentContextLimitTokens = () => options.getContextLimitTokens
426
426
  ? options.getContextLimitTokens(provider, model)
427
427
  : options.contextLimitTokens;
428
- // Some Groq free-tier models have a per-request/per-minute input budget
429
- // below the normal agent prompt alone. Select a purpose-built compact
428
+ // Some free-tier routes have a per-request/per-minute input budget below
429
+ // the normal agent prompt alone. Select a purpose-built compact
430
430
  // instruction set before the request is made, rather than treating the
431
431
  // provider's 413 as a context-window failure after the fact.
432
- const inputTokenBudget = provider === "groq" ? groqInputTokenBudget(model) : undefined;
432
+ const inputTokenBudget = providerInputTokenBudget(provider, model);
433
433
  const useCompactSystemPrompt = inputTokenBudget !== undefined;
434
434
  const resolveNativeTools = (p, m) => {
435
435
  const dialect = resolveToolDialect(p, m, config.toolCalling);