@markusylisiurunen/tau 0.3.41 → 0.3.43
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 +14 -6
- package/dist/core/agent/agent_runtime.js +32 -44
- package/dist/core/agent/agent_runtime.js.map +1 -1
- package/dist/core/auth/auth_manager.js +25 -9
- package/dist/core/auth/auth_manager.js.map +1 -1
- package/dist/core/auth/auth_storage.js +1 -0
- package/dist/core/auth/auth_storage.js.map +1 -1
- package/dist/core/auth/cli.js +49 -35
- package/dist/core/auth/cli.js.map +1 -1
- package/dist/core/auth/credential_store.js +54 -22
- package/dist/core/auth/credential_store.js.map +1 -1
- package/dist/core/auth/index.js +1 -1
- package/dist/core/auth/index.js.map +1 -1
- package/dist/core/auth/providers/openai_codex.js +71 -23
- package/dist/core/auth/providers/openai_codex.js.map +1 -1
- package/dist/core/cli.js +4 -2
- package/dist/core/cli.js.map +1 -1
- package/dist/core/config/builtin_themes.js +62 -155
- package/dist/core/config/builtin_themes.js.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/models/tau_model_overrides.js +1 -66
- package/dist/core/models/tau_model_overrides.js.map +1 -1
- package/dist/core/session/direct_bash.js +1 -0
- package/dist/core/session/direct_bash.js.map +1 -1
- package/dist/core/session/runner.js +21 -14
- package/dist/core/session/runner.js.map +1 -1
- package/dist/core/static/code_mode/capabilities.mjs +25 -0
- package/dist/core/static/code_mode/history/documentation.md +2 -0
- package/dist/core/static/code_mode/history/sandbox_runner.mjs +4 -1
- package/dist/core/static/code_mode/nook/documentation.md +2 -0
- package/dist/core/static/code_mode/nook/sandbox_runner.mjs +4 -1
- package/dist/core/static/code_mode/web/documentation.md +2 -0
- package/dist/core/static/code_mode/web/sandbox_runner.mjs +4 -1
- package/dist/core/subagents/agent_supervisor.js +3 -3
- package/dist/core/subagents/agent_supervisor.js.map +1 -1
- package/dist/core/telegram/adapter.js +0 -23
- package/dist/core/telegram/adapter.js.map +1 -1
- package/dist/core/telegram/session_manager.js +34 -7
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/tools/bash.js +10 -2
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/code_mode.js +1 -0
- package/dist/core/tools/code_mode.js.map +1 -1
- package/dist/core/tools/presentation.js +1 -1
- package/dist/core/utils/auto_retry.js +1 -1
- package/dist/core/utils/auto_retry.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/host/local_session_host.js +319 -198
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/host/session_protocol_handler.js +1 -1
- package/dist/host/session_protocol_handler.js.map +1 -1
- package/dist/main.js +16 -2
- package/dist/main.js.map +1 -1
- package/dist/protocol/index.d.ts +2 -2
- package/dist/protocol/index.js +1 -1
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/session_protocol.d.ts +115 -40
- package/dist/protocol/session_protocol.js +377 -98
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/index.d.ts +1 -2
- package/dist/sdk/index.js +0 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/store/session_snapshot_migrations.js +311 -4
- package/dist/store/session_snapshot_migrations.js.map +1 -1
- package/dist/tui/chat_controller/assistant_clipboard.js +12 -8
- package/dist/tui/chat_controller/assistant_clipboard.js.map +1 -1
- package/dist/tui/chat_controller/diff_review_service.js +13 -9
- package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
- package/dist/tui/chat_controller/history_message_model.js +3 -3
- package/dist/tui/chat_controller/history_message_model.js.map +1 -1
- package/dist/tui/chat_controller/status_format.js +18 -0
- package/dist/tui/chat_controller/status_format.js.map +1 -1
- package/dist/tui/chat_view.js +39 -38
- package/dist/tui/chat_view.js.map +1 -1
- package/dist/tui/session_chat_app.js +1 -3
- package/dist/tui/session_chat_app.js.map +1 -1
- package/dist/tui/session_chat_controller.js +375 -241
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/speech_playback.js +4 -4
- package/dist/tui/speech_playback.js.map +1 -1
- package/dist/tui/ui/assistant_message.js +1 -15
- package/dist/tui/ui/assistant_message.js.map +1 -1
- package/dist/tui/ui/chat_message_model.js +26 -7
- package/dist/tui/ui/chat_message_model.js.map +1 -1
- package/dist/tui/ui/custom_editor.js +1 -1
- package/dist/tui/ui/custom_editor.js.map +1 -1
- package/dist/tui/ui/footer.js +161 -47
- package/dist/tui/ui/footer.js.map +1 -1
- package/dist/tui/ui/theme/palette.js +10 -16
- package/dist/tui/ui/theme/palette.js.map +1 -1
- package/dist/tui/ui/theme/theme.js.map +1 -1
- package/dist/tui/ui/tool_card.js +12 -9
- package/dist/tui/ui/tool_card.js.map +1 -1
- package/dist/tui/ui/transcript_notice.js +44 -0
- package/dist/tui/ui/transcript_notice.js.map +1 -0
- package/dist/tui/ui/transcript_text.js +14 -0
- package/dist/tui/ui/transcript_text.js.map +1 -0
- package/package.json +10 -12
- package/dist/sdk/turn_outcome.d.ts +0 -2
- package/dist/sdk/turn_outcome.js +0 -4
- package/dist/sdk/turn_outcome.js.map +0 -1
- package/dist/tui/ui/system_message.js +0 -22
- package/dist/tui/ui/system_message.js.map +0 -1
package/README.md
CHANGED
|
@@ -57,13 +57,20 @@ to list authenticated accounts and usage:
|
|
|
57
57
|
tau auth list
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
to keep an account authenticated while excluding it from agent sessions, disable it by email or account id. disabled accounts remain visible in `tau auth list` and continue to refresh credentials and usage:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
tau auth disable codex --account <email-or-id>
|
|
64
|
+
tau auth enable codex --account <email-or-id>
|
|
65
|
+
```
|
|
66
|
+
|
|
60
67
|
to remove stored credentials:
|
|
61
68
|
|
|
62
69
|
```sh
|
|
63
|
-
tau auth logout codex --account <email>
|
|
70
|
+
tau auth logout codex --account <email-or-id>
|
|
64
71
|
```
|
|
65
72
|
|
|
66
|
-
to force a specific Codex account for this run, set `TAU_CODEX_ACCOUNT` to the account email or account id (same matching as `auth logout`). when set, tau will only use that account and will not fail over.
|
|
73
|
+
to force a specific Codex account for this run, set `TAU_CODEX_ACCOUNT` to the account email or account id (same matching as `auth logout`). when set, tau will only use that account and will not fail over. forcing a disabled account fails until the account is enabled again.
|
|
67
74
|
|
|
68
75
|
`openai-codex` does **not** use `OPENAI_API_KEY` or `apiKeys.openai`; it relies on the OAuth tokens in `~/.config/tau/auth.json`.
|
|
69
76
|
|
|
@@ -138,6 +145,8 @@ tau attach --session 0195d6e4-4cf9-7f44-a2d8-f8f7f49ee9d3 -- ssh vps 'cd /path/t
|
|
|
138
145
|
|
|
139
146
|
Session attach renders the authoritative session snapshot, streams recoverable `session.delta` updates and independently revisioned, non-persisted `session.pendingUserMessages` replacements, submits normal user input through `session.submit`, `session.queue`, and `session.steer`, supports steering/interruption, runs `!`/`!!` Bash commands in the session execution environment, records `/listen` from the local microphone, speaks `/speak` locally, reloads session content with `/reload`, switches session personas with `/persona:<id>` or `Ctrl+P`, inserts session prompt templates with `/prompt:<id>`, manages persistent autonomous goals with `/goal`, compacts the session with `/compact-all` or `/compact-keep-last`, creates a new session with `/new`, and exits with `/exit` or `Ctrl+C` twice.
|
|
140
147
|
|
|
148
|
+
The host owns the active transcript as one ordered timeline of messages, tool calls, notices, and maintenance operations. Durable items retain their exact position across reattach; ephemeral transcript notices use the same ordering while attached but are not recovered. Successful compaction starts a new numeric timeline epoch containing the summary and future activity, while rewind removes every item after its selected boundary.
|
|
149
|
+
|
|
141
150
|
The TUI advertises client tools for diff review, input prefill, and the effective command-backed tools selected from global definitions. `prefill_input` fills only an empty editor and leaves existing draft text unchanged. Pass `--no-client-tools` to `tau` or `tau attach` to advertise no TUI client tools, for example when another TUI attached to the same session already owns them.
|
|
142
151
|
|
|
143
152
|
Model `bash` tool calls, `!`/`!!`, `session.exec`, and Tau-controlled command helpers each run in a fresh, non-interactive login Bash belonging to the session execution environment. Tau sets `HOME` to the execution environment home, so Bash reads `/etc/profile` and then the first available user login file (`~/.bash_profile`, `~/.bash_login`, or `~/.profile`). Bash also reads inherited `BASH_ENV` when set; otherwise `.bashrc` is loaded only when the login configuration sources it. Login startup files must be automation-safe: they must not write to stdout or stderr, read stdin, require a TTY, or terminate the shell unexpectedly. Tau does not filter or frame startup output. Commands start from the backend's target-side environment and apply explicit execution-environment overrides; the local backend filters sensitive variables inherited from the Tau host. Node, Git, and other helper executables resolve from the same login-configured `PATH` as model commands. Shell state such as `cd`, exports, aliases, functions, and `nvm use` does not persist between calls.
|
|
@@ -181,7 +190,7 @@ tau tool pdf-unpack ./docs/spec.pdf
|
|
|
181
190
|
|
|
182
191
|
Tau records every session to a machine-local SQLite history database independently of the resumable session snapshot. History retains committed user text (including leading `<system>` blocks), assistant preambles and responses, and completed tool calls with their full results. Rewind removes the superseded suffix, while compaction does not remove original transcript entries.
|
|
183
192
|
|
|
184
|
-
Built-in personas include the read-only `history` code-mode tool, and their subagents inherit it by default. Agents are instructed to invoke it only when the user or other active instructions directly ask them to reference historical transcripts. As with every code-mode tool, the agent must first use a documentation-only call to print and read `docs`, then use the progressively disclosed SDK in a later call rather than guessing its signatures. Custom subagents can include or exclude `history` in their `tools` list like `bash` or `web`. Its `history.search()` and `history.read()` APIs provide global access to bounded transcript results across repositories and execution environments; ordinary JavaScript can further filter and project them. Attribute search supports exact strings and generic `{ "contains": "text" }` substring filters. Conventional client-supplied attributes include `source` and `repository`; repository values use `host/owner/repository`, with comma-delimited values for composite workspaces. Local TUI startup derives this value from the current Git repository or direct child repositories, `/new` preserves a known value, Telegram derives it from project configuration, attach-created sessions leave it absent, and SDK/raw clients include it only when their caller provides it. If local history initialization or projection fails, Tau keeps the session running, persists one warning notice
|
|
193
|
+
Built-in personas include the read-only `history` code-mode tool, and their subagents inherit it by default. Agents are instructed to invoke it only when the user or other active instructions directly ask them to reference historical transcripts. As with every code-mode tool, the agent must first use a documentation-only call to print and read `docs`, then use the progressively disclosed SDK in a later call rather than guessing its signatures. Code-mode programs have live clock access through standard `Date` APIs and random generation through `Math.random()`. Custom subagents can include or exclude `history` in their `tools` list like `bash` or `web`. Its `history.search()` and `history.read()` APIs provide global access to bounded transcript results across repositories and execution environments; ordinary JavaScript can further filter and project them. Attribute search supports exact strings and generic `{ "contains": "text" }` substring filters. Conventional client-supplied attributes include `source` and `repository`; repository values use `host/owner/repository`, with comma-delimited values for composite workspaces. Local TUI startup derives this value from the current Git repository or direct child repositories, `/new` preserves a known value, Telegram derives it from project configuration, attach-created sessions leave it absent, and SDK/raw clients include it only when their caller provides it. If local history initialization or projection fails, Tau keeps the session running, persists one warning notice in the session timeline, and makes history unavailable for that process.
|
|
185
194
|
|
|
186
195
|
A bundled single-owner Cloudflare service can combine histories from several Tau hosts and generate searchable session titles and summaries with Cloudflare AI using GPT-5.6 Luna at medium reasoning effort. Digest generation normally sends a compact role-delimited projection of the full transcript, omitting entry metadata and middle-truncating each tool result to roughly 512 estimated tokens. The final standalone digest is a high-recall semantic representation of the full user-agent session, including software development and other collaborative work, for future search and recognition rather than an outcome summary or conversation replay. It covers user intents, subjects, terminology, entities, investigated approaches, decisions, corrections, findings, and unresolved threads while grouping related material instead of narrating turns. The previous digest is supplied only as a continuity reference for stable titles, terminology, organization, and detail, while the current transcript remains the sole factual source; documented context-overflow errors trigger sequential recursive halving through at most three levels before final synthesis. A per-minute cron claims one global expiring D1 lease and processes up to three stale sessions that have been idle for ten minutes, with every model call running sequentially, so imports and ordinary transcript replication cannot create inference bursts. Sessions without a digest become eligible after that ten-minute idle period; existing digests become eligible after eight new transcript entries or a twelve-hour staleness deadline. Fair least-recently-attempted ordering and capped exponential failure backoff keep pathological sessions from blocking the queue. Per-session attempt, success, retry, failure-count, and bounded error fields are stored in D1, and failures are written to explicitly enabled structured Worker logs; there is no HTTP status or administration endpoint. `tau history setup` applies sequential Wrangler D1 migrations before every Worker deployment. It requires the **Workers Paid** plan so indefinite retention, FTS queries, replication batches, and digest processing use the paid D1/Worker limits rather than the free plan's 500 MB per-database, 50-query, and 10 ms CPU ceilings.
|
|
187
196
|
|
|
@@ -346,10 +355,9 @@ available palette tokens (theme keys):
|
|
|
346
355
|
|
|
347
356
|
- core: `brandAccent`, `textMuted`, `textDim`, `linkText`, `thinkingText`, `codeInlineText`, `codeBlockText`
|
|
348
357
|
- editor: `editorBorder`, `editorSubagentBorder`, `editorBorderBash`, `editorBorderRecording`, `editorPlaceholder`, `autocompleteSelectedSurface`, `autocompleteSelectedText`
|
|
349
|
-
-
|
|
358
|
+
- feedback: `feedback`, `feedbackError`
|
|
350
359
|
- action: `actionRunning`, `actionSuccess`, `actionError`, `actionOutput`
|
|
351
360
|
- diff: `diffAdd`, `diffRemove`
|
|
352
|
-
- toasts: `toastSuccess`, `toastWarn`, `toastError`
|
|
353
361
|
- user: `userSurface`, `userText`, `userReviewSurface`, `userReviewText`, `userReviewTextMuted`, `userReviewTextDim`
|
|
354
362
|
|
|
355
363
|
example theme file (`.tau/themes/solarized.json`):
|
|
@@ -816,7 +824,7 @@ tau connects your terminal to large language models, giving them tools to intera
|
|
|
816
824
|
|
|
817
825
|
the model sees your messages, any file contents you've shared, and the results of tool calls. it doesn't have ambient access to your filesystem; it only sees what you show it or what it explicitly requests through tools.
|
|
818
826
|
|
|
819
|
-
tool calls are displayed as soon as the model identifies the tool, before its arguments finish streaming. every built-in and client-provided tool uses the same `preparing` → `queued` → `running` → terminal lifecycle and one compact card grammar; tools with clear action wording present those states naturally, such as `writing` and `wrote`, while code-mode tools pair generic lifecycle actions with an explicit `web`, `history`, or `nook` operation label. multiline subjects show at most eight lines (four from the start, an omission marker, and three from the end); bash, code-mode, and file-path subjects wrap at character boundaries while other subjects wrap at word boundaries. terminal output, write content, and edit diff details also wrap at character boundaries; natural-language details wrap at word boundaries. details default to at most seven lines (three from each end around an omission marker). write previews instead show up to sixteen detail lines using fifteen lines from the start plus an omission marker, spawn-agent and follow-up prompts plus each completed wait response show up to seventeen lines using eight lines from each end around an omission marker, list-agent previews preserve the complete formatted listing, interrupt-agent details preserve all model-facing result lines, create-goal and non-completing update-goal details preserve only the objective lines, and edit previews preserve the complete line diff. subjects and details allow at most 512 characters per line. metadata enriches the card without replacing that lifecycle. saved sessions with an older tool-presentation format remain openable: historical tools use a generic card built from their name, status, and up to seven stored textual result lines, without displaying stored tool arguments.
|
|
827
|
+
tool calls are displayed as soon as the model identifies the tool, before its arguments finish streaming. every built-in and client-provided tool uses the same `preparing` → `queued` → `running` → terminal lifecycle and one compact card grammar with static single-column markers (`◌` preparing, `○` queued, `»` running); tools with clear action wording present those states naturally, such as `writing` and `wrote`, while code-mode tools pair generic lifecycle actions with an explicit `web`, `history`, or `nook` operation label. multiline subjects show at most eight lines (four from the start, an omission marker, and three from the end); bash, code-mode, and file-path subjects wrap at character boundaries while other subjects wrap at word boundaries. terminal output, write content, and edit diff details also wrap at character boundaries; natural-language details wrap at word boundaries. details default to at most seven lines (three from each end around an omission marker). direct `!` and `!!` command output instead shows up to thirty-three lines using sixteen lines from each end around an omission marker. write previews instead show up to sixteen detail lines using fifteen lines from the start plus an omission marker, spawn-agent and follow-up prompts plus each completed wait response show up to seventeen lines using eight lines from each end around an omission marker, list-agent previews preserve the complete formatted listing, interrupt-agent details preserve all model-facing result lines, create-goal and non-completing update-goal details preserve only the objective lines, and edit previews preserve the complete line diff. subjects and details allow at most 512 characters per line. metadata enriches the card without replacing that lifecycle. saved sessions with an older tool-presentation format remain openable: historical tools use a generic card built from their name, status, and up to seven stored textual result lines, without displaying stored tool arguments.
|
|
820
828
|
|
|
821
829
|
## tool output truncation
|
|
822
830
|
|
|
@@ -26,7 +26,7 @@ export function createAgentSpec(options) {
|
|
|
26
26
|
maxModelSubturns: DEFAULT_MAX_MODEL_SUBTURNS,
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
function
|
|
29
|
+
function getModelContextKey(spec) {
|
|
30
30
|
return createHash("sha256")
|
|
31
31
|
.update(JSON.stringify({
|
|
32
32
|
systemPrompt: spec.systemPrompt,
|
|
@@ -115,7 +115,7 @@ export function recoverAgentState(state, timestamp) {
|
|
|
115
115
|
agentId: state.agentId,
|
|
116
116
|
revision: state.revision + historyEntries.length - sourceEntries.length,
|
|
117
117
|
historyEntries,
|
|
118
|
-
|
|
118
|
+
modelContextKey: state.modelContextKey,
|
|
119
119
|
...(state.usageCheckpoint ? { usageCheckpoint: { ...state.usageCheckpoint } } : {}),
|
|
120
120
|
},
|
|
121
121
|
recoveredToolResults,
|
|
@@ -129,7 +129,7 @@ export class AgentRuntime {
|
|
|
129
129
|
getCompactionContinuationSystemMessages;
|
|
130
130
|
historyEntries;
|
|
131
131
|
revision;
|
|
132
|
-
|
|
132
|
+
modelContextKey;
|
|
133
133
|
usageCheckpoint;
|
|
134
134
|
activeAbortController;
|
|
135
135
|
submitPending = false;
|
|
@@ -143,15 +143,15 @@ export class AgentRuntime {
|
|
|
143
143
|
this.clock = options.clock;
|
|
144
144
|
this.archiveAutoCompaction = options.archiveAutoCompaction;
|
|
145
145
|
this.getCompactionContinuationSystemMessages = options.getCompactionContinuationSystemMessages;
|
|
146
|
-
const
|
|
146
|
+
const modelContextKey = getModelContextKey(options.spec);
|
|
147
147
|
if (options.state) {
|
|
148
148
|
const recovered = recoverAgentState(options.state, this.clock.now()).state;
|
|
149
149
|
this.agentId = recovered.agentId;
|
|
150
150
|
this.revision = recovered.revision;
|
|
151
151
|
this.historyEntries = recovered.historyEntries;
|
|
152
|
-
this.
|
|
152
|
+
this.modelContextKey = modelContextKey;
|
|
153
153
|
this.usageCheckpoint =
|
|
154
|
-
recovered.
|
|
154
|
+
recovered.modelContextKey === modelContextKey && recovered.usageCheckpoint
|
|
155
155
|
? { ...recovered.usageCheckpoint }
|
|
156
156
|
: undefined;
|
|
157
157
|
}
|
|
@@ -159,7 +159,7 @@ export class AgentRuntime {
|
|
|
159
159
|
this.agentId = randomUUID();
|
|
160
160
|
this.revision = 0;
|
|
161
161
|
this.historyEntries = [];
|
|
162
|
-
this.
|
|
162
|
+
this.modelContextKey = modelContextKey;
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
get status() {
|
|
@@ -176,15 +176,15 @@ export class AgentRuntime {
|
|
|
176
176
|
agentId: this.agentId,
|
|
177
177
|
revision: this.revision,
|
|
178
178
|
historyEntries: structuredClone(this.historyEntries),
|
|
179
|
-
|
|
179
|
+
modelContextKey: this.modelContextKey,
|
|
180
180
|
...(this.usageCheckpoint ? { usageCheckpoint: { ...this.usageCheckpoint } } : {}),
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
183
|
updateSpec(spec) {
|
|
184
184
|
this.assertActive();
|
|
185
185
|
this.currentSpec = spec;
|
|
186
|
-
this.
|
|
187
|
-
if (this.usageCheckpoint?.
|
|
186
|
+
this.modelContextKey = getModelContextKey(spec);
|
|
187
|
+
if (this.usageCheckpoint?.modelContextKey !== this.modelContextKey) {
|
|
188
188
|
this.usageCheckpoint = undefined;
|
|
189
189
|
}
|
|
190
190
|
}
|
|
@@ -208,7 +208,7 @@ export class AgentRuntime {
|
|
|
208
208
|
this.revision = recovery.state.revision;
|
|
209
209
|
this.historyEntries = recovery.state.historyEntries;
|
|
210
210
|
this.usageCheckpoint =
|
|
211
|
-
recovery.state.
|
|
211
|
+
recovery.state.modelContextKey === this.modelContextKey && recovery.state.usageCheckpoint
|
|
212
212
|
? { ...recovery.state.usageCheckpoint }
|
|
213
213
|
: undefined;
|
|
214
214
|
return recovery;
|
|
@@ -497,6 +497,11 @@ export class AgentRuntime {
|
|
|
497
497
|
turnId: turnSpec.turnId,
|
|
498
498
|
historyEntryId: turnSpec.historyEntryId,
|
|
499
499
|
outcome,
|
|
500
|
+
...(result.limitReached
|
|
501
|
+
? { failure: result.limitReached }
|
|
502
|
+
: result.blocked
|
|
503
|
+
? { failure: result.blocked }
|
|
504
|
+
: {}),
|
|
500
505
|
});
|
|
501
506
|
for (const submission of associatedSteering.splice(0)) {
|
|
502
507
|
submission.resolveResult({
|
|
@@ -741,7 +746,7 @@ export class AgentRuntime {
|
|
|
741
746
|
return {
|
|
742
747
|
turnId: `turn-${randomUUID()}`,
|
|
743
748
|
historyEntryId: this.getCurrentTurnUserHistoryEntryId(),
|
|
744
|
-
|
|
749
|
+
modelContextKey: getModelContextKey(this.currentSpec),
|
|
745
750
|
model: this.currentSpec.model,
|
|
746
751
|
...(this.currentSpec.modelNotice ? { modelNotice: this.currentSpec.modelNotice } : {}),
|
|
747
752
|
attribution: { ...this.currentSpec.attribution },
|
|
@@ -797,15 +802,8 @@ export class AgentRuntime {
|
|
|
797
802
|
}
|
|
798
803
|
const limitReached = needsAnotherSubturn && subturns >= turnSettings.maxModelSubturns && !signal.aborted;
|
|
799
804
|
const limitMessage = limitReached
|
|
800
|
-
? `stopped after ${turnSettings.maxModelSubturns} model
|
|
805
|
+
? `stopped after ${turnSettings.maxModelSubturns} model attempt${turnSettings.maxModelSubturns === 1 ? "" : "s"} without producing a final response`
|
|
801
806
|
: undefined;
|
|
802
|
-
if (limitMessage) {
|
|
803
|
-
yield {
|
|
804
|
-
type: "notice",
|
|
805
|
-
severity: "error",
|
|
806
|
-
text: limitMessage,
|
|
807
|
-
};
|
|
808
|
-
}
|
|
809
807
|
return {
|
|
810
808
|
aborted: signal.aborted,
|
|
811
809
|
...(limitMessage
|
|
@@ -956,15 +954,15 @@ export class AgentRuntime {
|
|
|
956
954
|
if (thresholdTokens <= 0) {
|
|
957
955
|
return false;
|
|
958
956
|
}
|
|
959
|
-
const usageTokens = this.getFreshContextUsageEstimateTokens(turnSettings.
|
|
957
|
+
const usageTokens = this.getFreshContextUsageEstimateTokens(turnSettings.modelContextKey);
|
|
960
958
|
return usageTokens !== undefined && usageTokens > thresholdTokens;
|
|
961
959
|
}
|
|
962
960
|
getAutoCompactionThresholdTokens(settings, turnSettings) {
|
|
963
961
|
return (turnSettings.model.model.contextWindow ?? 0) - settings.reserveTokens;
|
|
964
962
|
}
|
|
965
|
-
getFreshContextUsageEstimateTokens(
|
|
963
|
+
getFreshContextUsageEstimateTokens(modelContextKey) {
|
|
966
964
|
const checkpoint = this.usageCheckpoint;
|
|
967
|
-
if (!checkpoint || checkpoint.
|
|
965
|
+
if (!checkpoint || checkpoint.modelContextKey !== modelContextKey) {
|
|
968
966
|
return undefined;
|
|
969
967
|
}
|
|
970
968
|
const checkpointIndex = this.historyEntries.findIndex((entry) => entry.id === checkpoint.historyEntryId);
|
|
@@ -1033,7 +1031,12 @@ export class AgentRuntime {
|
|
|
1033
1031
|
onRetry: () => consumeSubturnRetry(retryBudget),
|
|
1034
1032
|
maxRetries: retryBudget.remaining,
|
|
1035
1033
|
delayMs: turnSettings.retryPolicy.delayMs,
|
|
1036
|
-
|
|
1034
|
+
feedback: {
|
|
1035
|
+
tone: "default",
|
|
1036
|
+
title: "retrying after transient error",
|
|
1037
|
+
presentation: "footer",
|
|
1038
|
+
durationMs: 3_000,
|
|
1039
|
+
},
|
|
1037
1040
|
},
|
|
1038
1041
|
});
|
|
1039
1042
|
const toolRunner = new SequentialToolCallRunner({
|
|
@@ -1105,13 +1108,6 @@ export class AgentRuntime {
|
|
|
1105
1108
|
if (!signal.aborted) {
|
|
1106
1109
|
await this.noteProviderError(turnSettings.model, errorMessage);
|
|
1107
1110
|
}
|
|
1108
|
-
if (toolRecoveryMode === "continue") {
|
|
1109
|
-
yield {
|
|
1110
|
-
type: "notice",
|
|
1111
|
-
severity: "error",
|
|
1112
|
-
text: `model stream failed after tool execution: ${errorMessage}`,
|
|
1113
|
-
};
|
|
1114
|
-
}
|
|
1115
1111
|
continue;
|
|
1116
1112
|
}
|
|
1117
1113
|
if (next.source === "tool_error") {
|
|
@@ -1148,12 +1144,12 @@ export class AgentRuntime {
|
|
|
1148
1144
|
if (finalMessage.stopReason !== "error" &&
|
|
1149
1145
|
finalMessage.stopReason !== "aborted" &&
|
|
1150
1146
|
usage &&
|
|
1151
|
-
turnSettings.
|
|
1147
|
+
turnSettings.modelContextKey === this.modelContextKey &&
|
|
1152
1148
|
finalMessage.provider === turnSettings.model.model.provider &&
|
|
1153
1149
|
finalMessage.model === turnSettings.model.model.id) {
|
|
1154
1150
|
this.usageCheckpoint = {
|
|
1155
1151
|
historyEntryId,
|
|
1156
|
-
|
|
1152
|
+
modelContextKey: turnSettings.modelContextKey,
|
|
1157
1153
|
tokens: (usage.input ?? 0) +
|
|
1158
1154
|
(usage.cacheRead ?? 0) +
|
|
1159
1155
|
(usage.cacheWrite ?? 0) +
|
|
@@ -1172,19 +1168,11 @@ export class AgentRuntime {
|
|
|
1172
1168
|
yield {
|
|
1173
1169
|
type: "usage_checkpoint",
|
|
1174
1170
|
historyEntryId,
|
|
1175
|
-
|
|
1171
|
+
modelContextKey: this.usageCheckpoint.modelContextKey,
|
|
1176
1172
|
tokens: this.usageCheckpoint.tokens,
|
|
1177
1173
|
revision: this.revision,
|
|
1178
1174
|
};
|
|
1179
1175
|
}
|
|
1180
|
-
if (toolRecoveryMode === "continue") {
|
|
1181
|
-
const notice = {
|
|
1182
|
-
type: "notice",
|
|
1183
|
-
severity: "error",
|
|
1184
|
-
text: `model stream failed after tool execution: ${finalMessage.errorMessage ?? "unknown provider error"}`,
|
|
1185
|
-
};
|
|
1186
|
-
yield notice;
|
|
1187
|
-
}
|
|
1188
1176
|
if (!toolRecoveryMode) {
|
|
1189
1177
|
for (const toolResult of pendingToolResults.splice(0)) {
|
|
1190
1178
|
const toolHistoryEntryId = this.addMessage(toolResult);
|
|
@@ -1279,8 +1267,8 @@ export class AgentRuntime {
|
|
|
1279
1267
|
id: `invalid-tool-call-${randomUUID()}`,
|
|
1280
1268
|
};
|
|
1281
1269
|
const message = invalidId
|
|
1282
|
-
? "
|
|
1283
|
-
: `
|
|
1270
|
+
? "model returned a tool call with an empty ID"
|
|
1271
|
+
: `model returned duplicate tool call ID '${admittedToolCall.id}'`;
|
|
1284
1272
|
admittedToolCalls.push(toolCall);
|
|
1285
1273
|
const admission = toolRunner.prepareRejected(toolCall, message);
|
|
1286
1274
|
admissions.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent_runtime.js","sourceRoot":"","sources":["../../../src/core/agent/agent_runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent_runtime.js","sourceRoot":"","sources":["../../../src/core/agent/agent_runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,10 @@ export class AuthManager {
|
|
|
24
24
|
const accounts = await adapter.listAccountInfo(this.authStorage);
|
|
25
25
|
if (accounts.length > 0) {
|
|
26
26
|
const forcedAccountId = adapter.getForcedAccountId?.(this.authStorage);
|
|
27
|
-
const
|
|
27
|
+
const candidateAccountId = forcedAccountId ?? adapter.selectAccountFromList?.(accounts);
|
|
28
|
+
const selectedAccountId = accounts.some((account) => account.accountId === candidateAccountId && !account.disabled)
|
|
29
|
+
? candidateAccountId
|
|
30
|
+
: undefined;
|
|
28
31
|
results.push({
|
|
29
32
|
providerId: adapter.id,
|
|
30
33
|
providerLabel: adapter.label,
|
|
@@ -36,24 +39,37 @@ export class AuthManager {
|
|
|
36
39
|
return results;
|
|
37
40
|
}
|
|
38
41
|
addOAuthAccount(providerId, credentials) {
|
|
39
|
-
const adapter = this.
|
|
40
|
-
if (!adapter) {
|
|
41
|
-
throw new Error(`unsupported auth provider "${providerId}"`);
|
|
42
|
-
}
|
|
42
|
+
const adapter = this.getAdapter(providerId);
|
|
43
43
|
this.authStorage.reload();
|
|
44
44
|
adapter.validateOAuthCredentials?.(credentials);
|
|
45
45
|
adapter.addOAuthAccount(this.authStorage, credentials);
|
|
46
46
|
}
|
|
47
47
|
removeAccount(providerId, accountId) {
|
|
48
|
-
const adapter = this.
|
|
49
|
-
if (!adapter) {
|
|
50
|
-
throw new Error(`unsupported auth provider "${providerId}"`);
|
|
51
|
-
}
|
|
48
|
+
const adapter = this.getAdapter(providerId);
|
|
52
49
|
this.authStorage.reload();
|
|
53
50
|
const removed = adapter.removeAccount(this.authStorage, accountId);
|
|
54
51
|
if (!removed) {
|
|
55
52
|
throw new Error(`account "${accountId}" not found for provider "${providerId}"`);
|
|
56
53
|
}
|
|
57
54
|
}
|
|
55
|
+
setAccountEnabled(providerId, accountId, enabled) {
|
|
56
|
+
const adapter = this.getAdapter(providerId);
|
|
57
|
+
this.authStorage.reload();
|
|
58
|
+
const invalidReason = this.authStorage.getInvalidReason();
|
|
59
|
+
if (invalidReason) {
|
|
60
|
+
throw new Error(invalidReason);
|
|
61
|
+
}
|
|
62
|
+
const updated = adapter.setAccountEnabled(this.authStorage, accountId, enabled);
|
|
63
|
+
if (!updated) {
|
|
64
|
+
throw new Error(`account "${accountId}" not found for provider "${providerId}"`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
getAdapter(providerId) {
|
|
68
|
+
const adapter = this.adapters.get(providerId);
|
|
69
|
+
if (!adapter) {
|
|
70
|
+
throw new Error(`unsupported auth provider "${providerId}"`);
|
|
71
|
+
}
|
|
72
|
+
return adapter;
|
|
73
|
+
}
|
|
58
74
|
}
|
|
59
75
|
//# sourceMappingURL=auth_manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth_manager.js","sourceRoot":"","sources":["../../../src/core/auth/auth_manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAUjE,MAAM,OAAO,WAAW;IAIH,WAAW;IAHb,QAAQ,CAAmC;IAE5D,YACmB,WAAwB,EACzC,QAAgC;2BADf,WAAW;QAG5B,MAAM,eAAe,GAAG,QAAQ,IAAI,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACnD,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAC1D,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvE,MAAM,
|
|
1
|
+
{"version":3,"file":"auth_manager.js","sourceRoot":"","sources":["../../../src/core/auth/auth_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ const authStorageDataSchema = z
|
|
|
14
14
|
.object({
|
|
15
15
|
type: z.literal("oauth"),
|
|
16
16
|
accountId: nonEmptyStringSchema,
|
|
17
|
+
disabled: z.boolean().default(false),
|
|
17
18
|
providerAccountId: nonEmptyStringSchema.optional(),
|
|
18
19
|
access: nonEmptyStringSchema,
|
|
19
20
|
refresh: nonEmptyStringSchema,
|