@amirtechai/xclaude 0.2.2 → 0.2.4
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 +50 -21
- 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.4"}${RESET}`);
|
|
120362
120362
|
out.push("");
|
|
120363
120363
|
process.stdout.write(out.join(`
|
|
120364
120364
|
`) + `
|
|
@@ -144381,6 +144381,13 @@ var init_TerminalSizeContext = __esm(() => {
|
|
|
144381
144381
|
});
|
|
144382
144382
|
|
|
144383
144383
|
// src/ink/components/App.tsx
|
|
144384
|
+
import { appendFileSync as appendFileSync4 } from "fs";
|
|
144385
|
+
function xclaudeDebug(msg) {
|
|
144386
|
+
try {
|
|
144387
|
+
appendFileSync4("/tmp/xclaude-debug.log", `[${new Date().toISOString()}] ${msg}
|
|
144388
|
+
`);
|
|
144389
|
+
} catch {}
|
|
144390
|
+
}
|
|
144384
144391
|
function processKeysInBatch(app, items, _unused1, _unused2) {
|
|
144385
144392
|
if (items.some((i2) => i2.kind === "key" || i2.kind === "mouse" && !((i2.button & 32) !== 0 && (i2.button & 3) === 3))) {
|
|
144386
144393
|
updateLastInteractionTime();
|
|
@@ -144631,6 +144638,7 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#isr
|
|
|
144631
144638
|
stdin.setEncoding("utf8");
|
|
144632
144639
|
if (isEnabled) {
|
|
144633
144640
|
if (this.rawModeEnabledCount === 0) {
|
|
144641
|
+
xclaudeDebug(`handleSetRawMode(true): isTTY=${stdin.isTTY} rawModeCount=${this.rawModeEnabledCount} stdinMode=${this.stdinMode}`);
|
|
144634
144642
|
stopCapturingEarlyInput();
|
|
144635
144643
|
stdin.ref();
|
|
144636
144644
|
stdin.setRawMode(true);
|
|
@@ -144696,6 +144704,7 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#isr
|
|
|
144696
144704
|
}
|
|
144697
144705
|
};
|
|
144698
144706
|
handleReadable = () => {
|
|
144707
|
+
xclaudeDebug("handleReadable: event fired");
|
|
144699
144708
|
const now2 = Date.now();
|
|
144700
144709
|
if (now2 - this.lastStdinTime > STDIN_RESUME_GAP_MS) {
|
|
144701
144710
|
this.props.onStdinResume?.();
|
|
@@ -370543,7 +370552,7 @@ function getAnthropicEnvMetadata() {
|
|
|
370543
370552
|
function getBuildAgeMinutes() {
|
|
370544
370553
|
if (false)
|
|
370545
370554
|
;
|
|
370546
|
-
const buildTime = new Date("2026-04-
|
|
370555
|
+
const buildTime = new Date("2026-04-12T10:40:01.484Z").getTime();
|
|
370547
370556
|
if (isNaN(buildTime))
|
|
370548
370557
|
return;
|
|
370549
370558
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -397301,7 +397310,7 @@ function buildPrimarySection() {
|
|
|
397301
397310
|
}, undefined, false, undefined, this);
|
|
397302
397311
|
return [{
|
|
397303
397312
|
label: "Version",
|
|
397304
|
-
value: "0.2.
|
|
397313
|
+
value: "0.2.4"
|
|
397305
397314
|
}, {
|
|
397306
397315
|
label: "Session name",
|
|
397307
397316
|
value: nameValue
|
|
@@ -462408,7 +462417,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
462408
462417
|
var call58 = async () => {
|
|
462409
462418
|
return {
|
|
462410
462419
|
type: "text",
|
|
462411
|
-
value: `${"99.0.0"} (built ${"2026-04-
|
|
462420
|
+
value: `${"99.0.0"} (built ${"2026-04-12T10:40:01.484Z"})`
|
|
462412
462421
|
};
|
|
462413
462422
|
}, version2, version_default;
|
|
462414
462423
|
var init_version = __esm(() => {
|
|
@@ -531050,11 +531059,6 @@ function REPL({
|
|
|
531050
531059
|
enabled: !isRemoteSession
|
|
531051
531060
|
});
|
|
531052
531061
|
const tasksV2 = useTasksV2WithCollapseEffect();
|
|
531053
|
-
import_react314.useEffect(() => {
|
|
531054
|
-
if (isRemoteSession)
|
|
531055
|
-
return;
|
|
531056
|
-
performStartupChecks(setAppState);
|
|
531057
|
-
}, [setAppState, isRemoteSession]);
|
|
531058
531062
|
usePromptsFromClaudeInChrome(isRemoteSession ? EMPTY_MCP_CLIENTS2 : mcpClients, toolPermissionContext.mode);
|
|
531059
531063
|
useSwarmInitialization(setAppState, initialMessages, {
|
|
531060
531064
|
enabled: !isRemoteSession
|
|
@@ -531366,6 +531370,18 @@ function REPL({
|
|
|
531366
531370
|
const activeRemote = sshRemote.isRemoteMode ? sshRemote : directConnect.isRemoteMode ? directConnect : remoteSession;
|
|
531367
531371
|
const [pastedContents, setPastedContents] = import_react314.useState({});
|
|
531368
531372
|
const [submitCount, setSubmitCount] = import_react314.useState(0);
|
|
531373
|
+
const startupChecksStartedRef = import_react314.useRef(false);
|
|
531374
|
+
const hasHadFirstSubmission = (submitCount ?? 0) > 0;
|
|
531375
|
+
import_react314.useEffect(() => {
|
|
531376
|
+
if (isRemoteSession)
|
|
531377
|
+
return;
|
|
531378
|
+
if (startupChecksStartedRef.current)
|
|
531379
|
+
return;
|
|
531380
|
+
if (!hasHadFirstSubmission)
|
|
531381
|
+
return;
|
|
531382
|
+
startupChecksStartedRef.current = true;
|
|
531383
|
+
performStartupChecks(setAppState);
|
|
531384
|
+
}, [setAppState, isRemoteSession, hasHadFirstSubmission]);
|
|
531369
531385
|
const responseLengthRef = import_react314.useRef(0);
|
|
531370
531386
|
const apiMetricsRef2 = import_react314.useRef([]);
|
|
531371
531387
|
const setResponseLength = import_react314.useCallback((f) => {
|
|
@@ -531711,11 +531727,11 @@ function REPL({
|
|
|
531711
531727
|
return "effort-callout";
|
|
531712
531728
|
if (allowDialogsWithAnimation && showRemoteCallout)
|
|
531713
531729
|
return "remote-callout";
|
|
531714
|
-
if (allowDialogsWithAnimation && lspRecommendation)
|
|
531730
|
+
if (allowDialogsWithAnimation && lspRecommendation && startupChecksStartedRef.current)
|
|
531715
531731
|
return "lsp-recommendation";
|
|
531716
|
-
if (allowDialogsWithAnimation && hintRecommendation)
|
|
531732
|
+
if (allowDialogsWithAnimation && hintRecommendation && startupChecksStartedRef.current)
|
|
531717
531733
|
return "plugin-hint";
|
|
531718
|
-
if (allowDialogsWithAnimation && showDesktopUpsellStartup)
|
|
531734
|
+
if (allowDialogsWithAnimation && showDesktopUpsellStartup && startupChecksStartedRef.current)
|
|
531719
531735
|
return "desktop-upsell";
|
|
531720
531736
|
return;
|
|
531721
531737
|
}
|
|
@@ -535354,7 +535370,7 @@ function WelcomeV2() {
|
|
|
535354
535370
|
dimColor: true,
|
|
535355
535371
|
children: [
|
|
535356
535372
|
"v",
|
|
535357
|
-
"0.2.
|
|
535373
|
+
"0.2.4",
|
|
535358
535374
|
" "
|
|
535359
535375
|
]
|
|
535360
535376
|
}, undefined, true, undefined, this)
|
|
@@ -535554,7 +535570,7 @@ function WelcomeV2() {
|
|
|
535554
535570
|
dimColor: true,
|
|
535555
535571
|
children: [
|
|
535556
535572
|
"v",
|
|
535557
|
-
"0.2.
|
|
535573
|
+
"0.2.4",
|
|
535558
535574
|
" "
|
|
535559
535575
|
]
|
|
535560
535576
|
}, undefined, true, undefined, this)
|
|
@@ -535780,7 +535796,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
535780
535796
|
dimColor: true,
|
|
535781
535797
|
children: [
|
|
535782
535798
|
"v",
|
|
535783
|
-
"0.2.
|
|
535799
|
+
"0.2.4",
|
|
535784
535800
|
" "
|
|
535785
535801
|
]
|
|
535786
535802
|
}, undefined, true, undefined, this);
|
|
@@ -536034,7 +536050,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
536034
536050
|
dimColor: true,
|
|
536035
536051
|
children: [
|
|
536036
536052
|
"v",
|
|
536037
|
-
"0.2.
|
|
536053
|
+
"0.2.4",
|
|
536038
536054
|
" "
|
|
536039
536055
|
]
|
|
536040
536056
|
}, undefined, true, undefined, this);
|
|
@@ -537529,7 +537545,7 @@ var init_ClaudeInChromeOnboarding = __esm(() => {
|
|
|
537529
537545
|
});
|
|
537530
537546
|
|
|
537531
537547
|
// src/interactiveHelpers.tsx
|
|
537532
|
-
import { appendFileSync as
|
|
537548
|
+
import { appendFileSync as appendFileSync5 } from "fs";
|
|
537533
537549
|
function completeOnboarding() {
|
|
537534
537550
|
saveGlobalConfig((current) => ({
|
|
537535
537551
|
...current,
|
|
@@ -537714,7 +537730,7 @@ function getRenderContext(exitOnCtrlC) {
|
|
|
537714
537730
|
cpu: process.cpuUsage()
|
|
537715
537731
|
}) + `
|
|
537716
537732
|
`;
|
|
537717
|
-
|
|
537733
|
+
appendFileSync5(frameTimingLogPath, line);
|
|
537718
537734
|
}
|
|
537719
537735
|
if (isSynchronizedOutputSupported()) {
|
|
537720
537736
|
return;
|
|
@@ -554645,6 +554661,7 @@ __export(exports_main, {
|
|
|
554645
554661
|
});
|
|
554646
554662
|
import { readFileSync as readFileSync12 } from "fs";
|
|
554647
554663
|
import { resolve as resolve41 } from "path";
|
|
554664
|
+
import { appendFileSync as _dbgAppend } from "fs";
|
|
554648
554665
|
function logManagedSettings() {
|
|
554649
554666
|
try {
|
|
554650
554667
|
const policySettings = getSettingsForSource("policySettings");
|
|
@@ -554863,7 +554880,14 @@ function initializeEntrypoint(isNonInteractive) {
|
|
|
554863
554880
|
}
|
|
554864
554881
|
process.env.CLAUDE_CODE_ENTRYPOINT = isNonInteractive ? "sdk-cli" : "cli";
|
|
554865
554882
|
}
|
|
554883
|
+
function _xdbg(msg) {
|
|
554884
|
+
try {
|
|
554885
|
+
_dbgAppend("/tmp/xclaude-debug.log", `[${new Date().toISOString()}] MAIN: ${msg}
|
|
554886
|
+
`);
|
|
554887
|
+
} catch {}
|
|
554888
|
+
}
|
|
554866
554889
|
async function main() {
|
|
554890
|
+
_xdbg(`main() called — stdout.isTTY=${process.stdout.isTTY} stdin.isTTY=${process.stdin.isTTY}`);
|
|
554867
554891
|
profileCheckpoint("main_function_start");
|
|
554868
554892
|
process.env.NoDefaultCurrentDirectoryInExePath = "1";
|
|
554869
554893
|
initializeWarningHandler();
|
|
@@ -554890,6 +554914,7 @@ async function main() {
|
|
|
554890
554914
|
stopCapturingEarlyInput();
|
|
554891
554915
|
}
|
|
554892
554916
|
const isInteractive = !isNonInteractive;
|
|
554917
|
+
_xdbg(`isNonInteractive=${isNonInteractive} isInteractive=${isInteractive} (hasPrintFlag=${hasPrintFlag} hasInitOnly=${hasInitOnlyFlag} stdout.isTTY=${process.stdout.isTTY})`);
|
|
554893
554918
|
setIsInteractive(isInteractive);
|
|
554894
554919
|
initializeEntrypoint(isNonInteractive);
|
|
554895
554920
|
const clientType = (() => {
|
|
@@ -555667,12 +555692,15 @@ ${customInstructions}` : customInstructions;
|
|
|
555667
555692
|
createRoot: createRoot3
|
|
555668
555693
|
} = await Promise.resolve().then(() => (init_ink2(), exports_ink));
|
|
555669
555694
|
root2 = await createRoot3(ctx.renderOptions);
|
|
555695
|
+
_xdbg("createRoot done");
|
|
555670
555696
|
logEvent("tengu_timer", {
|
|
555671
555697
|
event: "startup",
|
|
555672
555698
|
durationMs: Math.round(process.uptime() * 1000)
|
|
555673
555699
|
});
|
|
555674
555700
|
const setupScreensStart = Date.now();
|
|
555701
|
+
_xdbg("calling showSetupScreens");
|
|
555675
555702
|
const onboardingShown = await showSetupScreens(root2, permissionMode, allowDangerouslySkipPermissions, commands, enableClaudeInChrome, devChannels);
|
|
555703
|
+
_xdbg(`showSetupScreens done, onboardingShown=${onboardingShown}`);
|
|
555676
555704
|
if (false) {}
|
|
555677
555705
|
if (false) {}
|
|
555678
555706
|
if (onboardingShown && prompt2?.trim().toLowerCase() === "/login") {
|
|
@@ -556591,6 +556619,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
556591
556619
|
let deepLinkBanner = null;
|
|
556592
556620
|
if (false) {}
|
|
556593
556621
|
const initialMessages = deepLinkBanner ? [deepLinkBanner, ...hookMessages] : hookMessages.length > 0 ? hookMessages : undefined;
|
|
556622
|
+
_xdbg("calling launchRepl (main path)");
|
|
556594
556623
|
await launchRepl(root2, {
|
|
556595
556624
|
getFpsMetrics,
|
|
556596
556625
|
stats: stats2,
|
|
@@ -556601,7 +556630,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
556601
556630
|
pendingHookMessages
|
|
556602
556631
|
}, renderAndRun);
|
|
556603
556632
|
}
|
|
556604
|
-
}).version("0.2.
|
|
556633
|
+
}).version("0.2.4 (Xclaude)", "-v, --version", "Output the version number");
|
|
556605
556634
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
556606
556635
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
556607
556636
|
if (canUserConfigureAdvisor()) {
|
|
@@ -557171,7 +557200,7 @@ function validateProviderEnvOrExit() {
|
|
|
557171
557200
|
async function main2() {
|
|
557172
557201
|
const args = process.argv.slice(2);
|
|
557173
557202
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
557174
|
-
console.log(`${"0.2.
|
|
557203
|
+
console.log(`${"0.2.4"} (Xclaude)`);
|
|
557175
557204
|
return;
|
|
557176
557205
|
}
|
|
557177
557206
|
if (args.includes("--setup") || args[0] === "setup") {
|
|
@@ -557303,4 +557332,4 @@ async function main2() {
|
|
|
557303
557332
|
}
|
|
557304
557333
|
main2();
|
|
557305
557334
|
|
|
557306
|
-
//# debugId=
|
|
557335
|
+
//# debugId=750CCE499995432D64756E2164756E21
|