@amirtechai/xclaude 0.2.3 → 0.2.5
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.mjs +52 -20
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -120358,7 +120358,7 @@ function printStartupScreen() {
|
|
|
120358
120358
|
const sLen = ` ● ${sL} Ready — type /help to begin`.length;
|
|
120359
120359
|
out.push(boxRow(sRow, W2, sLen));
|
|
120360
120360
|
out.push(`${rgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET}`);
|
|
120361
|
-
out.push(` ${DIM}${rgb(...DIMCOL)}xclaude ${RESET}${rgb(...ACCENT)}v${"0.2.
|
|
120361
|
+
out.push(` ${DIM}${rgb(...DIMCOL)}xclaude ${RESET}${rgb(...ACCENT)}v${"0.2.5"}${RESET}`);
|
|
120362
120362
|
out.push("");
|
|
120363
120363
|
process.stdout.write(out.join(`
|
|
120364
120364
|
`) + `
|
|
@@ -140024,11 +140024,13 @@ $ npm install --save-dev react-devtools-core
|
|
|
140024
140024
|
cleanupYogaNode(removeNode);
|
|
140025
140025
|
getFocusManager(node).handleNodeRemoved(removeNode, node);
|
|
140026
140026
|
},
|
|
140027
|
-
commitUpdate(node,
|
|
140028
|
-
|
|
140027
|
+
commitUpdate(node, _type, oldProps, newProps) {
|
|
140028
|
+
const props = diff(oldProps, newProps);
|
|
140029
|
+
const style = diff(oldProps["style"], newProps["style"]);
|
|
140030
|
+
const nextStyle = newProps["style"];
|
|
140031
|
+
if (!props && !style) {
|
|
140029
140032
|
return;
|
|
140030
140033
|
}
|
|
140031
|
-
const { props, style, nextStyle } = updatePayload;
|
|
140032
140034
|
if (props) {
|
|
140033
140035
|
for (const [key, value] of Object.entries(props)) {
|
|
140034
140036
|
if (key === "style") {
|
|
@@ -144381,6 +144383,13 @@ var init_TerminalSizeContext = __esm(() => {
|
|
|
144381
144383
|
});
|
|
144382
144384
|
|
|
144383
144385
|
// src/ink/components/App.tsx
|
|
144386
|
+
import { appendFileSync as appendFileSync4 } from "fs";
|
|
144387
|
+
function xclaudeDebug(msg) {
|
|
144388
|
+
try {
|
|
144389
|
+
appendFileSync4("/tmp/xclaude-debug.log", `[${new Date().toISOString()}] ${msg}
|
|
144390
|
+
`);
|
|
144391
|
+
} catch {}
|
|
144392
|
+
}
|
|
144384
144393
|
function processKeysInBatch(app, items, _unused1, _unused2) {
|
|
144385
144394
|
if (items.some((i2) => i2.kind === "key" || i2.kind === "mouse" && !((i2.button & 32) !== 0 && (i2.button & 3) === 3))) {
|
|
144386
144395
|
updateLastInteractionTime();
|
|
@@ -144631,6 +144640,7 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#isr
|
|
|
144631
144640
|
stdin.setEncoding("utf8");
|
|
144632
144641
|
if (isEnabled) {
|
|
144633
144642
|
if (this.rawModeEnabledCount === 0) {
|
|
144643
|
+
xclaudeDebug(`handleSetRawMode(true): isTTY=${stdin.isTTY} rawModeCount=${this.rawModeEnabledCount} stdinMode=${this.stdinMode}`);
|
|
144634
144644
|
stopCapturingEarlyInput();
|
|
144635
144645
|
stdin.ref();
|
|
144636
144646
|
stdin.setRawMode(true);
|
|
@@ -144696,6 +144706,7 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#isr
|
|
|
144696
144706
|
}
|
|
144697
144707
|
};
|
|
144698
144708
|
handleReadable = () => {
|
|
144709
|
+
xclaudeDebug("handleReadable: event fired");
|
|
144699
144710
|
const now2 = Date.now();
|
|
144700
144711
|
if (now2 - this.lastStdinTime > STDIN_RESUME_GAP_MS) {
|
|
144701
144712
|
this.props.onStdinResume?.();
|
|
@@ -370543,7 +370554,7 @@ function getAnthropicEnvMetadata() {
|
|
|
370543
370554
|
function getBuildAgeMinutes() {
|
|
370544
370555
|
if (false)
|
|
370545
370556
|
;
|
|
370546
|
-
const buildTime = new Date("2026-04-12T10:
|
|
370557
|
+
const buildTime = new Date("2026-04-12T10:55:35.876Z").getTime();
|
|
370547
370558
|
if (isNaN(buildTime))
|
|
370548
370559
|
return;
|
|
370549
370560
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -397301,7 +397312,7 @@ function buildPrimarySection() {
|
|
|
397301
397312
|
}, undefined, false, undefined, this);
|
|
397302
397313
|
return [{
|
|
397303
397314
|
label: "Version",
|
|
397304
|
-
value: "0.2.
|
|
397315
|
+
value: "0.2.5"
|
|
397305
397316
|
}, {
|
|
397306
397317
|
label: "Session name",
|
|
397307
397318
|
value: nameValue
|
|
@@ -462408,7 +462419,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
462408
462419
|
var call58 = async () => {
|
|
462409
462420
|
return {
|
|
462410
462421
|
type: "text",
|
|
462411
|
-
value: `${"99.0.0"} (built ${"2026-04-12T10:
|
|
462422
|
+
value: `${"99.0.0"} (built ${"2026-04-12T10:55:35.876Z"})`
|
|
462412
462423
|
};
|
|
462413
462424
|
}, version2, version_default;
|
|
462414
462425
|
var init_version = __esm(() => {
|
|
@@ -514279,10 +514290,18 @@ function PromptInput({
|
|
|
514279
514290
|
});
|
|
514280
514291
|
const [cursorOffset, setCursorOffset] = import_react256.useState(input.length);
|
|
514281
514292
|
const lastInternalInputRef = React144.useRef(input);
|
|
514282
|
-
|
|
514283
|
-
|
|
514293
|
+
const lastPropInputRef = React144.useRef(input);
|
|
514294
|
+
React144.useLayoutEffect(() => {
|
|
514295
|
+
if (input === lastPropInputRef.current) {
|
|
514296
|
+
return;
|
|
514297
|
+
}
|
|
514298
|
+
lastPropInputRef.current = input;
|
|
514299
|
+
if (input === lastInternalInputRef.current) {
|
|
514300
|
+
return;
|
|
514301
|
+
}
|
|
514284
514302
|
lastInternalInputRef.current = input;
|
|
514285
|
-
|
|
514303
|
+
setCursorOffset((prev) => prev === input.length ? prev : input.length);
|
|
514304
|
+
}, [input]);
|
|
514286
514305
|
const trackAndSetInput = React144.useCallback((value) => {
|
|
514287
514306
|
lastInternalInputRef.current = value;
|
|
514288
514307
|
onInputChange(value);
|
|
@@ -515701,7 +515720,7 @@ function PromptInput({
|
|
|
515701
515720
|
multiline: true,
|
|
515702
515721
|
onSubmit,
|
|
515703
515722
|
onChange,
|
|
515704
|
-
value: historyMatch ? getValueFromInput(typeof historyMatch === "string" ? historyMatch : historyMatch.display) : input,
|
|
515723
|
+
value: isSearchingHistory && historyMatch ? getValueFromInput(typeof historyMatch === "string" ? historyMatch : historyMatch.display) : input,
|
|
515705
515724
|
onHistoryUp: handleHistoryUp,
|
|
515706
515725
|
onHistoryDown: handleHistoryDown,
|
|
515707
515726
|
onHistoryReset: resetHistory,
|
|
@@ -535361,7 +535380,7 @@ function WelcomeV2() {
|
|
|
535361
535380
|
dimColor: true,
|
|
535362
535381
|
children: [
|
|
535363
535382
|
"v",
|
|
535364
|
-
"0.2.
|
|
535383
|
+
"0.2.5",
|
|
535365
535384
|
" "
|
|
535366
535385
|
]
|
|
535367
535386
|
}, undefined, true, undefined, this)
|
|
@@ -535561,7 +535580,7 @@ function WelcomeV2() {
|
|
|
535561
535580
|
dimColor: true,
|
|
535562
535581
|
children: [
|
|
535563
535582
|
"v",
|
|
535564
|
-
"0.2.
|
|
535583
|
+
"0.2.5",
|
|
535565
535584
|
" "
|
|
535566
535585
|
]
|
|
535567
535586
|
}, undefined, true, undefined, this)
|
|
@@ -535787,7 +535806,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
535787
535806
|
dimColor: true,
|
|
535788
535807
|
children: [
|
|
535789
535808
|
"v",
|
|
535790
|
-
"0.2.
|
|
535809
|
+
"0.2.5",
|
|
535791
535810
|
" "
|
|
535792
535811
|
]
|
|
535793
535812
|
}, undefined, true, undefined, this);
|
|
@@ -536041,7 +536060,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
536041
536060
|
dimColor: true,
|
|
536042
536061
|
children: [
|
|
536043
536062
|
"v",
|
|
536044
|
-
"0.2.
|
|
536063
|
+
"0.2.5",
|
|
536045
536064
|
" "
|
|
536046
536065
|
]
|
|
536047
536066
|
}, undefined, true, undefined, this);
|
|
@@ -537536,7 +537555,7 @@ var init_ClaudeInChromeOnboarding = __esm(() => {
|
|
|
537536
537555
|
});
|
|
537537
537556
|
|
|
537538
537557
|
// src/interactiveHelpers.tsx
|
|
537539
|
-
import { appendFileSync as
|
|
537558
|
+
import { appendFileSync as appendFileSync5 } from "fs";
|
|
537540
537559
|
function completeOnboarding() {
|
|
537541
537560
|
saveGlobalConfig((current) => ({
|
|
537542
537561
|
...current,
|
|
@@ -537721,7 +537740,7 @@ function getRenderContext(exitOnCtrlC) {
|
|
|
537721
537740
|
cpu: process.cpuUsage()
|
|
537722
537741
|
}) + `
|
|
537723
537742
|
`;
|
|
537724
|
-
|
|
537743
|
+
appendFileSync5(frameTimingLogPath, line);
|
|
537725
537744
|
}
|
|
537726
537745
|
if (isSynchronizedOutputSupported()) {
|
|
537727
537746
|
return;
|
|
@@ -554652,6 +554671,7 @@ __export(exports_main, {
|
|
|
554652
554671
|
});
|
|
554653
554672
|
import { readFileSync as readFileSync12 } from "fs";
|
|
554654
554673
|
import { resolve as resolve41 } from "path";
|
|
554674
|
+
import { appendFileSync as _dbgAppend } from "fs";
|
|
554655
554675
|
function logManagedSettings() {
|
|
554656
554676
|
try {
|
|
554657
554677
|
const policySettings = getSettingsForSource("policySettings");
|
|
@@ -554870,7 +554890,14 @@ function initializeEntrypoint(isNonInteractive) {
|
|
|
554870
554890
|
}
|
|
554871
554891
|
process.env.CLAUDE_CODE_ENTRYPOINT = isNonInteractive ? "sdk-cli" : "cli";
|
|
554872
554892
|
}
|
|
554893
|
+
function _xdbg(msg) {
|
|
554894
|
+
try {
|
|
554895
|
+
_dbgAppend("/tmp/xclaude-debug.log", `[${new Date().toISOString()}] MAIN: ${msg}
|
|
554896
|
+
`);
|
|
554897
|
+
} catch {}
|
|
554898
|
+
}
|
|
554873
554899
|
async function main() {
|
|
554900
|
+
_xdbg(`main() called — stdout.isTTY=${process.stdout.isTTY} stdin.isTTY=${process.stdin.isTTY}`);
|
|
554874
554901
|
profileCheckpoint("main_function_start");
|
|
554875
554902
|
process.env.NoDefaultCurrentDirectoryInExePath = "1";
|
|
554876
554903
|
initializeWarningHandler();
|
|
@@ -554897,6 +554924,7 @@ async function main() {
|
|
|
554897
554924
|
stopCapturingEarlyInput();
|
|
554898
554925
|
}
|
|
554899
554926
|
const isInteractive = !isNonInteractive;
|
|
554927
|
+
_xdbg(`isNonInteractive=${isNonInteractive} isInteractive=${isInteractive} (hasPrintFlag=${hasPrintFlag} hasInitOnly=${hasInitOnlyFlag} stdout.isTTY=${process.stdout.isTTY})`);
|
|
554900
554928
|
setIsInteractive(isInteractive);
|
|
554901
554929
|
initializeEntrypoint(isNonInteractive);
|
|
554902
554930
|
const clientType = (() => {
|
|
@@ -555674,12 +555702,15 @@ ${customInstructions}` : customInstructions;
|
|
|
555674
555702
|
createRoot: createRoot3
|
|
555675
555703
|
} = await Promise.resolve().then(() => (init_ink2(), exports_ink));
|
|
555676
555704
|
root2 = await createRoot3(ctx.renderOptions);
|
|
555705
|
+
_xdbg("createRoot done");
|
|
555677
555706
|
logEvent("tengu_timer", {
|
|
555678
555707
|
event: "startup",
|
|
555679
555708
|
durationMs: Math.round(process.uptime() * 1000)
|
|
555680
555709
|
});
|
|
555681
555710
|
const setupScreensStart = Date.now();
|
|
555711
|
+
_xdbg("calling showSetupScreens");
|
|
555682
555712
|
const onboardingShown = await showSetupScreens(root2, permissionMode, allowDangerouslySkipPermissions, commands, enableClaudeInChrome, devChannels);
|
|
555713
|
+
_xdbg(`showSetupScreens done, onboardingShown=${onboardingShown}`);
|
|
555683
555714
|
if (false) {}
|
|
555684
555715
|
if (false) {}
|
|
555685
555716
|
if (onboardingShown && prompt2?.trim().toLowerCase() === "/login") {
|
|
@@ -556598,6 +556629,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
556598
556629
|
let deepLinkBanner = null;
|
|
556599
556630
|
if (false) {}
|
|
556600
556631
|
const initialMessages = deepLinkBanner ? [deepLinkBanner, ...hookMessages] : hookMessages.length > 0 ? hookMessages : undefined;
|
|
556632
|
+
_xdbg("calling launchRepl (main path)");
|
|
556601
556633
|
await launchRepl(root2, {
|
|
556602
556634
|
getFpsMetrics,
|
|
556603
556635
|
stats: stats2,
|
|
@@ -556608,7 +556640,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
556608
556640
|
pendingHookMessages
|
|
556609
556641
|
}, renderAndRun);
|
|
556610
556642
|
}
|
|
556611
|
-
}).version("0.2.
|
|
556643
|
+
}).version("0.2.5 (Xclaude)", "-v, --version", "Output the version number");
|
|
556612
556644
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
556613
556645
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
556614
556646
|
if (canUserConfigureAdvisor()) {
|
|
@@ -557178,7 +557210,7 @@ function validateProviderEnvOrExit() {
|
|
|
557178
557210
|
async function main2() {
|
|
557179
557211
|
const args = process.argv.slice(2);
|
|
557180
557212
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
557181
|
-
console.log(`${"0.2.
|
|
557213
|
+
console.log(`${"0.2.5"} (Xclaude)`);
|
|
557182
557214
|
return;
|
|
557183
557215
|
}
|
|
557184
557216
|
if (args.includes("--setup") || args[0] === "setup") {
|
|
@@ -557310,4 +557342,4 @@ async function main2() {
|
|
|
557310
557342
|
}
|
|
557311
557343
|
main2();
|
|
557312
557344
|
|
|
557313
|
-
//# debugId=
|
|
557345
|
+
//# debugId=80E4DAACD8D70EAA64756E2164756E21
|