@markusylisiurunen/tau 0.1.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.
Files changed (106) hide show
  1. package/README.md +228 -0
  2. package/dist/app.js +1140 -0
  3. package/dist/app.js.map +1 -0
  4. package/dist/bash_commands.js +81 -0
  5. package/dist/bash_commands.js.map +1 -0
  6. package/dist/cli.js +147 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/clipboard.js +16 -0
  9. package/dist/clipboard.js.map +1 -0
  10. package/dist/commands.js +76 -0
  11. package/dist/commands.js.map +1 -0
  12. package/dist/config.js +39 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/content_loader.js +241 -0
  15. package/dist/content_loader.js.map +1 -0
  16. package/dist/debug-ui.js +134 -0
  17. package/dist/debug-ui.js.map +1 -0
  18. package/dist/main.js +85 -0
  19. package/dist/main.js.map +1 -0
  20. package/dist/personas.js +227 -0
  21. package/dist/personas.js.map +1 -0
  22. package/dist/prompts.js +261 -0
  23. package/dist/prompts.js.map +1 -0
  24. package/dist/session/message_accumulator.js +56 -0
  25. package/dist/session/message_accumulator.js.map +1 -0
  26. package/dist/session/session_engine.js +290 -0
  27. package/dist/session/session_engine.js.map +1 -0
  28. package/dist/subagents/explore.js +42 -0
  29. package/dist/subagents/explore.js.map +1 -0
  30. package/dist/subagents/registry.js +30 -0
  31. package/dist/subagents/registry.js.map +1 -0
  32. package/dist/subagents/subagent_engine.js +147 -0
  33. package/dist/subagents/subagent_engine.js.map +1 -0
  34. package/dist/subagents/types.js +2 -0
  35. package/dist/subagents/types.js.map +1 -0
  36. package/dist/terminal.js +115 -0
  37. package/dist/terminal.js.map +1 -0
  38. package/dist/tools/bash.js +334 -0
  39. package/dist/tools/bash.js.map +1 -0
  40. package/dist/tools/edit.js +199 -0
  41. package/dist/tools/edit.js.map +1 -0
  42. package/dist/tools/registry.js +15 -0
  43. package/dist/tools/registry.js.map +1 -0
  44. package/dist/tools/task.js +202 -0
  45. package/dist/tools/task.js.map +1 -0
  46. package/dist/tools/write.js +89 -0
  47. package/dist/tools/write.js.map +1 -0
  48. package/dist/types.js +9 -0
  49. package/dist/types.js.map +1 -0
  50. package/dist/ui/assistant_message.js +87 -0
  51. package/dist/ui/assistant_message.js.map +1 -0
  52. package/dist/ui/bash_execution.js +127 -0
  53. package/dist/ui/bash_execution.js.map +1 -0
  54. package/dist/ui/chat_container.js +90 -0
  55. package/dist/ui/chat_container.js.map +1 -0
  56. package/dist/ui/components/dynamic_border.js +11 -0
  57. package/dist/ui/components/dynamic_border.js.map +1 -0
  58. package/dist/ui/components/one_line_segments.js +79 -0
  59. package/dist/ui/components/one_line_segments.js.map +1 -0
  60. package/dist/ui/components/padded_container.js +24 -0
  61. package/dist/ui/components/padded_container.js.map +1 -0
  62. package/dist/ui/custom_editor.js +53 -0
  63. package/dist/ui/custom_editor.js.map +1 -0
  64. package/dist/ui/file_execution.js +189 -0
  65. package/dist/ui/file_execution.js.map +1 -0
  66. package/dist/ui/footer.js +56 -0
  67. package/dist/ui/footer.js.map +1 -0
  68. package/dist/ui/queued_messages.js +31 -0
  69. package/dist/ui/queued_messages.js.map +1 -0
  70. package/dist/ui/session_divider.js +17 -0
  71. package/dist/ui/session_divider.js.map +1 -0
  72. package/dist/ui/session_summary.js +30 -0
  73. package/dist/ui/session_summary.js.map +1 -0
  74. package/dist/ui/slash_autocomplete.js +177 -0
  75. package/dist/ui/slash_autocomplete.js.map +1 -0
  76. package/dist/ui/system_message.js +8 -0
  77. package/dist/ui/system_message.js.map +1 -0
  78. package/dist/ui/task_execution.js +190 -0
  79. package/dist/ui/task_execution.js.map +1 -0
  80. package/dist/ui/theme.js +108 -0
  81. package/dist/ui/theme.js.map +1 -0
  82. package/dist/ui/tool_output.js +24 -0
  83. package/dist/ui/tool_output.js.map +1 -0
  84. package/dist/ui/user_message.js +14 -0
  85. package/dist/ui/user_message.js.map +1 -0
  86. package/dist/utils/color.js +13 -0
  87. package/dist/utils/color.js.map +1 -0
  88. package/dist/utils/context.js +108 -0
  89. package/dist/utils/context.js.map +1 -0
  90. package/dist/utils/fork.js +41 -0
  91. package/dist/utils/fork.js.map +1 -0
  92. package/dist/utils/format.js +35 -0
  93. package/dist/utils/format.js.map +1 -0
  94. package/dist/utils/fuzzy.js +48 -0
  95. package/dist/utils/fuzzy.js.map +1 -0
  96. package/dist/utils/git.js +21 -0
  97. package/dist/utils/git.js.map +1 -0
  98. package/dist/utils/messages.js +41 -0
  99. package/dist/utils/messages.js.map +1 -0
  100. package/dist/utils/never.js +4 -0
  101. package/dist/utils/never.js.map +1 -0
  102. package/dist/utils/project_files.js +96 -0
  103. package/dist/utils/project_files.js.map +1 -0
  104. package/dist/utils/truncate.js +299 -0
  105. package/dist/utils/truncate.js.map +1 -0
  106. package/package.json +37 -0
