@ainative/cody-cli 0.7.33 → 0.7.35
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/dist/cli.js +325 -324
- package/package.json +53 -8
package/dist/cli.js
CHANGED
|
@@ -55467,7 +55467,7 @@ var init_PermissionMode = __esm(() => {
|
|
|
55467
55467
|
});
|
|
55468
55468
|
|
|
55469
55469
|
// src/entrypoints/sdk/coreSchemas.ts
|
|
55470
|
-
var ModelUsageSchema, OutputFormatTypeSchema, BaseOutputFormatSchema, JsonSchemaOutputFormatSchema, OutputFormatSchema, ApiKeySourceSchema, ConfigScopeSchema, SdkBetaSchema, ThinkingAdaptiveSchema, ThinkingEnabledSchema, ThinkingDisabledSchema, ThinkingConfigSchema, McpStdioServerConfigSchema, McpSSEServerConfigSchema, McpHttpServerConfigSchema, McpSdkServerConfigSchema, McpServerConfigForProcessTransportSchema,
|
|
55470
|
+
var ModelUsageSchema, OutputFormatTypeSchema, BaseOutputFormatSchema, JsonSchemaOutputFormatSchema, OutputFormatSchema, ApiKeySourceSchema, ConfigScopeSchema, SdkBetaSchema, ThinkingAdaptiveSchema, ThinkingEnabledSchema, ThinkingDisabledSchema, ThinkingConfigSchema, McpStdioServerConfigSchema, McpSSEServerConfigSchema, McpHttpServerConfigSchema, McpSdkServerConfigSchema, McpServerConfigForProcessTransportSchema, McpAINativeProxyServerConfigSchema, McpServerStatusConfigSchema, McpServerStatusSchema, McpSetServersResultSchema, PermissionUpdateDestinationSchema, PermissionBehaviorSchema, PermissionRuleValueSchema, PermissionUpdateSchema, PermissionDecisionClassificationSchema, PermissionResultSchema, PermissionModeSchema, HOOK_EVENTS, HookEventSchema, BaseHookInputSchema, PreToolUseHookInputSchema, PermissionRequestHookInputSchema, PostToolUseHookInputSchema, PostToolUseFailureHookInputSchema, PermissionDeniedHookInputSchema, NotificationHookInputSchema, UserPromptSubmitHookInputSchema, SessionStartHookInputSchema, SetupHookInputSchema, StopHookInputSchema, StopFailureHookInputSchema, SubagentStartHookInputSchema, SubagentStopHookInputSchema, PreCompactHookInputSchema, PostCompactHookInputSchema, TeammateIdleHookInputSchema, TaskCreatedHookInputSchema, TaskCompletedHookInputSchema, ElicitationHookInputSchema, ElicitationResultHookInputSchema, CONFIG_CHANGE_SOURCES, ConfigChangeHookInputSchema, INSTRUCTIONS_LOAD_REASONS, INSTRUCTIONS_MEMORY_TYPES, InstructionsLoadedHookInputSchema, WorktreeCreateHookInputSchema, WorktreeRemoveHookInputSchema, CwdChangedHookInputSchema, FileChangedHookInputSchema, EXIT_REASONS, ExitReasonSchema, SessionEndHookInputSchema, HookInputSchema, AsyncHookJSONOutputSchema, PreToolUseHookSpecificOutputSchema, UserPromptSubmitHookSpecificOutputSchema, SessionStartHookSpecificOutputSchema, SetupHookSpecificOutputSchema, SubagentStartHookSpecificOutputSchema, PostToolUseHookSpecificOutputSchema, PostToolUseFailureHookSpecificOutputSchema, PermissionDeniedHookSpecificOutputSchema, NotificationHookSpecificOutputSchema, PermissionRequestHookSpecificOutputSchema, CwdChangedHookSpecificOutputSchema, FileChangedHookSpecificOutputSchema, SyncHookJSONOutputSchema, ElicitationHookSpecificOutputSchema, ElicitationResultHookSpecificOutputSchema, WorktreeCreateHookSpecificOutputSchema, HookJSONOutputSchema, PromptRequestOptionSchema, PromptRequestSchema, PromptResponseSchema, SlashCommandSchema, AgentInfoSchema, ModelInfoSchema, AccountInfoSchema, AgentMcpServerSpecSchema, AgentDefinitionSchema, SettingSourceSchema, SdkPluginConfigSchema, RewindFilesResultSchema, APIUserMessagePlaceholder, APIAssistantMessagePlaceholder, RawMessageStreamEventPlaceholder, UUIDPlaceholder, NonNullableUsagePlaceholder, SDKAssistantMessageErrorSchema, SDKStatusSchema, SDKUserMessageContentSchema, SDKUserMessageSchema, SDKUserMessageReplaySchema, SDKRateLimitInfoSchema, SDKAssistantMessageSchema, SDKRateLimitEventSchema, SDKStreamlinedTextMessageSchema, SDKStreamlinedToolUseSummaryMessageSchema, SDKPermissionDenialSchema, SDKResultSuccessSchema, SDKResultErrorSchema, SDKResultMessageSchema, SDKSystemMessageSchema, SDKPartialAssistantMessageSchema, SDKCompactBoundaryMessageSchema, SDKStatusMessageSchema, SDKPostTurnSummaryMessageSchema, SDKAPIRetryMessageSchema, SDKLocalCommandOutputMessageSchema, SDKHookStartedMessageSchema, SDKHookProgressMessageSchema, SDKHookResponseMessageSchema, SDKToolProgressMessageSchema, SDKAuthStatusMessageSchema, SDKFilesPersistedEventSchema, SDKTaskNotificationMessageSchema, SDKTaskStartedMessageSchema, SDKSessionStateChangedMessageSchema, SDKTaskProgressMessageSchema, SDKToolUseSummaryMessageSchema, SDKElicitationCompleteMessageSchema, SDKPromptSuggestionMessageSchema, SDKSessionInfoSchema, SDKMessageSchema, FastModeStateSchema;
|
|
55471
55471
|
var init_coreSchemas = __esm(() => {
|
|
55472
55472
|
init_v4();
|
|
55473
55473
|
ModelUsageSchema = lazySchema(() => exports_external.object({
|
|
@@ -55533,14 +55533,14 @@ var init_coreSchemas = __esm(() => {
|
|
|
55533
55533
|
McpHttpServerConfigSchema(),
|
|
55534
55534
|
McpSdkServerConfigSchema()
|
|
55535
55535
|
]));
|
|
55536
|
-
|
|
55537
|
-
type: exports_external.literal("
|
|
55536
|
+
McpAINativeProxyServerConfigSchema = lazySchema(() => exports_external.object({
|
|
55537
|
+
type: exports_external.literal("ainative-proxy"),
|
|
55538
55538
|
url: exports_external.string(),
|
|
55539
55539
|
id: exports_external.string()
|
|
55540
55540
|
}));
|
|
55541
55541
|
McpServerStatusConfigSchema = lazySchema(() => exports_external.union([
|
|
55542
55542
|
McpServerConfigForProcessTransportSchema(),
|
|
55543
|
-
|
|
55543
|
+
McpAINativeProxyServerConfigSchema()
|
|
55544
55544
|
]));
|
|
55545
55545
|
McpServerStatusSchema = lazySchema(() => exports_external.object({
|
|
55546
55546
|
name: exports_external.string().describe("Server name as configured"),
|
|
@@ -56585,7 +56585,7 @@ var init_hooks = __esm(() => {
|
|
|
56585
56585
|
});
|
|
56586
56586
|
|
|
56587
56587
|
// src/services/mcp/types.ts
|
|
56588
|
-
var ConfigScopeSchema2, TransportSchema, McpStdioServerConfigSchema2, McpXaaConfigSchema, McpOAuthConfigSchema, McpSSEServerConfigSchema2, McpSSEIDEServerConfigSchema, McpWebSocketIDEServerConfigSchema, McpHTTPServerConfigSchema, McpWebSocketServerConfigSchema, McpSdkServerConfigSchema2,
|
|
56588
|
+
var ConfigScopeSchema2, TransportSchema, McpStdioServerConfigSchema2, McpXaaConfigSchema, McpOAuthConfigSchema, McpSSEServerConfigSchema2, McpSSEIDEServerConfigSchema, McpWebSocketIDEServerConfigSchema, McpHTTPServerConfigSchema, McpWebSocketServerConfigSchema, McpSdkServerConfigSchema2, McpAINativeProxyServerConfigSchema2, McpServerConfigSchema, McpJsonConfigSchema;
|
|
56589
56589
|
var init_types2 = __esm(() => {
|
|
56590
56590
|
init_v4();
|
|
56591
56591
|
ConfigScopeSchema2 = lazySchema(() => exports_external.enum([
|
|
@@ -56594,6 +56594,7 @@ var init_types2 = __esm(() => {
|
|
|
56594
56594
|
"project",
|
|
56595
56595
|
"dynamic",
|
|
56596
56596
|
"enterprise",
|
|
56597
|
+
"ainative",
|
|
56597
56598
|
"claudeai",
|
|
56598
56599
|
"managed"
|
|
56599
56600
|
]));
|
|
@@ -56650,8 +56651,8 @@ var init_types2 = __esm(() => {
|
|
|
56650
56651
|
type: exports_external.literal("sdk"),
|
|
56651
56652
|
name: exports_external.string()
|
|
56652
56653
|
}));
|
|
56653
|
-
|
|
56654
|
-
type: exports_external.literal("
|
|
56654
|
+
McpAINativeProxyServerConfigSchema2 = lazySchema(() => exports_external.object({
|
|
56655
|
+
type: exports_external.literal("ainative-proxy"),
|
|
56655
56656
|
url: exports_external.string(),
|
|
56656
56657
|
id: exports_external.string()
|
|
56657
56658
|
}));
|
|
@@ -56663,7 +56664,7 @@ var init_types2 = __esm(() => {
|
|
|
56663
56664
|
McpHTTPServerConfigSchema(),
|
|
56664
56665
|
McpWebSocketServerConfigSchema(),
|
|
56665
56666
|
McpSdkServerConfigSchema2(),
|
|
56666
|
-
|
|
56667
|
+
McpAINativeProxyServerConfigSchema2()
|
|
56667
56668
|
]));
|
|
56668
56669
|
McpJsonConfigSchema = lazySchema(() => exports_external.object({
|
|
56669
56670
|
mcpServers: exports_external.record(exports_external.string(), McpServerConfigSchema())
|
|
@@ -173129,7 +173130,7 @@ var init_auth2 = __esm(() => {
|
|
|
173129
173130
|
|
|
173130
173131
|
// src/utils/userAgent.ts
|
|
173131
173132
|
function getCodyUserAgent() {
|
|
173132
|
-
return `cody-cli/${"0.7.
|
|
173133
|
+
return `cody-cli/${"0.7.35"}`;
|
|
173133
173134
|
}
|
|
173134
173135
|
|
|
173135
173136
|
// src/utils/workloadContext.ts
|
|
@@ -173151,7 +173152,7 @@ function getUserAgent() {
|
|
|
173151
173152
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
173152
173153
|
const workload = getWorkload();
|
|
173153
173154
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
173154
|
-
return `claude-cli/${"0.7.
|
|
173155
|
+
return `claude-cli/${"0.7.35"} (${"external"}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
173155
173156
|
}
|
|
173156
173157
|
function getMCPUserAgent() {
|
|
173157
173158
|
const parts = [];
|
|
@@ -173165,7 +173166,7 @@ function getMCPUserAgent() {
|
|
|
173165
173166
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
173166
173167
|
}
|
|
173167
173168
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
173168
|
-
return `cody-cli/${"0.7.
|
|
173169
|
+
return `cody-cli/${"0.7.35"}${suffix}`;
|
|
173169
173170
|
}
|
|
173170
173171
|
function getWebFetchUserAgent() {
|
|
173171
173172
|
return `Cody-User (${getCodyUserAgent()}; +https://ainative.studio)`;
|
|
@@ -173303,7 +173304,7 @@ var init_user = __esm(() => {
|
|
|
173303
173304
|
deviceId,
|
|
173304
173305
|
sessionId: getSessionId(),
|
|
173305
173306
|
email: getEmail(),
|
|
173306
|
-
appVersion: "0.7.
|
|
173307
|
+
appVersion: "0.7.35",
|
|
173307
173308
|
platform: getHostPlatformForAnalytics(),
|
|
173308
173309
|
organizationUuid,
|
|
173309
173310
|
accountUuid,
|
|
@@ -180577,7 +180578,7 @@ function isAnalyticsToolDetailsLoggingEnabled(mcpServerType, mcpServerBaseUrl) {
|
|
|
180577
180578
|
if (process.env.CLAUDE_CODE_ENTRYPOINT === "local-agent") {
|
|
180578
180579
|
return true;
|
|
180579
180580
|
}
|
|
180580
|
-
if (mcpServerType === "
|
|
180581
|
+
if (mcpServerType === "ainative-proxy") {
|
|
180581
180582
|
return true;
|
|
180582
180583
|
}
|
|
180583
180584
|
if (mcpServerBaseUrl && isOfficialMcpUrl(mcpServerBaseUrl)) {
|
|
@@ -180995,7 +180996,7 @@ var init_metadata = __esm(() => {
|
|
|
180995
180996
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
180996
180997
|
WHITESPACE_REGEX = /\s+/;
|
|
180997
180998
|
getVersionBase = memoize_default(() => {
|
|
180998
|
-
const match = "0.7.
|
|
180999
|
+
const match = "0.7.35".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
180999
181000
|
return match ? match[0] : undefined;
|
|
181000
181001
|
});
|
|
181001
181002
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -181035,9 +181036,9 @@ var init_metadata = __esm(() => {
|
|
|
181035
181036
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
181036
181037
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
181037
181038
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
181038
|
-
version: "0.7.
|
|
181039
|
+
version: "0.7.35",
|
|
181039
181040
|
versionBase: getVersionBase(),
|
|
181040
|
-
buildTime: "
|
|
181041
|
+
buildTime: "1777670343",
|
|
181041
181042
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
181042
181043
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
181043
181044
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -181655,7 +181656,7 @@ function initialize1PEventLogging() {
|
|
|
181655
181656
|
const platform3 = getPlatform();
|
|
181656
181657
|
const attributes = {
|
|
181657
181658
|
[import_semantic_conventions.ATTR_SERVICE_NAME]: "cody-cli",
|
|
181658
|
-
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "0.7.
|
|
181659
|
+
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "0.7.35"
|
|
181659
181660
|
};
|
|
181660
181661
|
if (platform3 === "wsl") {
|
|
181661
181662
|
const wslVersion = getWslVersion();
|
|
@@ -181682,7 +181683,7 @@ function initialize1PEventLogging() {
|
|
|
181682
181683
|
})
|
|
181683
181684
|
]
|
|
181684
181685
|
});
|
|
181685
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.ainative.cody_cli.events", "0.7.
|
|
181686
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.ainative.cody_cli.events", "0.7.35");
|
|
181686
181687
|
}
|
|
181687
181688
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
181688
181689
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -183375,7 +183376,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
183375
183376
|
if (!isAttributionHeaderEnabled()) {
|
|
183376
183377
|
return "";
|
|
183377
183378
|
}
|
|
183378
|
-
const version6 = `${"0.7.
|
|
183379
|
+
const version6 = `${"0.7.35"}.${fingerprint}`;
|
|
183379
183380
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
183380
183381
|
const cch = "";
|
|
183381
183382
|
const workload = getWorkload();
|
|
@@ -219324,6 +219325,25 @@ function ripgrepCommand() {
|
|
|
219324
219325
|
argv0: config2.argv0
|
|
219325
219326
|
};
|
|
219326
219327
|
}
|
|
219328
|
+
function getRipgrepMissingWarning() {
|
|
219329
|
+
const config2 = getRipgrepConfig();
|
|
219330
|
+
if (config2.mode === "embedded")
|
|
219331
|
+
return null;
|
|
219332
|
+
if (config2.mode === "system")
|
|
219333
|
+
return null;
|
|
219334
|
+
const { existsSync: existsSync3 } = __require("fs");
|
|
219335
|
+
if (existsSync3(config2.command))
|
|
219336
|
+
return null;
|
|
219337
|
+
let installHint;
|
|
219338
|
+
if (process.platform === "darwin") {
|
|
219339
|
+
installHint = "brew install ripgrep";
|
|
219340
|
+
} else if (process.platform === "linux") {
|
|
219341
|
+
installHint = "apt install ripgrep | dnf install ripgrep";
|
|
219342
|
+
} else {
|
|
219343
|
+
installHint = "https://github.com/BurntSushi/ripgrep#installation";
|
|
219344
|
+
}
|
|
219345
|
+
return `ripgrep (rg) not found — Glob/Grep tools will not work. Install: ${installHint}`;
|
|
219346
|
+
}
|
|
219327
219347
|
function isEagainError(stderr) {
|
|
219328
219348
|
return stderr.includes("os error 11") || stderr.includes("Resource temporarily unavailable");
|
|
219329
219349
|
}
|
|
@@ -233941,10 +233961,14 @@ var init_planAgent = __esm(() => {
|
|
|
233941
233961
|
// src/tools/AgentTool/built-in/statuslineSetup.ts
|
|
233942
233962
|
var STATUSLINE_SYSTEM_PROMPT = `You are a status line setup agent for Cody CLI. Your job is to create or update the statusLine command in the user's Cody CLI settings.
|
|
233943
233963
|
|
|
233964
|
+
Cody CLI stores all configuration in ~/.cody/ (not ~/.claude/).
|
|
233965
|
+
- User settings file: ~/.cody/settings.json
|
|
233966
|
+
- Status line script: ~/.cody/statusline-command.sh
|
|
233967
|
+
|
|
233944
233968
|
When asked to convert the user's shell PS1 configuration, follow these steps:
|
|
233945
233969
|
1. Read the user's shell configuration files in this order of preference:
|
|
233946
233970
|
- ~/.zshrc
|
|
233947
|
-
- ~/.bashrc
|
|
233971
|
+
- ~/.bashrc
|
|
233948
233972
|
- ~/.bash_profile
|
|
233949
233973
|
- ~/.profile
|
|
233950
233974
|
|
|
@@ -233952,7 +233976,7 @@ When asked to convert the user's shell PS1 configuration, follow these steps:
|
|
|
233952
233976
|
|
|
233953
233977
|
3. Convert PS1 escape sequences to shell commands:
|
|
233954
233978
|
- \\u → $(whoami)
|
|
233955
|
-
- \\h → $(hostname -s)
|
|
233979
|
+
- \\h → $(hostname -s)
|
|
233956
233980
|
- \\H → $(hostname)
|
|
233957
233981
|
- \\w → $(pwd)
|
|
233958
233982
|
- \\W → $(basename "$(pwd)")
|
|
@@ -233978,15 +234002,15 @@ How to use the statusLine command:
|
|
|
233978
234002
|
"transcript_path": "string", // Path to the conversation transcript
|
|
233979
234003
|
"cwd": "string", // Current working directory
|
|
233980
234004
|
"model": {
|
|
233981
|
-
"id": "string", // Model ID (e.g., "
|
|
233982
|
-
"display_name": "string" // Display name (e.g., "
|
|
234005
|
+
"id": "string", // Model ID (e.g., "qwen-coder-32b")
|
|
234006
|
+
"display_name": "string" // Display name (e.g., "Qwen Coder 32B")
|
|
233983
234007
|
},
|
|
233984
234008
|
"workspace": {
|
|
233985
234009
|
"current_dir": "string", // Current working directory path
|
|
233986
234010
|
"project_dir": "string", // Project root directory path
|
|
233987
234011
|
"added_dirs": ["string"] // Directories added via /add-dir
|
|
233988
234012
|
},
|
|
233989
|
-
"version": "string", // Cody CLI app version (e.g., "
|
|
234013
|
+
"version": "string", // Cody CLI app version (e.g., "0.7.34")
|
|
233990
234014
|
"output_style": {
|
|
233991
234015
|
"name": "string", // Output style name (e.g., "default", "Explanatory", "Learning")
|
|
233992
234016
|
},
|
|
@@ -234003,7 +234027,7 @@ How to use the statusLine command:
|
|
|
234003
234027
|
"used_percentage": number | null, // Pre-calculated: % of context used (0-100), null if no messages yet
|
|
234004
234028
|
"remaining_percentage": number | null // Pre-calculated: % of context remaining (0-100), null if no messages yet
|
|
234005
234029
|
},
|
|
234006
|
-
"rate_limits": { // Optional:
|
|
234030
|
+
"rate_limits": { // Optional: AINative subscription usage limits. Only present for subscribers after first API response.
|
|
234007
234031
|
"five_hour": { // Optional: 5-hour session limit (may be absent)
|
|
234008
234032
|
"used_percentage": number, // Percentage of limit used (0-100)
|
|
234009
234033
|
"resets_at": number // Unix epoch seconds when this window resets
|
|
@@ -234016,7 +234040,7 @@ How to use the statusLine command:
|
|
|
234016
234040
|
"vim": { // Optional, only present when vim mode is enabled
|
|
234017
234041
|
"mode": "INSERT" | "NORMAL" // Current vim editor mode
|
|
234018
234042
|
},
|
|
234019
|
-
"agent": { // Optional, only present when
|
|
234043
|
+
"agent": { // Optional, only present when Cody is started with --agent flag
|
|
234020
234044
|
"name": "string", // Agent name (e.g., "code-architect", "test-runner")
|
|
234021
234045
|
"type": "string" // Optional: Agent type identifier
|
|
234022
234046
|
},
|
|
@@ -234024,11 +234048,11 @@ How to use the statusLine command:
|
|
|
234024
234048
|
"name": "string", // Worktree name/slug (e.g., "my-feature")
|
|
234025
234049
|
"path": "string", // Full path to the worktree directory
|
|
234026
234050
|
"branch": "string", // Optional: Git branch name for the worktree
|
|
234027
|
-
"original_cwd": "string", // The directory
|
|
234051
|
+
"original_cwd": "string", // The directory Cody was in before entering the worktree
|
|
234028
234052
|
"original_branch": "string" // Optional: Branch that was checked out before entering the worktree
|
|
234029
234053
|
}
|
|
234030
234054
|
}
|
|
234031
|
-
|
|
234055
|
+
|
|
234032
234056
|
You can use this JSON data in your command like:
|
|
234033
234057
|
- $(cat | jq -r '.model.display_name')
|
|
234034
234058
|
- $(cat | jq -r '.workspace.current_dir')
|
|
@@ -234043,29 +234067,28 @@ How to use the statusLine command:
|
|
|
234043
234067
|
Or to display context used percentage:
|
|
234044
234068
|
- input=$(cat); used=$(echo "$input" | jq -r '.context_window.used_percentage // empty'); [ -n "$used" ] && echo "Context: $used% used"
|
|
234045
234069
|
|
|
234046
|
-
To display subscription rate limit usage (5-hour session limit):
|
|
234070
|
+
To display AINative subscription rate limit usage (5-hour session limit):
|
|
234047
234071
|
- input=$(cat); pct=$(echo "$input" | jq -r '.rate_limits.five_hour.used_percentage // empty'); [ -n "$pct" ] && printf "5h: %.0f%%" "$pct"
|
|
234048
234072
|
|
|
234049
234073
|
To display both 5-hour and 7-day limits when available:
|
|
234050
234074
|
- input=$(cat); five=$(echo "$input" | jq -r '.rate_limits.five_hour.used_percentage // empty'); week=$(echo "$input" | jq -r '.rate_limits.seven_day.used_percentage // empty'); out=""; [ -n "$five" ] && out="5h:$(printf '%.0f' "$five")%"; [ -n "$week" ] && out="$out 7d:$(printf '%.0f' "$week")%"; echo "$out"
|
|
234051
234075
|
|
|
234052
|
-
2. For longer commands,
|
|
234053
|
-
- ~/.cody/statusline-command.sh and reference that file in the settings.
|
|
234076
|
+
2. For longer commands, save the script to ~/.cody/statusline-command.sh and reference it in settings.
|
|
234054
234077
|
|
|
234055
234078
|
3. Update the user's ~/.cody/settings.json with:
|
|
234056
234079
|
{
|
|
234057
234080
|
"statusLine": {
|
|
234058
|
-
"type": "command",
|
|
234059
|
-
"command": "
|
|
234081
|
+
"type": "command",
|
|
234082
|
+
"command": "bash ~/.cody/statusline-command.sh"
|
|
234060
234083
|
}
|
|
234061
234084
|
}
|
|
234062
234085
|
|
|
234063
234086
|
4. If ~/.cody/settings.json is a symlink, update the target file instead.
|
|
234064
234087
|
|
|
234065
234088
|
Guidelines:
|
|
234066
|
-
- Preserve existing settings when updating
|
|
234067
|
-
- Return a summary of what was configured, including the
|
|
234068
|
-
- If the script includes git commands, they should skip optional locks
|
|
234089
|
+
- Preserve existing settings when updating ~/.cody/settings.json
|
|
234090
|
+
- Return a summary of what was configured, including the script file path if used
|
|
234091
|
+
- If the script includes git commands, they should skip optional locks (use -c core.useBuiltinFSMonitor=false)
|
|
234069
234092
|
- IMPORTANT: At the end of your response, inform the parent agent that this "statusline-setup" agent must be used for further status line changes.
|
|
234070
234093
|
Also ensure that the user is informed that they can ask Cody to continue to make changes to the status line.
|
|
234071
234094
|
`, STATUSLINE_SETUP_AGENT;
|
|
@@ -247498,7 +247521,7 @@ function getTelemetryAttributes() {
|
|
|
247498
247521
|
attributes["session.id"] = sessionId;
|
|
247499
247522
|
}
|
|
247500
247523
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
247501
|
-
attributes["app.version"] = "0.7.
|
|
247524
|
+
attributes["app.version"] = "0.7.35";
|
|
247502
247525
|
}
|
|
247503
247526
|
const oauthAccount = getOauthAccountInfo();
|
|
247504
247527
|
if (oauthAccount) {
|
|
@@ -272924,7 +272947,7 @@ function resolvePluginMcpEnvironment(config3, plugin, userConfig, errors4, plugi
|
|
|
272924
272947
|
case "sse-ide":
|
|
272925
272948
|
case "ws-ide":
|
|
272926
272949
|
case "sdk":
|
|
272927
|
-
case "
|
|
272950
|
+
case "ainative-proxy":
|
|
272928
272951
|
resolved = config3;
|
|
272929
272952
|
break;
|
|
272930
272953
|
}
|
|
@@ -272979,24 +273002,24 @@ var init_mcpPluginIntegration = __esm(() => {
|
|
|
272979
273002
|
init_pluginOptionsStorage();
|
|
272980
273003
|
});
|
|
272981
273004
|
|
|
272982
|
-
// src/services/mcp/
|
|
272983
|
-
function
|
|
272984
|
-
|
|
273005
|
+
// src/services/mcp/ainative.ts
|
|
273006
|
+
function clearAINativeMcpConfigsCache() {
|
|
273007
|
+
fetchAINativeMcpConfigsIfEligible.cache.clear?.();
|
|
272985
273008
|
clearMcpAuthCache();
|
|
272986
273009
|
}
|
|
272987
|
-
function
|
|
273010
|
+
function markAINativeMcpConnected(name3) {
|
|
272988
273011
|
saveGlobalConfig((current) => {
|
|
272989
|
-
const seen = current.
|
|
273012
|
+
const seen = current.ainativeMcpEverConnected ?? [];
|
|
272990
273013
|
if (seen.includes(name3))
|
|
272991
273014
|
return current;
|
|
272992
|
-
return { ...current,
|
|
273015
|
+
return { ...current, ainativeMcpEverConnected: [...seen, name3] };
|
|
272993
273016
|
});
|
|
272994
273017
|
}
|
|
272995
|
-
function
|
|
272996
|
-
return (getGlobalConfig().
|
|
273018
|
+
function hasAINativeMcpEverConnected(name3) {
|
|
273019
|
+
return (getGlobalConfig().ainativeMcpEverConnected ?? []).includes(name3);
|
|
272997
273020
|
}
|
|
272998
|
-
var FETCH_TIMEOUT_MS = 5000,
|
|
272999
|
-
var
|
|
273021
|
+
var FETCH_TIMEOUT_MS = 5000, fetchAINativeMcpConfigsIfEligible;
|
|
273022
|
+
var init_ainative = __esm(() => {
|
|
273000
273023
|
init_axios2();
|
|
273001
273024
|
init_memoize();
|
|
273002
273025
|
init_oauth();
|
|
@@ -273006,46 +273029,44 @@ var init_claudeai = __esm(() => {
|
|
|
273006
273029
|
init_debug();
|
|
273007
273030
|
init_envUtils();
|
|
273008
273031
|
init_client8();
|
|
273009
|
-
|
|
273032
|
+
fetchAINativeMcpConfigsIfEligible = memoize_default(async () => {
|
|
273010
273033
|
try {
|
|
273011
|
-
if (isEnvDefinedFalsy(process.env.
|
|
273012
|
-
logForDebugging("[
|
|
273013
|
-
logEvent("
|
|
273034
|
+
if (isEnvDefinedFalsy(process.env.ENABLE_AINATIVE_MCP_SERVERS)) {
|
|
273035
|
+
logForDebugging("[ainative-mcp] Disabled via env var");
|
|
273036
|
+
logEvent("tengu_ainative_mcp_eligibility", {
|
|
273014
273037
|
state: "disabled_env_var"
|
|
273015
273038
|
});
|
|
273016
273039
|
return {};
|
|
273017
273040
|
}
|
|
273018
273041
|
const tokens = getClaudeAIOAuthTokens();
|
|
273019
273042
|
if (!tokens?.accessToken) {
|
|
273020
|
-
logForDebugging("[
|
|
273021
|
-
logEvent("
|
|
273043
|
+
logForDebugging("[ainative-mcp] No access token");
|
|
273044
|
+
logEvent("tengu_ainative_mcp_eligibility", {
|
|
273022
273045
|
state: "no_oauth_token"
|
|
273023
273046
|
});
|
|
273024
273047
|
return {};
|
|
273025
273048
|
}
|
|
273026
273049
|
if (!tokens.scopes?.includes("user:mcp_servers")) {
|
|
273027
|
-
logForDebugging(`[
|
|
273028
|
-
logEvent("
|
|
273050
|
+
logForDebugging(`[ainative-mcp] Missing user:mcp_servers scope (scopes=${tokens.scopes?.join(",") || "none"})`);
|
|
273051
|
+
logEvent("tengu_ainative_mcp_eligibility", {
|
|
273029
273052
|
state: "missing_scope"
|
|
273030
273053
|
});
|
|
273031
273054
|
return {};
|
|
273032
273055
|
}
|
|
273033
273056
|
const baseUrl = getOauthConfig().BASE_API_URL;
|
|
273034
|
-
const url3 = `${baseUrl}/
|
|
273035
|
-
logForDebugging(`[
|
|
273057
|
+
const url3 = `${baseUrl}/api/oauth/account/mcp_servers`;
|
|
273058
|
+
logForDebugging(`[ainative-mcp] Fetching from ${url3}`);
|
|
273036
273059
|
const response = await axios_default.get(url3, {
|
|
273037
273060
|
headers: {
|
|
273038
273061
|
Authorization: `Bearer ${tokens.accessToken}`,
|
|
273039
|
-
"Content-Type": "application/json"
|
|
273040
|
-
"anthropic-beta": MCP_SERVERS_BETA_HEADER,
|
|
273041
|
-
"anthropic-version": "2023-06-01"
|
|
273062
|
+
"Content-Type": "application/json"
|
|
273042
273063
|
},
|
|
273043
273064
|
timeout: FETCH_TIMEOUT_MS
|
|
273044
273065
|
});
|
|
273045
273066
|
const configs = {};
|
|
273046
273067
|
const usedNormalizedNames = new Set;
|
|
273047
273068
|
for (const server of response.data.data) {
|
|
273048
|
-
const baseName = `
|
|
273069
|
+
const baseName = `ainative ${server.display_name}`;
|
|
273049
273070
|
let finalName = baseName;
|
|
273050
273071
|
let finalNormalized = normalizeNameForMCP(finalName);
|
|
273051
273072
|
let count3 = 1;
|
|
@@ -273056,19 +273077,19 @@ var init_claudeai = __esm(() => {
|
|
|
273056
273077
|
}
|
|
273057
273078
|
usedNormalizedNames.add(finalNormalized);
|
|
273058
273079
|
configs[finalName] = {
|
|
273059
|
-
type: "
|
|
273080
|
+
type: "ainative-proxy",
|
|
273060
273081
|
url: server.url,
|
|
273061
273082
|
id: server.id,
|
|
273062
|
-
scope: "
|
|
273083
|
+
scope: "ainative"
|
|
273063
273084
|
};
|
|
273064
273085
|
}
|
|
273065
|
-
logForDebugging(`[
|
|
273066
|
-
logEvent("
|
|
273086
|
+
logForDebugging(`[ainative-mcp] Fetched ${Object.keys(configs).length} servers`);
|
|
273087
|
+
logEvent("tengu_ainative_mcp_eligibility", {
|
|
273067
273088
|
state: "eligible"
|
|
273068
273089
|
});
|
|
273069
273090
|
return configs;
|
|
273070
273091
|
} catch {
|
|
273071
|
-
logForDebugging(`[
|
|
273092
|
+
logForDebugging(`[ainative-mcp] Fetch failed`);
|
|
273072
273093
|
return {};
|
|
273073
273094
|
}
|
|
273074
273095
|
});
|
|
@@ -273196,7 +273217,7 @@ function dedupPluginMcpServers(pluginServers, manualServers) {
|
|
|
273196
273217
|
}
|
|
273197
273218
|
return { servers, suppressed };
|
|
273198
273219
|
}
|
|
273199
|
-
function
|
|
273220
|
+
function dedupAINativeMcpServers(claudeAiServers, manualServers) {
|
|
273200
273221
|
const manualSigs = new Map;
|
|
273201
273222
|
for (const [name3, config3] of Object.entries(manualServers)) {
|
|
273202
273223
|
if (isMcpServerDisabled(name3))
|
|
@@ -273382,7 +273403,7 @@ function expandEnvVars(config3) {
|
|
|
273382
273403
|
case "sdk":
|
|
273383
273404
|
expanded = config3;
|
|
273384
273405
|
break;
|
|
273385
|
-
case "
|
|
273406
|
+
case "ainative-proxy":
|
|
273386
273407
|
expanded = config3;
|
|
273387
273408
|
break;
|
|
273388
273409
|
}
|
|
@@ -273440,8 +273461,9 @@ async function addMcpConfig(name3, config3, scope) {
|
|
|
273440
273461
|
throw new Error("Cannot add MCP server to scope: dynamic");
|
|
273441
273462
|
case "enterprise":
|
|
273442
273463
|
throw new Error("Cannot add MCP server to scope: enterprise");
|
|
273464
|
+
case "ainative":
|
|
273443
273465
|
case "claudeai":
|
|
273444
|
-
throw new Error("Cannot add MCP server to scope:
|
|
273466
|
+
throw new Error("Cannot add MCP server to scope: ainative");
|
|
273445
273467
|
}
|
|
273446
273468
|
switch (scope) {
|
|
273447
273469
|
case "project": {
|
|
@@ -273783,11 +273805,11 @@ async function getAllMcpConfigs() {
|
|
|
273783
273805
|
if (doesEnterpriseMcpConfigExist()) {
|
|
273784
273806
|
return getClaudeCodeMcpConfigs();
|
|
273785
273807
|
}
|
|
273786
|
-
const
|
|
273787
|
-
const { servers: claudeCodeServers, errors: errors4 } = await getClaudeCodeMcpConfigs({},
|
|
273788
|
-
const { allowed:
|
|
273789
|
-
const { servers:
|
|
273790
|
-
const servers = Object.assign({},
|
|
273808
|
+
const ainativePromise = fetchAINativeMcpConfigsIfEligible();
|
|
273809
|
+
const { servers: claudeCodeServers, errors: errors4 } = await getClaudeCodeMcpConfigs({}, ainativePromise);
|
|
273810
|
+
const { allowed: ainativeMcpServers } = filterMcpServersByPolicy(await ainativePromise);
|
|
273811
|
+
const { servers: dedupedAINative } = dedupAINativeMcpServers(ainativeMcpServers, claudeCodeServers);
|
|
273812
|
+
const servers = Object.assign({}, dedupedAINative, claudeCodeServers);
|
|
273791
273813
|
return { servers, errors: errors4 };
|
|
273792
273814
|
}
|
|
273793
273815
|
function parseMcpConfig(params) {
|
|
@@ -273985,7 +274007,7 @@ var init_config3 = __esm(() => {
|
|
|
273985
274007
|
init_types3();
|
|
273986
274008
|
init_slowOperations();
|
|
273987
274009
|
init_analytics();
|
|
273988
|
-
|
|
274010
|
+
init_ainative();
|
|
273989
274011
|
init_types2();
|
|
273990
274012
|
init_utils5();
|
|
273991
274013
|
CCR_PROXY_PATH_MARKERS = [
|
|
@@ -274089,6 +274111,7 @@ function describeMcpConfigFilePath(scope) {
|
|
|
274089
274111
|
return "Dynamically configured";
|
|
274090
274112
|
case "enterprise":
|
|
274091
274113
|
return getEnterpriseMcpFilePath();
|
|
274114
|
+
case "ainative":
|
|
274092
274115
|
case "claudeai":
|
|
274093
274116
|
return "ainative.studio";
|
|
274094
274117
|
default:
|
|
@@ -274107,6 +274130,7 @@ function getScopeLabel(scope) {
|
|
|
274107
274130
|
return "Dynamic config (from command line)";
|
|
274108
274131
|
case "enterprise":
|
|
274109
274132
|
return "Enterprise config (managed by your organization)";
|
|
274133
|
+
case "ainative":
|
|
274110
274134
|
case "claudeai":
|
|
274111
274135
|
return "ainative.studio config";
|
|
274112
274136
|
default:
|
|
@@ -274171,8 +274195,8 @@ function getMcpServerScopeFromToolName(toolName) {
|
|
|
274171
274195
|
return null;
|
|
274172
274196
|
}
|
|
274173
274197
|
const serverConfig = getMcpConfigByName(mcpInfo.serverName);
|
|
274174
|
-
if (!serverConfig && mcpInfo.serverName.startsWith("
|
|
274175
|
-
return "
|
|
274198
|
+
if (!serverConfig && mcpInfo.serverName.startsWith("ainative_")) {
|
|
274199
|
+
return "ainative";
|
|
274176
274200
|
}
|
|
274177
274201
|
return serverConfig?.scope ?? null;
|
|
274178
274202
|
}
|
|
@@ -276222,7 +276246,7 @@ function createMcpAuthTool(serverName, config3) {
|
|
|
276222
276246
|
return { behavior: "allow", updatedInput: input };
|
|
276223
276247
|
},
|
|
276224
276248
|
async call(_input, context3) {
|
|
276225
|
-
if (config3.type === "
|
|
276249
|
+
if (config3.type === "ainative-proxy") {
|
|
276226
276250
|
return {
|
|
276227
276251
|
data: {
|
|
276228
276252
|
status: "unsupported",
|
|
@@ -278680,7 +278704,7 @@ function getInstallationEnv() {
|
|
|
278680
278704
|
return;
|
|
278681
278705
|
}
|
|
278682
278706
|
function getClaudeCodeVersion() {
|
|
278683
|
-
return "0.7.
|
|
278707
|
+
return "0.7.35";
|
|
278684
278708
|
}
|
|
278685
278709
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
278686
278710
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -283427,7 +283451,7 @@ function handleRemoteAuthFailure(name3, serverRef, transportType) {
|
|
|
283427
283451
|
const label = {
|
|
283428
283452
|
sse: "SSE",
|
|
283429
283453
|
http: "HTTP",
|
|
283430
|
-
"
|
|
283454
|
+
"ainative-proxy": "AINative proxy"
|
|
283431
283455
|
};
|
|
283432
283456
|
logMCPDebug(name3, `Authentication required for ${label[transportType]} server`);
|
|
283433
283457
|
setMcpAuthCacheEntry(name3);
|
|
@@ -283583,8 +283607,8 @@ async function reconnectMcpServerImpl(name3, config3) {
|
|
|
283583
283607
|
commands: []
|
|
283584
283608
|
};
|
|
283585
283609
|
}
|
|
283586
|
-
if (config3.type === "
|
|
283587
|
-
|
|
283610
|
+
if (config3.type === "ainative-proxy") {
|
|
283611
|
+
markAINativeMcpConnected(name3);
|
|
283588
283612
|
}
|
|
283589
283613
|
const supportsResources = !!client4.capabilities?.resources;
|
|
283590
283614
|
const [tools, mcpCommands, mcpSkills, resources] = await Promise.all([
|
|
@@ -283664,7 +283688,7 @@ async function getMcpToolsCommandsAndResources(onConnectionAttempt, mcpConfigs)
|
|
|
283664
283688
|
});
|
|
283665
283689
|
return;
|
|
283666
283690
|
}
|
|
283667
|
-
if ((config3.type === "
|
|
283691
|
+
if ((config3.type === "ainative-proxy" || config3.type === "http" || config3.type === "sse") && (await isMcpAuthCached(name3) || (config3.type === "http" || config3.type === "sse") && hasMcpDiscoveryButNoToken(name3, config3))) {
|
|
283668
283692
|
logMCPDebug(name3, `Skipping connection (cached needs-auth)`);
|
|
283669
283693
|
onConnectionAttempt({
|
|
283670
283694
|
client: { name: name3, type: "needs-auth", config: config3 },
|
|
@@ -283682,8 +283706,8 @@ async function getMcpToolsCommandsAndResources(onConnectionAttempt, mcpConfigs)
|
|
|
283682
283706
|
});
|
|
283683
283707
|
return;
|
|
283684
283708
|
}
|
|
283685
|
-
if (config3.type === "
|
|
283686
|
-
|
|
283709
|
+
if (config3.type === "ainative-proxy") {
|
|
283710
|
+
markAINativeMcpConnected(name3);
|
|
283687
283711
|
}
|
|
283688
283712
|
const supportsResources = !!client4.capabilities?.resources;
|
|
283689
283713
|
const [tools, mcpCommands, mcpSkills, resources] = await Promise.all([
|
|
@@ -284182,7 +284206,7 @@ async function callMCPTool({
|
|
|
284182
284206
|
throw new McpAuthError(name3, `MCP server "${name3}" requires re-authorization (token expired)`);
|
|
284183
284207
|
}
|
|
284184
284208
|
const isSessionExpired = isMcpSessionExpiredError(e);
|
|
284185
|
-
const isConnectionClosedOnHttp = "code" in e && e.code === -32000 && e.message.includes("Connection closed") && (config3.type === "http" || config3.type === "
|
|
284209
|
+
const isConnectionClosedOnHttp = "code" in e && e.code === -32000 && e.message.includes("Connection closed") && (config3.type === "http" || config3.type === "ainative-proxy");
|
|
284186
284210
|
if (isSessionExpired || isConnectionClosedOnHttp) {
|
|
284187
284211
|
logMCPDebug(name3, `MCP session expired during tool call (${isSessionExpired ? "404/-32001" : "connection closed"}), clearing connection cache for re-initialization`);
|
|
284188
284212
|
logEvent("tengu_mcp_session_expired", {});
|
|
@@ -284214,7 +284238,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
284214
284238
|
const client4 = new Client({
|
|
284215
284239
|
name: "claude-code",
|
|
284216
284240
|
title: "Cody CLI",
|
|
284217
|
-
version: "0.7.
|
|
284241
|
+
version: "0.7.35",
|
|
284218
284242
|
description: "Anthropic's agentic coding tool",
|
|
284219
284243
|
websiteUrl: PRODUCT_URL
|
|
284220
284244
|
}, {
|
|
@@ -284308,7 +284332,7 @@ var init_client8 = __esm(() => {
|
|
|
284308
284332
|
init_classifyForCollapse();
|
|
284309
284333
|
init_macOsKeychainHelpers();
|
|
284310
284334
|
init_auth6();
|
|
284311
|
-
|
|
284335
|
+
init_ainative();
|
|
284312
284336
|
init_config3();
|
|
284313
284337
|
init_headersHelper();
|
|
284314
284338
|
init_common2();
|
|
@@ -284502,7 +284526,7 @@ var init_client8 = __esm(() => {
|
|
|
284502
284526
|
logMCPDebug(name3, `HTTP transport created successfully`);
|
|
284503
284527
|
} else if (serverRef.type === "sdk") {
|
|
284504
284528
|
throw new Error("SDK servers should be handled in print.ts");
|
|
284505
|
-
} else if (serverRef.type === "
|
|
284529
|
+
} else if (serverRef.type === "ainative-proxy") {
|
|
284506
284530
|
logMCPDebug(name3, `Initializing claude.ai proxy transport for server ${serverRef.id}`);
|
|
284507
284531
|
const tokens = getClaudeAIOAuthTokens();
|
|
284508
284532
|
if (!tokens) {
|
|
@@ -284568,7 +284592,7 @@ var init_client8 = __esm(() => {
|
|
|
284568
284592
|
const client4 = new Client({
|
|
284569
284593
|
name: "claude-code",
|
|
284570
284594
|
title: "Cody CLI",
|
|
284571
|
-
version: "0.7.
|
|
284595
|
+
version: "0.7.35",
|
|
284572
284596
|
description: "Anthropic's agentic coding tool",
|
|
284573
284597
|
websiteUrl: PRODUCT_URL
|
|
284574
284598
|
}, {
|
|
@@ -284648,12 +284672,12 @@ var init_client8 = __esm(() => {
|
|
|
284648
284672
|
if (error43 instanceof UnauthorizedError) {
|
|
284649
284673
|
return handleRemoteAuthFailure(name3, serverRef, "http");
|
|
284650
284674
|
}
|
|
284651
|
-
} else if (serverRef.type === "
|
|
284675
|
+
} else if (serverRef.type === "ainative-proxy" && error43 instanceof Error) {
|
|
284652
284676
|
logMCPDebug(name3, `claude.ai proxy connection failed after ${elapsed}ms: ${error43.message}`);
|
|
284653
284677
|
logMCPError(name3, error43);
|
|
284654
284678
|
const errorCode = error43.code;
|
|
284655
284679
|
if (errorCode === 401) {
|
|
284656
|
-
return handleRemoteAuthFailure(name3, serverRef, "
|
|
284680
|
+
return handleRemoteAuthFailure(name3, serverRef, "ainative-proxy");
|
|
284657
284681
|
}
|
|
284658
284682
|
} else if (serverRef.type === "sse-ide" || serverRef.type === "ws-ide") {
|
|
284659
284683
|
logEvent("tengu_mcp_ide_server_connection_failed", {
|
|
@@ -284744,7 +284768,7 @@ var init_client8 = __esm(() => {
|
|
|
284744
284768
|
logMCPDebug(name3, `Connection error: ${error43.message}`);
|
|
284745
284769
|
}
|
|
284746
284770
|
}
|
|
284747
|
-
if ((transportType === "http" || transportType === "
|
|
284771
|
+
if ((transportType === "http" || transportType === "ainative-proxy") && isMcpSessionExpiredError(error43)) {
|
|
284748
284772
|
logMCPDebug(name3, `MCP session expired (server returned 404 with session-not-found), triggering reconnection`);
|
|
284749
284773
|
closeTransportAndRejectPending("session expired");
|
|
284750
284774
|
if (originalOnerror) {
|
|
@@ -284752,7 +284776,7 @@ var init_client8 = __esm(() => {
|
|
|
284752
284776
|
}
|
|
284753
284777
|
return;
|
|
284754
284778
|
}
|
|
284755
|
-
if (transportType === "sse" || transportType === "http" || transportType === "
|
|
284779
|
+
if (transportType === "sse" || transportType === "http" || transportType === "ainative-proxy") {
|
|
284756
284780
|
if (error43.message.includes("Maximum reconnection attempts")) {
|
|
284757
284781
|
closeTransportAndRejectPending("SSE reconnection exhausted");
|
|
284758
284782
|
if (originalOnerror) {
|
|
@@ -332700,7 +332724,7 @@ async function initializeBetaTracing(resource) {
|
|
|
332700
332724
|
});
|
|
332701
332725
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
332702
332726
|
setLoggerProvider(loggerProvider);
|
|
332703
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.7.
|
|
332727
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.7.35");
|
|
332704
332728
|
setEventLogger(eventLogger);
|
|
332705
332729
|
process.on("beforeExit", async () => {
|
|
332706
332730
|
await loggerProvider?.forceFlush();
|
|
@@ -332740,7 +332764,7 @@ async function initializeTelemetry() {
|
|
|
332740
332764
|
const platform5 = getPlatform();
|
|
332741
332765
|
const baseAttributes = {
|
|
332742
332766
|
[import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
|
|
332743
|
-
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "0.7.
|
|
332767
|
+
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "0.7.35"
|
|
332744
332768
|
};
|
|
332745
332769
|
if (platform5 === "wsl") {
|
|
332746
332770
|
const wslVersion = getWslVersion();
|
|
@@ -332785,7 +332809,7 @@ async function initializeTelemetry() {
|
|
|
332785
332809
|
} catch {}
|
|
332786
332810
|
};
|
|
332787
332811
|
registerCleanup(shutdownTelemetry2);
|
|
332788
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "0.7.
|
|
332812
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "0.7.35");
|
|
332789
332813
|
}
|
|
332790
332814
|
const meterProvider = new import_sdk_metrics2.MeterProvider({
|
|
332791
332815
|
resource,
|
|
@@ -332805,7 +332829,7 @@ async function initializeTelemetry() {
|
|
|
332805
332829
|
});
|
|
332806
332830
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
332807
332831
|
setLoggerProvider(loggerProvider);
|
|
332808
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.7.
|
|
332832
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.7.35");
|
|
332809
332833
|
setEventLogger(eventLogger);
|
|
332810
332834
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
332811
332835
|
process.on("beforeExit", async () => {
|
|
@@ -332867,7 +332891,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
332867
332891
|
}
|
|
332868
332892
|
};
|
|
332869
332893
|
registerCleanup(shutdownTelemetry);
|
|
332870
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "0.7.
|
|
332894
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "0.7.35");
|
|
332871
332895
|
}
|
|
332872
332896
|
async function flushTelemetry() {
|
|
332873
332897
|
const meterProvider = getMeterProvider();
|
|
@@ -333556,9 +333580,9 @@ async function assertMinVersion() {
|
|
|
333556
333580
|
}
|
|
333557
333581
|
try {
|
|
333558
333582
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
333559
|
-
if (versionConfig.minVersion && lt("0.7.
|
|
333583
|
+
if (versionConfig.minVersion && lt("0.7.35", versionConfig.minVersion)) {
|
|
333560
333584
|
console.error(`
|
|
333561
|
-
It looks like your version of Cody CLI (${"0.7.
|
|
333585
|
+
It looks like your version of Cody CLI (${"0.7.35"}) needs an update.
|
|
333562
333586
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
333563
333587
|
|
|
333564
333588
|
To update, please run:
|
|
@@ -333795,7 +333819,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
333795
333819
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
333796
333820
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
333797
333821
|
pid: process.pid,
|
|
333798
|
-
currentVersion: "0.7.
|
|
333822
|
+
currentVersion: "0.7.35"
|
|
333799
333823
|
});
|
|
333800
333824
|
return "in_progress";
|
|
333801
333825
|
}
|
|
@@ -333804,7 +333828,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
333804
333828
|
if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
|
|
333805
333829
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
333806
333830
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
333807
|
-
currentVersion: "0.7.
|
|
333831
|
+
currentVersion: "0.7.35"
|
|
333808
333832
|
});
|
|
333809
333833
|
console.error(`
|
|
333810
333834
|
Error: Windows NPM detected in WSL
|
|
@@ -334339,7 +334363,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
334339
334363
|
}
|
|
334340
334364
|
async function getDoctorDiagnostic() {
|
|
334341
334365
|
const installationType = await getCurrentInstallationType();
|
|
334342
|
-
const version6 = typeof MACRO !== "undefined" ? "0.7.
|
|
334366
|
+
const version6 = typeof MACRO !== "undefined" ? "0.7.35" : "unknown";
|
|
334343
334367
|
const installationPath = await getInstallationPath();
|
|
334344
334368
|
const invokedBinary = getInvokedBinary();
|
|
334345
334369
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -335174,8 +335198,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
335174
335198
|
const maxVersion = await getMaxVersion();
|
|
335175
335199
|
if (maxVersion && gt(version6, maxVersion)) {
|
|
335176
335200
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version6} to ${maxVersion}`);
|
|
335177
|
-
if (gte("0.7.
|
|
335178
|
-
logForDebugging(`Native installer: current version ${"0.7.
|
|
335201
|
+
if (gte("0.7.35", maxVersion)) {
|
|
335202
|
+
logForDebugging(`Native installer: current version ${"0.7.35"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
335179
335203
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
335180
335204
|
latency_ms: Date.now() - startTime,
|
|
335181
335205
|
max_version: maxVersion,
|
|
@@ -335186,7 +335210,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
335186
335210
|
version6 = maxVersion;
|
|
335187
335211
|
}
|
|
335188
335212
|
}
|
|
335189
|
-
if (!forceReinstall && version6 === "0.7.
|
|
335213
|
+
if (!forceReinstall && version6 === "0.7.35" && await versionIsAvailable(version6) && await isPossibleClaudeBinary(executablePath)) {
|
|
335190
335214
|
logForDebugging(`Found ${version6} at ${executablePath}, skipping install`);
|
|
335191
335215
|
logEvent("tengu_native_update_complete", {
|
|
335192
335216
|
latency_ms: Date.now() - startTime,
|
|
@@ -419007,7 +419031,7 @@ function getAnthropicEnvMetadata() {
|
|
|
419007
419031
|
function getBuildAgeMinutes() {
|
|
419008
419032
|
if (false)
|
|
419009
419033
|
;
|
|
419010
|
-
const buildTime = new Date("
|
|
419034
|
+
const buildTime = new Date("1777670343").getTime();
|
|
419011
419035
|
if (isNaN(buildTime))
|
|
419012
419036
|
return;
|
|
419013
419037
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -442520,7 +442544,7 @@ function Feedback({
|
|
|
442520
442544
|
platform: env4.platform,
|
|
442521
442545
|
gitRepo: envInfo.isGit,
|
|
442522
442546
|
terminal: env4.terminal,
|
|
442523
|
-
version: "0.7.
|
|
442547
|
+
version: "0.7.35",
|
|
442524
442548
|
transcript: normalizeMessagesForAPI(messages),
|
|
442525
442549
|
errors: sanitizedErrors,
|
|
442526
442550
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -442712,7 +442736,7 @@ function Feedback({
|
|
|
442712
442736
|
", ",
|
|
442713
442737
|
env4.terminal,
|
|
442714
442738
|
", v",
|
|
442715
|
-
"0.7.
|
|
442739
|
+
"0.7.35"
|
|
442716
442740
|
]
|
|
442717
442741
|
}, undefined, true, undefined, this)
|
|
442718
442742
|
]
|
|
@@ -442818,7 +442842,7 @@ ${sanitizedDescription}
|
|
|
442818
442842
|
` + `**Environment Info**
|
|
442819
442843
|
` + `- Platform: ${env4.platform}
|
|
442820
442844
|
` + `- Terminal: ${env4.terminal}
|
|
442821
|
-
` + `- Version: ${"0.7.
|
|
442845
|
+
` + `- Version: ${"0.7.35"}
|
|
442822
442846
|
` + `- Feedback ID: ${feedbackId}
|
|
442823
442847
|
` + `
|
|
442824
442848
|
**Errors**
|
|
@@ -445918,7 +445942,7 @@ function buildPrimarySection() {
|
|
|
445918
445942
|
}, undefined, false, undefined, this);
|
|
445919
445943
|
return [{
|
|
445920
445944
|
label: "Version",
|
|
445921
|
-
value: "0.7.
|
|
445945
|
+
value: "0.7.35"
|
|
445922
445946
|
}, {
|
|
445923
445947
|
label: "Session name",
|
|
445924
445948
|
value: nameValue
|
|
@@ -449669,7 +449693,7 @@ function Config({
|
|
|
449669
449693
|
}
|
|
449670
449694
|
}, undefined, false, undefined, this)
|
|
449671
449695
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
|
|
449672
|
-
currentVersion: "0.7.
|
|
449696
|
+
currentVersion: "0.7.35",
|
|
449673
449697
|
onChoice: (choice) => {
|
|
449674
449698
|
setShowSubmenu(null);
|
|
449675
449699
|
setTabsHidden(false);
|
|
@@ -449681,7 +449705,7 @@ function Config({
|
|
|
449681
449705
|
autoUpdatesChannel: "stable"
|
|
449682
449706
|
};
|
|
449683
449707
|
if (choice === "stay") {
|
|
449684
|
-
newSettings.minimumVersion = "0.7.
|
|
449708
|
+
newSettings.minimumVersion = "0.7.35";
|
|
449685
449709
|
}
|
|
449686
449710
|
updateSettingsForSource("userSettings", newSettings);
|
|
449687
449711
|
setSettingsData((prev_27) => ({
|
|
@@ -457723,7 +457747,7 @@ function HelpV2(t0) {
|
|
|
457723
457747
|
let t6;
|
|
457724
457748
|
if ($3[31] !== tabs) {
|
|
457725
457749
|
t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
|
|
457726
|
-
title: `Cody CLI v${"0.7.
|
|
457750
|
+
title: `Cody CLI v${"0.7.35"}`,
|
|
457727
457751
|
color: "professionalBlue",
|
|
457728
457752
|
defaultTab: "general",
|
|
457729
457753
|
children: tabs
|
|
@@ -463475,10 +463499,10 @@ function _temp324(a2, b3) {
|
|
|
463475
463499
|
return a2.name.localeCompare(b3.name);
|
|
463476
463500
|
}
|
|
463477
463501
|
function _temp235(s_0) {
|
|
463478
|
-
return s_0.client.config.type === "
|
|
463502
|
+
return s_0.client.config.type === "ainative-proxy";
|
|
463479
463503
|
}
|
|
463480
463504
|
function _temp97(s) {
|
|
463481
|
-
return s.client.config.type !== "
|
|
463505
|
+
return s.client.config.type !== "ainative-proxy";
|
|
463482
463506
|
}
|
|
463483
463507
|
var import_compiler_runtime178, import_react124, jsx_dev_runtime223, SCOPE_ORDER;
|
|
463484
463508
|
var init_MCPListPanel = __esm(() => {
|
|
@@ -464090,14 +464114,14 @@ function useManageMCPConnections(dynamicMcpConfig, isStrictMcpConfig = false) {
|
|
|
464090
464114
|
import_react125.useEffect(() => {
|
|
464091
464115
|
let cancelled = false;
|
|
464092
464116
|
async function loadAndConnectMcpConfigs() {
|
|
464093
|
-
let
|
|
464117
|
+
let ainativePromise;
|
|
464094
464118
|
if (isStrictMcpConfig || doesEnterpriseMcpConfigExist() || process.env.CODY_CLI === "1") {
|
|
464095
|
-
|
|
464119
|
+
ainativePromise = Promise.resolve({});
|
|
464096
464120
|
} else {
|
|
464097
|
-
|
|
464098
|
-
|
|
464121
|
+
clearAINativeMcpConfigsCache();
|
|
464122
|
+
ainativePromise = fetchAINativeMcpConfigsIfEligible();
|
|
464099
464123
|
}
|
|
464100
|
-
const { servers: claudeCodeConfigs, errors: mcpErrors } = isStrictMcpConfig ? { servers: {}, errors: [] } : await getClaudeCodeMcpConfigs(dynamicMcpConfig,
|
|
464124
|
+
const { servers: claudeCodeConfigs, errors: mcpErrors } = isStrictMcpConfig ? { servers: {}, errors: [] } : await getClaudeCodeMcpConfigs(dynamicMcpConfig, ainativePromise);
|
|
464101
464125
|
if (cancelled)
|
|
464102
464126
|
return;
|
|
464103
464127
|
addErrorsToAppState(setAppState, mcpErrors);
|
|
@@ -464106,19 +464130,19 @@ function useManageMCPConnections(dynamicMcpConfig, isStrictMcpConfig = false) {
|
|
|
464106
464130
|
getMcpToolsCommandsAndResources(onConnectionAttempt, enabledConfigs).catch((error43) => {
|
|
464107
464131
|
logMCPError("useManageMcpConnections", `Failed to get MCP resources: ${errorMessage(error43)}`);
|
|
464108
464132
|
});
|
|
464109
|
-
let
|
|
464133
|
+
let ainativeConfigs = {};
|
|
464110
464134
|
if (!isStrictMcpConfig) {
|
|
464111
|
-
|
|
464135
|
+
ainativeConfigs = filterMcpServersByPolicy(await ainativePromise).allowed;
|
|
464112
464136
|
if (cancelled)
|
|
464113
464137
|
return;
|
|
464114
|
-
if (Object.keys(
|
|
464115
|
-
const { servers:
|
|
464116
|
-
|
|
464138
|
+
if (Object.keys(ainativeConfigs).length > 0) {
|
|
464139
|
+
const { servers: dedupedAINative } = dedupAINativeMcpServers(ainativeConfigs, configs);
|
|
464140
|
+
ainativeConfigs = dedupedAINative;
|
|
464117
464141
|
}
|
|
464118
|
-
if (Object.keys(
|
|
464142
|
+
if (Object.keys(ainativeConfigs).length > 0) {
|
|
464119
464143
|
setAppState((prevState) => {
|
|
464120
464144
|
const existingServerNames = new Set(prevState.mcp.clients.map((c6) => c6.name));
|
|
464121
|
-
const newClients = Object.entries(
|
|
464145
|
+
const newClients = Object.entries(ainativeConfigs).filter(([name3]) => !existingServerNames.has(name3)).map(([name3, config4]) => ({
|
|
464122
464146
|
name: name3,
|
|
464123
464147
|
type: isMcpServerDisabled(name3) ? "disabled" : "pending",
|
|
464124
464148
|
config: config4
|
|
@@ -464133,20 +464157,20 @@ function useManageMCPConnections(dynamicMcpConfig, isStrictMcpConfig = false) {
|
|
|
464133
464157
|
}
|
|
464134
464158
|
};
|
|
464135
464159
|
});
|
|
464136
|
-
const enabledClaudeaiConfigs = Object.fromEntries(Object.entries(
|
|
464160
|
+
const enabledClaudeaiConfigs = Object.fromEntries(Object.entries(ainativeConfigs).filter(([name3]) => !isMcpServerDisabled(name3)));
|
|
464137
464161
|
getMcpToolsCommandsAndResources(onConnectionAttempt, enabledClaudeaiConfigs).catch((error43) => {
|
|
464138
464162
|
logMCPError("useManageMcpConnections", `Failed to get claude.ai MCP resources: ${errorMessage(error43)}`);
|
|
464139
464163
|
});
|
|
464140
464164
|
}
|
|
464141
464165
|
}
|
|
464142
|
-
const allConfigs = { ...configs, ...
|
|
464166
|
+
const allConfigs = { ...configs, ...ainativeConfigs };
|
|
464143
464167
|
const counts = {
|
|
464144
464168
|
enterprise: 0,
|
|
464145
464169
|
global: 0,
|
|
464146
464170
|
project: 0,
|
|
464147
464171
|
user: 0,
|
|
464148
464172
|
plugin: 0,
|
|
464149
|
-
|
|
464173
|
+
ainative: 0
|
|
464150
464174
|
};
|
|
464151
464175
|
const stdioCommands = [];
|
|
464152
464176
|
for (const [name3, serverConfig] of Object.entries(allConfigs)) {
|
|
@@ -464160,8 +464184,8 @@ function useManageMCPConnections(dynamicMcpConfig, isStrictMcpConfig = false) {
|
|
|
464160
464184
|
counts.user++;
|
|
464161
464185
|
else if (serverConfig.scope === "dynamic")
|
|
464162
464186
|
counts.plugin++;
|
|
464163
|
-
else if (serverConfig.scope === "
|
|
464164
|
-
counts.
|
|
464187
|
+
else if (serverConfig.scope === "ainative")
|
|
464188
|
+
counts.ainative++;
|
|
464165
464189
|
if (false) {}
|
|
464166
464190
|
}
|
|
464167
464191
|
logEvent("tengu_mcp_servers", {
|
|
@@ -464273,7 +464297,7 @@ var init_useManageMCPConnections = __esm(() => {
|
|
|
464273
464297
|
init_messageQueueManager();
|
|
464274
464298
|
init_channelNotification();
|
|
464275
464299
|
init_channelPermissions();
|
|
464276
|
-
|
|
464300
|
+
init_ainative();
|
|
464277
464301
|
init_elicitationHandler();
|
|
464278
464302
|
init_mcpStringUtils();
|
|
464279
464303
|
init_utils5();
|
|
@@ -464683,10 +464707,10 @@ function MCPRemoteServerMenu({
|
|
|
464683
464707
|
const [isReconnecting, setIsReconnecting] = import_react128.useState(false);
|
|
464684
464708
|
const authAbortControllerRef = import_react128.useRef(null);
|
|
464685
464709
|
const [isClaudeAIAuthenticating, setIsClaudeAIAuthenticating] = import_react128.useState(false);
|
|
464686
|
-
const [
|
|
464710
|
+
const [ainativeAuthUrl, setClaudeAIAuthUrl] = import_react128.useState(null);
|
|
464687
464711
|
const [isClaudeAIClearingAuth, setIsClaudeAIClearingAuth] = import_react128.useState(false);
|
|
464688
|
-
const [
|
|
464689
|
-
const [
|
|
464712
|
+
const [ainativeClearAuthUrl, setClaudeAIClearAuthUrl] = import_react128.useState(null);
|
|
464713
|
+
const [ainativeClearAuthBrowserOpened, setClaudeAIClearAuthBrowserOpened] = import_react128.useState(false);
|
|
464690
464714
|
const [urlCopied, setUrlCopied] = import_react128.useState(false);
|
|
464691
464715
|
const copyTimeoutRef = import_react128.useRef(undefined);
|
|
464692
464716
|
const unmountedRef = import_react128.useRef(false);
|
|
@@ -464709,7 +464733,7 @@ function MCPRemoteServerMenu({
|
|
|
464709
464733
|
try {
|
|
464710
464734
|
const result = await reconnectMcpServer(server.name);
|
|
464711
464735
|
const success2 = result.client.type === "connected";
|
|
464712
|
-
logEvent("
|
|
464736
|
+
logEvent("tengu_ainative_mcp_auth_completed", {
|
|
464713
464737
|
success: success2
|
|
464714
464738
|
});
|
|
464715
464739
|
if (success2) {
|
|
@@ -464720,7 +464744,7 @@ function MCPRemoteServerMenu({
|
|
|
464720
464744
|
onComplete?.("Authentication successful, but server reconnection failed. You may need to manually restart Cody CLI for the changes to take effect.");
|
|
464721
464745
|
}
|
|
464722
464746
|
} catch (err2) {
|
|
464723
|
-
logEvent("
|
|
464747
|
+
logEvent("tengu_ainative_mcp_auth_completed", {
|
|
464724
464748
|
success: false
|
|
464725
464749
|
});
|
|
464726
464750
|
onComplete?.(handleReconnectError(err2, server.name));
|
|
@@ -464752,7 +464776,7 @@ function MCPRemoteServerMenu({
|
|
|
464752
464776
|
}
|
|
464753
464777
|
};
|
|
464754
464778
|
});
|
|
464755
|
-
logEvent("
|
|
464779
|
+
logEvent("tengu_ainative_mcp_clear_auth_completed", {});
|
|
464756
464780
|
onComplete?.(`Disconnected from ${server.name}.`);
|
|
464757
464781
|
setIsClaudeAIClearingAuth(false);
|
|
464758
464782
|
setClaudeAIClearAuthUrl(null);
|
|
@@ -464787,7 +464811,7 @@ function MCPRemoteServerMenu({
|
|
|
464787
464811
|
handleClaudeAIAuthComplete();
|
|
464788
464812
|
}
|
|
464789
464813
|
if (key.return && isClaudeAIClearingAuth) {
|
|
464790
|
-
if (
|
|
464814
|
+
if (ainativeClearAuthBrowserOpened) {
|
|
464791
464815
|
handleClaudeAIClearAuthComplete();
|
|
464792
464816
|
} else {
|
|
464793
464817
|
const connectorsUrl = `${getOauthConfig().CLAUDE_AI_ORIGIN}/settings/connectors`;
|
|
@@ -464797,7 +464821,7 @@ function MCPRemoteServerMenu({
|
|
|
464797
464821
|
}
|
|
464798
464822
|
}
|
|
464799
464823
|
if (input === "c" && !urlCopied) {
|
|
464800
|
-
const urlToCopy = authorizationUrl ||
|
|
464824
|
+
const urlToCopy = authorizationUrl || ainativeAuthUrl || ainativeClearAuthUrl;
|
|
464801
464825
|
if (urlToCopy) {
|
|
464802
464826
|
setClipboard(urlToCopy).then((raw) => {
|
|
464803
464827
|
if (unmountedRef.current)
|
|
@@ -464817,32 +464841,32 @@ function MCPRemoteServerMenu({
|
|
|
464817
464841
|
const serverCommandsCount = filterMcpPromptsByServer(mcp.commands, server.name).length;
|
|
464818
464842
|
const toggleMcpServer = useMcpToggleEnabled();
|
|
464819
464843
|
const handleClaudeAIAuth = import_react128.default.useCallback(async () => {
|
|
464820
|
-
const
|
|
464844
|
+
const ainativeBaseUrl = getOauthConfig().CLAUDE_AI_ORIGIN;
|
|
464821
464845
|
const accountInfo = getOauthAccountInfo();
|
|
464822
464846
|
const orgUuid = accountInfo?.organizationUuid;
|
|
464823
464847
|
let authUrl;
|
|
464824
|
-
if (orgUuid && server.config.type === "
|
|
464848
|
+
if (orgUuid && server.config.type === "ainative-proxy" && server.config.id) {
|
|
464825
464849
|
const serverId = server.config.id.startsWith("mcprs") ? "mcpsrv" + server.config.id.slice(5) : server.config.id;
|
|
464826
464850
|
const productSurface = encodeURIComponent(process.env.CLAUDE_CODE_ENTRYPOINT || "cli");
|
|
464827
|
-
authUrl = `${
|
|
464851
|
+
authUrl = `${ainativeBaseUrl}/api/organizations/${orgUuid}/mcp/start-auth/${serverId}?product_surface=${productSurface}`;
|
|
464828
464852
|
} else {
|
|
464829
|
-
authUrl = `${
|
|
464853
|
+
authUrl = `${ainativeBaseUrl}/settings/connectors`;
|
|
464830
464854
|
}
|
|
464831
464855
|
setClaudeAIAuthUrl(authUrl);
|
|
464832
464856
|
setIsClaudeAIAuthenticating(true);
|
|
464833
|
-
logEvent("
|
|
464857
|
+
logEvent("tengu_ainative_mcp_auth_started", {});
|
|
464834
464858
|
await openBrowser(authUrl);
|
|
464835
464859
|
}, [server.config]);
|
|
464836
464860
|
const handleClaudeAIClearAuth = import_react128.default.useCallback(() => {
|
|
464837
464861
|
setIsClaudeAIClearingAuth(true);
|
|
464838
|
-
logEvent("
|
|
464862
|
+
logEvent("tengu_ainative_mcp_clear_auth_started", {});
|
|
464839
464863
|
}, []);
|
|
464840
464864
|
const handleToggleEnabled = import_react128.default.useCallback(async () => {
|
|
464841
464865
|
const wasEnabled = server.client.type !== "disabled";
|
|
464842
464866
|
try {
|
|
464843
464867
|
await toggleMcpServer(server.name);
|
|
464844
|
-
if (server.config.type === "
|
|
464845
|
-
logEvent("
|
|
464868
|
+
if (server.config.type === "ainative-proxy") {
|
|
464869
|
+
logEvent("tengu_ainative_mcp_toggle", {
|
|
464846
464870
|
new_state: wasEnabled ? "disabled" : "enabled"
|
|
464847
464871
|
});
|
|
464848
464872
|
}
|
|
@@ -464853,7 +464877,7 @@ function MCPRemoteServerMenu({
|
|
|
464853
464877
|
}
|
|
464854
464878
|
}, [server.client.type, server.config.type, server.name, toggleMcpServer, onCancel, onComplete]);
|
|
464855
464879
|
const handleAuthenticate = import_react128.default.useCallback(async () => {
|
|
464856
|
-
if (server.config.type === "
|
|
464880
|
+
if (server.config.type === "ainative-proxy")
|
|
464857
464881
|
return;
|
|
464858
464882
|
setIsAuthenticating(true);
|
|
464859
464883
|
setError(null);
|
|
@@ -464897,7 +464921,7 @@ function MCPRemoteServerMenu({
|
|
|
464897
464921
|
}
|
|
464898
464922
|
}, [server.isAuthenticated, server.config, server.name, onComplete, reconnectMcpServer, isEffectivelyAuthenticated]);
|
|
464899
464923
|
const handleClearAuth = async () => {
|
|
464900
|
-
if (server.config.type === "
|
|
464924
|
+
if (server.config.type === "ainative-proxy")
|
|
464901
464925
|
return;
|
|
464902
464926
|
if (server.config) {
|
|
464903
464927
|
await revokeServerTokens(server.name, server.config);
|
|
@@ -464929,7 +464953,7 @@ function MCPRemoteServerMenu({
|
|
|
464929
464953
|
}
|
|
464930
464954
|
};
|
|
464931
464955
|
if (isAuthenticating) {
|
|
464932
|
-
const authCopy = server.config.type !== "
|
|
464956
|
+
const authCopy = server.config.type !== "ainative-proxy" && server.config.oauth?.xaa ? " Authenticating via your identity provider" : " A browser window will open for authentication";
|
|
464933
464957
|
return /* @__PURE__ */ jsx_dev_runtime227.jsxDEV(ThemedBox_default, {
|
|
464934
464958
|
flexDirection: "column",
|
|
464935
464959
|
gap: 1,
|
|
@@ -465046,7 +465070,7 @@ function MCPRemoteServerMenu({
|
|
|
465046
465070
|
}, undefined, false, undefined, this)
|
|
465047
465071
|
]
|
|
465048
465072
|
}, undefined, true, undefined, this),
|
|
465049
|
-
|
|
465073
|
+
ainativeAuthUrl && /* @__PURE__ */ jsx_dev_runtime227.jsxDEV(ThemedBox_default, {
|
|
465050
465074
|
flexDirection: "column",
|
|
465051
465075
|
children: [
|
|
465052
465076
|
/* @__PURE__ */ jsx_dev_runtime227.jsxDEV(ThemedBox_default, {
|
|
@@ -465072,7 +465096,7 @@ function MCPRemoteServerMenu({
|
|
|
465072
465096
|
]
|
|
465073
465097
|
}, undefined, true, undefined, this),
|
|
465074
465098
|
/* @__PURE__ */ jsx_dev_runtime227.jsxDEV(Link, {
|
|
465075
|
-
url:
|
|
465099
|
+
url: ainativeAuthUrl
|
|
465076
465100
|
}, undefined, false, undefined, this)
|
|
465077
465101
|
]
|
|
465078
465102
|
}, undefined, true, undefined, this),
|
|
@@ -465119,12 +465143,12 @@ function MCPRemoteServerMenu({
|
|
|
465119
465143
|
server.name
|
|
465120
465144
|
]
|
|
465121
465145
|
}, undefined, true, undefined, this),
|
|
465122
|
-
|
|
465146
|
+
ainativeClearAuthBrowserOpened ? /* @__PURE__ */ jsx_dev_runtime227.jsxDEV(jsx_dev_runtime227.Fragment, {
|
|
465123
465147
|
children: [
|
|
465124
465148
|
/* @__PURE__ */ jsx_dev_runtime227.jsxDEV(ThemedText, {
|
|
465125
465149
|
children: 'Find the MCP server in the browser and click "Disconnect".'
|
|
465126
465150
|
}, undefined, false, undefined, this),
|
|
465127
|
-
|
|
465151
|
+
ainativeClearAuthUrl && /* @__PURE__ */ jsx_dev_runtime227.jsxDEV(ThemedBox_default, {
|
|
465128
465152
|
flexDirection: "column",
|
|
465129
465153
|
children: [
|
|
465130
465154
|
/* @__PURE__ */ jsx_dev_runtime227.jsxDEV(ThemedBox_default, {
|
|
@@ -465150,7 +465174,7 @@ function MCPRemoteServerMenu({
|
|
|
465150
465174
|
]
|
|
465151
465175
|
}, undefined, true, undefined, this),
|
|
465152
465176
|
/* @__PURE__ */ jsx_dev_runtime227.jsxDEV(Link, {
|
|
465153
|
-
url:
|
|
465177
|
+
url: ainativeClearAuthUrl
|
|
465154
465178
|
}, undefined, false, undefined, this)
|
|
465155
465179
|
]
|
|
465156
465180
|
}, undefined, true, undefined, this),
|
|
@@ -465264,16 +465288,16 @@ function MCPRemoteServerMenu({
|
|
|
465264
465288
|
value: "tools"
|
|
465265
465289
|
});
|
|
465266
465290
|
}
|
|
465267
|
-
if (server.config.type === "
|
|
465291
|
+
if (server.config.type === "ainative-proxy") {
|
|
465268
465292
|
if (server.client.type === "connected") {
|
|
465269
465293
|
menuOptions.push({
|
|
465270
465294
|
label: "Clear authentication",
|
|
465271
|
-
value: "
|
|
465295
|
+
value: "ainative-clear-auth"
|
|
465272
465296
|
});
|
|
465273
465297
|
} else if (server.client.type !== "disabled") {
|
|
465274
465298
|
menuOptions.push({
|
|
465275
465299
|
label: "Authenticate",
|
|
465276
|
-
value: "
|
|
465300
|
+
value: "ainative-auth"
|
|
465277
465301
|
});
|
|
465278
465302
|
}
|
|
465279
465303
|
} else {
|
|
@@ -465373,7 +465397,7 @@ function MCPRemoteServerMenu({
|
|
|
465373
465397
|
}, undefined, true, undefined, this)
|
|
465374
465398
|
]
|
|
465375
465399
|
}, undefined, true, undefined, this),
|
|
465376
|
-
server.transport !== "
|
|
465400
|
+
server.transport !== "ainative-proxy" && /* @__PURE__ */ jsx_dev_runtime227.jsxDEV(ThemedBox_default, {
|
|
465377
465401
|
children: [
|
|
465378
465402
|
/* @__PURE__ */ jsx_dev_runtime227.jsxDEV(ThemedText, {
|
|
465379
465403
|
bold: true,
|
|
@@ -465464,18 +465488,18 @@ function MCPRemoteServerMenu({
|
|
|
465464
465488
|
case "clear-auth":
|
|
465465
465489
|
await handleClearAuth();
|
|
465466
465490
|
break;
|
|
465467
|
-
case "
|
|
465491
|
+
case "ainative-auth":
|
|
465468
465492
|
await handleClaudeAIAuth();
|
|
465469
465493
|
break;
|
|
465470
|
-
case "
|
|
465494
|
+
case "ainative-clear-auth":
|
|
465471
465495
|
handleClaudeAIClearAuth();
|
|
465472
465496
|
break;
|
|
465473
465497
|
case "reconnectMcpServer":
|
|
465474
465498
|
setIsReconnecting(true);
|
|
465475
465499
|
try {
|
|
465476
465500
|
const result_1 = await reconnectMcpServer(server.name);
|
|
465477
|
-
if (server.config.type === "
|
|
465478
|
-
logEvent("
|
|
465501
|
+
if (server.config.type === "ainative-proxy") {
|
|
465502
|
+
logEvent("tengu_ainative_mcp_reconnect", {
|
|
465479
465503
|
success: result_1.client.type === "connected"
|
|
465480
465504
|
});
|
|
465481
465505
|
}
|
|
@@ -465484,8 +465508,8 @@ function MCPRemoteServerMenu({
|
|
|
465484
465508
|
} = handleReconnectResult(result_1, server.name);
|
|
465485
465509
|
onComplete?.(message_0);
|
|
465486
465510
|
} catch (err_2) {
|
|
465487
|
-
if (server.config.type === "
|
|
465488
|
-
logEvent("
|
|
465511
|
+
if (server.config.type === "ainative-proxy") {
|
|
465512
|
+
logEvent("tengu_ainative_mcp_reconnect", {
|
|
465489
465513
|
success: false
|
|
465490
465514
|
});
|
|
465491
465515
|
}
|
|
@@ -466404,7 +466428,7 @@ function MCPSettings(t0) {
|
|
|
466404
466428
|
const scope = client_0.config.scope;
|
|
466405
466429
|
const isSSE = client_0.config.type === "sse";
|
|
466406
466430
|
const isHTTP = client_0.config.type === "http";
|
|
466407
|
-
const isClaudeAIProxy = client_0.config.type === "
|
|
466431
|
+
const isClaudeAIProxy = client_0.config.type === "ainative-proxy";
|
|
466408
466432
|
let isAuthenticated = undefined;
|
|
466409
466433
|
if (isSSE || isHTTP) {
|
|
466410
466434
|
const authProvider = new ClaudeAuthProvider(client_0.name, client_0.config);
|
|
@@ -466421,7 +466445,7 @@ function MCPSettings(t0) {
|
|
|
466421
466445
|
if (isClaudeAIProxy) {
|
|
466422
466446
|
return {
|
|
466423
466447
|
...baseInfo,
|
|
466424
|
-
transport: "
|
|
466448
|
+
transport: "ainative-proxy",
|
|
466425
466449
|
isAuthenticated: false,
|
|
466426
466450
|
config: client_0.config
|
|
466427
466451
|
};
|
|
@@ -466544,7 +466568,7 @@ function MCPSettings(t0) {
|
|
|
466544
466568
|
t9 = $3[25];
|
|
466545
466569
|
}
|
|
466546
466570
|
const serverTools_0 = t9;
|
|
466547
|
-
const defaultTab = viewState.server.transport === "
|
|
466571
|
+
const defaultTab = viewState.server.transport === "ainative-proxy" ? "AINative" : "Cody CLI";
|
|
466548
466572
|
if (viewState.server.transport === "stdio") {
|
|
466549
466573
|
let t10;
|
|
466550
466574
|
if ($3[26] !== viewState.server) {
|
|
@@ -474628,12 +474652,12 @@ function ManagePlugins({
|
|
|
474628
474652
|
onComplete: handleMcpComplete,
|
|
474629
474653
|
borderless: true
|
|
474630
474654
|
}, undefined, false, undefined, this);
|
|
474631
|
-
} else if (configType === "
|
|
474655
|
+
} else if (configType === "ainative-proxy") {
|
|
474632
474656
|
const server_2 = {
|
|
474633
474657
|
name: client_3.name,
|
|
474634
474658
|
client: client_3,
|
|
474635
474659
|
scope: scope_5,
|
|
474636
|
-
transport: "
|
|
474660
|
+
transport: "ainative-proxy",
|
|
474637
474661
|
isAuthenticated: undefined,
|
|
474638
474662
|
config: client_3.config
|
|
474639
474663
|
};
|
|
@@ -474685,7 +474709,7 @@ function ManagePlugins({
|
|
|
474685
474709
|
name: client_4.name,
|
|
474686
474710
|
client: client_4,
|
|
474687
474711
|
scope: scope_6,
|
|
474688
|
-
transport: "
|
|
474712
|
+
transport: "ainative-proxy",
|
|
474689
474713
|
isAuthenticated: undefined,
|
|
474690
474714
|
config: client_4.config
|
|
474691
474715
|
};
|
|
@@ -474744,7 +474768,7 @@ function ManagePlugins({
|
|
|
474744
474768
|
name: client_5.name,
|
|
474745
474769
|
client: client_5,
|
|
474746
474770
|
scope: scope_7,
|
|
474747
|
-
transport: "
|
|
474771
|
+
transport: "ainative-proxy",
|
|
474748
474772
|
isAuthenticated: undefined,
|
|
474749
474773
|
config: client_5.config
|
|
474750
474774
|
};
|
|
@@ -481913,7 +481937,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
481913
481937
|
return [];
|
|
481914
481938
|
}
|
|
481915
481939
|
}
|
|
481916
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.7.
|
|
481940
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.7.35") {
|
|
481917
481941
|
if (false) {}
|
|
481918
481942
|
const cachedChangelog = await getStoredChangelog();
|
|
481919
481943
|
if (lastSeenVersion !== currentVersion || !cachedChangelog) {
|
|
@@ -481926,7 +481950,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.7.15")
|
|
|
481926
481950
|
releaseNotes
|
|
481927
481951
|
};
|
|
481928
481952
|
}
|
|
481929
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "0.7.
|
|
481953
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "0.7.35") {
|
|
481930
481954
|
if (false) {}
|
|
481931
481955
|
const releaseNotes = getRecentReleaseNotes(currentVersion, lastSeenVersion);
|
|
481932
481956
|
return {
|
|
@@ -483082,7 +483106,7 @@ function getRecentActivitySync() {
|
|
|
483082
483106
|
return cachedActivity;
|
|
483083
483107
|
}
|
|
483084
483108
|
function getLogoDisplayData() {
|
|
483085
|
-
const version6 = process.env.DEMO_VERSION ?? "0.7.
|
|
483109
|
+
const version6 = process.env.DEMO_VERSION ?? "0.7.35";
|
|
483086
483110
|
const serverUrl = getDirectConnectServerUrl();
|
|
483087
483111
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
483088
483112
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -484502,7 +484526,7 @@ function LogoV2() {
|
|
|
484502
484526
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
484503
484527
|
t2 = () => {
|
|
484504
484528
|
const currentConfig = getGlobalConfig();
|
|
484505
|
-
if (currentConfig.lastReleaseNotesSeen === "0.7.
|
|
484529
|
+
if (currentConfig.lastReleaseNotesSeen === "0.7.35") {
|
|
484506
484530
|
return;
|
|
484507
484531
|
}
|
|
484508
484532
|
saveGlobalConfig(_temp329);
|
|
@@ -485178,12 +485202,12 @@ function LogoV2() {
|
|
|
485178
485202
|
return t41;
|
|
485179
485203
|
}
|
|
485180
485204
|
function _temp329(current) {
|
|
485181
|
-
if (current.lastReleaseNotesSeen === "0.7.
|
|
485205
|
+
if (current.lastReleaseNotesSeen === "0.7.35") {
|
|
485182
485206
|
return current;
|
|
485183
485207
|
}
|
|
485184
485208
|
return {
|
|
485185
485209
|
...current,
|
|
485186
|
-
lastReleaseNotesSeen: "0.7.
|
|
485210
|
+
lastReleaseNotesSeen: "0.7.35"
|
|
485187
485211
|
};
|
|
485188
485212
|
}
|
|
485189
485213
|
function _temp245(s_0) {
|
|
@@ -485808,6 +485832,8 @@ var init_statusNoticeDefinitions = __esm(() => {
|
|
|
485808
485832
|
id: "claude-ai-external-token",
|
|
485809
485833
|
type: "warning",
|
|
485810
485834
|
isActive: () => {
|
|
485835
|
+
if ((process.env.ANTHROPIC_BASE_URL || "").includes("ainative.studio"))
|
|
485836
|
+
return false;
|
|
485811
485837
|
const authTokenInfo = getAuthTokenSource();
|
|
485812
485838
|
return isActiveSubscriber() && (authTokenInfo.source === "ANTHROPIC_AUTH_TOKEN" || authTokenInfo.source === "apiKeyHelper");
|
|
485813
485839
|
},
|
|
@@ -485839,6 +485865,8 @@ var init_statusNoticeDefinitions = __esm(() => {
|
|
|
485839
485865
|
id: "api-key-conflict",
|
|
485840
485866
|
type: "warning",
|
|
485841
485867
|
isActive: () => {
|
|
485868
|
+
if ((process.env.ANTHROPIC_BASE_URL || "").includes("ainative.studio"))
|
|
485869
|
+
return false;
|
|
485842
485870
|
const {
|
|
485843
485871
|
source: apiKeySource
|
|
485844
485872
|
} = getAnthropicApiKeyWithSource({
|
|
@@ -485878,6 +485906,8 @@ var init_statusNoticeDefinitions = __esm(() => {
|
|
|
485878
485906
|
id: "both-auth-methods",
|
|
485879
485907
|
type: "warning",
|
|
485880
485908
|
isActive: () => {
|
|
485909
|
+
if ((process.env.ANTHROPIC_BASE_URL || "").includes("ainative.studio"))
|
|
485910
|
+
return false;
|
|
485881
485911
|
const {
|
|
485882
485912
|
source: apiKeySource
|
|
485883
485913
|
} = getAnthropicApiKeyWithSource({
|
|
@@ -508880,62 +508910,8 @@ var init_DescriptionStep = __esm(() => {
|
|
|
508880
508910
|
});
|
|
508881
508911
|
|
|
508882
508912
|
// src/components/agents/generateAgent.ts
|
|
508883
|
-
async function generateAgentViaChatCompletions(userPrompt, systemPromptText, existingIdentifiers) {
|
|
508884
|
-
const baseUrl = process.env.ANTHROPIC_BASE_URL || "https://api.ainative.studio";
|
|
508885
|
-
const apiKey = process.env.AINATIVE_API_KEY || process.env.ANTHROPIC_API_KEY || "";
|
|
508886
|
-
const existingList = existingIdentifiers.length > 0 ? `
|
|
508887
|
-
|
|
508888
|
-
IMPORTANT: The following identifiers already exist and must NOT be used: ${existingIdentifiers.join(", ")}` : "";
|
|
508889
|
-
const resp = await fetch(`${baseUrl}/api/v1/chat/completions`, {
|
|
508890
|
-
method: "POST",
|
|
508891
|
-
headers: {
|
|
508892
|
-
"Content-Type": "application/json",
|
|
508893
|
-
"x-api-key": apiKey
|
|
508894
|
-
},
|
|
508895
|
-
body: JSON.stringify({
|
|
508896
|
-
model: "claude-sonnet-4-5",
|
|
508897
|
-
max_tokens: 4096,
|
|
508898
|
-
messages: [
|
|
508899
|
-
{ role: "system", content: systemPromptText },
|
|
508900
|
-
{
|
|
508901
|
-
role: "user",
|
|
508902
|
-
content: `Create an agent configuration based on this request: "${userPrompt}".${existingList}
|
|
508903
|
-
Return ONLY the JSON object, no other text.`
|
|
508904
|
-
}
|
|
508905
|
-
]
|
|
508906
|
-
})
|
|
508907
|
-
});
|
|
508908
|
-
if (!resp.ok) {
|
|
508909
|
-
throw new Error(`Chat completions error: ${resp.status}`);
|
|
508910
|
-
}
|
|
508911
|
-
const data = await resp.json();
|
|
508912
|
-
const content = data.choices?.[0]?.message?.content;
|
|
508913
|
-
const text2 = Array.isArray(content) ? content.join("") : String(content ?? "");
|
|
508914
|
-
let parsed;
|
|
508915
|
-
try {
|
|
508916
|
-
parsed = jsonParse(text2.trim());
|
|
508917
|
-
} catch {
|
|
508918
|
-
const jsonMatch = text2.match(/\{[\s\S]*\}/);
|
|
508919
|
-
if (!jsonMatch)
|
|
508920
|
-
throw new Error("No JSON object found in response");
|
|
508921
|
-
parsed = jsonParse(jsonMatch[0]);
|
|
508922
|
-
}
|
|
508923
|
-
if (!parsed.identifier || !parsed.whenToUse || !parsed.systemPrompt) {
|
|
508924
|
-
throw new Error("Invalid agent configuration generated");
|
|
508925
|
-
}
|
|
508926
|
-
return parsed;
|
|
508927
|
-
}
|
|
508928
508913
|
async function generateAgent(userPrompt, model, existingIdentifiers, abortSignal) {
|
|
508929
508914
|
const systemPromptText = isAutoMemoryEnabled() ? AGENT_CREATION_SYSTEM_PROMPT + AGENT_MEMORY_INSTRUCTIONS : AGENT_CREATION_SYSTEM_PROMPT;
|
|
508930
|
-
if (isAINativeProvider()) {
|
|
508931
|
-
try {
|
|
508932
|
-
const result = await generateAgentViaChatCompletions(userPrompt, systemPromptText, existingIdentifiers);
|
|
508933
|
-
logEvent("tengu_agent_definition_generated", {
|
|
508934
|
-
agent_identifier: result.identifier
|
|
508935
|
-
});
|
|
508936
|
-
return result;
|
|
508937
|
-
} catch {}
|
|
508938
|
-
}
|
|
508939
508915
|
const existingList = existingIdentifiers.length > 0 ? `
|
|
508940
508916
|
|
|
508941
508917
|
IMPORTANT: The following identifiers already exist and must NOT be used: ${existingIdentifiers.join(", ")}` : "";
|
|
@@ -508975,7 +508951,11 @@ IMPORTANT: The following identifiers already exist and must NOT be used: ${exist
|
|
|
508975
508951
|
parsed = jsonParse(jsonMatch[0]);
|
|
508976
508952
|
}
|
|
508977
508953
|
if (!parsed.identifier || !parsed.whenToUse || !parsed.systemPrompt) {
|
|
508978
|
-
throw new Error(
|
|
508954
|
+
throw new Error(`Invalid agent configuration generated. Missing fields: ${[
|
|
508955
|
+
!parsed.identifier && "identifier",
|
|
508956
|
+
!parsed.whenToUse && "whenToUse",
|
|
508957
|
+
!parsed.systemPrompt && "systemPrompt"
|
|
508958
|
+
].filter(Boolean).join(", ")}. Response: ${responseText.slice(0, 500)}`);
|
|
508979
508959
|
}
|
|
508980
508960
|
logEvent("tengu_agent_definition_generated", {
|
|
508981
508961
|
agent_identifier: parsed.identifier
|
|
@@ -509014,7 +508994,6 @@ var init_generateAgent = __esm(() => {
|
|
|
509014
508994
|
init_constants3();
|
|
509015
508995
|
init_api3();
|
|
509016
508996
|
init_messages3();
|
|
509017
|
-
init_model();
|
|
509018
508997
|
init_paths();
|
|
509019
508998
|
init_analytics();
|
|
509020
508999
|
init_slowOperations();
|
|
@@ -511521,7 +511500,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
511521
511500
|
smapsRollup,
|
|
511522
511501
|
platform: process.platform,
|
|
511523
511502
|
nodeVersion: process.version,
|
|
511524
|
-
ccVersion: "0.7.
|
|
511503
|
+
ccVersion: "0.7.35"
|
|
511525
511504
|
};
|
|
511526
511505
|
}
|
|
511527
511506
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -512049,7 +512028,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
512049
512028
|
var call56 = async () => {
|
|
512050
512029
|
return {
|
|
512051
512030
|
type: "text",
|
|
512052
|
-
value: `${"0.7.
|
|
512031
|
+
value: `${"0.7.35"} (built ${"1777670343"})`
|
|
512053
512032
|
};
|
|
512054
512033
|
}, version6, version_default;
|
|
512055
512034
|
var init_version = __esm(() => {
|
|
@@ -516403,7 +516382,7 @@ var init_statusline = __esm(() => {
|
|
|
516403
516382
|
aliases: [],
|
|
516404
516383
|
name: "statusline",
|
|
516405
516384
|
progressMessage: "setting up statusLine",
|
|
516406
|
-
allowedTools: [AGENT_TOOL_NAME, "Read(~/**)", "Edit(~/.
|
|
516385
|
+
allowedTools: [AGENT_TOOL_NAME, "Read(~/**)", "Edit(~/.cody/settings.json)", "Edit(~/.cody/statusline-command.sh)", "Write(~/.cody/statusline-command.sh)"],
|
|
516407
516386
|
source: "builtin",
|
|
516408
516387
|
disableNonInteractive: true,
|
|
516409
516388
|
async getPromptForCommand(args) {
|
|
@@ -520996,7 +520975,7 @@ function generateHtmlReport(data, insights) {
|
|
|
520996
520975
|
</html>`;
|
|
520997
520976
|
}
|
|
520998
520977
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
520999
|
-
const version7 = typeof MACRO !== "undefined" ? "0.7.
|
|
520978
|
+
const version7 = typeof MACRO !== "undefined" ? "0.7.35" : "unknown";
|
|
521000
520979
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
521001
520980
|
const facets_summary = {
|
|
521002
520981
|
total: facets.size,
|
|
@@ -524942,7 +524921,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
524942
524921
|
init_settings2();
|
|
524943
524922
|
init_slowOperations();
|
|
524944
524923
|
init_uuid();
|
|
524945
|
-
VERSION5 = typeof MACRO !== "undefined" ? "0.7.
|
|
524924
|
+
VERSION5 = typeof MACRO !== "undefined" ? "0.7.35" : "unknown";
|
|
524946
524925
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
524947
524926
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
524948
524927
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -526147,7 +526126,7 @@ var init_filesystem = __esm(() => {
|
|
|
526147
526126
|
});
|
|
526148
526127
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
526149
526128
|
const nonce = randomBytes19(16).toString("hex");
|
|
526150
|
-
return join132(getClaudeTempDir(), "bundled-skills", "0.7.
|
|
526129
|
+
return join132(getClaudeTempDir(), "bundled-skills", "0.7.35", nonce);
|
|
526151
526130
|
});
|
|
526152
526131
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
526153
526132
|
});
|
|
@@ -532119,7 +532098,7 @@ function computeFingerprint(messageText, version7) {
|
|
|
532119
532098
|
}
|
|
532120
532099
|
function computeFingerprintFromMessages(messages) {
|
|
532121
532100
|
const firstMessageText = extractFirstMessageText(messages);
|
|
532122
|
-
return computeFingerprint(firstMessageText, "0.7.
|
|
532101
|
+
return computeFingerprint(firstMessageText, "0.7.35");
|
|
532123
532102
|
}
|
|
532124
532103
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
532125
532104
|
var init_fingerprint = () => {};
|
|
@@ -532615,7 +532594,20 @@ function stripExcessMediaItems(messages, limit) {
|
|
|
532615
532594
|
}
|
|
532616
532595
|
async function* ainativeBypass(messages, systemPrompt, model, toolSchemas, signal) {
|
|
532617
532596
|
const baseUrl = getBaseURLForModel(model);
|
|
532618
|
-
|
|
532597
|
+
let authHeaders;
|
|
532598
|
+
let apiKey = null;
|
|
532599
|
+
try {
|
|
532600
|
+
apiKey = getApiKeyForModel(model);
|
|
532601
|
+
} catch {}
|
|
532602
|
+
if (apiKey) {
|
|
532603
|
+
authHeaders = { "x-api-key": apiKey };
|
|
532604
|
+
} else {
|
|
532605
|
+
const oauthToken = getClaudeAIOAuthTokens()?.accessToken;
|
|
532606
|
+
if (!oauthToken) {
|
|
532607
|
+
throw new Error("No API key or OAuth token found. Log in with `cody login`.");
|
|
532608
|
+
}
|
|
532609
|
+
authHeaders = { Authorization: `Bearer ${oauthToken}` };
|
|
532610
|
+
}
|
|
532619
532611
|
const chatMessages = [];
|
|
532620
532612
|
const sysText = systemPrompt.join(`
|
|
532621
532613
|
`);
|
|
@@ -532708,7 +532700,7 @@ async function* ainativeBypass(messages, systemPrompt, model, toolSchemas, signa
|
|
|
532708
532700
|
method: "POST",
|
|
532709
532701
|
headers: {
|
|
532710
532702
|
"Content-Type": "application/json",
|
|
532711
|
-
|
|
532703
|
+
...authHeaders,
|
|
532712
532704
|
"anthropic-version": "2023-06-01"
|
|
532713
532705
|
},
|
|
532714
532706
|
body: JSON.stringify(anthropicBody),
|
|
@@ -534168,7 +534160,7 @@ async function sideQuery(opts) {
|
|
|
534168
534160
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
534169
534161
|
}
|
|
534170
534162
|
const messageText = extractFirstUserMessageText(messages);
|
|
534171
|
-
const fingerprint = computeFingerprint(messageText, "0.7.
|
|
534163
|
+
const fingerprint = computeFingerprint(messageText, "0.7.35");
|
|
534172
534164
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
534173
534165
|
const systemBlocks = [
|
|
534174
534166
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -538750,7 +538742,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
538750
538742
|
slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
|
|
538751
538743
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
538752
538744
|
betas: getSdkBetas(),
|
|
538753
|
-
claude_code_version: "0.7.
|
|
538745
|
+
claude_code_version: "0.7.35",
|
|
538754
538746
|
output_style: outputStyle2,
|
|
538755
538747
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
538756
538748
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -553302,7 +553294,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
553302
553294
|
function getSemverPart(version7) {
|
|
553303
553295
|
return `${import_semver13.major(version7, { loose: true })}.${import_semver13.minor(version7, { loose: true })}.${import_semver13.patch(version7, { loose: true })}`;
|
|
553304
553296
|
}
|
|
553305
|
-
function useUpdateNotification(updatedVersion, initialVersion = "0.7.
|
|
553297
|
+
function useUpdateNotification(updatedVersion, initialVersion = "0.7.35") {
|
|
553306
553298
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
|
|
553307
553299
|
if (!updatedVersion) {
|
|
553308
553300
|
return null;
|
|
@@ -553342,7 +553334,7 @@ function AutoUpdater({
|
|
|
553342
553334
|
return;
|
|
553343
553335
|
}
|
|
553344
553336
|
if (false) {}
|
|
553345
|
-
const currentVersion = "0.7.
|
|
553337
|
+
const currentVersion = "0.7.35";
|
|
553346
553338
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
553347
553339
|
let latestVersion = await getLatestVersion(channel);
|
|
553348
553340
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -553555,12 +553547,12 @@ function NativeAutoUpdater({
|
|
|
553555
553547
|
logEvent("tengu_native_auto_updater_start", {});
|
|
553556
553548
|
try {
|
|
553557
553549
|
const maxVersion = await getMaxVersion();
|
|
553558
|
-
if (maxVersion && gt("0.7.
|
|
553550
|
+
if (maxVersion && gt("0.7.35", maxVersion)) {
|
|
553559
553551
|
const msg = await getMaxVersionMessage();
|
|
553560
553552
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
553561
553553
|
}
|
|
553562
553554
|
const result = await installLatest(channel);
|
|
553563
|
-
const currentVersion = "0.7.
|
|
553555
|
+
const currentVersion = "0.7.35";
|
|
553564
553556
|
const latencyMs = Date.now() - startTime;
|
|
553565
553557
|
if (result.lockFailed) {
|
|
553566
553558
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -553697,17 +553689,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
553697
553689
|
const maxVersion = await getMaxVersion();
|
|
553698
553690
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
553699
553691
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
553700
|
-
if (gte("0.7.
|
|
553701
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.7.
|
|
553692
|
+
if (gte("0.7.35", maxVersion)) {
|
|
553693
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.7.35"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
553702
553694
|
setUpdateAvailable(false);
|
|
553703
553695
|
return;
|
|
553704
553696
|
}
|
|
553705
553697
|
latest = maxVersion;
|
|
553706
553698
|
}
|
|
553707
|
-
const hasUpdate = latest && !gte("0.7.
|
|
553699
|
+
const hasUpdate = latest && !gte("0.7.35", latest) && !shouldSkipVersion(latest);
|
|
553708
553700
|
setUpdateAvailable(!!hasUpdate);
|
|
553709
553701
|
if (hasUpdate) {
|
|
553710
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.7.
|
|
553702
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.7.35"} -> ${latest}`);
|
|
553711
553703
|
}
|
|
553712
553704
|
};
|
|
553713
553705
|
$3[0] = t1;
|
|
@@ -553741,7 +553733,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
553741
553733
|
wrap: "truncate",
|
|
553742
553734
|
children: [
|
|
553743
553735
|
"currentVersion: ",
|
|
553744
|
-
"0.7.
|
|
553736
|
+
"0.7.35"
|
|
553745
553737
|
]
|
|
553746
553738
|
}, undefined, true, undefined, this);
|
|
553747
553739
|
$3[3] = verbose;
|
|
@@ -561851,7 +561843,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
561851
561843
|
project_dir: getOriginalCwd(),
|
|
561852
561844
|
added_dirs: addedDirs
|
|
561853
561845
|
},
|
|
561854
|
-
version: "0.7.
|
|
561846
|
+
version: "0.7.35",
|
|
561855
561847
|
output_style: {
|
|
561856
561848
|
name: outputStyleName
|
|
561857
561849
|
},
|
|
@@ -573239,7 +573231,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
573239
573231
|
} catch {}
|
|
573240
573232
|
const data = {
|
|
573241
573233
|
trigger,
|
|
573242
|
-
version: "0.7.
|
|
573234
|
+
version: "0.7.35",
|
|
573243
573235
|
platform: process.platform,
|
|
573244
573236
|
transcript,
|
|
573245
573237
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -577001,7 +576993,7 @@ function useMcpConnectivityStatus(t0) {
|
|
|
577001
576993
|
}
|
|
577002
576994
|
if (failedClaudeAiClients.length > 0) {
|
|
577003
576995
|
addNotification({
|
|
577004
|
-
key: "mcp-
|
|
576996
|
+
key: "mcp-ainative-failed",
|
|
577005
576997
|
jsx: /* @__PURE__ */ jsx_dev_runtime452.jsxDEV(jsx_dev_runtime452.Fragment, {
|
|
577006
576998
|
children: [
|
|
577007
576999
|
/* @__PURE__ */ jsx_dev_runtime452.jsxDEV(ThemedText, {
|
|
@@ -577051,7 +577043,7 @@ function useMcpConnectivityStatus(t0) {
|
|
|
577051
577043
|
}
|
|
577052
577044
|
if (needsAuthClaudeAiServers.length > 0) {
|
|
577053
577045
|
addNotification({
|
|
577054
|
-
key: "mcp-
|
|
577046
|
+
key: "mcp-ainative-needs-auth",
|
|
577055
577047
|
jsx: /* @__PURE__ */ jsx_dev_runtime452.jsxDEV(jsx_dev_runtime452.Fragment, {
|
|
577056
577048
|
children: [
|
|
577057
577049
|
/* @__PURE__ */ jsx_dev_runtime452.jsxDEV(ThemedText, {
|
|
@@ -577087,23 +577079,23 @@ function useMcpConnectivityStatus(t0) {
|
|
|
577087
577079
|
import_react301.useEffect(t2, t3);
|
|
577088
577080
|
}
|
|
577089
577081
|
function _temp442(client_2) {
|
|
577090
|
-
return client_2.type === "needs-auth" && client_2.config.type === "
|
|
577082
|
+
return client_2.type === "needs-auth" && client_2.config.type === "ainative-proxy" && hasAINativeMcpEverConnected(client_2.name);
|
|
577091
577083
|
}
|
|
577092
577084
|
function _temp355(client_1) {
|
|
577093
|
-
return client_1.type === "needs-auth" && client_1.config.type !== "
|
|
577085
|
+
return client_1.type === "needs-auth" && client_1.config.type !== "ainative-proxy";
|
|
577094
577086
|
}
|
|
577095
577087
|
function _temp287(client_0) {
|
|
577096
|
-
return client_0.type === "failed" && client_0.config.type === "
|
|
577088
|
+
return client_0.type === "failed" && client_0.config.type === "ainative-proxy" && hasAINativeMcpEverConnected(client_0.name);
|
|
577097
577089
|
}
|
|
577098
577090
|
function _temp208(client4) {
|
|
577099
|
-
return client4.type === "failed" && client4.config.type !== "sse-ide" && client4.config.type !== "ws-ide" && client4.config.type !== "
|
|
577091
|
+
return client4.type === "failed" && client4.config.type !== "sse-ide" && client4.config.type !== "ws-ide" && client4.config.type !== "ainative-proxy";
|
|
577100
577092
|
}
|
|
577101
577093
|
var import_compiler_runtime351, import_react301, jsx_dev_runtime452, EMPTY_MCP_CLIENTS;
|
|
577102
577094
|
var init_useMcpConnectivityStatus = __esm(() => {
|
|
577103
577095
|
init_notifications();
|
|
577104
577096
|
init_state();
|
|
577105
577097
|
init_ink2();
|
|
577106
|
-
|
|
577098
|
+
init_ainative();
|
|
577107
577099
|
import_compiler_runtime351 = __toESM(require_compiler_runtime(), 1);
|
|
577108
577100
|
import_react301 = __toESM(require_react(), 1);
|
|
577109
577101
|
jsx_dev_runtime452 = __toESM(require_jsx_dev_runtime(), 1);
|
|
@@ -585256,7 +585248,7 @@ function WelcomeV2() {
|
|
|
585256
585248
|
dimColor: true,
|
|
585257
585249
|
children: [
|
|
585258
585250
|
"v",
|
|
585259
|
-
"0.7.
|
|
585251
|
+
"0.7.35",
|
|
585260
585252
|
" "
|
|
585261
585253
|
]
|
|
585262
585254
|
}, undefined, true, undefined, this)
|
|
@@ -586557,7 +586549,7 @@ function completeOnboarding() {
|
|
|
586557
586549
|
saveGlobalConfig((current) => ({
|
|
586558
586550
|
...current,
|
|
586559
586551
|
hasCompletedOnboarding: true,
|
|
586560
|
-
lastOnboardingVersion: "0.7.
|
|
586552
|
+
lastOnboardingVersion: "0.7.35"
|
|
586561
586553
|
}));
|
|
586562
586554
|
}
|
|
586563
586555
|
function showDialog(root2, renderer) {
|
|
@@ -591035,7 +591027,7 @@ function appendToLog(path28, message) {
|
|
|
591035
591027
|
cwd: getFsImplementation().cwd(),
|
|
591036
591028
|
userType: "external",
|
|
591037
591029
|
sessionId: getSessionId(),
|
|
591038
|
-
version: "0.7.
|
|
591030
|
+
version: "0.7.35"
|
|
591039
591031
|
};
|
|
591040
591032
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
591041
591033
|
}
|
|
@@ -594994,8 +594986,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
594994
594986
|
}
|
|
594995
594987
|
async function checkEnvLessBridgeMinVersion() {
|
|
594996
594988
|
const cfg = await getEnvLessBridgeConfig();
|
|
594997
|
-
if (cfg.min_version && lt("0.7.
|
|
594998
|
-
return `Your version of Cody CLI (${"0.7.
|
|
594989
|
+
if (cfg.min_version && lt("0.7.35", cfg.min_version)) {
|
|
594990
|
+
return `Your version of Cody CLI (${"0.7.35"}) is too old for Remote Control.
|
|
594999
594991
|
Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
|
|
595000
594992
|
}
|
|
595001
594993
|
return null;
|
|
@@ -595469,7 +595461,7 @@ async function initBridgeCore(params) {
|
|
|
595469
595461
|
const rawApi = createBridgeApiClient({
|
|
595470
595462
|
baseUrl,
|
|
595471
595463
|
getAccessToken,
|
|
595472
|
-
runnerVersion: "0.7.
|
|
595464
|
+
runnerVersion: "0.7.35",
|
|
595473
595465
|
onDebug: logForDebugging,
|
|
595474
595466
|
onAuth401,
|
|
595475
595467
|
getTrustedDeviceToken
|
|
@@ -597931,9 +597923,9 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
597931
597923
|
headers: connection.config.headers,
|
|
597932
597924
|
oauth: connection.config.oauth
|
|
597933
597925
|
};
|
|
597934
|
-
} else if (connection.config.type === "
|
|
597926
|
+
} else if (connection.config.type === "ainative-proxy") {
|
|
597935
597927
|
config4 = {
|
|
597936
|
-
type: "
|
|
597928
|
+
type: "ainative-proxy",
|
|
597937
597929
|
url: connection.config.url,
|
|
597938
597930
|
id: connection.config.id
|
|
597939
597931
|
};
|
|
@@ -601106,7 +601098,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
601106
601098
|
setCwd(cwd3);
|
|
601107
601099
|
const server = new Server({
|
|
601108
601100
|
name: "claude/tengu",
|
|
601109
|
-
version: "0.7.
|
|
601101
|
+
version: "0.7.35"
|
|
601110
601102
|
}, {
|
|
601111
601103
|
capabilities: {
|
|
601112
601104
|
tools: {}
|
|
@@ -601472,7 +601464,7 @@ async function mcpListHandler() {
|
|
|
601472
601464
|
console.log(`${name3}: ${server.url} (SSE) - ${status2}`);
|
|
601473
601465
|
} else if (server.type === "http") {
|
|
601474
601466
|
console.log(`${name3}: ${server.url} (HTTP) - ${status2}`);
|
|
601475
|
-
} else if (server.type === "
|
|
601467
|
+
} else if (server.type === "ainative-proxy") {
|
|
601476
601468
|
console.log(`${name3}: ${server.url} - ${status2}`);
|
|
601477
601469
|
} else if (!server.type || server.type === "stdio") {
|
|
601478
601470
|
const args = Array.isArray(server.args) ? server.args : [];
|
|
@@ -602717,7 +602709,7 @@ __export(exports_update, {
|
|
|
602717
602709
|
});
|
|
602718
602710
|
async function update() {
|
|
602719
602711
|
logEvent("tengu_update_check", {});
|
|
602720
|
-
writeToStdout(`Current version: ${"0.7.
|
|
602712
|
+
writeToStdout(`Current version: ${"0.7.35"}
|
|
602721
602713
|
`);
|
|
602722
602714
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
602723
602715
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -602792,8 +602784,8 @@ async function update() {
|
|
|
602792
602784
|
writeToStdout(`Cody CLI is managed by Homebrew.
|
|
602793
602785
|
`);
|
|
602794
602786
|
const latest = await getLatestVersion(channel);
|
|
602795
|
-
if (latest && !gte("0.7.
|
|
602796
|
-
writeToStdout(`Update available: ${"0.7.
|
|
602787
|
+
if (latest && !gte("0.7.35", latest)) {
|
|
602788
|
+
writeToStdout(`Update available: ${"0.7.35"} → ${latest}
|
|
602797
602789
|
`);
|
|
602798
602790
|
writeToStdout(`
|
|
602799
602791
|
`);
|
|
@@ -602809,8 +602801,8 @@ async function update() {
|
|
|
602809
602801
|
writeToStdout(`Cody CLI is managed by winget.
|
|
602810
602802
|
`);
|
|
602811
602803
|
const latest = await getLatestVersion(channel);
|
|
602812
|
-
if (latest && !gte("0.7.
|
|
602813
|
-
writeToStdout(`Update available: ${"0.7.
|
|
602804
|
+
if (latest && !gte("0.7.35", latest)) {
|
|
602805
|
+
writeToStdout(`Update available: ${"0.7.35"} → ${latest}
|
|
602814
602806
|
`);
|
|
602815
602807
|
writeToStdout(`
|
|
602816
602808
|
`);
|
|
@@ -602826,8 +602818,8 @@ async function update() {
|
|
|
602826
602818
|
writeToStdout(`Cody CLI is managed by apk.
|
|
602827
602819
|
`);
|
|
602828
602820
|
const latest = await getLatestVersion(channel);
|
|
602829
|
-
if (latest && !gte("0.7.
|
|
602830
|
-
writeToStdout(`Update available: ${"0.7.
|
|
602821
|
+
if (latest && !gte("0.7.35", latest)) {
|
|
602822
|
+
writeToStdout(`Update available: ${"0.7.35"} → ${latest}
|
|
602831
602823
|
`);
|
|
602832
602824
|
writeToStdout(`
|
|
602833
602825
|
`);
|
|
@@ -602892,11 +602884,11 @@ async function update() {
|
|
|
602892
602884
|
`);
|
|
602893
602885
|
await gracefulShutdown(1);
|
|
602894
602886
|
}
|
|
602895
|
-
if (result.latestVersion === "0.7.
|
|
602896
|
-
writeToStdout(source_default.green(`Cody CLI is up to date (${"0.7.
|
|
602887
|
+
if (result.latestVersion === "0.7.35") {
|
|
602888
|
+
writeToStdout(source_default.green(`Cody CLI is up to date (${"0.7.35"})`) + `
|
|
602897
602889
|
`);
|
|
602898
602890
|
} else {
|
|
602899
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.7.
|
|
602891
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.7.35"} to version ${result.latestVersion}`) + `
|
|
602900
602892
|
`);
|
|
602901
602893
|
await regenerateCompletionCache();
|
|
602902
602894
|
}
|
|
@@ -602956,12 +602948,12 @@ async function update() {
|
|
|
602956
602948
|
`);
|
|
602957
602949
|
await gracefulShutdown(1);
|
|
602958
602950
|
}
|
|
602959
|
-
if (latestVersion === "0.7.
|
|
602960
|
-
writeToStdout(source_default.green(`Cody CLI is up to date (${"0.7.
|
|
602951
|
+
if (latestVersion === "0.7.35") {
|
|
602952
|
+
writeToStdout(source_default.green(`Cody CLI is up to date (${"0.7.35"})`) + `
|
|
602961
602953
|
`);
|
|
602962
602954
|
await gracefulShutdown(0);
|
|
602963
602955
|
}
|
|
602964
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.
|
|
602956
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.35"})
|
|
602965
602957
|
`);
|
|
602966
602958
|
writeToStdout(`Installing update...
|
|
602967
602959
|
`);
|
|
@@ -603006,7 +602998,7 @@ async function update() {
|
|
|
603006
602998
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
603007
602999
|
switch (status2) {
|
|
603008
603000
|
case "success":
|
|
603009
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.7.
|
|
603001
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.7.35"} to version ${latestVersion}`) + `
|
|
603010
603002
|
`);
|
|
603011
603003
|
await regenerateCompletionCache();
|
|
603012
603004
|
break;
|
|
@@ -603852,7 +603844,7 @@ ${hint}` : hint;
|
|
|
603852
603844
|
console.error(warning);
|
|
603853
603845
|
});
|
|
603854
603846
|
assertMinVersion();
|
|
603855
|
-
const
|
|
603847
|
+
const ainativeConfigPromise = isNonInteractiveSession && !strictMcpConfig && !doesEnterpriseMcpConfigExist() && !isBareMode() && process.env.CODY_CLI !== "1" ? fetchAINativeMcpConfigsIfEligible().then((configs) => {
|
|
603856
603848
|
const {
|
|
603857
603849
|
allowed,
|
|
603858
603850
|
blocked
|
|
@@ -604194,19 +604186,19 @@ ${customInstructions}` : customInstructions;
|
|
|
604194
604186
|
tools: [],
|
|
604195
604187
|
commands: []
|
|
604196
604188
|
}) : prefetchAllMcpResources(regularMcpConfigs);
|
|
604197
|
-
const
|
|
604189
|
+
const ainativeMcpPromise = isNonInteractiveSession ? Promise.resolve({
|
|
604198
604190
|
clients: [],
|
|
604199
604191
|
tools: [],
|
|
604200
604192
|
commands: []
|
|
604201
|
-
}) :
|
|
604193
|
+
}) : ainativeConfigPromise.then((configs) => Object.keys(configs).length > 0 ? prefetchAllMcpResources(configs) : {
|
|
604202
604194
|
clients: [],
|
|
604203
604195
|
tools: [],
|
|
604204
604196
|
commands: []
|
|
604205
604197
|
});
|
|
604206
|
-
const mcpPromise = Promise.all([localMcpPromise,
|
|
604207
|
-
clients: [...local.clients, ...
|
|
604208
|
-
tools: uniqBy_default([...local.tools, ...
|
|
604209
|
-
commands: uniqBy_default([...local.commands, ...
|
|
604198
|
+
const mcpPromise = Promise.all([localMcpPromise, ainativeMcpPromise]).then(([local, ainative]) => ({
|
|
604199
|
+
clients: [...local.clients, ...ainative.clients],
|
|
604200
|
+
tools: uniqBy_default([...local.tools, ...ainative.tools], "name"),
|
|
604201
|
+
commands: uniqBy_default([...local.commands, ...ainative.commands], "name")
|
|
604210
604202
|
}));
|
|
604211
604203
|
const hooksPromise = initOnly || init2 || maintenance || isNonInteractiveSession || options.continue || options.resume ? null : processSessionStartHooks("startup", {
|
|
604212
604204
|
agentType: mainThreadAgentDefinition?.agentType,
|
|
@@ -604251,7 +604243,7 @@ ${customInstructions}` : customInstructions;
|
|
|
604251
604243
|
}
|
|
604252
604244
|
}
|
|
604253
604245
|
logForDiagnosticsNoPII("info", "started", {
|
|
604254
|
-
version: "0.7.
|
|
604246
|
+
version: "0.7.35",
|
|
604255
604247
|
is_native_binary: isInBundledMode()
|
|
604256
604248
|
});
|
|
604257
604249
|
registerCleanup(async () => {
|
|
@@ -604398,21 +604390,21 @@ ${customInstructions}` : customInstructions;
|
|
|
604398
604390
|
profileCheckpoint("before_connectMcp");
|
|
604399
604391
|
await connectMcpBatch(regularMcpConfigs, "regular");
|
|
604400
604392
|
profileCheckpoint("after_connectMcp");
|
|
604401
|
-
const
|
|
604402
|
-
const
|
|
604403
|
-
if (Object.keys(
|
|
604404
|
-
const
|
|
604405
|
-
for (const config4 of Object.values(
|
|
604393
|
+
const AINATIVE_MCP_TIMEOUT_MS = 5000;
|
|
604394
|
+
const ainativeConnect = ainativeConfigPromise.then((ainativeConfigs) => {
|
|
604395
|
+
if (Object.keys(ainativeConfigs).length > 0) {
|
|
604396
|
+
const ainativeSigs = new Set;
|
|
604397
|
+
for (const config4 of Object.values(ainativeConfigs)) {
|
|
604406
604398
|
const sig = getMcpServerSignature(config4);
|
|
604407
604399
|
if (sig)
|
|
604408
|
-
|
|
604400
|
+
ainativeSigs.add(sig);
|
|
604409
604401
|
}
|
|
604410
604402
|
const suppressed = new Set;
|
|
604411
604403
|
for (const [name3, config4] of Object.entries(regularMcpConfigs)) {
|
|
604412
604404
|
if (!name3.startsWith("plugin:"))
|
|
604413
604405
|
continue;
|
|
604414
604406
|
const sig = getMcpServerSignature(config4);
|
|
604415
|
-
if (sig &&
|
|
604407
|
+
if (sig && ainativeSigs.has(sig))
|
|
604416
604408
|
suppressed.add(name3);
|
|
604417
604409
|
}
|
|
604418
604410
|
if (suppressed.size > 0) {
|
|
@@ -604451,20 +604443,20 @@ ${customInstructions}` : customInstructions;
|
|
|
604451
604443
|
}
|
|
604452
604444
|
const nonPluginConfigs = pickBy_default(regularMcpConfigs, (_2, n3) => !n3.startsWith("plugin:"));
|
|
604453
604445
|
const {
|
|
604454
|
-
servers:
|
|
604455
|
-
} =
|
|
604456
|
-
return connectMcpBatch(
|
|
604446
|
+
servers: dedupedAINative
|
|
604447
|
+
} = dedupAINativeMcpServers(ainativeConfigs, nonPluginConfigs);
|
|
604448
|
+
return connectMcpBatch(dedupedAINative, "ainative");
|
|
604457
604449
|
});
|
|
604458
|
-
let
|
|
604459
|
-
const
|
|
604460
|
-
|
|
604450
|
+
let ainativeTimer;
|
|
604451
|
+
const ainativeTimedOut = await Promise.race([ainativeConnect.then(() => false), new Promise((resolve43) => {
|
|
604452
|
+
ainativeTimer = setTimeout((r) => r(true), AINATIVE_MCP_TIMEOUT_MS, resolve43);
|
|
604461
604453
|
})]);
|
|
604462
|
-
if (
|
|
604463
|
-
clearTimeout(
|
|
604464
|
-
if (
|
|
604465
|
-
logForDebugging(`[MCP] claude.ai connectors not ready after ${
|
|
604454
|
+
if (ainativeTimer)
|
|
604455
|
+
clearTimeout(ainativeTimer);
|
|
604456
|
+
if (ainativeTimedOut) {
|
|
604457
|
+
logForDebugging(`[MCP] claude.ai connectors not ready after ${AINATIVE_MCP_TIMEOUT_MS}ms — proceeding; background connection continues`);
|
|
604466
604458
|
}
|
|
604467
|
-
profileCheckpoint("
|
|
604459
|
+
profileCheckpoint("after_connectMcp_ainative");
|
|
604468
604460
|
if (!isBareMode()) {
|
|
604469
604461
|
startDeferredPrefetches();
|
|
604470
604462
|
Promise.resolve().then(() => (init_backgroundHousekeeping(), exports_backgroundHousekeeping)).then((m2) => m2.startBackgroundHousekeeping());
|
|
@@ -604545,6 +604537,15 @@ ${customInstructions}` : customInstructions;
|
|
|
604545
604537
|
priority: "high"
|
|
604546
604538
|
});
|
|
604547
604539
|
}
|
|
604540
|
+
const ripgrepWarning = getRipgrepMissingWarning();
|
|
604541
|
+
if (ripgrepWarning) {
|
|
604542
|
+
initialNotifications.push({
|
|
604543
|
+
key: "ripgrep-missing-warning",
|
|
604544
|
+
text: ripgrepWarning,
|
|
604545
|
+
color: "warning",
|
|
604546
|
+
priority: "high"
|
|
604547
|
+
});
|
|
604548
|
+
}
|
|
604548
604549
|
const effectiveToolPermissionContext = {
|
|
604549
604550
|
...toolPermissionContext,
|
|
604550
604551
|
mode: isAgentSwarmsEnabled() && getTeammateUtils().isPlanModeRequired() ? "plan" : toolPermissionContext.mode
|
|
@@ -605019,7 +605020,7 @@ Usage: cody --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
605019
605020
|
} else {
|
|
605020
605021
|
const pendingHookMessages = hooksPromise && hookMessages.length === 0 ? hooksPromise : undefined;
|
|
605021
605022
|
profileCheckpoint("action_after_hooks");
|
|
605022
|
-
console.log(getWelcomeMessage("0.7.
|
|
605023
|
+
console.log(getWelcomeMessage("0.7.35"));
|
|
605023
605024
|
maybeActivateProactive(options);
|
|
605024
605025
|
maybeActivateBrief(options);
|
|
605025
605026
|
if (false) {}
|
|
@@ -605036,10 +605037,10 @@ Usage: cody --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
605036
605037
|
pendingHookMessages
|
|
605037
605038
|
}, renderAndRun);
|
|
605038
605039
|
}
|
|
605039
|
-
}).version("0.7.
|
|
605040
|
+
}).version("0.7.35 (Cody CLI)", "-v, --version", "Output the version number");
|
|
605040
605041
|
program2.configureOutput({
|
|
605041
605042
|
writeOut: (str2) => {
|
|
605042
|
-
if (str2.includes("0.7.
|
|
605043
|
+
if (str2.includes("0.7.35")) {
|
|
605043
605044
|
process.stdout.write(getCodyLogo() + `
|
|
605044
605045
|
` + str2);
|
|
605045
605046
|
} else {
|
|
@@ -605138,7 +605139,7 @@ Usage: cody --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
605138
605139
|
if (false) {}
|
|
605139
605140
|
if (false) {}
|
|
605140
605141
|
const auth2 = program2.command("auth").description("Manage authentication").configureHelp(createSortedHelpConfig());
|
|
605141
|
-
auth2.command("login").description("Sign in to your AINative account").option("--email <email>", "Pre-populate email address on the login page").option("--sso", "Force SSO login flow").option("--console", "Use AINative Console (API usage billing)").option("--
|
|
605142
|
+
auth2.command("login").description("Sign in to your AINative account").option("--email <email>", "Pre-populate email address on the login page").option("--sso", "Force SSO login flow").option("--console", "Use AINative Console (API usage billing)").option("--ainative", "Use AINative subscription (default)").action(async ({
|
|
605142
605143
|
email: email3,
|
|
605143
605144
|
sso,
|
|
605144
605145
|
console: useConsole,
|
|
@@ -605489,7 +605490,7 @@ var init_main3 = __esm(() => {
|
|
|
605489
605490
|
init_addCommand();
|
|
605490
605491
|
init_xaaIdpCommand();
|
|
605491
605492
|
init_internalLogging();
|
|
605492
|
-
|
|
605493
|
+
init_ainative();
|
|
605493
605494
|
init_client8();
|
|
605494
605495
|
init_config3();
|
|
605495
605496
|
init_utils5();
|
|
@@ -605596,7 +605597,7 @@ async function main2() {
|
|
|
605596
605597
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
605597
605598
|
const { getCodyLogo: getCodyLogo2 } = await Promise.resolve().then(() => (init_branding(), exports_branding));
|
|
605598
605599
|
console.log(getCodyLogo2() + `
|
|
605599
|
-
0.7.
|
|
605600
|
+
0.7.35 (Cody CLI)`);
|
|
605600
605601
|
return;
|
|
605601
605602
|
}
|
|
605602
605603
|
const {
|