@pentoshi/clai 3.8.1 → 3.8.3
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/runner.js +24 -1
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tool-call-parser.d.ts +4 -1
- package/dist/agent/tool-call-parser.js +51 -3
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/tui-v2/app/App.js +5 -4
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/components/composer/paste-chip.d.ts +17 -0
- package/dist/tui-v2/components/composer/paste-chip.js +75 -0
- package/dist/tui-v2/components/composer/paste-chip.js.map +1 -0
- package/dist/tui-v2/components/status/status-line.js +20 -11
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.d.ts +2 -11
- package/dist/tui-v2/composer/composer-editor.js +46 -31
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/composer/composer-wheel.d.ts +46 -0
- package/dist/tui-v2/composer/composer-wheel.js +89 -0
- package/dist/tui-v2/composer/composer-wheel.js.map +1 -0
- package/dist/tui-v2/composer/paste-placeholder.d.ts +14 -0
- package/dist/tui-v2/composer/paste-placeholder.js +39 -2
- package/dist/tui-v2/composer/paste-placeholder.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
* registry and swapped back in at submit time. Because the placeholder is
|
|
7
7
|
* inserted with one `insertText` call, it is one undo step — undoing it
|
|
8
8
|
* removes the whole paste, not one character at a time.
|
|
9
|
+
*
|
|
10
|
+
* The composer also renders a blue chip above the input for each active
|
|
11
|
+
* paste (hover preview + double-click expand).
|
|
9
12
|
*/
|
|
10
13
|
const DEFAULT_LINE_THRESHOLD = 8;
|
|
11
14
|
const DEFAULT_CHAR_THRESHOLD = 800;
|
|
@@ -17,6 +20,22 @@ export function isLargePaste(text, thresholds = {}) {
|
|
|
17
20
|
const charLimit = thresholds.chars ?? DEFAULT_CHAR_THRESHOLD;
|
|
18
21
|
return countLines(text) > lineLimit || text.length > charLimit;
|
|
19
22
|
}
|
|
23
|
+
/** First N non-empty-friendly lines for hover preview. */
|
|
24
|
+
export function pastePreviewLines(text, maxLines = 2) {
|
|
25
|
+
const lines = text.split("\n");
|
|
26
|
+
return lines.slice(0, Math.max(1, maxLines)).map((line) => {
|
|
27
|
+
const clipped = line.length > 72 ? `${line.slice(0, 71)}…` : line;
|
|
28
|
+
return clipped.length === 0 ? " " : clipped;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/** Blue chip label: "10 lines pasted" / "1 line pasted". */
|
|
32
|
+
export function pasteChipLabel(lines, chars) {
|
|
33
|
+
if (lines > 1)
|
|
34
|
+
return `${lines} lines pasted`;
|
|
35
|
+
if (chars > 0)
|
|
36
|
+
return `${chars} chars pasted`;
|
|
37
|
+
return "pasted";
|
|
38
|
+
}
|
|
20
39
|
/**
|
|
21
40
|
* Holds full pasted text keyed by an incrementing id and renders the token
|
|
22
41
|
* shown in the composer buffer in its place.
|
|
@@ -27,12 +46,14 @@ export class PasteRegistry {
|
|
|
27
46
|
register(text) {
|
|
28
47
|
const id = this.nextId++;
|
|
29
48
|
const lines = countLines(text);
|
|
49
|
+
const chars = text.length;
|
|
30
50
|
const entry = {
|
|
31
51
|
id,
|
|
32
|
-
token: `[
|
|
52
|
+
token: `[${pasteChipLabel(lines, chars)} #${id}]`,
|
|
33
53
|
text,
|
|
34
54
|
lines,
|
|
35
|
-
chars
|
|
55
|
+
chars,
|
|
56
|
+
label: pasteChipLabel(lines, chars),
|
|
36
57
|
};
|
|
37
58
|
this.entries.set(id, entry);
|
|
38
59
|
return entry;
|
|
@@ -40,6 +61,15 @@ export class PasteRegistry {
|
|
|
40
61
|
resolve(id) {
|
|
41
62
|
return this.entries.get(id);
|
|
42
63
|
}
|
|
64
|
+
/** Entries whose token still appears in the composer buffer. */
|
|
65
|
+
activeIn(value) {
|
|
66
|
+
const out = [];
|
|
67
|
+
for (const entry of this.entries.values()) {
|
|
68
|
+
if (value.includes(entry.token))
|
|
69
|
+
out.push(entry);
|
|
70
|
+
}
|
|
71
|
+
return out;
|
|
72
|
+
}
|
|
43
73
|
clear() {
|
|
44
74
|
this.entries.clear();
|
|
45
75
|
}
|
|
@@ -51,5 +81,12 @@ export class PasteRegistry {
|
|
|
51
81
|
}
|
|
52
82
|
return result;
|
|
53
83
|
}
|
|
84
|
+
/** Expand a single paste id (double-click chip). */
|
|
85
|
+
expandOne(value, id) {
|
|
86
|
+
const entry = this.entries.get(id);
|
|
87
|
+
if (!entry)
|
|
88
|
+
return value;
|
|
89
|
+
return value.split(entry.token).join(entry.text);
|
|
90
|
+
}
|
|
54
91
|
}
|
|
55
92
|
//# sourceMappingURL=paste-placeholder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paste-placeholder.js","sourceRoot":"","sources":["../../../src/tui-v2/composer/paste-placeholder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"paste-placeholder.js","sourceRoot":"","sources":["../../../src/tui-v2/composer/paste-placeholder.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
|
|
3
3
|
* Source of truth: package.json "version".
|
|
4
4
|
*/
|
|
5
|
-
export declare const VERSION: "3.8.
|
|
6
|
-
export declare const VERSION_TAG: "v3.8.
|
|
5
|
+
export declare const VERSION: "3.8.3";
|
|
6
|
+
export declare const VERSION_TAG: "v3.8.3";
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
|
|
3
3
|
* Source of truth: package.json "version".
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = "3.8.
|
|
6
|
-
export const VERSION_TAG = "v3.8.
|
|
5
|
+
export const VERSION = "3.8.3";
|
|
6
|
+
export const VERSION_TAG = "v3.8.3";
|
|
7
7
|
//# sourceMappingURL=version.generated.js.map
|
package/package.json
CHANGED