@pentoshi/clai 3.8.9 → 3.8.11
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/tui-v2/app/commands/config-commands.js +35 -10
- package/dist/tui-v2/app/commands/config-commands.js.map +1 -1
- package/dist/tui-v2/app/commands/session-commands.js +4 -6
- package/dist/tui-v2/app/commands/session-commands.js.map +1 -1
- package/dist/tui-v2/components/modal/scope-modal.d.ts +17 -0
- package/dist/tui-v2/components/modal/scope-modal.js +133 -0
- package/dist/tui-v2/components/modal/scope-modal.js.map +1 -0
- package/dist/tui-v2/components/overlay/overlay-host.js +3 -2
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
- package/dist/tui-v2/components/pager/pager-line.js +2 -2
- package/dist/tui-v2/components/pager/pager-line.js.map +1 -1
- package/dist/tui-v2/components/pager/pager.js +28 -17
- package/dist/tui-v2/components/pager/pager.js.map +1 -1
- package/dist/tui-v2/components/status/status-line.js +2 -2
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +2 -1
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/file-diff-card.js +24 -2
- package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/tool-card.js +51 -4
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/controllers/overlay-controller.d.ts +18 -0
- package/dist/tui-v2/controllers/overlay-controller.js +20 -0
- package/dist/tui-v2/controllers/overlay-controller.js.map +1 -1
- package/dist/tui-v2/rendering/open-tool-output.js +33 -4
- package/dist/tui-v2/rendering/open-tool-output.js.map +1 -1
- package/dist/tui-v2/rendering/pager-markdown.d.ts +6 -0
- package/dist/tui-v2/rendering/pager-markdown.js +21 -0
- package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
- package/dist/tui-v2/rendering/pager-view-policy.d.ts +34 -0
- package/dist/tui-v2/rendering/pager-view-policy.js +102 -0
- package/dist/tui-v2/rendering/pager-view-policy.js.map +1 -0
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/dist/version.generated.js.map +1 -1
- package/package.json +1 -1
|
@@ -48,18 +48,19 @@ export function handleMouse(services, invocation) {
|
|
|
48
48
|
notice(services, "warn", "usage: /mouse [on|off]");
|
|
49
49
|
}
|
|
50
50
|
export async function handleScope(services, invocation) {
|
|
51
|
-
const
|
|
51
|
+
const trimmed = invocation.args.trim();
|
|
52
|
+
const [sub = "", ...parts] = trimmed.split(/\s+/).filter(Boolean);
|
|
53
|
+
// Bare `/scope` or `/scope edit` → multi-input modal.
|
|
54
|
+
const openEditor = !sub ||
|
|
55
|
+
sub === "edit" ||
|
|
56
|
+
sub === "ui" ||
|
|
57
|
+
(sub === "show" && parts.length === 0) ||
|
|
58
|
+
(sub === "list" && parts.length === 0) ||
|
|
59
|
+
(sub === "ls" && parts.length === 0);
|
|
52
60
|
try {
|
|
53
61
|
if (["clear", "reset", "off"].includes(sub)) {
|
|
54
62
|
await clearScope();
|
|
55
|
-
notice(services, "info", "engagement scope cleared");
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (sub === "show" || sub === "list" || sub === "ls") {
|
|
59
|
-
const scope = await loadScope();
|
|
60
|
-
notice(services, "info", scope
|
|
61
|
-
? `scope: ${scope.name ?? "unnamed"} · ${scope.authorizedTargets.join(", ")}`
|
|
62
|
-
: "no engagement scope configured");
|
|
63
|
+
notice(services, "info", "engagement scope cleared · scoping disabled");
|
|
63
64
|
return;
|
|
64
65
|
}
|
|
65
66
|
if (sub === "add") {
|
|
@@ -85,7 +86,31 @@ export async function handleScope(services, invocation) {
|
|
|
85
86
|
notice(services, "info", `scope created · ${targets.join(", ")}`);
|
|
86
87
|
return;
|
|
87
88
|
}
|
|
88
|
-
|
|
89
|
+
if (openEditor) {
|
|
90
|
+
const current = await loadScope();
|
|
91
|
+
const initial = current?.authorizedTargets ?? [];
|
|
92
|
+
const result = await services.overlay.openScopeEditor({
|
|
93
|
+
initialTargets: initial,
|
|
94
|
+
});
|
|
95
|
+
if (result === undefined) {
|
|
96
|
+
// Cancelled or another overlay was open.
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (result.length === 0) {
|
|
100
|
+
await clearScope();
|
|
101
|
+
notice(services, "info", "engagement scope cleared · scoping disabled");
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
// Replace list: clear then add (normalizes hostnames / URLs).
|
|
105
|
+
await clearScope();
|
|
106
|
+
const scope = await addScopeTargets(result, {
|
|
107
|
+
name: current?.name,
|
|
108
|
+
createdAt: current?.createdAt,
|
|
109
|
+
});
|
|
110
|
+
notice(services, "info", `scope saved · ${scope.authorizedTargets.join(", ")}`);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
notice(services, "warn", "usage: /scope · /scope add <targets> · /scope new <targets> · /scope clear");
|
|
89
114
|
}
|
|
90
115
|
catch (error) {
|
|
91
116
|
notice(services, "warn", error instanceof Error ? error.message : String(error));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-commands.js","sourceRoot":"","sources":["../../../../src/tui-v2/app/commands/config-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAI3E,SAAS,MAAM,CAAC,QAAqB,EAAE,KAAsB,EAAE,IAAY;IACzE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACvD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAqB,EAAE,UAA6B;IACjF,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IACD,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAqB,EAAE,UAA6B;IACjF,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,oBAAoB,SAAS,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IACD,YAAY,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAqB,EAAE,UAA6B;IAC9E,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjD,6EAA6E;IAC7E,wEAAwE;IACxE,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,CACJ,QAAQ,EACR,MAAM,EACN,gGAAgG,CACjG,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAqB,EACrB,UAA6B;IAE7B,MAAM,CAAC,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"config-commands.js","sourceRoot":"","sources":["../../../../src/tui-v2/app/commands/config-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ function notice(services, level, text) {
|
|
|
18
18
|
function flash(services, text, opts = {}) {
|
|
19
19
|
notify(services, text, {
|
|
20
20
|
level: opts.level ?? "info",
|
|
21
|
-
durationMs: 1600,
|
|
21
|
+
durationMs: opts.durationMs ?? 1600,
|
|
22
22
|
...(opts.key ? { key: opts.key } : {}),
|
|
23
23
|
});
|
|
24
24
|
}
|
|
@@ -102,7 +102,7 @@ export async function handleCompact(services) {
|
|
|
102
102
|
notice(services, "info", "nothing to compact yet — more conversation is needed");
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
|
-
|
|
105
|
+
// Status line already shows "compacting · Ns" — no transcript notice spam.
|
|
106
106
|
try {
|
|
107
107
|
// Classic-style structured transcript (prompts, tools+outputs, answers,
|
|
108
108
|
// prior compacted memory from the last card onward). Combined with model
|
|
@@ -116,10 +116,8 @@ export async function handleCompact(services) {
|
|
|
116
116
|
}
|
|
117
117
|
const freed = Math.max(0, result.beforeTokens - result.afterTokens);
|
|
118
118
|
const pct = result.beforeTokens > 0 ? Math.round((freed / result.beforeTokens) * 100) : 0;
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
`freed ~${freed.toLocaleString()} tokens (${pct}% smaller, ` +
|
|
122
|
-
`~${result.beforeTokens.toLocaleString()} → ~${result.afterTokens.toLocaleString()} est.)`);
|
|
119
|
+
// Compacted card is already in the transcript; short toast only (no notice row).
|
|
120
|
+
flash(services, `compacted · −${pct}% · ~${result.beforeTokens.toLocaleString()}→~${result.afterTokens.toLocaleString()} (−${freed.toLocaleString()} tok)`, { key: "compact", durationMs: 2200 });
|
|
123
121
|
}
|
|
124
122
|
catch (error) {
|
|
125
123
|
if (error instanceof Error && error.name === "AbortError") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-commands.js","sourceRoot":"","sources":["../../../../src/tui-v2/app/commands/session-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAIxE,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,SAAS,MAAM,CAAC,QAAqB,EAAE,KAAsB,EAAE,IAAY;IACzE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,kEAAkE;AAClE,SAAS,KAAK,CACZ,QAAqB,EACrB,IAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"session-commands.js","sourceRoot":"","sources":["../../../../src/tui-v2/app/commands/session-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @jsxImportSource @opentui/react */
|
|
2
|
+
/**
|
|
3
|
+
* Engagement scope editor — multi-row target inputs docked above the composer.
|
|
4
|
+
*
|
|
5
|
+
* Empty targets = scoping disabled. Add more rows with + / Ctrl+A.
|
|
6
|
+
*/
|
|
7
|
+
import { type ReactNode } from "react";
|
|
8
|
+
import type { AppServices } from "../../bootstrap/composition-root.js";
|
|
9
|
+
import type { Theme } from "../../rendering/theme.js";
|
|
10
|
+
import type { ScopeEditorRequest } from "../../controllers/overlay-controller.js";
|
|
11
|
+
export interface ScopeModalProps {
|
|
12
|
+
readonly services: AppServices;
|
|
13
|
+
readonly theme: Theme;
|
|
14
|
+
readonly request: ScopeEditorRequest;
|
|
15
|
+
readonly docked?: boolean | undefined;
|
|
16
|
+
}
|
|
17
|
+
export declare function ScopeModal(props: ScopeModalProps): ReactNode;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @opentui/react */
|
|
3
|
+
/**
|
|
4
|
+
* Engagement scope editor — multi-row target inputs docked above the composer.
|
|
5
|
+
*
|
|
6
|
+
* Empty targets = scoping disabled. Add more rows with + / Ctrl+A.
|
|
7
|
+
*/
|
|
8
|
+
import { useEffect, useRef, useState } from "react";
|
|
9
|
+
import { useKeyboard } from "@opentui/react";
|
|
10
|
+
import { TextAttributes } from "@opentui/core";
|
|
11
|
+
import { chordFromKeyEvent } from "../../actions/chord-from-key.js";
|
|
12
|
+
const ACCENT = "#2EEBFF";
|
|
13
|
+
export function ScopeModal(props) {
|
|
14
|
+
const { services, theme, request, docked } = props;
|
|
15
|
+
const seed = request.initialTargets.length > 0 ? [...request.initialTargets, ""] : [""];
|
|
16
|
+
const [rowCount, setRowCount] = useState(seed.length);
|
|
17
|
+
const [focusIdx, setFocusIdx] = useState(0);
|
|
18
|
+
/** Live text mirrors for display / save (inputs are uncontrolled via ref). */
|
|
19
|
+
const [drafts, setDrafts] = useState(seed);
|
|
20
|
+
const inputRefs = useRef([]);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
queueMicrotask(() => {
|
|
23
|
+
const el = inputRefs.current[focusIdx];
|
|
24
|
+
el?.focus();
|
|
25
|
+
// Prefill from seed once the ref is live.
|
|
26
|
+
if (el && drafts[focusIdx] && el.plainText !== drafts[focusIdx]) {
|
|
27
|
+
try {
|
|
28
|
+
el.setText?.(drafts[focusIdx]);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
/* setText may be unavailable on some builds */
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}, [focusIdx, rowCount]);
|
|
36
|
+
function readTargets() {
|
|
37
|
+
const out = [];
|
|
38
|
+
for (let i = 0; i < rowCount; i++) {
|
|
39
|
+
const fromRef = inputRefs.current[i]?.plainText?.trim() ?? "";
|
|
40
|
+
const fromDraft = (drafts[i] ?? "").trim();
|
|
41
|
+
const v = fromRef || fromDraft;
|
|
42
|
+
if (v)
|
|
43
|
+
out.push(v);
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
function syncDraft(index) {
|
|
48
|
+
const text = inputRefs.current[index]?.plainText ?? "";
|
|
49
|
+
setDrafts((prev) => {
|
|
50
|
+
const next = [...prev];
|
|
51
|
+
while (next.length < rowCount)
|
|
52
|
+
next.push("");
|
|
53
|
+
next[index] = text;
|
|
54
|
+
return next;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function addRow() {
|
|
58
|
+
setRowCount((n) => n + 1);
|
|
59
|
+
setDrafts((prev) => [...prev, ""]);
|
|
60
|
+
setFocusIdx(rowCount);
|
|
61
|
+
}
|
|
62
|
+
function submit() {
|
|
63
|
+
services.overlay.answerScope(readTargets());
|
|
64
|
+
}
|
|
65
|
+
function clearAll() {
|
|
66
|
+
services.overlay.answerScope([]);
|
|
67
|
+
}
|
|
68
|
+
useKeyboard((key) => {
|
|
69
|
+
if (key.eventType === "release")
|
|
70
|
+
return;
|
|
71
|
+
const chord = chordFromKeyEvent(key);
|
|
72
|
+
if (chord === "escape") {
|
|
73
|
+
key.preventDefault();
|
|
74
|
+
services.overlay.answerScope(undefined);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (chord === "ctrl+a") {
|
|
78
|
+
key.preventDefault();
|
|
79
|
+
addRow();
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (chord === "ctrl+enter" || chord === "meta+enter") {
|
|
83
|
+
key.preventDefault();
|
|
84
|
+
submit();
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (chord === "enter") {
|
|
88
|
+
key.preventDefault();
|
|
89
|
+
syncDraft(focusIdx);
|
|
90
|
+
const cur = inputRefs.current[focusIdx]?.plainText?.trim() ??
|
|
91
|
+
(drafts[focusIdx] ?? "").trim();
|
|
92
|
+
if (focusIdx === rowCount - 1 && cur.length > 0) {
|
|
93
|
+
addRow();
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
submit();
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
const liveTargets = readTargets();
|
|
100
|
+
const scopingOff = liveTargets.length === 0;
|
|
101
|
+
return (_jsxs("box", { border: true, borderStyle: "rounded", style: {
|
|
102
|
+
flexDirection: "column",
|
|
103
|
+
width: docked ? "100%" : "80%",
|
|
104
|
+
borderColor: ACCENT,
|
|
105
|
+
backgroundColor: theme.statusBackground,
|
|
106
|
+
paddingLeft: 1,
|
|
107
|
+
paddingRight: 1,
|
|
108
|
+
paddingTop: 0,
|
|
109
|
+
paddingBottom: 0,
|
|
110
|
+
}, children: [_jsxs("box", { style: { flexDirection: "row", width: "100%" }, children: [_jsx("text", { style: {
|
|
111
|
+
fg: theme.background,
|
|
112
|
+
bg: ACCENT,
|
|
113
|
+
attributes: TextAttributes.BOLD,
|
|
114
|
+
}, children: " SCOPE " }), _jsx("text", { content: " " }), _jsx("text", { style: { fg: theme.muted, attributes: TextAttributes.DIM }, children: "authorized targets \u00B7 empty = scoping disabled" })] }), scopingOff ? (_jsx("text", { content: "Scoping disabled \u2014 no authorized targets. Active recon is unrestricted until you add hosts.", style: { fg: theme.mode, attributes: TextAttributes.DIM } })) : (_jsx("text", { content: `Will authorize: ${liveTargets.join(", ")}`, style: { fg: theme.muted, attributes: TextAttributes.DIM } })), Array.from({ length: rowCount }, (_, index) => (_jsxs("box", { style: { flexDirection: "row", width: "100%" }, children: [_jsx("text", { content: `${index + 1}. `, style: { fg: theme.muted, width: 4, flexShrink: 0 } }), _jsx("input", { ref: (el) => {
|
|
115
|
+
inputRefs.current[index] = el;
|
|
116
|
+
}, focused: focusIdx === index, placeholder: "host or domain (e.g. example.com)", onContentChange: () => {
|
|
117
|
+
syncDraft(index);
|
|
118
|
+
setFocusIdx(index);
|
|
119
|
+
}, backgroundColor: theme.background, textColor: theme.foreground, focusedBackgroundColor: theme.background, focusedTextColor: theme.foreground, cursorColor: ACCENT, style: { flexGrow: 1, minWidth: 24 } })] }, index))), _jsxs("box", { style: { flexDirection: "row", width: "100%" }, children: [_jsx("text", { content: " + add ", style: {
|
|
120
|
+
fg: theme.background,
|
|
121
|
+
bg: theme.chip,
|
|
122
|
+
attributes: TextAttributes.BOLD,
|
|
123
|
+
}, onMouseDown: () => addRow() }), _jsx("text", { content: " " }), _jsx("text", { content: " Save ", style: {
|
|
124
|
+
fg: theme.background,
|
|
125
|
+
bg: theme.success,
|
|
126
|
+
attributes: TextAttributes.BOLD,
|
|
127
|
+
}, onMouseDown: () => submit() }), _jsx("text", { content: " " }), _jsx("text", { content: " Clear (disable) ", style: {
|
|
128
|
+
fg: theme.white,
|
|
129
|
+
bg: theme.failedBg,
|
|
130
|
+
attributes: TextAttributes.BOLD,
|
|
131
|
+
}, onMouseDown: () => clearAll() }), _jsx("text", { content: " " }), _jsx("text", { content: " Cancel ", style: { fg: theme.foreground, bg: theme.chip }, onMouseDown: () => services.overlay.answerScope(undefined) })] }), _jsx("text", { content: "enter:save \u00B7 ^a / +:add row \u00B7 clear:disable scope \u00B7 esc:cancel", style: { fg: theme.muted, attributes: TextAttributes.DIM } })] }));
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=scope-modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-modal.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/modal/scope-modal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,11 @@ import { Picker } from "../picker/picker.js";
|
|
|
4
4
|
import { ConfirmModal } from "../modal/confirm-modal.js";
|
|
5
5
|
import { PromptActionsModal } from "../modal/prompt-actions-modal.js";
|
|
6
6
|
import { SecretModal } from "../modal/secret-modal.js";
|
|
7
|
+
import { ScopeModal } from "../modal/scope-modal.js";
|
|
7
8
|
import { Pager } from "../pager/pager.js";
|
|
8
9
|
import { JobsPanel } from "../jobs/jobs-panel.js";
|
|
9
10
|
function isDockedKind(kind) {
|
|
10
|
-
return kind === "confirm" || kind === "secret";
|
|
11
|
+
return kind === "confirm" || kind === "secret" || kind === "scope-editor";
|
|
11
12
|
}
|
|
12
13
|
export function OverlayHost(props) {
|
|
13
14
|
const { services, theme, width, height, docked } = props;
|
|
@@ -23,7 +24,7 @@ export function OverlayHost(props) {
|
|
|
23
24
|
width: "100%",
|
|
24
25
|
flexShrink: 0,
|
|
25
26
|
marginBottom: 1,
|
|
26
|
-
}, children: [state.kind === "confirm" ? (_jsx(ConfirmModal, { services: services, theme: theme, request: state.request, onViewPlan: state.onViewPlan, onViewFile: state.onViewFile, docked: true })) : null, state.kind === "secret" ? (_jsx(SecretModal, { services: services, theme: theme, request: state.request, docked: true })) : null] }));
|
|
27
|
+
}, children: [state.kind === "confirm" ? (_jsx(ConfirmModal, { services: services, theme: theme, request: state.request, onViewPlan: state.onViewPlan, onViewFile: state.onViewFile, docked: true })) : null, state.kind === "secret" ? (_jsx(SecretModal, { services: services, theme: theme, request: state.request, docked: true })) : null, state.kind === "scope-editor" ? (_jsx(ScopeModal, { services: services, theme: theme, request: state.request, docked: true })) : null] }));
|
|
27
28
|
}
|
|
28
29
|
// Full-screen host: skip confirm/secret (they live in the dock).
|
|
29
30
|
if (isDockedKind(state.kind))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-host.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/overlay/overlay-host.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAclD,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"overlay-host.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/overlay/overlay-host.tsx"],"names":[],"mappings":"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"}
|
|
@@ -79,12 +79,12 @@ export function PagerLine(props) {
|
|
|
79
79
|
if (markdownMode) {
|
|
80
80
|
const body = line.length > 0 ? line : " ";
|
|
81
81
|
if (!hasQuery && styled) {
|
|
82
|
-
return (_jsx("text", { id: `pager-line-${index}`, content: styled, selectable: true }));
|
|
82
|
+
return (_jsx("text", { id: `pager-line-${index}`, content: styled, selectable: true, wrapMode: "none" }));
|
|
83
83
|
}
|
|
84
84
|
const isMatchLine = hasQuery &&
|
|
85
85
|
matches.length > 0 &&
|
|
86
86
|
matches.some((m) => m.line === index);
|
|
87
|
-
return (_jsx("text", { id: `pager-line-${index}`, content: body, selectable: true, style: {
|
|
87
|
+
return (_jsx("text", { id: `pager-line-${index}`, content: body, selectable: true, wrapMode: "none", style: {
|
|
88
88
|
fg: isActiveLine ? theme.background : theme.foreground,
|
|
89
89
|
...(isActiveLine
|
|
90
90
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pager-line.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/pager/pager-line.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pager-line.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/pager/pager-line.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ import { chordFromKeyEvent } from "../../actions/chord-from-key.js";
|
|
|
16
16
|
import { findPagerMatches, nextPagerMatch, prevPagerMatch, } from "../../state/pager-search.js";
|
|
17
17
|
import { fitOneLine, padChromeRow, wrapPagerLine, } from "../../rendering/pager-chrome.js";
|
|
18
18
|
import { emptyCarry, } from "../../rendering/syntax-highlight.js";
|
|
19
|
-
import { preparePagerDisplay, } from "../../rendering/pager-markdown.js";
|
|
19
|
+
import { preparePagerDisplay, stripPagerLineGutters, } from "../../rendering/pager-markdown.js";
|
|
20
20
|
import { PagerLine, bodyOnlyForCopy, parseDiffLine, } from "./pager-line.js";
|
|
21
21
|
const HIDDEN_SCROLLBARS = {
|
|
22
22
|
visible: false,
|
|
@@ -45,30 +45,40 @@ export function Pager(props) {
|
|
|
45
45
|
const contentCols = Math.max(24, pagerOuterCols - 10);
|
|
46
46
|
// Meta/footer rows (with their padding) — exact column budget for padChromeRow.
|
|
47
47
|
const chromeCols = Math.max(20, contentCols - 4);
|
|
48
|
-
// f →
|
|
48
|
+
// f → strip line-number gutters + force markdown.
|
|
49
|
+
// r → always the original body (never the post-markdown plain extract).
|
|
49
50
|
const display = useMemo(() => {
|
|
50
|
-
|
|
51
|
+
if (viewMode === "formatted") {
|
|
52
|
+
const clean = stripPagerLineGutters(displayBody);
|
|
53
|
+
return preparePagerDisplay({
|
|
54
|
+
body: clean,
|
|
55
|
+
width: contentCols,
|
|
56
|
+
mode: "force",
|
|
57
|
+
defaultFg: theme.foreground,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
51
60
|
return preparePagerDisplay({
|
|
52
61
|
body: displayBody,
|
|
53
62
|
width: contentCols,
|
|
54
|
-
mode,
|
|
63
|
+
mode: "plain",
|
|
55
64
|
defaultFg: theme.foreground,
|
|
56
65
|
});
|
|
57
66
|
}, [displayBody, contentCols, viewMode, theme.foreground]);
|
|
58
67
|
const lines = useMemo(() => display.lines.map((l) => l.plain), [display.lines]);
|
|
59
|
-
|
|
68
|
+
// Syntax gutters only for raw file/diff viewers — never for markdown format.
|
|
69
|
+
const pathForHighlight = viewMode === "raw" && highlightPath ? highlightPath : title;
|
|
70
|
+
const useDiffGutters = viewMode === "raw" && Boolean(highlightPath) && display.mode === "plain";
|
|
60
71
|
// Search haystack:
|
|
61
|
-
// - markdown: full plain lines (never strip "│" as a diff gutter
|
|
62
|
-
//
|
|
63
|
-
// - file-diff dumps: code-only so gutters are not matched
|
|
72
|
+
// - markdown: full plain lines (never strip "│" as a diff gutter)
|
|
73
|
+
// - raw file-diff: code only so gutters are not matched
|
|
64
74
|
const searchLines = useMemo(() => {
|
|
65
|
-
if (display.mode === "markdown")
|
|
75
|
+
if (display.mode === "markdown" || !useDiffGutters)
|
|
66
76
|
return lines;
|
|
67
77
|
return lines.map((line) => {
|
|
68
78
|
const p = parseDiffLine(line);
|
|
69
79
|
return p ? p.code : line;
|
|
70
80
|
});
|
|
71
|
-
}, [lines, display.mode]);
|
|
81
|
+
}, [lines, display.mode, useDiffGutters]);
|
|
72
82
|
const [searchOpen, setSearchOpen] = useState(false);
|
|
73
83
|
const [query, setQuery] = useState("");
|
|
74
84
|
const [matchIndex, setMatchIndex] = useState(-1);
|
|
@@ -509,20 +519,21 @@ export function Pager(props) {
|
|
|
509
519
|
marginBottom: 0,
|
|
510
520
|
paddingLeft: 1,
|
|
511
521
|
paddingRight: 1,
|
|
512
|
-
// File-diff modals stay dense;
|
|
513
|
-
paddingTop:
|
|
514
|
-
}, onMouseScroll: () => refreshScrollHint(), children: [!
|
|
522
|
+
// File-diff modals stay dense; format / plain keep a little air.
|
|
523
|
+
paddingTop: useDiffGutters ? 0 : 1,
|
|
524
|
+
}, onMouseScroll: () => refreshScrollHint(), children: [!useDiffGutters ? (_jsx("text", { content: " ", style: { height: 1 } })) : null, lines.flatMap((line, index) => {
|
|
515
525
|
const row = display.lines[index];
|
|
516
526
|
const isMd = display.mode === "markdown";
|
|
517
527
|
// Markdown lines are already width-wrapped by renderMarkdown; paint
|
|
518
528
|
// one StyledText row each (search falls back to plain segments).
|
|
519
529
|
if (isMd) {
|
|
520
530
|
return [
|
|
521
|
-
_jsx(PagerLine, { line: line, index: index, theme: theme, matches: matches, activeMatchIndex: matchIndex, hasQuery: hasQuery, highlightPath:
|
|
531
|
+
_jsx(PagerLine, { line: line, index: index, theme: theme, matches: matches, activeMatchIndex: matchIndex, hasQuery: hasQuery, highlightPath: "", carry: syntaxCarry, styled: row?.styled, markdownMode: true }, `md-${index}-0`),
|
|
522
532
|
];
|
|
523
533
|
}
|
|
524
|
-
//
|
|
525
|
-
|
|
534
|
+
// Diff gutters only in raw file-viewer mode — never eat compacted
|
|
535
|
+
// / help text that happens to contain " │ ".
|
|
536
|
+
const parsed = useDiffGutters ? parseDiffLine(line) : null;
|
|
526
537
|
if (parsed) {
|
|
527
538
|
// Soft-wrap code only; keep internal mark so parseDiffLine still
|
|
528
539
|
// knows add/del tone. PagerLine does not paint +/-.
|
|
@@ -543,7 +554,7 @@ export function Pager(props) {
|
|
|
543
554
|
});
|
|
544
555
|
}
|
|
545
556
|
return wrapPagerLine(line, contentCols).map((chunk, part) => (_jsx(PagerLine, { line: chunk, index: index, theme: theme, matches: matches, activeMatchIndex: matchIndex, hasQuery: hasQuery, highlightPath: pathForHighlight, carry: syntaxCarry }, `${index}-${part}`)));
|
|
546
|
-
}), !
|
|
557
|
+
}), !useDiffGutters ? (_jsx("text", { content: " ", style: { height: 1 } })) : null] }), _jsx("box", { style: {
|
|
547
558
|
flexDirection: "row",
|
|
548
559
|
width: "100%",
|
|
549
560
|
height: 1,
|