@pentoshi/clai 3.7.6 → 3.7.8
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/agent/events.d.ts +7 -0
- package/dist/agent/runner.js +7 -0
- package/dist/agent/runner.js.map +1 -1
- package/dist/app/adapters/agent-event-adapter.js +9 -0
- package/dist/app/adapters/agent-event-adapter.js.map +1 -1
- package/dist/app/adapters/current-store-adapter.js +3 -2
- package/dist/app/adapters/current-store-adapter.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +32 -1
- package/dist/app/controllers/session-controller.js +69 -1
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/events/app-event.d.ts +7 -0
- package/dist/app/events/app-event.js.map +1 -1
- package/dist/app/ports/persistence-port.d.ts +3 -0
- package/dist/commands/update.js +1 -1
- package/dist/llm/agentrouter.js +3 -15
- package/dist/llm/agentrouter.js.map +1 -1
- package/dist/llm/anthropic.js +26 -2
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/aws-mantle.js +3 -15
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/bynara.js +3 -15
- package/dist/llm/bynara.js.map +1 -1
- package/dist/llm/gemini.js +8 -0
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/groq.js +3 -15
- package/dist/llm/groq.js.map +1 -1
- package/dist/llm/http.d.ts +4 -1
- package/dist/llm/http.js +29 -1
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/kimchi.js +3 -15
- package/dist/llm/kimchi.js.map +1 -1
- package/dist/llm/nvidia.js +3 -15
- package/dist/llm/nvidia.js.map +1 -1
- package/dist/llm/ollama.js +14 -0
- package/dist/llm/ollama.js.map +1 -1
- package/dist/llm/openai.js +3 -15
- package/dist/llm/openai.js.map +1 -1
- package/dist/llm/openrouter.js +3 -15
- package/dist/llm/openrouter.js.map +1 -1
- package/dist/llm/qwen-cloud.js +3 -15
- package/dist/llm/qwen-cloud.js.map +1 -1
- package/dist/llm/token-usage.d.ts +70 -0
- package/dist/llm/token-usage.js +209 -0
- package/dist/llm/token-usage.js.map +1 -0
- package/dist/safety/engagement-policy.d.ts +6 -0
- package/dist/safety/engagement-policy.js +53 -2
- package/dist/safety/engagement-policy.js.map +1 -1
- package/dist/store/history.d.ts +16 -2
- package/dist/store/history.js +19 -4
- package/dist/store/history.js.map +1 -1
- package/dist/store/scope.d.ts +2 -0
- package/dist/store/scope.js +54 -8
- package/dist/store/scope.js.map +1 -1
- package/dist/tools/file-diff.js +12 -3
- package/dist/tools/file-diff.js.map +1 -1
- package/dist/tools/fs.js +3 -1
- package/dist/tools/fs.js.map +1 -1
- package/dist/tui/state.d.ts +6 -0
- package/dist/tui/state.js +2 -1
- package/dist/tui/state.js.map +1 -1
- package/dist/tui-v2/actions/keymap.js +16 -8
- package/dist/tui-v2/actions/keymap.js.map +1 -1
- package/dist/tui-v2/app/App.js +22 -4
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/app/commands/picker-commands.js +9 -2
- package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
- package/dist/tui-v2/app/commands/session-commands.js +13 -7
- package/dist/tui-v2/app/commands/session-commands.js.map +1 -1
- package/dist/tui-v2/bootstrap/composition-root.js +10 -2
- package/dist/tui-v2/bootstrap/composition-root.js.map +1 -1
- package/dist/tui-v2/components/pager/pager.js +25 -7
- package/dist/tui-v2/components/pager/pager.js.map +1 -1
- package/dist/tui-v2/components/plan/plan-view.d.ts +4 -5
- package/dist/tui-v2/components/plan/plan-view.js +138 -31
- package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
- package/dist/tui-v2/components/status/status-line.d.ts +4 -4
- package/dist/tui-v2/components/status/status-line.js +25 -7
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/components/transcript/file-diff-card.d.ts +25 -0
- package/dist/tui-v2/components/transcript/file-diff-card.js +116 -0
- package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -0
- package/dist/tui-v2/components/transcript/tool-card.js +69 -108
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-row.js +9 -1
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-scroll-port.d.ts +7 -0
- package/dist/tui-v2/components/transcript/transcript-scroll-port.js +25 -0
- package/dist/tui-v2/components/transcript/transcript-scroll-port.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +20 -3
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/components/transcript/user-message.js +1 -0
- package/dist/tui-v2/components/transcript/user-message.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +3 -1
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/rendering/file-diff-view.d.ts +4 -1
- package/dist/tui-v2/rendering/file-diff-view.js +13 -6
- package/dist/tui-v2/rendering/file-diff-view.js.map +1 -1
- package/dist/tui-v2/rendering/open-tool-output.d.ts +12 -0
- package/dist/tui-v2/rendering/open-tool-output.js +140 -17
- package/dist/tui-v2/rendering/open-tool-output.js.map +1 -1
- package/dist/tui-v2/rendering/plan-view.d.ts +22 -1
- package/dist/tui-v2/rendering/plan-view.js +56 -2
- package/dist/tui-v2/rendering/plan-view.js.map +1 -1
- package/dist/tui-v2/rendering/theme.d.ts +19 -5
- package/dist/tui-v2/rendering/theme.js +23 -7
- package/dist/tui-v2/rendering/theme.js.map +1 -1
- package/dist/tui-v2/rendering/tool-presenter.d.ts +5 -0
- package/dist/tui-v2/rendering/tool-presenter.js +57 -22
- package/dist/tui-v2/rendering/tool-presenter.js.map +1 -1
- package/dist/tui-v2/rendering/transcript-semantic.js +6 -1
- package/dist/tui-v2/rendering/transcript-semantic.js.map +1 -1
- package/dist/tui-v2/state/transcript-hydrate.d.ts +16 -0
- package/dist/tui-v2/state/transcript-hydrate.js +189 -29
- package/dist/tui-v2/state/transcript-hydrate.js.map +1 -1
- package/dist/tui-v2/state/transcript-reducer.js +2 -0
- package/dist/tui-v2/state/transcript-reducer.js.map +1 -1
- package/dist/tui-v2/state/transcript-types.d.ts +7 -0
- package/dist/tui-v2/state/transcript-types.js +17 -0
- package/dist/tui-v2/state/transcript-types.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/ui/intro-header.js +7 -3
- package/dist/ui/intro-header.js.map +1 -1
- package/package.json +1 -1
|
@@ -76,14 +76,82 @@ function extractSearchHits(parsed) {
|
|
|
76
76
|
}
|
|
77
77
|
return hits.length > 0 ? hits : undefined;
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Human path/command label for pager titles and headers.
|
|
81
|
+
* Never dump raw tool-arg JSON (history rows often store that).
|
|
82
|
+
*
|
|
83
|
+
* @param maxLen Cap for short titles only. Omit for full body headers so the
|
|
84
|
+
* pager shows the complete command (card already has it untruncated).
|
|
85
|
+
*/
|
|
86
|
+
export function cleanArgsLabel(name, argsDisplay, options = {}) {
|
|
87
|
+
const maxLen = options.maxLen;
|
|
88
|
+
const clip = (s) => {
|
|
89
|
+
if (maxLen === undefined || maxLen <= 0 || s.length <= maxLen)
|
|
90
|
+
return s;
|
|
91
|
+
if (maxLen <= 1)
|
|
92
|
+
return "…";
|
|
93
|
+
return `${s.slice(0, Math.max(0, maxLen - 1))}…`;
|
|
94
|
+
};
|
|
95
|
+
const raw = (argsDisplay ?? "").trim();
|
|
96
|
+
if (!raw)
|
|
97
|
+
return "";
|
|
98
|
+
if (!raw.startsWith("{")) {
|
|
99
|
+
return clip(raw);
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
const parsed = JSON.parse(raw);
|
|
103
|
+
if (typeof parsed.path === "string" && parsed.path)
|
|
104
|
+
return clip(parsed.path);
|
|
105
|
+
if (typeof parsed.command === "string" && parsed.command) {
|
|
106
|
+
return clip(parsed.command);
|
|
107
|
+
}
|
|
108
|
+
if (typeof parsed.url === "string" && parsed.url)
|
|
109
|
+
return clip(parsed.url);
|
|
110
|
+
if (typeof parsed.pattern === "string" && parsed.pattern) {
|
|
111
|
+
return clip(parsed.pattern);
|
|
112
|
+
}
|
|
113
|
+
if (Array.isArray(parsed.files))
|
|
114
|
+
return clip(`${parsed.files.length} file(s)`);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
/* fall through */
|
|
118
|
+
}
|
|
119
|
+
// Truncated JSON (common in history) — pull a path-looking substring.
|
|
120
|
+
const pathHit = raw.match(/"path"\s*:\s*"((?:\\.|[^"\\])*)"/);
|
|
121
|
+
if (pathHit?.[1]) {
|
|
122
|
+
try {
|
|
123
|
+
return clip(JSON.parse(`"${pathHit[1]}"`));
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return clip(pathHit[1]);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
void name;
|
|
130
|
+
return clip(raw);
|
|
131
|
+
}
|
|
132
|
+
/** Absolute path for on-disk open (fs.read / similar) when recoverable. */
|
|
133
|
+
export function pathFromArgsDisplay(argsDisplay) {
|
|
134
|
+
const label = cleanArgsLabel("fs.read", argsDisplay);
|
|
135
|
+
if (!label)
|
|
136
|
+
return undefined;
|
|
137
|
+
// Plain absolute / home-relative path only — never treat shell commands as paths.
|
|
138
|
+
if (label.startsWith("/") || label.startsWith("~/") || /^[A-Za-z]:[\\/]/.test(label)) {
|
|
139
|
+
return label;
|
|
140
|
+
}
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
79
143
|
/** Short, stable title: `web.search · output` (args live in the body header). */
|
|
80
144
|
export function toolPagerTitle(name, argsDisplay) {
|
|
81
|
-
|
|
145
|
+
// Border title only — full command/path is in the pager body header.
|
|
146
|
+
const label = cleanArgsLabel(name, argsDisplay, { maxLen: 48 });
|
|
147
|
+
if (!label)
|
|
82
148
|
return `${name} · output`;
|
|
83
|
-
|
|
84
|
-
const short = argsDisplay.length > 48 ? `${argsDisplay.slice(0, 45)}…` : argsDisplay;
|
|
85
|
-
return `${name} · ${short}`;
|
|
149
|
+
return `${name} · ${label}`;
|
|
86
150
|
}
|
|
151
|
+
/** Inline full artifact into the pager when small enough (no paging UI needed). */
|
|
152
|
+
const INLINE_ARTIFACT_MAX_BYTES = 512 * 1024;
|
|
153
|
+
/** Cap when opening the real source file for fs.read in the pager. */
|
|
154
|
+
const FULL_SOURCE_FILE_MAX_BYTES = 2 * 1024 * 1024;
|
|
87
155
|
async function resolveFileChangeBody(change) {
|
|
88
156
|
let full = change;
|
|
89
157
|
if (!change.afterText && change.snapshotPath) {
|
|
@@ -137,18 +205,55 @@ export async function openToolOutputPager(services, item, options = {}) {
|
|
|
137
205
|
}
|
|
138
206
|
let body;
|
|
139
207
|
let artifactSource;
|
|
208
|
+
let highlightPath;
|
|
209
|
+
let openedSourceFile = false;
|
|
140
210
|
if (options.bodyOverride !== undefined) {
|
|
141
211
|
body = options.bodyOverride;
|
|
142
212
|
}
|
|
143
213
|
else {
|
|
144
214
|
body = services.session.spool.tail(asToolCallId(item.toolCallId));
|
|
145
|
-
|
|
215
|
+
// fs.read (and similar) often return a line-range slice to the model.
|
|
216
|
+
// When the user opens the card, prefer the full on-disk file so the pager
|
|
217
|
+
// is not stuck on "[lines 55-66 of 168] … call fs.read with offset=…".
|
|
218
|
+
if ((item.name === "fs.read" || item.name === "fs.cat") &&
|
|
219
|
+
options.bodyOverride === undefined) {
|
|
220
|
+
const sourcePath = pathFromArgsDisplay(item.argsDisplay);
|
|
221
|
+
if (sourcePath) {
|
|
222
|
+
try {
|
|
223
|
+
const info = await stat(sourcePath);
|
|
224
|
+
if (info.isFile() && info.size <= FULL_SOURCE_FILE_MAX_BYTES) {
|
|
225
|
+
body = await readFile(sourcePath, "utf8");
|
|
226
|
+
highlightPath = sourcePath;
|
|
227
|
+
openedSourceFile = true;
|
|
228
|
+
}
|
|
229
|
+
else if (info.isFile()) {
|
|
230
|
+
artifactSource = createArtifactPagerSource(sourcePath);
|
|
231
|
+
const firstPage = await artifactSource.readPage(0);
|
|
232
|
+
body = firstPage.body;
|
|
233
|
+
highlightPath = sourcePath;
|
|
234
|
+
openedSourceFile = true;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
/* keep spool body */
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (!openedSourceFile &&
|
|
243
|
+
item.artifactPath &&
|
|
244
|
+
!options.skipArtifact) {
|
|
146
245
|
try {
|
|
147
246
|
const info = await stat(item.artifactPath);
|
|
148
247
|
if (info.isFile() && info.size >= Buffer.byteLength(body, "utf8")) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
248
|
+
if (info.size <= INLINE_ARTIFACT_MAX_BYTES) {
|
|
249
|
+
// Full body up front — no artificial first-page truncation.
|
|
250
|
+
body = await readFile(item.artifactPath, "utf8");
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
artifactSource = createArtifactPagerSource(item.artifactPath);
|
|
254
|
+
const firstPage = await artifactSource.readPage(0);
|
|
255
|
+
body = firstPage.body;
|
|
256
|
+
}
|
|
152
257
|
}
|
|
153
258
|
}
|
|
154
259
|
catch {
|
|
@@ -159,27 +264,45 @@ export async function openToolOutputPager(services, item, options = {}) {
|
|
|
159
264
|
}
|
|
160
265
|
body = body
|
|
161
266
|
.replace(/^(ok|failed)\n/gm, "")
|
|
267
|
+
.replace(/^Tool\s+\S+\s+result\s*\([^)]*\)\s*:?\s*\n?/gim, "")
|
|
162
268
|
.replace(/^full output saved to .+\n?/gim, "")
|
|
163
269
|
.replace(/^artifact: .+\n?/gim, "")
|
|
164
270
|
.trimEnd();
|
|
165
271
|
if (!artifactSource)
|
|
166
272
|
body = formatToolPagerBody(body);
|
|
167
|
-
//
|
|
273
|
+
// Full command/path header in the body (never ellipsize — title is short).
|
|
168
274
|
let header = "";
|
|
169
|
-
if (options.bodyOverride === undefined
|
|
170
|
-
item.argsDisplay
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
275
|
+
if (options.bodyOverride === undefined) {
|
|
276
|
+
const label = cleanArgsLabel(item.name, item.argsDisplay);
|
|
277
|
+
if (label) {
|
|
278
|
+
const kind = item.name === "shell.exec"
|
|
279
|
+
? "command"
|
|
280
|
+
: openedSourceFile
|
|
281
|
+
? "file"
|
|
282
|
+
: item.name.startsWith("fs.")
|
|
283
|
+
? "path"
|
|
284
|
+
: "query";
|
|
285
|
+
header = `${kind}: ${label}\n\n`;
|
|
286
|
+
}
|
|
174
287
|
}
|
|
175
288
|
let note = "";
|
|
176
|
-
if (
|
|
289
|
+
if (openedSourceFile && highlightPath) {
|
|
290
|
+
note = `\n\n── full file ──\n${highlightPath}`;
|
|
291
|
+
}
|
|
292
|
+
else if (item.artifactPath && options.bodyOverride === undefined) {
|
|
177
293
|
note =
|
|
178
294
|
`\n\n── full output saved at ──\n${item.artifactPath}` +
|
|
179
|
-
(artifactSource
|
|
295
|
+
(artifactSource
|
|
296
|
+
? "\n(paged from disk — PageDown / ^U·^D for more)"
|
|
297
|
+
: "\n(full body)");
|
|
180
298
|
}
|
|
181
299
|
const title = options.titleOverride ?? toolPagerTitle(item.name, item.argsDisplay);
|
|
182
|
-
|
|
300
|
+
// When paging an artifact, pass body alone as fallback; pager swaps to pages.
|
|
301
|
+
// Include header only for in-memory full bodies so path context stays visible.
|
|
302
|
+
const pagerBody = artifactSource
|
|
303
|
+
? body || "(no output)"
|
|
304
|
+
: `${header}${body || "(no output)"}${note}`;
|
|
305
|
+
const opened = services.overlay.openPager(title, pagerBody, artifactSource, highlightPath);
|
|
183
306
|
if (!opened) {
|
|
184
307
|
services.session.notice("warn", "could not open output pager (another overlay is open)");
|
|
185
308
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-tool-output.js","sourceRoot":"","sources":["../../../src/tui-v2/rendering/open-tool-output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"open-tool-output.js","sourceRoot":"","sources":["../../../src/tui-v2/rendering/open-tool-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,10 +11,31 @@ export interface PlanProgressView {
|
|
|
11
11
|
export declare const TASK_GLYPH: Record<TaskState, string>;
|
|
12
12
|
export declare const TASK_STATE_LABEL: Record<TaskState, string>;
|
|
13
13
|
export declare const STATUS_LABEL: Record<PlanStatus, string>;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Theme keys used for plan/task pane text. Keep these high-contrast on the
|
|
16
|
+
* pane background (statusBackground) — avoid washed slate for body text.
|
|
17
|
+
*/
|
|
18
|
+
export type PlanColorToken = "muted" | "foreground" | "accent" | "success" | "activity" | "cyan" | "magenta" | "mode" | "response" | "diffDel";
|
|
15
19
|
export declare function planStatusColor(status: PlanStatus): PlanColorToken;
|
|
20
|
+
/**
|
|
21
|
+
* Task row colors (tasks pane):
|
|
22
|
+
* - pending → solid foreground (not light gray wash)
|
|
23
|
+
* - active → yellow activity (already good)
|
|
24
|
+
* - done → bright success green
|
|
25
|
+
* - failed → red
|
|
26
|
+
* - skipped → muted secondary
|
|
27
|
+
*/
|
|
16
28
|
export declare function taskStateColor(state: TaskState): PlanColorToken;
|
|
17
29
|
export declare function progressView(plan: SessionPlan): PlanProgressView;
|
|
30
|
+
/**
|
|
31
|
+
* Compact progress bar for the tasks pane header.
|
|
32
|
+
* Example (width=8, 3/8): `███░░░░░`
|
|
33
|
+
*/
|
|
34
|
+
export declare function progressBar(done: number, total: number, width: number): string;
|
|
35
|
+
/** Short uppercase chip label for plan status (TASKS header). */
|
|
36
|
+
export declare function planStatusChip(status: PlanStatus): string;
|
|
37
|
+
/** Short chip label for a task state. */
|
|
38
|
+
export declare function taskStateChip(state: TaskState): string;
|
|
18
39
|
export declare function taskLabel(task: PlanTask): string;
|
|
19
40
|
export declare function activeTaskId(plan: SessionPlan): string | undefined;
|
|
20
41
|
/** Soft-wrap without ellipsis — full text, never truncated. */
|
|
@@ -38,6 +38,14 @@ export function planStatusColor(status) {
|
|
|
38
38
|
return "foreground";
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Task row colors (tasks pane):
|
|
43
|
+
* - pending → solid foreground (not light gray wash)
|
|
44
|
+
* - active → yellow activity (already good)
|
|
45
|
+
* - done → bright success green
|
|
46
|
+
* - failed → red
|
|
47
|
+
* - skipped → muted secondary
|
|
48
|
+
*/
|
|
41
49
|
export function taskStateColor(state) {
|
|
42
50
|
switch (state) {
|
|
43
51
|
case "done":
|
|
@@ -45,12 +53,12 @@ export function taskStateColor(state) {
|
|
|
45
53
|
case "in_progress":
|
|
46
54
|
return "activity";
|
|
47
55
|
case "failed":
|
|
48
|
-
return "
|
|
56
|
+
return "diffDel";
|
|
49
57
|
case "skipped":
|
|
50
58
|
return "muted";
|
|
51
59
|
case "pending":
|
|
52
60
|
default:
|
|
53
|
-
return "
|
|
61
|
+
return "foreground";
|
|
54
62
|
}
|
|
55
63
|
}
|
|
56
64
|
export function progressView(plan) {
|
|
@@ -61,6 +69,52 @@ export function progressView(plan) {
|
|
|
61
69
|
return { done, total, label: `${done}/${total} complete` };
|
|
62
70
|
return { done, total, label: `${done}/${total} tasks` };
|
|
63
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Compact progress bar for the tasks pane header.
|
|
74
|
+
* Example (width=8, 3/8): `███░░░░░`
|
|
75
|
+
*/
|
|
76
|
+
export function progressBar(done, total, width) {
|
|
77
|
+
const w = Math.max(4, Math.min(24, Math.floor(width)));
|
|
78
|
+
if (total <= 0)
|
|
79
|
+
return "░".repeat(w);
|
|
80
|
+
const filled = Math.max(0, Math.min(w, Math.round((done / total) * w)));
|
|
81
|
+
return `${"█".repeat(filled)}${"░".repeat(w - filled)}`;
|
|
82
|
+
}
|
|
83
|
+
/** Short uppercase chip label for plan status (TASKS header). */
|
|
84
|
+
export function planStatusChip(status) {
|
|
85
|
+
switch (status) {
|
|
86
|
+
case "draft":
|
|
87
|
+
return "DRAFT";
|
|
88
|
+
case "approved":
|
|
89
|
+
return "READY";
|
|
90
|
+
case "in_progress":
|
|
91
|
+
return "ACTIVE";
|
|
92
|
+
case "completed":
|
|
93
|
+
return "DONE";
|
|
94
|
+
case "abandoned":
|
|
95
|
+
return "DROPPED";
|
|
96
|
+
default: {
|
|
97
|
+
const _exhaustive = status;
|
|
98
|
+
return String(_exhaustive).toUpperCase() || "PLAN";
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Short chip label for a task state. */
|
|
103
|
+
export function taskStateChip(state) {
|
|
104
|
+
switch (state) {
|
|
105
|
+
case "in_progress":
|
|
106
|
+
return "ACTIVE";
|
|
107
|
+
case "done":
|
|
108
|
+
return "DONE";
|
|
109
|
+
case "failed":
|
|
110
|
+
return "FAIL";
|
|
111
|
+
case "skipped":
|
|
112
|
+
return "SKIP";
|
|
113
|
+
case "pending":
|
|
114
|
+
default:
|
|
115
|
+
return "TODO";
|
|
116
|
+
}
|
|
117
|
+
}
|
|
64
118
|
export function taskLabel(task) {
|
|
65
119
|
return `${TASK_GLYPH[task.state]} ${task.id} ${task.title}`;
|
|
66
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-view.js","sourceRoot":"","sources":["../../../src/tui-v2/rendering/plan-view.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AASnD,MAAM,CAAC,MAAM,UAAU,GAA8B;IACnD,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,GAAG;IAChB,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA+B;IACtD,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;CACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"plan-view.js","sourceRoot":"","sources":["../../../src/tui-v2/rendering/plan-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,21 @@ export interface Theme {
|
|
|
23
23
|
readonly chip: string;
|
|
24
24
|
/** Mode badge amber / RUNNING (legacy #B45309). */
|
|
25
25
|
readonly mode: string;
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Success / done / READY green — bright enough to read on dark panes
|
|
28
|
+
* (tasks list, toasts, confirmations). Not a dim forest green.
|
|
29
|
+
*/
|
|
27
30
|
readonly success: string;
|
|
31
|
+
/**
|
|
32
|
+
* Dark green plate for "done" status chips (white label on solid bg).
|
|
33
|
+
* Brighter `success` is for text/borders only — too light as a fill.
|
|
34
|
+
*/
|
|
35
|
+
readonly successBg: string;
|
|
36
|
+
/**
|
|
37
|
+
* Dark red plate for "failed" / "blocked" status chips (white on solid bg).
|
|
38
|
+
* Brighter `diffDel` stays for text/borders.
|
|
39
|
+
*/
|
|
40
|
+
readonly failedBg: string;
|
|
28
41
|
/**
|
|
29
42
|
* Wordmark top-of-"I" magenta (`WORDMARK_TOP_HEX` / chalk.magentaBright).
|
|
30
43
|
* Used for plan/task pane border, agent-card frame, output accents.
|
|
@@ -46,8 +59,7 @@ export interface Theme {
|
|
|
46
59
|
/** Indigo chip alternate for idle shortcuts. */
|
|
47
60
|
readonly chipIndigo: string;
|
|
48
61
|
/**
|
|
49
|
-
* Prompt / YOU badge background —
|
|
50
|
-
* chrome and output chrome share one brand accent.
|
|
62
|
+
* Prompt / YOU badge background — warm amber (matches user bubble border).
|
|
51
63
|
*/
|
|
52
64
|
readonly prompt: string;
|
|
53
65
|
/** Thinking / reasoning text (violet). */
|
|
@@ -57,10 +69,12 @@ export interface Theme {
|
|
|
57
69
|
* stronger than the `/` command menu border (`theme.border` #22D3EE).
|
|
58
70
|
*/
|
|
59
71
|
readonly inputBorder: string;
|
|
60
|
-
/** User prompt bubble border —
|
|
72
|
+
/** User prompt bubble border — warm amber. */
|
|
61
73
|
readonly userBorder: string;
|
|
62
|
-
/** Tool
|
|
74
|
+
/** Tool card chrome accent (legacy mid-blue). */
|
|
63
75
|
readonly toolBorder: string;
|
|
76
|
+
/** Tool OUTPUT body text (readable sky cyan). */
|
|
77
|
+
readonly toolOutput: string;
|
|
64
78
|
/** Modal accent border. */
|
|
65
79
|
readonly modalBorder: string;
|
|
66
80
|
/** Added lines in file-diff cards / pager (green). */
|
|
@@ -17,7 +17,12 @@ const DARK_THEME = {
|
|
|
17
17
|
rowB: "#0F172A",
|
|
18
18
|
chip: "#334155",
|
|
19
19
|
mode: "#B45309",
|
|
20
|
-
|
|
20
|
+
// Readable on #0b0e14 / statusBackground — was #166534 (too dark / washed).
|
|
21
|
+
success: "#4ADE80",
|
|
22
|
+
// Solid dark green for "done" badge fills (white text stays crisp).
|
|
23
|
+
successBg: "#166534",
|
|
24
|
+
// Solid dark red for "failed" badge fills.
|
|
25
|
+
failedBg: "#991B1B",
|
|
21
26
|
// Top of CLAI wordmark "I" (magentaBright) — plan pane + agent card frame.
|
|
22
27
|
magenta: "#FF55FF",
|
|
23
28
|
cyan: "#67E8F9",
|
|
@@ -28,13 +33,16 @@ const DARK_THEME = {
|
|
|
28
33
|
queued: "#854D0E",
|
|
29
34
|
chipTeal: "#0E7490",
|
|
30
35
|
chipIndigo: "#3730A3",
|
|
31
|
-
//
|
|
32
|
-
prompt: "#
|
|
36
|
+
// YOU badge plate — darker amber so white "YOU" stays crisp.
|
|
37
|
+
prompt: "#B45309",
|
|
33
38
|
thinking: "#A78BFA",
|
|
34
39
|
// Stronger aqua than /command border (#22D3EE) — high-sat electric cyan.
|
|
35
40
|
inputBorder: "#2EEBFF",
|
|
36
|
-
|
|
41
|
+
// User prompt bubble border — lighter warm amber (distinct from YOU plate).
|
|
42
|
+
userBorder: "#f5b351",
|
|
37
43
|
toolBorder: "#3B82F6",
|
|
44
|
+
// Tool OUTPUT body text — sky cyan (readable on dark panes).
|
|
45
|
+
toolOutput: "#7DD3FC",
|
|
38
46
|
modalBorder: "#22D3EE",
|
|
39
47
|
diffAdd: "#4ADE80",
|
|
40
48
|
diffDel: "#F87171",
|
|
@@ -63,7 +71,11 @@ const LIGHT_THEME = {
|
|
|
63
71
|
rowB: "#f8fafc",
|
|
64
72
|
chip: "#e2e8f0",
|
|
65
73
|
mode: "#B45309",
|
|
66
|
-
success: "#
|
|
74
|
+
success: "#16A34A",
|
|
75
|
+
// Darker plate for "done" chips on light terminals.
|
|
76
|
+
successBg: "#14532d",
|
|
77
|
+
// Darker plate for "failed" chips on light terminals.
|
|
78
|
+
failedBg: "#7f1d1d",
|
|
67
79
|
// Top of CLAI wordmark "I" (slightly deeper on light bg for contrast).
|
|
68
80
|
magenta: "#D946EF",
|
|
69
81
|
cyan: "#0891b2",
|
|
@@ -74,12 +86,16 @@ const LIGHT_THEME = {
|
|
|
74
86
|
queued: "#854D0E",
|
|
75
87
|
chipTeal: "#0e7490",
|
|
76
88
|
chipIndigo: "#4338ca",
|
|
77
|
-
|
|
89
|
+
// YOU badge plate — deep amber.
|
|
90
|
+
prompt: "#b45309",
|
|
78
91
|
thinking: "#7c3aed",
|
|
79
92
|
// Stronger aqua than /command border (#0891B2) for light terminals.
|
|
80
93
|
inputBorder: "#06B6D4",
|
|
81
|
-
|
|
94
|
+
// User prompt bubble border — lighter warm amber.
|
|
95
|
+
userBorder: "#f5b351",
|
|
82
96
|
toolBorder: "#2563eb",
|
|
97
|
+
// Tool OUTPUT body text — sky cyan.
|
|
98
|
+
toolOutput: "#0369a1",
|
|
83
99
|
modalBorder: "#0891B2",
|
|
84
100
|
diffAdd: "#15803d",
|
|
85
101
|
diffDel: "#dc2626",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/tui-v2/rendering/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/tui-v2/rendering/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyGH,MAAM,UAAU,GAAU;IACxB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,SAAS;IAC3B,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,4EAA4E;IAC5E,OAAO,EAAE,SAAS;IAClB,oEAAoE;IACpE,SAAS,EAAE,SAAS;IACpB,2CAA2C;IAC3C,QAAQ,EAAE,SAAS;IACnB,2EAA2E;IAC3E,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;IACrB,6DAA6D;IAC7D,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,yEAAyE;IACzE,WAAW,EAAE,SAAS;IACtB,4EAA4E;IAC5E,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,6DAA6D;IAC7D,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,SAAS;CACpB,CAAC;AAEF,MAAM,WAAW,GAAU;IACzB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,SAAS;IAC3B,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,oDAAoD;IACpD,SAAS,EAAE,SAAS;IACpB,sDAAsD;IACtD,QAAQ,EAAE,SAAS;IACnB,uEAAuE;IACvE,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;IACrB,gCAAgC;IAChC,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,oEAAoE;IACpE,WAAW,EAAE,SAAS;IACtB,kDAAkD;IAClD,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,oCAAoC;IACpC,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,SAAS;CACpB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,IAAe;IACtC,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;AACrD,CAAC"}
|
|
@@ -20,6 +20,11 @@ export interface ToolPresentation {
|
|
|
20
20
|
readonly isFileDiff: boolean;
|
|
21
21
|
}
|
|
22
22
|
export declare function presentTool(item: ToolItem): ToolPresentation;
|
|
23
|
+
/** Basename + create/overwrite marker for writeMany list rows. */
|
|
24
|
+
export declare function writeManyFileLabel(change: {
|
|
25
|
+
readonly path: string;
|
|
26
|
+
readonly kind: string;
|
|
27
|
+
}): string;
|
|
23
28
|
export interface OutputPresentation {
|
|
24
29
|
readonly lines: readonly string[];
|
|
25
30
|
readonly hiddenAboveCount: number;
|
|
@@ -20,6 +20,27 @@ const STATUS_LABEL = {
|
|
|
20
20
|
failed: "failed",
|
|
21
21
|
blocked: "blocked",
|
|
22
22
|
};
|
|
23
|
+
/** Pull a display path / "N file(s)" out of argsDisplay even when it is JSON. */
|
|
24
|
+
function pathFromArgsDisplay(toolName, argsDisplay) {
|
|
25
|
+
const raw = (argsDisplay ?? "").trim();
|
|
26
|
+
if (!raw)
|
|
27
|
+
return "";
|
|
28
|
+
if (!raw.startsWith("{"))
|
|
29
|
+
return raw;
|
|
30
|
+
try {
|
|
31
|
+
const parsed = JSON.parse(raw);
|
|
32
|
+
if (typeof parsed.path === "string" && parsed.path)
|
|
33
|
+
return parsed.path;
|
|
34
|
+
if (Array.isArray(parsed.files)) {
|
|
35
|
+
const n = parsed.files.length;
|
|
36
|
+
return n > 0 ? `${n} file(s)` : "files";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// fall through
|
|
41
|
+
}
|
|
42
|
+
return toolName === "fs.writeMany" ? "files" : "";
|
|
43
|
+
}
|
|
23
44
|
export function presentTool(item) {
|
|
24
45
|
const fileDiff = isFileMutationTool(item.name) ||
|
|
25
46
|
Boolean(item.fileChanges && item.fileChanges.length > 0);
|
|
@@ -33,27 +54,30 @@ export function presentTool(item) {
|
|
|
33
54
|
let pathLine;
|
|
34
55
|
if (fileDiff) {
|
|
35
56
|
const kind = item.fileChanges?.[0]?.kind;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (item.name === "fs.edit" ||
|
|
44
|
-
item.name === "fs.replaceLines" ||
|
|
45
|
-
item.name === "fs.delete" ||
|
|
46
|
-
item.name === "fs.write" ||
|
|
47
|
-
item.name === "fs.append" ||
|
|
48
|
-
item.fileChanges) {
|
|
49
|
-
argsLabel = undefined;
|
|
50
|
-
argsDisplay = undefined;
|
|
57
|
+
// Prefer structured file list for multi-write; never use raw JSON args.
|
|
58
|
+
let pathOrDisplay = "";
|
|
59
|
+
if (item.name === "fs.writeMany" && item.fileChanges?.length) {
|
|
60
|
+
pathOrDisplay = `${item.fileChanges.length} file(s)`;
|
|
61
|
+
}
|
|
62
|
+
else if (item.fileChanges?.[0]?.path) {
|
|
63
|
+
pathOrDisplay = item.fileChanges[0].path;
|
|
51
64
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
65
|
+
else {
|
|
66
|
+
pathOrDisplay = pathFromArgsDisplay(item.name, item.argsDisplay);
|
|
67
|
+
if (!pathOrDisplay) {
|
|
68
|
+
pathOrDisplay =
|
|
69
|
+
item.name === "fs.writeMany" ? "files" : item.name.replace(/^fs\./, "");
|
|
70
|
+
}
|
|
56
71
|
}
|
|
72
|
+
const titled = fileToolTitle(item.name, item.status, pathOrDisplay, kind);
|
|
73
|
+
name = titled.title;
|
|
74
|
+
pathLine =
|
|
75
|
+
item.name === "fs.writeMany"
|
|
76
|
+
? undefined
|
|
77
|
+
: titled.pathLine ?? item.fileChanges?.[0]?.path;
|
|
78
|
+
// Never dump oldText/newText / multi-file JSON under a file mutation card.
|
|
79
|
+
argsLabel = undefined;
|
|
80
|
+
argsDisplay = undefined;
|
|
57
81
|
}
|
|
58
82
|
let detail;
|
|
59
83
|
if (item.status === "blocked") {
|
|
@@ -65,9 +89,14 @@ export function presentTool(item) {
|
|
|
65
89
|
detail = short;
|
|
66
90
|
}
|
|
67
91
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
92
|
+
// Keep the badge short so "done (exit 0)" never overflows the card border.
|
|
93
|
+
// Non-zero exit is still shown; success exit is implied by green "done".
|
|
94
|
+
let statusLabel = STATUS_LABEL[item.status];
|
|
95
|
+
if (item.exitCode !== undefined &&
|
|
96
|
+
item.exitCode !== 0 &&
|
|
97
|
+
(item.status === "failed" || item.status === "ok")) {
|
|
98
|
+
statusLabel = `${statusLabel} · ${item.exitCode}`;
|
|
99
|
+
}
|
|
71
100
|
return {
|
|
72
101
|
glyph: STATUS_GLYPH[item.status],
|
|
73
102
|
statusLabel,
|
|
@@ -79,6 +108,12 @@ export function presentTool(item) {
|
|
|
79
108
|
isFileDiff: Boolean(item.fileChanges && item.fileChanges.length > 0),
|
|
80
109
|
};
|
|
81
110
|
}
|
|
111
|
+
/** Basename + create/overwrite marker for writeMany list rows. */
|
|
112
|
+
export function writeManyFileLabel(change) {
|
|
113
|
+
const base = change.path.split(/[/\\]/).pop() || change.path;
|
|
114
|
+
const mark = change.kind === "create" ? "+" : change.kind === "overwrite" ? "~" : "·";
|
|
115
|
+
return `${mark} ${base}`;
|
|
116
|
+
}
|
|
82
117
|
const COLLAPSED_HEAD_LINES = 4;
|
|
83
118
|
const COLLAPSED_TAIL_LINES = 4;
|
|
84
119
|
/**
|