@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 +42 -38
- package/dist/cli.mjs +16 -0
- package/dist/tau.mjs +91 -91
- package/npm-shrinkwrap.json +3 -3
- package/package.json +42 -42
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
|
|
5
|
+
# Tau - The Best Free Coding Agent
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@abdoknbgit/tau)
|
|
8
8
|
[](https://www.npmjs.com/package/@abdoknbgit/tau)
|
|
9
9
|
[](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
|
|
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
|
|
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
|
|
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`**
|
|
70
|
-
|
|
71
|
-
**`/tools`**
|
|
72
|
-
|
|
73
|
-
**`/mode cheap`**
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
87382
|
-
return `Your version of Tau (${"0.92.
|
|
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.
|
|
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.
|
|
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.
|
|
90217
|
+
version: "0.92.16",
|
|
90218
90218
|
versionBase: getVersionBase(),
|
|
90219
|
-
buildTime: "2026-07-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
189393
|
+
if (gte("0.92.16", maxVersion)) {
|
|
189394
189394
|
logForDebugging(
|
|
189395
|
-
`Native installer: current version ${"0.92.
|
|
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.
|
|
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-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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-
|
|
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.
|
|
402154
|
-
return `Your version of Tau (${"0.92.
|
|
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.
|
|
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.
|
|
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.
|
|
410968
|
+
if (versionConfig.minVersion && lt("0.92.16", versionConfig.minVersion)) {
|
|
410969
410969
|
console.error(`
|
|
410970
|
-
It looks like your version of Tau (${"0.92.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
411453
|
-
writeToStdout(`Update available: ${"0.92.
|
|
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.
|
|
411471
|
-
writeToStdout(`Update available: ${"0.92.
|
|
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.
|
|
411491
|
-
writeToStdout(`Update available: ${"0.92.
|
|
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.
|
|
411563
|
+
if (result.latestVersion === "0.92.16") {
|
|
411564
411564
|
writeToStdout(
|
|
411565
|
-
chalk52.green(`Tau is up to date (${"0.92.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
441103
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.92.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
492219
|
+
console.log(`${"0.92.16"} (Tau)`);
|
|
492220
492220
|
return;
|
|
492221
492221
|
}
|
|
492222
492222
|
if (args.length === 1 && (args[0] === "update" || args[0] === "upgrade")) {
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"zod": "^3.25.0"
|
|
89
89
|
},
|
|
90
90
|
"engines": {
|
|
91
|
-
"node": ">=20.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
+
}
|