@cortexkit/aft-opencode 0.57.2 → 0.58.1
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/bash-wait-detach.d.ts +14 -5
- package/dist/bash-wait-detach.d.ts.map +1 -1
- package/dist/bridge-bootstrap.d.ts +199 -0
- package/dist/bridge-bootstrap.d.ts.map +1 -0
- package/dist/config-error-surface.d.ts +23 -0
- package/dist/config-error-surface.d.ts.map +1 -0
- package/dist/config-live-reload.d.ts +315 -0
- package/dist/config-live-reload.d.ts.map +1 -0
- package/dist/config.d.ts +112 -54
- package/dist/config.d.ts.map +1 -1
- package/dist/entry/server.js +10449 -7872
- package/dist/hooks/auto-update-checker/checker.d.ts +1 -0
- package/dist/hooks/auto-update-checker/checker.d.ts.map +1 -1
- package/dist/hooks/auto-update-checker/index.d.ts +6 -0
- package/dist/hooks/auto-update-checker/index.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10315 -7815
- package/dist/logger.d.ts.map +1 -1
- package/dist/lsp-auto-install.d.ts.map +1 -1
- package/dist/lsp-npm-table.d.ts +1 -1
- package/dist/lsp-npm-table.d.ts.map +1 -1
- package/dist/rpc/register.d.ts +7 -1
- package/dist/rpc/register.d.ts.map +1 -1
- package/dist/shared/read-vision.d.ts +10 -0
- package/dist/shared/read-vision.d.ts.map +1 -0
- package/dist/shared/status.d.ts +45 -0
- package/dist/shared/status.d.ts.map +1 -1
- package/dist/shared/subagent-detect.d.ts.map +1 -1
- package/dist/shutdown-hooks.d.ts +3 -9
- package/dist/shutdown-hooks.d.ts.map +1 -1
- package/dist/subc-tool-schemas.d.ts +9 -1
- package/dist/subc-tool-schemas.d.ts.map +1 -1
- package/dist/tool-perf.d.ts +1 -0
- package/dist/tool-perf.d.ts.map +1 -1
- package/dist/tool-registration.d.ts +19 -12
- package/dist/tool-registration.d.ts.map +1 -1
- package/dist/tools/ast.d.ts.map +1 -1
- package/dist/tools/bash.d.ts +1 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash_watch.d.ts +3 -0
- package/dist/tools/bash_watch.d.ts.map +1 -1
- package/dist/tools/definitions/v2.d.ts.map +1 -1
- package/dist/tools/hoisted.d.ts +9 -12
- package/dist/tools/hoisted.d.ts.map +1 -1
- package/dist/tools/inspect.d.ts +5 -7
- package/dist/tools/inspect.d.ts.map +1 -1
- package/dist/tools/permissions.d.ts.map +1 -1
- package/dist/tools/reading.d.ts.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tui/v2-status.d.ts +1 -1
- package/dist/tui/v2-status.d.ts.map +1 -1
- package/dist/workflow-hints.d.ts +1 -7
- package/dist/workflow-hints.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/entry/server-runtime.mjs +133 -34
- package/src/logger.ts +5 -6
- package/src/shared/read-vision.ts +100 -0
- package/src/shared/status.ts +83 -4
- package/src/shared/subagent-detect.ts +56 -1
- package/src/tui/index.tsx +4 -10
- package/src/tui/sidebar-view.tsx +36 -15
- package/src/tui/v2-status.ts +25 -4
- package/src/tui-compiled/index.tsx +3 -3
- package/src/tui-compiled/sidebar-view.tsx +168 -126
- package/src/tui-compiled/v2-status.ts +25 -4
package/src/tui/sidebar-view.tsx
CHANGED
|
@@ -14,8 +14,10 @@
|
|
|
14
14
|
import { createMemo, createSignal, onCleanup } from "solid-js";
|
|
15
15
|
import {
|
|
16
16
|
type AftStatusSnapshot,
|
|
17
|
-
|
|
17
|
+
degradedHeaderMarker,
|
|
18
|
+
formatSemanticIndexLabel,
|
|
18
19
|
formatSemanticRefreshing,
|
|
20
|
+
NOT_STARTED_STATUS_TEXT,
|
|
19
21
|
type StatusBar,
|
|
20
22
|
type StatusCompression,
|
|
21
23
|
semanticIndexStatusKind,
|
|
@@ -215,10 +217,16 @@ const StatRow = (props: {
|
|
|
215
217
|
}
|
|
216
218
|
});
|
|
217
219
|
|
|
220
|
+
// The label never shrinks and the value wraps in the space left beside it:
|
|
221
|
+
// left to flexbox, a long value (a semantic index that is unavailable, with
|
|
222
|
+
// its reason) squeezed the label and drew over it, so "Status" came out as
|
|
223
|
+
// "Statu" followed by the value.
|
|
218
224
|
return (
|
|
219
225
|
<box width="100%" flexDirection="row" justifyContent="space-between">
|
|
220
|
-
<text fg={props.palette.textMuted}
|
|
221
|
-
|
|
226
|
+
<text fg={props.palette.textMuted} flexShrink={0}>
|
|
227
|
+
{props.label}
|
|
228
|
+
</text>
|
|
229
|
+
<text fg={fg()} flexShrink={1} marginLeft={1} wrapMode="word">
|
|
222
230
|
<b>{props.value}</b>
|
|
223
231
|
</text>
|
|
224
232
|
</box>
|
|
@@ -397,12 +405,15 @@ export const AftSidebarPanel = (props: AftSidebarPanelProps) => {
|
|
|
397
405
|
return {
|
|
398
406
|
...display,
|
|
399
407
|
// The error is passed through so a capability failure (a missing ONNX
|
|
400
|
-
// Runtime) is named here instead of arriving as a bare status word
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
s()?.semantic_index?.
|
|
405
|
-
|
|
408
|
+
// Runtime) is named here instead of arriving as a bare status word, and
|
|
409
|
+
// an unreachable backend carries its URL and reason.
|
|
410
|
+
label: formatSemanticIndexLabel({
|
|
411
|
+
status: rawStatus,
|
|
412
|
+
stage: s()?.semantic_index?.stage,
|
|
413
|
+
error: s()?.semantic_index?.error,
|
|
414
|
+
reason: s()?.semantic_index?.reason,
|
|
415
|
+
backend_url: s()?.semantic_index?.backend_url,
|
|
416
|
+
}),
|
|
406
417
|
};
|
|
407
418
|
};
|
|
408
419
|
const semanticRefreshing = () =>
|
|
@@ -459,7 +470,14 @@ export const AftSidebarPanel = (props: AftSidebarPanelProps) => {
|
|
|
459
470
|
</b>
|
|
460
471
|
</text>
|
|
461
472
|
</box>
|
|
462
|
-
{s()?.degraded && (
|
|
473
|
+
{s()?.degraded && degradedHeaderMarker(s()?.degraded_reasons ?? []).calm && (
|
|
474
|
+
<box marginLeft={1}>
|
|
475
|
+
<text fg={props.palette.warning}>
|
|
476
|
+
{degradedHeaderMarker(s()?.degraded_reasons ?? []).text}
|
|
477
|
+
</text>
|
|
478
|
+
</box>
|
|
479
|
+
)}
|
|
480
|
+
{s()?.degraded && !degradedHeaderMarker(s()?.degraded_reasons ?? []).calm && (
|
|
463
481
|
<box
|
|
464
482
|
paddingLeft={1}
|
|
465
483
|
paddingRight={1}
|
|
@@ -467,7 +485,7 @@ export const AftSidebarPanel = (props: AftSidebarPanelProps) => {
|
|
|
467
485
|
backgroundColor={props.palette.warning}
|
|
468
486
|
>
|
|
469
487
|
<text fg={badgeForeground(props.palette.warning, props.palette.background)}>
|
|
470
|
-
<b>
|
|
488
|
+
<b>{degradedHeaderMarker(s()?.degraded_reasons ?? []).text}</b>
|
|
471
489
|
</text>
|
|
472
490
|
</box>
|
|
473
491
|
)}
|
|
@@ -501,10 +519,13 @@ export const AftSidebarPanel = (props: AftSidebarPanelProps) => {
|
|
|
501
519
|
rows so users understand why metrics are blank. */}
|
|
502
520
|
{notInitialized() && (
|
|
503
521
|
<box marginTop={1} width="100%">
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
522
|
+
{s()!.config_error ? (
|
|
523
|
+
// Config error state: no bridge will ever start in this process,
|
|
524
|
+
// so the placeholder text would mislead; show the error instead.
|
|
525
|
+
<text fg={props.palette.error}>✖ {s()!.message}</text>
|
|
526
|
+
) : (
|
|
527
|
+
<text fg={props.palette.textMuted}>{s()!.message || NOT_STARTED_STATUS_TEXT}</text>
|
|
528
|
+
)}
|
|
508
529
|
</box>
|
|
509
530
|
)}
|
|
510
531
|
|
package/src/tui/v2-status.ts
CHANGED
|
@@ -1,9 +1,25 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AftStatusSnapshot, degradedHeaderMarker, type StatusBar } from "../shared/status";
|
|
2
2
|
|
|
3
3
|
function count(value: number | undefined): string {
|
|
4
4
|
return value === undefined ? "?" : String(value);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* The errors/warnings part of the footer. With no language server running the
|
|
9
|
+
* counts will never arrive, so the footer says that instead of showing `E? W?`
|
|
10
|
+
* indefinitely.
|
|
11
|
+
*/
|
|
12
|
+
function diagnosticsPart(bar: StatusBar): string {
|
|
13
|
+
if (
|
|
14
|
+
bar.errors === undefined &&
|
|
15
|
+
bar.warnings === undefined &&
|
|
16
|
+
bar.diagnostics === "no_language_server"
|
|
17
|
+
) {
|
|
18
|
+
return "no LSP";
|
|
19
|
+
}
|
|
20
|
+
return `E${count(bar.errors)} W${count(bar.warnings)}`;
|
|
21
|
+
}
|
|
22
|
+
|
|
7
23
|
/**
|
|
8
24
|
* The V2 footer segment. "AFT starting…" is only true before the bridge has
|
|
9
25
|
* delivered a real snapshot. After that the footer shows every health category
|
|
@@ -12,11 +28,14 @@ function count(value: number | undefined): string {
|
|
|
12
28
|
* can leave the complete `status_bar` missing for the whole session.
|
|
13
29
|
*/
|
|
14
30
|
export function formatAftStatusSegment(status: AftStatusSnapshot | null): string {
|
|
31
|
+
// The config error state never produces a real snapshot; say so instead of
|
|
32
|
+
// "starting", which would suggest the bridge is on its way.
|
|
33
|
+
if (status?.config_error) return "AFT config error";
|
|
15
34
|
if (!status || status.cache_role === "not_initialized") return "AFT starting…";
|
|
16
35
|
const bar: StatusBar = status.status_bar ?? status.status_bar_values ?? {};
|
|
17
36
|
const stale = bar.tier2_stale ? "~" : "";
|
|
18
37
|
return (
|
|
19
|
-
`AFT
|
|
38
|
+
`AFT ${diagnosticsPart(bar)} | ` +
|
|
20
39
|
`${stale}D${count(bar.dead_code)} U${count(bar.unused_exports)} ` +
|
|
21
40
|
`C${count(bar.duplicates)} | T${count(bar.todos)}`
|
|
22
41
|
);
|
|
@@ -33,7 +52,7 @@ function healthSummary(bar: StatusBar | undefined): string {
|
|
|
33
52
|
if (!bar) return "health pending";
|
|
34
53
|
const stale = bar.tier2_stale ? "~" : "";
|
|
35
54
|
return (
|
|
36
|
-
|
|
55
|
+
`${diagnosticsPart(bar)} ` +
|
|
37
56
|
`${stale}D${count(bar.dead_code)} U${count(bar.unused_exports)} ` +
|
|
38
57
|
`C${count(bar.duplicates)} T${count(bar.todos)}`
|
|
39
58
|
);
|
|
@@ -61,7 +80,9 @@ export function summarizeAftSidebar(status: AftStatusSnapshot | null): AftSideba
|
|
|
61
80
|
? `${status.semantic_index.status} (${status.semantic_index.stage})`
|
|
62
81
|
: status.semantic_index.status;
|
|
63
82
|
return {
|
|
64
|
-
title: status.degraded
|
|
83
|
+
title: status.degraded
|
|
84
|
+
? `AFT · ${degradedHeaderMarker(status.degraded_reasons ?? []).text}`
|
|
85
|
+
: "AFT",
|
|
65
86
|
version: status.version || undefined,
|
|
66
87
|
search: status.search_index.status,
|
|
67
88
|
semantic,
|
|
@@ -12,7 +12,7 @@ import { createElement as _$createElement } from "opentui:runtime-module:%40open
|
|
|
12
12
|
import { createMemo, createSignal, onCleanup } from "opentui:runtime-module:solid-js";
|
|
13
13
|
import { version as packageVersion } from "../../package.json";
|
|
14
14
|
import { AftRpcClient } from "../shared/rpc-client";
|
|
15
|
-
import { coerceAftStatus, formatBytes, formatCacheRoleLabel,
|
|
15
|
+
import { coerceAftStatus, formatBytes, formatCacheRoleLabel, formatSemanticIndexLabel, formatSemanticRefreshing, NOT_STARTED_STATUS_TEXT } from "../shared/status";
|
|
16
16
|
import { createDebouncedStatusRefresh, refreshAftTuiSocketScope, startAftTuiSocket, stopAftTuiSocket, subscribeStatusInvalidations } from "./notification-socket";
|
|
17
17
|
import { createAftSidebarSlot, formatCompressionSidebarRows, isSnapshotForContext, resolveTuiStorageDir, shouldSuppressUninitializedDowngrade } from "./sidebar";
|
|
18
18
|
import { setupV2Tui } from "./v2";
|
|
@@ -253,7 +253,7 @@ const StatusDialog = props => {
|
|
|
253
253
|
_$setProp(_el$14, "width", "100%");
|
|
254
254
|
_$setProp(_el$14, "marginTop", 1);
|
|
255
255
|
_$setProp(_el$14, "justifyContent", "center");
|
|
256
|
-
_$insert(_el$15, () => status().message ||
|
|
256
|
+
_$insert(_el$15, () => status().message || NOT_STARTED_STATUS_TEXT);
|
|
257
257
|
_$effect(_$p => _$setProp(_el$15, "fg", t().textMuted, _$p));
|
|
258
258
|
return _el$14;
|
|
259
259
|
})() : null;
|
|
@@ -467,7 +467,7 @@ const StatusDialog = props => {
|
|
|
467
467
|
},
|
|
468
468
|
label: "Status",
|
|
469
469
|
get value() {
|
|
470
|
-
return
|
|
470
|
+
return formatSemanticIndexLabel(status().semantic_index);
|
|
471
471
|
},
|
|
472
472
|
get tone() {
|
|
473
473
|
return statusTone(status().semantic_index.status);
|
|
@@ -20,7 +20,7 @@ import { createElement as _$createElement } from "opentui:runtime-module:%40open
|
|
|
20
20
|
// smaller, differently-worded panel, which is exactly what happened before.
|
|
21
21
|
|
|
22
22
|
import { createMemo, createSignal, onCleanup } from "opentui:runtime-module:solid-js";
|
|
23
|
-
import {
|
|
23
|
+
import { degradedHeaderMarker, formatSemanticIndexLabel, formatSemanticRefreshing, NOT_STARTED_STATUS_TEXT, semanticIndexStatusKind, worktreeCacheRoleNote } from "../shared/status";
|
|
24
24
|
import { badgeTextColor } from "./badge-contrast";
|
|
25
25
|
import { DEFAULT_PREFS, persistCollapsedIfEnabled, readTuiPreferencesFile, resolveAftPrefs, seedCollapsedFromPrefs, watchTuiPreferences } from "./preferences";
|
|
26
26
|
const SINGLE_BORDER = {
|
|
@@ -197,6 +197,11 @@ const StatRow = props => {
|
|
|
197
197
|
return props.palette.text;
|
|
198
198
|
}
|
|
199
199
|
});
|
|
200
|
+
|
|
201
|
+
// The label never shrinks and the value wraps in the space left beside it:
|
|
202
|
+
// left to flexbox, a long value (a semantic index that is unavailable, with
|
|
203
|
+
// its reason) squeezed the label and drew over it, so "Status" came out as
|
|
204
|
+
// "Statu" followed by the value.
|
|
200
205
|
return (() => {
|
|
201
206
|
var _el$ = _$createElement("box"),
|
|
202
207
|
_el$2 = _$createElement("text"),
|
|
@@ -207,8 +212,12 @@ const StatRow = props => {
|
|
|
207
212
|
_$setProp(_el$, "width", "100%");
|
|
208
213
|
_$setProp(_el$, "flexDirection", "row");
|
|
209
214
|
_$setProp(_el$, "justifyContent", "space-between");
|
|
215
|
+
_$setProp(_el$2, "flexShrink", 0);
|
|
210
216
|
_$insert(_el$2, () => props.label);
|
|
211
217
|
_$insertNode(_el$3, _el$4);
|
|
218
|
+
_$setProp(_el$3, "flexShrink", 1);
|
|
219
|
+
_$setProp(_el$3, "marginLeft", 1);
|
|
220
|
+
_$setProp(_el$3, "wrapMode", "word");
|
|
212
221
|
_$insert(_el$4, () => props.value);
|
|
213
222
|
_$effect(_p$ => {
|
|
214
223
|
var _v$ = props.palette.textMuted,
|
|
@@ -383,8 +392,15 @@ export const AftSidebarPanel = props => {
|
|
|
383
392
|
return {
|
|
384
393
|
...display,
|
|
385
394
|
// The error is passed through so a capability failure (a missing ONNX
|
|
386
|
-
// Runtime) is named here instead of arriving as a bare status word
|
|
387
|
-
|
|
395
|
+
// Runtime) is named here instead of arriving as a bare status word, and
|
|
396
|
+
// an unreachable backend carries its URL and reason.
|
|
397
|
+
label: formatSemanticIndexLabel({
|
|
398
|
+
status: rawStatus,
|
|
399
|
+
stage: s()?.semantic_index?.stage,
|
|
400
|
+
error: s()?.semantic_index?.error,
|
|
401
|
+
reason: s()?.semantic_index?.reason,
|
|
402
|
+
backend_url: s()?.semantic_index?.backend_url
|
|
403
|
+
})
|
|
388
404
|
};
|
|
389
405
|
};
|
|
390
406
|
const semanticRefreshing = () => formatSemanticRefreshing(s()?.semantic_index?.refreshing_count ?? 0);
|
|
@@ -439,178 +455,204 @@ export const AftSidebarPanel = props => {
|
|
|
439
455
|
})(), null);
|
|
440
456
|
_$insert(_el$13, () => props.prefs.header.label, null);
|
|
441
457
|
_$insert(_el$10, (() => {
|
|
442
|
-
var _c$2 = _$memo(() => !!s()?.degraded);
|
|
458
|
+
var _c$2 = _$memo(() => !!(s()?.degraded && degradedHeaderMarker(s()?.degraded_reasons ?? []).calm));
|
|
443
459
|
return () => _c$2() && (() => {
|
|
444
460
|
var _el$14 = _$createElement("box"),
|
|
445
|
-
_el$15 = _$createElement("text")
|
|
446
|
-
_el$16 = _$createElement("b");
|
|
461
|
+
_el$15 = _$createElement("text");
|
|
447
462
|
_$insertNode(_el$14, _el$15);
|
|
448
|
-
_$setProp(_el$14, "paddingLeft", 1);
|
|
449
|
-
_$setProp(_el$14, "paddingRight", 1);
|
|
450
463
|
_$setProp(_el$14, "marginLeft", 1);
|
|
451
|
-
_$
|
|
452
|
-
_$
|
|
464
|
+
_$insert(_el$15, () => degradedHeaderMarker(s()?.degraded_reasons ?? []).text);
|
|
465
|
+
_$effect(_$p => _$setProp(_el$15, "fg", props.palette.warning, _$p));
|
|
466
|
+
return _el$14;
|
|
467
|
+
})();
|
|
468
|
+
})(), null);
|
|
469
|
+
_$insert(_el$10, (() => {
|
|
470
|
+
var _c$3 = _$memo(() => !!(s()?.degraded && !degradedHeaderMarker(s()?.degraded_reasons ?? []).calm));
|
|
471
|
+
return () => _c$3() && (() => {
|
|
472
|
+
var _el$16 = _$createElement("box"),
|
|
473
|
+
_el$17 = _$createElement("text"),
|
|
474
|
+
_el$18 = _$createElement("b");
|
|
475
|
+
_$insertNode(_el$16, _el$17);
|
|
476
|
+
_$setProp(_el$16, "paddingLeft", 1);
|
|
477
|
+
_$setProp(_el$16, "paddingRight", 1);
|
|
478
|
+
_$setProp(_el$16, "marginLeft", 1);
|
|
479
|
+
_$insertNode(_el$17, _el$18);
|
|
480
|
+
_$insert(_el$18, () => degradedHeaderMarker(s()?.degraded_reasons ?? []).text);
|
|
453
481
|
_$effect(_p$ => {
|
|
454
482
|
var _v$8 = props.palette.warning,
|
|
455
483
|
_v$9 = badgeForeground(props.palette.warning, props.palette.background);
|
|
456
|
-
_v$8 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
457
|
-
_v$9 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
484
|
+
_v$8 !== _p$.e && (_p$.e = _$setProp(_el$16, "backgroundColor", _v$8, _p$.e));
|
|
485
|
+
_v$9 !== _p$.t && (_p$.t = _$setProp(_el$17, "fg", _v$9, _p$.t));
|
|
458
486
|
return _p$;
|
|
459
487
|
}, {
|
|
460
488
|
e: undefined,
|
|
461
489
|
t: undefined
|
|
462
490
|
});
|
|
463
|
-
return _el$
|
|
491
|
+
return _el$16;
|
|
464
492
|
})();
|
|
465
493
|
})(), null);
|
|
466
494
|
_$insert(_el$1, (() => {
|
|
467
|
-
var _c$
|
|
468
|
-
return () => _c$3() && (() => {
|
|
469
|
-
var _el$18 = _$createElement("text"),
|
|
470
|
-
_el$19 = _$createTextNode(`v`);
|
|
471
|
-
_$insertNode(_el$18, _el$19);
|
|
472
|
-
_$insert(_el$18, () => s()?.version ?? props.pluginVersion, null);
|
|
473
|
-
_$effect(_$p => _$setProp(_el$18, "fg", props.palette.textMuted, _$p));
|
|
474
|
-
return _el$18;
|
|
475
|
-
})();
|
|
476
|
-
})(), null);
|
|
477
|
-
_$insert(_el$0, (() => {
|
|
478
|
-
var _c$4 = _$memo(() => !!(s()?.degraded && degradedSummary()));
|
|
495
|
+
var _c$4 = _$memo(() => !!(!notInitialized() && props.prefs.header.showVersion));
|
|
479
496
|
return () => _c$4() && (() => {
|
|
480
|
-
var _el$
|
|
481
|
-
_el$
|
|
482
|
-
|
|
483
|
-
_$
|
|
484
|
-
_$setProp(_el$
|
|
485
|
-
|
|
486
|
-
_$insertNode(_el$21, _el$22);
|
|
487
|
-
_$insert(_el$21, degradedSummary, null);
|
|
488
|
-
_$effect(_$p => _$setProp(_el$21, "fg", props.palette.warning, _$p));
|
|
489
|
-
return _el$20;
|
|
497
|
+
var _el$19 = _$createElement("text"),
|
|
498
|
+
_el$20 = _$createTextNode(`v`);
|
|
499
|
+
_$insertNode(_el$19, _el$20);
|
|
500
|
+
_$insert(_el$19, () => s()?.version ?? props.pluginVersion, null);
|
|
501
|
+
_$effect(_$p => _$setProp(_el$19, "fg", props.palette.textMuted, _$p));
|
|
502
|
+
return _el$19;
|
|
490
503
|
})();
|
|
491
504
|
})(), null);
|
|
492
505
|
_$insert(_el$0, (() => {
|
|
493
|
-
var _c$5 = _$memo(() => !!(
|
|
506
|
+
var _c$5 = _$memo(() => !!(s()?.degraded && degradedSummary()));
|
|
494
507
|
return () => _c$5() && (() => {
|
|
495
|
-
var _el$
|
|
496
|
-
_el$
|
|
497
|
-
|
|
498
|
-
_$
|
|
499
|
-
_$setProp(_el$
|
|
500
|
-
_$
|
|
501
|
-
_$
|
|
502
|
-
|
|
508
|
+
var _el$21 = _$createElement("box"),
|
|
509
|
+
_el$22 = _$createElement("text"),
|
|
510
|
+
_el$23 = _$createTextNode(`⚠ `);
|
|
511
|
+
_$insertNode(_el$21, _el$22);
|
|
512
|
+
_$setProp(_el$21, "marginTop", 1);
|
|
513
|
+
_$setProp(_el$21, "width", "100%");
|
|
514
|
+
_$insertNode(_el$22, _el$23);
|
|
515
|
+
_$insert(_el$22, degradedSummary, null);
|
|
516
|
+
_$effect(_$p => _$setProp(_el$22, "fg", props.palette.warning, _$p));
|
|
517
|
+
return _el$21;
|
|
503
518
|
})();
|
|
504
519
|
})(), null);
|
|
505
520
|
_$insert(_el$0, (() => {
|
|
506
|
-
var _c$6 = _$memo(() => !!notInitialized());
|
|
521
|
+
var _c$6 = _$memo(() => !!(!notInitialized() && worktreeNote()));
|
|
507
522
|
return () => _c$6() && (() => {
|
|
508
|
-
var _el$
|
|
509
|
-
_el$
|
|
510
|
-
_$insertNode(_el$
|
|
511
|
-
_$setProp(_el$
|
|
512
|
-
_$setProp(_el$
|
|
513
|
-
_$insert(_el$
|
|
514
|
-
_$effect(_$p => _$setProp(_el$
|
|
515
|
-
return _el$
|
|
523
|
+
var _el$24 = _$createElement("box"),
|
|
524
|
+
_el$25 = _$createElement("text");
|
|
525
|
+
_$insertNode(_el$24, _el$25);
|
|
526
|
+
_$setProp(_el$24, "marginTop", 1);
|
|
527
|
+
_$setProp(_el$24, "width", "100%");
|
|
528
|
+
_$insert(_el$25, worktreeNote);
|
|
529
|
+
_$effect(_$p => _$setProp(_el$25, "fg", props.palette.textMuted, _$p));
|
|
530
|
+
return _el$24;
|
|
516
531
|
})();
|
|
517
532
|
})(), null);
|
|
518
533
|
_$insert(_el$0, (() => {
|
|
519
|
-
var _c$7 = _$memo(() => !!
|
|
534
|
+
var _c$7 = _$memo(() => !!notInitialized());
|
|
520
535
|
return () => _c$7() && (() => {
|
|
521
|
-
var _el$
|
|
522
|
-
_$setProp(_el$
|
|
523
|
-
_$setProp(_el$
|
|
524
|
-
_$insert(_el$
|
|
525
|
-
var _c$
|
|
526
|
-
return () => _c$
|
|
536
|
+
var _el$26 = _$createElement("box");
|
|
537
|
+
_$setProp(_el$26, "marginTop", 1);
|
|
538
|
+
_$setProp(_el$26, "width", "100%");
|
|
539
|
+
_$insert(_el$26, (() => {
|
|
540
|
+
var _c$0 = _$memo(() => !!s().config_error);
|
|
541
|
+
return () => _c$0() ? // Config error state: no bridge will ever start in this process,
|
|
542
|
+
// so the placeholder text would mislead; show the error instead.
|
|
543
|
+
(() => {
|
|
544
|
+
var _el$27 = _$createElement("text"),
|
|
545
|
+
_el$28 = _$createTextNode(`✖ `);
|
|
546
|
+
_$insertNode(_el$27, _el$28);
|
|
547
|
+
_$insert(_el$27, () => s().message, null);
|
|
548
|
+
_$effect(_$p => _$setProp(_el$27, "fg", props.palette.error, _$p));
|
|
549
|
+
return _el$27;
|
|
550
|
+
})() : (() => {
|
|
551
|
+
var _el$29 = _$createElement("text");
|
|
552
|
+
_$insert(_el$29, () => s().message || NOT_STARTED_STATUS_TEXT);
|
|
553
|
+
_$effect(_$p => _$setProp(_el$29, "fg", props.palette.textMuted, _$p));
|
|
554
|
+
return _el$29;
|
|
555
|
+
})();
|
|
556
|
+
})());
|
|
557
|
+
return _el$26;
|
|
558
|
+
})();
|
|
559
|
+
})(), null);
|
|
560
|
+
_$insert(_el$0, (() => {
|
|
561
|
+
var _c$8 = _$memo(() => !!(!notInitialized() && props.collapsed));
|
|
562
|
+
return () => _c$8() && (() => {
|
|
563
|
+
var _el$30 = _$createElement("box");
|
|
564
|
+
_$setProp(_el$30, "width", "100%");
|
|
565
|
+
_$setProp(_el$30, "flexDirection", "column");
|
|
566
|
+
_$insert(_el$30, (() => {
|
|
567
|
+
var _c$1 = _$memo(() => !!props.prefs.sections.searchIndex);
|
|
568
|
+
return () => _c$1() && _$createComponent(CollapsedRow, {
|
|
527
569
|
get palette() {
|
|
528
570
|
return props.palette;
|
|
529
571
|
},
|
|
530
572
|
label: "Search Index",
|
|
531
573
|
get children() {
|
|
532
|
-
var _el$
|
|
533
|
-
_$insertNode(_el$
|
|
534
|
-
_$effect(_$p => _$setProp(_el$
|
|
535
|
-
return _el$
|
|
574
|
+
var _el$31 = _$createElement("text");
|
|
575
|
+
_$insertNode(_el$31, _$createTextNode(`●`));
|
|
576
|
+
_$effect(_$p => _$setProp(_el$31, "fg", toneColor(props.palette, searchStatus().tone), _$p));
|
|
577
|
+
return _el$31;
|
|
536
578
|
}
|
|
537
579
|
});
|
|
538
580
|
})(), null);
|
|
539
|
-
_$insert(_el$
|
|
540
|
-
var _c$
|
|
541
|
-
return () => _c$
|
|
581
|
+
_$insert(_el$30, (() => {
|
|
582
|
+
var _c$10 = _$memo(() => !!props.prefs.sections.semanticIndex);
|
|
583
|
+
return () => _c$10() && _$createComponent(CollapsedRow, {
|
|
542
584
|
get palette() {
|
|
543
585
|
return props.palette;
|
|
544
586
|
},
|
|
545
587
|
label: "Semantic Index",
|
|
546
588
|
get children() {
|
|
547
|
-
var _el$
|
|
548
|
-
_$insertNode(_el$
|
|
549
|
-
_$effect(_$p => _$setProp(_el$
|
|
550
|
-
return _el$
|
|
589
|
+
var _el$33 = _$createElement("text");
|
|
590
|
+
_$insertNode(_el$33, _$createTextNode(`●`));
|
|
591
|
+
_$effect(_$p => _$setProp(_el$33, "fg", toneColor(props.palette, semanticStatus().tone), _$p));
|
|
592
|
+
return _el$33;
|
|
551
593
|
}
|
|
552
594
|
});
|
|
553
595
|
})(), null);
|
|
554
|
-
_$insert(_el$
|
|
555
|
-
var _c$
|
|
556
|
-
return () => _c$
|
|
596
|
+
_$insert(_el$30, (() => {
|
|
597
|
+
var _c$11 = _$memo(() => !!(props.prefs.sections.codeHealth && collapsedHealthLights(statusBar())));
|
|
598
|
+
return () => _c$11() && _$createComponent(CollapsedRow, {
|
|
557
599
|
get palette() {
|
|
558
600
|
return props.palette;
|
|
559
601
|
},
|
|
560
602
|
label: "Code Health",
|
|
561
603
|
get children() {
|
|
562
|
-
var _el$
|
|
563
|
-
_el$
|
|
564
|
-
_el$
|
|
565
|
-
_el$
|
|
566
|
-
_$insertNode(_el$
|
|
567
|
-
_$insertNode(_el$
|
|
568
|
-
_$insertNode(_el$
|
|
569
|
-
_$setProp(_el$
|
|
570
|
-
_$setProp(_el$
|
|
571
|
-
_$insertNode(_el$
|
|
572
|
-
_$insertNode(_el$
|
|
573
|
-
_$insertNode(_el$
|
|
604
|
+
var _el$35 = _$createElement("box"),
|
|
605
|
+
_el$36 = _$createElement("text"),
|
|
606
|
+
_el$38 = _$createElement("text"),
|
|
607
|
+
_el$40 = _$createElement("text");
|
|
608
|
+
_$insertNode(_el$35, _el$36);
|
|
609
|
+
_$insertNode(_el$35, _el$38);
|
|
610
|
+
_$insertNode(_el$35, _el$40);
|
|
611
|
+
_$setProp(_el$35, "flexDirection", "row");
|
|
612
|
+
_$setProp(_el$35, "gap", 1);
|
|
613
|
+
_$insertNode(_el$36, _$createTextNode(`●`));
|
|
614
|
+
_$insertNode(_el$38, _$createTextNode(`●`));
|
|
615
|
+
_$insertNode(_el$40, _$createTextNode(`●`));
|
|
574
616
|
_$effect(_p$ => {
|
|
575
617
|
var _v$0 = toneColor(props.palette, collapsedHealthLights(statusBar()).diagnostics),
|
|
576
618
|
_v$1 = toneColor(props.palette, collapsedHealthLights(statusBar()).code),
|
|
577
619
|
_v$10 = toneColor(props.palette, collapsedHealthLights(statusBar()).todos);
|
|
578
|
-
_v$0 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
579
|
-
_v$1 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
580
|
-
_v$10 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
620
|
+
_v$0 !== _p$.e && (_p$.e = _$setProp(_el$36, "fg", _v$0, _p$.e));
|
|
621
|
+
_v$1 !== _p$.t && (_p$.t = _$setProp(_el$38, "fg", _v$1, _p$.t));
|
|
622
|
+
_v$10 !== _p$.a && (_p$.a = _$setProp(_el$40, "fg", _v$10, _p$.a));
|
|
581
623
|
return _p$;
|
|
582
624
|
}, {
|
|
583
625
|
e: undefined,
|
|
584
626
|
t: undefined,
|
|
585
627
|
a: undefined
|
|
586
628
|
});
|
|
587
|
-
return _el$
|
|
629
|
+
return _el$35;
|
|
588
630
|
}
|
|
589
631
|
});
|
|
590
632
|
})(), null);
|
|
591
|
-
_$insert(_el$
|
|
592
|
-
var _c$
|
|
593
|
-
return () => _c$
|
|
633
|
+
_$insert(_el$30, (() => {
|
|
634
|
+
var _c$12 = _$memo(() => !!(props.prefs.sections.compression && collapsedCompressionValue(s()?.compression)));
|
|
635
|
+
return () => _c$12() && _$createComponent(CollapsedRow, {
|
|
594
636
|
get palette() {
|
|
595
637
|
return props.palette;
|
|
596
638
|
},
|
|
597
639
|
label: "Compression",
|
|
598
640
|
get children() {
|
|
599
|
-
var _el$
|
|
600
|
-
_el$
|
|
601
|
-
_$insertNode(_el$
|
|
602
|
-
_$insert(_el$
|
|
603
|
-
_$effect(_$p => _$setProp(_el$
|
|
604
|
-
return _el$
|
|
641
|
+
var _el$42 = _$createElement("text"),
|
|
642
|
+
_el$43 = _$createElement("b");
|
|
643
|
+
_$insertNode(_el$42, _el$43);
|
|
644
|
+
_$insert(_el$43, () => collapsedCompressionValue(s()?.compression));
|
|
645
|
+
_$effect(_$p => _$setProp(_el$42, "fg", props.palette.textMuted, _$p));
|
|
646
|
+
return _el$42;
|
|
605
647
|
}
|
|
606
648
|
});
|
|
607
649
|
})(), null);
|
|
608
|
-
return _el$
|
|
650
|
+
return _el$30;
|
|
609
651
|
})();
|
|
610
652
|
})(), null);
|
|
611
653
|
_$insert(_el$0, (() => {
|
|
612
|
-
var _c$
|
|
613
|
-
return () => _c$
|
|
654
|
+
var _c$9 = _$memo(() => !!(!notInitialized() && !props.collapsed));
|
|
655
|
+
return () => _c$9() && [_$memo(() => _$memo(() => !!props.prefs.sections.searchIndex)() && [_$createComponent(SectionHeader, {
|
|
614
656
|
get palette() {
|
|
615
657
|
return props.palette;
|
|
616
658
|
},
|
|
@@ -661,13 +703,13 @@ export const AftSidebarPanel = props => {
|
|
|
661
703
|
return semanticStatus().tone;
|
|
662
704
|
}
|
|
663
705
|
}), _$memo(() => _$memo(() => !!semanticRefreshing())() && (() => {
|
|
664
|
-
var _el$
|
|
665
|
-
_el$
|
|
666
|
-
_$insertNode(_el$
|
|
667
|
-
_$setProp(_el$
|
|
668
|
-
_$insert(_el$
|
|
669
|
-
_$effect(_$p => _$setProp(_el$
|
|
670
|
-
return _el$
|
|
706
|
+
var _el$44 = _$createElement("box"),
|
|
707
|
+
_el$45 = _$createElement("text");
|
|
708
|
+
_$insertNode(_el$44, _el$45);
|
|
709
|
+
_$setProp(_el$44, "width", "100%");
|
|
710
|
+
_$insert(_el$45, semanticRefreshing);
|
|
711
|
+
_$effect(_$p => _$setProp(_el$45, "fg", props.palette.textMuted, _$p));
|
|
712
|
+
return _el$44;
|
|
671
713
|
})()), _$memo(() => _$memo(() => !!(s()?.semantic_index?.status === "loading" && s()?.semantic_index?.entries_total != null && s().semantic_index.entries_total > 0))() && _$createComponent(StatRow, {
|
|
672
714
|
get palette() {
|
|
673
715
|
return props.palette;
|
|
@@ -766,13 +808,13 @@ export const AftSidebarPanel = props => {
|
|
|
766
808
|
},
|
|
767
809
|
title: "Compression"
|
|
768
810
|
}), _$memo(() => compressionRows().map(row => row.kind === "scope" ? (() => {
|
|
769
|
-
var _el$
|
|
770
|
-
_el$
|
|
771
|
-
_$insertNode(_el$
|
|
772
|
-
_$setProp(_el$
|
|
773
|
-
_$insert(_el$
|
|
774
|
-
_$effect(_$p => _$setProp(_el$
|
|
775
|
-
return _el$
|
|
811
|
+
var _el$46 = _$createElement("box"),
|
|
812
|
+
_el$47 = _$createElement("text");
|
|
813
|
+
_$insertNode(_el$46, _el$47);
|
|
814
|
+
_$setProp(_el$46, "width", "100%");
|
|
815
|
+
_$insert(_el$47, () => row.label);
|
|
816
|
+
_$effect(_$p => _$setProp(_el$47, "fg", props.palette.text, _$p));
|
|
817
|
+
return _el$46;
|
|
776
818
|
})() : _$createComponent(StatRow, {
|
|
777
819
|
get palette() {
|
|
778
820
|
return props.palette;
|
|
@@ -785,16 +827,16 @@ export const AftSidebarPanel = props => {
|
|
|
785
827
|
},
|
|
786
828
|
tone: "muted"
|
|
787
829
|
})))]), _$memo(() => _$memo(() => !!(s()?.semantic_index?.status === "failed" && s()?.semantic_index?.error))() && (() => {
|
|
788
|
-
var _el$
|
|
789
|
-
_el$
|
|
790
|
-
_el$
|
|
791
|
-
_$insertNode(_el$
|
|
792
|
-
_$setProp(_el$
|
|
793
|
-
_$setProp(_el$
|
|
794
|
-
_$insertNode(_el$
|
|
795
|
-
_$insert(_el$
|
|
796
|
-
_$effect(_$p => _$setProp(_el$
|
|
797
|
-
return _el$
|
|
830
|
+
var _el$48 = _$createElement("box"),
|
|
831
|
+
_el$49 = _$createElement("text"),
|
|
832
|
+
_el$50 = _$createTextNode(`⚠ `);
|
|
833
|
+
_$insertNode(_el$48, _el$49);
|
|
834
|
+
_$setProp(_el$48, "marginTop", 1);
|
|
835
|
+
_$setProp(_el$48, "width", "100%");
|
|
836
|
+
_$insertNode(_el$49, _el$50);
|
|
837
|
+
_$insert(_el$49, () => s().semantic_index.error, null);
|
|
838
|
+
_$effect(_$p => _$setProp(_el$49, "fg", props.palette.error, _$p));
|
|
839
|
+
return _el$48;
|
|
798
840
|
})())];
|
|
799
841
|
})(), null);
|
|
800
842
|
_$effect(_p$ => {
|