@cnwenf/occ 2.1.302 → 2.1.304
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 +88 -51
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
globalThis.MACRO={"VERSION":"2.1.
|
|
2
|
+
globalThis.MACRO={"VERSION":"2.1.304","BINARY_NAME":"occ","BUILD_TIME":"2026-08-17T18:57:33.931Z","FEEDBACK_CHANNEL":"","ISSUES_EXPLAINER":"","NATIVE_PACKAGE_URL":"","PACKAGE_URL":"@cnwenf/occ","VERSION_CHANGELOG":""};
|
|
3
3
|
// @bun
|
|
4
4
|
var __create = Object.create;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
@@ -59632,7 +59632,7 @@ var init_types2 = __esm(() => {
|
|
|
59632
59632
|
externalEditorContext: exports_external.boolean().optional().describe("Show the last assistant response as commented context above the prompt when opening the external editor (Ctrl+G)."),
|
|
59633
59633
|
prUrlTemplate: exports_external.string().optional().describe('URL template for the footer PR badge (e.g. "https://internal-review.example.com/pr/{number}"). Uses {number} as the PR number placeholder. Defaults to github.com.'),
|
|
59634
59634
|
alwaysThinkingEnabled: exports_external.boolean().optional().describe("When false, thinking is disabled. When absent or true, thinking is " + "enabled automatically for supported models."),
|
|
59635
|
-
effortLevel: exports_external.enum(
|
|
59635
|
+
effortLevel: exports_external.enum(["low", "medium", "high", "xhigh"]).optional().catch(undefined).describe("Persisted effort level for supported models."),
|
|
59636
59636
|
dynamicWorkflowSize: exports_external.enum(["small", "medium", "large"]).optional().catch(undefined).describe("Advisory guideline for how large Claude makes dynamic workflows (small/medium/large agent counts). Not an enforced cap."),
|
|
59637
59637
|
advisorModel: exports_external.string().optional().describe("Advisor model for the server-side advisor tool."),
|
|
59638
59638
|
fastMode: exports_external.boolean().optional().describe("When true, fast mode is enabled. When absent or false, fast mode is off."),
|
|
@@ -140004,6 +140004,9 @@ function getModelMaxOutputTokens(model) {
|
|
|
140004
140004
|
if (m4.includes("opus-4-6")) {
|
|
140005
140005
|
defaultTokens = 64000;
|
|
140006
140006
|
upperLimit = 128000;
|
|
140007
|
+
} else if (m4.includes("opus-4-7") || m4.includes("opus-4-8") || m4.includes("opus-5") || m4.includes("sonnet-5") || m4.includes("fable-5")) {
|
|
140008
|
+
defaultTokens = 64000;
|
|
140009
|
+
upperLimit = 128000;
|
|
140007
140010
|
} else if (m4.includes("sonnet-4-6")) {
|
|
140008
140011
|
defaultTokens = 32000;
|
|
140009
140012
|
upperLimit = 128000;
|
|
@@ -203622,7 +203625,7 @@ function modelSupportsAdaptiveThinking(model) {
|
|
|
203622
203625
|
return supported3P;
|
|
203623
203626
|
}
|
|
203624
203627
|
const canonical = getCanonicalName(model);
|
|
203625
|
-
if (canonical.includes("opus-4-6") || canonical.includes("sonnet-4-6") || canonical.includes("
|
|
203628
|
+
if (canonical.includes("opus-4-6") || canonical.includes("opus-4-7") || canonical.includes("opus-4-8") || canonical.includes("opus-5") || canonical.includes("sonnet-4-6") || canonical.includes("sonnet-5")) {
|
|
203626
203629
|
return true;
|
|
203627
203630
|
}
|
|
203628
203631
|
if (canonical.includes("opus") || canonical.includes("sonnet") || canonical.includes("haiku")) {
|
|
@@ -203680,7 +203683,7 @@ function modelSupportsEffort(model) {
|
|
|
203680
203683
|
if (supported3P !== undefined) {
|
|
203681
203684
|
return supported3P;
|
|
203682
203685
|
}
|
|
203683
|
-
if (m5.includes("opus-4-6") || m5.includes("sonnet-4-6") || m5.includes("
|
|
203686
|
+
if (m5.includes("opus-4-6") || m5.includes("opus-4-7") || m5.includes("opus-4-8") || m5.includes("opus-5") || m5.includes("sonnet-4-6") || m5.includes("sonnet-5") || m5.includes("fable-5")) {
|
|
203684
203687
|
return true;
|
|
203685
203688
|
}
|
|
203686
203689
|
if (m5.includes("haiku") || m5.includes("sonnet") || m5.includes("opus")) {
|
|
@@ -203693,7 +203696,8 @@ function modelSupportsMaxEffort(model) {
|
|
|
203693
203696
|
if (supported3P !== undefined) {
|
|
203694
203697
|
return supported3P;
|
|
203695
203698
|
}
|
|
203696
|
-
|
|
203699
|
+
const m5 = model.toLowerCase();
|
|
203700
|
+
if (m5.includes("opus-4-6") || m5.includes("opus-4-7") || m5.includes("opus-4-8") || m5.includes("opus-5") || m5.includes("sonnet-4-6") || m5.includes("sonnet-5") || m5.includes("fable-5")) {
|
|
203697
203701
|
return true;
|
|
203698
203702
|
}
|
|
203699
203703
|
if (process.env.USER_TYPE === "ant" && resolveAntModel(model)) {
|
|
@@ -203707,7 +203711,7 @@ function modelSupportsXhighEffort(model) {
|
|
|
203707
203711
|
return supported3P;
|
|
203708
203712
|
}
|
|
203709
203713
|
const lower = model.toLowerCase();
|
|
203710
|
-
if (lower.includes("opus-4-7") || lower.includes("opus-4-8") || lower.includes("opus-5")) {
|
|
203714
|
+
if (lower.includes("opus-4-7") || lower.includes("opus-4-8") || lower.includes("opus-5") || lower.includes("sonnet-5") || lower.includes("fable-5")) {
|
|
203711
203715
|
return true;
|
|
203712
203716
|
}
|
|
203713
203717
|
if (process.env.USER_TYPE === "ant" && resolveAntModel(model)) {
|
|
@@ -203736,7 +203740,7 @@ function parseEffortValue(value) {
|
|
|
203736
203740
|
return;
|
|
203737
203741
|
}
|
|
203738
203742
|
function toPersistableEffort(value) {
|
|
203739
|
-
if (value === "low" || value === "medium" || value === "high") {
|
|
203743
|
+
if (value === "low" || value === "medium" || value === "high" || value === "xhigh") {
|
|
203740
203744
|
return value;
|
|
203741
203745
|
}
|
|
203742
203746
|
if (value === "max" && process.env.USER_TYPE === "ant") {
|
|
@@ -203769,17 +203773,24 @@ function resolveAppliedEffort(model, appStateEffortValue) {
|
|
|
203769
203773
|
}
|
|
203770
203774
|
return resolved;
|
|
203771
203775
|
}
|
|
203776
|
+
function resolveConfiguredEffort(model, appStateEffortValue) {
|
|
203777
|
+
const envOverride = getEffortEnvOverride();
|
|
203778
|
+
if (envOverride === null) {
|
|
203779
|
+
return;
|
|
203780
|
+
}
|
|
203781
|
+
return envOverride ?? appStateEffortValue ?? getDefaultEffortForModel(model);
|
|
203782
|
+
}
|
|
203772
203783
|
function getDisplayedEffortLevel(model, appStateEffort) {
|
|
203773
|
-
const
|
|
203774
|
-
return convertEffortValueToLevel(
|
|
203784
|
+
const configured = resolveConfiguredEffort(model, appStateEffort) ?? "high";
|
|
203785
|
+
return convertEffortValueToLevel(configured);
|
|
203775
203786
|
}
|
|
203776
203787
|
function getEffortSuffix(model, effortValue) {
|
|
203777
203788
|
if (effortValue === undefined)
|
|
203778
203789
|
return "";
|
|
203779
|
-
const
|
|
203780
|
-
if (
|
|
203790
|
+
const configured = resolveConfiguredEffort(model, effortValue);
|
|
203791
|
+
if (configured === undefined)
|
|
203781
203792
|
return "";
|
|
203782
|
-
return ` with ${convertEffortValueToLevel(
|
|
203793
|
+
return ` with ${convertEffortValueToLevel(configured)} effort`;
|
|
203783
203794
|
}
|
|
203784
203795
|
function isValidNumericEffort(value) {
|
|
203785
203796
|
return Number.isInteger(value);
|
|
@@ -203807,8 +203818,10 @@ function getEffortLevelDescription(level) {
|
|
|
203807
203818
|
return "Balanced approach with standard implementation and testing";
|
|
203808
203819
|
case "high":
|
|
203809
203820
|
return "Comprehensive implementation with extensive testing and documentation";
|
|
203821
|
+
case "xhigh":
|
|
203822
|
+
return "Deeper reasoning than high, just below maximum (Fable 5, Opus 4.7+, Sonnet 5)";
|
|
203810
203823
|
case "max":
|
|
203811
|
-
return "Maximum capability with deepest reasoning
|
|
203824
|
+
return "Maximum capability with deepest reasoning. May use excessive tokens resulting in long response times or overthinking. Use sparingly for the hardest tasks.";
|
|
203812
203825
|
}
|
|
203813
203826
|
}
|
|
203814
203827
|
function getEffortValueDescription(value) {
|
|
@@ -203853,6 +203866,9 @@ function getDefaultEffortForModel(model) {
|
|
|
203853
203866
|
return "medium";
|
|
203854
203867
|
}
|
|
203855
203868
|
}
|
|
203869
|
+
if (model.toLowerCase().includes("opus-4-7")) {
|
|
203870
|
+
return "xhigh";
|
|
203871
|
+
}
|
|
203856
203872
|
if (isUltrathinkEnabled() && modelSupportsEffort(model)) {
|
|
203857
203873
|
return "medium";
|
|
203858
203874
|
}
|
|
@@ -230980,7 +230996,7 @@ function substituteUserConfigVariables(value, userConfig) {
|
|
|
230980
230996
|
return String(configValue);
|
|
230981
230997
|
});
|
|
230982
230998
|
}
|
|
230983
|
-
function substituteUserConfigInContent(content, options, schema) {
|
|
230999
|
+
function substituteUserConfigInContent(content, options, schema, valueTransform) {
|
|
230984
231000
|
return content.replace(/\$\{user_config\.([^}]+)\}/g, (match, key2) => {
|
|
230985
231001
|
if (schema[key2]?.sensitive === true) {
|
|
230986
231002
|
return `[sensitive option '${key2}' not available in skill content]`;
|
|
@@ -230989,7 +231005,7 @@ function substituteUserConfigInContent(content, options, schema) {
|
|
|
230989
231005
|
if (value === undefined) {
|
|
230990
231006
|
return match;
|
|
230991
231007
|
}
|
|
230992
|
-
return String(value);
|
|
231008
|
+
return valueTransform ? valueTransform(String(value)) : String(value);
|
|
230993
231009
|
});
|
|
230994
231010
|
}
|
|
230995
231011
|
var loadPluginOptions;
|
|
@@ -453612,7 +453628,7 @@ var init_coreSchemas = __esm(() => {
|
|
|
453612
453628
|
displayName: exports_external.string().describe("Human-readable display name"),
|
|
453613
453629
|
description: exports_external.string().describe("Description of the model's capabilities"),
|
|
453614
453630
|
supportsEffort: exports_external.boolean().optional().describe("Whether this model supports effort levels"),
|
|
453615
|
-
supportedEffortLevels: exports_external.array(exports_external.enum(["low", "medium", "high", "max"])).optional().describe("Available effort levels for this model"),
|
|
453631
|
+
supportedEffortLevels: exports_external.array(exports_external.enum(["low", "medium", "high", "xhigh", "max"])).optional().describe("Available effort levels for this model"),
|
|
453616
453632
|
supportsAdaptiveThinking: exports_external.boolean().optional().describe("Whether this model supports adaptive thinking (Claude decides when and how much to think)"),
|
|
453617
453633
|
supportsFastMode: exports_external.boolean().optional().describe("Whether this model supports fast mode"),
|
|
453618
453634
|
supportsAutoMode: exports_external.boolean().optional().describe("Whether this model supports auto mode")
|
|
@@ -453642,7 +453658,10 @@ var init_coreSchemas = __esm(() => {
|
|
|
453642
453658
|
maxTurns: exports_external.number().int().positive().optional().describe("Maximum number of agentic turns (API round-trips) before stopping"),
|
|
453643
453659
|
background: exports_external.boolean().optional().describe("Run this agent as a background task (non-blocking, fire-and-forget) when invoked"),
|
|
453644
453660
|
memory: exports_external.enum(["user", "project", "local"]).optional().describe("Scope for auto-loading agent memory files. 'user' - ~/.claude/agent-memory/<agentType>/, 'project' - .claude/agent-memory/<agentType>/, 'local' - .claude/agent-memory-local/<agentType>/"),
|
|
453645
|
-
effort: exports_external.union([
|
|
453661
|
+
effort: exports_external.union([
|
|
453662
|
+
exports_external.enum(["low", "medium", "high", "xhigh", "max"]),
|
|
453663
|
+
exports_external.number().int()
|
|
453664
|
+
]).optional().describe("Reasoning effort level for this agent. Either a named level or an integer"),
|
|
453646
453665
|
permissionMode: PermissionModeSchema().optional().describe("Permission mode controlling how tool executions are handled")
|
|
453647
453666
|
}).describe("Definition for a custom subagent that can be invoked via the Agent tool."));
|
|
453648
453667
|
SettingSourceSchema = lazySchema(() => exports_external.enum(["user", "project", "local"]).describe("Source for loading filesystem-based settings. " + "'user' - Global user settings (~/.claude/settings.json). " + "'project' - Project settings (.claude/settings.json). " + "'local' - Local settings (.claude/settings.local.json)."));
|
|
@@ -607154,14 +607173,15 @@ function generateProgressiveArgumentHint(argNames, typedArgs) {
|
|
|
607154
607173
|
return;
|
|
607155
607174
|
return remaining.map((name3) => `[${name3}]`).join(" ");
|
|
607156
607175
|
}
|
|
607157
|
-
function substituteArguments(content, args, appendIfNoPlaceholder = true, argumentNames = []) {
|
|
607176
|
+
function substituteArguments(content, args, appendIfNoPlaceholder = true, argumentNames = [], valueTransform) {
|
|
607158
607177
|
if (args === undefined || args === null) {
|
|
607159
607178
|
return content;
|
|
607160
607179
|
}
|
|
607161
607180
|
let work = content.replaceAll(SHIELDED_DOLLAR, SENTINEL_REPLACEMENT).replaceAll(VALUE_BOUNDARY, SENTINEL_REPLACEMENT);
|
|
607162
607181
|
const insertValue = (value) => {
|
|
607163
607182
|
const sanitized = (value ?? "").replaceAll(SHIELDED_DOLLAR, SENTINEL_REPLACEMENT).replaceAll(VALUE_BOUNDARY, SENTINEL_REPLACEMENT);
|
|
607164
|
-
|
|
607183
|
+
const transformed = valueTransform ? valueTransform(sanitized) : sanitized;
|
|
607184
|
+
return VALUE_BOUNDARY + transformed.replaceAll("$", SHIELDED_DOLLAR) + VALUE_BOUNDARY;
|
|
607165
607185
|
};
|
|
607166
607186
|
const parsedArgs = parseArguments2(args);
|
|
607167
607187
|
const namedArgs = argumentNames.map((name3, index2) => ({ name: name3, index: index2 })).filter((entry) => Boolean(entry.name)).sort((left2, right2) => right2.name.length - left2.name.length);
|
|
@@ -607212,6 +607232,15 @@ var init_argumentSubstitution = __esm(() => {
|
|
|
607212
607232
|
|
|
607213
607233
|
// src/utils/promptShellExecution.ts
|
|
607214
607234
|
import { randomUUID as randomUUID30 } from "crypto";
|
|
607235
|
+
function escapeShellExecutionMarkers(value) {
|
|
607236
|
+
return value.replace(/`!/g, "` !").replace(/!`/g, "! `").replace(/(^|\s)!/gm, "$1\\!");
|
|
607237
|
+
}
|
|
607238
|
+
function escapeAngleBrackets(value) {
|
|
607239
|
+
return value.replaceAll("<", "<").replaceAll(">", ">");
|
|
607240
|
+
}
|
|
607241
|
+
function sanitizeUsername(value) {
|
|
607242
|
+
return value.replace(/[^a-zA-Z0-9._-]/g, "");
|
|
607243
|
+
}
|
|
607215
607244
|
function isSkillShellExecutionDisabled() {
|
|
607216
607245
|
if (getSettingsForSource("policySettings")?.disableSkillShellExecution === true) {
|
|
607217
607246
|
return true;
|
|
@@ -607543,7 +607572,7 @@ function createSkillCommand({
|
|
|
607543
607572
|
let finalContent = baseDir ? `Base directory for this skill: ${baseDir}
|
|
607544
607573
|
|
|
607545
607574
|
${markdownContent}` : markdownContent;
|
|
607546
|
-
finalContent = substituteArguments(finalContent, args, true, argumentNames);
|
|
607575
|
+
finalContent = substituteArguments(finalContent, args, true, argumentNames, loadedFrom === "mcp" ? (value) => escapeAngleBrackets(escapeShellExecutionMarkers(value)) : escapeShellExecutionMarkers);
|
|
607547
607576
|
if (baseDir) {
|
|
607548
607577
|
const skillDir = process.platform === "win32" ? baseDir.replace(/\\/g, "/") : baseDir;
|
|
607549
607578
|
finalContent = finalContent.replace(/\$\{CLAUDE_SKILL_DIR\}/g, skillDir);
|
|
@@ -608299,13 +608328,13 @@ function createPluginCommand(commandName, file2, sourceName, pluginManifest, plu
|
|
|
608299
608328
|
let finalContent = config7.isSkillMode ? `Base directory for this skill: ${dirname51(file2.filePath)}
|
|
608300
608329
|
|
|
608301
608330
|
${content}` : content;
|
|
608302
|
-
finalContent = substituteArguments(finalContent, args, true, argumentNames);
|
|
608331
|
+
finalContent = substituteArguments(finalContent, args, true, argumentNames, escapeShellExecutionMarkers);
|
|
608303
608332
|
finalContent = substitutePluginVariables(finalContent, {
|
|
608304
608333
|
path: pluginPath,
|
|
608305
608334
|
source: sourceName
|
|
608306
608335
|
});
|
|
608307
608336
|
if (pluginManifest.userConfig) {
|
|
608308
|
-
finalContent = substituteUserConfigInContent(finalContent, loadPluginOptions(sourceName), pluginManifest.userConfig);
|
|
608337
|
+
finalContent = substituteUserConfigInContent(finalContent, loadPluginOptions(sourceName), pluginManifest.userConfig, escapeShellExecutionMarkers);
|
|
608309
608338
|
}
|
|
608310
608339
|
if (config7.isSkillMode) {
|
|
608311
608340
|
const rawSkillDir = dirname51(file2.filePath);
|
|
@@ -644881,7 +644910,8 @@ var init_color3 = __esm(() => {
|
|
|
644881
644910
|
|
|
644882
644911
|
// src/commands/commit.ts
|
|
644883
644912
|
function getPromptContent() {
|
|
644884
|
-
const { commit:
|
|
644913
|
+
const { commit: rawCommitAttribution } = getAttributionTexts();
|
|
644914
|
+
const commitAttribution = escapeShellExecutionMarkers(rawCommitAttribution);
|
|
644885
644915
|
let prefix = "";
|
|
644886
644916
|
if (process.env.USER_TYPE === "ant" && isUndercover()) {
|
|
644887
644917
|
prefix = getUndercoverInstructions() + `
|
|
@@ -645881,10 +645911,11 @@ var init_desktop2 = __esm(() => {
|
|
|
645881
645911
|
|
|
645882
645912
|
// src/commands/commit-push-pr.ts
|
|
645883
645913
|
function getPromptContent2(defaultBranch, prAttribution) {
|
|
645884
|
-
const { commit:
|
|
645885
|
-
const
|
|
645886
|
-
const
|
|
645887
|
-
const
|
|
645914
|
+
const { commit: rawCommitAttribution, pr: defaultPrAttribution } = getAttributionTexts();
|
|
645915
|
+
const commitAttribution = escapeShellExecutionMarkers(rawCommitAttribution);
|
|
645916
|
+
const effectivePrAttribution = escapeShellExecutionMarkers(prAttribution ?? defaultPrAttribution);
|
|
645917
|
+
const safeUser = sanitizeUsername(process.env.SAFEUSER || "");
|
|
645918
|
+
const username = sanitizeUsername(process.env.USER || "");
|
|
645888
645919
|
let prefix = "";
|
|
645889
645920
|
let reviewerArg = " and `--reviewer anthropics/claude-code`";
|
|
645890
645921
|
let addReviewerArg = " (and add `--add-reviewer anthropics/claude-code`)";
|
|
@@ -646002,7 +646033,7 @@ var init_commit_push_pr = __esm(() => {
|
|
|
646002
646033
|
|
|
646003
646034
|
## Additional instructions from user
|
|
646004
646035
|
|
|
646005
|
-
${trimmedArgs}`;
|
|
646036
|
+
${escapeShellExecutionMarkers(trimmedArgs)}`;
|
|
646006
646037
|
}
|
|
646007
646038
|
const finalContent = await executeShellCommandsInPrompt(promptContent, {
|
|
646008
646039
|
...context7,
|
|
@@ -647760,7 +647791,7 @@ var init_EffortIndicator = __esm(() => {
|
|
|
647760
647791
|
|
|
647761
647792
|
// src/components/ModelPicker.tsx
|
|
647762
647793
|
function ModelPicker(t0) {
|
|
647763
|
-
const $4 = import_compiler_runtime134.c(
|
|
647794
|
+
const $4 = import_compiler_runtime134.c(84);
|
|
647764
647795
|
const {
|
|
647765
647796
|
initial,
|
|
647766
647797
|
sessionModel,
|
|
@@ -647869,16 +647900,20 @@ function ModelPicker(t0) {
|
|
|
647869
647900
|
}
|
|
647870
647901
|
const focusedModelName = t7;
|
|
647871
647902
|
let focusedSupportsEffort;
|
|
647903
|
+
let focusedSupportsXhigh;
|
|
647872
647904
|
let t8;
|
|
647873
647905
|
if ($4[20] !== focusedValue) {
|
|
647874
647906
|
const focusedModel = resolveOptionModel(focusedValue);
|
|
647875
647907
|
focusedSupportsEffort = focusedModel ? modelSupportsEffort(focusedModel) : false;
|
|
647908
|
+
focusedSupportsXhigh = focusedModel ? modelSupportsXhighEffort(focusedModel) : false;
|
|
647876
647909
|
t8 = focusedModel ? modelSupportsMaxEffort(focusedModel) : false;
|
|
647877
647910
|
$4[20] = focusedValue;
|
|
647878
647911
|
$4[21] = focusedSupportsEffort;
|
|
647879
647912
|
$4[22] = t8;
|
|
647913
|
+
$4[82] = focusedSupportsXhigh;
|
|
647880
647914
|
} else {
|
|
647881
647915
|
focusedSupportsEffort = $4[21];
|
|
647916
|
+
focusedSupportsXhigh = $4[82];
|
|
647882
647917
|
t8 = $4[22];
|
|
647883
647918
|
}
|
|
647884
647919
|
const focusedSupportsMax = t8;
|
|
@@ -647891,7 +647926,7 @@ function ModelPicker(t0) {
|
|
|
647891
647926
|
t9 = $4[24];
|
|
647892
647927
|
}
|
|
647893
647928
|
const focusedDefaultEffort = t9;
|
|
647894
|
-
const displayEffort = effort === "max" && !focusedSupportsMax ? "high" : effort;
|
|
647929
|
+
const displayEffort = effort === "max" && !focusedSupportsMax || effort === "xhigh" && !focusedSupportsXhigh ? "high" : effort;
|
|
647895
647930
|
let t10;
|
|
647896
647931
|
if ($4[25] !== effortValue || $4[26] !== hasToggledEffort) {
|
|
647897
647932
|
t10 = (value) => {
|
|
@@ -647908,18 +647943,19 @@ function ModelPicker(t0) {
|
|
|
647908
647943
|
}
|
|
647909
647944
|
const handleFocus = t10;
|
|
647910
647945
|
let t11;
|
|
647911
|
-
if ($4[28] !== focusedDefaultEffort || $4[29] !== focusedSupportsEffort || $4[30] !== focusedSupportsMax) {
|
|
647946
|
+
if ($4[28] !== focusedDefaultEffort || $4[29] !== focusedSupportsEffort || $4[30] !== focusedSupportsMax || $4[83] !== focusedSupportsXhigh) {
|
|
647912
647947
|
t11 = (direction) => {
|
|
647913
647948
|
if (!focusedSupportsEffort) {
|
|
647914
647949
|
return;
|
|
647915
647950
|
}
|
|
647916
|
-
setEffort((prev) => cycleEffortLevel(prev ?? focusedDefaultEffort, direction, focusedSupportsMax));
|
|
647951
|
+
setEffort((prev) => cycleEffortLevel(prev ?? focusedDefaultEffort, direction, focusedSupportsMax, focusedSupportsXhigh));
|
|
647917
647952
|
setHasToggledEffort(true);
|
|
647918
647953
|
};
|
|
647919
647954
|
$4[28] = focusedDefaultEffort;
|
|
647920
647955
|
$4[29] = focusedSupportsEffort;
|
|
647921
647956
|
$4[30] = focusedSupportsMax;
|
|
647922
647957
|
$4[31] = t11;
|
|
647958
|
+
$4[83] = focusedSupportsXhigh;
|
|
647923
647959
|
} else {
|
|
647924
647960
|
t11 = $4[31];
|
|
647925
647961
|
}
|
|
@@ -648329,10 +648365,11 @@ function EffortLevelIndicator(t0) {
|
|
|
648329
648365
|
}
|
|
648330
648366
|
return t4;
|
|
648331
648367
|
}
|
|
648332
|
-
function cycleEffortLevel(current, direction, includeMax) {
|
|
648333
|
-
const levels =
|
|
648334
|
-
const
|
|
648335
|
-
const
|
|
648368
|
+
function cycleEffortLevel(current, direction, includeMax, includeXhigh) {
|
|
648369
|
+
const levels = ["low", "medium", "high", "xhigh", "max"].filter((level) => (level !== "max" || includeMax) && (level !== "xhigh" || includeXhigh));
|
|
648370
|
+
const clamped = current === "max" && !includeMax || current === "xhigh" && !includeXhigh ? "high" : current;
|
|
648371
|
+
const idx = levels.indexOf(clamped);
|
|
648372
|
+
const currentIndex = idx !== -1 ? idx : levels.length - 1;
|
|
648336
648373
|
if (direction === "right") {
|
|
648337
648374
|
return levels[(currentIndex + 1) % levels.length];
|
|
648338
648375
|
} else {
|
|
@@ -714718,7 +714755,7 @@ function setEffortValue(effortValue) {
|
|
|
714718
714755
|
};
|
|
714719
714756
|
}
|
|
714720
714757
|
const description = getEffortValueDescription(effortValue);
|
|
714721
|
-
const suffix2 = persistable !== undefined ? "" : " (this session only)";
|
|
714758
|
+
const suffix2 = persistable !== undefined ? " (saved as your default for new sessions)" : " (this session only)";
|
|
714722
714759
|
return {
|
|
714723
714760
|
message: `Set effort level to ${effortValue}${suffix2}: ${description}`,
|
|
714724
714761
|
effortUpdate: {
|
|
@@ -714782,7 +714819,8 @@ function enableUltracode() {
|
|
|
714782
714819
|
};
|
|
714783
714820
|
}
|
|
714784
714821
|
function executeEffort(args) {
|
|
714785
|
-
const
|
|
714822
|
+
const normalizedAlias = { med: "medium" };
|
|
714823
|
+
const normalized = normalizedAlias[args.trim().toLowerCase()] ?? args.trim().toLowerCase();
|
|
714786
714824
|
if (normalized === "auto" || normalized === "unset") {
|
|
714787
714825
|
if (isUltracodeEnabled()) {
|
|
714788
714826
|
disableUltracodeForSession();
|
|
@@ -714794,7 +714832,7 @@ function executeEffort(args) {
|
|
|
714794
714832
|
}
|
|
714795
714833
|
if (!isEffortLevel(normalized)) {
|
|
714796
714834
|
return {
|
|
714797
|
-
message: `Invalid argument: ${args}. Valid options are: low, medium, high, max, ultracode, auto`
|
|
714835
|
+
message: `Invalid argument: ${args}. Valid options are: low, medium, high, xhigh, max, ultracode, auto`
|
|
714798
714836
|
};
|
|
714799
714837
|
}
|
|
714800
714838
|
if (isUltracodeEnabled()) {
|
|
@@ -714857,15 +714895,14 @@ function ApplyEffortAndClose(t0) {
|
|
|
714857
714895
|
async function call82(onDone, _context, args) {
|
|
714858
714896
|
args = args?.trim() || "";
|
|
714859
714897
|
if (COMMON_HELP_ARGS2.includes(args)) {
|
|
714860
|
-
onDone(`Usage: /effort [low|medium|high|max|ultracode|auto]
|
|
714861
|
-
|
|
714862
|
-
|
|
714863
|
-
|
|
714864
|
-
|
|
714865
|
-
|
|
714866
|
-
|
|
714867
|
-
-
|
|
714868
|
-
- auto: Use the default effort level for your model`);
|
|
714898
|
+
onDone(`Usage: /effort [low|medium|high|xhigh|max|ultracode|auto]
|
|
714899
|
+
` + `- low: Quick, straightforward implementation
|
|
714900
|
+
` + `- medium: Balanced approach with standard testing
|
|
714901
|
+
` + `- high: Comprehensive implementation with extensive testing
|
|
714902
|
+
` + `- xhigh: Extended reasoning with thorough analysis (Fable 5, Opus 4.7+, Sonnet 5)
|
|
714903
|
+
` + `- max: Maximum capability with deepest reasoning (Fable 5, Opus 4.6+, Sonnet 4.6+)
|
|
714904
|
+
` + `- ultracode: xhigh + dynamic workflow orchestration (this session only)
|
|
714905
|
+
` + "- auto: Use the default effort level for your model");
|
|
714869
714906
|
return;
|
|
714870
714907
|
}
|
|
714871
714908
|
if (!args || args === "current" || args === "status") {
|
|
@@ -714901,7 +714938,7 @@ var init_effort3 = __esm(() => {
|
|
|
714901
714938
|
type: "local-jsx",
|
|
714902
714939
|
name: "effort",
|
|
714903
714940
|
description: "Set effort level for model usage",
|
|
714904
|
-
argumentHint: "[low|medium|high|max|ultracode|auto]",
|
|
714941
|
+
argumentHint: "[low|medium|high|xhigh|max|ultracode|auto]",
|
|
714905
714942
|
get immediate() {
|
|
714906
714943
|
return shouldInferenceConfigCommandBeImmediate();
|
|
714907
714944
|
},
|
|
@@ -794704,7 +794741,7 @@ var init_controlSchemas = __esm(() => {
|
|
|
794704
794741
|
})).describe("Ordered low-to-high priority \u2014 later entries override earlier ones."),
|
|
794705
794742
|
applied: exports_external.object({
|
|
794706
794743
|
model: exports_external.string(),
|
|
794707
|
-
effort: exports_external.enum(["low", "medium", "high", "max"]).nullable()
|
|
794744
|
+
effort: exports_external.enum(["low", "medium", "high", "xhigh", "max"]).nullable()
|
|
794708
794745
|
}).optional().describe("Runtime-resolved values after env overrides, session state, and model-specific defaults are applied. Unlike `effective` (disk merge), these reflect what will actually be sent to the API.")
|
|
794709
794746
|
}).describe("Effective merged settings plus raw per-source settings in merge order."));
|
|
794710
794747
|
SDKControlElicitationRequestSchema = lazySchema(() => exports_external.object({
|
|
@@ -827450,7 +827487,7 @@ Omit sessionId to discover and pick from available sessions.
|
|
|
827450
827487
|
process.exit(1);
|
|
827451
827488
|
});
|
|
827452
827489
|
}
|
|
827453
|
-
program3.command("doctor").description("Check the health of your Claude Code
|
|
827490
|
+
program3.command("doctor").description("Check the health of your Claude Code installation. Reads settings files in the current directory without a trust prompt. For a full checkup that can also fix issues, run /doctor in a session.").action(async () => {
|
|
827454
827491
|
const [{
|
|
827455
827492
|
doctorHandler: doctorHandler2
|
|
827456
827493
|
}, {
|