@sma1lboy/kobe 0.7.4 → 0.7.6
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/index.js +212 -54
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -70,7 +70,7 @@ var init_package = __esm(() => {
|
|
|
70
70
|
package_default = {
|
|
71
71
|
$schema: "https://json.schemastore.org/package.json",
|
|
72
72
|
name: "@sma1lboy/kobe",
|
|
73
|
-
version: "0.7.
|
|
73
|
+
version: "0.7.6",
|
|
74
74
|
description: "TUI orchestrator for Claude Code (codename)",
|
|
75
75
|
type: "module",
|
|
76
76
|
packageManager: "bun@1.3.13",
|
|
@@ -2477,6 +2477,8 @@ class ClaudeHookAdapter {
|
|
|
2477
2477
|
const current = await readJsonObject(settingsFilePath);
|
|
2478
2478
|
const command = install ? shellQuoteArgv([...kobeCliInvocation(), "hook", "worktree-created"]) : null;
|
|
2479
2479
|
const next = mergeWorktreeSyncHook(current, command);
|
|
2480
|
+
if (JSON.stringify(next) === JSON.stringify(current))
|
|
2481
|
+
return;
|
|
2480
2482
|
await mkdir2(dirname3(settingsFilePath), { recursive: true });
|
|
2481
2483
|
await writeFile2(settingsFilePath, `${JSON.stringify(next, null, 2)}
|
|
2482
2484
|
`);
|
|
@@ -2502,6 +2504,8 @@ class ClaudeHookAdapter {
|
|
|
2502
2504
|
}
|
|
2503
2505
|
}
|
|
2504
2506
|
async function hideFromGit(worktreeDir, relPath) {
|
|
2507
|
+
if (hiddenWorktrees.has(worktreeDir))
|
|
2508
|
+
return;
|
|
2505
2509
|
try {
|
|
2506
2510
|
const proc = Bun.spawn(["git", "-C", worktreeDir, "rev-parse", "--git-common-dir"], {
|
|
2507
2511
|
stdout: "pipe",
|
|
@@ -2518,16 +2522,19 @@ async function hideFromGit(worktreeDir, relPath) {
|
|
|
2518
2522
|
const excludePath = join3(commonDir, "info", "exclude");
|
|
2519
2523
|
const existing = existsSync(excludePath) ? await readFile2(excludePath, "utf8") : "";
|
|
2520
2524
|
if (existing.split(`
|
|
2521
|
-
`).some((l) => l.trim() === relPath))
|
|
2525
|
+
`).some((l) => l.trim() === relPath)) {
|
|
2526
|
+
hiddenWorktrees.add(worktreeDir);
|
|
2522
2527
|
return;
|
|
2528
|
+
}
|
|
2523
2529
|
await mkdir2(join3(commonDir, "info"), { recursive: true });
|
|
2524
2530
|
await appendFile(excludePath, `${existing.endsWith(`
|
|
2525
2531
|
`) || existing === "" ? "" : `
|
|
2526
2532
|
`}${relPath}
|
|
2527
2533
|
`);
|
|
2534
|
+
hiddenWorktrees.add(worktreeDir);
|
|
2528
2535
|
} catch {}
|
|
2529
2536
|
}
|
|
2530
|
-
var EVENT_MAP, KOBE_HOOK_EVENTS, WORKTREE_SYNC_MARKER = "worktree-created";
|
|
2537
|
+
var EVENT_MAP, KOBE_HOOK_EVENTS, WORKTREE_SYNC_MARKER = "worktree-created", hiddenWorktrees;
|
|
2531
2538
|
var init_hook_adapter = __esm(() => {
|
|
2532
2539
|
init_invocation();
|
|
2533
2540
|
EVENT_MAP = [
|
|
@@ -2539,6 +2546,7 @@ var init_hook_adapter = __esm(() => {
|
|
|
2539
2546
|
{ event: "SessionEnd", verb: "session-end" }
|
|
2540
2547
|
];
|
|
2541
2548
|
KOBE_HOOK_EVENTS = EVENT_MAP.map((e) => e.event);
|
|
2549
|
+
hiddenWorktrees = new Set;
|
|
2542
2550
|
});
|
|
2543
2551
|
|
|
2544
2552
|
// src/engine/hook-adapter.ts
|
|
@@ -3397,6 +3405,18 @@ class Orchestrator {
|
|
|
3397
3405
|
if (!input.worktreePath)
|
|
3398
3406
|
throw new Error("adoptWorktree: worktreePath is required");
|
|
3399
3407
|
const target = canonPath(input.worktreePath);
|
|
3408
|
+
const inflight = this.adoptLocks.get(target);
|
|
3409
|
+
if (inflight)
|
|
3410
|
+
return inflight;
|
|
3411
|
+
const work = this.adoptWorktreeLocked(input, target);
|
|
3412
|
+
this.adoptLocks.set(target, work);
|
|
3413
|
+
try {
|
|
3414
|
+
return await work;
|
|
3415
|
+
} finally {
|
|
3416
|
+
this.adoptLocks.delete(target);
|
|
3417
|
+
}
|
|
3418
|
+
}
|
|
3419
|
+
async adoptWorktreeLocked(input, target) {
|
|
3400
3420
|
const existing = this.store.list().find((t) => t.worktreePath && canonPath(t.worktreePath) === target);
|
|
3401
3421
|
if (existing) {
|
|
3402
3422
|
if (input.ifExists === "return")
|
|
@@ -3429,6 +3449,7 @@ class Orchestrator {
|
|
|
3429
3449
|
});
|
|
3430
3450
|
}
|
|
3431
3451
|
pendingBaseRefs = new Map;
|
|
3452
|
+
adoptLocks = new Map;
|
|
3432
3453
|
requireTask(id) {
|
|
3433
3454
|
const task = this.store.get(id);
|
|
3434
3455
|
if (!task)
|
|
@@ -3459,6 +3480,11 @@ var init_core = __esm(() => {
|
|
|
3459
3480
|
function isProtocolCompatible(args) {
|
|
3460
3481
|
return args.remoteVersion >= args.localMin && args.localVersion >= args.remoteMin;
|
|
3461
3482
|
}
|
|
3483
|
+
function isDaemonVersionStale(daemonVersion, clientVersion) {
|
|
3484
|
+
if (!daemonVersion)
|
|
3485
|
+
return false;
|
|
3486
|
+
return daemonVersion !== clientVersion;
|
|
3487
|
+
}
|
|
3462
3488
|
function serializeTask(task) {
|
|
3463
3489
|
return {
|
|
3464
3490
|
id: task.id,
|
|
@@ -5350,6 +5376,7 @@ async function startDaemonServer(orch, options = {}) {
|
|
|
5350
5376
|
return {
|
|
5351
5377
|
protocolVersion: DAEMON_PROTOCOL_VERSION,
|
|
5352
5378
|
minProtocolVersion: MIN_COMPATIBLE_PROTOCOL_VERSION,
|
|
5379
|
+
kobeVersion: CURRENT_VERSION,
|
|
5353
5380
|
capabilities: [...CHANNEL_NAMES],
|
|
5354
5381
|
daemonPid: process.pid,
|
|
5355
5382
|
clientId: client.id,
|
|
@@ -5359,6 +5386,7 @@ async function startDaemonServer(orch, options = {}) {
|
|
|
5359
5386
|
case "daemon.status":
|
|
5360
5387
|
return {
|
|
5361
5388
|
daemonPid: process.pid,
|
|
5389
|
+
kobeVersion: CURRENT_VERSION,
|
|
5362
5390
|
uptimeMs: Date.now() - startedAt.getTime(),
|
|
5363
5391
|
startedAt: startedAt.toISOString(),
|
|
5364
5392
|
attachedClients: guiCount(),
|
|
@@ -5418,6 +5446,8 @@ async function startDaemonServer(orch, options = {}) {
|
|
|
5418
5446
|
if (gone?.lapse)
|
|
5419
5447
|
clearTimeout(gone.lapse);
|
|
5420
5448
|
activity.delete(taskId);
|
|
5449
|
+
if (gone)
|
|
5450
|
+
bus.publish("engine-state", { taskId, state: "idle", at: Date.now() });
|
|
5421
5451
|
return {};
|
|
5422
5452
|
}
|
|
5423
5453
|
case "task.pin": {
|
|
@@ -8110,6 +8140,13 @@ async function runDoctorSubcommand(argv = []) {
|
|
|
8110
8140
|
const tasks = typeof status.taskCount === "number" ? status.taskCount : "?";
|
|
8111
8141
|
const clients = typeof status.attachedClients === "number" ? status.attachedClients : "?";
|
|
8112
8142
|
out.push(`daemon: \u2713 running (pid ${pid}, up ${up}, ${tasks} task(s), ${clients} client(s))`);
|
|
8143
|
+
const daemonVersion = typeof status.kobeVersion === "string" ? status.kobeVersion : undefined;
|
|
8144
|
+
if (daemonVersion && daemonVersion !== CURRENT_VERSION) {
|
|
8145
|
+
out.push(` \u26A0 stale build: daemon is v${daemonVersion}, you launched v${CURRENT_VERSION}`);
|
|
8146
|
+
out.push(" \u2192 run `kobe daemon restart`, then `kobe reload` in any open kobe sessions");
|
|
8147
|
+
} else if (daemonVersion) {
|
|
8148
|
+
out.push(` build: v${daemonVersion}`);
|
|
8149
|
+
}
|
|
8113
8150
|
} else {
|
|
8114
8151
|
const pid = await readPidFile(pidPath);
|
|
8115
8152
|
if (pid && isProcessAlive2(pid)) {
|
|
@@ -8313,6 +8350,7 @@ var init_maintenance = __esm(() => {
|
|
|
8313
8350
|
init_env();
|
|
8314
8351
|
init_skill_install();
|
|
8315
8352
|
init_client2();
|
|
8353
|
+
init_version();
|
|
8316
8354
|
});
|
|
8317
8355
|
|
|
8318
8356
|
// src/cli/skill-cmd.ts
|
|
@@ -8418,7 +8456,8 @@ var init_skill_cmd = __esm(() => {
|
|
|
8418
8456
|
// src/cli/hook-cmd.ts
|
|
8419
8457
|
var exports_hook_cmd = {};
|
|
8420
8458
|
__export(exports_hook_cmd, {
|
|
8421
|
-
runHookSubcommand: () => runHookSubcommand
|
|
8459
|
+
runHookSubcommand: () => runHookSubcommand,
|
|
8460
|
+
ensureDefaultWorktreeSync: () => ensureDefaultWorktreeSync
|
|
8422
8461
|
});
|
|
8423
8462
|
import { homedir as homedir10 } from "os";
|
|
8424
8463
|
import { dirname as dirname7, join as join10, resolve as resolve6 } from "path";
|
|
@@ -8527,13 +8566,38 @@ function syncSettingsPath(scope) {
|
|
|
8527
8566
|
function worktreeSyncAdapters() {
|
|
8528
8567
|
return ALL_VENDORS.map((v) => createEngineHookAdapter(v)).filter((a) => a.supportsWorktreeSync());
|
|
8529
8568
|
}
|
|
8569
|
+
function persistedSyncPath(stored) {
|
|
8570
|
+
if (!stored || stored === "off")
|
|
8571
|
+
return;
|
|
8572
|
+
if (stored === "global")
|
|
8573
|
+
return syncSettingsPath({ kind: "global" });
|
|
8574
|
+
if (stored.startsWith("repo:"))
|
|
8575
|
+
return syncSettingsPath({ kind: "repo", path: stored.slice(5) });
|
|
8576
|
+
return stored;
|
|
8577
|
+
}
|
|
8578
|
+
async function ensureDefaultWorktreeSync() {
|
|
8579
|
+
try {
|
|
8580
|
+
const stored = getPersistedString(SYNC_SETTING_KEY);
|
|
8581
|
+
if (stored === "off")
|
|
8582
|
+
return;
|
|
8583
|
+
const adapters = worktreeSyncAdapters();
|
|
8584
|
+
if (adapters.length === 0)
|
|
8585
|
+
return;
|
|
8586
|
+
const path6 = persistedSyncPath(stored) ?? syncSettingsPath({ kind: "global" });
|
|
8587
|
+
for (const a of adapters)
|
|
8588
|
+
await a.installWorktreeSyncHook(path6);
|
|
8589
|
+
if (!stored)
|
|
8590
|
+
setPersistedString(SYNC_SETTING_KEY, path6);
|
|
8591
|
+
} catch {}
|
|
8592
|
+
}
|
|
8530
8593
|
async function runHookSetup(argv) {
|
|
8531
8594
|
if (argv.includes("--help") || argv.includes("-h")) {
|
|
8532
8595
|
process.stdout.write([
|
|
8533
8596
|
"Usage: kobe hook setup [--global | --repo <path> | --off]",
|
|
8534
8597
|
"",
|
|
8535
|
-
"
|
|
8536
|
-
"
|
|
8598
|
+
"Syncs an external `claude --worktree` into kobe as a task. This is ON",
|
|
8599
|
+
"by default (installed globally into ~/.claude on launch). Use this to",
|
|
8600
|
+
"move it to one repo (--repo <path>) or to turn it OFF (--off).",
|
|
8537
8601
|
""
|
|
8538
8602
|
].join(`
|
|
8539
8603
|
`));
|
|
@@ -8553,21 +8617,26 @@ async function runHookSetup(argv) {
|
|
|
8553
8617
|
`);
|
|
8554
8618
|
return;
|
|
8555
8619
|
}
|
|
8620
|
+
const prevPath = persistedSyncPath(getPersistedString(SYNC_SETTING_KEY));
|
|
8556
8621
|
if (off) {
|
|
8557
|
-
|
|
8558
|
-
|
|
8559
|
-
|
|
8560
|
-
|
|
8622
|
+
if (prevPath) {
|
|
8623
|
+
for (const a of adapters)
|
|
8624
|
+
await a.removeWorktreeSyncHook(prevPath);
|
|
8625
|
+
}
|
|
8561
8626
|
setPersistedString(SYNC_SETTING_KEY, "off");
|
|
8562
|
-
process.stdout.write(`kobe hook setup: external worktree sync disabled (removed from ${
|
|
8627
|
+
process.stdout.write(`kobe hook setup: external worktree sync disabled${prevPath ? ` (removed from ${prevPath})` : ""}
|
|
8563
8628
|
`);
|
|
8564
8629
|
return;
|
|
8565
8630
|
}
|
|
8566
8631
|
const scope = repoPath ? { kind: "repo", path: repoPath } : { kind: "global" };
|
|
8567
8632
|
const path6 = syncSettingsPath(scope);
|
|
8633
|
+
if (prevPath && prevPath !== path6) {
|
|
8634
|
+
for (const a of adapters)
|
|
8635
|
+
await a.removeWorktreeSyncHook(prevPath);
|
|
8636
|
+
}
|
|
8568
8637
|
for (const a of adapters)
|
|
8569
8638
|
await a.installWorktreeSyncHook(path6);
|
|
8570
|
-
setPersistedString(SYNC_SETTING_KEY,
|
|
8639
|
+
setPersistedString(SYNC_SETTING_KEY, path6);
|
|
8571
8640
|
process.stdout.write([
|
|
8572
8641
|
`kobe hook setup: external worktree sync enabled (${scope.kind}) \u2014 wrote ${path6}`,
|
|
8573
8642
|
"New `claude --worktree` worktrees will appear as kobe tasks.",
|
|
@@ -9869,6 +9938,8 @@ class RemoteOrchestrator {
|
|
|
9869
9938
|
setActiveTaskSig;
|
|
9870
9939
|
updateAcc;
|
|
9871
9940
|
setUpdateSig;
|
|
9941
|
+
daemonVersionAcc;
|
|
9942
|
+
setDaemonVersionSig;
|
|
9872
9943
|
engineStateAcc;
|
|
9873
9944
|
setEngineStateSig;
|
|
9874
9945
|
connectionStateAcc;
|
|
@@ -9881,6 +9952,7 @@ class RemoteOrchestrator {
|
|
|
9881
9952
|
const [tasks, setTasks] = createSignal([]);
|
|
9882
9953
|
const [activeTask, setActiveTask] = createSignal(null);
|
|
9883
9954
|
const [update, setUpdate] = createSignal(null);
|
|
9955
|
+
const [daemonVersion, setDaemonVersion] = createSignal(null);
|
|
9884
9956
|
const [engineState, setEngineState] = createSignal(new Map);
|
|
9885
9957
|
const [connectionState, setConnectionState] = createSignal("online");
|
|
9886
9958
|
this.tasksAcc = tasks;
|
|
@@ -9889,6 +9961,8 @@ class RemoteOrchestrator {
|
|
|
9889
9961
|
this.setActiveTaskSig = (next) => setActiveTask(() => next);
|
|
9890
9962
|
this.updateAcc = update;
|
|
9891
9963
|
this.setUpdateSig = (next) => setUpdate(() => next);
|
|
9964
|
+
this.daemonVersionAcc = daemonVersion;
|
|
9965
|
+
this.setDaemonVersionSig = (next) => setDaemonVersion(() => next);
|
|
9892
9966
|
this.engineStateAcc = engineState;
|
|
9893
9967
|
this.setEngineStateSig = (next) => setEngineState(() => next);
|
|
9894
9968
|
this.connectionStateAcc = connectionState;
|
|
@@ -9943,6 +10017,7 @@ class RemoteOrchestrator {
|
|
|
9943
10017
|
})) {
|
|
9944
10018
|
throw new Error(`kobe daemon is protocol v${daemonVersion} (min v${daemonMin}); this client is v${DAEMON_PROTOCOL_VERSION} (min v${MIN_COMPATIBLE_PROTOCOL_VERSION}). Restart the daemon (\`kobe daemon restart\`) or upgrade kobe.`);
|
|
9945
10019
|
}
|
|
10020
|
+
this.setDaemonVersionSig(typeof hello.kobeVersion === "string" ? hello.kobeVersion : null);
|
|
9946
10021
|
if (hello.tasks)
|
|
9947
10022
|
this.setTasks(hello.tasks.map(deserializeTask));
|
|
9948
10023
|
await this.client.subscribe({ role: this.role });
|
|
@@ -9969,6 +10044,12 @@ class RemoteOrchestrator {
|
|
|
9969
10044
|
updateSignal() {
|
|
9970
10045
|
return this.updateAcc;
|
|
9971
10046
|
}
|
|
10047
|
+
daemonVersionSignal() {
|
|
10048
|
+
return this.daemonVersionAcc;
|
|
10049
|
+
}
|
|
10050
|
+
daemonStaleSignal() {
|
|
10051
|
+
return () => isDaemonVersionStale(this.daemonVersionAcc() ?? undefined, CURRENT_VERSION);
|
|
10052
|
+
}
|
|
9972
10053
|
engineStateSignal() {
|
|
9973
10054
|
return this.engineStateAcc;
|
|
9974
10055
|
}
|
|
@@ -10096,6 +10177,7 @@ function deserializeTask(s) {
|
|
|
10096
10177
|
var init_remote_orchestrator = __esm(() => {
|
|
10097
10178
|
init_dev();
|
|
10098
10179
|
init_protocol();
|
|
10180
|
+
init_version();
|
|
10099
10181
|
init_client_log();
|
|
10100
10182
|
init_daemon_process();
|
|
10101
10183
|
});
|
|
@@ -15776,6 +15858,72 @@ var init_settings_dialog = __esm(() => {
|
|
|
15776
15858
|
};
|
|
15777
15859
|
});
|
|
15778
15860
|
|
|
15861
|
+
// src/tui/component/version-skew-banner.tsx
|
|
15862
|
+
import { TextAttributes as TextAttributes7 } from "@opentui/core";
|
|
15863
|
+
function versionSkewHint(daemonVersion, clientVersion) {
|
|
15864
|
+
const daemon = daemonVersion ? `v${daemonVersion}` : "an older build";
|
|
15865
|
+
return `daemon is ${daemon} \u2014 you launched v${clientVersion}. Run \`kobe daemon restart\` then \`kobe reload\``;
|
|
15866
|
+
}
|
|
15867
|
+
function VersionSkewBanner(props) {
|
|
15868
|
+
const {
|
|
15869
|
+
theme
|
|
15870
|
+
} = useTheme();
|
|
15871
|
+
const ruleWidth = () => Math.max(4, props.width() - 2);
|
|
15872
|
+
return createComponent2(Show, {
|
|
15873
|
+
get when() {
|
|
15874
|
+
return props.stale();
|
|
15875
|
+
},
|
|
15876
|
+
get children() {
|
|
15877
|
+
var _el$ = createElement("box"), _el$2 = createElement("text"), _el$3 = createElement("box"), _el$4 = createElement("text"), _el$6 = createElement("box"), _el$7 = createElement("text");
|
|
15878
|
+
insertNode(_el$, _el$2);
|
|
15879
|
+
insertNode(_el$, _el$3);
|
|
15880
|
+
insertNode(_el$, _el$6);
|
|
15881
|
+
setProp(_el$, "flexDirection", "column");
|
|
15882
|
+
setProp(_el$, "flexShrink", 0);
|
|
15883
|
+
setProp(_el$, "paddingLeft", 1);
|
|
15884
|
+
setProp(_el$, "paddingRight", 1);
|
|
15885
|
+
setProp(_el$, "paddingBottom", 1);
|
|
15886
|
+
setProp(_el$2, "wrapMode", "none");
|
|
15887
|
+
insert(_el$2, () => "\u2594".repeat(ruleWidth()));
|
|
15888
|
+
insertNode(_el$3, _el$4);
|
|
15889
|
+
setProp(_el$3, "flexDirection", "row");
|
|
15890
|
+
setProp(_el$3, "gap", 1);
|
|
15891
|
+
insertNode(_el$4, createTextNode(`\u26A0 DAEMON OUT OF DATE`));
|
|
15892
|
+
setProp(_el$4, "wrapMode", "none");
|
|
15893
|
+
insertNode(_el$6, _el$7);
|
|
15894
|
+
setProp(_el$6, "flexDirection", "row");
|
|
15895
|
+
setProp(_el$6, "gap", 1);
|
|
15896
|
+
setProp(_el$7, "wrapMode", "word");
|
|
15897
|
+
insert(_el$7, () => versionSkewHint(props.daemonVersion(), props.clientVersion));
|
|
15898
|
+
effect((_p$) => {
|
|
15899
|
+
var { warning: _v$, warning: _v$2 } = theme, _v$3 = TextAttributes7.BOLD, _v$4 = theme.text;
|
|
15900
|
+
_v$ !== _p$.e && (_p$.e = setProp(_el$2, "fg", _v$, _p$.e));
|
|
15901
|
+
_v$2 !== _p$.t && (_p$.t = setProp(_el$4, "fg", _v$2, _p$.t));
|
|
15902
|
+
_v$3 !== _p$.a && (_p$.a = setProp(_el$4, "attributes", _v$3, _p$.a));
|
|
15903
|
+
_v$4 !== _p$.o && (_p$.o = setProp(_el$7, "fg", _v$4, _p$.o));
|
|
15904
|
+
return _p$;
|
|
15905
|
+
}, {
|
|
15906
|
+
e: undefined,
|
|
15907
|
+
t: undefined,
|
|
15908
|
+
a: undefined,
|
|
15909
|
+
o: undefined
|
|
15910
|
+
});
|
|
15911
|
+
return _el$;
|
|
15912
|
+
}
|
|
15913
|
+
});
|
|
15914
|
+
}
|
|
15915
|
+
var init_version_skew_banner = __esm(() => {
|
|
15916
|
+
init_solid();
|
|
15917
|
+
init_solid();
|
|
15918
|
+
init_solid();
|
|
15919
|
+
init_solid();
|
|
15920
|
+
init_solid();
|
|
15921
|
+
init_solid();
|
|
15922
|
+
init_solid();
|
|
15923
|
+
init_dev();
|
|
15924
|
+
init_theme2();
|
|
15925
|
+
});
|
|
15926
|
+
|
|
15779
15927
|
// src/tui/context/focus.tsx
|
|
15780
15928
|
function FocusProvider(props) {
|
|
15781
15929
|
const [focused, setFocusedSignal] = createSignal(props.initial ?? "sidebar");
|
|
@@ -16125,7 +16273,7 @@ function flattenIds(rows) {
|
|
|
16125
16273
|
var init_groups = () => {};
|
|
16126
16274
|
|
|
16127
16275
|
// src/tui/context/command-palette.tsx
|
|
16128
|
-
import { TextAttributes as
|
|
16276
|
+
import { TextAttributes as TextAttributes8 } from "@opentui/core";
|
|
16129
16277
|
function CommandPaletteProvider(props) {
|
|
16130
16278
|
const dialog = useDialog();
|
|
16131
16279
|
const [commands, setCommands] = createSignal([]);
|
|
@@ -16274,7 +16422,7 @@ function CommandPaletteDialog(props) {
|
|
|
16274
16422
|
}
|
|
16275
16423
|
}), null);
|
|
16276
16424
|
effect((_p$) => {
|
|
16277
|
-
var _v$ =
|
|
16425
|
+
var _v$ = TextAttributes8.BOLD, _v$2 = theme.text, _v$3 = theme.textMuted;
|
|
16278
16426
|
_v$ !== _p$.e && (_p$.e = setProp(_el$3, "attributes", _v$, _p$.e));
|
|
16279
16427
|
_v$2 !== _p$.t && (_p$.t = setProp(_el$3, "fg", _v$2, _p$.t));
|
|
16280
16428
|
_v$3 !== _p$.a && (_p$.a = setProp(_el$5, "fg", _v$3, _p$.a));
|
|
@@ -16958,7 +17106,7 @@ var init_keys = __esm(() => {
|
|
|
16958
17106
|
});
|
|
16959
17107
|
|
|
16960
17108
|
// src/tui/panes/sidebar/Sidebar.tsx
|
|
16961
|
-
import { TextAttributes as
|
|
17109
|
+
import { TextAttributes as TextAttributes9 } from "@opentui/core";
|
|
16962
17110
|
function truncateBranchLabel(branch, max = BRANCH_LABEL_MAX) {
|
|
16963
17111
|
if (branch.length <= max)
|
|
16964
17112
|
return branch;
|
|
@@ -17123,7 +17271,7 @@ function Sidebar(props) {
|
|
|
17123
17271
|
setProp(_el$3, "wrapMode", "none");
|
|
17124
17272
|
insert(_el$3, () => "\u2500".repeat(Math.max(2, effectiveWidth() - 9 - p.label.length)));
|
|
17125
17273
|
effect((_p$) => {
|
|
17126
|
-
var _v$ = p.topPad ? 1 : 0, _v$2 = theme.textMuted, _v$3 =
|
|
17274
|
+
var _v$ = p.topPad ? 1 : 0, _v$2 = theme.textMuted, _v$3 = TextAttributes9.BOLD, _v$4 = theme.border;
|
|
17127
17275
|
_v$ !== _p$.e && (_p$.e = setProp(_el$, "paddingTop", _v$, _p$.e));
|
|
17128
17276
|
_v$2 !== _p$.t && (_p$.t = setProp(_el$2, "fg", _v$2, _p$.t));
|
|
17129
17277
|
_v$3 !== _p$.a && (_p$.a = setProp(_el$2, "attributes", _v$3, _p$.a));
|
|
@@ -17168,7 +17316,7 @@ function Sidebar(props) {
|
|
|
17168
17316
|
setProp(_el$26, "onMouseUp", () => props.onHeaderStatusClick?.());
|
|
17169
17317
|
insert(_el$26, () => status().label);
|
|
17170
17318
|
effect((_p$) => {
|
|
17171
|
-
var _v$11 = status().emphasize ? theme.warning : theme.textMuted, _v$12 = status().emphasize ?
|
|
17319
|
+
var _v$11 = status().emphasize ? theme.warning : theme.textMuted, _v$12 = status().emphasize ? TextAttributes9.BOLD : TextAttributes9.DIM;
|
|
17172
17320
|
_v$11 !== _p$.e && (_p$.e = setProp(_el$26, "fg", _v$11, _p$.e));
|
|
17173
17321
|
_v$12 !== _p$.t && (_p$.t = setProp(_el$26, "attributes", _v$12, _p$.t));
|
|
17174
17322
|
return _p$;
|
|
@@ -17226,7 +17374,7 @@ function Sidebar(props) {
|
|
|
17226
17374
|
}
|
|
17227
17375
|
}), null);
|
|
17228
17376
|
effect((_p$) => {
|
|
17229
|
-
var { info: _v$5, text: _v$6, info: _v$7 } = theme, _v$8 =
|
|
17377
|
+
var { info: _v$5, text: _v$6, info: _v$7 } = theme, _v$8 = TextAttributes9.BLINK;
|
|
17230
17378
|
_v$5 !== _p$.e && (_p$.e = setProp(_el$9, "fg", _v$5, _p$.e));
|
|
17231
17379
|
_v$6 !== _p$.t && (_p$.t = setProp(_el$1, "fg", _v$6, _p$.t));
|
|
17232
17380
|
_v$7 !== _p$.a && (_p$.a = setProp(_el$10, "fg", _v$7, _p$.a));
|
|
@@ -17255,7 +17403,7 @@ function Sidebar(props) {
|
|
|
17255
17403
|
setProp(_el$27, "onMouseUp", () => setView(tab.view));
|
|
17256
17404
|
insert(_el$27, () => tab.label);
|
|
17257
17405
|
effect((_p$) => {
|
|
17258
|
-
var _v$13 = active() ? theme.primary : theme.textMuted, _v$14 = active() ?
|
|
17406
|
+
var _v$13 = active() ? theme.primary : theme.textMuted, _v$14 = active() ? TextAttributes9.BOLD : undefined;
|
|
17259
17407
|
_v$13 !== _p$.e && (_p$.e = setProp(_el$27, "fg", _v$13, _p$.e));
|
|
17260
17408
|
_v$14 !== _p$.t && (_p$.t = setProp(_el$27, "attributes", _v$14, _p$.t));
|
|
17261
17409
|
return _p$;
|
|
@@ -17446,7 +17594,7 @@ function Sidebar(props) {
|
|
|
17446
17594
|
setProp(_el$37, "wrapMode", "none");
|
|
17447
17595
|
insert(_el$37, () => truncatePathTail(abbrevHome(task.repo), subtitleBudget()));
|
|
17448
17596
|
effect((_p$) => {
|
|
17449
|
-
var _v$15 = theme.textMuted, _v$16 =
|
|
17597
|
+
var _v$15 = theme.textMuted, _v$16 = TextAttributes9.DIM;
|
|
17450
17598
|
_v$15 !== _p$.e && (_p$.e = setProp(_el$37, "fg", _v$15, _p$.e));
|
|
17451
17599
|
_v$16 !== _p$.t && (_p$.t = setProp(_el$37, "attributes", _v$16, _p$.t));
|
|
17452
17600
|
return _p$;
|
|
@@ -17458,7 +17606,7 @@ function Sidebar(props) {
|
|
|
17458
17606
|
}
|
|
17459
17607
|
}), null);
|
|
17460
17608
|
effect((_p$) => {
|
|
17461
|
-
var _v$17 = barColor(), _v$18 = theme.primary, _v$19 =
|
|
17609
|
+
var _v$17 = barColor(), _v$18 = theme.primary, _v$19 = TextAttributes9.BOLD, _v$20 = theme.text, _v$21 = TextAttributes9.BOLD;
|
|
17462
17610
|
_v$17 !== _p$.e && (_p$.e = setProp(_el$31, "fg", _v$17, _p$.e));
|
|
17463
17611
|
_v$18 !== _p$.t && (_p$.t = setProp(_el$33, "fg", _v$18, _p$.t));
|
|
17464
17612
|
_v$19 !== _p$.a && (_p$.a = setProp(_el$33, "attributes", _v$19, _p$.a));
|
|
@@ -17525,7 +17673,7 @@ function Sidebar(props) {
|
|
|
17525
17673
|
})()
|
|
17526
17674
|
}), null);
|
|
17527
17675
|
effect((_p$) => {
|
|
17528
|
-
var _v$22 = barColor(), _v$23 = badgeColor(), _v$24 =
|
|
17676
|
+
var _v$22 = barColor(), _v$23 = badgeColor(), _v$24 = TextAttributes9.BOLD, _v$25 = theme.text, _v$26 = isSelected() || isCursor() ? TextAttributes9.BOLD : undefined;
|
|
17529
17677
|
_v$22 !== _p$.e && (_p$.e = setProp(_el$39, "fg", _v$22, _p$.e));
|
|
17530
17678
|
_v$23 !== _p$.t && (_p$.t = setProp(_el$41, "fg", _v$23, _p$.t));
|
|
17531
17679
|
_v$24 !== _p$.a && (_p$.a = setProp(_el$41, "attributes", _v$24, _p$.a));
|
|
@@ -17596,7 +17744,7 @@ function Sidebar(props) {
|
|
|
17596
17744
|
}
|
|
17597
17745
|
}), null);
|
|
17598
17746
|
effect((_p$) => {
|
|
17599
|
-
var _v$27 = barColor(), _v$28 = theme.textMuted, _v$29 =
|
|
17747
|
+
var _v$27 = barColor(), _v$28 = theme.textMuted, _v$29 = TextAttributes9.DIM;
|
|
17600
17748
|
_v$27 !== _p$.e && (_p$.e = setProp(_el$46, "fg", _v$27, _p$.e));
|
|
17601
17749
|
_v$28 !== _p$.t && (_p$.t = setProp(_el$48, "fg", _v$28, _p$.t));
|
|
17602
17750
|
_v$29 !== _p$.a && (_p$.a = setProp(_el$48, "attributes", _v$29, _p$.a));
|
|
@@ -17688,7 +17836,7 @@ function Sidebar(props) {
|
|
|
17688
17836
|
return () => _c$4() ? truncatePathTail(l.text, innerW()) : truncateTitle(l.text, innerW());
|
|
17689
17837
|
})());
|
|
17690
17838
|
effect((_p$) => {
|
|
17691
|
-
var _v$35 = l.dim ? theme.textMuted : theme.text, _v$36 = l.bold ?
|
|
17839
|
+
var _v$35 = l.dim ? theme.textMuted : theme.text, _v$36 = l.bold ? TextAttributes9.BOLD : l.dim ? TextAttributes9.DIM : undefined;
|
|
17692
17840
|
_v$35 !== _p$.e && (_p$.e = setProp(_el$57, "fg", _v$35, _p$.e));
|
|
17693
17841
|
_v$36 !== _p$.t && (_p$.t = setProp(_el$57, "attributes", _v$36, _p$.t));
|
|
17694
17842
|
return _p$;
|
|
@@ -17719,7 +17867,7 @@ function Sidebar(props) {
|
|
|
17719
17867
|
}
|
|
17720
17868
|
}), null);
|
|
17721
17869
|
effect((_p$) => {
|
|
17722
|
-
var _v$9 = props.width ? props.width() : SIDEBAR_WIDTH, _v$0 = focusedAccessor() ? theme.focusAccent : theme.textMuted, _v$1 =
|
|
17870
|
+
var _v$9 = props.width ? props.width() : SIDEBAR_WIDTH, _v$0 = focusedAccessor() ? theme.focusAccent : theme.textMuted, _v$1 = TextAttributes9.BOLD, _v$10 = theme.textMuted;
|
|
17723
17871
|
_v$9 !== _p$.e && (_p$.e = setProp(_el$4, "width", _v$9, _p$.e));
|
|
17724
17872
|
_v$0 !== _p$.t && (_p$.t = setProp(_el$6, "fg", _v$0, _p$.t));
|
|
17725
17873
|
_v$1 !== _p$.a && (_p$.a = setProp(_el$6, "attributes", _v$1, _p$.a));
|
|
@@ -17801,7 +17949,7 @@ __export(exports_host, {
|
|
|
17801
17949
|
startTasksPane: () => startTasksPane
|
|
17802
17950
|
});
|
|
17803
17951
|
import { existsSync as existsSync12 } from "fs";
|
|
17804
|
-
import { TextAttributes as
|
|
17952
|
+
import { TextAttributes as TextAttributes10 } from "@opentui/core";
|
|
17805
17953
|
function TasksShell(props) {
|
|
17806
17954
|
const themeCtx = useTheme();
|
|
17807
17955
|
const {
|
|
@@ -18157,11 +18305,19 @@ function TasksShell(props) {
|
|
|
18157
18305
|
emphasize: false
|
|
18158
18306
|
};
|
|
18159
18307
|
});
|
|
18308
|
+
const daemonStale = () => props.orch?.daemonStaleSignal()() ?? false;
|
|
18309
|
+
const daemonVersion = () => props.orch?.daemonVersionSignal()() ?? null;
|
|
18160
18310
|
return (() => {
|
|
18161
18311
|
var _el$ = createElement("box"), _el$2 = createElement("box");
|
|
18162
18312
|
insertNode(_el$, _el$2);
|
|
18163
18313
|
setProp(_el$, "flexDirection", "column");
|
|
18164
18314
|
setProp(_el$, "flexGrow", 1);
|
|
18315
|
+
insert(_el$, createComponent2(VersionSkewBanner, {
|
|
18316
|
+
stale: daemonStale,
|
|
18317
|
+
daemonVersion,
|
|
18318
|
+
clientVersion: CURRENT_VERSION,
|
|
18319
|
+
width: () => dimensions().width
|
|
18320
|
+
}), _el$2);
|
|
18165
18321
|
setProp(_el$2, "flexGrow", 1);
|
|
18166
18322
|
setProp(_el$2, "flexShrink", 1);
|
|
18167
18323
|
insert(_el$2, createComponent2(Sidebar, {
|
|
@@ -18278,7 +18434,7 @@ function ShortcutHints() {
|
|
|
18278
18434
|
setProp(_el$10, "wrapMode", "none");
|
|
18279
18435
|
insert(_el$10, () => clipLabel(h.label));
|
|
18280
18436
|
effect((_p$) => {
|
|
18281
|
-
var _v$3 = theme.accent, _v$4 =
|
|
18437
|
+
var _v$3 = theme.accent, _v$4 = TextAttributes10.BOLD, _v$5 = theme.textMuted;
|
|
18282
18438
|
_v$3 !== _p$.e && (_p$.e = setProp(_el$8, "fg", _v$3, _p$.e));
|
|
18283
18439
|
_v$4 !== _p$.t && (_p$.t = setProp(_el$8, "attributes", _v$4, _p$.t));
|
|
18284
18440
|
_v$5 !== _p$.a && (_p$.a = setProp(_el$10, "fg", _v$5, _p$.a));
|
|
@@ -18292,7 +18448,7 @@ function ShortcutHints() {
|
|
|
18292
18448
|
})()
|
|
18293
18449
|
}), null);
|
|
18294
18450
|
effect((_p$) => {
|
|
18295
|
-
var _v$ = theme.textMuted, _v$2 =
|
|
18451
|
+
var _v$ = theme.textMuted, _v$2 = TextAttributes10.DIM;
|
|
18296
18452
|
_v$ !== _p$.e && (_p$.e = setProp(_el$4, "fg", _v$, _p$.e));
|
|
18297
18453
|
_v$2 !== _p$.t && (_p$.t = setProp(_el$4, "attributes", _v$2, _p$.t));
|
|
18298
18454
|
return _p$;
|
|
@@ -18415,6 +18571,7 @@ var init_host = __esm(() => {
|
|
|
18415
18571
|
init_new_task_dialog();
|
|
18416
18572
|
init_rename_task_dialog();
|
|
18417
18573
|
init_settings_dialog();
|
|
18574
|
+
init_version_skew_banner();
|
|
18418
18575
|
init_focus();
|
|
18419
18576
|
init_kv();
|
|
18420
18577
|
init_theme2();
|
|
@@ -18723,7 +18880,7 @@ __export(exports_host4, {
|
|
|
18723
18880
|
startUpdateHost: () => startUpdateHost
|
|
18724
18881
|
});
|
|
18725
18882
|
import { spawn as spawn4, spawnSync as spawnSync8 } from "child_process";
|
|
18726
|
-
import { TextAttributes as
|
|
18883
|
+
import { TextAttributes as TextAttributes11 } from "@opentui/core";
|
|
18727
18884
|
function openExternalUrl(url) {
|
|
18728
18885
|
if (!url)
|
|
18729
18886
|
return false;
|
|
@@ -18951,7 +19108,7 @@ kobe update failed with exit code ${code}.
|
|
|
18951
19108
|
setProp(_el$32, "wrapMode", "word");
|
|
18952
19109
|
insert(_el$32, () => action.detail);
|
|
18953
19110
|
effect((_p$) => {
|
|
18954
|
-
var _v$12 = selected() === action.id ? theme.primary : undefined, _v$13 = selected() === action.id ? theme.selectedListItemText : theme.accent, _v$14 =
|
|
19111
|
+
var _v$12 = selected() === action.id ? theme.primary : undefined, _v$13 = selected() === action.id ? theme.selectedListItemText : theme.accent, _v$14 = TextAttributes11.BOLD, _v$15 = selected() === action.id ? theme.selectedListItemText : theme.text, _v$16 = selected() === action.id ? theme.selectedListItemText : theme.textMuted;
|
|
18955
19112
|
_v$12 !== _p$.e && (_p$.e = setProp(_el$25, "backgroundColor", _v$12, _p$.e));
|
|
18956
19113
|
_v$13 !== _p$.t && (_p$.t = setProp(_el$27, "fg", _v$13, _p$.t));
|
|
18957
19114
|
_v$14 !== _p$.a && (_p$.a = setProp(_el$27, "attributes", _v$14, _p$.a));
|
|
@@ -19029,7 +19186,7 @@ kobe update failed with exit code ${code}.
|
|
|
19029
19186
|
})()
|
|
19030
19187
|
}), null);
|
|
19031
19188
|
effect((_p$) => {
|
|
19032
|
-
var { background: _v$, text: _v$2 } = theme, _v$3 =
|
|
19189
|
+
var { background: _v$, text: _v$2 } = theme, _v$3 = TextAttributes11.BOLD, _v$4 = theme.textMuted, _v$5 = theme.textMuted, _v$6 = theme.text, _v$7 = TextAttributes11.BOLD, _v$8 = theme.textMuted, _v$9 = info()?.hasUpdate ? theme.warning : theme.success, _v$0 = TextAttributes11.BOLD, _v$1 = theme.textMuted, _v$10 = TextAttributes11.DIM, _v$11 = {
|
|
19033
19190
|
trackOptions: {
|
|
19034
19191
|
backgroundColor: theme.background,
|
|
19035
19192
|
foregroundColor: theme.borderActive
|
|
@@ -19601,7 +19758,7 @@ var init_open_external = () => {};
|
|
|
19601
19758
|
|
|
19602
19759
|
// src/tui/panes/filetree/FileTree.tsx
|
|
19603
19760
|
import { watch } from "fs";
|
|
19604
|
-
import { TextAttributes as
|
|
19761
|
+
import { TextAttributes as TextAttributes12 } from "@opentui/core";
|
|
19605
19762
|
function statusToken(s) {
|
|
19606
19763
|
switch (s) {
|
|
19607
19764
|
case "M":
|
|
@@ -20000,7 +20157,7 @@ function FileTree(props) {
|
|
|
20000
20157
|
insertNode(_el$6, createTextNode(`create PR`));
|
|
20001
20158
|
setProp(_el$6, "wrapMode", "none");
|
|
20002
20159
|
effect((_p$) => {
|
|
20003
|
-
var _v$ = theme.accent, _v$2 =
|
|
20160
|
+
var _v$ = theme.accent, _v$2 = TextAttributes12.BOLD, _v$3 = theme.text;
|
|
20004
20161
|
_v$ !== _p$.e && (_p$.e = setProp(_el$4, "fg", _v$, _p$.e));
|
|
20005
20162
|
_v$2 !== _p$.t && (_p$.t = setProp(_el$4, "attributes", _v$2, _p$.t));
|
|
20006
20163
|
_v$3 !== _p$.a && (_p$.a = setProp(_el$6, "fg", _v$3, _p$.a));
|
|
@@ -20030,7 +20187,7 @@ function FileTree(props) {
|
|
|
20030
20187
|
setProp(_el$26, "onMouseUp", () => setTab(t));
|
|
20031
20188
|
insert(_el$26, () => TAB_LABEL[t]);
|
|
20032
20189
|
effect((_p$) => {
|
|
20033
|
-
var _v$6 = isActive() ? theme.primary : theme.textMuted, _v$7 = isActive() ?
|
|
20190
|
+
var _v$6 = isActive() ? theme.primary : theme.textMuted, _v$7 = isActive() ? TextAttributes12.BOLD : undefined;
|
|
20034
20191
|
_v$6 !== _p$.e && (_p$.e = setProp(_el$26, "fg", _v$6, _p$.e));
|
|
20035
20192
|
_v$7 !== _p$.t && (_p$.t = setProp(_el$26, "attributes", _v$7, _p$.t));
|
|
20036
20193
|
return _p$;
|
|
@@ -20051,7 +20208,7 @@ function FileTree(props) {
|
|
|
20051
20208
|
setProp(_el$27, "wrapMode", "none");
|
|
20052
20209
|
insert(_el$27, () => badge().text);
|
|
20053
20210
|
effect((_p$) => {
|
|
20054
|
-
var _v$8 = badge().active ? theme.accent : theme.textMuted, _v$9 = badge().active ?
|
|
20211
|
+
var _v$8 = badge().active ? theme.accent : theme.textMuted, _v$9 = badge().active ? TextAttributes12.BOLD : undefined;
|
|
20055
20212
|
_v$8 !== _p$.e && (_p$.e = setProp(_el$27, "fg", _v$8, _p$.e));
|
|
20056
20213
|
_v$9 !== _p$.t && (_p$.t = setProp(_el$27, "attributes", _v$9, _p$.t));
|
|
20057
20214
|
return _p$;
|
|
@@ -20205,7 +20362,7 @@ function FileTree(props) {
|
|
|
20205
20362
|
setProp(_el$31, "wrapMode", "none");
|
|
20206
20363
|
insert(_el$31, () => `${indent}${marker} ${row.name}/`);
|
|
20207
20364
|
effect((_p$) => {
|
|
20208
|
-
var _v$0 = rowBg(), _v$1 = theme.textMuted, _v$10 =
|
|
20365
|
+
var _v$0 = rowBg(), _v$1 = theme.textMuted, _v$10 = TextAttributes12.BOLD;
|
|
20209
20366
|
_v$0 !== _p$.e && (_p$.e = setProp(_el$29, "backgroundColor", _v$0, _p$.e));
|
|
20210
20367
|
_v$1 !== _p$.t && (_p$.t = setProp(_el$31, "fg", _v$1, _p$.t));
|
|
20211
20368
|
_v$10 !== _p$.a && (_p$.a = setProp(_el$31, "attributes", _v$10, _p$.a));
|
|
@@ -21003,6 +21160,7 @@ async function ensureRepos(orchestrator) {
|
|
|
21003
21160
|
}
|
|
21004
21161
|
async function startDirectTmux() {
|
|
21005
21162
|
setClientLogContext("gui");
|
|
21163
|
+
Promise.resolve().then(() => (init_hook_cmd(), exports_hook_cmd)).then((m) => m.ensureDefaultWorktreeSync());
|
|
21006
21164
|
if (!await tmuxAvailable()) {
|
|
21007
21165
|
console.error("kobe: tmux not found on PATH \u2014 install tmux to use kobe 0.6 direct mode");
|
|
21008
21166
|
process.exitCode = 1;
|
|
@@ -21085,7 +21243,7 @@ var init_direct = __esm(() => {
|
|
|
21085
21243
|
});
|
|
21086
21244
|
|
|
21087
21245
|
// src/tui/component/help-dialog.tsx
|
|
21088
|
-
import { TextAttributes as
|
|
21246
|
+
import { TextAttributes as TextAttributes13 } from "@opentui/core";
|
|
21089
21247
|
function groupBindings(keymap) {
|
|
21090
21248
|
const groups = new Map;
|
|
21091
21249
|
const order = [];
|
|
@@ -21189,7 +21347,7 @@ function HelpDialog() {
|
|
|
21189
21347
|
}
|
|
21190
21348
|
}), null);
|
|
21191
21349
|
effect((_p$) => {
|
|
21192
|
-
var _v$5 = theme.accent, _v$6 =
|
|
21350
|
+
var _v$5 = theme.accent, _v$6 = TextAttributes13.BOLD;
|
|
21193
21351
|
_v$5 !== _p$.e && (_p$.e = setProp(_el$0, "fg", _v$5, _p$.e));
|
|
21194
21352
|
_v$6 !== _p$.t && (_p$.t = setProp(_el$0, "attributes", _v$6, _p$.t));
|
|
21195
21353
|
return _p$;
|
|
@@ -21201,7 +21359,7 @@ function HelpDialog() {
|
|
|
21201
21359
|
})()
|
|
21202
21360
|
}));
|
|
21203
21361
|
effect((_p$) => {
|
|
21204
|
-
var _v$ =
|
|
21362
|
+
var _v$ = TextAttributes13.BOLD, _v$2 = theme.text, _v$3 = theme.textMuted, _v$4 = {
|
|
21205
21363
|
trackOptions: {
|
|
21206
21364
|
backgroundColor: theme.backgroundDialog,
|
|
21207
21365
|
foregroundColor: theme.borderActive
|
|
@@ -21241,7 +21399,7 @@ var init_help_dialog = __esm(() => {
|
|
|
21241
21399
|
});
|
|
21242
21400
|
|
|
21243
21401
|
// src/tui/component/pane-header.tsx
|
|
21244
|
-
import { TextAttributes as
|
|
21402
|
+
import { TextAttributes as TextAttributes14 } from "@opentui/core";
|
|
21245
21403
|
function PaneHeader(props) {
|
|
21246
21404
|
const {
|
|
21247
21405
|
theme
|
|
@@ -21271,7 +21429,7 @@ function PaneHeader(props) {
|
|
|
21271
21429
|
setProp(_el$3, "wrapMode", "none");
|
|
21272
21430
|
insert(_el$3, () => props.ordinal);
|
|
21273
21431
|
effect((_p$) => {
|
|
21274
|
-
var _v$ = titleColor(), _v$2 =
|
|
21432
|
+
var _v$ = titleColor(), _v$2 = TextAttributes14.BOLD;
|
|
21275
21433
|
_v$ !== _p$.e && (_p$.e = setProp(_el$3, "fg", _v$, _p$.e));
|
|
21276
21434
|
_v$2 !== _p$.t && (_p$.t = setProp(_el$3, "attributes", _v$2, _p$.t));
|
|
21277
21435
|
return _p$;
|
|
@@ -21322,7 +21480,7 @@ function PaneHeader(props) {
|
|
|
21322
21480
|
}
|
|
21323
21481
|
}), null);
|
|
21324
21482
|
effect((_p$) => {
|
|
21325
|
-
var _v$3 = titleColor(), _v$4 =
|
|
21483
|
+
var _v$3 = titleColor(), _v$4 = TextAttributes14.BOLD;
|
|
21326
21484
|
_v$3 !== _p$.e && (_p$.e = setProp(_el$4, "fg", _v$3, _p$.e));
|
|
21327
21485
|
_v$4 !== _p$.t && (_p$.t = setProp(_el$4, "attributes", _v$4, _p$.t));
|
|
21328
21486
|
return _p$;
|
|
@@ -21447,7 +21605,7 @@ var init_resizable_edge = __esm(() => {
|
|
|
21447
21605
|
});
|
|
21448
21606
|
|
|
21449
21607
|
// src/tui/component/status-bar.tsx
|
|
21450
|
-
import { TextAttributes as
|
|
21608
|
+
import { TextAttributes as TextAttributes15 } from "@opentui/core";
|
|
21451
21609
|
function Hotkey(props) {
|
|
21452
21610
|
const {
|
|
21453
21611
|
theme
|
|
@@ -21466,7 +21624,7 @@ function Hotkey(props) {
|
|
|
21466
21624
|
setProp(_el$5, "wrapMode", "none");
|
|
21467
21625
|
insert(_el$5, () => props.label);
|
|
21468
21626
|
effect((_p$) => {
|
|
21469
|
-
var _v$ = theme.accent, _v$2 =
|
|
21627
|
+
var _v$ = theme.accent, _v$2 = TextAttributes15.BOLD, _v$3 = theme.textMuted;
|
|
21470
21628
|
_v$ !== _p$.e && (_p$.e = setProp(_el$2, "fg", _v$, _p$.e));
|
|
21471
21629
|
_v$2 !== _p$.t && (_p$.t = setProp(_el$2, "attributes", _v$2, _p$.t));
|
|
21472
21630
|
_v$3 !== _p$.a && (_p$.a = setProp(_el$5, "fg", _v$3, _p$.a));
|
|
@@ -21554,7 +21712,7 @@ function StatusBar() {
|
|
|
21554
21712
|
insertNode(_el$0, createTextNode(`Press Ctrl+C again to exit`));
|
|
21555
21713
|
setProp(_el$0, "wrapMode", "none");
|
|
21556
21714
|
effect((_p$) => {
|
|
21557
|
-
var _v$4 = theme.warning, _v$5 =
|
|
21715
|
+
var _v$4 = theme.warning, _v$5 = TextAttributes15.BOLD;
|
|
21558
21716
|
_v$4 !== _p$.e && (_p$.e = setProp(_el$0, "fg", _v$4, _p$.e));
|
|
21559
21717
|
_v$5 !== _p$.t && (_p$.t = setProp(_el$0, "attributes", _v$5, _p$.t));
|
|
21560
21718
|
return _p$;
|
|
@@ -21566,7 +21724,7 @@ function StatusBar() {
|
|
|
21566
21724
|
}
|
|
21567
21725
|
}), null);
|
|
21568
21726
|
effect((_p$) => {
|
|
21569
|
-
var _v$6 = theme.primary, _v$7 =
|
|
21727
|
+
var _v$6 = theme.primary, _v$7 = TextAttributes15.BOLD;
|
|
21570
21728
|
_v$6 !== _p$.e && (_p$.e = setProp(_el$8, "fg", _v$6, _p$.e));
|
|
21571
21729
|
_v$7 !== _p$.t && (_p$.t = setProp(_el$8, "attributes", _v$7, _p$.t));
|
|
21572
21730
|
return _p$;
|
|
@@ -21755,7 +21913,7 @@ var init_notifications = __esm(() => {
|
|
|
21755
21913
|
});
|
|
21756
21914
|
|
|
21757
21915
|
// src/tui/component/toast-overlay.tsx
|
|
21758
|
-
import { TextAttributes as
|
|
21916
|
+
import { TextAttributes as TextAttributes16 } from "@opentui/core";
|
|
21759
21917
|
function ToastOverlay() {
|
|
21760
21918
|
const {
|
|
21761
21919
|
theme
|
|
@@ -21798,7 +21956,7 @@ function ToastOverlay() {
|
|
|
21798
21956
|
setProp(_el$4, "wrapMode", "none");
|
|
21799
21957
|
insert(_el$4, () => toast.title);
|
|
21800
21958
|
effect((_p$) => {
|
|
21801
|
-
var _v$3 = bg(), _v$4 = fg(), _v$5 =
|
|
21959
|
+
var _v$3 = bg(), _v$4 = fg(), _v$5 = TextAttributes16.BOLD, _v$6 = fg();
|
|
21802
21960
|
_v$3 !== _p$.e && (_p$.e = setProp(_el$2, "backgroundColor", _v$3, _p$.e));
|
|
21803
21961
|
_v$4 !== _p$.t && (_p$.t = setProp(_el$3, "fg", _v$4, _p$.t));
|
|
21804
21962
|
_v$5 !== _p$.a && (_p$.a = setProp(_el$3, "attributes", _v$5, _p$.a));
|
|
@@ -21858,7 +22016,7 @@ function repoBasename2(repo) {
|
|
|
21858
22016
|
|
|
21859
22017
|
// src/tui/component/top-bar.tsx
|
|
21860
22018
|
import { spawnSync as spawnSync10 } from "child_process";
|
|
21861
|
-
import { TextAttributes as
|
|
22019
|
+
import { TextAttributes as TextAttributes17 } from "@opentui/core";
|
|
21862
22020
|
function TopBar(props) {
|
|
21863
22021
|
const {
|
|
21864
22022
|
theme
|
|
@@ -21933,7 +22091,7 @@ function TopBar(props) {
|
|
|
21933
22091
|
insertNode(_el$7, createTextNode(`[Update]`));
|
|
21934
22092
|
setProp(_el$7, "onMouseUp", () => void confirmUpdate());
|
|
21935
22093
|
effect((_p$) => {
|
|
21936
|
-
var _v$ = theme.warning, _v$2 =
|
|
22094
|
+
var _v$ = theme.warning, _v$2 = TextAttributes17.BOLD;
|
|
21937
22095
|
_v$ !== _p$.e && (_p$.e = setProp(_el$7, "fg", _v$, _p$.e));
|
|
21938
22096
|
_v$2 !== _p$.t && (_p$.t = setProp(_el$7, "attributes", _v$2, _p$.t));
|
|
21939
22097
|
return _p$;
|
|
@@ -21969,7 +22127,7 @@ function TopBar(props) {
|
|
|
21969
22127
|
insertNode(_el$12, createTextNode(`daemon disconnected`));
|
|
21970
22128
|
setProp(_el$12, "wrapMode", "none");
|
|
21971
22129
|
effect((_p$) => {
|
|
21972
|
-
var _v$6 = theme.error, _v$7 =
|
|
22130
|
+
var _v$6 = theme.error, _v$7 = TextAttributes17.BOLD;
|
|
21973
22131
|
_v$6 !== _p$.e && (_p$.e = setProp(_el$12, "fg", _v$6, _p$.e));
|
|
21974
22132
|
_v$7 !== _p$.t && (_p$.t = setProp(_el$12, "attributes", _v$7, _p$.t));
|
|
21975
22133
|
return _p$;
|
|
@@ -21999,7 +22157,7 @@ function TopBar(props) {
|
|
|
21999
22157
|
setProp(_el$15, "wrapMode", "none");
|
|
22000
22158
|
insert(_el$15, () => label().repoName);
|
|
22001
22159
|
effect((_p$) => {
|
|
22002
|
-
var _v$8 = label().branch ? theme.textMuted : theme.text, _v$9 = label().branch ? undefined :
|
|
22160
|
+
var _v$8 = label().branch ? theme.textMuted : theme.text, _v$9 = label().branch ? undefined : TextAttributes17.BOLD;
|
|
22003
22161
|
_v$8 !== _p$.e && (_p$.e = setProp(_el$15, "fg", _v$8, _p$.e));
|
|
22004
22162
|
_v$9 !== _p$.t && (_p$.t = setProp(_el$15, "attributes", _v$9, _p$.t));
|
|
22005
22163
|
return _p$;
|
|
@@ -22031,7 +22189,7 @@ function TopBar(props) {
|
|
|
22031
22189
|
setProp(_el$18, "wrapMode", "none");
|
|
22032
22190
|
insert(_el$18, () => label().branch);
|
|
22033
22191
|
effect((_p$) => {
|
|
22034
|
-
var _v$0 = theme.text, _v$1 =
|
|
22192
|
+
var _v$0 = theme.text, _v$1 = TextAttributes17.BOLD;
|
|
22035
22193
|
_v$0 !== _p$.e && (_p$.e = setProp(_el$18, "fg", _v$0, _p$.e));
|
|
22036
22194
|
_v$1 !== _p$.t && (_p$.t = setProp(_el$18, "attributes", _v$1, _p$.t));
|
|
22037
22195
|
return _p$;
|
|
@@ -22054,7 +22212,7 @@ function TopBar(props) {
|
|
|
22054
22212
|
setProp(_el$11, "gap", 2);
|
|
22055
22213
|
setProp(_el$11, "justifyContent", "flex-end");
|
|
22056
22214
|
effect((_p$) => {
|
|
22057
|
-
var _v$3 = theme.primary, _v$4 =
|
|
22215
|
+
var _v$3 = theme.primary, _v$4 = TextAttributes17.BOLD, _v$5 = theme.textMuted;
|
|
22058
22216
|
_v$3 !== _p$.e && (_p$.e = setProp(_el$3, "fg", _v$3, _p$.e));
|
|
22059
22217
|
_v$4 !== _p$.t && (_p$.t = setProp(_el$3, "attributes", _v$4, _p$.t));
|
|
22060
22218
|
_v$5 !== _p$.a && (_p$.a = setProp(_el$5, "fg", _v$5, _p$.a));
|
package/package.json
CHANGED