@markusylisiurunen/tau 0.1.38 → 0.1.40

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.
@@ -1,284 +1,314 @@
1
1
  import { inlineText } from "./inline.js";
2
- import { ToolOutputComponent } from "./tool_output.js";
3
- import { GREP_UI_MAX_LINES, GREP_UI_MAX_TOKENS, READ_UI_MAX_LINES, READ_UI_MAX_TOKENS, truncateForUi, } from "./tool_truncation.js";
2
+ import { buildHeaderLine, buildSection, renderToolOutput, } from "./tool_output_layout.js";
3
+ import { applyPreviewPolicy, buildCompactPreviewLines } from "./tool_output_preview.js";
4
+ import { GREP_UI_MAX_LINES, GREP_UI_MAX_TOKENS, READ_UI_MAX_LINES, READ_UI_MAX_TOKENS, } from "./tool_truncation.js";
4
5
  function formatRange(startLine, endLine) {
5
6
  if (endLine === undefined) {
6
7
  return `${startLine}-EOF`;
7
8
  }
8
9
  return `${startLine}-${endLine}`;
9
10
  }
10
- export function renderReadSuccess(theme, path, startLine, endLine, content, modelTruncation, compact) {
11
+ export function buildReadSuccessView(theme, path, startLine, endLine, content, modelTruncation) {
11
12
  const { palette, text } = theme;
12
13
  const readColor = (s) => palette.toolFileRan(s);
13
- const previewTruncation = truncateForUi(content, {
14
+ const successBullet = (s) => palette.diffAdded(s);
15
+ const { truncation: previewTruncation, previewLines } = applyPreviewPolicy(content, {
14
16
  maxLines: READ_UI_MAX_LINES,
15
17
  maxTokens: READ_UI_MAX_TOKENS,
16
18
  strategy: "middle",
17
19
  });
18
- const expandedParts = [];
19
- expandedParts.push(readColor(text.bold(`read ${path} (${formatRange(startLine, endLine)})`)));
20
20
  const out = previewTruncation.content.trimEnd();
21
+ const expandedSections = [];
21
22
  if (out) {
22
- expandedParts.push("", palette.filePreview(out));
23
+ expandedSections.push(palette.filePreview(out));
23
24
  }
24
25
  if (previewTruncation.truncated) {
25
26
  const icon = palette.warn("◆");
26
27
  const msg = palette.dim(`preview: ${previewTruncation.outputLines} of ${previewTruncation.totalLines} lines`);
27
- expandedParts.push("", `${icon} ${msg}`);
28
+ expandedSections.push(`${icon} ${msg}`);
28
29
  }
29
30
  if (modelTruncation.truncated) {
30
31
  const icon = palette.warn("◆");
31
32
  const msg = palette.warn(`truncated for model: ${modelTruncation.outputLines} of ${modelTruncation.totalLines} lines`);
32
- expandedParts.push("", `${icon} ${msg}`);
33
+ expandedSections.push(`${icon} ${msg}`);
33
34
  }
34
35
  const pathInline = inlineText(path);
35
36
  const totalLinesForSummary = modelTruncation.truncated
36
37
  ? modelTruncation.totalLines
37
38
  : previewTruncation.totalLines;
38
- const segments = [
39
- { text: " ", style: (s) => s },
40
- { text: "", style: readColor },
41
- { text: " ", style: (s) => s },
42
- { text: "read", style: palette.muted },
43
- { text: " ", style: (s) => s },
44
- { text: pathInline, style: palette.accent },
45
- { text: " ", style: (s) => s },
46
- { text: `(${totalLinesForSummary} lines)`, style: palette.muted },
47
- ];
48
- const maxPreviewLines = 4;
49
- const previewLines = out ? out.split("\n") : [];
50
- const shownPreviewLines = previewLines.slice(0, maxPreviewLines);
51
- const remaining = Math.max(0, totalLinesForSummary - shownPreviewLines.length);
52
- const compactLines = [];
53
- for (const l of shownPreviewLines) {
54
- compactLines.push(palette.muted(` ${l}`));
55
- }
56
- if (remaining > 0) {
57
- compactLines.push(palette.dim(` (${remaining} more lines)`));
58
- }
59
- return new ToolOutputComponent({
60
- compact,
61
- expanded: { borderColor: readColor, text: expandedParts.join("\n") },
62
- compactView: {
63
- segments,
64
- flexIndices: [5],
65
- extraText: compactLines.length > 0 ? compactLines.join("\n") : undefined,
66
- },
39
+ const header = buildHeaderLine({
40
+ bulletStyle: successBullet,
41
+ bullet: "",
42
+ label: "read",
43
+ labelStyle: palette.muted,
44
+ accent: pathInline,
45
+ accentStyle: palette.accent,
46
+ tailSegments: [
47
+ { text: " ", style: (s) => s },
48
+ { text: `(${totalLinesForSummary} lines)`, style: palette.muted },
49
+ ],
67
50
  });
51
+ const compactLines = buildCompactPreviewLines(previewLines, {
52
+ totalLines: totalLinesForSummary,
53
+ maxLines: 16,
54
+ lineStyle: palette.muted,
55
+ moreStyle: palette.dim,
56
+ });
57
+ return {
58
+ borderColor: readColor,
59
+ expanded: {
60
+ title: readColor(text.bold(`read ${path} (${formatRange(startLine, endLine)})`)),
61
+ sections: expandedSections,
62
+ },
63
+ compact: {
64
+ header,
65
+ extraText: compactLines,
66
+ },
67
+ };
68
68
  }
69
- export function renderReadBlocked(theme, path, reason, compact) {
69
+ export function buildReadBlockedView(theme, path, reason) {
70
70
  const { palette, text } = theme;
71
71
  const errorColor = (s) => palette.error(s);
72
- const expandedParts = [errorColor(text.bold(`read ${path}`))];
73
72
  const msg = reason.trim();
74
- if (msg) {
75
- expandedParts.push("", errorColor(msg));
76
- }
73
+ const section = buildSection(msg ? [errorColor(msg)] : []);
77
74
  const pathInline = inlineText(path);
78
75
  const whyInline = inlineText(reason);
79
- const segments = [
80
- { text: " ", style: (s) => s },
81
- { text: "", style: errorColor },
82
- { text: " ", style: (s) => s },
83
- { text: "read", style: palette.muted },
84
- { text: " ", style: (s) => s },
85
- { text: pathInline, style: palette.accent },
86
- { text: " ", style: (s) => s },
87
- { text: `(blocked: ${whyInline})`, style: palette.muted },
88
- ];
89
- return new ToolOutputComponent({
90
- compact,
91
- expanded: { borderColor: errorColor, text: expandedParts.join("\n") },
92
- compactView: { segments, flexIndices: [5, 7] },
76
+ const header = buildHeaderLine({
77
+ bulletStyle: errorColor,
78
+ label: "read",
79
+ labelStyle: palette.muted,
80
+ accent: pathInline,
81
+ accentStyle: palette.accent,
82
+ tailSegments: [
83
+ { text: " ", style: (s) => s },
84
+ { text: `(blocked: ${whyInline})`, style: palette.muted },
85
+ ],
86
+ flexTailIndices: [1],
93
87
  });
88
+ return {
89
+ borderColor: errorColor,
90
+ expanded: {
91
+ title: errorColor(text.bold(`read ${path}`)),
92
+ sections: section ? [section] : [],
93
+ },
94
+ compact: { header },
95
+ };
94
96
  }
95
- export function renderListSuccess(theme, path, offset, limit, total, returned, entries, compact) {
97
+ export function buildListSuccessView(theme, path, offset, limit, total, returned, entries) {
96
98
  const { palette, text } = theme;
97
99
  const listColor = (s) => palette.toolFileRan(s);
98
- const expandedParts = [];
99
- expandedParts.push(listColor(text.bold(`list ${path}`)));
100
- expandedParts.push("");
101
- expandedParts.push(palette.muted(`${returned} of ${total} entries (offset ${offset}, limit ${limit})`));
100
+ const successBullet = (s) => palette.diffAdded(s);
101
+ const expandedSections = [];
102
+ expandedSections.push(palette.muted(`${returned} of ${total} entries (offset ${offset}, limit ${limit})`));
102
103
  if (entries.length > 0) {
103
- expandedParts.push("");
104
- expandedParts.push(palette.filePreview(entries.join("\n")));
104
+ expandedSections.push(palette.filePreview(entries.join("\n")));
105
105
  }
106
106
  const pathInline = inlineText(path);
107
- const segments = [
108
- { text: " ", style: (s) => s },
109
- { text: "", style: listColor },
110
- { text: " ", style: (s) => s },
111
- { text: "listed", style: palette.muted },
112
- { text: " ", style: (s) => s },
113
- { text: pathInline, style: palette.accent },
114
- { text: " ", style: (s) => s },
115
- { text: `(${returned} entries)`, style: palette.muted },
116
- ];
117
- const maxPreviewLines = 4;
118
- const shown = entries.slice(0, maxPreviewLines);
119
- const remaining = Math.max(0, entries.length - shown.length);
120
- const compactLines = [];
121
- for (const l of shown) {
122
- compactLines.push(palette.muted(` ${l}`));
123
- }
124
- if (remaining > 0) {
125
- compactLines.push(palette.dim(` (${remaining} more entries)`));
126
- }
127
- return new ToolOutputComponent({
128
- compact,
129
- expanded: { borderColor: listColor, text: expandedParts.join("\n") },
130
- compactView: {
131
- segments,
132
- flexIndices: [5],
133
- extraText: compactLines.length > 0 ? compactLines.join("\n") : undefined,
134
- },
107
+ const header = buildHeaderLine({
108
+ bulletStyle: successBullet,
109
+ bullet: "",
110
+ label: "listed",
111
+ labelStyle: palette.muted,
112
+ accent: pathInline,
113
+ accentStyle: palette.accent,
114
+ tailSegments: [
115
+ { text: " ", style: (s) => s },
116
+ { text: `(${returned} entries)`, style: palette.muted },
117
+ ],
118
+ });
119
+ const compactLines = buildCompactPreviewLines(entries, {
120
+ totalLines: entries.length,
121
+ maxLines: 16,
122
+ unitLabel: "entries",
123
+ lineStyle: palette.muted,
124
+ moreStyle: palette.dim,
135
125
  });
126
+ return {
127
+ borderColor: listColor,
128
+ expanded: {
129
+ title: listColor(text.bold(`list ${path}`)),
130
+ sections: expandedSections,
131
+ },
132
+ compact: {
133
+ header,
134
+ extraText: compactLines,
135
+ },
136
+ };
136
137
  }
137
- export function renderListBlocked(theme, path, reason, compact) {
138
+ export function buildListBlockedView(theme, path, reason) {
138
139
  const { palette, text } = theme;
139
140
  const errorColor = (s) => palette.error(s);
140
- const expandedParts = [errorColor(text.bold(`list ${path}`))];
141
141
  const msg = reason.trim();
142
- if (msg) {
143
- expandedParts.push("", errorColor(msg));
144
- }
142
+ const section = buildSection(msg ? [errorColor(msg)] : []);
145
143
  const pathInline = inlineText(path);
146
144
  const whyInline = inlineText(reason);
147
- const segments = [
148
- { text: " ", style: (s) => s },
149
- { text: "", style: errorColor },
150
- { text: " ", style: (s) => s },
151
- { text: "list", style: palette.muted },
152
- { text: " ", style: (s) => s },
153
- { text: pathInline, style: palette.accent },
154
- { text: " ", style: (s) => s },
155
- { text: `(blocked: ${whyInline})`, style: palette.muted },
156
- ];
157
- return new ToolOutputComponent({
158
- compact,
159
- expanded: { borderColor: errorColor, text: expandedParts.join("\n") },
160
- compactView: { segments, flexIndices: [5, 7] },
145
+ const header = buildHeaderLine({
146
+ bulletStyle: errorColor,
147
+ label: "list",
148
+ labelStyle: palette.muted,
149
+ accent: pathInline,
150
+ accentStyle: palette.accent,
151
+ tailSegments: [
152
+ { text: " ", style: (s) => s },
153
+ { text: `(blocked: ${whyInline})`, style: palette.muted },
154
+ ],
155
+ flexTailIndices: [1],
161
156
  });
157
+ return {
158
+ borderColor: errorColor,
159
+ expanded: {
160
+ title: errorColor(text.bold(`list ${path}`)),
161
+ sections: section ? [section] : [],
162
+ },
163
+ compact: { header },
164
+ };
162
165
  }
163
- export function renderGrepRunning(theme, pattern, compact) {
166
+ export function buildGrepRunningView(theme, pattern) {
164
167
  const { palette, text } = theme;
165
168
  const runningColor = (s) => palette.taskRunning(s);
166
- const header = runningColor(text.bold(`grep ${pattern}`));
167
169
  const patternInline = inlineText(pattern);
168
- const segments = [
169
- { text: " ", style: (s) => s },
170
- { text: "", style: runningColor },
171
- { text: " ", style: (s) => s },
172
- { text: "grep", style: palette.muted },
173
- { text: " ", style: (s) => s },
174
- { text: patternInline, style: palette.accent },
175
- { text: " ", style: (s) => s },
176
- { text: "(running)", style: palette.muted },
177
- ];
178
- return new ToolOutputComponent({
179
- compact,
180
- expanded: { borderColor: runningColor, text: header },
181
- compactView: { segments, flexIndices: [5] },
170
+ const header = buildHeaderLine({
171
+ bulletStyle: runningColor,
172
+ label: "grep",
173
+ labelStyle: palette.muted,
174
+ accent: patternInline,
175
+ accentStyle: palette.accent,
176
+ tailSegments: [
177
+ { text: " ", style: (s) => s },
178
+ { text: "(running)", style: palette.muted },
179
+ ],
182
180
  });
181
+ return {
182
+ borderColor: runningColor,
183
+ expanded: { title: runningColor(text.bold(`grep ${pattern}`)) },
184
+ compact: { header },
185
+ };
183
186
  }
184
- export function renderGrepFinished(theme, pattern, status, exitCode, stdout, stderr, captureTruncated, compact) {
187
+ export function buildGrepFinishedView(theme, pattern, status, exitCode, stdout, stderr, captureTruncated) {
185
188
  const { palette, text } = theme;
186
189
  const grepColor = (s) => palette.toolFileRan(s);
187
- const stdoutPreview = truncateForUi(stdout, {
190
+ const successBullet = (s) => palette.diffAdded(s);
191
+ const isSuccess = status === "success";
192
+ const { truncation: stdoutPreview, previewLines: stdoutLines } = applyPreviewPolicy(stdout, {
188
193
  maxLines: GREP_UI_MAX_LINES,
189
194
  maxTokens: GREP_UI_MAX_TOKENS,
190
195
  strategy: "middle",
191
196
  });
192
- const stderrPreview = truncateForUi(stderr, {
197
+ const { truncation: stderrPreview, previewLines: stderrLines } = applyPreviewPolicy(stderr, {
193
198
  maxLines: GREP_UI_MAX_LINES,
194
199
  maxTokens: GREP_UI_MAX_TOKENS,
195
200
  strategy: "middle",
196
201
  });
197
- const expandedParts = [];
198
- expandedParts.push(grepColor(text.bold(`grep ${pattern}`)));
199
202
  const out = stdoutPreview.content.trimEnd();
203
+ const expandedSections = [];
200
204
  if (out) {
201
- expandedParts.push("", palette.filePreview(out));
205
+ expandedSections.push(palette.filePreview(out));
202
206
  }
203
207
  const err = stderrPreview.content.trimEnd();
204
208
  if (err) {
205
- expandedParts.push("", palette.error("stderr:"), palette.error(err));
209
+ const errSection = buildSection([palette.error("stderr:"), palette.error(err)]);
210
+ if (errSection) {
211
+ expandedSections.push(errSection);
212
+ }
206
213
  }
207
214
  if (stdoutPreview.truncated || stderrPreview.truncated || captureTruncated) {
208
215
  const icon = palette.warn("◆");
209
216
  const msg = palette.dim(`truncated: ${stdoutPreview.outputLines} of ${stdoutPreview.totalLines} lines`);
210
- expandedParts.push("", `${icon} ${msg}`);
217
+ expandedSections.push(`${icon} ${msg}`);
211
218
  }
212
219
  if (exitCode !== null && exitCode !== 0 && exitCode !== 1) {
213
- expandedParts.push("", palette.warn(`(exit ${exitCode})`));
220
+ expandedSections.push(palette.warn(`(exit ${exitCode})`));
214
221
  }
215
222
  const patternInline = inlineText(pattern);
216
- const segments = [
217
- { text: " ", style: (s) => s },
218
- { text: "", style: grepColor },
219
- { text: " ", style: (s) => s },
220
- { text: "grep", style: palette.muted },
221
- { text: " ", style: (s) => s },
222
- { text: patternInline, style: palette.accent },
223
- { text: " ", style: (s) => s },
224
- {
225
- text: status === "success" ? "(ok)" : "(error)",
226
- style: status === "success" ? palette.muted : palette.error,
223
+ const header = buildHeaderLine({
224
+ bulletStyle: isSuccess ? successBullet : grepColor,
225
+ bullet: isSuccess ? "" : undefined,
226
+ label: "grep",
227
+ labelStyle: palette.muted,
228
+ accent: patternInline,
229
+ accentStyle: palette.accent,
230
+ tailSegments: [
231
+ { text: " ", style: (s) => s },
232
+ {
233
+ text: status === "success" ? "(ok)" : "(error)",
234
+ style: status === "success" ? palette.muted : palette.error,
235
+ },
236
+ ],
237
+ });
238
+ const extraText = err
239
+ ? buildCompactPreviewLines(stderrLines, {
240
+ totalLines: stderrPreview.totalLines,
241
+ maxLines: 16,
242
+ lineStyle: palette.error,
243
+ moreStyle: palette.dim,
244
+ })
245
+ : out
246
+ ? buildCompactPreviewLines(stdoutLines, {
247
+ totalLines: stdoutPreview.totalLines,
248
+ maxLines: 16,
249
+ lineStyle: palette.muted,
250
+ moreStyle: palette.dim,
251
+ })
252
+ : undefined;
253
+ return {
254
+ borderColor: grepColor,
255
+ expanded: {
256
+ title: grepColor(text.bold(`grep ${pattern}`)),
257
+ sections: expandedSections,
227
258
  },
228
- ];
229
- const extra = [];
230
- if (err) {
231
- const errLines = err.split("\n").slice(0, 2);
232
- for (const l of errLines) {
233
- extra.push(palette.error(` ${l}`));
234
- }
235
- if (stderrPreview.truncated) {
236
- extra.push(palette.dim(" (stderr truncated)"));
237
- }
238
- }
239
- else if (out) {
240
- const outLines = out.split("\n").slice(0, 2);
241
- for (const l of outLines) {
242
- extra.push(palette.muted(` ${l}`));
243
- }
244
- if (stdoutPreview.truncated) {
245
- extra.push(palette.dim(" (output truncated)"));
246
- }
247
- }
248
- return new ToolOutputComponent({
249
- compact,
250
- expanded: { borderColor: grepColor, text: expandedParts.join("\n") },
251
- compactView: {
252
- segments,
253
- flexIndices: [5],
254
- extraText: extra.length > 0 ? extra.join("\n") : undefined,
259
+ compact: {
260
+ header,
261
+ extraText,
255
262
  },
256
- });
263
+ };
257
264
  }
258
- export function renderGrepBlocked(theme, pattern, reason, compact) {
265
+ export function buildGrepBlockedView(theme, pattern, reason) {
259
266
  const { palette, text } = theme;
260
267
  const errorColor = (s) => palette.error(s);
261
- const expandedParts = [errorColor(text.bold(`grep ${pattern}`))];
262
268
  const msg = reason.trim();
263
- if (msg) {
264
- expandedParts.push("", errorColor(msg));
265
- }
269
+ const section = buildSection(msg ? [errorColor(msg)] : []);
266
270
  const patternInline = inlineText(pattern);
267
271
  const whyInline = inlineText(reason);
268
- const segments = [
269
- { text: " ", style: (s) => s },
270
- { text: "", style: errorColor },
271
- { text: " ", style: (s) => s },
272
- { text: "grep", style: palette.muted },
273
- { text: " ", style: (s) => s },
274
- { text: patternInline, style: palette.accent },
275
- { text: " ", style: (s) => s },
276
- { text: `(blocked: ${whyInline})`, style: palette.muted },
277
- ];
278
- return new ToolOutputComponent({
279
- compact,
280
- expanded: { borderColor: errorColor, text: expandedParts.join("\n") },
281
- compactView: { segments, flexIndices: [5, 7] },
272
+ const header = buildHeaderLine({
273
+ bulletStyle: errorColor,
274
+ label: "grep",
275
+ labelStyle: palette.muted,
276
+ accent: patternInline,
277
+ accentStyle: palette.accent,
278
+ tailSegments: [
279
+ { text: " ", style: (s) => s },
280
+ { text: `(blocked: ${whyInline})`, style: palette.muted },
281
+ ],
282
+ flexTailIndices: [1],
282
283
  });
284
+ return {
285
+ borderColor: errorColor,
286
+ expanded: {
287
+ title: errorColor(text.bold(`grep ${pattern}`)),
288
+ sections: section ? [section] : [],
289
+ },
290
+ compact: { header },
291
+ };
292
+ }
293
+ export function renderReadSuccess(theme, path, startLine, endLine, content, modelTruncation, compact) {
294
+ return renderToolOutput(buildReadSuccessView(theme, path, startLine, endLine, content, modelTruncation), compact);
295
+ }
296
+ export function renderReadBlocked(theme, path, reason, compact) {
297
+ return renderToolOutput(buildReadBlockedView(theme, path, reason), compact);
298
+ }
299
+ export function renderListSuccess(theme, path, offset, limit, total, returned, entries, compact) {
300
+ return renderToolOutput(buildListSuccessView(theme, path, offset, limit, total, returned, entries), compact);
301
+ }
302
+ export function renderListBlocked(theme, path, reason, compact) {
303
+ return renderToolOutput(buildListBlockedView(theme, path, reason), compact);
304
+ }
305
+ export function renderGrepRunning(theme, pattern, compact) {
306
+ return renderToolOutput(buildGrepRunningView(theme, pattern), compact);
307
+ }
308
+ export function renderGrepFinished(theme, pattern, status, exitCode, stdout, stderr, captureTruncated, compact) {
309
+ return renderToolOutput(buildGrepFinishedView(theme, pattern, status, exitCode, stdout, stderr, captureTruncated), compact);
310
+ }
311
+ export function renderGrepBlocked(theme, pattern, reason, compact) {
312
+ return renderToolOutput(buildGrepBlockedView(theme, pattern, reason), compact);
283
313
  }
284
314
  //# sourceMappingURL=restricted_execution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"restricted_execution.js","sourceRoot":"","sources":["../../src/ui/restricted_execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restricted_execution.js","sourceRoot":"","sources":["../../src/ui/restricted_execution.ts"],"names":[],"mappings":"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"}