opencode-anthropic-multi-account 0.2.29 → 0.2.31
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/{chunk-3CTML5AX.js → chunk-QDWAW66H.js} +24 -3
- package/dist/chunk-QDWAW66H.js.map +1 -0
- package/dist/{chunk-J3OX3O5E.js → chunk-VV6PT72I.js} +17 -17
- package/dist/chunk-VV6PT72I.js.map +1 -0
- package/dist/fingerprint-capture.d.ts +1 -1
- package/dist/fingerprint-capture.js +2 -2
- package/dist/index.js +2 -2
- package/dist/scrub-template.js +1 -1
- package/package.json +3 -2
- package/dist/chunk-3CTML5AX.js.map +0 -1
- package/dist/chunk-J3OX3O5E.js.map +0 -1
|
@@ -26,6 +26,20 @@ var USER_PATH_HIT_PATTERNS = [
|
|
|
26
26
|
/\/home\/(?!user(?:\/|$))[A-Za-z0-9._-]+(?:\/[^\s"'`<>)]*)?/g,
|
|
27
27
|
/[A-Za-z]:\\Users\\(?!user(?:\\|$))[A-Za-z0-9._-]+(?:\\[^\s"'`<>)]*)?/g
|
|
28
28
|
];
|
|
29
|
+
var GIT_METADATA_REPLACEMENTS = [
|
|
30
|
+
{
|
|
31
|
+
pattern: /^Current branch: .+$/gm,
|
|
32
|
+
replacement: "Current branch: (dynamic)"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
pattern: /^Main branch \(you will usually use this for PRs\): .+$/gm,
|
|
36
|
+
replacement: "Main branch (you will usually use this for PRs): (dynamic)"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
pattern: /^Git user: .+$/gm,
|
|
40
|
+
replacement: "Git user: (dynamic)"
|
|
41
|
+
}
|
|
42
|
+
];
|
|
29
43
|
function normalizeSectionName(value) {
|
|
30
44
|
return value.toLowerCase().replace(/[^a-z0-9]+/g, "");
|
|
31
45
|
}
|
|
@@ -47,12 +61,19 @@ function removeDynamicRecentCommits(text) {
|
|
|
47
61
|
"$1(dynamic)\n"
|
|
48
62
|
);
|
|
49
63
|
}
|
|
64
|
+
function removeDynamicGitMetadata(text) {
|
|
65
|
+
let scrubbed = text;
|
|
66
|
+
for (const { pattern, replacement } of GIT_METADATA_REPLACEMENTS) {
|
|
67
|
+
scrubbed = scrubbed.replace(pattern, replacement);
|
|
68
|
+
}
|
|
69
|
+
return scrubbed;
|
|
70
|
+
}
|
|
50
71
|
function scrubText(text) {
|
|
51
72
|
let scrubbed = text;
|
|
52
73
|
for (const { pattern, replacement } of USER_PATH_REPLACEMENTS) {
|
|
53
74
|
scrubbed = scrubbed.replace(pattern, replacement);
|
|
54
75
|
}
|
|
55
|
-
return scrubbed;
|
|
76
|
+
return removeDynamicGitMetadata(scrubbed);
|
|
56
77
|
}
|
|
57
78
|
function findUserPathHits(text) {
|
|
58
79
|
const hits = USER_PATH_HIT_PATTERNS.flatMap((pattern) => text.match(pattern) ?? []);
|
|
@@ -84,7 +105,7 @@ function removeHostContextSections(systemPrompt) {
|
|
|
84
105
|
}
|
|
85
106
|
keptLines.push(line);
|
|
86
107
|
}
|
|
87
|
-
return cleanupRemovedSections(removeDynamicRecentCommits(removeDynamicStatusBlock(keptLines.join("\n"))));
|
|
108
|
+
return cleanupRemovedSections(removeDynamicGitMetadata(removeDynamicRecentCommits(removeDynamicStatusBlock(keptLines.join("\n")))));
|
|
88
109
|
}
|
|
89
110
|
function scrubObjectStrings(value) {
|
|
90
111
|
if (typeof value === "string") {
|
|
@@ -122,4 +143,4 @@ export {
|
|
|
122
143
|
scrubObjectStrings,
|
|
123
144
|
scrubTemplate
|
|
124
145
|
};
|
|
125
|
-
//# sourceMappingURL=chunk-
|
|
146
|
+
//# sourceMappingURL=chunk-QDWAW66H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/claude-code/scrub-template.ts"],"sourcesContent":["interface ScrubTemplateOptions {\n dropMcpTools?: boolean;\n}\n\ninterface TemplateToolLike {\n name: string;\n [key: string]: unknown;\n}\n\ninterface TemplateLike {\n agent_identity: string;\n system_prompt: string;\n tools: TemplateToolLike[];\n tool_names: string[];\n header_order?: string[];\n header_values?: Record<string, string>;\n}\n\nconst HOST_CONTEXT_SECTION_NAMES = new Set([\n \"environment\",\n \"automemory\",\n \"claudemd\",\n \"useremail\",\n \"currentdate\",\n \"gitstatus\",\n]);\n\nconst USER_PATH_REPLACEMENTS = [\n {\n pattern: /\\/Users\\/(?!user(?:\\/|$))[A-Za-z0-9._-]+/g,\n replacement: \"/Users/user\",\n },\n {\n pattern: /\\/home\\/(?!user(?:\\/|$))[A-Za-z0-9._-]+/g,\n replacement: \"/home/user\",\n },\n {\n pattern: /([A-Za-z]:\\\\Users\\\\)(?!user(?:\\\\|$))[A-Za-z0-9._-]+/g,\n replacement: \"$1user\",\n },\n] as const;\n\nconst USER_PATH_HIT_PATTERNS = [\n /\\/Users\\/(?!user(?:\\/|$))[A-Za-z0-9._-]+(?:\\/[^\\s\"'`<>)]*)?/g,\n /\\/home\\/(?!user(?:\\/|$))[A-Za-z0-9._-]+(?:\\/[^\\s\"'`<>)]*)?/g,\n /[A-Za-z]:\\\\Users\\\\(?!user(?:\\\\|$))[A-Za-z0-9._-]+(?:\\\\[^\\s\"'`<>)]*)?/g,\n] as const;\n\nconst GIT_METADATA_REPLACEMENTS = [\n {\n pattern: /^Current branch: .+$/gm,\n replacement: \"Current branch: (dynamic)\",\n },\n {\n pattern: /^Main branch \\(you will usually use this for PRs\\): .+$/gm,\n replacement: \"Main branch (you will usually use this for PRs): (dynamic)\",\n },\n {\n pattern: /^Git user: .+$/gm,\n replacement: \"Git user: (dynamic)\",\n },\n] as const;\n\nfunction normalizeSectionName(value: string): string {\n return value.toLowerCase().replace(/[^a-z0-9]+/g, \"\");\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction cleanupRemovedSections(text: string): string {\n return text\n .replace(/\\n{3,}/g, \"\\n\\n\")\n .replace(/^(?:\\s*\\n)+/, \"\")\n .replace(/(?:\\n\\s*)+$/, \"\");\n}\n\nfunction removeDynamicStatusBlock(text: string): string {\n return text.replace(\n /\\n\\nStatus:\\n(?:[\\s\\S]*?)\\n\\nRecent commits:\\n/g,\n \"\\n\\nStatus:\\n(dynamic)\\n\\nRecent commits:\\n\",\n );\n}\n\nfunction removeDynamicRecentCommits(text: string): string {\n return text.replace(\n /(\\n\\nRecent commits:\\n)(?:[0-9a-f]{7,}\\s.*\\n?)+/g,\n \"$1(dynamic)\\n\",\n );\n}\n\nfunction removeDynamicGitMetadata(text: string): string {\n let scrubbed = text;\n\n for (const { pattern, replacement } of GIT_METADATA_REPLACEMENTS) {\n scrubbed = scrubbed.replace(pattern, replacement);\n }\n\n return scrubbed;\n}\n\nexport function scrubText(text: string): string {\n let scrubbed = text;\n\n for (const { pattern, replacement } of USER_PATH_REPLACEMENTS) {\n scrubbed = scrubbed.replace(pattern, replacement);\n }\n\n return removeDynamicGitMetadata(scrubbed);\n}\n\nexport function findUserPathHits(text: string): string[] {\n const hits = USER_PATH_HIT_PATTERNS.flatMap((pattern) => text.match(pattern) ?? []);\n return [...new Set(hits)];\n}\n\nexport function removeHostContextSections(systemPrompt: string): string {\n const lines = systemPrompt.split(\"\\n\");\n const keptLines: string[] = [];\n let skippedHeadingDepth: number | null = null;\n\n for (const line of lines) {\n const headingMatch = line.match(/^\\s{0,3}(#{1,6})\\s+(.+?)\\s*$/);\n\n if (headingMatch) {\n const headingDepth = headingMatch[1]!.length;\n const sectionName = normalizeSectionName(headingMatch[2]!);\n const startsSkippedSection = HOST_CONTEXT_SECTION_NAMES.has(sectionName);\n\n if (startsSkippedSection) {\n skippedHeadingDepth = headingDepth;\n continue;\n }\n\n if (skippedHeadingDepth !== null && headingDepth > skippedHeadingDepth) {\n continue;\n }\n\n skippedHeadingDepth = null;\n keptLines.push(line);\n continue;\n }\n\n if (skippedHeadingDepth !== null) {\n continue;\n }\n\n keptLines.push(line);\n }\n\n return cleanupRemovedSections(removeDynamicGitMetadata(removeDynamicRecentCommits(removeDynamicStatusBlock(keptLines.join(\"\\n\")))));\n}\n\nexport function scrubObjectStrings(value: unknown): unknown {\n if (typeof value === \"string\") {\n return scrubText(value);\n }\n\n if (Array.isArray(value)) {\n return value.map((entry) => scrubObjectStrings(entry));\n }\n\n if (isRecord(value)) {\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => [key, scrubObjectStrings(entry)]),\n );\n }\n\n return value;\n}\n\nexport function scrubTemplate<T extends TemplateLike>(data: T, options?: ScrubTemplateOptions): T {\n const systemPrompt = scrubText(removeHostContextSections(data.system_prompt));\n const dropMcpTools = options?.dropMcpTools ?? true;\n const tools = data.tools\n .filter((tool) => !dropMcpTools || !tool.name.startsWith(\"mcp__\"))\n .map((tool) => scrubObjectStrings(tool) as T[\"tools\"][number]);\n\n return {\n ...data,\n agent_identity: scrubText(data.agent_identity),\n system_prompt: systemPrompt,\n tools,\n tool_names: tools.map((tool) => tool.name),\n header_order: data.header_order ? [...data.header_order] : undefined,\n header_values: data.header_values\n ? scrubObjectStrings(data.header_values) as Record<string, string>\n : undefined,\n } as T;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
scrubTemplate
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QDWAW66H.js";
|
|
4
4
|
|
|
5
5
|
// src/claude-code/fingerprint/capture.ts
|
|
6
6
|
import { spawn } from "child_process";
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
var data_default = {
|
|
22
22
|
_version: 1,
|
|
23
23
|
_schemaVersion: 1,
|
|
24
|
-
_captured: "2026-05-
|
|
24
|
+
_captured: "2026-05-09T04:25:44.414Z",
|
|
25
25
|
_source: "bundled",
|
|
26
26
|
agent_identity: "You are a Claude agent, built on Anthropic's Claude Agent SDK.",
|
|
27
27
|
system_prompt: `You are an interactive agent that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.
|
|
@@ -93,7 +93,7 @@ In code: default to writing no comments. Never write multi-paragraph docstrings
|
|
|
93
93
|
- Use the Agent tool with specialized agents when the task at hand matches the agent's description. Subagents are valuable for parallelizing independent queries or for protecting the main context window from excessive results, but they should not be used excessively when not needed. Importantly, avoid duplicating work that subagents are already doing - if you delegate research to a subagent, do not also perform the same searches yourself.
|
|
94
94
|
- For broad codebase exploration or research that'll take more than 3 queries, spawn Agent with subagent_type=Explore. Otherwise use the Glob or Grep directly.
|
|
95
95
|
- When the user types \`/<skill-name>\`, invoke it via Skill. Only use skills listed in the user-invocable skills section \u2014 don't guess.
|
|
96
|
-
-
|
|
96
|
+
- Default: NO \`/schedule\` offer \u2014 most tasks just end. Offer ONLY when this turn's work left a named artifact with a future obligation you can quote verbatim: a flag/gate/experiment key with a stated ramp or cleanup date; a \`.skip\`/\`xfail\`/temp instrumentation with a written "remove after X" condition; a job ID with an ETA; a dated TODO. Quote the artifact in a one-line offer and derive timing from it \u2014 if no concrete date/ETA/condition exists in the work, skip; never invent or default a timeframe. NEVER offer for: unfinished scope ("do the rest" is not a follow-up \u2014 finish it now), anything doable in this PR, refactors/bugfixes/docs/renames/dep-bumps, or after the user signals done. At most once per session. Phrase the offer as: "Want me to \`/schedule\` \u2026 on <date from the artifact>?"
|
|
97
97
|
- If the user asks about "ultrareview" or how to run it, explain that /ultrareview launches a multi-agent cloud review of the current branch (or /ultrareview <PR#> for a GitHub PR). It is user-triggered and billed; you cannot launch it yourself, so do not attempt to via Bash or otherwise. It needs a git repository (offer to "git init" if not in one); the no-arg form bundles the local branch and does not need a GitHub remote.
|
|
98
98
|
|
|
99
99
|
# Language
|
|
@@ -105,11 +105,11 @@ When working with tool results, write down any important information you might n
|
|
|
105
105
|
|
|
106
106
|
gitStatus: This is the git status at the start of the conversation. Note that this status is a snapshot in time, and will not update during the conversation.
|
|
107
107
|
|
|
108
|
-
Current branch:
|
|
108
|
+
Current branch: (dynamic)
|
|
109
109
|
|
|
110
|
-
Main branch (you will usually use this for PRs):
|
|
110
|
+
Main branch (you will usually use this for PRs): (dynamic)
|
|
111
111
|
|
|
112
|
-
Git user:
|
|
112
|
+
Git user: (dynamic)
|
|
113
113
|
|
|
114
114
|
Status:
|
|
115
115
|
(dynamic)
|
|
@@ -376,7 +376,7 @@ For commands that are harder to parse at a glance (piped commands, obscure flags
|
|
|
376
376
|
type: "string"
|
|
377
377
|
},
|
|
378
378
|
run_in_background: {
|
|
379
|
-
description: "Set to true to run this command in the background.
|
|
379
|
+
description: "Set to true to run this command in the background.",
|
|
380
380
|
type: "boolean"
|
|
381
381
|
},
|
|
382
382
|
dangerouslyDisableSandbox: {
|
|
@@ -529,7 +529,7 @@ Only skip EnterPlanMode for simple tasks:
|
|
|
529
529
|
## What Happens in Plan Mode
|
|
530
530
|
|
|
531
531
|
In plan mode, you'll:
|
|
532
|
-
1. Thoroughly explore the codebase using Glob, Grep, and Read
|
|
532
|
+
1. Thoroughly explore the codebase using Glob, Grep, and Read
|
|
533
533
|
2. Understand existing patterns and architecture
|
|
534
534
|
3. Design an implementation approach
|
|
535
535
|
4. Present your plan to the user for approval
|
|
@@ -579,7 +579,7 @@ User: "What files handle routing?"
|
|
|
579
579
|
},
|
|
580
580
|
{
|
|
581
581
|
name: "EnterWorktree",
|
|
582
|
-
description: 'Use this tool ONLY when explicitly instructed to work in a worktree \u2014 either by the user directly, or by project instructions (CLAUDE.md / memory). This tool creates an isolated git worktree and switches the current session into it.\n\n## When to Use\n\n- The user explicitly says "worktree" (e.g., "start a worktree", "work in a worktree", "create a worktree", "use a worktree")\n- CLAUDE.md or memory instructions direct you to work in a worktree for the current task\n\n## When NOT to Use\n\n- The user asks to create a branch, switch branches, or work on a different branch \u2014 use git commands instead\n- The user asks to fix a bug or work on a feature \u2014 use normal git workflow unless worktrees are explicitly requested by the user or project instructions\n- Never use this tool unless "worktree" is explicitly mentioned by the user or in CLAUDE.md / memory instructions\n\n## Requirements\n\n- Must be in a git repository, OR have WorktreeCreate/WorktreeRemove hooks configured in settings.json\n- Must not already be in a worktree\n\n## Behavior\n\n- In a git repository: creates a new git worktree inside `.claude/worktrees/`
|
|
582
|
+
description: 'Use this tool ONLY when explicitly instructed to work in a worktree \u2014 either by the user directly, or by project instructions (CLAUDE.md / memory). This tool creates an isolated git worktree and switches the current session into it.\n\n## When to Use\n\n- The user explicitly says "worktree" (e.g., "start a worktree", "work in a worktree", "create a worktree", "use a worktree")\n- CLAUDE.md or memory instructions direct you to work in a worktree for the current task\n\n## When NOT to Use\n\n- The user asks to create a branch, switch branches, or work on a different branch \u2014 use git commands instead\n- The user asks to fix a bug or work on a feature \u2014 use normal git workflow unless worktrees are explicitly requested by the user or project instructions\n- Never use this tool unless "worktree" is explicitly mentioned by the user or in CLAUDE.md / memory instructions\n\n## Requirements\n\n- Must be in a git repository, OR have WorktreeCreate/WorktreeRemove hooks configured in settings.json\n- Must not already be in a worktree\n\n## Behavior\n\n- In a git repository: creates a new git worktree inside `.claude/worktrees/` on a new branch. The base ref is governed by the `worktree.baseRef` setting: `fresh` (default) branches from origin/<default-branch>; `head` branches from your current local HEAD\n- Outside a git repository: delegates to WorktreeCreate/WorktreeRemove hooks for VCS-agnostic isolation\n- Switches the session\'s working directory to the new worktree\n- Use ExitWorktree to leave the worktree mid-session (keep or remove). On session exit, if still in the worktree, the user will be prompted to keep or remove it\n\n## Entering an existing worktree\n\nPass `path` instead of `name` to switch the session into a worktree that already exists (e.g., one you just created with `git worktree add`). The path must appear in `git worktree list` for the current repository \u2014 paths that are not registered worktrees of this repo are rejected. ExitWorktree will not remove a worktree entered this way; use `action: "keep"` to return to the original directory.\n\n## Parameters\n\n- `name` (optional): A name for a new worktree. If neither `name` nor `path` is provided, a random name is generated.\n- `path` (optional): Path to an existing worktree of the current repository to enter instead of creating one. Mutually exclusive with `name`.\n',
|
|
583
583
|
input_schema: {
|
|
584
584
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
585
585
|
type: "object",
|
|
@@ -890,7 +890,7 @@ If the result says the push wasn't sent, that's expected \u2014 no action needed
|
|
|
890
890
|
},
|
|
891
891
|
{
|
|
892
892
|
name: "Read",
|
|
893
|
-
description: 'Reads a file from the local filesystem. You can access any file directly by using this tool.\nAssume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned.\n\nUsage:\n- The file_path parameter must be an absolute path, not a relative path\n- By default, it reads up to 2000 lines starting from the beginning of the file\n- When you already know which part of the file you need, only read that part. This can be important for larger files.\n- Results are returned using cat -n format, with line numbers starting at 1\n- This tool allows Claude Code to read images (eg PNG, JPG, etc). When reading an image file the contents are presented visually as Claude Code is a multimodal LLM.\n- This tool can read PDF files (.pdf). For large PDFs (more than 10 pages), you MUST provide the pages parameter to read specific page ranges (e.g., pages: "1-5"). Reading a large PDF without the pages parameter will fail. Maximum 20 pages per request.\n- This tool can read Jupyter notebooks (.ipynb files) and returns all cells with their outputs, combining code, text, and visualizations.\n- This tool can only read files, not directories. To list files in a directory, use the registered shell tool.\n- You will regularly be asked to read screenshots. If the user provides a path to a screenshot, ALWAYS use this tool to view the file at the path. This tool will work with all temporary file paths.\n- If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.',
|
|
893
|
+
description: 'Reads a file from the local filesystem. You can access any file directly by using this tool.\nAssume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned.\n\nUsage:\n- The file_path parameter must be an absolute path, not a relative path\n- By default, it reads up to 2000 lines starting from the beginning of the file\n- When you already know which part of the file you need, only read that part. This can be important for larger files.\n- Results are returned using cat -n format, with line numbers starting at 1\n- This tool allows Claude Code to read images (eg PNG, JPG, etc). When reading an image file the contents are presented visually as Claude Code is a multimodal LLM.\n- This tool can read PDF files (.pdf). For large PDFs (more than 10 pages), you MUST provide the pages parameter to read specific page ranges (e.g., pages: "1-5"). Reading a large PDF without the pages parameter will fail. Maximum 20 pages per request.\n- This tool can read Jupyter notebooks (.ipynb files) and returns all cells with their outputs, combining code, text, and visualizations.\n- This tool can only read files, not directories. To list files in a directory, use the registered shell tool.\n- You will regularly be asked to read screenshots. If the user provides a path to a screenshot, ALWAYS use this tool to view the file at the path. This tool will work with all temporary file paths.\n- If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.\n- Do NOT re-read a file you just edited to verify \u2014 Edit/Write would have errored if the change failed, and the harness tracks file state for you.',
|
|
894
894
|
input_schema: {
|
|
895
895
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
896
896
|
type: "object",
|
|
@@ -924,7 +924,7 @@ If the result says the push wasn't sent, that's expected \u2014 no action needed
|
|
|
924
924
|
},
|
|
925
925
|
{
|
|
926
926
|
name: "RemoteTrigger",
|
|
927
|
-
description: "Call the claude.ai remote-trigger API. Use this instead of curl \u2014 the OAuth token is added automatically in-process and never exposed.\n\nActions:\n- list: GET /v1/code/triggers\n- get: GET /v1/code/triggers/{trigger_id}\n- create: POST /v1/code/triggers (requires body)\n- update: POST /v1/code/triggers/{trigger_id} (requires body, partial update)\n- run: POST /v1/code/triggers/{trigger_id}/run (optional body)\n\nThe response is the raw JSON from the API.",
|
|
927
|
+
description: "Call the claude.ai remote-trigger API. Use this instead of curl \u2014 the OAuth token is added automatically in-process and never exposed.\n\nActions:\n- list: GET /v1/code/triggers\n- get: GET /v1/code/triggers/{trigger_id}\n- create: POST /v1/code/triggers (requires body)\n- update: POST /v1/code/triggers/{trigger_id} (requires body, partial update)\n- run: POST /v1/code/triggers/{trigger_id}/run (optional body)\n\nThe response is the raw JSON from the API. For create/update, a summary line is appended with the server-parsed run time and the routine's claude.ai URL \u2014 relay both to the user so they can confirm the time is right and know where the result will appear.",
|
|
928
928
|
input_schema: {
|
|
929
929
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
930
930
|
type: "object",
|
|
@@ -1418,8 +1418,8 @@ IMPORTANT - Use the correct year in search queries:
|
|
|
1418
1418
|
"WebSearch",
|
|
1419
1419
|
"Write"
|
|
1420
1420
|
],
|
|
1421
|
-
anthropic_beta: "claude-code-20250219,oauth-2025-04-20,context-1m-2025-08-07,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advisor-tool-2026-03-01,effort-2025-11-24",
|
|
1422
|
-
cc_version: "2.1.
|
|
1421
|
+
anthropic_beta: "claude-code-20250219,oauth-2025-04-20,context-1m-2025-08-07,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advisor-tool-2026-03-01,effort-2025-11-24,extended-cache-ttl-2025-04-11",
|
|
1422
|
+
cc_version: "2.1.137",
|
|
1423
1423
|
header_order: [
|
|
1424
1424
|
"Accept",
|
|
1425
1425
|
"Authorization",
|
|
@@ -1445,11 +1445,11 @@ IMPORTANT - Use the correct year in search queries:
|
|
|
1445
1445
|
],
|
|
1446
1446
|
header_values: {
|
|
1447
1447
|
accept: "application/json",
|
|
1448
|
-
"anthropic-beta": "claude-code-20250219,oauth-2025-04-20,context-1m-2025-08-07,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advisor-tool-2026-03-01,effort-2025-11-24",
|
|
1448
|
+
"anthropic-beta": "claude-code-20250219,oauth-2025-04-20,context-1m-2025-08-07,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advisor-tool-2026-03-01,effort-2025-11-24,extended-cache-ttl-2025-04-11",
|
|
1449
1449
|
"anthropic-dangerous-direct-browser-access": "true",
|
|
1450
1450
|
"anthropic-version": "2023-06-01",
|
|
1451
1451
|
"content-type": "application/json",
|
|
1452
|
-
"user-agent": "claude-cli/2.1.
|
|
1452
|
+
"user-agent": "claude-cli/2.1.137 (external, sdk-cli)",
|
|
1453
1453
|
"x-app": "cli",
|
|
1454
1454
|
"x-stainless-timeout": "600"
|
|
1455
1455
|
},
|
|
@@ -2042,7 +2042,7 @@ var STATIC_HEADER_NAMES = [
|
|
|
2042
2042
|
];
|
|
2043
2043
|
var SUPPORTED_CC_RANGE = {
|
|
2044
2044
|
min: "1.0.0",
|
|
2045
|
-
maxTested: "2.1.
|
|
2045
|
+
maxTested: "2.1.137"
|
|
2046
2046
|
};
|
|
2047
2047
|
var bundledTemplate = data_default;
|
|
2048
2048
|
var fingerprintCaptureTestOverrides = {};
|
|
@@ -2568,4 +2568,4 @@ export {
|
|
|
2568
2568
|
setFingerprintCaptureTestOverridesForTest,
|
|
2569
2569
|
resetFingerprintCaptureForTest
|
|
2570
2570
|
};
|
|
2571
|
-
//# sourceMappingURL=chunk-
|
|
2571
|
+
//# sourceMappingURL=chunk-VV6PT72I.js.map
|