@ainative/cody-cli 0.7.42 → 0.7.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ainative-provisioning
|
|
3
|
+
description: Use when onboarding a new Cody CLI user, setting up AINative trial accounts, provisioning ZeroDB projects, or implementing zero-auth account creation flows. Covers the instant-db endpoint, credential file format, claim flow, and how the postinstall hook works.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AINative Auto-Provisioning
|
|
7
|
+
|
|
8
|
+
## How It Works
|
|
9
|
+
|
|
10
|
+
On `npm install -g @ainative/cody-cli`, the postinstall hook (`bin/postinstall.cjs`) automatically:
|
|
11
|
+
|
|
12
|
+
1. Calls `POST https://api.ainative.studio/api/v1/public/instant-db`
|
|
13
|
+
2. Receives a `tmp_` API key + ZeroDB project ID
|
|
14
|
+
3. Writes to `~/.cody/credentials.json`
|
|
15
|
+
4. Prints a claim URL to the terminal
|
|
16
|
+
|
|
17
|
+
**No signup. No auth. No credit card. User is ready to run `cody` immediately.**
|
|
18
|
+
|
|
19
|
+
## Instant-DB Endpoint
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
POST https://api.ainative.studio/api/v1/public/instant-db
|
|
23
|
+
Content-Type: application/json
|
|
24
|
+
|
|
25
|
+
{ "agree_terms": true, "on_behalf_of": "cody-cli" }
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Response:
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"api_key": "tmp_...",
|
|
32
|
+
"project_id": "uuid",
|
|
33
|
+
"base_url": "https://api.ainative.studio",
|
|
34
|
+
"expires_at": "2026-...",
|
|
35
|
+
"claim_url": "https://www.ainative.studio/claim?token=...",
|
|
36
|
+
"limits": { "chat_credits": 50, "vectors": 10000, ... }
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The `tmp_` key works for **both**:
|
|
41
|
+
- LLM inference: `POST /v1/messages` with `x-api-key: tmp_...`
|
|
42
|
+
- ZeroDB operations: vectors, memory, embeddings, postgres
|
|
43
|
+
|
|
44
|
+
## Credential File
|
|
45
|
+
|
|
46
|
+
Location: `~/.cody/credentials.json`
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"api_key": "tmp_...",
|
|
51
|
+
"project_id": "uuid",
|
|
52
|
+
"base_url": "https://api.ainative.studio",
|
|
53
|
+
"expires_at": "2026-...",
|
|
54
|
+
"claim_url": "https://...",
|
|
55
|
+
"claimed": false,
|
|
56
|
+
"provisioned_by": "cody-cli-postinstall",
|
|
57
|
+
"provisioned_at": "2026-..."
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
After `cody login`, `api_key` becomes a permanent `sk_` key and `claimed: true`.
|
|
62
|
+
|
|
63
|
+
## Claim Flow
|
|
64
|
+
|
|
65
|
+
User visits `claim_url` → signs up or logs into AINative → project transferred to their account → `tmp_` key replaced with permanent `sk_` key.
|
|
66
|
+
|
|
67
|
+
## Skip Conditions
|
|
68
|
+
|
|
69
|
+
Provisioning is skipped if:
|
|
70
|
+
- `ANTHROPIC_API_KEY` or `CODY_API_KEY` env var is already set
|
|
71
|
+
- `~/.cody/credentials.json` exists and is not expired
|
|
72
|
+
- Network is unavailable (silent fail, never blocks install)
|
|
73
|
+
|
|
74
|
+
## For Agents Onboarding New Users
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
const res = await fetch('https://api.ainative.studio/api/v1/public/instant-db', {
|
|
78
|
+
method: 'POST',
|
|
79
|
+
headers: { 'Content-Type': 'application/json' },
|
|
80
|
+
body: JSON.stringify({ agree_terms: true, on_behalf_of: 'cody-cli' }),
|
|
81
|
+
})
|
|
82
|
+
const { api_key, project_id, claim_url, expires_at } = await res.json()
|
|
83
|
+
// api_key works immediately for both LLM (/v1/messages) and ZeroDB
|
|
84
|
+
```
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ainative-provisioning
|
|
3
|
+
description: Use when onboarding a new Cody CLI user, setting up AINative trial accounts, provisioning ZeroDB projects, or implementing zero-auth account creation flows. Covers the instant-db endpoint, credential file format, claim flow, and how the postinstall hook works.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AINative Auto-Provisioning
|
|
7
|
+
|
|
8
|
+
## How It Works
|
|
9
|
+
|
|
10
|
+
On `npm install -g @ainative/cody-cli`, the postinstall hook (`bin/postinstall.cjs`) automatically:
|
|
11
|
+
|
|
12
|
+
1. Calls `POST https://api.ainative.studio/api/v1/public/instant-db`
|
|
13
|
+
2. Receives a `tmp_` API key + ZeroDB project ID
|
|
14
|
+
3. Writes to `~/.cody/credentials.json`
|
|
15
|
+
4. Prints a claim URL to the terminal
|
|
16
|
+
|
|
17
|
+
**No signup. No auth. No credit card. User is ready to run `cody` immediately.**
|
|
18
|
+
|
|
19
|
+
## Instant-DB Endpoint
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
POST https://api.ainative.studio/api/v1/public/instant-db
|
|
23
|
+
Content-Type: application/json
|
|
24
|
+
|
|
25
|
+
{ "agree_terms": true, "on_behalf_of": "cody-cli" }
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Response:
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"api_key": "tmp_...",
|
|
32
|
+
"project_id": "uuid",
|
|
33
|
+
"base_url": "https://api.ainative.studio",
|
|
34
|
+
"expires_at": "2026-...",
|
|
35
|
+
"claim_url": "https://www.ainative.studio/claim?token=...",
|
|
36
|
+
"limits": { "chat_credits": 50, "vectors": 10000, ... }
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The `tmp_` key works for **both**:
|
|
41
|
+
- LLM inference: `POST /v1/messages` with `x-api-key: tmp_...`
|
|
42
|
+
- ZeroDB operations: vectors, memory, embeddings, postgres
|
|
43
|
+
|
|
44
|
+
## Credential File
|
|
45
|
+
|
|
46
|
+
Location: `~/.cody/credentials.json`
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"api_key": "tmp_...",
|
|
51
|
+
"project_id": "uuid",
|
|
52
|
+
"base_url": "https://api.ainative.studio",
|
|
53
|
+
"expires_at": "2026-...",
|
|
54
|
+
"claim_url": "https://...",
|
|
55
|
+
"claimed": false,
|
|
56
|
+
"provisioned_by": "cody-cli-postinstall",
|
|
57
|
+
"provisioned_at": "2026-..."
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
After `cody login`, `api_key` becomes a permanent `sk_` key and `claimed: true`.
|
|
62
|
+
|
|
63
|
+
## Claim Flow
|
|
64
|
+
|
|
65
|
+
User visits `claim_url` → signs up or logs into AINative → project transferred to their account → `tmp_` key replaced with permanent `sk_` key.
|
|
66
|
+
|
|
67
|
+
To trigger via email: set `CODY_EMAIL=user@example.com` before install or first run.
|
|
68
|
+
|
|
69
|
+
## Skip Conditions
|
|
70
|
+
|
|
71
|
+
Provisioning is skipped if:
|
|
72
|
+
- `ANTHROPIC_API_KEY` or `CODY_API_KEY` env var is already set
|
|
73
|
+
- `~/.cody/credentials.json` exists and is not expired
|
|
74
|
+
- Network is unavailable (silent fail, never blocks install)
|
|
75
|
+
|
|
76
|
+
## For Agents Onboarding New Users
|
|
77
|
+
|
|
78
|
+
```javascript
|
|
79
|
+
// Provision a trial account for a new user
|
|
80
|
+
const res = await fetch('https://api.ainative.studio/api/v1/public/instant-db', {
|
|
81
|
+
method: 'POST',
|
|
82
|
+
headers: { 'Content-Type': 'application/json' },
|
|
83
|
+
body: JSON.stringify({ agree_terms: true, on_behalf_of: 'cody-cli' }),
|
|
84
|
+
})
|
|
85
|
+
const { api_key, project_id, claim_url, expires_at } = await res.json()
|
|
86
|
+
// api_key is ready to use immediately for both LLM and ZeroDB
|
|
87
|
+
```
|
package/bin/postinstall.cjs
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Cody CLI postinstall
|
|
4
|
+
* Cody CLI postinstall
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* 1. Cleans stale cached data from older builds
|
|
7
|
+
* 2. Auto-provisions an AINative trial account if none exists
|
|
8
|
+
* - Calls POST /api/v1/public/instant-db (no auth, no signup)
|
|
9
|
+
* - Writes credentials to ~/.cody/credentials.json
|
|
10
|
+
* - tmp_ key works for both LLM inference (/v1/messages) and ZeroDB
|
|
11
|
+
* - 72-hour trial, claimable at the printed URL
|
|
10
12
|
*/
|
|
11
13
|
|
|
12
14
|
const fs = require('fs')
|
|
@@ -14,13 +16,17 @@ const path = require('path')
|
|
|
14
16
|
const os = require('os')
|
|
15
17
|
|
|
16
18
|
const HOME = os.homedir()
|
|
19
|
+
const CODY_DIR = path.join(HOME, '.cody')
|
|
20
|
+
const CREDENTIALS_PATH = path.join(CODY_DIR, 'credentials.json')
|
|
21
|
+
const AINATIVE_API = 'https://api.ainative.studio'
|
|
17
22
|
const STALE_MARKERS = ['anthropic.com/api', 'claude.ai/api', 'console.anthropic.com']
|
|
18
23
|
|
|
19
|
-
|
|
24
|
+
// ── Cleanup ────────────────────────────────────────────────────────────────────
|
|
25
|
+
|
|
26
|
+
function cleanDir(dirPath) {
|
|
20
27
|
if (!fs.existsSync(dirPath)) return
|
|
21
28
|
|
|
22
29
|
try {
|
|
23
|
-
// Check for stale OAuth tokens with wrong URLs
|
|
24
30
|
const credFiles = ['credentials.json', 'oauth.json', 'tokens.json', '.credentials']
|
|
25
31
|
for (const f of credFiles) {
|
|
26
32
|
const fp = path.join(dirPath, f)
|
|
@@ -35,7 +41,6 @@ function cleanDir(dirPath, description) {
|
|
|
35
41
|
}
|
|
36
42
|
}
|
|
37
43
|
|
|
38
|
-
// Clean stale settings that reference old branding
|
|
39
44
|
const settingsFile = path.join(dirPath, 'settings.json')
|
|
40
45
|
if (fs.existsSync(settingsFile)) {
|
|
41
46
|
try {
|
|
@@ -47,7 +52,6 @@ function cleanDir(dirPath, description) {
|
|
|
47
52
|
} catch {}
|
|
48
53
|
}
|
|
49
54
|
|
|
50
|
-
// Clean old cached responses
|
|
51
55
|
const cacheDir = path.join(dirPath, 'cache')
|
|
52
56
|
if (fs.existsSync(cacheDir)) {
|
|
53
57
|
try {
|
|
@@ -58,24 +62,111 @@ function cleanDir(dirPath, description) {
|
|
|
58
62
|
} catch {}
|
|
59
63
|
}
|
|
60
64
|
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
cleaned = true
|
|
65
|
+
// ── Provisioning ───────────────────────────────────────────────────────────────
|
|
66
|
+
|
|
67
|
+
function hasValidCredentials() {
|
|
68
|
+
if (!fs.existsSync(CREDENTIALS_PATH)) return false
|
|
69
|
+
try {
|
|
70
|
+
const creds = JSON.parse(fs.readFileSync(CREDENTIALS_PATH, 'utf8'))
|
|
71
|
+
// Valid if it has an api_key AND not expired (or no expiry = permanent)
|
|
72
|
+
if (!creds.api_key) return false
|
|
73
|
+
if (creds.expires_at) {
|
|
74
|
+
const expiresAt = new Date(creds.expires_at)
|
|
75
|
+
if (expiresAt < new Date()) return false // expired
|
|
73
76
|
}
|
|
77
|
+
// Skip re-provisioning if already using a permanent sk_ key (logged-in user)
|
|
78
|
+
return true
|
|
79
|
+
} catch {
|
|
80
|
+
return false
|
|
74
81
|
}
|
|
82
|
+
}
|
|
75
83
|
|
|
76
|
-
|
|
77
|
-
|
|
84
|
+
function writeCredentials(data) {
|
|
85
|
+
try {
|
|
86
|
+
fs.mkdirSync(CODY_DIR, { recursive: true })
|
|
87
|
+
const tmp = CREDENTIALS_PATH + '.tmp'
|
|
88
|
+
fs.writeFileSync(tmp, JSON.stringify(data, null, 2), 'utf8')
|
|
89
|
+
fs.renameSync(tmp, CREDENTIALS_PATH)
|
|
90
|
+
} catch (e) {
|
|
91
|
+
// Non-fatal — user can still log in manually
|
|
78
92
|
}
|
|
79
|
-
} catch {
|
|
80
|
-
// Never fail install due to cleanup
|
|
81
93
|
}
|
|
94
|
+
|
|
95
|
+
async function provisionTrialAccount() {
|
|
96
|
+
// Check if ANTHROPIC_API_KEY or CODY_API_KEY already set — skip if so
|
|
97
|
+
if (process.env.ANTHROPIC_API_KEY || process.env.CODY_API_KEY) return
|
|
98
|
+
// Skip if valid credentials already on disk
|
|
99
|
+
if (hasValidCredentials()) return
|
|
100
|
+
|
|
101
|
+
try {
|
|
102
|
+
// Use built-in fetch (Node 18+) or skip silently on older Node
|
|
103
|
+
if (typeof fetch === 'undefined') return
|
|
104
|
+
|
|
105
|
+
const res = await fetch(`${AINATIVE_API}/api/v1/public/instant-db`, {
|
|
106
|
+
method: 'POST',
|
|
107
|
+
headers: { 'Content-Type': 'application/json' },
|
|
108
|
+
body: JSON.stringify({ agree_terms: true, on_behalf_of: 'cody-cli' }),
|
|
109
|
+
signal: AbortSignal.timeout(12000),
|
|
110
|
+
})
|
|
111
|
+
|
|
112
|
+
if (!res.ok) return // Silent fail — user can run `cody login` manually
|
|
113
|
+
|
|
114
|
+
const data = await res.json()
|
|
115
|
+
if (!data.api_key || !data.project_id) return
|
|
116
|
+
|
|
117
|
+
writeCredentials({
|
|
118
|
+
api_key: data.api_key,
|
|
119
|
+
project_id: data.project_id,
|
|
120
|
+
base_url: AINATIVE_API,
|
|
121
|
+
expires_at: data.expires_at,
|
|
122
|
+
claim_url: data.claim_url,
|
|
123
|
+
claimed: false,
|
|
124
|
+
provisioned_by: 'cody-cli-postinstall',
|
|
125
|
+
provisioned_at: new Date().toISOString(),
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
console.log('')
|
|
129
|
+
console.log('┌─────────────────────────────────────────────────────────────┐')
|
|
130
|
+
console.log('│ Cody CLI — AINative trial account provisioned │')
|
|
131
|
+
console.log('│ │')
|
|
132
|
+
console.log('│ You\'re ready to code. No signup required. │')
|
|
133
|
+
console.log('│ │')
|
|
134
|
+
console.log(`│ Trial expires: ${new Date(data.expires_at).toLocaleDateString().padEnd(43)}│`)
|
|
135
|
+
console.log('│ │')
|
|
136
|
+
console.log('│ Claim your free account to keep access permanently: │')
|
|
137
|
+
console.log(`│ → ${(data.claim_url || '').slice(0, 56).padEnd(57)}│`)
|
|
138
|
+
console.log('│ │')
|
|
139
|
+
console.log('│ Run `cody` to start coding. │')
|
|
140
|
+
console.log('└─────────────────────────────────────────────────────────────┘')
|
|
141
|
+
console.log('')
|
|
142
|
+
} catch {
|
|
143
|
+
// Never fail the install
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// ── Main ───────────────────────────────────────────────────────────────────────
|
|
148
|
+
|
|
149
|
+
async function main() {
|
|
150
|
+
// Step 1: cleanup stale data
|
|
151
|
+
try {
|
|
152
|
+
const configDirs = [
|
|
153
|
+
CODY_DIR,
|
|
154
|
+
path.join(HOME, '.config', 'cody-cli'),
|
|
155
|
+
]
|
|
156
|
+
let cleaned = false
|
|
157
|
+
for (const dir of configDirs) {
|
|
158
|
+
if (fs.existsSync(dir)) {
|
|
159
|
+
cleanDir(dir)
|
|
160
|
+
cleaned = true
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (cleaned) {
|
|
164
|
+
console.log('Cody CLI: cleaned stale data from previous versions.')
|
|
165
|
+
}
|
|
166
|
+
} catch {}
|
|
167
|
+
|
|
168
|
+
// Step 2: provision trial account
|
|
169
|
+
await provisionTrialAccount()
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
main().catch(() => {}) // Never fail the install
|
package/dist/cli.js
CHANGED
|
@@ -185594,7 +185594,7 @@ var init_auth2 = __esm(() => {
|
|
|
185594
185594
|
|
|
185595
185595
|
// src/utils/userAgent.ts
|
|
185596
185596
|
function getCodyUserAgent() {
|
|
185597
|
-
return `cody-cli/${"0.7.
|
|
185597
|
+
return `cody-cli/${"0.7.43"}`;
|
|
185598
185598
|
}
|
|
185599
185599
|
|
|
185600
185600
|
// src/utils/workloadContext.ts
|
|
@@ -185616,7 +185616,7 @@ function getUserAgent() {
|
|
|
185616
185616
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
185617
185617
|
const workload = getWorkload();
|
|
185618
185618
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
185619
|
-
return `claude-cli/${"0.7.
|
|
185619
|
+
return `claude-cli/${"0.7.43"} (${"external"}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
185620
185620
|
}
|
|
185621
185621
|
function getMCPUserAgent() {
|
|
185622
185622
|
const parts = [];
|
|
@@ -185630,7 +185630,7 @@ function getMCPUserAgent() {
|
|
|
185630
185630
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
185631
185631
|
}
|
|
185632
185632
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
185633
|
-
return `cody-cli/${"0.7.
|
|
185633
|
+
return `cody-cli/${"0.7.43"}${suffix}`;
|
|
185634
185634
|
}
|
|
185635
185635
|
function getWebFetchUserAgent() {
|
|
185636
185636
|
return `Cody-User (${getCodyUserAgent()}; +https://ainative.studio)`;
|
|
@@ -185768,7 +185768,7 @@ var init_user = __esm(() => {
|
|
|
185768
185768
|
deviceId,
|
|
185769
185769
|
sessionId: getSessionId(),
|
|
185770
185770
|
email: getEmail(),
|
|
185771
|
-
appVersion: "0.7.
|
|
185771
|
+
appVersion: "0.7.43",
|
|
185772
185772
|
platform: getHostPlatformForAnalytics(),
|
|
185773
185773
|
organizationUuid,
|
|
185774
185774
|
accountUuid,
|
|
@@ -193460,7 +193460,7 @@ var init_metadata = __esm(() => {
|
|
|
193460
193460
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
193461
193461
|
WHITESPACE_REGEX = /\s+/;
|
|
193462
193462
|
getVersionBase = memoize_default(() => {
|
|
193463
|
-
const match = "0.7.
|
|
193463
|
+
const match = "0.7.43".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
193464
193464
|
return match ? match[0] : undefined;
|
|
193465
193465
|
});
|
|
193466
193466
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -193500,9 +193500,9 @@ var init_metadata = __esm(() => {
|
|
|
193500
193500
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
193501
193501
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
193502
193502
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
193503
|
-
version: "0.7.
|
|
193503
|
+
version: "0.7.43",
|
|
193504
193504
|
versionBase: getVersionBase(),
|
|
193505
|
-
buildTime: "
|
|
193505
|
+
buildTime: "1779075785",
|
|
193506
193506
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
193507
193507
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
193508
193508
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -194120,7 +194120,7 @@ function initialize1PEventLogging() {
|
|
|
194120
194120
|
const platform3 = getPlatform();
|
|
194121
194121
|
const attributes = {
|
|
194122
194122
|
[import_semantic_conventions.ATTR_SERVICE_NAME]: "cody-cli",
|
|
194123
|
-
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "0.7.
|
|
194123
|
+
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "0.7.43"
|
|
194124
194124
|
};
|
|
194125
194125
|
if (platform3 === "wsl") {
|
|
194126
194126
|
const wslVersion = getWslVersion();
|
|
@@ -194147,7 +194147,7 @@ function initialize1PEventLogging() {
|
|
|
194147
194147
|
})
|
|
194148
194148
|
]
|
|
194149
194149
|
});
|
|
194150
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.ainative.cody_cli.events", "0.7.
|
|
194150
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.ainative.cody_cli.events", "0.7.43");
|
|
194151
194151
|
}
|
|
194152
194152
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
194153
194153
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -195840,7 +195840,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
195840
195840
|
if (!isAttributionHeaderEnabled()) {
|
|
195841
195841
|
return "";
|
|
195842
195842
|
}
|
|
195843
|
-
const version7 = `${"0.7.
|
|
195843
|
+
const version7 = `${"0.7.43"}.${fingerprint}`;
|
|
195844
195844
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
195845
195845
|
const cch = "";
|
|
195846
195846
|
const workload = getWorkload();
|
|
@@ -259985,7 +259985,7 @@ function getTelemetryAttributes() {
|
|
|
259985
259985
|
attributes["session.id"] = sessionId;
|
|
259986
259986
|
}
|
|
259987
259987
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
259988
|
-
attributes["app.version"] = "0.7.
|
|
259988
|
+
attributes["app.version"] = "0.7.43";
|
|
259989
259989
|
}
|
|
259990
259990
|
const oauthAccount = getOauthAccountInfo();
|
|
259991
259991
|
if (oauthAccount) {
|
|
@@ -291175,7 +291175,7 @@ function getInstallationEnv() {
|
|
|
291175
291175
|
return;
|
|
291176
291176
|
}
|
|
291177
291177
|
function getClaudeCodeVersion() {
|
|
291178
|
-
return "0.7.
|
|
291178
|
+
return "0.7.43";
|
|
291179
291179
|
}
|
|
291180
291180
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
291181
291181
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -296711,7 +296711,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
296711
296711
|
const client4 = new Client({
|
|
296712
296712
|
name: "claude-code",
|
|
296713
296713
|
title: "Cody CLI",
|
|
296714
|
-
version: "0.7.
|
|
296714
|
+
version: "0.7.43",
|
|
296715
296715
|
description: "Anthropic's agentic coding tool",
|
|
296716
296716
|
websiteUrl: PRODUCT_URL
|
|
296717
296717
|
}, {
|
|
@@ -297065,7 +297065,7 @@ var init_client8 = __esm(() => {
|
|
|
297065
297065
|
const client4 = new Client({
|
|
297066
297066
|
name: "claude-code",
|
|
297067
297067
|
title: "Cody CLI",
|
|
297068
|
-
version: "0.7.
|
|
297068
|
+
version: "0.7.43",
|
|
297069
297069
|
description: "Anthropic's agentic coding tool",
|
|
297070
297070
|
websiteUrl: PRODUCT_URL
|
|
297071
297071
|
}, {
|
|
@@ -345197,7 +345197,7 @@ async function initializeBetaTracing(resource) {
|
|
|
345197
345197
|
});
|
|
345198
345198
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
345199
345199
|
setLoggerProvider(loggerProvider);
|
|
345200
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.7.
|
|
345200
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.7.43");
|
|
345201
345201
|
setEventLogger(eventLogger);
|
|
345202
345202
|
process.on("beforeExit", async () => {
|
|
345203
345203
|
await loggerProvider?.forceFlush();
|
|
@@ -345237,7 +345237,7 @@ async function initializeTelemetry() {
|
|
|
345237
345237
|
const platform5 = getPlatform();
|
|
345238
345238
|
const baseAttributes = {
|
|
345239
345239
|
[import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
|
|
345240
|
-
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "0.7.
|
|
345240
|
+
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "0.7.43"
|
|
345241
345241
|
};
|
|
345242
345242
|
if (platform5 === "wsl") {
|
|
345243
345243
|
const wslVersion = getWslVersion();
|
|
@@ -345282,7 +345282,7 @@ async function initializeTelemetry() {
|
|
|
345282
345282
|
} catch {}
|
|
345283
345283
|
};
|
|
345284
345284
|
registerCleanup(shutdownTelemetry2);
|
|
345285
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "0.7.
|
|
345285
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "0.7.43");
|
|
345286
345286
|
}
|
|
345287
345287
|
const meterProvider = new import_sdk_metrics2.MeterProvider({
|
|
345288
345288
|
resource,
|
|
@@ -345302,7 +345302,7 @@ async function initializeTelemetry() {
|
|
|
345302
345302
|
});
|
|
345303
345303
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
345304
345304
|
setLoggerProvider(loggerProvider);
|
|
345305
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.7.
|
|
345305
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.7.43");
|
|
345306
345306
|
setEventLogger(eventLogger);
|
|
345307
345307
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
345308
345308
|
process.on("beforeExit", async () => {
|
|
@@ -345364,7 +345364,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
345364
345364
|
}
|
|
345365
345365
|
};
|
|
345366
345366
|
registerCleanup(shutdownTelemetry);
|
|
345367
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "0.7.
|
|
345367
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "0.7.43");
|
|
345368
345368
|
}
|
|
345369
345369
|
async function flushTelemetry() {
|
|
345370
345370
|
const meterProvider = getMeterProvider();
|
|
@@ -346053,9 +346053,9 @@ async function assertMinVersion() {
|
|
|
346053
346053
|
}
|
|
346054
346054
|
try {
|
|
346055
346055
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
346056
|
-
if (versionConfig.minVersion && lt("0.7.
|
|
346056
|
+
if (versionConfig.minVersion && lt("0.7.43", versionConfig.minVersion)) {
|
|
346057
346057
|
console.error(`
|
|
346058
|
-
It looks like your version of Cody CLI (${"0.7.
|
|
346058
|
+
It looks like your version of Cody CLI (${"0.7.43"}) needs an update.
|
|
346059
346059
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
346060
346060
|
|
|
346061
346061
|
To update, please run:
|
|
@@ -346292,7 +346292,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
346292
346292
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
346293
346293
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
346294
346294
|
pid: process.pid,
|
|
346295
|
-
currentVersion: "0.7.
|
|
346295
|
+
currentVersion: "0.7.43"
|
|
346296
346296
|
});
|
|
346297
346297
|
return "in_progress";
|
|
346298
346298
|
}
|
|
@@ -346301,7 +346301,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
346301
346301
|
if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
|
|
346302
346302
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
346303
346303
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
346304
|
-
currentVersion: "0.7.
|
|
346304
|
+
currentVersion: "0.7.43"
|
|
346305
346305
|
});
|
|
346306
346306
|
console.error(`
|
|
346307
346307
|
Error: Windows NPM detected in WSL
|
|
@@ -346836,7 +346836,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
346836
346836
|
}
|
|
346837
346837
|
async function getDoctorDiagnostic() {
|
|
346838
346838
|
const installationType = await getCurrentInstallationType();
|
|
346839
|
-
const version7 = typeof MACRO !== "undefined" ? "0.7.
|
|
346839
|
+
const version7 = typeof MACRO !== "undefined" ? "0.7.43" : "unknown";
|
|
346840
346840
|
const installationPath = await getInstallationPath();
|
|
346841
346841
|
const invokedBinary = getInvokedBinary();
|
|
346842
346842
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -347671,8 +347671,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
347671
347671
|
const maxVersion = await getMaxVersion();
|
|
347672
347672
|
if (maxVersion && gt(version7, maxVersion)) {
|
|
347673
347673
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version7} to ${maxVersion}`);
|
|
347674
|
-
if (gte("0.7.
|
|
347675
|
-
logForDebugging(`Native installer: current version ${"0.7.
|
|
347674
|
+
if (gte("0.7.43", maxVersion)) {
|
|
347675
|
+
logForDebugging(`Native installer: current version ${"0.7.43"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
347676
347676
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
347677
347677
|
latency_ms: Date.now() - startTime,
|
|
347678
347678
|
max_version: maxVersion,
|
|
@@ -347683,7 +347683,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
347683
347683
|
version7 = maxVersion;
|
|
347684
347684
|
}
|
|
347685
347685
|
}
|
|
347686
|
-
if (!forceReinstall && version7 === "0.7.
|
|
347686
|
+
if (!forceReinstall && version7 === "0.7.43" && await versionIsAvailable(version7) && await isPossibleClaudeBinary(executablePath)) {
|
|
347687
347687
|
logForDebugging(`Found ${version7} at ${executablePath}, skipping install`);
|
|
347688
347688
|
logEvent("tengu_native_update_complete", {
|
|
347689
347689
|
latency_ms: Date.now() - startTime,
|
|
@@ -431532,7 +431532,7 @@ function getAnthropicEnvMetadata() {
|
|
|
431532
431532
|
function getBuildAgeMinutes() {
|
|
431533
431533
|
if (false)
|
|
431534
431534
|
;
|
|
431535
|
-
const buildTime = new Date("
|
|
431535
|
+
const buildTime = new Date("1779075785").getTime();
|
|
431536
431536
|
if (isNaN(buildTime))
|
|
431537
431537
|
return;
|
|
431538
431538
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -455047,7 +455047,7 @@ function Feedback({
|
|
|
455047
455047
|
platform: env4.platform,
|
|
455048
455048
|
gitRepo: envInfo.isGit,
|
|
455049
455049
|
terminal: env4.terminal,
|
|
455050
|
-
version: "0.7.
|
|
455050
|
+
version: "0.7.43",
|
|
455051
455051
|
transcript: normalizeMessagesForAPI(messages),
|
|
455052
455052
|
errors: sanitizedErrors,
|
|
455053
455053
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -455239,7 +455239,7 @@ function Feedback({
|
|
|
455239
455239
|
", ",
|
|
455240
455240
|
env4.terminal,
|
|
455241
455241
|
", v",
|
|
455242
|
-
"0.7.
|
|
455242
|
+
"0.7.43"
|
|
455243
455243
|
]
|
|
455244
455244
|
}, undefined, true, undefined, this)
|
|
455245
455245
|
]
|
|
@@ -455345,7 +455345,7 @@ ${sanitizedDescription}
|
|
|
455345
455345
|
` + `**Environment Info**
|
|
455346
455346
|
` + `- Platform: ${env4.platform}
|
|
455347
455347
|
` + `- Terminal: ${env4.terminal}
|
|
455348
|
-
` + `- Version: ${"0.7.
|
|
455348
|
+
` + `- Version: ${"0.7.43"}
|
|
455349
455349
|
` + `- Feedback ID: ${feedbackId}
|
|
455350
455350
|
` + `
|
|
455351
455351
|
**Errors**
|
|
@@ -458445,7 +458445,7 @@ function buildPrimarySection() {
|
|
|
458445
458445
|
}, undefined, false, undefined, this);
|
|
458446
458446
|
return [{
|
|
458447
458447
|
label: "Version",
|
|
458448
|
-
value: "0.7.
|
|
458448
|
+
value: "0.7.43"
|
|
458449
458449
|
}, {
|
|
458450
458450
|
label: "Session name",
|
|
458451
458451
|
value: nameValue
|
|
@@ -462196,7 +462196,7 @@ function Config({
|
|
|
462196
462196
|
}
|
|
462197
462197
|
}, undefined, false, undefined, this)
|
|
462198
462198
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
|
|
462199
|
-
currentVersion: "0.7.
|
|
462199
|
+
currentVersion: "0.7.43",
|
|
462200
462200
|
onChoice: (choice) => {
|
|
462201
462201
|
setShowSubmenu(null);
|
|
462202
462202
|
setTabsHidden(false);
|
|
@@ -462208,7 +462208,7 @@ function Config({
|
|
|
462208
462208
|
autoUpdatesChannel: "stable"
|
|
462209
462209
|
};
|
|
462210
462210
|
if (choice === "stay") {
|
|
462211
|
-
newSettings.minimumVersion = "0.7.
|
|
462211
|
+
newSettings.minimumVersion = "0.7.43";
|
|
462212
462212
|
}
|
|
462213
462213
|
updateSettingsForSource("userSettings", newSettings);
|
|
462214
462214
|
setSettingsData((prev_27) => ({
|
|
@@ -470250,7 +470250,7 @@ function HelpV2(t0) {
|
|
|
470250
470250
|
let t6;
|
|
470251
470251
|
if ($3[31] !== tabs) {
|
|
470252
470252
|
t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
|
|
470253
|
-
title: `Cody CLI v${"0.7.
|
|
470253
|
+
title: `Cody CLI v${"0.7.43"}`,
|
|
470254
470254
|
color: "professionalBlue",
|
|
470255
470255
|
defaultTab: "general",
|
|
470256
470256
|
children: tabs
|
|
@@ -494440,7 +494440,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
494440
494440
|
return [];
|
|
494441
494441
|
}
|
|
494442
494442
|
}
|
|
494443
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.7.
|
|
494443
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.7.43") {
|
|
494444
494444
|
if (false) {}
|
|
494445
494445
|
const cachedChangelog = await getStoredChangelog();
|
|
494446
494446
|
if (lastSeenVersion !== currentVersion || !cachedChangelog) {
|
|
@@ -494453,7 +494453,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.7.42")
|
|
|
494453
494453
|
releaseNotes
|
|
494454
494454
|
};
|
|
494455
494455
|
}
|
|
494456
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "0.7.
|
|
494456
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "0.7.43") {
|
|
494457
494457
|
if (false) {}
|
|
494458
494458
|
const releaseNotes = getRecentReleaseNotes(currentVersion, lastSeenVersion);
|
|
494459
494459
|
return {
|
|
@@ -495609,7 +495609,7 @@ function getRecentActivitySync() {
|
|
|
495609
495609
|
return cachedActivity;
|
|
495610
495610
|
}
|
|
495611
495611
|
function getLogoDisplayData() {
|
|
495612
|
-
const version7 = process.env.DEMO_VERSION ?? "0.7.
|
|
495612
|
+
const version7 = process.env.DEMO_VERSION ?? "0.7.43";
|
|
495613
495613
|
const serverUrl = getDirectConnectServerUrl();
|
|
495614
495614
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
495615
495615
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -497029,7 +497029,7 @@ function LogoV2() {
|
|
|
497029
497029
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
497030
497030
|
t2 = () => {
|
|
497031
497031
|
const currentConfig = getGlobalConfig();
|
|
497032
|
-
if (currentConfig.lastReleaseNotesSeen === "0.7.
|
|
497032
|
+
if (currentConfig.lastReleaseNotesSeen === "0.7.43") {
|
|
497033
497033
|
return;
|
|
497034
497034
|
}
|
|
497035
497035
|
saveGlobalConfig(_temp329);
|
|
@@ -497705,12 +497705,12 @@ function LogoV2() {
|
|
|
497705
497705
|
return t41;
|
|
497706
497706
|
}
|
|
497707
497707
|
function _temp329(current) {
|
|
497708
|
-
if (current.lastReleaseNotesSeen === "0.7.
|
|
497708
|
+
if (current.lastReleaseNotesSeen === "0.7.43") {
|
|
497709
497709
|
return current;
|
|
497710
497710
|
}
|
|
497711
497711
|
return {
|
|
497712
497712
|
...current,
|
|
497713
|
-
lastReleaseNotesSeen: "0.7.
|
|
497713
|
+
lastReleaseNotesSeen: "0.7.43"
|
|
497714
497714
|
};
|
|
497715
497715
|
}
|
|
497716
497716
|
function _temp245(s_0) {
|
|
@@ -524065,7 +524065,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
524065
524065
|
smapsRollup,
|
|
524066
524066
|
platform: process.platform,
|
|
524067
524067
|
nodeVersion: process.version,
|
|
524068
|
-
ccVersion: "0.7.
|
|
524068
|
+
ccVersion: "0.7.43"
|
|
524069
524069
|
};
|
|
524070
524070
|
}
|
|
524071
524071
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -524593,7 +524593,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
524593
524593
|
var call56 = async () => {
|
|
524594
524594
|
return {
|
|
524595
524595
|
type: "text",
|
|
524596
|
-
value: `${"0.7.
|
|
524596
|
+
value: `${"0.7.43"} (built ${"1779075785"})`
|
|
524597
524597
|
};
|
|
524598
524598
|
}, version7, version_default;
|
|
524599
524599
|
var init_version = __esm(() => {
|
|
@@ -533541,7 +533541,7 @@ function generateHtmlReport(data, insights) {
|
|
|
533541
533541
|
</html>`;
|
|
533542
533542
|
}
|
|
533543
533543
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
533544
|
-
const version8 = typeof MACRO !== "undefined" ? "0.7.
|
|
533544
|
+
const version8 = typeof MACRO !== "undefined" ? "0.7.43" : "unknown";
|
|
533545
533545
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
533546
533546
|
const facets_summary = {
|
|
533547
533547
|
total: facets.size,
|
|
@@ -537488,7 +537488,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
537488
537488
|
init_settings2();
|
|
537489
537489
|
init_slowOperations();
|
|
537490
537490
|
init_uuid();
|
|
537491
|
-
VERSION5 = typeof MACRO !== "undefined" ? "0.7.
|
|
537491
|
+
VERSION5 = typeof MACRO !== "undefined" ? "0.7.43" : "unknown";
|
|
537492
537492
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
537493
537493
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
537494
537494
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -538693,7 +538693,7 @@ var init_filesystem = __esm(() => {
|
|
|
538693
538693
|
});
|
|
538694
538694
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
538695
538695
|
const nonce = randomBytes19(16).toString("hex");
|
|
538696
|
-
return join132(getClaudeTempDir(), "bundled-skills", "0.7.
|
|
538696
|
+
return join132(getClaudeTempDir(), "bundled-skills", "0.7.43", nonce);
|
|
538697
538697
|
});
|
|
538698
538698
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
538699
538699
|
});
|
|
@@ -544665,7 +544665,7 @@ function computeFingerprint(messageText, version8) {
|
|
|
544665
544665
|
}
|
|
544666
544666
|
function computeFingerprintFromMessages(messages) {
|
|
544667
544667
|
const firstMessageText = extractFirstMessageText(messages);
|
|
544668
|
-
return computeFingerprint(firstMessageText, "0.7.
|
|
544668
|
+
return computeFingerprint(firstMessageText, "0.7.43");
|
|
544669
544669
|
}
|
|
544670
544670
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
544671
544671
|
var init_fingerprint = () => {};
|
|
@@ -546728,7 +546728,7 @@ async function sideQuery(opts) {
|
|
|
546728
546728
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
546729
546729
|
}
|
|
546730
546730
|
const messageText = extractFirstUserMessageText(messages);
|
|
546731
|
-
const fingerprint = computeFingerprint(messageText, "0.7.
|
|
546731
|
+
const fingerprint = computeFingerprint(messageText, "0.7.43");
|
|
546732
546732
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
546733
546733
|
const systemBlocks = [
|
|
546734
546734
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -551310,7 +551310,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
551310
551310
|
slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
|
|
551311
551311
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
551312
551312
|
betas: getSdkBetas(),
|
|
551313
|
-
claude_code_version: "0.7.
|
|
551313
|
+
claude_code_version: "0.7.43",
|
|
551314
551314
|
output_style: outputStyle2,
|
|
551315
551315
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
551316
551316
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -565862,7 +565862,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
565862
565862
|
function getSemverPart(version8) {
|
|
565863
565863
|
return `${import_semver13.major(version8, { loose: true })}.${import_semver13.minor(version8, { loose: true })}.${import_semver13.patch(version8, { loose: true })}`;
|
|
565864
565864
|
}
|
|
565865
|
-
function useUpdateNotification(updatedVersion, initialVersion = "0.7.
|
|
565865
|
+
function useUpdateNotification(updatedVersion, initialVersion = "0.7.43") {
|
|
565866
565866
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
|
|
565867
565867
|
if (!updatedVersion) {
|
|
565868
565868
|
return null;
|
|
@@ -565902,7 +565902,7 @@ function AutoUpdater({
|
|
|
565902
565902
|
return;
|
|
565903
565903
|
}
|
|
565904
565904
|
if (false) {}
|
|
565905
|
-
const currentVersion = "0.7.
|
|
565905
|
+
const currentVersion = "0.7.43";
|
|
565906
565906
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
565907
565907
|
let latestVersion = await getLatestVersion(channel);
|
|
565908
565908
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -566115,12 +566115,12 @@ function NativeAutoUpdater({
|
|
|
566115
566115
|
logEvent("tengu_native_auto_updater_start", {});
|
|
566116
566116
|
try {
|
|
566117
566117
|
const maxVersion = await getMaxVersion();
|
|
566118
|
-
if (maxVersion && gt("0.7.
|
|
566118
|
+
if (maxVersion && gt("0.7.43", maxVersion)) {
|
|
566119
566119
|
const msg = await getMaxVersionMessage();
|
|
566120
566120
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
566121
566121
|
}
|
|
566122
566122
|
const result = await installLatest(channel);
|
|
566123
|
-
const currentVersion = "0.7.
|
|
566123
|
+
const currentVersion = "0.7.43";
|
|
566124
566124
|
const latencyMs = Date.now() - startTime;
|
|
566125
566125
|
if (result.lockFailed) {
|
|
566126
566126
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -566257,17 +566257,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
566257
566257
|
const maxVersion = await getMaxVersion();
|
|
566258
566258
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
566259
566259
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
566260
|
-
if (gte("0.7.
|
|
566261
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.7.
|
|
566260
|
+
if (gte("0.7.43", maxVersion)) {
|
|
566261
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.7.43"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
566262
566262
|
setUpdateAvailable(false);
|
|
566263
566263
|
return;
|
|
566264
566264
|
}
|
|
566265
566265
|
latest = maxVersion;
|
|
566266
566266
|
}
|
|
566267
|
-
const hasUpdate = latest && !gte("0.7.
|
|
566267
|
+
const hasUpdate = latest && !gte("0.7.43", latest) && !shouldSkipVersion(latest);
|
|
566268
566268
|
setUpdateAvailable(!!hasUpdate);
|
|
566269
566269
|
if (hasUpdate) {
|
|
566270
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.7.
|
|
566270
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.7.43"} -> ${latest}`);
|
|
566271
566271
|
}
|
|
566272
566272
|
};
|
|
566273
566273
|
$3[0] = t1;
|
|
@@ -566301,7 +566301,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
566301
566301
|
wrap: "truncate",
|
|
566302
566302
|
children: [
|
|
566303
566303
|
"currentVersion: ",
|
|
566304
|
-
"0.7.
|
|
566304
|
+
"0.7.43"
|
|
566305
566305
|
]
|
|
566306
566306
|
}, undefined, true, undefined, this);
|
|
566307
566307
|
$3[3] = verbose;
|
|
@@ -574411,7 +574411,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
574411
574411
|
project_dir: getOriginalCwd(),
|
|
574412
574412
|
added_dirs: addedDirs
|
|
574413
574413
|
},
|
|
574414
|
-
version: "0.7.
|
|
574414
|
+
version: "0.7.43",
|
|
574415
574415
|
output_style: {
|
|
574416
574416
|
name: outputStyleName
|
|
574417
574417
|
},
|
|
@@ -585799,7 +585799,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
585799
585799
|
} catch {}
|
|
585800
585800
|
const data = {
|
|
585801
585801
|
trigger,
|
|
585802
|
-
version: "0.7.
|
|
585802
|
+
version: "0.7.43",
|
|
585803
585803
|
platform: process.platform,
|
|
585804
585804
|
transcript,
|
|
585805
585805
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -597816,7 +597816,7 @@ function WelcomeV2() {
|
|
|
597816
597816
|
dimColor: true,
|
|
597817
597817
|
children: [
|
|
597818
597818
|
"v",
|
|
597819
|
-
"0.7.
|
|
597819
|
+
"0.7.43",
|
|
597820
597820
|
" "
|
|
597821
597821
|
]
|
|
597822
597822
|
}, undefined, true, undefined, this)
|
|
@@ -599117,7 +599117,7 @@ function completeOnboarding() {
|
|
|
599117
599117
|
saveGlobalConfig((current) => ({
|
|
599118
599118
|
...current,
|
|
599119
599119
|
hasCompletedOnboarding: true,
|
|
599120
|
-
lastOnboardingVersion: "0.7.
|
|
599120
|
+
lastOnboardingVersion: "0.7.43"
|
|
599121
599121
|
}));
|
|
599122
599122
|
}
|
|
599123
599123
|
function showDialog(root2, renderer) {
|
|
@@ -603596,7 +603596,7 @@ function appendToLog(path28, message) {
|
|
|
603596
603596
|
cwd: getFsImplementation().cwd(),
|
|
603597
603597
|
userType: "external",
|
|
603598
603598
|
sessionId: getSessionId(),
|
|
603599
|
-
version: "0.7.
|
|
603599
|
+
version: "0.7.43"
|
|
603600
603600
|
};
|
|
603601
603601
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
603602
603602
|
}
|
|
@@ -607555,8 +607555,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
607555
607555
|
}
|
|
607556
607556
|
async function checkEnvLessBridgeMinVersion() {
|
|
607557
607557
|
const cfg = await getEnvLessBridgeConfig();
|
|
607558
|
-
if (cfg.min_version && lt("0.7.
|
|
607559
|
-
return `Your version of Cody CLI (${"0.7.
|
|
607558
|
+
if (cfg.min_version && lt("0.7.43", cfg.min_version)) {
|
|
607559
|
+
return `Your version of Cody CLI (${"0.7.43"}) is too old for Remote Control.
|
|
607560
607560
|
Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
|
|
607561
607561
|
}
|
|
607562
607562
|
return null;
|
|
@@ -608030,7 +608030,7 @@ async function initBridgeCore(params) {
|
|
|
608030
608030
|
const rawApi = createBridgeApiClient({
|
|
608031
608031
|
baseUrl,
|
|
608032
608032
|
getAccessToken,
|
|
608033
|
-
runnerVersion: "0.7.
|
|
608033
|
+
runnerVersion: "0.7.43",
|
|
608034
608034
|
onDebug: logForDebugging,
|
|
608035
608035
|
onAuth401,
|
|
608036
608036
|
getTrustedDeviceToken
|
|
@@ -613667,7 +613667,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
613667
613667
|
setCwd(cwd3);
|
|
613668
613668
|
const server = new Server2({
|
|
613669
613669
|
name: "claude/tengu",
|
|
613670
|
-
version: "0.7.
|
|
613670
|
+
version: "0.7.43"
|
|
613671
613671
|
}, {
|
|
613672
613672
|
capabilities: {
|
|
613673
613673
|
tools: {}
|
|
@@ -615278,7 +615278,7 @@ __export(exports_update, {
|
|
|
615278
615278
|
});
|
|
615279
615279
|
async function update() {
|
|
615280
615280
|
logEvent("tengu_update_check", {});
|
|
615281
|
-
writeToStdout(`Current version: ${"0.7.
|
|
615281
|
+
writeToStdout(`Current version: ${"0.7.43"}
|
|
615282
615282
|
`);
|
|
615283
615283
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
615284
615284
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -615353,8 +615353,8 @@ async function update() {
|
|
|
615353
615353
|
writeToStdout(`Cody CLI is managed by Homebrew.
|
|
615354
615354
|
`);
|
|
615355
615355
|
const latest = await getLatestVersion(channel);
|
|
615356
|
-
if (latest && !gte("0.7.
|
|
615357
|
-
writeToStdout(`Update available: ${"0.7.
|
|
615356
|
+
if (latest && !gte("0.7.43", latest)) {
|
|
615357
|
+
writeToStdout(`Update available: ${"0.7.43"} → ${latest}
|
|
615358
615358
|
`);
|
|
615359
615359
|
writeToStdout(`
|
|
615360
615360
|
`);
|
|
@@ -615370,8 +615370,8 @@ async function update() {
|
|
|
615370
615370
|
writeToStdout(`Cody CLI is managed by winget.
|
|
615371
615371
|
`);
|
|
615372
615372
|
const latest = await getLatestVersion(channel);
|
|
615373
|
-
if (latest && !gte("0.7.
|
|
615374
|
-
writeToStdout(`Update available: ${"0.7.
|
|
615373
|
+
if (latest && !gte("0.7.43", latest)) {
|
|
615374
|
+
writeToStdout(`Update available: ${"0.7.43"} → ${latest}
|
|
615375
615375
|
`);
|
|
615376
615376
|
writeToStdout(`
|
|
615377
615377
|
`);
|
|
@@ -615387,8 +615387,8 @@ async function update() {
|
|
|
615387
615387
|
writeToStdout(`Cody CLI is managed by apk.
|
|
615388
615388
|
`);
|
|
615389
615389
|
const latest = await getLatestVersion(channel);
|
|
615390
|
-
if (latest && !gte("0.7.
|
|
615391
|
-
writeToStdout(`Update available: ${"0.7.
|
|
615390
|
+
if (latest && !gte("0.7.43", latest)) {
|
|
615391
|
+
writeToStdout(`Update available: ${"0.7.43"} → ${latest}
|
|
615392
615392
|
`);
|
|
615393
615393
|
writeToStdout(`
|
|
615394
615394
|
`);
|
|
@@ -615453,11 +615453,11 @@ async function update() {
|
|
|
615453
615453
|
`);
|
|
615454
615454
|
await gracefulShutdown(1);
|
|
615455
615455
|
}
|
|
615456
|
-
if (result.latestVersion === "0.7.
|
|
615457
|
-
writeToStdout(source_default.green(`Cody CLI is up to date (${"0.7.
|
|
615456
|
+
if (result.latestVersion === "0.7.43") {
|
|
615457
|
+
writeToStdout(source_default.green(`Cody CLI is up to date (${"0.7.43"})`) + `
|
|
615458
615458
|
`);
|
|
615459
615459
|
} else {
|
|
615460
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.7.
|
|
615460
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.7.43"} to version ${result.latestVersion}`) + `
|
|
615461
615461
|
`);
|
|
615462
615462
|
await regenerateCompletionCache();
|
|
615463
615463
|
}
|
|
@@ -615517,12 +615517,12 @@ async function update() {
|
|
|
615517
615517
|
`);
|
|
615518
615518
|
await gracefulShutdown(1);
|
|
615519
615519
|
}
|
|
615520
|
-
if (latestVersion === "0.7.
|
|
615521
|
-
writeToStdout(source_default.green(`Cody CLI is up to date (${"0.7.
|
|
615520
|
+
if (latestVersion === "0.7.43") {
|
|
615521
|
+
writeToStdout(source_default.green(`Cody CLI is up to date (${"0.7.43"})`) + `
|
|
615522
615522
|
`);
|
|
615523
615523
|
await gracefulShutdown(0);
|
|
615524
615524
|
}
|
|
615525
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.
|
|
615525
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.43"})
|
|
615526
615526
|
`);
|
|
615527
615527
|
writeToStdout(`Installing update...
|
|
615528
615528
|
`);
|
|
@@ -615567,7 +615567,7 @@ async function update() {
|
|
|
615567
615567
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
615568
615568
|
switch (status2) {
|
|
615569
615569
|
case "success":
|
|
615570
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.7.
|
|
615570
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.7.43"} to version ${latestVersion}`) + `
|
|
615571
615571
|
`);
|
|
615572
615572
|
await regenerateCompletionCache();
|
|
615573
615573
|
break;
|
|
@@ -616812,7 +616812,7 @@ ${customInstructions}` : customInstructions;
|
|
|
616812
616812
|
}
|
|
616813
616813
|
}
|
|
616814
616814
|
logForDiagnosticsNoPII("info", "started", {
|
|
616815
|
-
version: "0.7.
|
|
616815
|
+
version: "0.7.43",
|
|
616816
616816
|
is_native_binary: isInBundledMode()
|
|
616817
616817
|
});
|
|
616818
616818
|
registerCleanup(async () => {
|
|
@@ -617589,7 +617589,7 @@ Usage: cody --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
617589
617589
|
} else {
|
|
617590
617590
|
const pendingHookMessages = hooksPromise && hookMessages.length === 0 ? hooksPromise : undefined;
|
|
617591
617591
|
profileCheckpoint("action_after_hooks");
|
|
617592
|
-
console.log(getWelcomeMessage("0.7.
|
|
617592
|
+
console.log(getWelcomeMessage("0.7.43"));
|
|
617593
617593
|
maybeActivateProactive(options);
|
|
617594
617594
|
maybeActivateBrief(options);
|
|
617595
617595
|
if (false) {}
|
|
@@ -617606,10 +617606,10 @@ Usage: cody --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
617606
617606
|
pendingHookMessages
|
|
617607
617607
|
}, renderAndRun);
|
|
617608
617608
|
}
|
|
617609
|
-
}).version("0.7.
|
|
617609
|
+
}).version("0.7.43 (Cody CLI)", "-v, --version", "Output the version number");
|
|
617610
617610
|
program2.configureOutput({
|
|
617611
617611
|
writeOut: (str2) => {
|
|
617612
|
-
if (str2.includes("0.7.
|
|
617612
|
+
if (str2.includes("0.7.43")) {
|
|
617613
617613
|
process.stdout.write(getCodyLogo() + `
|
|
617614
617614
|
` + str2);
|
|
617615
617615
|
} else {
|
|
@@ -618139,6 +618139,23 @@ try {
|
|
|
618139
618139
|
}
|
|
618140
618140
|
} catch {}
|
|
618141
618141
|
process.env.COREPACK_ENABLE_AUTO_PIN = "0";
|
|
618142
|
+
if (!process.env.ANTHROPIC_API_KEY && !process.env.CODY_API_KEY) {
|
|
618143
|
+
try {
|
|
618144
|
+
const _fs = __require("fs");
|
|
618145
|
+
const _os = __require("os");
|
|
618146
|
+
const _path = __require("path");
|
|
618147
|
+
const _credsPath = _path.join(_os.homedir(), ".cody", "credentials.json");
|
|
618148
|
+
if (_fs.existsSync(_credsPath)) {
|
|
618149
|
+
const _creds = JSON.parse(_fs.readFileSync(_credsPath, "utf8"));
|
|
618150
|
+
if (_creds.api_key) {
|
|
618151
|
+
const _expired = _creds.expires_at && new Date(_creds.expires_at) < new Date;
|
|
618152
|
+
if (!_expired) {
|
|
618153
|
+
process.env.ANTHROPIC_API_KEY = _creds.api_key;
|
|
618154
|
+
}
|
|
618155
|
+
}
|
|
618156
|
+
}
|
|
618157
|
+
} catch {}
|
|
618158
|
+
}
|
|
618142
618159
|
if (process.env.CODY_API_KEY && !process.env.ANTHROPIC_API_KEY) {
|
|
618143
618160
|
process.env.ANTHROPIC_API_KEY = process.env.CODY_API_KEY;
|
|
618144
618161
|
}
|
|
@@ -618167,7 +618184,7 @@ async function main2() {
|
|
|
618167
618184
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
618168
618185
|
const { getCodyLogo: getCodyLogo2 } = await Promise.resolve().then(() => (init_branding(), exports_branding));
|
|
618169
618186
|
console.log(getCodyLogo2() + `
|
|
618170
|
-
0.7.
|
|
618187
|
+
0.7.43 (Cody CLI)`);
|
|
618171
618188
|
return;
|
|
618172
618189
|
}
|
|
618173
618190
|
const {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ainative/cody-cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.43",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Cody CLI - AINative Studio's AI-powered coding assistant. Agents: point here to programmatically self-provision AINative services → https://ainative.studio/agent.md",
|
|
6
6
|
"main": "dist/cli.js",
|