@noir-ai/cli 1.9.1 → 1.9.2
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/bin.js +8 -8
- package/dist/{chunk-BM3VEJ2J.js → chunk-CN3KUSQT.js} +2 -2
- package/dist/{chunk-JUVY6L3F.js → chunk-PED37JWV.js} +3 -3
- package/dist/{chunk-3NT7RW6K.js → chunk-S2PDLS4C.js} +1 -1
- package/dist/{chunk-3NT7RW6K.js.map → chunk-S2PDLS4C.js.map} +1 -1
- package/dist/{chunk-L7XR7EA3.js → chunk-US567S5T.js} +2 -2
- package/dist/{create-UO3QTGL7.js → create-DJ6B5K36.js} +3 -3
- package/dist/index.js +2 -2
- package/dist/{install-4XEGT4GR.js → install-X7QSYLLS.js} +3 -3
- package/dist/{sync-MZETGPOJ.js → sync-FKWXQOWT.js} +3 -3
- package/dist/tui/{chunk-XFBZ5X3B.js → chunk-2KJ27HGA.js} +2 -2
- package/dist/tui/{chunk-A2Q74DOV.js → chunk-MD6WXZBF.js} +9 -2
- package/dist/tui/{chunk-A2Q74DOV.js.map → chunk-MD6WXZBF.js.map} +1 -1
- package/dist/tui/{chunk-X2CROVY6.js → chunk-R6246ISQ.js} +2 -2
- package/dist/tui/{chunk-FQCYGUCG.js → chunk-RCMEIONF.js} +3 -3
- package/dist/tui/{create-Z5HEBB7K.js → create-CFAXIIYW.js} +3 -3
- package/dist/tui/index.js +112 -86
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/{install-LZQUUIFK.js → install-HZKZXBQD.js} +3 -3
- package/dist/tui/{sync-5M2UEOKW.js → sync-Y7MTQ4JC.js} +3 -3
- package/dist/tui/{update-CHPJMWOV.js → update-VIQUC3DT.js} +4 -4
- package/dist/{update-7JNJ7JF3.js → update-6P7SEZ67.js} +4 -4
- package/package.json +11 -11
- /package/dist/{chunk-BM3VEJ2J.js.map → chunk-CN3KUSQT.js.map} +0 -0
- /package/dist/{chunk-JUVY6L3F.js.map → chunk-PED37JWV.js.map} +0 -0
- /package/dist/{chunk-L7XR7EA3.js.map → chunk-US567S5T.js.map} +0 -0
- /package/dist/{create-UO3QTGL7.js.map → create-DJ6B5K36.js.map} +0 -0
- /package/dist/{install-4XEGT4GR.js.map → install-X7QSYLLS.js.map} +0 -0
- /package/dist/{sync-MZETGPOJ.js.map → sync-FKWXQOWT.js.map} +0 -0
- /package/dist/tui/{chunk-XFBZ5X3B.js.map → chunk-2KJ27HGA.js.map} +0 -0
- /package/dist/tui/{chunk-X2CROVY6.js.map → chunk-R6246ISQ.js.map} +0 -0
- /package/dist/tui/{chunk-FQCYGUCG.js.map → chunk-RCMEIONF.js.map} +0 -0
- /package/dist/tui/{create-Z5HEBB7K.js.map → create-CFAXIIYW.js.map} +0 -0
- /package/dist/tui/{install-LZQUUIFK.js.map → install-HZKZXBQD.js.map} +0 -0
- /package/dist/tui/{sync-5M2UEOKW.js.map → sync-Y7MTQ4JC.js.map} +0 -0
- /package/dist/tui/{update-CHPJMWOV.js.map → update-VIQUC3DT.js.map} +0 -0
- /package/dist/{update-7JNJ7JF3.js.map → update-6P7SEZ67.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
installManagedNode
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-R6246ISQ.js";
|
|
4
4
|
import {
|
|
5
5
|
EXIT,
|
|
6
6
|
fail,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
spinner,
|
|
9
9
|
success,
|
|
10
10
|
warn
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MD6WXZBF.js";
|
|
12
12
|
|
|
13
13
|
// src/commands/update.ts
|
|
14
14
|
import {
|
|
@@ -192,4 +192,4 @@ export {
|
|
|
192
192
|
update,
|
|
193
193
|
runAsyncUpdateCheck
|
|
194
194
|
};
|
|
195
|
-
//# sourceMappingURL=chunk-
|
|
195
|
+
//# sourceMappingURL=chunk-RCMEIONF.js.map
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
buildConflictOpts,
|
|
4
4
|
checkWritePathDedup,
|
|
5
5
|
reportPlannedWrites
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2KJ27HGA.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveInteractive
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MD6WXZBF.js";
|
|
10
10
|
|
|
11
11
|
// src/commands/create.ts
|
|
12
12
|
import { resolve } from "path";
|
|
@@ -76,4 +76,4 @@ async function create(dir, opts) {
|
|
|
76
76
|
export {
|
|
77
77
|
create
|
|
78
78
|
};
|
|
79
|
-
//# sourceMappingURL=create-
|
|
79
|
+
//# sourceMappingURL=create-CFAXIIYW.js.map
|
package/dist/tui/index.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_UPDATE_CONFIG,
|
|
3
3
|
runAsyncUpdateCheck
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-RCMEIONF.js";
|
|
5
|
+
import "./chunk-R6246ISQ.js";
|
|
6
6
|
import {
|
|
7
7
|
doctor,
|
|
8
8
|
init
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2KJ27HGA.js";
|
|
10
10
|
import {
|
|
11
11
|
EXIT,
|
|
12
12
|
NoirCliError,
|
|
13
13
|
accessibleMode,
|
|
14
14
|
badge,
|
|
15
15
|
c,
|
|
16
|
+
contentWidth,
|
|
16
17
|
definitionList,
|
|
18
|
+
divider,
|
|
17
19
|
fail,
|
|
18
20
|
handleError,
|
|
19
21
|
info,
|
|
@@ -23,11 +25,10 @@ import {
|
|
|
23
25
|
requireInteractive,
|
|
24
26
|
spinner,
|
|
25
27
|
table,
|
|
26
|
-
terminalWidth,
|
|
27
28
|
tip,
|
|
28
29
|
useColor,
|
|
29
30
|
warn
|
|
30
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-MD6WXZBF.js";
|
|
31
32
|
|
|
32
33
|
// src/tui/index.tsx
|
|
33
34
|
import { loadProjectInfo as loadProjectInfo8 } from "@noir-ai/core";
|
|
@@ -2215,7 +2216,7 @@ function createProgram() {
|
|
|
2215
2216
|
const force = opts.force === true;
|
|
2216
2217
|
const host = parseHost(opts.host);
|
|
2217
2218
|
const dryRun = opts.dryRun === true || opts.preview === true;
|
|
2218
|
-
const { create } = await import("./create-
|
|
2219
|
+
const { create } = await import("./create-CFAXIIYW.js");
|
|
2219
2220
|
const result = await create(dir, {
|
|
2220
2221
|
transport,
|
|
2221
2222
|
url: opts.url,
|
|
@@ -2254,7 +2255,7 @@ function createProgram() {
|
|
|
2254
2255
|
).choices(SUPPORTED_HOSTS)
|
|
2255
2256
|
).action(
|
|
2256
2257
|
async (opts, cmd) => {
|
|
2257
|
-
const { sync } = await import("./sync-
|
|
2258
|
+
const { sync } = await import("./sync-Y7MTQ4JC.js");
|
|
2258
2259
|
const host = parseHost(opts.host);
|
|
2259
2260
|
const force = opts.force === true;
|
|
2260
2261
|
const merge = opts.merge === true;
|
|
@@ -2461,7 +2462,7 @@ function createProgram() {
|
|
|
2461
2462
|
"dismiss the migration banner for the current version (persists in install.json)"
|
|
2462
2463
|
).argument("[spec]", "channel ('latest'|'beta') or exact version (default: latest)").action(
|
|
2463
2464
|
async (spec, opts, cmd) => {
|
|
2464
|
-
const { install } = await import("./install-
|
|
2465
|
+
const { install } = await import("./install-HZKZXBQD.js");
|
|
2465
2466
|
const cli = cmd.optsWithGlobals();
|
|
2466
2467
|
await install({
|
|
2467
2468
|
...cli,
|
|
@@ -2474,7 +2475,7 @@ function createProgram() {
|
|
|
2474
2475
|
);
|
|
2475
2476
|
installCmd.alias("migrate");
|
|
2476
2477
|
program2.command("update").description("update Noir to the latest version via the active install method").option("--check", "check for a new version without changing anything").argument("[spec]", "channel ('latest'|'beta') or exact version (default: latest)").action(async (spec, opts, cmd) => {
|
|
2477
|
-
const { update } = await import("./update-
|
|
2478
|
+
const { update } = await import("./update-VIQUC3DT.js");
|
|
2478
2479
|
const cli = cmd.optsWithGlobals();
|
|
2479
2480
|
await update({ ...cli, spec, check: opts.check === true });
|
|
2480
2481
|
});
|
|
@@ -2576,26 +2577,29 @@ if (isMainModule) {
|
|
|
2576
2577
|
}
|
|
2577
2578
|
|
|
2578
2579
|
// src/tui/App.tsx
|
|
2579
|
-
import { Box as
|
|
2580
|
+
import { Box as Box5, Text as Text9, useApp, useInput as useInput3 } from "ink";
|
|
2580
2581
|
import { useEffect, useState as useState4 } from "react";
|
|
2581
2582
|
|
|
2582
2583
|
// src/tui/CommandInput.tsx
|
|
2583
|
-
import { Text } from "ink";
|
|
2584
|
+
import { Box, Text } from "ink";
|
|
2584
2585
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2585
2586
|
function CommandInput({ buffer, running }) {
|
|
2586
2587
|
if (running) {
|
|
2587
|
-
return /* @__PURE__ */ jsx(Text, { children: c.dim("\u2026") });
|
|
2588
|
+
return /* @__PURE__ */ jsx(Box, { borderStyle: "round", borderColor: "gray", paddingX: 1, width: contentWidth() + 4, children: /* @__PURE__ */ jsx(Text, { children: c.dim("\u2026") }) });
|
|
2588
2589
|
}
|
|
2590
|
+
let body;
|
|
2589
2591
|
if (buffer.length === 0) {
|
|
2590
|
-
|
|
2592
|
+
body = /* @__PURE__ */ jsx(Text, { children: c.dim("type a /command (e.g. /status, /sync, /task next), or q to quit") });
|
|
2593
|
+
} else {
|
|
2594
|
+
const isCommand = buffer.startsWith("/");
|
|
2595
|
+
body = /* @__PURE__ */ jsxs(Text, { children: [
|
|
2596
|
+
/* @__PURE__ */ jsx(Text, { children: isCommand ? c.accent("\u25B8") : c.dim("\u25B8") }),
|
|
2597
|
+
" ",
|
|
2598
|
+
buffer,
|
|
2599
|
+
/* @__PURE__ */ jsx(Text, { children: c.dim("\u258C") })
|
|
2600
|
+
] });
|
|
2591
2601
|
}
|
|
2592
|
-
|
|
2593
|
-
return /* @__PURE__ */ jsxs(Text, { children: [
|
|
2594
|
-
/* @__PURE__ */ jsx(Text, { children: isCommand ? c.accent("\u25B8") : c.dim("\u25B8") }),
|
|
2595
|
-
" ",
|
|
2596
|
-
buffer,
|
|
2597
|
-
/* @__PURE__ */ jsx(Text, { children: c.dim("\u258C") })
|
|
2598
|
-
] });
|
|
2602
|
+
return /* @__PURE__ */ jsx(Box, { borderStyle: "round", borderColor: "gray", paddingX: 1, width: contentWidth() + 4, children: body });
|
|
2599
2603
|
}
|
|
2600
2604
|
|
|
2601
2605
|
// src/tui/capture.ts
|
|
@@ -2665,7 +2669,7 @@ function Header({ tagline }) {
|
|
|
2665
2669
|
}
|
|
2666
2670
|
|
|
2667
2671
|
// src/tui/HomeMenu.tsx
|
|
2668
|
-
import { Box, Text as Text4, useInput } from "ink";
|
|
2672
|
+
import { Box as Box2, Text as Text4, useInput } from "ink";
|
|
2669
2673
|
import { useState } from "react";
|
|
2670
2674
|
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
2671
2675
|
function flatten(sections) {
|
|
@@ -2727,12 +2731,14 @@ function HomeMenu({ sections, onSelect, onClose }) {
|
|
|
2727
2731
|
] }, action.id)
|
|
2728
2732
|
);
|
|
2729
2733
|
}
|
|
2730
|
-
return /* @__PURE__ */ jsxs3(
|
|
2731
|
-
/* @__PURE__ */ jsxs3(
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
+
return /* @__PURE__ */ jsxs3(Box2, { flexDirection: "column", children: [
|
|
2735
|
+
/* @__PURE__ */ jsxs3(Box2, { flexDirection: "column", borderStyle: "round", borderColor: "gray", width: contentWidth() + 4, children: [
|
|
2736
|
+
/* @__PURE__ */ jsx4(Box2, { paddingX: 1, children: /* @__PURE__ */ jsxs3(Text4, { children: [
|
|
2737
|
+
c.bold("\u25B8 home "),
|
|
2738
|
+
/* @__PURE__ */ jsx4(Text4, { children: c.dim(`quick actions (${rows.length})`) })
|
|
2739
|
+
] }) }),
|
|
2740
|
+
rowsEl.map((row) => /* @__PURE__ */ jsx4(Box2, { paddingX: 1, children: row }, row.key ?? "row"))
|
|
2734
2741
|
] }),
|
|
2735
|
-
rowsEl,
|
|
2736
2742
|
/* @__PURE__ */ jsx4(Text4, { children: c.dim("\u2191/\u2193 navigate \xB7 Enter run \xB7 Esc close") })
|
|
2737
2743
|
] });
|
|
2738
2744
|
}
|
|
@@ -2805,7 +2811,7 @@ function OutputPane({
|
|
|
2805
2811
|
highlightQuery,
|
|
2806
2812
|
activeLine
|
|
2807
2813
|
}) {
|
|
2808
|
-
const width =
|
|
2814
|
+
const width = contentWidth();
|
|
2809
2815
|
if (lines.length === 0) {
|
|
2810
2816
|
return /* @__PURE__ */ jsx5(Text5, { children: c.dim("(no output \u2014 type a /command, or ? for help)") });
|
|
2811
2817
|
}
|
|
@@ -2813,7 +2819,7 @@ function OutputPane({
|
|
|
2813
2819
|
const offset = Math.min(Math.max(0, scrollOffset), maxOffset);
|
|
2814
2820
|
const rows = toRows(lines.slice(offset, offset + height), offset);
|
|
2815
2821
|
return /* @__PURE__ */ jsxs4(Fragment, { children: [
|
|
2816
|
-
title !== void 0 ? /* @__PURE__ */ jsx5(Text5, { children: c.dim(`\u2500\u2500 ${title} \u2500\u2500`) }) : null,
|
|
2822
|
+
title !== void 0 ? /* @__PURE__ */ jsx5(Text5, { wrap: "truncate-end", children: c.dim(`\u2500\u2500 ${title} \u2500\u2500`) }) : null,
|
|
2817
2823
|
rows.map((row) => {
|
|
2818
2824
|
const truncated = row.text.length > width ? `${row.text.slice(0, Math.max(1, width - 1))}\u2026` : row.text;
|
|
2819
2825
|
let body = truncated;
|
|
@@ -2822,19 +2828,19 @@ function OutputPane({
|
|
|
2822
2828
|
} else if (highlightQuery !== void 0 && highlightQuery.length > 0) {
|
|
2823
2829
|
body = highlightFirst(truncated, highlightQuery);
|
|
2824
2830
|
}
|
|
2825
|
-
return /* @__PURE__ */ jsx5(Text5, { children: body }, row.key);
|
|
2831
|
+
return /* @__PURE__ */ jsx5(Text5, { wrap: "truncate-end", children: body }, row.key);
|
|
2826
2832
|
})
|
|
2827
2833
|
] });
|
|
2828
2834
|
}
|
|
2829
2835
|
|
|
2830
2836
|
// src/tui/overlays/ConfirmOverlay.tsx
|
|
2831
|
-
import { Text as Text6 } from "ink";
|
|
2837
|
+
import { Box as Box3, Text as Text6 } from "ink";
|
|
2832
2838
|
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
2833
2839
|
function ConfirmOverlay({ argv }) {
|
|
2834
|
-
return /* @__PURE__ */ jsxs5(Text6, { children: [
|
|
2840
|
+
return /* @__PURE__ */ jsx6(Box3, { borderStyle: "round", borderColor: "yellow", paddingX: 1, width: contentWidth() + 4, children: /* @__PURE__ */ jsxs5(Text6, { children: [
|
|
2835
2841
|
c.warn(`! run /${argv.join(" ")}? (y/N)`),
|
|
2836
2842
|
/* @__PURE__ */ jsx6(Text6, { children: c.dim(" [y approve \xB7 n/Esc back to palette]") })
|
|
2837
|
-
] });
|
|
2843
|
+
] }) });
|
|
2838
2844
|
}
|
|
2839
2845
|
|
|
2840
2846
|
// src/tui/overlays/SearchMode.ts
|
|
@@ -2941,7 +2947,7 @@ var handRolledMatcher = {
|
|
|
2941
2947
|
};
|
|
2942
2948
|
|
|
2943
2949
|
// src/tui/palette/Palette.tsx
|
|
2944
|
-
import { Box as
|
|
2950
|
+
import { Box as Box4, Text as Text7, useInput as useInput2 } from "ink";
|
|
2945
2951
|
import { useState as useState3 } from "react";
|
|
2946
2952
|
import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2947
2953
|
var VISIBLE_ROWS = 10;
|
|
@@ -3013,40 +3019,46 @@ function Palette({
|
|
|
3013
3019
|
}
|
|
3014
3020
|
});
|
|
3015
3021
|
const rows = [
|
|
3016
|
-
/* @__PURE__ */ jsxs6(Text7, { children: [
|
|
3022
|
+
/* @__PURE__ */ jsx7(Box4, { paddingX: 1, children: /* @__PURE__ */ jsxs6(Text7, { children: [
|
|
3017
3023
|
c.bold("\u25B8 palette "),
|
|
3018
3024
|
/* @__PURE__ */ jsx7(Text7, { children: c.dim(`search (${visible.length} shown)`) })
|
|
3019
|
-
] }, "header"),
|
|
3020
|
-
/* @__PURE__ */ jsxs6(Text7, { children: [
|
|
3025
|
+
] }) }, "header"),
|
|
3026
|
+
/* @__PURE__ */ jsx7(Box4, { borderStyle: "round", borderColor: "gray", paddingX: 1, width: contentWidth() + 4, children: /* @__PURE__ */ jsxs6(Text7, { children: [
|
|
3021
3027
|
c.dim("> "),
|
|
3022
3028
|
query,
|
|
3023
3029
|
/* @__PURE__ */ jsx7(Text7, { children: c.dim("\u258C") })
|
|
3024
|
-
] }, "query")
|
|
3030
|
+
] }) }, "query")
|
|
3025
3031
|
];
|
|
3026
3032
|
let lastCategory = null;
|
|
3027
3033
|
for (const { cmd, indices } of visible) {
|
|
3028
3034
|
const isRecent = recents.some((r) => r.id === cmd.id);
|
|
3029
3035
|
if (query.length === 0) {
|
|
3030
3036
|
if (isRecent && lastCategory !== "recent") {
|
|
3031
|
-
rows.push(
|
|
3037
|
+
rows.push(
|
|
3038
|
+
/* @__PURE__ */ jsx7(Box4, { paddingX: 1, children: /* @__PURE__ */ jsx7(Text7, { children: c.dim("\u2500\u2500 recent \u2500\u2500") }) }, "cat:recent")
|
|
3039
|
+
);
|
|
3032
3040
|
lastCategory = "recent";
|
|
3033
3041
|
} else if (!isRecent && cmd.category !== lastCategory) {
|
|
3034
|
-
rows.push(
|
|
3042
|
+
rows.push(
|
|
3043
|
+
/* @__PURE__ */ jsx7(Box4, { paddingX: 1, children: /* @__PURE__ */ jsx7(Text7, { children: c.dim(`\u2500\u2500 ${cmd.category} \u2500\u2500`) }) }, `cat:${cmd.category}`)
|
|
3044
|
+
);
|
|
3035
3045
|
lastCategory = cmd.category;
|
|
3036
3046
|
}
|
|
3037
3047
|
}
|
|
3038
3048
|
const prefix = cmd.id === visible[active]?.cmd.id ? "\u25B8 " : " ";
|
|
3039
3049
|
rows.push(
|
|
3040
|
-
/* @__PURE__ */ jsxs6(Text7, { children: [
|
|
3050
|
+
/* @__PURE__ */ jsx7(Box4, { paddingX: 1, children: /* @__PURE__ */ jsxs6(Text7, { children: [
|
|
3041
3051
|
isRecent && query.length === 0 ? /* @__PURE__ */ jsx7(Text7, { children: c.dim("\u21BA ") }) : null,
|
|
3042
3052
|
prefix,
|
|
3043
3053
|
highlight(cmd.label, indices),
|
|
3044
3054
|
/* @__PURE__ */ jsx7(Text7, { children: c.dim(` ${cmd.description}`) })
|
|
3045
|
-
] }, cmd.id)
|
|
3055
|
+
] }) }, cmd.id)
|
|
3046
3056
|
);
|
|
3047
3057
|
}
|
|
3048
|
-
|
|
3049
|
-
|
|
3058
|
+
return /* @__PURE__ */ jsxs6(Box4, { flexDirection: "column", children: [
|
|
3059
|
+
/* @__PURE__ */ jsx7(Box4, { flexDirection: "column", borderStyle: "round", borderColor: "gray", width: contentWidth() + 4, children: rows }),
|
|
3060
|
+
/* @__PURE__ */ jsx7(Text7, { children: c.dim("\u2191/\u2193 navigate \xB7 Enter run \xB7 Esc close") })
|
|
3061
|
+
] });
|
|
3050
3062
|
}
|
|
3051
3063
|
function recentDeduped(recent, commands) {
|
|
3052
3064
|
const known = new Set(commands.map((cmd) => cmd.id));
|
|
@@ -3391,7 +3403,7 @@ function App({
|
|
|
3391
3403
|
return /* @__PURE__ */ jsx9(Help, {});
|
|
3392
3404
|
}
|
|
3393
3405
|
if (mode.kind === "palette") {
|
|
3394
|
-
return /* @__PURE__ */ jsxs8(
|
|
3406
|
+
return /* @__PURE__ */ jsxs8(Box5, { flexDirection: "column", children: [
|
|
3395
3407
|
/* @__PURE__ */ jsx9(Header, { tagline: "palette" }),
|
|
3396
3408
|
/* @__PURE__ */ jsx9(
|
|
3397
3409
|
Palette,
|
|
@@ -3407,7 +3419,7 @@ function App({
|
|
|
3407
3419
|
] });
|
|
3408
3420
|
}
|
|
3409
3421
|
if (mode.kind === "home") {
|
|
3410
|
-
return /* @__PURE__ */ jsxs8(
|
|
3422
|
+
return /* @__PURE__ */ jsxs8(Box5, { flexDirection: "column", children: [
|
|
3411
3423
|
/* @__PURE__ */ jsx9(Header, { tagline: "home" }),
|
|
3412
3424
|
/* @__PURE__ */ jsx9(
|
|
3413
3425
|
HomeMenu,
|
|
@@ -3421,7 +3433,7 @@ function App({
|
|
|
3421
3433
|
] });
|
|
3422
3434
|
}
|
|
3423
3435
|
if (mode.kind === "confirm") {
|
|
3424
|
-
return /* @__PURE__ */ jsxs8(
|
|
3436
|
+
return /* @__PURE__ */ jsxs8(Box5, { flexDirection: "column", children: [
|
|
3425
3437
|
/* @__PURE__ */ jsx9(Header, { tagline: "confirm" }),
|
|
3426
3438
|
/* @__PURE__ */ jsx9(ConfirmOverlay, { argv: mode.argv }),
|
|
3427
3439
|
/* @__PURE__ */ jsx9(Footer, { running: false })
|
|
@@ -3430,23 +3442,32 @@ function App({
|
|
|
3430
3442
|
if (mode.kind === "search") {
|
|
3431
3443
|
const activeLine = mode.active >= 0 ? mode.matches[mode.active] : void 0;
|
|
3432
3444
|
const matchCount = mode.matches.length;
|
|
3433
|
-
return /* @__PURE__ */ jsxs8(
|
|
3445
|
+
return /* @__PURE__ */ jsxs8(Box5, { flexDirection: "column", children: [
|
|
3434
3446
|
/* @__PURE__ */ jsx9(Header, { tagline: "search" }),
|
|
3435
3447
|
/* @__PURE__ */ jsx9(
|
|
3436
|
-
|
|
3448
|
+
Box5,
|
|
3437
3449
|
{
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3450
|
+
flexDirection: "column",
|
|
3451
|
+
borderStyle: "round",
|
|
3452
|
+
borderColor: "gray",
|
|
3453
|
+
width: contentWidth() + 4,
|
|
3454
|
+
children: /* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(
|
|
3455
|
+
OutputPane,
|
|
3456
|
+
{
|
|
3457
|
+
lines: searchLines,
|
|
3458
|
+
scrollOffset,
|
|
3459
|
+
title: output?.title,
|
|
3460
|
+
highlightQuery: mode.query,
|
|
3461
|
+
activeLine
|
|
3462
|
+
}
|
|
3463
|
+
) })
|
|
3443
3464
|
}
|
|
3444
3465
|
),
|
|
3445
|
-
/* @__PURE__ */ jsxs8(Text9, { children: [
|
|
3466
|
+
/* @__PURE__ */ jsx9(Box5, { borderStyle: "round", borderColor: "gray", paddingX: 1, width: contentWidth() + 4, children: /* @__PURE__ */ jsxs8(Text9, { children: [
|
|
3446
3467
|
c.dim("search: "),
|
|
3447
3468
|
mode.query.length > 0 ? mode.query : c.dim("(type to filter output)"),
|
|
3448
3469
|
/* @__PURE__ */ jsx9(Text9, { children: c.dim(" \u258C") })
|
|
3449
|
-
] }),
|
|
3470
|
+
] }) }),
|
|
3450
3471
|
/* @__PURE__ */ jsx9(Text9, { children: c.dim(
|
|
3451
3472
|
matchCount === 0 ? "no matches \xB7 Esc exit" : `${mode.active + 1}/${matchCount} matches \xB7 n/Enter next \xB7 N prev \xB7 Esc exit`
|
|
3452
3473
|
) }),
|
|
@@ -3456,45 +3477,50 @@ function App({
|
|
|
3456
3477
|
const snapshotLines = formatStatusPayload(payload);
|
|
3457
3478
|
const paneLines = output?.lines ?? snapshotLines ?? [];
|
|
3458
3479
|
const paneTitle = output?.title ?? "snapshot";
|
|
3459
|
-
return /* @__PURE__ */ jsxs8(
|
|
3480
|
+
return /* @__PURE__ */ jsxs8(Box5, { flexDirection: "column", children: [
|
|
3460
3481
|
/* @__PURE__ */ jsx9(Header, { tagline: "dashboard" }),
|
|
3461
|
-
/* @__PURE__ */
|
|
3462
|
-
|
|
3482
|
+
/* @__PURE__ */ jsxs8(Box5, { flexDirection: "column", borderStyle: "round", borderColor: "gray", width: contentWidth() + 4, children: [
|
|
3483
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(StatusBar, { payload, loading }) }),
|
|
3484
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: divider() }) }),
|
|
3485
|
+
/* @__PURE__ */ jsx9(Box5, { flexDirection: "column", paddingX: 1, children: /* @__PURE__ */ jsx9(OutputPane, { lines: paneLines, scrollOffset, title: paneTitle }) })
|
|
3486
|
+
] }),
|
|
3463
3487
|
/* @__PURE__ */ jsx9(CommandInput, { buffer, running }),
|
|
3464
3488
|
notice !== null ? /* @__PURE__ */ jsx9(Text9, { children: c.dim(notice) }) : null,
|
|
3465
3489
|
/* @__PURE__ */ jsx9(Footer, { running })
|
|
3466
3490
|
] });
|
|
3467
3491
|
}
|
|
3468
3492
|
function Help() {
|
|
3469
|
-
return /* @__PURE__ */ jsxs8(
|
|
3493
|
+
return /* @__PURE__ */ jsxs8(Box5, { flexDirection: "column", children: [
|
|
3470
3494
|
/* @__PURE__ */ jsx9(Header, { tagline: "help" }),
|
|
3471
|
-
/* @__PURE__ */
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
"
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3495
|
+
/* @__PURE__ */ jsxs8(Box5, { flexDirection: "column", borderStyle: "round", borderColor: "gray", width: contentWidth() + 4, children: [
|
|
3496
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.bold("Keybindings") }) }),
|
|
3497
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" /<command> run a Noir sub-command (e.g. /status, /sync, /task next)") }) }),
|
|
3498
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" Enter run the typed /command") }) }),
|
|
3499
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" Esc back: clear input \u2192 dismiss output \u2192 quit") }) }),
|
|
3500
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" q quit (when the input is empty)") }) }),
|
|
3501
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" h open the curated home quick-actions (home menu)") }) }),
|
|
3502
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" \u2191 / \u2193 scroll the output pane") }) }),
|
|
3503
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" ? toggle this help") }) }),
|
|
3504
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" Ctrl+K open the command palette") }) }),
|
|
3505
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" Ctrl+F find in the dispatched output pane") }) }),
|
|
3506
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" n / N next / previous match in search (Enter = next)") }) }),
|
|
3507
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" y / n approve / decline a destructive command prompt") }) }),
|
|
3508
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" Ctrl+C force exit") }) }),
|
|
3509
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: divider() }) }),
|
|
3510
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.bold("Home menu (h)") }) }),
|
|
3511
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" The curated quick actions mirror the bare-`noir` home menu:") }) }),
|
|
3512
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(
|
|
3513
|
+
" Status & context \xB7 Memory \xB7 Workflow \xB7 Setup & maintenance \xB7 Dashboard"
|
|
3514
|
+
) }) }),
|
|
3515
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: divider() }) }),
|
|
3516
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.bold("Commands") }) }),
|
|
3517
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" Dispatched through the same routing as `noir` at the prompt.") }) }),
|
|
3518
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(
|
|
3519
|
+
" /status /sync /doctor /context search <q> /task next /memory recall <q>"
|
|
3520
|
+
) }) }),
|
|
3521
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" Commands that need their own interactive prompts (e.g. a /sync with a") }) }),
|
|
3522
|
+
/* @__PURE__ */ jsx9(Box5, { paddingX: 1, children: /* @__PURE__ */ jsx9(Text9, { children: c.dim(" conflict) are best run directly \u2014 exit first with q.") }) })
|
|
3523
|
+
] }),
|
|
3498
3524
|
/* @__PURE__ */ jsx9(Text9, { children: c.dim("press ? / Esc / q to close this help") })
|
|
3499
3525
|
] });
|
|
3500
3526
|
}
|