@cnwenf/occ 2.1.338 → 2.1.340
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/cli.js +105 -30
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/@cnwenf/occ)
|
|
6
6
|
[](./LICENSE)
|
|
7
7
|
[](https://bun.sh/)
|
|
8
|
-
[](https://docs.anthropic.com/en/docs/claude-code)
|
|
9
9
|
|
|
10
10
|
[简体中文](./README.zh-CN.md) · **English**
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
## What is OCC
|
|
15
15
|
|
|
16
|
-
**Open C Code (OCC)** is an open-source coding agent. Its capabilities are aligned with [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (currently tracking `2.1.
|
|
16
|
+
**Open C Code (OCC)** is an open-source coding agent. Its capabilities are aligned with [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (currently tracking `2.1.274` — 2.1.270 fully aligned; 2.1.271–2.1.274 partial: the latest OCC-127 round landed the 2.1.274 MCP auth-stub description secret-leak fix — the byte-verified display-sanitizer family (NFKC + invisible-character stripping, quote/angle-bracket neutralization, bearer/token-family redaction, code-point-safe truncation) with the origin-only unexpanded endpoint — and confirmed NO-OP with behavioral tests for the 2.1.274 bash special-variable assignment/loop and worktree nested-expansion hardening (OCC's existing guards already ask/refuse every risky vector, byte-verified parity with the official); prior rounds landed the 2.1.273 gateway-hint request headers (default on for the first-party api.anthropic.com endpoint, off for third-party/custom endpoints; tri-bool `CLAUDE_CODE_GATEWAY_HINT_HEADERS` override), the spinner doubled-ellipsis guard, the shell-mode `!` insert fix, and the subshell-hidden dangerous-`rm` bypass fix (per-segment analysis in the always-on catastrophic-rm deny guard), per `docs/upstream-version-gap-occ127.md`; remaining 2.1.273/2.1.274 entries are triaged there as NO-OP (surfaces OCC trims) or STAGED (per-site forensics needed); still not landed from the 2.1.270→2.1.272 delta: `/config` panel fullscreen mouse support (PORTABLE-LARGE scope) and the spinner status ladder "deep in thought"/"picking the thought back up" (STAGED), plus the pre-existing sandbox per-command `allowed_domains` gap; prior alignment through 2.1.270 landed via OCC-122/OCC-123/OCC-84/OCC-124/OCC-85/OCC-125/OCC-126). The code is fully open, auditable, backdoor-free, and your data stays under your control.
|
|
17
17
|
|
|
18
18
|
If you worry that a closed-source CLI might hide backdoors, or that your code and credentials are uploaded to unauditable services, OCC is for you: all source is open and unobfuscated, the build is reproducible from source, and API credentials are sent only to endpoints you configure.
|
|
19
19
|
|
|
@@ -62,7 +62,7 @@ Requires a valid Anthropic API Key (or AWS Bedrock / Google Vertex / Azure Found
|
|
|
62
62
|
| **Auditability** | Line-by-line reviewable | No |
|
|
63
63
|
| **Telemetry** | Minimal (analytics stubbed) | Standard |
|
|
64
64
|
| **Data sovereignty** | Credentials stay on your machine; requests only to endpoints you configure | Anthropic endpoints |
|
|
65
|
-
| **Capability parity** | Tracks CC `2.1.
|
|
65
|
+
| **Capability parity** | Tracks CC `2.1.274` (2.1.270 fully aligned; 2.1.271–2.1.274 partial) | Reference implementation |
|
|
66
66
|
| **Providers** | Anthropic Direct, Bedrock, Vertex, Azure | Anthropic, Bedrock, Vertex |
|
|
67
67
|
| **Cost** | Free & open-source (MIT) | Subscription |
|
|
68
68
|
| **Build** | Reproducible from source | N/A |
|
|
@@ -143,7 +143,7 @@ Requires [Bun](https://bun.sh/) >= 1.3.11 (use `bun upgrade` — older Bun cause
|
|
|
143
143
|
|
|
144
144
|
```bash
|
|
145
145
|
bun install
|
|
146
|
-
bun run dev # run from source; version prints 2.1.
|
|
146
|
+
bun run dev # run from source; version prints 2.1.274 (dev polyfill; build overrides with pkg.version) when working
|
|
147
147
|
bun run build # output: dist/cli.js (~26 MB, single-file bundle)
|
|
148
148
|
bun test # test suite (Bun test runner)
|
|
149
149
|
bun run lint # Biome lint (formatter disabled to avoid large diffs)
|
|
@@ -157,7 +157,7 @@ For architecture, entry/bootstrap, tool system, UI layer, and module-status deta
|
|
|
157
157
|
|
|
158
158
|
## Status
|
|
159
159
|
|
|
160
|
-
- Tracks Claude Code **`2.1.
|
|
160
|
+
- Tracks Claude Code **`2.1.274`** (2.1.270 fully aligned; 2.1.271–2.1.274 partial — the latest OCC-127 round landed the 2.1.274 MCP auth-stub description secret-leak fix (byte-verified display-sanitizer family port) and verified the 2.1.274 bash special-variable and worktree nested-expansion hardening as NO-OP with behavioral tests; prior rounds landed the 2.1.273 gateway-hint request headers, the spinner doubled-ellipsis guard, the shell-mode `!` insert fix, and the subshell-hidden dangerous-`rm` bypass fix — see `docs/upstream-version-gap-occ127.md`; remaining 2.1.273/2.1.274 entries are triaged there as NO-OP or STAGED; still not landed from the 2.1.270→2.1.272 delta: `/config` fullscreen mouse support (PORTABLE-LARGE) and the spinner status ladder (STAGED), plus the pre-existing sandbox per-command `allowed_domains` gap; prior alignment through 2.1.270 landed via OCC-122/OCC-123/OCC-84, OCC-124 + OCC-85, OCC-125, and OCC-126 — see `docs/upstream-version-gap-occ124.md`, `docs/upstream-version-gap-occ125.md`, and `docs/upstream-version-gap-occ126.md`).
|
|
161
161
|
- Published to npm as [`@cnwenf/occ`](https://www.npmjs.com/package/@cnwenf/occ).
|
|
162
162
|
- Many modules are intentionally stubbed or feature-flagged off — see "Disabled / stubbed" above.
|
|
163
163
|
|
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.340","BINARY_NAME":"occ","BUILD_TIME":"2026-09-17T20:08:32.450Z","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;
|
|
@@ -9112,6 +9112,17 @@ async function appendAsync(needMkdir, dir, path2, content) {
|
|
|
9112
9112
|
updateLatestDebugLogSymlink();
|
|
9113
9113
|
}
|
|
9114
9114
|
function noop2() {}
|
|
9115
|
+
function appendFileSyncWithDirFallback(path2, content) {
|
|
9116
|
+
try {
|
|
9117
|
+
getFsImplementation().appendFileSync(path2, content);
|
|
9118
|
+
} catch (e) {
|
|
9119
|
+
if (e?.code !== "EISDIR")
|
|
9120
|
+
throw e;
|
|
9121
|
+
const fallback = join3(path2, `${getSessionId()}.txt`);
|
|
9122
|
+
dirFallbackLogPath = fallback;
|
|
9123
|
+
getFsImplementation().appendFileSync(fallback, content);
|
|
9124
|
+
}
|
|
9125
|
+
}
|
|
9115
9126
|
function getDebugWriter() {
|
|
9116
9127
|
if (!debugWriter) {
|
|
9117
9128
|
let ensuredDir = null;
|
|
@@ -9127,7 +9138,7 @@ function getDebugWriter() {
|
|
|
9127
9138
|
getFsImplementation().mkdirSync(dir);
|
|
9128
9139
|
} catch {}
|
|
9129
9140
|
}
|
|
9130
|
-
|
|
9141
|
+
appendFileSyncWithDirFallback(path2, content);
|
|
9131
9142
|
updateLatestDebugLogSymlink();
|
|
9132
9143
|
return;
|
|
9133
9144
|
}
|
|
@@ -9167,7 +9178,7 @@ function logForDebugging(message, { level } = {
|
|
|
9167
9178
|
getDebugWriter().write(output);
|
|
9168
9179
|
}
|
|
9169
9180
|
function getDebugLogPath() {
|
|
9170
|
-
return getDebugFilePath() ?? process.env.CLAUDE_CODE_DEBUG_LOGS_DIR ?? join3(getClaudeConfigHomeDir(), "debug", `${getSessionId()}.txt`);
|
|
9181
|
+
return dirFallbackLogPath ?? getDebugFilePath() ?? process.env.CLAUDE_CODE_DEBUG_LOGS_DIR ?? join3(getClaudeConfigHomeDir(), "debug", `${getSessionId()}.txt`);
|
|
9171
9182
|
}
|
|
9172
9183
|
function logAntError(context, error2) {
|
|
9173
9184
|
if (process.env.USER_TYPE !== "ant") {
|
|
@@ -9180,7 +9191,7 @@ ${error2.stack}`, {
|
|
|
9180
9191
|
});
|
|
9181
9192
|
}
|
|
9182
9193
|
}
|
|
9183
|
-
var LEVEL_ORDER, getMinDebugLogLevel, runtimeDebugEnabled = false, isDebugMode, getDebugFilter, isDebugToStdErr, getDebugFilePath, hasFormattedOutput = false, debugWriter = null, pendingWrite, updateLatestDebugLogSymlink;
|
|
9194
|
+
var LEVEL_ORDER, getMinDebugLogLevel, runtimeDebugEnabled = false, isDebugMode, getDebugFilter, isDebugToStdErr, getDebugFilePath, hasFormattedOutput = false, debugWriter = null, pendingWrite, dirFallbackLogPath = null, updateLatestDebugLogSymlink;
|
|
9184
9195
|
var init_debug = __esm(() => {
|
|
9185
9196
|
init_memoize();
|
|
9186
9197
|
init_state();
|
|
@@ -473601,8 +473612,8 @@ async function getMessagesForSlashCommand(commandName, args, setToolJSX, context
|
|
|
473601
473612
|
command4.load().then((mod2) => mod2.call(onDone, {
|
|
473602
473613
|
...context6,
|
|
473603
473614
|
canUseTool
|
|
473604
|
-
}, args)).then((
|
|
473605
|
-
if (
|
|
473615
|
+
}, args)).then((commandJsx) => {
|
|
473616
|
+
if (commandJsx == null)
|
|
473606
473617
|
return;
|
|
473607
473618
|
if (context6.options.isNonInteractiveSession) {
|
|
473608
473619
|
resolve37({
|
|
@@ -473615,7 +473626,7 @@ async function getMessagesForSlashCommand(commandName, args, setToolJSX, context
|
|
|
473615
473626
|
if (doneWasCalled)
|
|
473616
473627
|
return;
|
|
473617
473628
|
setToolJSX({
|
|
473618
|
-
jsx:
|
|
473629
|
+
jsx: commandJsx,
|
|
473619
473630
|
shouldHidePromptInput: true,
|
|
473620
473631
|
showSpinner: false,
|
|
473621
473632
|
isLocalJSXCommand: true,
|
|
@@ -628459,17 +628470,78 @@ var init_auth11 = __esm(() => {
|
|
|
628459
628470
|
};
|
|
628460
628471
|
});
|
|
628461
628472
|
|
|
628473
|
+
// src/services/mcp/displaySanitize.ts
|
|
628474
|
+
function stripInvisibleForDisplay(input2) {
|
|
628475
|
+
if (typeof input2 !== "string")
|
|
628476
|
+
return "";
|
|
628477
|
+
return (input2.length > 4096 ? input2.slice(0, 4096) : input2).replace(SURROGATE_PATTERN, (match) => match.length === 2 ? match : " ").replace(INVISIBLE_PATTERN, " ");
|
|
628478
|
+
}
|
|
628479
|
+
function sanitizeLoneSurrogatesFallback(value) {
|
|
628480
|
+
const chunks = [];
|
|
628481
|
+
for (let i6 = 0;i6 < value.length; i6 += 8192) {
|
|
628482
|
+
const end = Math.min(i6 + 8192, value.length);
|
|
628483
|
+
const codes = new Uint16Array(end - i6);
|
|
628484
|
+
for (let a6 = i6;a6 < end; a6++)
|
|
628485
|
+
codes[a6 - i6] = value.charCodeAt(a6);
|
|
628486
|
+
chunks.push(String.fromCharCode(...codes));
|
|
628487
|
+
}
|
|
628488
|
+
return chunks.join("");
|
|
628489
|
+
}
|
|
628490
|
+
function sanitizeLoneSurrogates(value) {
|
|
628491
|
+
if (typeof Buffer < "u")
|
|
628492
|
+
return Buffer.from(value, "utf16le").toString("utf16le");
|
|
628493
|
+
return sanitizeLoneSurrogatesFallback(value);
|
|
628494
|
+
}
|
|
628495
|
+
function truncateToDisplayLength(value, max2) {
|
|
628496
|
+
if (max2 <= 0)
|
|
628497
|
+
return "";
|
|
628498
|
+
if (value.length <= max2)
|
|
628499
|
+
return value;
|
|
628500
|
+
const head = value.slice(0, max2);
|
|
628501
|
+
const lastUnit = head.charCodeAt(max2 - 1);
|
|
628502
|
+
return sanitizeLoneSurrogates(lastUnit >= 55296 && lastUnit <= 56319 ? head.slice(0, -1) : head);
|
|
628503
|
+
}
|
|
628504
|
+
function redactSecretsForDisplay(value, mode = "all") {
|
|
628505
|
+
function replacer(match, label, secret) {
|
|
628506
|
+
return /[0-9._~+/=%-]/.test(secret) ? `${label} [redacted]` : match;
|
|
628507
|
+
}
|
|
628508
|
+
if (mode === "none")
|
|
628509
|
+
return value;
|
|
628510
|
+
return value.replace(/(?:\b|(?<=\\[A-Za-z"']))(bearer|basic)[\s:=\uFF1A\uFF1D]+(?:(?:\\*["']|\\+)\s*)?([A-Za-z0-9._~+/=%-]{8,})/gi, replacer).replace(/(?:\b|(?<=\\[A-Za-z"']))((?:access[-_ ]?|refresh[-_ ]?|id[-_ ]?|client[-_ ]?|api[-_ ]?|x[-_]api[-_ ]?|session[-_ ]?|auth[-_ ]?)?(?:token|key|secret|password|authorization|credential)s?)(?:\\*["']|\\+)?\s*[:=\uFF1A\uFF1D]\s*(?:\\*["']|\\+)?\s*([A-Za-z0-9._~+/=%-]{8,})/gi, replacer);
|
|
628511
|
+
}
|
|
628512
|
+
function sanitizeForDisplay(input2, max2 = DEFAULT_DISPLAY_MAX, redact = "all") {
|
|
628513
|
+
if (typeof input2 !== "string")
|
|
628514
|
+
return "";
|
|
628515
|
+
const cleaned = stripInvisibleForDisplay(input2.normalize("NFKC")).replaceAll(/[<>";\u2018\u2019\u201A\u201C\u201D\u201E\u00AB\u20BB\u2039\u203A\u2329\u232A\u27E8\u27E9\u27EA\u27EB\u3008\u3009\u300A\u300B]/g, " ").replaceAll(/\s+/g, " ").trim();
|
|
628516
|
+
const scanMax = Math.max(REDACT_SCAN_MAX, max2 + REDACT_SCAN_SLACK);
|
|
628517
|
+
const overflow = cleaned.length > scanMax;
|
|
628518
|
+
const redacted = redactSecretsForDisplay(overflow ? truncateToDisplayLength(cleaned, scanMax) : cleaned, redact);
|
|
628519
|
+
return overflow || redacted.length > max2 ? `${truncateToDisplayLength(redacted, max2)}\u2026` : redacted;
|
|
628520
|
+
}
|
|
628521
|
+
function sanitizeDisplayUrl(url3, max2 = 1024) {
|
|
628522
|
+
return sanitizeForDisplay(url3, max2);
|
|
628523
|
+
}
|
|
628524
|
+
function sanitizeServerNameForDisplay(name3, max2 = 64) {
|
|
628525
|
+
if (typeof name3 !== "string")
|
|
628526
|
+
return "";
|
|
628527
|
+
return sanitizeForDisplay(name3.normalize("NFKC").replace(/['`]/g, " "), max2, "none");
|
|
628528
|
+
}
|
|
628529
|
+
var SURROGATE_PATTERN, INVISIBLE_PATTERN, DEFAULT_DISPLAY_MAX = 200, REDACT_SCAN_MAX = 2000, REDACT_SCAN_SLACK = 512;
|
|
628530
|
+
var init_displaySanitize = __esm(() => {
|
|
628531
|
+
SURROGATE_PATTERN = /[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF]|[\uDC00-\uDFFF]/g;
|
|
628532
|
+
INVISIBLE_PATTERN = /[\p{Cc}\p{Cf}\p{Zl}\p{Zp}\p{Default_Ignorable_Code_Point}\u2800]|(?!\u0020)\p{Zs}/gu;
|
|
628533
|
+
});
|
|
628534
|
+
|
|
628462
628535
|
// src/tools/McpAuthTool/McpAuthTool.ts
|
|
628463
|
-
function
|
|
628464
|
-
|
|
628465
|
-
|
|
628466
|
-
|
|
628536
|
+
function buildMcpAuthToolDescription(serverName, config7, resolveUnexpanded = resolveUnexpandedMcpServers) {
|
|
628537
|
+
const transport = config7.type ?? "stdio";
|
|
628538
|
+
const displayOrigin = getMcpErrorEndpoint(serverName, config7, { detail: "origin" }, resolveUnexpanded);
|
|
628539
|
+
const location = displayOrigin && displayOrigin !== transport ? `${transport} at ${sanitizeDisplayUrl(displayOrigin, 256)}` : transport;
|
|
628540
|
+
return `The "${sanitizeServerNameForDisplay(serverName)}" MCP server (${location}) is installed but requires authentication. ` + `Call this tool to start the OAuth flow \u2014 you'll receive an authorization URL to share with the user. ` + `Once the user completes authorization in their browser, the server's real tools will become available automatically.`;
|
|
628467
628541
|
}
|
|
628468
|
-
function createMcpAuthTool(serverName, config7) {
|
|
628469
|
-
const url3 = getConfigUrl(config7);
|
|
628542
|
+
function createMcpAuthTool(serverName, config7, resolveUnexpanded = resolveUnexpandedMcpServers) {
|
|
628470
628543
|
const transport = config7.type ?? "stdio";
|
|
628471
|
-
const
|
|
628472
|
-
const description = `The \`${serverName}\` MCP server (${location}) is installed but requires authentication. ` + `Call this tool to start the OAuth flow \u2014 you'll receive an authorization URL to share with the user. ` + `Once the user completes authorization in their browser, the server's real tools will become available automatically.`;
|
|
628544
|
+
const description = buildMcpAuthToolDescription(serverName, config7, resolveUnexpanded);
|
|
628473
628545
|
return {
|
|
628474
628546
|
name: buildMcpToolName(serverName, "authenticate"),
|
|
628475
628547
|
isMcp: true,
|
|
@@ -628590,7 +628662,10 @@ var init_McpAuthTool = __esm(() => {
|
|
|
628590
628662
|
init_v4();
|
|
628591
628663
|
init_auth11();
|
|
628592
628664
|
init_client12();
|
|
628665
|
+
init_displaySanitize();
|
|
628593
628666
|
init_mcpStringUtils();
|
|
628667
|
+
init_redaction();
|
|
628668
|
+
init_utils9();
|
|
628594
628669
|
init_errors();
|
|
628595
628670
|
init_log3();
|
|
628596
628671
|
inputSchema45 = lazySchema(() => exports_external.object({}));
|
|
@@ -718102,9 +718177,9 @@ function RateLimitOptionsMenu(t0) {
|
|
|
718102
718177
|
t5 = function handleSelect2(value) {
|
|
718103
718178
|
if (value === "upgrade") {
|
|
718104
718179
|
logEvent2("tengu_rate_limit_options_menu_select_upgrade", {});
|
|
718105
|
-
call81(onDone, context8).then((
|
|
718106
|
-
if (
|
|
718107
|
-
setSubCommandJSX(
|
|
718180
|
+
call81(onDone, context8).then((upgradeJsx) => {
|
|
718181
|
+
if (upgradeJsx) {
|
|
718182
|
+
setSubCommandJSX(upgradeJsx);
|
|
718108
718183
|
}
|
|
718109
718184
|
});
|
|
718110
718185
|
} else {
|
|
@@ -776558,7 +776633,7 @@ function ModeIndicator({
|
|
|
776558
776633
|
if (mode === "bash") {
|
|
776559
776634
|
return /* @__PURE__ */ jsx_runtime432.jsx(ThemedText, {
|
|
776560
776635
|
color: "bashBorder",
|
|
776561
|
-
children: "! for
|
|
776636
|
+
children: "! for shell mode"
|
|
776562
776637
|
});
|
|
776563
776638
|
}
|
|
776564
776639
|
const currentMode = toolPermissionContext?.mode;
|
|
@@ -779059,7 +779134,7 @@ function PromptInput({
|
|
|
779059
779134
|
if (getPlatform() === "macos" && isMacosOptionChar(char)) {
|
|
779060
779135
|
const shortcut = MACOS_OPTION_SPECIAL_CHARS[char];
|
|
779061
779136
|
const terminalName = getNativeCSIuTerminalDisplayName();
|
|
779062
|
-
const
|
|
779137
|
+
const hintJsx = terminalName ? /* @__PURE__ */ jsx_runtime437.jsxs(ThemedText, {
|
|
779063
779138
|
dimColor: true,
|
|
779064
779139
|
children: [
|
|
779065
779140
|
"To enable ",
|
|
@@ -779084,7 +779159,7 @@ function PromptInput({
|
|
|
779084
779159
|
});
|
|
779085
779160
|
addNotification({
|
|
779086
779161
|
key: "option-meta-hint",
|
|
779087
|
-
jsx:
|
|
779162
|
+
jsx: hintJsx,
|
|
779088
779163
|
priority: "immediate",
|
|
779089
779164
|
timeoutMs: 5000
|
|
779090
779165
|
});
|
|
@@ -792655,9 +792730,9 @@ async function processBashCommand(inputString, precedingInputBlocks, attachmentM
|
|
|
792655
792730
|
precedingInputBlocks
|
|
792656
792731
|
})
|
|
792657
792732
|
});
|
|
792658
|
-
let
|
|
792733
|
+
let backgroundJsx;
|
|
792659
792734
|
setToolJSX({
|
|
792660
|
-
jsx: /* @__PURE__ */
|
|
792735
|
+
jsx: /* @__PURE__ */ jsx_runtime442.jsx(BashModeProgress, {
|
|
792661
792736
|
input: inputString,
|
|
792662
792737
|
progress: null,
|
|
792663
792738
|
verbose: context8.options.verbose
|
|
@@ -792668,19 +792743,19 @@ async function processBashCommand(inputString, precedingInputBlocks, attachmentM
|
|
|
792668
792743
|
const bashModeContext = {
|
|
792669
792744
|
...context8,
|
|
792670
792745
|
setToolJSX: (_4) => {
|
|
792671
|
-
|
|
792746
|
+
backgroundJsx = _4?.jsx;
|
|
792672
792747
|
}
|
|
792673
792748
|
};
|
|
792674
792749
|
const onProgress = (progress) => {
|
|
792675
792750
|
setToolJSX({
|
|
792676
792751
|
jsx: /* @__PURE__ */ jsx_runtime442.jsxs(jsx_runtime442.Fragment, {
|
|
792677
792752
|
children: [
|
|
792678
|
-
/* @__PURE__ */
|
|
792753
|
+
/* @__PURE__ */ jsx_runtime442.jsx(BashModeProgress, {
|
|
792679
792754
|
input: inputString,
|
|
792680
792755
|
progress: progress.data,
|
|
792681
792756
|
verbose: context8.options.verbose
|
|
792682
792757
|
}),
|
|
792683
|
-
|
|
792758
|
+
backgroundJsx
|
|
792684
792759
|
]
|
|
792685
792760
|
}),
|
|
792686
792761
|
shouldHidePromptInput: false,
|
|
@@ -807220,10 +807295,10 @@ Error: sandbox required but unavailable: ${reason}
|
|
|
807220
807295
|
};
|
|
807221
807296
|
const context8 = getToolUseContext(messagesRef.current, [], createAbortController(), mainLoopModel);
|
|
807222
807297
|
const mod2 = await matchingCommand.load();
|
|
807223
|
-
const
|
|
807224
|
-
if (
|
|
807298
|
+
const commandJsx = await mod2.call(onDone, context8, commandArgs);
|
|
807299
|
+
if (commandJsx && !doneWasCalled) {
|
|
807225
807300
|
setToolJSX({
|
|
807226
|
-
jsx:
|
|
807301
|
+
jsx: commandJsx,
|
|
807227
807302
|
shouldHidePromptInput: false,
|
|
807228
807303
|
isLocalJSXCommand: true
|
|
807229
807304
|
});
|
|
@@ -831870,7 +831945,7 @@ var _FEATURE_ALLOWLIST = new Set([
|
|
|
831870
831945
|
var feature2 = (name3) => _FEATURE_ALLOWLIST.has(name3);
|
|
831871
831946
|
if (typeof globalThis.MACRO === "undefined") {
|
|
831872
831947
|
globalThis.MACRO = {
|
|
831873
|
-
VERSION: "2.1.
|
|
831948
|
+
VERSION: "2.1.274",
|
|
831874
831949
|
BINARY_NAME: "occ",
|
|
831875
831950
|
BUILD_TIME: new Date().toISOString(),
|
|
831876
831951
|
FEEDBACK_CHANNEL: "",
|