@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.
Files changed (104) hide show
  1. package/README.md +14 -6
  2. package/dist/core/agent/agent_runtime.js +32 -44
  3. package/dist/core/agent/agent_runtime.js.map +1 -1
  4. package/dist/core/auth/auth_manager.js +25 -9
  5. package/dist/core/auth/auth_manager.js.map +1 -1
  6. package/dist/core/auth/auth_storage.js +1 -0
  7. package/dist/core/auth/auth_storage.js.map +1 -1
  8. package/dist/core/auth/cli.js +49 -35
  9. package/dist/core/auth/cli.js.map +1 -1
  10. package/dist/core/auth/credential_store.js +54 -22
  11. package/dist/core/auth/credential_store.js.map +1 -1
  12. package/dist/core/auth/index.js +1 -1
  13. package/dist/core/auth/index.js.map +1 -1
  14. package/dist/core/auth/providers/openai_codex.js +71 -23
  15. package/dist/core/auth/providers/openai_codex.js.map +1 -1
  16. package/dist/core/cli.js +4 -2
  17. package/dist/core/cli.js.map +1 -1
  18. package/dist/core/config/builtin_themes.js +62 -155
  19. package/dist/core/config/builtin_themes.js.map +1 -1
  20. package/dist/core/index.js +1 -1
  21. package/dist/core/index.js.map +1 -1
  22. package/dist/core/models/tau_model_overrides.js +1 -66
  23. package/dist/core/models/tau_model_overrides.js.map +1 -1
  24. package/dist/core/session/direct_bash.js +1 -0
  25. package/dist/core/session/direct_bash.js.map +1 -1
  26. package/dist/core/session/runner.js +21 -14
  27. package/dist/core/session/runner.js.map +1 -1
  28. package/dist/core/static/code_mode/capabilities.mjs +25 -0
  29. package/dist/core/static/code_mode/history/documentation.md +2 -0
  30. package/dist/core/static/code_mode/history/sandbox_runner.mjs +4 -1
  31. package/dist/core/static/code_mode/nook/documentation.md +2 -0
  32. package/dist/core/static/code_mode/nook/sandbox_runner.mjs +4 -1
  33. package/dist/core/static/code_mode/web/documentation.md +2 -0
  34. package/dist/core/static/code_mode/web/sandbox_runner.mjs +4 -1
  35. package/dist/core/subagents/agent_supervisor.js +3 -3
  36. package/dist/core/subagents/agent_supervisor.js.map +1 -1
  37. package/dist/core/telegram/adapter.js +0 -23
  38. package/dist/core/telegram/adapter.js.map +1 -1
  39. package/dist/core/telegram/session_manager.js +34 -7
  40. package/dist/core/telegram/session_manager.js.map +1 -1
  41. package/dist/core/tools/bash.js +10 -2
  42. package/dist/core/tools/bash.js.map +1 -1
  43. package/dist/core/tools/code_mode.js +1 -0
  44. package/dist/core/tools/code_mode.js.map +1 -1
  45. package/dist/core/tools/presentation.js +1 -1
  46. package/dist/core/utils/auto_retry.js +1 -1
  47. package/dist/core/utils/auto_retry.js.map +1 -1
  48. package/dist/core/version.js +1 -1
  49. package/dist/host/local_session_host.js +319 -198
  50. package/dist/host/local_session_host.js.map +1 -1
  51. package/dist/host/session_protocol_handler.js +1 -1
  52. package/dist/host/session_protocol_handler.js.map +1 -1
  53. package/dist/main.js +16 -2
  54. package/dist/main.js.map +1 -1
  55. package/dist/protocol/index.d.ts +2 -2
  56. package/dist/protocol/index.js +1 -1
  57. package/dist/protocol/index.js.map +1 -1
  58. package/dist/protocol/session_protocol.d.ts +115 -40
  59. package/dist/protocol/session_protocol.js +377 -98
  60. package/dist/protocol/session_protocol.js.map +1 -1
  61. package/dist/sdk/index.d.ts +1 -2
  62. package/dist/sdk/index.js +0 -1
  63. package/dist/sdk/index.js.map +1 -1
  64. package/dist/store/session_snapshot_migrations.js +311 -4
  65. package/dist/store/session_snapshot_migrations.js.map +1 -1
  66. package/dist/tui/chat_controller/assistant_clipboard.js +12 -8
  67. package/dist/tui/chat_controller/assistant_clipboard.js.map +1 -1
  68. package/dist/tui/chat_controller/diff_review_service.js +13 -9
  69. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  70. package/dist/tui/chat_controller/history_message_model.js +3 -3
  71. package/dist/tui/chat_controller/history_message_model.js.map +1 -1
  72. package/dist/tui/chat_controller/status_format.js +18 -0
  73. package/dist/tui/chat_controller/status_format.js.map +1 -1
  74. package/dist/tui/chat_view.js +39 -38
  75. package/dist/tui/chat_view.js.map +1 -1
  76. package/dist/tui/session_chat_app.js +1 -3
  77. package/dist/tui/session_chat_app.js.map +1 -1
  78. package/dist/tui/session_chat_controller.js +375 -241
  79. package/dist/tui/session_chat_controller.js.map +1 -1
  80. package/dist/tui/speech_playback.js +4 -4
  81. package/dist/tui/speech_playback.js.map +1 -1
  82. package/dist/tui/ui/assistant_message.js +1 -15
  83. package/dist/tui/ui/assistant_message.js.map +1 -1
  84. package/dist/tui/ui/chat_message_model.js +26 -7
  85. package/dist/tui/ui/chat_message_model.js.map +1 -1
  86. package/dist/tui/ui/custom_editor.js +1 -1
  87. package/dist/tui/ui/custom_editor.js.map +1 -1
  88. package/dist/tui/ui/footer.js +161 -47
  89. package/dist/tui/ui/footer.js.map +1 -1
  90. package/dist/tui/ui/theme/palette.js +10 -16
  91. package/dist/tui/ui/theme/palette.js.map +1 -1
  92. package/dist/tui/ui/theme/theme.js.map +1 -1
  93. package/dist/tui/ui/tool_card.js +12 -9
  94. package/dist/tui/ui/tool_card.js.map +1 -1
  95. package/dist/tui/ui/transcript_notice.js +44 -0
  96. package/dist/tui/ui/transcript_notice.js.map +1 -0
  97. package/dist/tui/ui/transcript_text.js +14 -0
  98. package/dist/tui/ui/transcript_text.js.map +1 -0
  99. package/package.json +10 -12
  100. package/dist/sdk/turn_outcome.d.ts +0 -2
  101. package/dist/sdk/turn_outcome.js +0 -4
  102. package/dist/sdk/turn_outcome.js.map +0 -1
  103. package/dist/tui/ui/system_message.js +0 -22
  104. 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 for clients (including Telegram), and makes history unavailable for that process.
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
- - status: `statusWarn`, `statusError`
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 getContextEpoch(spec) {
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
- contextEpoch: state.contextEpoch,
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
- contextEpoch;
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 contextEpoch = getContextEpoch(options.spec);
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.contextEpoch = contextEpoch;
152
+ this.modelContextKey = modelContextKey;
153
153
  this.usageCheckpoint =
154
- recovered.contextEpoch === contextEpoch && recovered.usageCheckpoint
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.contextEpoch = contextEpoch;
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
- contextEpoch: this.contextEpoch,
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.contextEpoch = getContextEpoch(spec);
187
- if (this.usageCheckpoint?.contextEpoch !== this.contextEpoch) {
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.contextEpoch === this.contextEpoch && recovery.state.usageCheckpoint
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
- contextEpoch: getContextEpoch(this.currentSpec),
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 subturn${turnSettings.maxModelSubturns === 1 ? "" : "s"} without producing a final response.`
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.contextEpoch);
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(contextEpoch) {
963
+ getFreshContextUsageEstimateTokens(modelContextKey) {
966
964
  const checkpoint = this.usageCheckpoint;
967
- if (!checkpoint || checkpoint.contextEpoch !== contextEpoch) {
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
- notice: { text: "auto-retrying after transient error", severity: "warn" },
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.contextEpoch === this.contextEpoch &&
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
- contextEpoch: turnSettings.contextEpoch,
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
- contextEpoch: this.usageCheckpoint.contextEpoch,
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
- ? "Model returned a tool call with an empty ID."
1283
- : `Model returned duplicate tool call ID '${admittedToolCall.id}'.`;
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 selectedAccountId = forcedAccountId ?? adapter.selectAccountFromList?.(accounts);
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.adapters.get(providerId);
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.adapters.get(providerId);
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":"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"}
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,