@markusylisiurunen/tau 0.3.80 → 0.3.81
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/dist/code_mode/command.js +4 -16
- package/dist/code_mode/command.js.map +1 -1
- package/dist/code_mode/images.js +5 -6
- package/dist/code_mode/images.js.map +1 -1
- package/dist/code_mode/index.d.ts +1 -3
- package/dist/code_mode/index.js +1 -2
- package/dist/code_mode/index.js.map +1 -1
- package/dist/code_mode/runtime.d.ts +8 -4
- package/dist/code_mode/runtime.js +52 -63
- package/dist/code_mode/runtime.js.map +1 -1
- package/dist/core/code_mode/bash.js +269 -0
- package/dist/core/code_mode/bash.js.map +1 -0
- package/dist/core/code_mode/capability.js +2 -0
- package/dist/core/code_mode/capability.js.map +1 -0
- package/dist/core/code_mode/history.js +62 -0
- package/dist/core/code_mode/history.js.map +1 -0
- package/dist/core/code_mode/mcp.js +121 -0
- package/dist/core/code_mode/mcp.js.map +1 -0
- package/dist/core/code_mode/models.js +256 -0
- package/dist/core/code_mode/models.js.map +1 -0
- package/dist/core/{tools → code_mode}/nook.js +13 -77
- package/dist/core/code_mode/nook.js.map +1 -0
- package/dist/core/code_mode/sdk.js +97 -0
- package/dist/core/code_mode/sdk.js.map +1 -0
- package/dist/core/{tools → code_mode}/web.js +31 -90
- package/dist/core/code_mode/web.js.map +1 -0
- package/dist/core/config/content_loader.js +3 -1
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/debug.js +1 -1
- package/dist/core/debug.js.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/models/openrouter.js +171 -0
- package/dist/core/models/openrouter.js.map +1 -0
- package/dist/core/{tool → models}/openrouter_decisions.js +6 -7
- package/dist/core/models/openrouter_decisions.js.map +1 -0
- package/dist/core/models/openrouter_media.js +128 -0
- package/dist/core/models/openrouter_media.js.map +1 -0
- package/dist/core/personas.js +2 -1
- package/dist/core/personas.js.map +1 -1
- package/dist/core/session/compaction.js +5 -3
- package/dist/core/session/compaction.js.map +1 -1
- package/dist/core/static/code_mode/history/documentation.md +95 -167
- package/dist/core/static/code_mode/mcp/documentation.md +144 -67
- package/dist/core/static/code_mode/nook/documentation.md +108 -169
- package/dist/core/static/code_mode/sandbox_runner.mjs +37 -20
- package/dist/core/static/code_mode/web/documentation.md +115 -213
- package/dist/core/static/tau_docs/client-tools.md +3 -3
- package/dist/core/static/tau_docs/history.md +2 -2
- package/dist/core/static/tau_docs/node-sdk.md +5 -3
- package/dist/core/static/tau_docs/nook.md +2 -2
- package/dist/core/static/tau_docs/personas.md +2 -2
- package/dist/core/static/tau_docs/security.md +3 -3
- package/dist/core/static/tau_docs/sessions.md +2 -0
- package/dist/core/static/tau_docs/subagents.md +2 -1
- package/dist/core/static/tau_docs/tools.md +36 -33
- package/dist/core/static/tau_docs/tui.md +5 -3
- package/dist/core/subagents/registry.js +2 -1
- package/dist/core/subagents/registry.js.map +1 -1
- package/dist/core/subagents/types.js +2 -1
- package/dist/core/subagents/types.js.map +1 -1
- package/dist/core/tool/image_generate.js +2 -1
- package/dist/core/tool/image_generate.js.map +1 -1
- package/dist/core/tool/media.js +1 -49
- package/dist/core/tool/media.js.map +1 -1
- package/dist/core/tool/openrouter.js +24 -156
- package/dist/core/tool/openrouter.js.map +1 -1
- package/dist/core/tool/openrouter_input.js +77 -0
- package/dist/core/tool/openrouter_input.js.map +1 -0
- package/dist/core/tool/speech_generate.js +2 -1
- package/dist/core/tool/speech_generate.js.map +1 -1
- package/dist/core/tools/bash.js +2 -1
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/bash_jobs.js +34 -5
- package/dist/core/tools/bash_jobs.js.map +1 -1
- package/dist/core/tools/catalog.js +18 -33
- package/dist/core/tools/catalog.js.map +1 -1
- package/dist/core/tools/code.js +100 -0
- package/dist/core/tools/code.js.map +1 -0
- package/dist/core/tools/code_mode.js +9 -30
- package/dist/core/tools/code_mode.js.map +1 -1
- package/dist/core/tools/code_mode_worker.js +2 -2
- package/dist/core/tools/presentation.js +2 -1
- package/dist/core/tools/presentation.js.map +1 -1
- package/dist/core/tools/tool_names.js +5 -1
- package/dist/core/tools/tool_names.js.map +1 -1
- package/dist/core/utils/gemini_transcription.js +14 -15
- package/dist/core/utils/gemini_transcription.js.map +1 -1
- package/dist/core/utils/media_validation.js +50 -0
- package/dist/core/utils/media_validation.js.map +1 -0
- package/dist/core/version.js +1 -1
- package/dist/nook/README.md +1 -1
- package/dist/sdk/code_mode.js +11 -17
- package/dist/sdk/code_mode.js.map +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/tui/session_chat_controller.js +95 -55
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/package.json +4 -4
- package/dist/code_mode/files.d.ts +0 -47
- package/dist/code_mode/files.js +0 -296
- package/dist/code_mode/files.js.map +0 -1
- package/dist/core/tool/openrouter_decisions.js.map +0 -1
- package/dist/core/tool/openrouter_media.js +0 -180
- package/dist/core/tool/openrouter_media.js.map +0 -1
- package/dist/core/tools/history.js +0 -118
- package/dist/core/tools/history.js.map +0 -1
- package/dist/core/tools/mcp.js +0 -167
- package/dist/core/tools/mcp.js.map +0 -1
- package/dist/core/tools/nook.js.map +0 -1
- package/dist/core/tools/web.js.map +0 -1
|
@@ -30,7 +30,7 @@ tools:
|
|
|
30
30
|
- web
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
The supported persona-controlled
|
|
33
|
+
The supported persona-controlled tool and capability selectors are:
|
|
34
34
|
|
|
35
35
|
```text
|
|
36
36
|
bash
|
|
@@ -41,6 +41,7 @@ web
|
|
|
41
41
|
nook
|
|
42
42
|
history
|
|
43
43
|
mcp
|
|
44
|
+
models
|
|
44
45
|
spawn_agent
|
|
45
46
|
send_input_to_agent
|
|
46
47
|
wait_for_agents
|
|
@@ -48,7 +49,9 @@ list_agents
|
|
|
48
49
|
interrupt_agent
|
|
49
50
|
```
|
|
50
51
|
|
|
51
|
-
A custom persona that omits `tools` enables `bash`, `write`, `edit`, `view_image`, `web`, `nook`, `history`, and `
|
|
52
|
+
A custom persona that omits `tools` enables `bash`, `write`, `edit`, `view_image`, `web`, `nook`, `history`, `mcp`, and `models`. It also enables the five subagent-management tools. Built-in personas enable the same base and subagent tool sets.
|
|
53
|
+
|
|
54
|
+
The selectors `web`, `history`, `nook`, `mcp`, and `models` enable namespaces in the single `code` tool, not separate model-facing tools. `bash` enables both the direct Bash tools and `tau.bash` within code mode. Tau registers `code` when at least one eligible composition capability is selected; `code` is not a separate persona selector. A namespace not selected by the persona is absent from the SDK and its documentation index.
|
|
52
55
|
|
|
53
56
|
An empty list disables every persona-controlled host tool:
|
|
54
57
|
|
|
@@ -147,63 +150,63 @@ The supported formats are JPEG, PNG, and WebP. Source reads are capped at 50 MiB
|
|
|
147
150
|
|
|
148
151
|
Each guide covers setup, input, examples, outputs, and failure behavior. Use `tau tool --help` to list commands or `tau tool <command> --help` for command-specific help. The same guides are packaged for `tau_docs` and linked from its `index.md`.
|
|
149
152
|
|
|
150
|
-
## Code-mode
|
|
153
|
+
## Code-mode composition
|
|
154
|
+
|
|
155
|
+
`code` runs a one-shot JavaScript program that composes enabled capabilities through `tau.web`, `tau.history`, `tau.nook`, `tau.mcp`, `tau.bash`, and `tau.models`. Direct Bash, write, edit, and image-viewing tools remain available independently.
|
|
151
156
|
|
|
152
|
-
|
|
157
|
+
### Documentation and output
|
|
153
158
|
|
|
154
|
-
|
|
159
|
+
When the runtime guide is not already visible, the agent first runs a documentation-only program:
|
|
155
160
|
|
|
156
161
|
```js
|
|
157
|
-
|
|
162
|
+
printText(docs);
|
|
158
163
|
```
|
|
159
164
|
|
|
160
|
-
The
|
|
161
|
-
|
|
162
|
-
Code-mode programs have no direct process, environment, credential, import, timer, network, or `fetch` access. They can call only the named API and use agent-scoped scratch files exposed by the runtime. Programs default to 60 seconds (MCP: 15 minutes), allow 128 API requests with eight unresolved at once, and limit each serialized payload to 16 MiB. Undefined object properties are omitted from API arguments; undefined arguments and array entries are invalid. Console output is middle-truncated above roughly 8,192 estimated tokens.
|
|
163
|
-
|
|
164
|
-
`await image({ type: "image", data, mimeType })` forwards a base64 image without files. Calls must be awaited before the program exits. JPEG, PNG, and WebP bytes must match the declared MIME type and fit the 16 MiB JSON bridge limit. Source images are limited to 40 megapixels; each program may forward 16 images. Images are resized or re-encoded to fit within 4,096 pixels per dimension and 3.5 MiB each. Adjacent console writes form one text block; awaited images separate the text before and after them. Text truncation keeps images in place. Invalid blocks reject and can be caught. Built-in tools retain valid images if the program later fails.
|
|
165
|
-
|
|
166
|
-
Scratch files are real UTF-8 files in an execution-environment temporary directory shared by code-mode tools for the same agent. Writes are limited to 128 regular files and 64 MiB total. Scratch state is not stored in the session snapshot. The progressively disclosed documentation gives the exact file API.
|
|
167
|
-
|
|
168
|
-
### Web
|
|
165
|
+
The guide covers runtime rules, capabilities, and composition examples. The agent retrieves any unseen capability reference in a separate documentation-only call:
|
|
169
166
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
### History
|
|
167
|
+
```js
|
|
168
|
+
printText(await tau.docs("web"));
|
|
169
|
+
```
|
|
175
170
|
|
|
176
|
-
|
|
171
|
+
The agent reuses visible documentation. MCP descriptions and Nook's authoring guide have separate discovery steps. Programs need not print intermediate results.
|
|
177
172
|
|
|
178
|
-
|
|
173
|
+
Only `printText(string)` and awaited `printImage({ data, mimeType })` emit output, in emission order; return values are ignored. Text is middle-truncated to `maxOutputTokens` (default 8,192; range 1–65,536). The agent leaves it unset unless needed, requesting up to 16,384 autonomously; higher budgets require an explicit user request. Truncated built-in text is saved to a temporary execution-environment file when possible, with its path reported. Read it rather than repeat side effects. Files exclude images and text lost to capture limits.
|
|
179
174
|
|
|
180
|
-
|
|
175
|
+
JPEG, PNG, and WebP images are validated outside the sandbox and prepared within 4,096 pixels per dimension and 3.5 MiB each. Sources are limited to 40 megapixels and 16 images per program. Valid images survive built-in program failure.
|
|
181
176
|
|
|
182
|
-
`
|
|
177
|
+
The pure globals `truncate(text, { maxChars, position? })` and `truncateLines(text, { maxLines, position? })` return bounded strings with omission markers. Position defaults to `middle`; `start` and `end` retain the corresponding edge. They do not print automatically.
|
|
183
178
|
|
|
184
|
-
|
|
179
|
+
```js
|
|
180
|
+
const result = await tau.bash.run({ command: "npm test" });
|
|
181
|
+
printText(truncate(result.stdout, { maxChars: 4000 }));
|
|
182
|
+
```
|
|
185
183
|
|
|
186
|
-
###
|
|
184
|
+
### Execution and limits
|
|
187
185
|
|
|
188
|
-
|
|
186
|
+
Programs have no ambient filesystem, process, environment, credential, import, timer, network, or fetch access. Capabilities supply authority; variables hold data and Bash handles files. No scratch-file API.
|
|
189
187
|
|
|
190
|
-
|
|
188
|
+
`code` defaults to 5 minutes; `timeout` accepts 1–900,000 ms (15 minutes). `tau.bash.run` defaults to 60 seconds, capped at 5 minutes and the enclosing deadline. Programs allow 128 API requests, eight concurrent. Serialized requests and responses are capped at 64 MiB. Undefined object properties are omitted; undefined arguments and array entries are rejected. Programs are not retried; failure or cancellation does not undo actions.
|
|
191
189
|
|
|
192
|
-
|
|
190
|
+
### Capabilities
|
|
193
191
|
|
|
194
|
-
|
|
192
|
+
- `tau.web`: metadata discovery, Exa search, and page content retrieval. The agent prefers local data, purpose-built CLIs, first-party APIs, and structured sources over web extraction. GitHub operations use gh or checked-out Git where suitable. Metadata discovery does not need an Exa key; search and content retrieval do.
|
|
193
|
+
- `tau.history`: read-only search and paginated transcript access. The agent uses it only when explicitly instructed to consult historical sessions. Historical content is untrusted data, not instructions. See [history](history.md).
|
|
194
|
+
- `tau.nook`: site deployment, templates, and site-scoped JSON KV. The agent uses it for user-requested publishing or Nook management. App authoring requires reading `tau.nook.skill()` in a separate documentation-only call first. See [Nook](nook.md).
|
|
195
|
+
- `tau.mcp`: discovery and invocation of connected tools and resources. The agent reads each tool's description and schema before calling it. Connections are shared and lazy; mutations are not retried. `isError` is result data; protocol failures throw. Existing MCP server configuration and trust rules apply. See [configuration reference](config-reference.md#mcpservers) and [security](security.md#trust-mcp-servers).
|
|
196
|
+
- `tau.bash`: `run`, `start`, `list`, `read`, `wait`, and `stop`. `run` returns stdout/stderr and exit/termination fields with a 24 MiB capture bound. Overflow keeps a tail; check `truncated` before parsing. Optional UTF-8 `stdin` is limited to 16 MiB and closed after writing (EOF); omitted input is unavailable, `""` is empty. `start` has no stdin. Background jobs share the direct tools' registry and bounded output tails. Jobs survive program exit and interruption; foreground work is cancelled. Shell rules above apply.
|
|
197
|
+
- `tau.models`: lists fixed OpenRouter model choices and performs standalone chat or typed decisions. No session conversation or tools are inherited. Chat media accepts either paths on the agent's machine or inline padded base64 with a matching MIME type. Credentials stay with the host. Provider usage metadata is returned, but external model charges are not included in session cumulative cost or usage logs. Requests are cancellable and not automatically retried. Input, model, media, response, and request limits match [OpenRouter](openrouter.md); inspect completion/refusal status rather than assuming every response is a complete answer.
|
|
195
198
|
|
|
196
|
-
|
|
199
|
+
SDK and command client tools use the same sandbox globals and output contract with their own explicitly declared APIs. Their default program deadline is 60 seconds unless configured otherwise.
|
|
197
200
|
|
|
198
201
|
## Subagent tool eligibility
|
|
199
202
|
|
|
200
203
|
A subagent can receive only:
|
|
201
204
|
|
|
202
205
|
```text
|
|
203
|
-
bash write edit view_image web history nook mcp
|
|
206
|
+
bash write edit view_image web history nook mcp models
|
|
204
207
|
```
|
|
205
208
|
|
|
206
|
-
Tau inherits the intersection of the main persona’s tools and those
|
|
209
|
+
Tau inherits the intersection of the main persona’s tools and those nine eligible names. `tau_docs` is then added intrinsically. There is no separate child tool selection. Nook and MCP require configuration; MCP uses the parent's host connections.
|
|
207
210
|
|
|
208
211
|
Subagents do not receive goal tools, subagent-management tools, or client-provided tools. Their Bash and file tools are scoped to the subagent working directory, including an alternate directory selected at launch. See [subagents](subagents.md) for configuration and working-directory context rebuilding.
|
|
209
212
|
|
|
@@ -52,7 +52,7 @@ When Tau is idle, Enter and Ctrl+Enter both start a normal turn. While a turn is
|
|
|
52
52
|
|
|
53
53
|
Pending input is session state shared by attached clients while the host remains alive. It is not durable across host restart or session recovery. A queued turn captures the persona, reasoning, tools, and model settings when that turn actually starts. Steering remains part of the active logical turn and keeps the settings captured when that turn began.
|
|
54
54
|
|
|
55
|
-
Escape interrupts foreground client work or the main session’s active work. If a local diff review,
|
|
55
|
+
Escape interrupts foreground client work or the main session’s active work. If a local diff review, voice input, or speech playback task owns the foreground, Escape stops that task first; otherwise it requests main-session interruption from the host, including cancellation of a running manual compaction. Once compaction has replaced model context, a late interruption does not undo it or turn successful persistence into a failure. It does not stop independently running supervised subagents; select one with Alt+Down and use Ctrl+G. Press Escape twice to clear the current editor text.
|
|
56
56
|
|
|
57
57
|
Press Enter twice on an empty editor to retry from the current session history. Retry does not rewind or duplicate the last user message. Goal-controlled turns cannot be retried; resume a blocked goal instead.
|
|
58
58
|
|
|
@@ -174,13 +174,15 @@ The TUI also advertises diff review as a client tool unless `--no-client-tools`
|
|
|
174
174
|
|
|
175
175
|
## Use speech
|
|
176
176
|
|
|
177
|
-
`/listen` and Ctrl+Y are currently macOS-only. Recording uses local `ffmpeg` with the AVFoundation audio input and stops when Ctrl+Y is pressed again
|
|
177
|
+
`/listen` and Ctrl+Y are currently macOS-only. Recording uses local `ffmpeg` with the AVFoundation audio input and stops when Ctrl+Y is pressed again or at the 9-minute recording limit. The Gemini limit leaves time for setup and finalization within its 10-minute live session. Startup fails if the microphone produces no audio within 15 seconds. Pressing Enter or Ctrl+Enter while recording stops capture, finishes transcription, and submits the finalized editor text. While a turn is active, Enter steers it and Ctrl+Enter queues another turn, just like normal editor submission. Pressing Ctrl+Y again or reaching the recording limit finishes transcription and inserts the transcript at the cursor for review without submitting it.
|
|
178
178
|
|
|
179
179
|
The recording shortcut is configurable with [`speech.recordingShortcut`](config-reference.md#speech), including single-press and double-tap printable keys such as `§`. The editor hint shows the configured gesture. Starting a recording stops speech playback.
|
|
180
180
|
|
|
181
181
|
`/auto-speak` toggles automatic reading of successful final answers. `/auto-speak on` and `/auto-speak off` explicitly select the mode; turning it off also stops current playback. It starts off and applies only to the current session in this TUI, including when attached remotely. `/new` resets it. It does not change other clients or replay historical answers. Commentary, tool activity, and failed or interrupted answers are not automatically spoken. Responses arriving while recording or playing speech are not queued for later playback. Escape stops playback without disabling the mode. Automatic playback uses the same voice, credentials, and rewriting as `/speak`; it does not open the microphone or automatically submit dictation.
|
|
182
182
|
|
|
183
|
-
Gemini displays a replaceable live preview in muted italic text at the original cursor position. Finalized dictation uses normal text once transcription settles. Its final transcript replaces the preview without duplication. Submitting a draft containing finalized dictation includes hidden guidance that some or all of the message may have been transcribed from speech and may contain transcription errors. The guidance remains after edits and clears when the draft is emptied. Editing stays disabled from recording startup through finalization, and
|
|
183
|
+
Gemini displays a replaceable live preview in muted italic text at the original cursor position. Finalized dictation uses normal text once transcription settles. Its final transcript replaces the preview without duplication. Submitting a draft containing finalized dictation includes hidden guidance that some or all of the message may have been transcribed from speech and may contain transcription errors. The guidance remains after edits and clears when the draft is emptied. Editing stays disabled from recording startup through finalization. Escape cancels voice input during startup, recording, microphone shutdown, transcription, or retry. Cancellation immediately removes the preview, restores the original draft, and re-enables editing without inserting or submitting speech. The cancelled recording is deleted after pending capture or file work settles. Failure also restores the original draft. Recording and retries cannot start while another editor update is pending.
|
|
184
|
+
|
|
185
|
+
A completed empty transcription inserts nothing. Tau does not detect silence locally or infer completion from Gemini’s activity-end notification. If Gemini does not complete transcription, Tau waits up to 30 seconds after the live session is ready before reporting failure; Escape cancels this wait.
|
|
184
186
|
|
|
185
187
|
If transcription fails, Tau retains the local WAV and reports its path. Run `/listen retry` to transcribe the same audio again with Gemini and the current conversation context, or `/listen discard` to delete it. Retained recordings longer than 20 minutes are rejected rather than sent to the provider. A replacement recording deletes the retained file only after the new capture starts producing audio. Tau keeps at most one failed recording, and exiting leaves that file at the reported path for manual recovery. For live transcription, GPT-6 Luna extracts spelling hints from recent conversation while recording begins, with reasoning disabled. Tau buffers audio until the transcription session is ready and then streams subsequent audio. Gemini uses `gemini-3.5-transcribe-live` in verbatim mode with English (`en-US`) and Finnish (`fi-FI`) language hints. Missing OpenAI credentials or hint extraction failure does not fail transcription. On retry, Gemini uploads the retained recording for `gemini-3.5-transcribe` verbatim transcription with the same language hints and attempts to delete the remote file afterward.
|
|
186
188
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TOOL_NAME_BASH, TOOL_NAME_EDIT, TOOL_NAME_HISTORY, TOOL_NAME_MCP, TOOL_NAME_NOOK, TOOL_NAME_SPAWN_AGENT, TOOL_NAME_VIEW_IMAGE, TOOL_NAME_WEB, TOOL_NAME_WRITE, } from "../tools/tool_names.js";
|
|
1
|
+
import { TOOL_NAME_BASH, TOOL_NAME_EDIT, TOOL_NAME_HISTORY, TOOL_NAME_MCP, TOOL_NAME_MODELS, TOOL_NAME_NOOK, TOOL_NAME_SPAWN_AGENT, TOOL_NAME_VIEW_IMAGE, TOOL_NAME_WEB, TOOL_NAME_WRITE, } from "../tools/tool_names.js";
|
|
2
2
|
const INHERITABLE_TOOL_NAMES = new Set([
|
|
3
3
|
TOOL_NAME_BASH,
|
|
4
4
|
TOOL_NAME_WRITE,
|
|
@@ -7,6 +7,7 @@ const INHERITABLE_TOOL_NAMES = new Set([
|
|
|
7
7
|
TOOL_NAME_WEB,
|
|
8
8
|
TOOL_NAME_HISTORY,
|
|
9
9
|
TOOL_NAME_MCP,
|
|
10
|
+
TOOL_NAME_MODELS,
|
|
10
11
|
TOOL_NAME_NOOK,
|
|
11
12
|
]);
|
|
12
13
|
function normalizeTools(tools) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/subagents/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAIhC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAmB;IACvD,cAAc;IACd,eAAe;IACf,cAAc;IACd,oBAAoB;IACpB,aAAa;IACb,iBAAiB;IACjB,aAAa;IACb,cAAc;CACf,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,KAAyB;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,MAAM,UAAU,GAAuB,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAgB;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAwB,CAAC,EAAE,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,IAAwB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAID,MAAM,UAAU,gCAAgC,CAAC,IAGhD;IACC,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC9C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;QACpD,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,gCAAgC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAClD,MAAM,gBAAgB,GACpB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE5F,OAAO;QACL,EAAE;QACF,EAAE;QACF,eAAe;QACf,EAAE;QACF,4NAA4N;QAC5N,EAAE;QACF,sBAAsB,SAAS,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,SAAS,IAAI;QACrF,4BAA4B,gBAAgB,EAAE;QAC9C,EAAE;QACF,+EAA+E;KAChF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/subagents/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TOOL_NAME_BASH, TOOL_NAME_EDIT, TOOL_NAME_HISTORY, TOOL_NAME_MCP, TOOL_NAME_NOOK, TOOL_NAME_VIEW_IMAGE, TOOL_NAME_WEB, TOOL_NAME_WRITE, } from "../tools/tool_names.js";
|
|
1
|
+
import { TOOL_NAME_BASH, TOOL_NAME_EDIT, TOOL_NAME_HISTORY, TOOL_NAME_MCP, TOOL_NAME_MODELS, TOOL_NAME_NOOK, TOOL_NAME_VIEW_IMAGE, TOOL_NAME_WEB, TOOL_NAME_WRITE, } from "../tools/tool_names.js";
|
|
2
2
|
export const SUBAGENT_TOOL_NAMES = [
|
|
3
3
|
TOOL_NAME_BASH,
|
|
4
4
|
TOOL_NAME_WRITE,
|
|
@@ -7,6 +7,7 @@ export const SUBAGENT_TOOL_NAMES = [
|
|
|
7
7
|
TOOL_NAME_WEB,
|
|
8
8
|
TOOL_NAME_HISTORY,
|
|
9
9
|
TOOL_NAME_MCP,
|
|
10
|
+
TOOL_NAME_MODELS,
|
|
10
11
|
TOOL_NAME_NOOK,
|
|
11
12
|
];
|
|
12
13
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/subagents/types.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,cAAc;IACd,eAAe;IACf,cAAc;IACd,oBAAoB;IACpB,aAAa;IACb,iBAAiB;IACjB,aAAa;IACb,cAAc;CACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/subagents/types.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,cAAc;IACd,eAAe;IACf,cAAc;IACd,oBAAoB;IACpB,aAAa;IACb,iBAAiB;IACjB,aAAa;IACb,gBAAgB;IAChB,cAAc;CACN,CAAC"}
|
|
@@ -4,8 +4,9 @@ import { fileTypeFromBuffer } from "file-type";
|
|
|
4
4
|
import sharp from "sharp";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { getGoogleApiKey, getOpenAIApiKey } from "../config/schema.js";
|
|
7
|
+
import { mediaValidationConstraint } from "../utils/media_validation.js";
|
|
7
8
|
import { ToolCliError } from "./errors.js";
|
|
8
|
-
import { describeMediaError, mediaRequest,
|
|
9
|
+
import { describeMediaError, mediaRequest, parseMediaArgs, prepareMediaOutput, publishMediaArtifact, readMediaInput, readMediaJsonResponse, requiredArg, } from "./media.js";
|
|
9
10
|
const ratios = ["1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"];
|
|
10
11
|
const wideRatios = [...ratios, "1:4", "4:1", "1:8", "8:1"];
|
|
11
12
|
const googleSettings = z.strictObject({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image_generate.js","sourceRoot":"","sources":["../../../src/core/tool/image_generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"image_generate.js","sourceRoot":"","sources":["../../../src/core/tool/image_generate.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tool/media.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { link, lstat, mkdir, readFile } from "node:fs/promises";
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
3
|
import { parseArgs } from "node:util";
|
|
4
|
+
import { parseMediaJson, readMediaResponse } from "../utils/media_validation.js";
|
|
4
5
|
import { ToolCliError } from "./errors.js";
|
|
5
6
|
export function parseMediaArgs(argv, options) {
|
|
6
7
|
try {
|
|
@@ -48,30 +49,6 @@ export async function readMediaInput(path, label) {
|
|
|
48
49
|
throw new ToolCliError(`cannot read ${label}: ${describeMediaError(error)}`);
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
|
-
export function parseMediaJson(text, label) {
|
|
52
|
-
try {
|
|
53
|
-
return JSON.parse(text);
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
throw new ToolCliError(`${label} is not valid JSON`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
export function mediaValidationConstraint(issue) {
|
|
60
|
-
switch (issue.code) {
|
|
61
|
-
case "invalid_value":
|
|
62
|
-
return `use ${issue.values.map((value) => JSON.stringify(value)).join(" or ")}`;
|
|
63
|
-
case "invalid_type":
|
|
64
|
-
return `expected ${issue.expected}`;
|
|
65
|
-
case "unrecognized_keys":
|
|
66
|
-
return `remove unknown fields: ${issue.keys.join(", ")}`;
|
|
67
|
-
case "too_small":
|
|
68
|
-
return `must contain at least ${issue.minimum} ${issue.origin === "array" ? "item" : "character"}${issue.minimum === 1 ? "" : "s"}`;
|
|
69
|
-
case "invalid_key":
|
|
70
|
-
return `invalid field name: ${issue.issues.map(mediaValidationConstraint).join("; ")}`;
|
|
71
|
-
default:
|
|
72
|
-
return issue.message;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
52
|
export async function readMediaJsonResponse(response, limit, schema, label) {
|
|
76
53
|
const value = parseMediaJson((await readMediaResponse(response, limit)).toString("utf8"), label);
|
|
77
54
|
const result = schema.safeParse(value);
|
|
@@ -123,29 +100,4 @@ export async function mediaRequest(fetchImpl, url, init) {
|
|
|
123
100
|
}
|
|
124
101
|
return response;
|
|
125
102
|
}
|
|
126
|
-
export async function readMediaResponse(response, limit) {
|
|
127
|
-
const reader = response.body?.getReader();
|
|
128
|
-
if (!reader) {
|
|
129
|
-
throw new ToolCliError("provider returned an empty response");
|
|
130
|
-
}
|
|
131
|
-
const chunks = [];
|
|
132
|
-
let size = 0;
|
|
133
|
-
try {
|
|
134
|
-
while (true) {
|
|
135
|
-
const { value, done } = await reader.read();
|
|
136
|
-
if (done) {
|
|
137
|
-
break;
|
|
138
|
-
}
|
|
139
|
-
size += value.length;
|
|
140
|
-
if (size > limit) {
|
|
141
|
-
throw new ToolCliError("provider response exceeds the size limit");
|
|
142
|
-
}
|
|
143
|
-
chunks.push(value);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
finally {
|
|
147
|
-
await reader.cancel();
|
|
148
|
-
}
|
|
149
|
-
return Buffer.concat(chunks);
|
|
150
|
-
}
|
|
151
103
|
//# sourceMappingURL=media.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/core/tool/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAwB,SAAS,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,UAAU,cAAc,CAC5B,IAAc,EACd,OAAU;IAEV,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,IAAY;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,YAAY,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAA0B,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,sBAAsB,QAAQ,uCAAuC,CAAC;QAC/E,KAAK,QAAQ;YACX,OAAO,0CAA0C,QAAQ,0DAA0D,CAAC;QACtH,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,oBAAoB,QAAQ,wCAAwC,CAAC;QAC9E,KAAK,SAAS;YACZ,OAAO,sCAAsC,QAAQ,oBAAoB,CAAC;QAC5E,KAAK,QAAQ;YACX,OAAO,yCAAyC,QAAQ,sBAAsB,CAAC;QACjF,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,2CAA2C,QAAQ,sCAAsC,CAAC;QACnG,KAAK,OAAO;YACV,OAAO,0BAA0B,QAAQ,2BAA2B,CAAC;QACvE;YACE,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,KAAa;IAC9D,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC,eAAe,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/core/tool/media.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +1,14 @@
|
|
|
1
1
|
import { resolve } from "node:path";
|
|
2
2
|
import { parseArgs } from "node:util";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { openRouterModels, requestOpenRouterChat, requestOpenRouterDecisions, resolveOpenRouterModel, } from "../models/openrouter.js";
|
|
4
|
+
import { decodeOpenRouterText, OPENROUTER_TEXT_BYTES, } from "../models/openrouter_media.js";
|
|
5
|
+
import { parseMediaJson } from "../utils/media_validation.js";
|
|
5
6
|
import { spawnWithCapture } from "../utils/spawn_capture.js";
|
|
6
7
|
import { ToolCliError } from "./errors.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { decodeOpenRouterText, OPENROUTER_REQUEST_BYTES, OPENROUTER_TEXT_BYTES, prepareOpenRouterAttachments, readOpenRouterFile, readOpenRouterStdin, } from "./openrouter_media.js";
|
|
10
|
-
const models = {
|
|
11
|
-
decisions: [
|
|
12
|
-
{
|
|
13
|
-
id: "typesafe/jev-1.13",
|
|
14
|
-
inputs: ["state", "questions"],
|
|
15
|
-
reasoning: [],
|
|
16
|
-
role: "Typed classification, scoring, and verification with probabilities.",
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
chat: [
|
|
20
|
-
{
|
|
21
|
-
id: "google/gemini-3.8-flash",
|
|
22
|
-
inputs: ["text", "image", "audio", "video"],
|
|
23
|
-
reasoning: ["low", "medium", "high"],
|
|
24
|
-
role: "Audio/video understanding and image-heavy analysis.",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
id: "openai/gpt-6-luna",
|
|
28
|
-
inputs: ["text", "image"],
|
|
29
|
-
reasoning: ["none", "low", "medium", "high", "xhigh", "max"],
|
|
30
|
-
role: "Cheap everyday extraction, summarization, and routine image understanding.",
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
id: "openai/gpt-6.1-sol",
|
|
34
|
-
inputs: ["text", "image"],
|
|
35
|
-
reasoning: ["low", "medium", "high", "xhigh", "max"],
|
|
36
|
-
role: "Coding, debugging, and technical reasoning.",
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: "anthropic/claude-opus-5.5",
|
|
40
|
-
inputs: ["text", "image"],
|
|
41
|
-
reasoning: ["low", "medium", "high", "xhigh", "max"],
|
|
42
|
-
role: "Premium generalist for writing, synthesis, and difficult second opinions.",
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
};
|
|
8
|
+
import { requiredArg } from "./media.js";
|
|
9
|
+
import { probeOpenRouterMedia, readOpenRouterFile, readOpenRouterStdin, } from "./openrouter_input.js";
|
|
46
10
|
function modelHelp(operation) {
|
|
47
|
-
return
|
|
11
|
+
return openRouterModels[operation].map((model) => `${model.id}\n inputs: ${model.inputs.join(", ")}; reasoning: ${model.reasoning.join(", ") || "not supported"}\n ${model.role}`);
|
|
48
12
|
}
|
|
49
13
|
async function printHelp(operation, log) {
|
|
50
14
|
await log([
|
|
@@ -132,80 +96,6 @@ async function textInput(inline, file, name, cwd) {
|
|
|
132
96
|
throw new ToolCliError(`${name} must be nonblank and at most ${OPENROUTER_TEXT_BYTES} UTF-8 bytes`);
|
|
133
97
|
return text;
|
|
134
98
|
}
|
|
135
|
-
const chatResponse = z.object({
|
|
136
|
-
model: z.string().min(1),
|
|
137
|
-
id: z.string().optional(),
|
|
138
|
-
provider: z.string().optional(),
|
|
139
|
-
usage: z
|
|
140
|
-
.looseObject({
|
|
141
|
-
prompt_tokens: z.number().int().nonnegative(),
|
|
142
|
-
completion_tokens: z.number().int().nonnegative(),
|
|
143
|
-
total_tokens: z.number().int().nonnegative(),
|
|
144
|
-
cost: z.number().nonnegative().nullable().optional(),
|
|
145
|
-
})
|
|
146
|
-
.optional(),
|
|
147
|
-
choices: z.tuple([
|
|
148
|
-
z.object({
|
|
149
|
-
finish_reason: z.enum(["stop", "length", "content_filter"]),
|
|
150
|
-
native_finish_reason: z.string().nullable().optional(),
|
|
151
|
-
message: z.object({
|
|
152
|
-
role: z.literal("assistant"),
|
|
153
|
-
content: z
|
|
154
|
-
.union([z.string(), z.array(z.object({ type: z.literal("text"), text: z.string() }))])
|
|
155
|
-
.nullish()
|
|
156
|
-
.transform((content) => typeof content === "string"
|
|
157
|
-
? content
|
|
158
|
-
: (content?.map((part) => part.text).join("") ?? null)),
|
|
159
|
-
refusal: z.string().nullable().optional(),
|
|
160
|
-
tool_calls: z.array(z.unknown()).max(0).optional(),
|
|
161
|
-
}),
|
|
162
|
-
}),
|
|
163
|
-
]),
|
|
164
|
-
});
|
|
165
|
-
function requestFailure(status) {
|
|
166
|
-
const kind = status === 401
|
|
167
|
-
? "authentication failed; check OPENROUTER_API_KEY or global apiKeys.openrouter"
|
|
168
|
-
: status === 402
|
|
169
|
-
? "insufficient credits; check OpenRouter billing"
|
|
170
|
-
: status === 403
|
|
171
|
-
? "request forbidden; check key permissions and content policy"
|
|
172
|
-
: status === 429
|
|
173
|
-
? "rate limited; wait before deciding whether to retry"
|
|
174
|
-
: status >= 500
|
|
175
|
-
? "provider or OpenRouter service failure"
|
|
176
|
-
: "request rejected";
|
|
177
|
-
return new ToolCliError(`OpenRouter ${kind} (status ${status}); no automatic retry`);
|
|
178
|
-
}
|
|
179
|
-
async function request(operation, body, options) {
|
|
180
|
-
const payload = JSON.stringify(body);
|
|
181
|
-
if (Buffer.byteLength(payload) > OPENROUTER_REQUEST_BYTES)
|
|
182
|
-
throw new ToolCliError("encoded request exceeds 20 MB; reduce text or attachments");
|
|
183
|
-
const key = (options.env ?? process.env).OPENROUTER_API_KEY?.trim() ||
|
|
184
|
-
getApiKeyForProvider(options.config, "openrouter");
|
|
185
|
-
if (!key)
|
|
186
|
-
throw new ToolCliError("configure OPENROUTER_API_KEY or global apiKeys.openrouter on this machine");
|
|
187
|
-
if (!/^[\x21-\x7e]+$/.test(key))
|
|
188
|
-
throw new ToolCliError("OpenRouter API key must contain only printable ASCII without whitespace");
|
|
189
|
-
const response = await (options.fetchImpl ?? fetch)(`https://openrouter.ai/api/${operation === "decisions" ? "alpha/decisions" : "v1/chat/completions"}`, {
|
|
190
|
-
method: "POST",
|
|
191
|
-
redirect: "error",
|
|
192
|
-
signal: AbortSignal.timeout(10 * 60 * 1000),
|
|
193
|
-
headers: { Authorization: `Bearer ${key}`, "Content-Type": "application/json" },
|
|
194
|
-
body: payload,
|
|
195
|
-
});
|
|
196
|
-
if (!response.ok) {
|
|
197
|
-
await response.body?.cancel();
|
|
198
|
-
throw requestFailure(response.status);
|
|
199
|
-
}
|
|
200
|
-
const value = parseMediaJson(decodeOpenRouterText(await readMediaResponse(response, 8_000_000)), "OpenRouter response");
|
|
201
|
-
if (value && typeof value === "object" && "error" in value) {
|
|
202
|
-
const error = z.object({ code: z.number().int() }).safeParse(value.error);
|
|
203
|
-
if (error.success)
|
|
204
|
-
throw requestFailure(error.data.code);
|
|
205
|
-
throw new ToolCliError("OpenRouter returned a provider error; no automatic retry");
|
|
206
|
-
}
|
|
207
|
-
return value;
|
|
208
|
-
}
|
|
209
99
|
export async function runOpenRouterCommand(argv, options) {
|
|
210
100
|
const [operation, ...flags] = argv;
|
|
211
101
|
const log = options.stdout ??
|
|
@@ -231,61 +121,39 @@ export async function runOpenRouterCommand(argv, options) {
|
|
|
231
121
|
if (values["list-models"]) {
|
|
232
122
|
if (Object.keys(values).length !== 1)
|
|
233
123
|
throw new ToolCliError("--list-models cannot be combined with request flags");
|
|
234
|
-
await log(JSON.stringify({ models:
|
|
124
|
+
await log(JSON.stringify({ models: openRouterModels[operation] }));
|
|
235
125
|
return;
|
|
236
126
|
}
|
|
237
127
|
const requestedModel = requiredArg(values.model, "model");
|
|
238
|
-
|
|
239
|
-
if (!spec)
|
|
240
|
-
throw new ToolCliError(`unsupported ${operation} model; use ${operation} --list-models`);
|
|
128
|
+
resolveOpenRouterModel(operation, requestedModel);
|
|
241
129
|
const cwd = options.cwd ?? process.cwd();
|
|
242
130
|
if (operation === "decisions") {
|
|
243
131
|
const path = requiredArg(values.input, "input");
|
|
244
132
|
const bytes = path === "-"
|
|
245
133
|
? await readOpenRouterStdin(options.stdin ?? process.stdin)
|
|
246
134
|
: await readOpenRouterFile(resolve(cwd, path), OPENROUTER_TEXT_BYTES);
|
|
247
|
-
const
|
|
248
|
-
|
|
249
|
-
if (!result.success)
|
|
250
|
-
throw new ToolCliError("OpenRouter returned an invalid decisions response");
|
|
251
|
-
validateDecisionAnswers(input, result.data);
|
|
252
|
-
await log(JSON.stringify({ requested_model: requestedModel, ...result.data }));
|
|
135
|
+
const result = await requestOpenRouterDecisions(requestedModel, parseMediaJson(decodeOpenRouterText(bytes), "decisions input"), { ...options, signal: new AbortController().signal });
|
|
136
|
+
await log(JSON.stringify(result));
|
|
253
137
|
return;
|
|
254
138
|
}
|
|
255
|
-
if (values.reasoning !== undefined &&
|
|
256
|
-
!spec.reasoning.includes(requiredArg(values.reasoning, "reasoning")))
|
|
257
|
-
throw new ToolCliError(`unsupported reasoning effort for ${requestedModel}; use chat --list-models`);
|
|
258
|
-
if (attachments.some((item) => !spec.inputs.includes(item.kind)))
|
|
259
|
-
throw new ToolCliError("audio and video require google/gemini-3.8-flash; no model substitution is performed");
|
|
260
139
|
const prompt = await textInput(values.prompt, values["prompt-file"], "prompt", cwd);
|
|
261
140
|
const system = values.system === undefined && values["system-file"] === undefined
|
|
262
141
|
? undefined
|
|
263
142
|
: await textInput(values.system, values["system-file"], "system", cwd);
|
|
264
|
-
const
|
|
265
|
-
const messages = [];
|
|
266
|
-
if (system !== undefined)
|
|
267
|
-
messages.push({ role: "system", content: system });
|
|
268
|
-
messages.push({ role: "user", content: [{ type: "text", text: prompt }, ...media] });
|
|
269
|
-
const result = chatResponse.safeParse(await request(operation, {
|
|
143
|
+
const result = await requestOpenRouterChat({
|
|
270
144
|
model: requestedModel,
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
},
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
...metadata,
|
|
285
|
-
answer: message.content,
|
|
286
|
-
finish_reason,
|
|
287
|
-
native_finish_reason,
|
|
288
|
-
refusal: message.refusal,
|
|
289
|
-
}));
|
|
145
|
+
prompt,
|
|
146
|
+
system,
|
|
147
|
+
reasoning: values.reasoning,
|
|
148
|
+
attachments: attachments.map((item) => ({ kind: item.kind, path: resolve(cwd, item.path) })),
|
|
149
|
+
}, {
|
|
150
|
+
...options,
|
|
151
|
+
signal: new AbortController().signal,
|
|
152
|
+
mediaAdapter: {
|
|
153
|
+
readFile: readOpenRouterFile,
|
|
154
|
+
probe: (bytes, format) => probeOpenRouterMedia(bytes, format, options.spawnImpl ?? spawnWithCapture),
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
await log(JSON.stringify(result));
|
|
290
158
|
}
|
|
291
159
|
//# sourceMappingURL=openrouter.js.map
|