@@ -0,0 +1,299 @@
1
+ const DEFAULT_MIDDLE_MARKER = "… (truncated) …";
2
+ const DEFAULT_BYTES_PER_TOKEN = 4;
3
+ function truncateStringToBytesFromMiddle(str, maxBytes, marker) {
4
+ const markerBytes = Buffer.byteLength(marker, "utf-8");
5
+ if (maxBytes <= markerBytes) {
6
+ return truncateToBytesFromStart(marker, maxBytes);
7
+ }
8
+ const remainingBytes = maxBytes - markerBytes;
9
+ const headBytes = Math.floor(remainingBytes / 2);
10
+ const tailBytes = remainingBytes - headBytes;
11
+ const head = truncateToBytesFromStart(str, headBytes);
12
+ const tail = truncateStringToBytesFromEnd(str, tailBytes);
13
+ return `${head}${marker}${tail}`;
14
+ }
15
+ export function truncateMiddleForModel(content, options) {
16
+ const { maxLines, maxBytes } = options;
17
+ const bytesPerTokenApprox = options.bytesPerTokenApprox ?? DEFAULT_BYTES_PER_TOKEN;
18
+ const totalBytes = Buffer.byteLength(content, "utf-8");
19
+ const lines = content.split("\n");
20
+ const totalLines = lines.length;
21
+ if (totalLines <= maxLines && totalBytes <= maxBytes) {
22
+ return {
23
+ content,
24
+ truncated: false,
25
+ truncatedBy: null,
26
+ totalLines,
27
+ totalBytes,
28
+ outputLines: totalLines,
29
+ outputBytes: totalBytes,
30
+ maxLines,
31
+ maxBytes,
32
+ };
33
+ }
34
+ const tokenCountFromBytes = (bytesTruncated) => {
35
+ if (bytesTruncated <= 0)
36
+ return 0;
37
+ const approx = Math.floor(bytesTruncated / bytesPerTokenApprox);
38
+ return Math.max(1, approx);
39
+ };
40
+ const markerForBytes = (bytesTruncated) => `…${tokenCountFromBytes(bytesTruncated)} tokens truncated…`;
41
+ if (totalLines > maxLines) {
42
+ let headCount = Math.floor(Math.max(0, maxLines - 1) / 2);
43
+ let tailCount = Math.max(0, maxLines - 1) - headCount;
44
+ const build = (hc, tc) => {
45
+ const headLines = lines.slice(0, hc);
46
+ const tailLines = tc > 0 ? lines.slice(Math.max(totalLines - tc, hc)) : [];
47
+ const kept = [...headLines, ...tailLines].join("\n");
48
+ const keptBytes = Buffer.byteLength(kept, "utf-8");
49
+ const bytesTruncated = Math.max(0, totalBytes - keptBytes);
50
+ const marker = markerForBytes(bytesTruncated);
51
+ const out = [...headLines, marker, ...tailLines].join("\n");
52
+ return { out, outBytes: Buffer.byteLength(out, "utf-8"), bytesTruncated };
53
+ };
54
+ let built = build(headCount, tailCount);
55
+ while (built.outBytes > maxBytes && (headCount > 0 || tailCount > 0)) {
56
+ if (headCount > tailCount) {
57
+ headCount = Math.max(0, headCount - 1);
58
+ }
59
+ else if (tailCount > headCount) {
60
+ tailCount = Math.max(0, tailCount - 1);
61
+ }
62
+ else {
63
+ headCount = Math.max(0, headCount - 1);
64
+ tailCount = Math.max(0, tailCount - 1);
65
+ }
66
+ built = build(headCount, tailCount);
67
+ }
68
+ return {
69
+ content: built.out,
70
+ truncated: true,
71
+ truncatedBy: built.outBytes > maxBytes ? "bytes" : "lines",
72
+ totalLines,
73
+ totalBytes,
74
+ outputLines: built.out.split("\n").length,
75
+ outputBytes: built.outBytes,
76
+ maxLines,
77
+ maxBytes,
78
+ };
79
+ }
80
+ let marker = markerForBytes(Math.max(0, totalBytes - maxBytes));
81
+ let out = truncateStringToBytesFromMiddle(content, maxBytes, marker);
82
+ for (let i = 0; i < 2; i++) {
83
+ const markerBytes = Buffer.byteLength(marker, "utf-8");
84
+ const outBytes = Buffer.byteLength(out, "utf-8");
85
+ const keptBytesApprox = Math.max(0, outBytes - markerBytes);
86
+ const bytesTruncated = Math.max(0, totalBytes - keptBytesApprox);
87
+ const nextMarker = markerForBytes(bytesTruncated);
88
+ if (nextMarker === marker)
89
+ break;
90
+ marker = nextMarker;
91
+ out = truncateStringToBytesFromMiddle(content, maxBytes, marker);
92
+ }
93
+ const finalBytes = Buffer.byteLength(out, "utf-8");
94
+ return {
95
+ content: out,
96
+ truncated: true,
97
+ truncatedBy: "bytes",
98
+ totalLines,
99
+ totalBytes,
100
+ outputLines: out.split("\n").length,
101
+ outputBytes: finalBytes,
102
+ maxLines,
103
+ maxBytes,
104
+ };
105
+ }
106
+ export function truncateMiddle(content, options) {
107
+ const { maxLines, maxBytes } = options;
108
+ const marker = options.marker ?? DEFAULT_MIDDLE_MARKER;
109
+ const totalBytes = Buffer.byteLength(content, "utf-8");
110
+ const lines = content.split("\n");
111
+ const totalLines = lines.length;
112
+ if (totalLines <= maxLines && totalBytes <= maxBytes) {
113
+ return {
114
+ content,
115
+ truncated: false,
116
+ truncatedBy: null,
117
+ totalLines,
118
+ totalBytes,
119
+ outputLines: totalLines,
120
+ outputBytes: totalBytes,
121
+ maxLines,
122
+ maxBytes,
123
+ };
124
+ }
125
+ let outputContent = content;
126
+ let truncatedBy = totalLines > maxLines ? "lines" : "bytes";
127
+ if (totalLines > maxLines) {
128
+ const safeMaxLines = Math.max(1, maxLines);
129
+ const headCount = Math.floor(safeMaxLines / 2);
130
+ const tailCount = safeMaxLines - headCount;
131
+ const headLines = lines.slice(0, headCount);
132
+ const tailStart = Math.max(totalLines - tailCount, headCount);
133
+ const tailLines = lines.slice(tailStart);
134
+ outputContent = [...headLines, ...tailLines].join("\n");
135
+ }
136
+ const outputBytesBefore = Buffer.byteLength(outputContent, "utf-8");
137
+ if (outputBytesBefore > maxBytes) {
138
+ truncatedBy = "bytes";
139
+ outputContent = truncateStringToBytesFromMiddle(outputContent, maxBytes, marker);
140
+ }
141
+ const outputBytes = Buffer.byteLength(outputContent, "utf-8");
142
+ const outputLines = outputContent.split("\n").length;
143
+ return {
144
+ content: outputContent,
145
+ truncated: true,
146
+ truncatedBy,
147
+ totalLines,
148
+ totalBytes,
149
+ outputLines,
150
+ outputBytes,
151
+ maxLines,
152
+ maxBytes,
153
+ };
154
+ }
155
+ export function truncateTail(content, options) {
156
+ const { maxLines, maxBytes } = options;
157
+ const totalBytes = Buffer.byteLength(content, "utf-8");
158
+ const lines = content.split("\n");
159
+ const totalLines = lines.length;
160
+ if (totalLines <= maxLines && totalBytes <= maxBytes) {
161
+ return {
162
+ content,
163
+ truncated: false,
164
+ truncatedBy: null,
165
+ totalLines,
166
+ totalBytes,
167
+ outputLines: totalLines,
168
+ outputBytes: totalBytes,
169
+ maxLines,
170
+ maxBytes,
171
+ };
172
+ }
173
+ const outputLinesArr = [];
174
+ let outputBytesCount = 0;
175
+ let truncatedBy = "lines";
176
+ for (let i = lines.length - 1; i >= 0 && outputLinesArr.length < maxLines; i--) {
177
+ const line = lines[i] ?? "";
178
+ const lineBytes = Buffer.byteLength(line, "utf-8") + (outputLinesArr.length > 0 ? 1 : 0);
179
+ if (outputBytesCount + lineBytes > maxBytes) {
180
+ truncatedBy = "bytes";
181
+ if (outputLinesArr.length === 0) {
182
+ const truncatedLine = truncateStringToBytesFromEnd(line, maxBytes);
183
+ outputLinesArr.unshift(truncatedLine);
184
+ outputBytesCount = Buffer.byteLength(truncatedLine, "utf-8");
185
+ }
186
+ break;
187
+ }
188
+ outputLinesArr.unshift(line);
189
+ outputBytesCount += lineBytes;
190
+ }
191
+ if (outputLinesArr.length >= maxLines && outputBytesCount <= maxBytes) {
192
+ truncatedBy = "lines";
193
+ }
194
+ const outputContent = outputLinesArr.join("\n");
195
+ const finalOutputBytes = Buffer.byteLength(outputContent, "utf-8");
196
+ return {
197
+ content: outputContent,
198
+ truncated: true,
199
+ truncatedBy,
200
+ totalLines,
201
+ totalBytes,
202
+ outputLines: outputLinesArr.length,
203
+ outputBytes: finalOutputBytes,
204
+ maxLines,
205
+ maxBytes,
206
+ };
207
+ }
208
+ function truncateStringToBytesFromEnd(str, maxBytes) {
209
+ const buf = Buffer.from(str, "utf-8");
210
+ if (buf.length <= maxBytes)
211
+ return str;
212
+ let start = buf.length - maxBytes;
213
+ while (start < buf.length && (buf[start] & 0xc0) === 0x80) {
214
+ start++;
215
+ }
216
+ return buf.slice(start).toString("utf-8");
217
+ }
218
+ export function truncateHead(content, options) {
219
+ const { maxLines, maxBytes } = options;
220
+ const totalBytes = Buffer.byteLength(content, "utf-8");
221
+ const lines = content.split("\n");
222
+ const totalLines = lines.length;
223
+ if (totalLines <= maxLines && totalBytes <= maxBytes) {
224
+ return {
225
+ content,
226
+ truncated: false,
227
+ truncatedBy: null,
228
+ totalLines,
229
+ totalBytes,
230
+ outputLines: totalLines,
231
+ outputBytes: totalBytes,
232
+ maxLines,
233
+ maxBytes,
234
+ };
235
+ }
236
+ const outputLinesArr = [];
237
+ let outputBytesCount = 0;
238
+ let truncatedBy = "lines";
239
+ for (let i = 0; i < lines.length && outputLinesArr.length < maxLines; i++) {
240
+ const line = lines[i] ?? "";
241
+ const lineBytes = Buffer.byteLength(line, "utf-8") + (outputLinesArr.length > 0 ? 1 : 0);
242
+ if (outputBytesCount + lineBytes > maxBytes) {
243
+ truncatedBy = "bytes";
244
+ if (outputLinesArr.length === 0) {
245
+ const truncatedLine = truncateToBytesFromStart(line, maxBytes);
246
+ outputLinesArr.push(truncatedLine);
247
+ outputBytesCount = Buffer.byteLength(truncatedLine, "utf-8");
248
+ }
249
+ break;
250
+ }
251
+ outputLinesArr.push(line);
252
+ outputBytesCount += lineBytes;
253
+ }
254
+ if (outputLinesArr.length >= maxLines && outputBytesCount <= maxBytes) {
255
+ truncatedBy = "lines";
256
+ }
257
+ const outputContent = outputLinesArr.join("\n");
258
+ const finalOutputBytes = Buffer.byteLength(outputContent, "utf-8");
259
+ return {
260
+ content: outputContent,
261
+ truncated: true,
262
+ truncatedBy,
263
+ totalLines,
264
+ totalBytes,
265
+ outputLines: outputLinesArr.length,
266
+ outputBytes: finalOutputBytes,
267
+ maxLines,
268
+ maxBytes,
269
+ };
270
+ }
271
+ export function truncateToBytesFromStart(str, maxBytes) {
272
+ const buf = Buffer.from(str, "utf-8");
273
+ if (buf.length <= maxBytes)
274
+ return str;
275
+ let end = maxBytes;
276
+ while (end > 0 && (buf[end] & 0xc0) === 0x80) {
277
+ end--;
278
+ }
279
+ return buf.slice(0, end).toString("utf-8");
280
+ }
281
+ export function formatBytes(bytes) {
282
+ if (bytes < 1024)
283
+ return `${bytes}B`;
284
+ if (bytes < 1024 * 1024)
285
+ return `${(bytes / 1024).toFixed(1)}KB`;
286
+ return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
287
+ }
288
+ export function truncateInline(text, maxChars) {
289
+ const singleLine = text.replace(/\s+/g, " ").trim();
290
+ if (maxChars <= 0)
291
+ return "";
292
+ const chars = Array.from(singleLine);
293
+ if (chars.length <= maxChars)
294
+ return singleLine;
295
+ if (maxChars === 1)
296
+ return "…";
297
+ return `${chars.slice(0, maxChars - 1).join("")}…`;
298
+ }
299
+ //# sourceMappingURL=truncate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/utils/truncate.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@markusylisiurunen/tau",
3
+ "version": "0.1.2",
4
+ "type": "module",
5
+ "bin": {
6
+ "tau": "./dist/main.js"
7
+ },
8
+ "files": [
9
+ "dist/",
10
+ "bin/"
11
+ ],
12
+ "scripts": {
13
+ "dev": "tsx src/main.ts",
14
+ "build": "tsc -p tsconfig.json",
15
+ "start": "node dist/main.js",
16
+ "check": "biome check --write . && tsc -p tsconfig.json --noEmit",
17
+ "fmt": "biome format --write .",
18
+ "lint": "biome lint ."
19
+ },
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "dependencies": {
24
+ "@mariozechner/pi-ai": "^0.21.0",
25
+ "@mariozechner/pi-tui": "^0.21.0",
26
+ "chalk": "^5.6.2"
27
+ },
28
+ "devDependencies": {
29
+ "@biomejs/biome": "2.3.8",
30
+ "@types/node": "^24.10.4",
31
+ "tsx": "^4.21.0",
32
+ "typescript": "^5.9.3"
33
+ },
34
+ "engines": {
35
+ "node": ">=20.0.0"
36
+ }
37
+ }