@pentoshi/clai 4.2.2 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -17
- package/dist/agent/compaction-summary.d.ts +1 -1
- package/dist/agent/compaction-summary.js +1 -1
- package/dist/agent/compaction-summary.js.map +1 -1
- package/dist/agent/runner.js +12 -13
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tool-output-formatting.d.ts +6 -0
- package/dist/agent/tool-output-formatting.js +126 -40
- package/dist/agent/tool-output-formatting.js.map +1 -1
- package/dist/app/adapters/agent-event-adapter.d.ts +4 -0
- package/dist/app/adapters/agent-event-adapter.js +28 -3
- package/dist/app/adapters/agent-event-adapter.js.map +1 -1
- package/dist/app/commands/catalog.js +8 -26
- package/dist/app/commands/catalog.js.map +1 -1
- package/dist/app/commands/registry.js +0 -1
- package/dist/app/commands/registry.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +3 -0
- package/dist/app/controllers/session-controller.js +18 -25
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-persistence.d.ts +4 -1
- package/dist/app/controllers/session-persistence.js +23 -5
- package/dist/app/controllers/session-persistence.js.map +1 -1
- package/dist/app/controllers/session-responder.d.ts +1 -0
- package/dist/app/controllers/session-responder.js +8 -0
- package/dist/app/controllers/session-responder.js.map +1 -1
- package/dist/app/controllers/session-usage-ledger.d.ts +63 -0
- package/dist/app/controllers/session-usage-ledger.js +232 -0
- package/dist/app/controllers/session-usage-ledger.js.map +1 -0
- package/dist/app/events/app-event.d.ts +2 -0
- package/dist/app/events/app-event.js.map +1 -1
- package/dist/classic/app/ClassicApp.js +2 -1
- package/dist/classic/app/ClassicApp.js.map +1 -1
- package/dist/classic/app/use-feed.js +2 -1
- package/dist/classic/app/use-feed.js.map +1 -1
- package/dist/classic/chrome/toast-rows.d.ts +1 -0
- package/dist/classic/chrome/toast-rows.js +18 -0
- package/dist/classic/chrome/toast-rows.js.map +1 -1
- package/dist/commands/providers.js +0 -4
- package/dist/commands/providers.js.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/llm/adapters/openai-tools.d.ts +1 -0
- package/dist/llm/adapters/openai-tools.js +4 -1
- package/dist/llm/adapters/openai-tools.js.map +1 -1
- package/dist/llm/agentrouter.js +2 -0
- package/dist/llm/agentrouter.js.map +1 -1
- package/dist/llm/aws-mantle.js +2 -0
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/bynara.js +2 -0
- package/dist/llm/bynara.js.map +1 -1
- package/dist/llm/capabilities.d.ts +19 -0
- package/dist/llm/capabilities.js +165 -79
- package/dist/llm/capabilities.js.map +1 -1
- package/dist/llm/catalog-facts.d.ts +23 -0
- package/dist/llm/catalog-facts.js +253 -0
- package/dist/llm/catalog-facts.js.map +1 -0
- package/dist/llm/catalog-prefetch.d.ts +5 -0
- package/dist/llm/catalog-prefetch.js +38 -0
- package/dist/llm/catalog-prefetch.js.map +1 -0
- package/dist/llm/context-windows.d.ts +2 -0
- package/dist/llm/context-windows.js +20 -6
- package/dist/llm/context-windows.js.map +1 -1
- package/dist/llm/custom-profile-resolver.d.ts +5 -0
- package/dist/llm/custom-profile-resolver.js +8 -0
- package/dist/llm/custom-profile-resolver.js.map +1 -0
- package/dist/llm/custom-provider-profile.d.ts +7 -2
- package/dist/llm/custom-provider-profile.js +40 -10
- package/dist/llm/custom-provider-profile.js.map +1 -1
- package/dist/llm/custom-providers.js +2 -0
- package/dist/llm/custom-providers.js.map +1 -1
- package/dist/llm/effort-fallback.js +3 -0
- package/dist/llm/effort-fallback.js.map +1 -1
- package/dist/llm/fireworks.js +2 -0
- package/dist/llm/fireworks.js.map +1 -1
- package/dist/llm/free.js +2 -0
- package/dist/llm/free.js.map +1 -1
- package/dist/llm/hetzner.js +2 -0
- package/dist/llm/hetzner.js.map +1 -1
- package/dist/llm/http.d.ts +21 -2
- package/dist/llm/http.js +133 -141
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/key-rotation.d.ts +1 -0
- package/dist/llm/key-rotation.js +8 -0
- package/dist/llm/key-rotation.js.map +1 -1
- package/dist/llm/learned-capabilities.d.ts +22 -0
- package/dist/llm/learned-capabilities.js +147 -0
- package/dist/llm/learned-capabilities.js.map +1 -0
- package/dist/llm/lightning.js +2 -0
- package/dist/llm/lightning.js.map +1 -1
- package/dist/llm/modal.js +2 -0
- package/dist/llm/modal.js.map +1 -1
- package/dist/llm/model-families.d.ts +20 -0
- package/dist/llm/model-families.js +227 -19
- package/dist/llm/model-families.js.map +1 -1
- package/dist/llm/nvidia.js +2 -0
- package/dist/llm/nvidia.js.map +1 -1
- package/dist/llm/openai.js +2 -0
- package/dist/llm/openai.js.map +1 -1
- package/dist/llm/openrouter.js +2 -0
- package/dist/llm/openrouter.js.map +1 -1
- package/dist/llm/orcarouter.js +2 -0
- package/dist/llm/orcarouter.js.map +1 -1
- package/dist/llm/provider-model-layers.d.ts +3 -0
- package/dist/llm/provider-model-layers.js +522 -0
- package/dist/llm/provider-model-layers.js.map +1 -0
- package/dist/llm/provider-profile-layers.d.ts +4 -1
- package/dist/llm/provider-profile-layers.js +22 -536
- package/dist/llm/provider-profile-layers.js.map +1 -1
- package/dist/llm/provider-profile.d.ts +14 -1
- package/dist/llm/provider-profile.js +23 -0
- package/dist/llm/provider-profile.js.map +1 -1
- package/dist/llm/provider-profiles.d.ts +5 -1
- package/dist/llm/provider-profiles.js +178 -5
- package/dist/llm/provider-profiles.js.map +1 -1
- package/dist/llm/provider.js +0 -15
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/qwen-cloud.js +2 -0
- package/dist/llm/qwen-cloud.js.map +1 -1
- package/dist/llm/reasoning-artifacts.d.ts +1 -0
- package/dist/llm/reasoning-artifacts.js +7 -5
- package/dist/llm/reasoning-artifacts.js.map +1 -1
- package/dist/llm/reasoning-controls.d.ts +16 -0
- package/dist/llm/reasoning-controls.js +210 -0
- package/dist/llm/reasoning-controls.js.map +1 -0
- package/dist/llm/reasoning-errors.d.ts +4 -0
- package/dist/llm/reasoning-errors.js +45 -0
- package/dist/llm/reasoning-errors.js.map +1 -0
- package/dist/llm/request-plan.d.ts +8 -6
- package/dist/llm/request-plan.js +47 -13
- package/dist/llm/request-plan.js.map +1 -1
- package/dist/llm/route-dialect-registry.d.ts +8 -0
- package/dist/llm/route-dialect-registry.js +33 -0
- package/dist/llm/route-dialect-registry.js.map +1 -0
- package/dist/llm/route-vocabulary.d.ts +2 -0
- package/dist/llm/route-vocabulary.js +23 -0
- package/dist/llm/route-vocabulary.js.map +1 -0
- package/dist/llm/router.d.ts +2 -0
- package/dist/llm/router.js +70 -20
- package/dist/llm/router.js.map +1 -1
- package/dist/llm/stream-terminal.js +2 -1
- package/dist/llm/stream-terminal.js.map +1 -1
- package/dist/llm/tokenrouter.js +2 -0
- package/dist/llm/tokenrouter.js.map +1 -1
- package/dist/store/config.d.ts +11 -0
- package/dist/store/config.js +21 -3
- package/dist/store/config.js.map +1 -1
- package/dist/store/history.d.ts +1 -0
- package/dist/store/history.js +7 -0
- package/dist/store/history.js.map +1 -1
- package/dist/store/keys.d.ts +1 -1
- package/dist/store/keys.js +1 -1
- package/dist/store/scope.d.ts +8 -0
- package/dist/store/scope.js +138 -1
- package/dist/store/scope.js.map +1 -1
- package/dist/store/session-workspace.d.ts +1 -0
- package/dist/store/session-workspace.js +21 -1
- package/dist/store/session-workspace.js.map +1 -1
- package/dist/tools/definitions.js +5 -10
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/interactive-session-tools.js +5 -5
- package/dist/tools/interactive-session-tools.js.map +1 -1
- package/dist/tools/output-selection.js +47 -3
- package/dist/tools/output-selection.js.map +1 -1
- package/dist/tools/registry.js +2 -2
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/web/content-encoding.d.ts +6 -0
- package/dist/tools/web/content-encoding.js +57 -0
- package/dist/tools/web/content-encoding.js.map +1 -0
- package/dist/tools/web/fetch-core.js +23 -1
- package/dist/tools/web/fetch-core.js.map +1 -1
- package/dist/tui-v2/components/picker/picker.js +1 -1
- package/dist/tui-v2/components/picker/picker.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +1 -1
- package/dist/ui-core/bootstrap/composition-root.js +8 -2
- package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
- package/dist/ui-core/commands/command-handlers.js +3 -3
- package/dist/ui-core/commands/command-handlers.js.map +1 -1
- package/dist/ui-core/commands/config-commands.js +17 -14
- package/dist/ui-core/commands/config-commands.js.map +1 -1
- package/dist/ui-core/commands/picker-commands.js +34 -11
- package/dist/ui-core/commands/picker-commands.js.map +1 -1
- package/dist/ui-core/commands/session-commands.d.ts +3 -3
- package/dist/ui-core/commands/session-commands.js +64 -17
- package/dist/ui-core/commands/session-commands.js.map +1 -1
- package/dist/ui-core/rendering/format-help.js +2 -2
- package/dist/ui-core/rendering/format-help.js.map +1 -1
- package/dist/ui-core/rendering/format-usage.d.ts +6 -0
- package/dist/ui-core/rendering/format-usage.js +116 -0
- package/dist/ui-core/rendering/format-usage.js.map +1 -0
- package/dist/ui-core/state/transcript-reducer.js +78 -19
- package/dist/ui-core/state/transcript-reducer.js.map +1 -1
- package/dist/ui-core/state/transcript-types.d.ts +1 -0
- package/dist/ui-core/state/transcript-types.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -2
- package/dist/llm/groq.d.ts +0 -24
- package/dist/llm/groq.js +0 -155
- package/dist/llm/groq.js.map +0 -1
- package/dist/llm/kimchi.d.ts +0 -2
- package/dist/llm/kimchi.js +0 -96
- 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
|
|
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.**
|
|
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 (
|
|
109
|
-
clai set
|
|
110
|
-
clai use
|
|
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
|
|
271
|
-
clai set
|
|
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 "
|
|
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
|
|
283
|
+
clai use nvidia # set active provider
|
|
286
284
|
clai provider # interactive provider/model picker
|
|
287
|
-
clai unset
|
|
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
|
|
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
|
|
@@ -414,7 +412,7 @@ Tool cards show the command/input clearly, with a live elapsed timer next to the
|
|
|
414
412
|
|---------|------|
|
|
415
413
|
| `/ask` · `/agent` · `/plan` | Switch mode (plan = design-then-approve) |
|
|
416
414
|
| `/implement` · `/discard` | Approve+execute or drop the current plan |
|
|
417
|
-
| `/model [name\|#]` · `/provider [name]`
|
|
415
|
+
| `/model [name\|#]` · `/provider [name]` | Pick model / switch provider |
|
|
418
416
|
| `/set [provider]` · `/unset [provider]` · `/keys` · `/info [provider]` | Manage API keys, endpoint URLs, and view provider setup / pricing info |
|
|
419
417
|
| `/effort [level]` · `/reasoning [level]` | Thinking / reasoning effort |
|
|
420
418
|
| `/freeonly [on\|off]` · `/fallback [on\|off]` | Free-only filter · cross-provider fallback |
|
|
@@ -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` · `/
|
|
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/ #
|
|
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 =
|
|
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 =
|
|
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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"}
|
package/dist/agent/runner.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { streamWithProvider } from "../llm/router.js";
|
|
3
|
+
import { isProviderFailureStatus } from "../llm/key-rotation.js";
|
|
3
4
|
import { operationUsageFromError } from "../llm/operation-ledger.js";
|
|
4
5
|
import { contextAttemptFromOperationUsage } from "../llm/context-snapshot.js";
|
|
5
6
|
import { modelContextWindow } from "../llm/token-usage.js";
|
|
7
|
+
import { providerInputTokenBudget } from "../llm/context-windows.js";
|
|
6
8
|
import { streamAlreadyEmitted } from "../llm/stream-progress.js";
|
|
7
9
|
import { classifyStreamFailure, planStreamRecovery, recordRecoveryAttempt, createStreamRecoveryState, resetStreamRecoveryState, } from "./stream-recovery.js";
|
|
8
10
|
import { modelSupportsVision, resolveToolDialect } from "../llm/capabilities.js";
|
|
@@ -14,7 +16,6 @@ import { isResponderResultLedgerMessage, responderContextMessage, upsertResponde
|
|
|
14
16
|
import { agentModeDirective, planModeDirective, renderAgentSystemPrompt, renderCompactAgentSystemPrompt, renderRequestEnvironmentContext, scratchDirFor, toolNudge, } from "../prompts/index.js";
|
|
15
17
|
import { getConfig, getProviderModel } from "../store/config.js";
|
|
16
18
|
import { beginSessionWorkspace, getActiveSessionWorkspace, } from "../store/session-workspace.js";
|
|
17
|
-
import { groqInputTokenBudget } from "../llm/groq.js";
|
|
18
19
|
import { classifyToolCall, isPentestToolCall, scopeTargetForToolCall, } from "../safety/classifier.js";
|
|
19
20
|
/**
|
|
20
21
|
* Scope/engagement classification runs on every tool call and parses
|
|
@@ -50,7 +51,7 @@ import { accountAssembledRequest, RequestOverLimitError, } from "./request-accou
|
|
|
50
51
|
import { autoCompactTriggerTokens, dedupeToolContextOutput, freeTierGuardNotices, getReliabilityPolicy, resolveStepMaxTokens, } from "./reliability-policy.js";
|
|
51
52
|
import { auditLog } from "../store/logs.js";
|
|
52
53
|
import { loadProjectContext } from "../store/project.js";
|
|
53
|
-
import {
|
|
54
|
+
import { loadScopeForSession, isScopeActive } from "../store/scope.js";
|
|
54
55
|
import { ensureProviderConfigured } from "../commands/providers.js";
|
|
55
56
|
import { createThinkingStreamParser, rememberThinking, stripThinking, } from "../ui/thinking.js";
|
|
56
57
|
import { hasReasoningMarker } from "../llm/reasoning-marker.js";
|
|
@@ -425,11 +426,11 @@ export async function runAgentTurn(prompt, options = {}) {
|
|
|
425
426
|
const currentContextLimitTokens = () => options.getContextLimitTokens
|
|
426
427
|
? options.getContextLimitTokens(provider, model)
|
|
427
428
|
: options.contextLimitTokens;
|
|
428
|
-
// Some
|
|
429
|
-
//
|
|
429
|
+
// Some free-tier routes have a per-request/per-minute input budget below
|
|
430
|
+
// the normal agent prompt alone. Select a purpose-built compact
|
|
430
431
|
// instruction set before the request is made, rather than treating the
|
|
431
432
|
// provider's 413 as a context-window failure after the fact.
|
|
432
|
-
const inputTokenBudget = provider
|
|
433
|
+
const inputTokenBudget = providerInputTokenBudget(provider, model);
|
|
433
434
|
const useCompactSystemPrompt = inputTokenBudget !== undefined;
|
|
434
435
|
const resolveNativeTools = (p, m) => {
|
|
435
436
|
const dialect = resolveToolDialect(p, m, config.toolCalling);
|
|
@@ -640,7 +641,7 @@ export async function runAgentTurn(prompt, options = {}) {
|
|
|
640
641
|
systemSections.push(pentestNoLocalServerDirective());
|
|
641
642
|
}
|
|
642
643
|
{
|
|
643
|
-
const engScope = await
|
|
644
|
+
const engScope = await loadScopeForSession(session.sessionId).catch(() => undefined);
|
|
644
645
|
const scopeBlock = scopeContextMessage(engScope);
|
|
645
646
|
if (scopeBlock && (pentestSession || pentestLikeTurn) && !idleOrSocialPrompt) {
|
|
646
647
|
systemSections.push(scopeBlock);
|
|
@@ -1567,7 +1568,7 @@ export async function runAgentTurn(prompt, options = {}) {
|
|
|
1567
1568
|
};
|
|
1568
1569
|
}
|
|
1569
1570
|
}
|
|
1570
|
-
const scope = await
|
|
1571
|
+
const scope = await loadScopeForSession(session.sessionId);
|
|
1571
1572
|
const decision = classifyToolCall(call, { scope });
|
|
1572
1573
|
await auditLog("tool.classified", {
|
|
1573
1574
|
call,
|
|
@@ -3261,11 +3262,9 @@ export async function runAgentTurn(prompt, options = {}) {
|
|
|
3261
3262
|
}, {
|
|
3262
3263
|
onStatus: (status) => {
|
|
3263
3264
|
writeStatus(status);
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
writeNotice("warn", status.trim());
|
|
3268
|
-
}
|
|
3265
|
+
const full = status.replace(/\s+/g, " ").trim();
|
|
3266
|
+
if (isProviderFailureStatus(full))
|
|
3267
|
+
writeNotice("warn", full);
|
|
3269
3268
|
},
|
|
3270
3269
|
onStreamEvent: (event) => {
|
|
3271
3270
|
if (event.type !== "reasoning_delta")
|
|
@@ -4421,7 +4420,7 @@ export async function runAgentTurn(prompt, options = {}) {
|
|
|
4421
4420
|
.join("\n\n");
|
|
4422
4421
|
pushAssistantHistory(standardizedContent, completion);
|
|
4423
4422
|
}
|
|
4424
|
-
const scopeForBatch = await
|
|
4423
|
+
const scopeForBatch = await loadScopeForSession(session.sessionId).catch(() => undefined);
|
|
4425
4424
|
const isParallelSafe = (c) => {
|
|
4426
4425
|
if (c.name === "pentest.recon" ||
|
|
4427
4426
|
c.name === "net.context" ||
|