@abdoknbgit/tau 0.92.15 → 0.92.16

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 CHANGED
@@ -2,17 +2,21 @@
2
2
  <img src="Logo.png" alt="Tau logo" width="120">
3
3
  </p>
4
4
 
5
- # Tau The Best Free Coding Agent
5
+ # Tau - The Best Free Coding Agent
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/%40abdoknbgit%2Ftau.svg)](https://www.npmjs.com/package/@abdoknbgit/tau)
8
8
  [![npm downloads](https://img.shields.io/npm/dm/%40abdoknbgit%2Ftau.svg)](https://www.npmjs.com/package/@abdoknbgit/tau)
9
9
  [![License](https://img.shields.io/npm/l/%40abdoknbgit%2Ftau.svg)](https://www.npmjs.com/package/@abdoknbgit/tau)
10
10
 
11
+ <p align="center">
12
+ 🌐 <strong><a href="https://tau-site-ten.vercel.app/">Visit the Tau website</a></strong> for more information
13
+ </p>
14
+
11
15
  ---
12
16
 
13
17
  ## What is Tau?
14
18
 
15
- Tau has become the best free coding agent a single tool that fuses the **Claude Code** and **OpenCode** ecosystems into one mixed agentic environment. You get the strongest parts of both agents, plus new features and optimizations layered on top.
19
+ Tau has become the best free coding agent: a single tool that fuses the **Claude Code** and **OpenCode** ecosystems into one mixed agentic environment. You get the strongest parts of both agents, plus new features and optimizations layered on top.
16
20
 
17
21
  Native adapters for **22 providers**. Not a proxy, not a wrapper around someone else's wrapper. When you use OpenAI, Tau speaks OpenAI's API directly. Same for GLM, DeepSeek, Mistral, OpenRouter, AgentRouter, Vercel AI Gateway, Requesty, Command Code, MiniMax, OpenCode Zen, and the rest. Full list with per-provider notes in [PROVIDERS.md](PROVIDERS.md).
18
22
 
@@ -26,19 +30,19 @@ That's it: plug and play with one command and one login flow. No shell configura
26
30
 
27
31
  The price of AI keeps climbing. The leading agents either lock you into a single subscription, gate the good features behind enterprise tiers, or quietly burn through your wallet on per-token billing the moment you do real work. Hit a rate limit on one provider and your day stops.
28
32
 
29
- Tau gives you a way out. **You can work with any provider without that provider's official tool installed on your machine.** Not Codex CLI, not Antigravity, not Cline, not KiloCode, not Kiro, not Copilot none of them downloaded, none of them configured, none of them present. Tau brings the runtime. You bring whatever API key or auth flow you already have.
33
+ Tau gives you a way out. **You can work with any provider without that provider's official tool installed on your machine.** Not Codex CLI, not Antigravity, not Cline, not KiloCode, not Kiro, not Copilot. None of them downloaded, none of them configured, none of them present. Tau brings the runtime. You bring whatever API key or auth flow you already have.
30
34
 
31
- ---
35
+ ---
32
36
 
33
37
  ## Install
34
38
 
35
- ```bash
36
- npx -y @abdoknbgit/tau-installer@latest
37
- ```
38
-
39
- **Requirements:** Node.js >= 20.18.1, Git, Bash, `gh` for GitHub automation, and Go 1.25.8+ to build the optional native Tau helpers from source.
40
-
41
- ---
39
+ ```bash
40
+ npx -y @abdoknbgit/tau-installer@latest
41
+ ```
42
+
43
+ **Requirements:** Node.js 20.19+ or 22.12+ (require(esm) support), Git, Bash, `gh` for GitHub automation, and Go 1.25.8+ to build the optional native Tau helpers from source.
44
+
45
+ ---
42
46
 
43
47
  ## Launch
44
48
 
@@ -54,25 +58,25 @@ tau --dangerously-skip-permissions
54
58
 
55
59
  ---
56
60
 
57
- ## Update
58
-
59
- ```bash
60
- tau update
61
- ```
62
-
63
- <p align="center">
64
- <img src="tau_docs.PNG" alt="Tau commands overview" width="720">
65
- </p>
66
-
67
- ## Commands
68
-
69
- **`/models`** Browse available models and switch the active model.
70
-
71
- **`/tools`** Toggle the optional tools available in normal mode.
72
-
73
- **`/mode cheap`** Use core tools only. **`/mode normal`** Use your configured tools.
74
-
75
- See the full command list and usage notes in **[COMMANDS.md](COMMANDS.md)**.
61
+ ## Update
62
+
63
+ ```bash
64
+ tau update
65
+ ```
66
+
67
+ <p align="center">
68
+ <img src="tau_docs.PNG" alt="Tau commands overview" width="720">
69
+ </p>
70
+
71
+ ## Commands
72
+
73
+ **`/models`** - Browse available models and switch the active model.
74
+
75
+ **`/tools`** - Toggle the optional tools available in normal mode.
76
+
77
+ **`/mode cheap`** - Use core tools only. **`/mode normal`** - Use your configured tools.
78
+
79
+ See the full command list and usage notes in **[COMMANDS.md](COMMANDS.md)**.
76
80
 
77
81
  ---
78
82
 
@@ -85,21 +89,21 @@ See the full command list and usage notes in **[COMMANDS.md](COMMANDS.md)**.
85
89
  ## Features
86
90
 
87
91
  **Multi-provider, natively**
88
- 22 providers with native adapters. Not a routing layer, not a translation proxy each provider speaks its own API through its own adapter. Full streaming, rate-limit handling, and automatic tool-schema sanitization per provider.
92
+ 22 providers with native adapters. Not a routing layer, not a translation proxy. Each provider speaks its own API through its own adapter. Full streaming, rate-limit handling, and automatic tool-schema sanitization per provider.
89
93
 
90
94
  **The full agent loop**
91
- File editing, bash execution, glob, grep, web search, web fetch, MCP servers, hooks (PreToolUse, PostToolUse, UserPromptSubmit, Stop, Notification), skills (/commit, /review-pr, /simplify), and task management all present, all working across every provider.
95
+ File editing, bash execution, glob, grep, web search, web fetch, MCP servers, hooks (PreToolUse, PostToolUse, UserPromptSubmit, Stop, Notification), skills (/commit, /review-pr, /simplify), and task management: all present, all working across every provider.
92
96
 
93
97
  **LSP native integration**
94
98
  Built-in Language Server Protocol support. The agent gets real diagnostics, definitions, references, and hover information from project LSPs (TypeScript, Python, Bash, YAML, and more) without spawning external editor tooling. Type errors, unused symbols, and cross-file references are first-class signal in the agent loop.
95
99
 
96
100
  **Snapshot with time traveling**
97
- Per-turn working-tree snapshots stored in a shadow git repo separate from your project's `.git`. The agent can `save`, `list`, `diff`, and `restore` instant undo for any change the agent made, large files (>2 MB) auto-excluded so the store stays small, weekly garbage collection. Travel back to any prior state without touching your branches.
101
+ Per-turn working-tree snapshots stored in a shadow git repo separate from your project's `.git`. The agent can `save`, `list`, `diff`, and `restore`: instant undo for any change the agent made, large files (>2 MB) auto-excluded so the store stays small, weekly garbage collection. Travel back to any prior state without touching your branches.
102
+
103
+ **`web_search` tool**
104
+ Firecrawl provides 1k searches/month free for deep searching. Just enter your API key through `/login` -> **Firecrawl Search**.
98
105
 
99
- **`web_search` tool**
100
- Firecrawl provides 1k searches/month free for deep searching. Just enter your API key through `/login` -> **Firecrawl Search**.
101
-
102
- **WhatsApp remote control**
106
+ **WhatsApp remote control**
103
107
  Use `/whatsapp` to link WhatsApp and remotely control Tau from your phone.
104
108
 
105
109
  **GitHub automation and repo management**
@@ -118,7 +122,7 @@ Tree navigation, cloning, branching, and resume commands make long sessions easi
118
122
  Tau separates live usage, session statistics, and final reports, so you can monitor consumption while still producing readable end-of-session summaries.
119
123
 
120
124
  **Self-learning & self-improvement**
121
- Tau gets better the more you use it. After a substantial task or on demand via `/learned` it proposes one critical, general, reusable lesson (a framework gotcha, a whole class of bug to avoid, a hard-won constraint, or your own preference) for you to Approve / Edit / Skip. Approved lessons are saved to memory and carried from this session into future ones and other projects, so the work keeps compounding instead of starting cold. Review, edit, delete, or toggle everything it learns with `/learned`.
125
+ Tau gets better the more you use it. After a substantial task, or on demand via `/learned`, it proposes one critical, general, reusable lesson (a framework gotcha, a whole class of bug to avoid, a hard-won constraint, or your own preference) for you to Approve / Edit / Skip. Approved lessons are saved to memory and carried from this session into future ones and other projects, so the work keeps compounding instead of starting cold. Review, edit, delete, or toggle everything it learns with `/learned`.
122
126
 
123
127
  ---
124
128
 
package/dist/cli.mjs CHANGED
@@ -5,6 +5,22 @@ import { existsSync } from 'node:fs'
5
5
  import { dirname, join } from 'node:path'
6
6
  import { fileURLToPath, pathToFileURL } from 'node:url'
7
7
 
8
+ // The dependency tree needs require(esm) (e.g. e2b's CommonJS build requires
9
+ // the ESM-only chalk 5): Node 20.19+, 22.12+, or 23+. Fail with a clear
10
+ // message instead of a raw ERR_REQUIRE_ESM crash from deep inside a dependency.
11
+ const [nodeMajor, nodeMinor] = process.versions.node.split('.').map(Number)
12
+ const nodeSupportsRequireEsm =
13
+ (nodeMajor === 20 && nodeMinor >= 19) ||
14
+ (nodeMajor === 22 && nodeMinor >= 12) ||
15
+ nodeMajor >= 23
16
+ if (!nodeSupportsRequireEsm) {
17
+ process.stderr.write(
18
+ '[tau] Tau requires Node.js 20.19+ or 22.12+ (require(esm) support); you are running ' +
19
+ process.version + '. Upgrade Node.js, then retry.\n'
20
+ )
21
+ process.exit(1)
22
+ }
23
+
8
24
  const distDir = dirname(fileURLToPath(import.meta.url))
9
25
  const packageRoot = dirname(distDir)
10
26
  // Preserve the canonical package location even when npm's POSIX bin symlink
package/dist/tau.mjs CHANGED
@@ -53709,7 +53709,7 @@ var init_opencode = __esm({
53709
53709
  const sessionId = ctx?.sessionId ?? getProcessSessionId();
53710
53710
  const headers = {
53711
53711
  "User-Agent": `opencode/${OPENCODE_UA_VERSION}`,
53712
- "x-opencode-client": process.env.OPENCODE_CLIENT ?? `opencode-tau/${"0.92.15"}`,
53712
+ "x-opencode-client": process.env.OPENCODE_CLIENT ?? `opencode-tau/${"0.92.16"}`,
53713
53713
  "x-opencode-session": sessionId,
53714
53714
  "x-opencode-request": sessionId
53715
53715
  };
@@ -68259,7 +68259,7 @@ var init_betas = __esm({
68259
68259
 
68260
68260
  // src/utils/userAgent.ts
68261
68261
  function getClaudeCodeUserAgent() {
68262
- return `claude-code/${"0.92.15"}`;
68262
+ return `claude-code/${"0.92.16"}`;
68263
68263
  }
68264
68264
  var init_userAgent = __esm({
68265
68265
  "src/utils/userAgent.ts"() {
@@ -68289,7 +68289,7 @@ function getUserAgent() {
68289
68289
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
68290
68290
  const workload = getWorkload();
68291
68291
  const workloadSuffix = workload ? `, workload/${workload}` : "";
68292
- return `claude-cli/${"0.92.15"} (${"external"}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
68292
+ return `claude-cli/${"0.92.16"} (${"external"}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
68293
68293
  }
68294
68294
  function getMCPUserAgent() {
68295
68295
  const parts = [];
@@ -68303,7 +68303,7 @@ function getMCPUserAgent() {
68303
68303
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
68304
68304
  }
68305
68305
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
68306
- return `claude-code/${"0.92.15"}${suffix}`;
68306
+ return `claude-code/${"0.92.16"}${suffix}`;
68307
68307
  }
68308
68308
  function getWebFetchUserAgent() {
68309
68309
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -87378,8 +87378,8 @@ function isCseShimEnabled() {
87378
87378
  function checkBridgeMinVersion() {
87379
87379
  if (feature("BRIDGE_MODE")) {
87380
87380
  const config2 = getDynamicConfig_CACHED_MAY_BE_STALE("tengu_bridge_min_version", { minVersion: "0.0.0" });
87381
- if (config2.minVersion && lt("0.92.15", config2.minVersion)) {
87382
- return `Your version of Tau (${"0.92.15"}) is too old for Remote Control.
87381
+ if (config2.minVersion && lt("0.92.16", config2.minVersion)) {
87382
+ return `Your version of Tau (${"0.92.16"}) is too old for Remote Control.
87383
87383
  Version ${config2.minVersion} or higher is required. Run \`tau update\` to update.`;
87384
87384
  }
87385
87385
  }
@@ -88427,7 +88427,7 @@ var init_user = __esm({
88427
88427
  deviceId,
88428
88428
  sessionId: getSessionId(),
88429
88429
  email: getEmail(),
88430
- appVersion: "0.92.15",
88430
+ appVersion: "0.92.16",
88431
88431
  platform: getHostPlatformForAnalytics(),
88432
88432
  organizationUuid,
88433
88433
  accountUuid,
@@ -90170,7 +90170,7 @@ var init_metadata = __esm({
90170
90170
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
90171
90171
  WHITESPACE_REGEX = /\s+/;
90172
90172
  getVersionBase = memoize23(() => {
90173
- const match = "0.92.15".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
90173
+ const match = "0.92.16".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
90174
90174
  return match ? match[0] : void 0;
90175
90175
  });
90176
90176
  buildEnvContext = memoize23(async () => {
@@ -90214,9 +90214,9 @@ var init_metadata = __esm({
90214
90214
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
90215
90215
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
90216
90216
  isClaudeAiAuth: isClaudeAISubscriber(),
90217
- version: "0.92.15",
90217
+ version: "0.92.16",
90218
90218
  versionBase: getVersionBase(),
90219
- buildTime: "2026-07-17T10:38:11.374Z",
90219
+ buildTime: "2026-07-17T12:10:46.308Z",
90220
90220
  deploymentEnvironment: env.detectDeploymentEnvironment(),
90221
90221
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
90222
90222
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -90966,7 +90966,7 @@ function initialize1PEventLogging() {
90966
90966
  const platform7 = getPlatform();
90967
90967
  const attributes = {
90968
90968
  [ATTR_SERVICE_NAME]: "claude-code",
90969
- [ATTR_SERVICE_VERSION]: "0.92.15"
90969
+ [ATTR_SERVICE_VERSION]: "0.92.16"
90970
90970
  };
90971
90971
  if (platform7 === "wsl") {
90972
90972
  const wslVersion = getWslVersion();
@@ -90995,7 +90995,7 @@ function initialize1PEventLogging() {
90995
90995
  });
90996
90996
  firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger(
90997
90997
  "com.anthropic.claude_code.events",
90998
- "0.92.15"
90998
+ "0.92.16"
90999
90999
  );
91000
91000
  }
91001
91001
  async function reinitialize1PEventLoggingIfConfigChanged() {
@@ -113037,7 +113037,7 @@ function getAttributionHeader(fingerprint) {
113037
113037
  if (!isAttributionHeaderEnabled()) {
113038
113038
  return "";
113039
113039
  }
113040
- const version2 = `${"0.92.15"}.${fingerprint}`;
113040
+ const version2 = `${"0.92.16"}.${fingerprint}`;
113041
113041
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
113042
113042
  const cch = feature("NATIVE_CLIENT_ATTESTATION") ? " cch=00000;" : "";
113043
113043
  const workload = getWorkload();
@@ -117473,7 +117473,7 @@ function getTelemetryAttributes() {
117473
117473
  attributes["session.id"] = sessionId;
117474
117474
  }
117475
117475
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
117476
- attributes["app.version"] = "0.92.15";
117476
+ attributes["app.version"] = "0.92.16";
117477
117477
  }
117478
117478
  const oauthAccount = getOauthAccountInfo();
117479
117479
  if (oauthAccount) {
@@ -168026,7 +168026,7 @@ function computeFingerprint(messageText, version2) {
168026
168026
  }
168027
168027
  function computeFingerprintFromMessages(messages) {
168028
168028
  const firstMessageText = extractFirstMessageText(messages);
168029
- return computeFingerprint(firstMessageText, "0.92.15");
168029
+ return computeFingerprint(firstMessageText, "0.92.16");
168030
168030
  }
168031
168031
  var FINGERPRINT_SALT;
168032
168032
  var init_fingerprint = __esm({
@@ -168070,7 +168070,7 @@ async function sideQuery(opts) {
168070
168070
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
168071
168071
  }
168072
168072
  const messageText = extractFirstUserMessageText(messages);
168073
- const fingerprint = computeFingerprint(messageText, "0.92.15");
168073
+ const fingerprint = computeFingerprint(messageText, "0.92.16");
168074
168074
  const attributionHeader = getAttributionHeader(fingerprint);
168075
168075
  const systemBlocks = [
168076
168076
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -169593,7 +169593,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
169593
169593
  {
169594
169594
  name: "claude-code",
169595
169595
  title: "Tau",
169596
- version: "0.92.15",
169596
+ version: "0.92.16",
169597
169597
  description: "Anthropic's agentic coding tool",
169598
169598
  websiteUrl: PRODUCT_URL
169599
169599
  },
@@ -170019,7 +170019,7 @@ var init_client4 = __esm({
170019
170019
  {
170020
170020
  name: "claude-code",
170021
170021
  title: "Tau",
170022
- version: "0.92.15",
170022
+ version: "0.92.16",
170023
170023
  description: "Anthropic's agentic coding tool",
170024
170024
  websiteUrl: PRODUCT_URL
170025
170025
  },
@@ -171665,7 +171665,7 @@ function getInstallationEnv() {
171665
171665
  return void 0;
171666
171666
  }
171667
171667
  function getClaudeCodeVersion() {
171668
- return "0.92.15";
171668
+ return "0.92.16";
171669
171669
  }
171670
171670
  async function getInstalledVSCodeExtensionVersion(command10) {
171671
171671
  const { stdout } = await execFileNoThrow(
@@ -186099,7 +186099,7 @@ async function initializeBetaTracing(resource) {
186099
186099
  setLoggerProvider(loggerProvider);
186100
186100
  const eventLogger = logs.getLogger(
186101
186101
  "com.anthropic.claude_code.events",
186102
- "0.92.15"
186102
+ "0.92.16"
186103
186103
  );
186104
186104
  setEventLogger(eventLogger);
186105
186105
  process.on("beforeExit", async () => {
@@ -186142,7 +186142,7 @@ async function initializeTelemetry() {
186142
186142
  const platform7 = getPlatform();
186143
186143
  const baseAttributes = {
186144
186144
  [ATTR_SERVICE_NAME2]: "claude-code",
186145
- [ATTR_SERVICE_VERSION2]: "0.92.15"
186145
+ [ATTR_SERVICE_VERSION2]: "0.92.16"
186146
186146
  };
186147
186147
  if (platform7 === "wsl") {
186148
186148
  const wslVersion = getWslVersion();
@@ -186200,7 +186200,7 @@ async function initializeTelemetry() {
186200
186200
  }
186201
186201
  };
186202
186202
  registerCleanup(shutdownTelemetry2);
186203
- return meterProvider2.getMeter("com.anthropic.claude_code", "0.92.15");
186203
+ return meterProvider2.getMeter("com.anthropic.claude_code", "0.92.16");
186204
186204
  }
186205
186205
  const meterProvider = new MeterProvider({
186206
186206
  resource,
@@ -186229,7 +186229,7 @@ async function initializeTelemetry() {
186229
186229
  setLoggerProvider(loggerProvider);
186230
186230
  const eventLogger = logs.getLogger(
186231
186231
  "com.anthropic.claude_code.events",
186232
- "0.92.15"
186232
+ "0.92.16"
186233
186233
  );
186234
186234
  setEventLogger(eventLogger);
186235
186235
  logForDebugging("[3P telemetry] Event logger set successfully");
@@ -186301,7 +186301,7 @@ Current timeout: ${timeoutMs}ms
186301
186301
  }
186302
186302
  };
186303
186303
  registerCleanup(shutdownTelemetry);
186304
- return meterProvider.getMeter("com.anthropic.claude_code", "0.92.15");
186304
+ return meterProvider.getMeter("com.anthropic.claude_code", "0.92.16");
186305
186305
  }
186306
186306
  async function flushTelemetry() {
186307
186307
  const meterProvider = getMeterProvider();
@@ -188461,7 +188461,7 @@ function detectLinuxGlobPatternWarnings() {
188461
188461
  }
188462
188462
  async function getDoctorDiagnostic() {
188463
188463
  const installationType = await getCurrentInstallationType();
188464
- const version2 = typeof MACRO !== "undefined" && "0.92.15" ? "0.92.15" : "unknown";
188464
+ const version2 = typeof MACRO !== "undefined" && "0.92.16" ? "0.92.16" : "unknown";
188465
188465
  const installationPath = await getInstallationPath();
188466
188466
  const invokedBinary = getInvokedBinary();
188467
188467
  const multipleInstallations = await detectMultipleInstallations();
@@ -189390,9 +189390,9 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
189390
189390
  logForDebugging(
189391
189391
  `Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`
189392
189392
  );
189393
- if (gte("0.92.15", maxVersion)) {
189393
+ if (gte("0.92.16", maxVersion)) {
189394
189394
  logForDebugging(
189395
- `Native installer: current version ${"0.92.15"} is already at or above maxVersion ${maxVersion}, skipping update`
189395
+ `Native installer: current version ${"0.92.16"} is already at or above maxVersion ${maxVersion}, skipping update`
189396
189396
  );
189397
189397
  logEvent("tengu_native_update_skipped_max_version", {
189398
189398
  latency_ms: Date.now() - startTime,
@@ -189404,7 +189404,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
189404
189404
  version2 = maxVersion;
189405
189405
  }
189406
189406
  }
189407
- if (!forceReinstall && version2 === "0.92.15" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
189407
+ if (!forceReinstall && version2 === "0.92.16" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
189408
189408
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
189409
189409
  logEvent("tengu_native_update_complete", {
189410
189410
  latency_ms: Date.now() - startTime,
@@ -254752,7 +254752,7 @@ function getAnthropicEnvMetadata() {
254752
254752
  }
254753
254753
  function getBuildAgeMinutes() {
254754
254754
  if (false) return void 0;
254755
- const buildTime = (/* @__PURE__ */ new Date("2026-07-17T10:38:11.374Z")).getTime();
254755
+ const buildTime = (/* @__PURE__ */ new Date("2026-07-17T12:10:46.308Z")).getTime();
254756
254756
  if (isNaN(buildTime)) return void 0;
254757
254757
  return Math.floor((Date.now() - buildTime) / 6e4);
254758
254758
  }
@@ -301023,7 +301023,7 @@ var init_filesystem = __esm({
301023
301023
  getBundledSkillsRoot = memoize60(
301024
301024
  function getBundledSkillsRoot2() {
301025
301025
  const nonce = randomBytes20(16).toString("hex");
301026
- return join150(getClaudeTempDir(), "bundled-skills", "0.92.15", nonce);
301026
+ return join150(getClaudeTempDir(), "bundled-skills", "0.92.16", nonce);
301027
301027
  }
301028
301028
  );
301029
301029
  getResolvedWorkingDirPaths = memoize60(getPathsForPermissionCheck);
@@ -304496,7 +304496,7 @@ function Feedback({
304496
304496
  platform: env.platform,
304497
304497
  gitRepo: envInfo.isGit,
304498
304498
  terminal: env.terminal,
304499
- version: "0.92.15",
304499
+ version: "0.92.16",
304500
304500
  transcript: normalizeMessagesForAPI(messages),
304501
304501
  errors: sanitizedErrors,
304502
304502
  lastApiRequest: getLastAPIRequest(),
@@ -304621,7 +304621,7 @@ function Feedback({
304621
304621
  ", ",
304622
304622
  env.terminal,
304623
304623
  ", v",
304624
- "0.92.15"
304624
+ "0.92.16"
304625
304625
  ] })
304626
304626
  ] }),
304627
304627
  envInfo.gitState && /* @__PURE__ */ jsxs106(ThemedText, { children: [
@@ -304672,7 +304672,7 @@ ${sanitizedDescription}
304672
304672
  **Environment Info**
304673
304673
  - Platform: ${env.platform}
304674
304674
  - Terminal: ${env.terminal}
304675
- - Version: ${"0.92.15"}
304675
+ - Version: ${"0.92.16"}
304676
304676
  - Feedback ID: ${feedbackId}
304677
304677
 
304678
304678
  **Errors**
@@ -307934,7 +307934,7 @@ function buildPrimarySection() {
307934
307934
  const nameValue = customTitle ?? /* @__PURE__ */ jsx177(ThemedText, { dimColor: true, children: "/rename to add a name" });
307935
307935
  return [{
307936
307936
  label: "Version",
307937
- value: "0.92.15"
307937
+ value: "0.92.16"
307938
307938
  }, {
307939
307939
  label: "Session name",
307940
307940
  value: nameValue
@@ -311164,7 +311164,7 @@ function Config({
311164
311164
  logEvent("tengu_autoupdate_enabled", {
311165
311165
  channel
311166
311166
  });
311167
- } }) }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx185(ChannelDowngradeDialog, { currentVersion: "0.92.15", onChoice: (choice) => {
311167
+ } }) }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx185(ChannelDowngradeDialog, { currentVersion: "0.92.16", onChoice: (choice) => {
311168
311168
  setShowSubmenu(null);
311169
311169
  setTabsHidden(false);
311170
311170
  if (choice === "cancel") {
@@ -311175,7 +311175,7 @@ function Config({
311175
311175
  autoUpdatesChannel: "stable"
311176
311176
  };
311177
311177
  if (choice === "stay") {
311178
- newSettings.minimumVersion = "0.92.15";
311178
+ newSettings.minimumVersion = "0.92.16";
311179
311179
  }
311180
311180
  updateSettingsForSource("userSettings", newSettings);
311181
311181
  setSettingsData((prev_27) => ({
@@ -318504,7 +318504,7 @@ function HelpV2(t0) {
318504
318504
  const t5 = insideModal ? void 0 : maxHeight;
318505
318505
  let t6;
318506
318506
  if ($[31] !== tabs) {
318507
- t6 = /* @__PURE__ */ jsx211(Tabs, { title: false ? "/help" : `Tau v${"0.92.15"}`, color: "professionalBlue", defaultTab: "general", children: tabs });
318507
+ t6 = /* @__PURE__ */ jsx211(Tabs, { title: false ? "/help" : `Tau v${"0.92.16"}`, color: "professionalBlue", defaultTab: "general", children: tabs });
318508
318508
  $[31] = tabs;
318509
318509
  $[32] = t6;
318510
318510
  } else {
@@ -336975,7 +336975,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
336975
336975
  return [];
336976
336976
  }
336977
336977
  }
336978
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.92.15") {
336978
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.92.16") {
336979
336979
  if (false) {
336980
336980
  const changelog = MACRO.VERSION_CHANGELOG;
336981
336981
  if (changelog) {
@@ -338621,7 +338621,7 @@ async function getRecentActivity() {
338621
338621
  return cachePromise;
338622
338622
  }
338623
338623
  function getLogoDisplayData() {
338624
- const version2 = process.env.DEMO_VERSION ?? "0.92.15";
338624
+ const version2 = process.env.DEMO_VERSION ?? "0.92.16";
338625
338625
  const serverUrl = getDirectConnectServerUrl();
338626
338626
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
338627
338627
  const cwd5 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -390107,7 +390107,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
390107
390107
  smapsRollup,
390108
390108
  platform: process.platform,
390109
390109
  nodeVersion: process.version,
390110
- ccVersion: "0.92.15"
390110
+ ccVersion: "0.92.16"
390111
390111
  };
390112
390112
  }
390113
390113
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -390764,7 +390764,7 @@ var init_version = __esm({
390764
390764
  call69 = async () => {
390765
390765
  return {
390766
390766
  type: "text",
390767
- value: "2026-07-17T10:38:11.374Z" ? `${"0.92.15"} (built ${"2026-07-17T10:38:11.374Z"})` : "0.92.15"
390767
+ value: "2026-07-17T12:10:46.308Z" ? `${"0.92.16"} (built ${"2026-07-17T12:10:46.308Z"})` : "0.92.16"
390768
390768
  };
390769
390769
  };
390770
390770
  version = {
@@ -402150,8 +402150,8 @@ async function getEnvLessBridgeConfig() {
402150
402150
  }
402151
402151
  async function checkEnvLessBridgeMinVersion() {
402152
402152
  const cfg = await getEnvLessBridgeConfig();
402153
- if (cfg.min_version && lt("0.92.15", cfg.min_version)) {
402154
- return `Your version of Tau (${"0.92.15"}) is too old for Remote Control.
402153
+ if (cfg.min_version && lt("0.92.16", cfg.min_version)) {
402154
+ return `Your version of Tau (${"0.92.16"}) is too old for Remote Control.
402155
402155
  Version ${cfg.min_version} or higher is required. Run \`tau update\` to update.`;
402156
402156
  }
402157
402157
  return null;
@@ -406293,7 +406293,7 @@ function generateHtmlReport(data2, insights) {
406293
406293
  </html>`;
406294
406294
  }
406295
406295
  function buildExportData(data2, insights, facets, remoteStats) {
406296
- const version2 = typeof MACRO !== "undefined" ? "0.92.15" : "unknown";
406296
+ const version2 = typeof MACRO !== "undefined" ? "0.92.16" : "unknown";
406297
406297
  const remote_hosts_collected = remoteStats?.hosts.filter((h5) => h5.sessionCount > 0).map((h5) => h5.name);
406298
406298
  const facets_summary = {
406299
406299
  total: facets.size,
@@ -410014,7 +410014,7 @@ var init_sessionStorage = __esm({
410014
410014
  init_settings2();
410015
410015
  init_slowOperations();
410016
410016
  init_uuid();
410017
- VERSION2 = typeof MACRO !== "undefined" ? "0.92.15" : "unknown";
410017
+ VERSION2 = typeof MACRO !== "undefined" ? "0.92.16" : "unknown";
410018
410018
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
410019
410019
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
410020
410020
  EPHEMERAL_PROGRESS_TYPES = /* @__PURE__ */ new Set([
@@ -410965,9 +410965,9 @@ async function assertMinVersion() { return;
410965
410965
  }
410966
410966
  try {
410967
410967
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
410968
- if (versionConfig.minVersion && lt("0.92.15", versionConfig.minVersion)) {
410968
+ if (versionConfig.minVersion && lt("0.92.16", versionConfig.minVersion)) {
410969
410969
  console.error(`
410970
- It looks like your version of Tau (${"0.92.15"}) needs an update.
410970
+ It looks like your version of Tau (${"0.92.16"}) needs an update.
410971
410971
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
410972
410972
 
410973
410973
  To update, please run:
@@ -411153,7 +411153,7 @@ async function installGlobalPackage(specificVersion, options = {}) {
411153
411153
  );
411154
411154
  logEvent("tengu_auto_updater_lock_contention", {
411155
411155
  pid: process.pid,
411156
- currentVersion: "0.92.15"
411156
+ currentVersion: "0.92.16"
411157
411157
  });
411158
411158
  return "in_progress";
411159
411159
  }
@@ -411175,7 +411175,7 @@ async function installGlobalPackage(specificVersion, options = {}) {
411175
411175
  if (!isBun && env.isNpmFromWindowsPath()) {
411176
411176
  logError(new Error("Windows NPM detected in WSL environment"));
411177
411177
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
411178
- currentVersion: "0.92.15"
411178
+ currentVersion: "0.92.16"
411179
411179
  });
411180
411180
  console.error(`
411181
411181
  Error: Windows NPM detected in WSL
@@ -411379,7 +411379,7 @@ async function verifyCurrentNpmInstallation(installationType) {
411379
411379
  }
411380
411380
  async function update() {
411381
411381
  logEvent("tengu_update_check", {});
411382
- writeToStdout(`Current version: ${"0.92.15"}
411382
+ writeToStdout(`Current version: ${"0.92.16"}
411383
411383
  `);
411384
411384
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
411385
411385
  writeToStdout(`Checking for updates to ${channel} version...
@@ -411449,8 +411449,8 @@ async function update() {
411449
411449
  if (packageManager === "homebrew") {
411450
411450
  writeToStdout("Tau is managed by Homebrew.\n");
411451
411451
  const latest = await getLatestVersion2(channel);
411452
- if (latest && !gte("0.92.15", latest)) {
411453
- writeToStdout(`Update available: ${"0.92.15"} \u2192 ${latest}
411452
+ if (latest && !gte("0.92.16", latest)) {
411453
+ writeToStdout(`Update available: ${"0.92.16"} \u2192 ${latest}
411454
411454
  `);
411455
411455
  writeToStdout("\n");
411456
411456
  if (true) {
@@ -411467,8 +411467,8 @@ async function update() {
411467
411467
  } else if (packageManager === "winget") {
411468
411468
  writeToStdout("Tau is managed by winget.\n");
411469
411469
  const latest = await getLatestVersion2(channel);
411470
- if (latest && !gte("0.92.15", latest)) {
411471
- writeToStdout(`Update available: ${"0.92.15"} \u2192 ${latest}
411470
+ if (latest && !gte("0.92.16", latest)) {
411471
+ writeToStdout(`Update available: ${"0.92.16"} \u2192 ${latest}
411472
411472
  `);
411473
411473
  writeToStdout("\n");
411474
411474
  if (true) {
@@ -411487,8 +411487,8 @@ async function update() {
411487
411487
  } else if (packageManager === "apk") {
411488
411488
  writeToStdout("Tau is managed by apk.\n");
411489
411489
  const latest = await getLatestVersion2(channel);
411490
- if (latest && !gte("0.92.15", latest)) {
411491
- writeToStdout(`Update available: ${"0.92.15"} \u2192 ${latest}
411490
+ if (latest && !gte("0.92.16", latest)) {
411491
+ writeToStdout(`Update available: ${"0.92.16"} \u2192 ${latest}
411492
411492
  `);
411493
411493
  writeToStdout("\n");
411494
411494
  if (true) {
@@ -411560,14 +411560,14 @@ async function update() {
411560
411560
  process.stderr.write("Failed to check for updates\n");
411561
411561
  await gracefulShutdown(1);
411562
411562
  }
411563
- if (result.latestVersion === "0.92.15") {
411563
+ if (result.latestVersion === "0.92.16") {
411564
411564
  writeToStdout(
411565
- chalk52.green(`Tau is up to date (${"0.92.15"})`) + "\n"
411565
+ chalk52.green(`Tau is up to date (${"0.92.16"})`) + "\n"
411566
411566
  );
411567
411567
  } else {
411568
411568
  writeToStdout(
411569
411569
  chalk52.green(
411570
- `Successfully updated from ${"0.92.15"} to version ${result.latestVersion}`
411570
+ `Successfully updated from ${"0.92.16"} to version ${result.latestVersion}`
411571
411571
  ) + "\n"
411572
411572
  );
411573
411573
  await regenerateCompletionCache();
@@ -411616,7 +411616,7 @@ async function update() {
411616
411616
  await gracefulShutdown(1);
411617
411617
  return;
411618
411618
  }
411619
- if (latestVersion === "0.92.15" || gte("0.92.15", latestVersion)) {
411619
+ if (latestVersion === "0.92.16" || gte("0.92.16", latestVersion)) {
411620
411620
  if ((diagnostic.installationType === "npm-global" || diagnostic.installationType === "npm-local") && !await verifyCurrentNpmInstallation(diagnostic.installationType)) {
411621
411621
  process.stderr.write(
411622
411622
  "Tau is already on the selected version, but its installation is incomplete.\n"
@@ -411628,12 +411628,12 @@ async function update() {
411628
411628
  return;
411629
411629
  }
411630
411630
  writeToStdout(
411631
- chalk52.green(`Tau is up to date (${"0.92.15"})`) + "\n"
411631
+ chalk52.green(`Tau is up to date (${"0.92.16"})`) + "\n"
411632
411632
  );
411633
411633
  await gracefulShutdown(0);
411634
411634
  }
411635
411635
  writeToStdout(
411636
- `New version available: ${latestVersion} (current: ${"0.92.15"}) - run tau update
411636
+ `New version available: ${latestVersion} (current: ${"0.92.16"}) - run tau update
411637
411637
  `
411638
411638
  );
411639
411639
  writeToStdout("Installing update...\n");
@@ -411695,7 +411695,7 @@ async function update() {
411695
411695
  }
411696
411696
  writeToStdout(
411697
411697
  chalk52.green(
411698
- `Successfully updated from ${"0.92.15"} to version ${latestVersion}`
411698
+ `Successfully updated from ${"0.92.16"} to version ${latestVersion}`
411699
411699
  ) + "\n"
411700
411700
  );
411701
411701
  await regenerateCompletionCache();
@@ -412341,7 +412341,7 @@ function createBridgeLogger(options) {
412341
412341
  connectUrl = buildBridgeConnectUrl(environmentId, cachedIngressUrl);
412342
412342
  regenerateQr(connectUrl);
412343
412343
  if (verbose) {
412344
- write(chalk53.dim(`Remote Control`) + ` v${"0.92.15"}
412344
+ write(chalk53.dim(`Remote Control`) + ` v${"0.92.16"}
412345
412345
  `);
412346
412346
  }
412347
412347
  if (verbose) {
@@ -413481,7 +413481,7 @@ function appendToLog(path24, message) {
413481
413481
  cwd: getFsImplementation().cwd(),
413482
413482
  userType: "external",
413483
413483
  sessionId: getSessionId(),
413484
- version: "0.92.15"
413484
+ version: "0.92.16"
413485
413485
  };
413486
413486
  getLogWriter(path24).write(messageWithTimestamp);
413487
413487
  }
@@ -415064,7 +415064,7 @@ This can be changed later or explicitly set with --spawn=same-dir or --spawn=wor
415064
415064
  const api = createBridgeApiClient({
415065
415065
  baseUrl,
415066
415066
  getAccessToken: getBridgeAccessToken2,
415067
- runnerVersion: "0.92.15",
415067
+ runnerVersion: "0.92.16",
415068
415068
  onDebug: logForDebugging,
415069
415069
  onAuth401: handleOAuth401Error2,
415070
415070
  getTrustedDeviceToken
@@ -415419,7 +415419,7 @@ async function runBridgeHeadless(opts, signal) {
415419
415419
  const api = createBridgeApiClient({
415420
415420
  baseUrl,
415421
415421
  getAccessToken: opts.getAccessToken,
415422
- runnerVersion: "0.92.15",
415422
+ runnerVersion: "0.92.16",
415423
415423
  onDebug: log3,
415424
415424
  onAuth401: opts.onAuth401,
415425
415425
  getTrustedDeviceToken
@@ -419364,7 +419364,7 @@ function completeOnboarding() {
419364
419364
  saveGlobalConfig((current) => ({
419365
419365
  ...current,
419366
419366
  hasCompletedOnboarding: true,
419367
- lastOnboardingVersion: "0.92.15"
419367
+ lastOnboardingVersion: "0.92.16"
419368
419368
  }));
419369
419369
  }
419370
419370
  function assertTerminalWritable() {
@@ -421474,7 +421474,7 @@ function buildSystemInitMessage(inputs) {
421474
421474
  slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
421475
421475
  apiKeySource: getAnthropicApiKeyWithSource().source,
421476
421476
  betas: getSdkBetas(),
421477
- claude_code_version: "0.92.15",
421477
+ claude_code_version: "0.92.16",
421478
421478
  output_style: outputStyle2,
421479
421479
  agents: inputs.agents.map((agent) => agent.agentType),
421480
421480
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -424325,7 +424325,7 @@ async function initBridgeCore(params) {
424325
424325
  const rawApi = createBridgeApiClient({
424326
424326
  baseUrl,
424327
424327
  getAccessToken,
424328
- runnerVersion: "0.92.15",
424328
+ runnerVersion: "0.92.16",
424329
424329
  onDebug: logForDebugging,
424330
424330
  onAuth401,
424331
424331
  getTrustedDeviceToken
@@ -440736,7 +440736,7 @@ import __cjs1008 from "semver"; const { major, minor, patch } = __cjs1008;
440736
440736
  function getSemverPart(version2) {
440737
440737
  return `${major(version2, { loose: true })}.${minor(version2, { loose: true })}.${patch(version2, { loose: true })}`;
440738
440738
  }
440739
- function useUpdateNotification(updatedVersion, initialVersion = "0.92.15") {
440739
+ function useUpdateNotification(updatedVersion, initialVersion = "0.92.16") {
440740
440740
  const [lastNotifiedSemver, setLastNotifiedSemver] = useState148(
440741
440741
  () => getSemverPart(initialVersion)
440742
440742
  );
@@ -440784,7 +440784,7 @@ function AutoUpdater({
440784
440784
  logForDebugging("AutoUpdater: Skipping update check in test/dev environment");
440785
440785
  return;
440786
440786
  }
440787
- const currentVersion = "0.92.15";
440787
+ const currentVersion = "0.92.16";
440788
440788
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
440789
440789
  let latestVersion = await getLatestVersion2(channel);
440790
440790
  const isDisabled = isAutoUpdaterDisabled();
@@ -440979,12 +440979,12 @@ function NativeAutoUpdater({
440979
440979
  logEvent("tengu_native_auto_updater_start", {});
440980
440980
  try {
440981
440981
  const maxVersion = await getMaxVersion();
440982
- if (maxVersion && gt("0.92.15", maxVersion)) {
440982
+ if (maxVersion && gt("0.92.16", maxVersion)) {
440983
440983
  const msg = await getMaxVersionMessage();
440984
440984
  setMaxVersionIssue(msg ?? "affects your version");
440985
440985
  }
440986
440986
  const result = await installLatest(channel);
440987
- const currentVersion = "0.92.15";
440987
+ const currentVersion = "0.92.16";
440988
440988
  const latencyMs = Date.now() - startTime;
440989
440989
  if (result.lockFailed) {
440990
440990
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -441099,17 +441099,17 @@ function PackageManagerAutoUpdater(t0) {
441099
441099
  const maxVersion = await getMaxVersion();
441100
441100
  if (maxVersion && latest && gt(latest, maxVersion)) {
441101
441101
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
441102
- if (gte("0.92.15", maxVersion)) {
441103
- logForDebugging(`PackageManagerAutoUpdater: current version ${"0.92.15"} is already at or above maxVersion ${maxVersion}, skipping update`);
441102
+ if (gte("0.92.16", maxVersion)) {
441103
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"0.92.16"} is already at or above maxVersion ${maxVersion}, skipping update`);
441104
441104
  setUpdateAvailable(false);
441105
441105
  return;
441106
441106
  }
441107
441107
  latest = maxVersion;
441108
441108
  }
441109
- const hasUpdate = latest && !gte("0.92.15", latest) && !shouldSkipVersion(latest);
441109
+ const hasUpdate = latest && !gte("0.92.16", latest) && !shouldSkipVersion(latest);
441110
441110
  setUpdateAvailable(!!hasUpdate);
441111
441111
  if (hasUpdate) {
441112
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.92.15"} -> ${latest}`);
441112
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.92.16"} -> ${latest}`);
441113
441113
  }
441114
441114
  };
441115
441115
  $[0] = t1;
@@ -441140,7 +441140,7 @@ function PackageManagerAutoUpdater(t0) {
441140
441140
  if ($[3] !== verbose) {
441141
441141
  t4 = verbose && /* @__PURE__ */ jsxs313(ThemedText, { dimColor: true, wrap: "truncate", children: [
441142
441142
  "currentVersion: ",
441143
- "0.92.15"
441143
+ "0.92.16"
441144
441144
  ] });
441145
441145
  $[3] = verbose;
441146
441146
  $[4] = t4;
@@ -448405,7 +448405,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
448405
448405
  project_dir: getOriginalCwd(),
448406
448406
  added_dirs: addedDirs
448407
448407
  },
448408
- version: "0.92.15",
448408
+ version: "0.92.16",
448409
448409
  output_style: {
448410
448410
  name: outputStyleName
448411
448411
  },
@@ -460768,7 +460768,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
460768
460768
  }
460769
460769
  const data2 = {
460770
460770
  trigger,
460771
- version: "0.92.15",
460771
+ version: "0.92.16",
460772
460772
  platform: process.platform,
460773
460773
  transcript,
460774
460774
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : void 0,
@@ -466111,7 +466111,7 @@ async function checkForNpmUpdate() {
466111
466111
  return null;
466112
466112
  }
466113
466113
  try {
466114
- const currentVersion = "0.92.15";
466114
+ const currentVersion = "0.92.16";
466115
466115
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
466116
466116
  let latestVersion = await getLatestVersion2(channel);
466117
466117
  const maxVersion = await getMaxVersion();
@@ -486242,7 +486242,7 @@ async function startMCPServer(cwd5, debug4, verbose) {
486242
486242
  const server = new Server(
486243
486243
  {
486244
486244
  name: "claude/tengu",
486245
- version: "0.92.15"
486245
+ version: "0.92.16"
486246
486246
  },
486247
486247
  {
486248
486248
  capabilities: {
@@ -487421,7 +487421,7 @@ function WelcomeV2() {
487421
487421
  ] }),
487422
487422
  /* @__PURE__ */ jsxs364(ThemedText, { dimColor: true, children: [
487423
487423
  "v",
487424
- "0.92.15",
487424
+ "0.92.16",
487425
487425
  " "
487426
487426
  ] })
487427
487427
  ] });
@@ -487555,7 +487555,7 @@ function WelcomeV2() {
487555
487555
  ] }),
487556
487556
  /* @__PURE__ */ jsxs364(ThemedText, { dimColor: true, children: [
487557
487557
  "v",
487558
- "0.92.15",
487558
+ "0.92.16",
487559
487559
  " "
487560
487560
  ] })
487561
487561
  ] });
@@ -487705,7 +487705,7 @@ function AppleTerminalWelcomeV2(t0) {
487705
487705
  if ($[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
487706
487706
  t22 = /* @__PURE__ */ jsxs364(ThemedText, { dimColor: true, children: [
487707
487707
  "v",
487708
- "0.92.15",
487708
+ "0.92.16",
487709
487709
  " "
487710
487710
  ] });
487711
487711
  $[2] = t22;
@@ -487875,7 +487875,7 @@ function AppleTerminalWelcomeV2(t0) {
487875
487875
  if ($[24] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
487876
487876
  t2 = /* @__PURE__ */ jsxs364(ThemedText, { dimColor: true, children: [
487877
487877
  "v",
487878
- "0.92.15",
487878
+ "0.92.16",
487879
487879
  " "
487880
487880
  ] });
487881
487881
  $[24] = t2;
@@ -490129,7 +490129,7 @@ ${inputPrompt}` : mergePrompt;
490129
490129
  }
490130
490130
  }
490131
490131
  logForDiagnosticsNoPII("info", "started", {
490132
- version: "0.92.15",
490132
+ version: "0.92.16",
490133
490133
  is_native_binary: isInBundledMode()
490134
490134
  });
490135
490135
  registerCleanup(async () => {
@@ -490726,7 +490726,7 @@ Session: ${directConnectConfig.sessionId}`, "info");
490726
490726
  sshSession = await createSSHSession({
490727
490727
  host: _pendingSSH.host,
490728
490728
  cwd: _pendingSSH.cwd,
490729
- localVersion: "0.92.15",
490729
+ localVersion: "0.92.16",
490730
490730
  permissionMode: _pendingSSH.permissionMode,
490731
490731
  dangerouslySkipPermissions: _pendingSSH.dangerouslySkipPermissions,
490732
490732
  extraCliArgs: _pendingSSH.extraCliArgs
@@ -491238,7 +491238,7 @@ Auth: unix socket -R \u2192 local proxy`, "info");
491238
491238
  pendingHookMessages
491239
491239
  }, renderAndRun);
491240
491240
  }
491241
- }).version(`${"0.92.15"} (Tau)`, "-v, --version", "Output the version number");
491241
+ }).version(`${"0.92.16"} (Tau)`, "-v, --version", "Output the version number");
491242
491242
  program.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
491243
491243
  program.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
491244
491244
  if (canUserConfigureAdvisor()) {
@@ -492216,7 +492216,7 @@ async function main2() {
492216
492216
  trace5("main() started");
492217
492217
  const args = process.argv.slice(2);
492218
492218
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
492219
- console.log(`${"0.92.15"} (Tau)`);
492219
+ console.log(`${"0.92.16"} (Tau)`);
492220
492220
  return;
492221
492221
  }
492222
492222
  if (args.length === 1 && (args[0] === "update" || args[0] === "upgrade")) {
@@ -88,7 +88,7 @@
88
88
  "zod": "^3.25.0"
89
89
  },
90
90
  "engines": {
91
- "node": ">=20.18.1"
91
+ "node": ">=20.19.0 <21.0.0 || >=22.12.0"
92
92
  },
93
93
  "hasInstallScript": true,
94
94
  "license": "MIT",
@@ -110,7 +110,7 @@
110
110
  "optional": true
111
111
  }
112
112
  },
113
- "version": "0.92.15"
113
+ "version": "0.92.16"
114
114
  },
115
115
  "node_modules/@agentclientprotocol/sdk": {
116
116
  "integrity": "sha512-ialrcI+RzKOYe+fw+TfpyTdRmEoqIkXLlwbTi6XgaXXfdhNcdod7TmE1VsTnG3yTlox8TMTSMQgWbLLbz3r86Q==",
@@ -8754,5 +8754,5 @@
8754
8754
  }
8755
8755
  },
8756
8756
  "requires": true,
8757
- "version": "0.92.15"
8757
+ "version": "0.92.16"
8758
8758
  }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@abdoknbgit/tau",
3
- "version": "0.92.15",
4
- "workspaces": [
5
- "packages/*"
6
- ],
7
- "description": "Tau - multi-provider AI coding CLI with Firecrawl-hosted WebSearch. Firecrawl offers 1k searches/month on free trials; just enter your API key.",
3
+ "version": "0.92.16",
4
+ "workspaces": [
5
+ "packages/*"
6
+ ],
7
+ "description": "Tau - multi-provider AI coding CLI with Firecrawl-hosted WebSearch. Firecrawl offers 1k searches/month on free trials; just enter your API key.",
8
8
  "author": "AbdoKnbGit",
9
9
  "repository": {
10
10
  "type": "git",
@@ -18,36 +18,36 @@
18
18
  "bin": {
19
19
  "tau": "dist/cli.mjs",
20
20
  "claudex": "dist/cli.mjs"
21
- },
22
- "files": [
23
- "dist/cli.mjs",
24
- "dist/shim.js",
25
- "dist/tau.mjs",
26
- "dist/tau.mjs.map",
27
- "dist/tau-office.mjs",
28
- "dist/tau-office.mjs.map",
29
- "docs",
30
- "native",
31
- "npm-shrinkwrap.json",
32
- "scripts",
33
- "README.md"
34
- ],
21
+ },
22
+ "files": [
23
+ "dist/cli.mjs",
24
+ "dist/shim.js",
25
+ "dist/tau.mjs",
26
+ "dist/tau.mjs.map",
27
+ "dist/tau-office.mjs",
28
+ "dist/tau-office.mjs.map",
29
+ "docs",
30
+ "native",
31
+ "npm-shrinkwrap.json",
32
+ "scripts",
33
+ "README.md"
34
+ ],
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  },
38
38
  "scripts": {
39
39
  "build": "node build.mjs",
40
40
  "build:bun": "bun run build.ts",
41
- "build:native-shell": "node scripts/build-native-shell-parser.mjs",
42
- "build:native-tools": "node scripts/build-native-tools.mjs",
43
- "shrinkwrap:generate": "node release/production-shrinkwrap.mjs --write",
44
- "shrinkwrap:check": "node release/production-shrinkwrap.mjs --check",
45
- "preinstall": "node scripts/preinstall.mjs",
46
- "postinstall": "node scripts/postinstall.mjs",
47
- "prepublishOnly": "node release/production-shrinkwrap.mjs --check && node release/verify-installer-published.mjs && node build.mjs",
48
- "prepack": "node release/production-shrinkwrap.mjs --stage",
49
- "postpack": "node release/production-shrinkwrap.mjs --clean"
50
- },
41
+ "build:native-shell": "node scripts/build-native-shell-parser.mjs",
42
+ "build:native-tools": "node scripts/build-native-tools.mjs",
43
+ "shrinkwrap:generate": "node release/production-shrinkwrap.mjs --write",
44
+ "shrinkwrap:check": "node release/production-shrinkwrap.mjs --check",
45
+ "preinstall": "node scripts/preinstall.mjs",
46
+ "postinstall": "node scripts/postinstall.mjs",
47
+ "prepublishOnly": "node release/production-shrinkwrap.mjs --check && node release/verify-installer-published.mjs && node build.mjs",
48
+ "prepack": "node release/production-shrinkwrap.mjs --stage",
49
+ "postpack": "node release/production-shrinkwrap.mjs --clean"
50
+ },
51
51
  "keywords": [
52
52
  "tau",
53
53
  "ai",
@@ -63,9 +63,9 @@
63
63
  "coding-assistant"
64
64
  ],
65
65
  "license": "MIT",
66
- "engines": {
67
- "node": ">=20.18.1"
68
- },
66
+ "engines": {
67
+ "node": ">=20.19.0 <21.0.0 || >=22.12.0"
68
+ },
69
69
  "dependencies": {
70
70
  "@agentclientprotocol/sdk": "^0.26.0",
71
71
  "@alcalzone/ansi-tokenize": "^0.1.3",
@@ -180,13 +180,13 @@
180
180
  "typescript": "^5.7.3"
181
181
  },
182
182
  "allowScripts": {
183
- "@abdoknbgit/tau": true,
184
- "@whiskeysockets/baileys": true,
185
- "core-js": true,
186
- "esbuild": true,
187
- "fsevents": true,
188
- "node-pty": true,
189
- "protobufjs": true,
190
- "sharp": true
191
- }
192
- }
183
+ "@abdoknbgit/tau": true,
184
+ "@whiskeysockets/baileys": true,
185
+ "core-js": true,
186
+ "esbuild": true,
187
+ "fsevents": true,
188
+ "node-pty": true,
189
+ "protobufjs": true,
190
+ "sharp": true
191
+ }
192
+ }