@pentoshi/clai 5.1.0 → 5.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.
- package/CHANGELOG.md +49 -0
- package/MCP.md +4 -3
- package/REA.md +4 -0
- package/dist/agent/events.d.ts +4 -1
- package/dist/agent/evidence/tool-budgets.js +3 -3
- package/dist/agent/evidence/tool-budgets.js.map +1 -1
- package/dist/agent/subagents/tools.d.ts +1 -1
- package/dist/agent/turn/loop/round-request.js +1 -0
- package/dist/agent/turn/loop/round-request.js.map +1 -1
- package/dist/agent/turn/loop/stream-request.d.ts +1 -0
- package/dist/agent/turn/loop/stream-request.js +1 -0
- package/dist/agent/turn/loop/stream-request.js.map +1 -1
- package/dist/agent/turn/tool-watchdog.js +4 -0
- package/dist/agent/turn/tool-watchdog.js.map +1 -1
- package/dist/app/adapters/agent-event-adapter.js +2 -0
- package/dist/app/adapters/agent-event-adapter.js.map +1 -1
- package/dist/app/adapters/in-memory-clipboard-adapter.js +21 -17
- package/dist/app/adapters/in-memory-clipboard-adapter.js.map +1 -1
- package/dist/app/controllers/cancel-coordinator.d.ts +1 -0
- package/dist/app/controllers/cancel-coordinator.js +7 -2
- package/dist/app/controllers/cancel-coordinator.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +3 -0
- package/dist/app/controllers/session-controller.js +39 -22
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-turn-request.d.ts +2 -1
- package/dist/app/controllers/session-turn-request.js +11 -3
- package/dist/app/controllers/session-turn-request.js.map +1 -1
- package/dist/app/controllers/turn-controller.d.ts +3 -0
- package/dist/app/controllers/turn-controller.js +23 -7
- package/dist/app/controllers/turn-controller.js.map +1 -1
- package/dist/attachments/clipboard-image.d.ts +1 -1
- package/dist/attachments/clipboard-image.js +70 -54
- package/dist/attachments/clipboard-image.js.map +1 -1
- package/dist/attachments/image-prepare.d.ts +2 -2
- package/dist/attachments/image-prepare.js +102 -303
- package/dist/attachments/image-prepare.js.map +1 -1
- package/dist/attachments/image-transcoder.d.ts +14 -0
- package/dist/attachments/image-transcoder.js +85 -0
- package/dist/attachments/image-transcoder.js.map +1 -0
- package/dist/attachments/labels.d.ts +6 -0
- package/dist/attachments/labels.js +30 -0
- package/dist/attachments/labels.js.map +1 -0
- package/dist/attachments/read-image.d.ts +1 -0
- package/dist/attachments/read-image.js +31 -0
- package/dist/attachments/read-image.js.map +1 -0
- package/dist/attachments/service.d.ts +2 -1
- package/dist/attachments/service.js +8 -5
- package/dist/attachments/service.js.map +1 -1
- package/dist/classic/app/ClassicApp.js +1 -0
- package/dist/classic/app/ClassicApp.js.map +1 -1
- package/dist/classic/app/wiring-interactions.js +1 -2
- package/dist/classic/app/wiring-interactions.js.map +1 -1
- package/dist/classic/bootstrap/start-classic.js +6 -12
- package/dist/classic/bootstrap/start-classic.js.map +1 -1
- package/dist/classic/chrome/composer-controller.d.ts +3 -4
- package/dist/classic/chrome/composer-controller.js +12 -51
- package/dist/classic/chrome/composer-controller.js.map +1 -1
- package/dist/classic/chrome/composer-paste.d.ts +25 -0
- package/dist/classic/chrome/composer-paste.js +77 -0
- package/dist/classic/chrome/composer-paste.js.map +1 -0
- package/dist/classic/chrome/context-limit-editor.js +1 -1
- package/dist/classic/chrome/context-limit-editor.js.map +1 -1
- package/dist/classic/chrome/queue-rows.js +2 -1
- package/dist/classic/chrome/queue-rows.js.map +1 -1
- package/dist/classic/chrome/status-rows.d.ts +2 -0
- package/dist/classic/chrome/status-rows.js +11 -21
- package/dist/classic/chrome/status-rows.js.map +1 -1
- package/dist/classic/input/cancel-ladder.d.ts +1 -0
- package/dist/classic/input/cancel-ladder.js +21 -23
- package/dist/classic/input/cancel-ladder.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/generation-metrics.d.ts +3 -0
- package/dist/llm/generation-metrics.js.map +1 -1
- package/dist/llm/generation-progress.d.ts +21 -0
- package/dist/llm/generation-progress.js +93 -0
- package/dist/llm/generation-progress.js.map +1 -0
- package/dist/llm/operation-usage.d.ts +2 -0
- package/dist/llm/operation-usage.js +22 -3
- package/dist/llm/operation-usage.js.map +1 -1
- package/dist/llm/routing/attempt-stream.js +2 -0
- package/dist/llm/routing/attempt-stream.js.map +1 -1
- package/dist/mcp/manager.d.ts +3 -0
- package/dist/mcp/manager.js +43 -51
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/transport-http.js +1 -1
- package/dist/mcp/transport-http.js.map +1 -1
- package/dist/mcp/transport-stdio.js +1 -1
- package/dist/mcp/transport-stdio.js.map +1 -1
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/system.agent.md +1 -1
- package/dist/rea/runtime.js +7 -2
- package/dist/rea/runtime.js.map +1 -1
- package/dist/rea/timeouts.d.ts +1 -0
- package/dist/rea/timeouts.js +19 -0
- package/dist/rea/timeouts.js.map +1 -0
- package/dist/session-runtime/start-runtime.js +6 -1
- package/dist/session-runtime/start-runtime.js.map +1 -1
- package/dist/store/history.d.ts +1 -1
- package/dist/store/history.js +29 -35
- package/dist/store/history.js.map +1 -1
- package/dist/tools/image.js +4 -18
- package/dist/tools/image.js.map +1 -1
- package/dist/tui-v2/app/App.js +36 -91
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/bootstrap/start-tui-v2.js +6 -12
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/queue/queue-panel.js +2 -1
- package/dist/tui-v2/components/queue/queue-panel.js.map +1 -1
- package/dist/tui-v2/components/status/context-limit-chip.js +2 -2
- package/dist/tui-v2/components/status/context-limit-chip.js.map +1 -1
- package/dist/tui-v2/components/status/status-line.d.ts +0 -1
- package/dist/tui-v2/components/status/status-line.js +8 -8
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +3 -2
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/composer/composer-image-paste.d.ts +1 -20
- package/dist/tui-v2/composer/composer-image-paste.js +1 -76
- package/dist/tui-v2/composer/composer-image-paste.js.map +1 -1
- package/dist/tui-v2/input/escape-cancellation.d.ts +3 -3
- package/dist/tui-v2/input/escape-cancellation.js +4 -4
- package/dist/tui-v2/input/escape-cancellation.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/ui/mentions/expand.d.ts +2 -2
- package/dist/ui/mentions/expand.js +5 -57
- package/dist/ui/mentions/expand.js.map +1 -1
- package/dist/ui/mentions.d.ts +4 -4
- package/dist/ui/mentions.js +21 -22
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui-core/bootstrap/shutdown-services.js +1 -0
- package/dist/ui-core/bootstrap/shutdown-services.js.map +1 -1
- package/dist/ui-core/composer/composer-image-paste.d.ts +3 -2
- package/dist/ui-core/composer/composer-image-paste.js +49 -46
- package/dist/ui-core/composer/composer-image-paste.js.map +1 -1
- package/dist/ui-core/composer/paste-placeholder.d.ts +3 -0
- package/dist/ui-core/composer/paste-placeholder.js +27 -4
- package/dist/ui-core/composer/paste-placeholder.js.map +1 -1
- package/dist/ui-core/ports/clipboard-osc52.js +3 -0
- package/dist/ui-core/ports/clipboard-osc52.js.map +1 -1
- package/dist/ui-core/rendering/context-limit.js +2 -2
- package/dist/ui-core/rendering/context-limit.js.map +1 -1
- package/dist/ui-core/rendering/footer-metrics.d.ts +6 -0
- package/dist/ui-core/rendering/footer-metrics.js +21 -0
- package/dist/ui-core/rendering/footer-metrics.js.map +1 -0
- package/dist/ui-core/rendering/status-segments.js +1 -1
- package/dist/ui-core/rendering/status-segments.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { execFile } from "node:child_process";
|
|
3
|
+
import { mkdir, open, rm, stat, writeFile } from "node:fs/promises";
|
|
4
|
+
import { promisify } from "node:util";
|
|
4
5
|
import { platform } from "node:os";
|
|
5
6
|
import { join } from "node:path";
|
|
6
7
|
import { safeCwd } from "../os/cwd.js";
|
|
@@ -9,33 +10,35 @@ import { detectModelImageMediaType, formatByteSize, } from "./image-content.js";
|
|
|
9
10
|
const CAPTURE_TIMEOUT_MS = 4_000;
|
|
10
11
|
const MAX_CAPTURE_BYTES = 67_108_864;
|
|
11
12
|
const MAX_CAPTURE_BUFFER = MAX_CAPTURE_BYTES + 1;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
const execute = promisify(execFile);
|
|
14
|
+
const exists = (path) => stat(path).then((info) => info.isFile(), () => false);
|
|
15
|
+
async function captureCommand(command, args) {
|
|
16
|
+
try {
|
|
17
|
+
const { stdout } = await execute(command, args, {
|
|
18
|
+
encoding: "buffer",
|
|
19
|
+
maxBuffer: MAX_CAPTURE_BUFFER,
|
|
20
|
+
timeout: CAPTURE_TIMEOUT_MS,
|
|
21
|
+
windowsHide: true,
|
|
22
|
+
});
|
|
23
|
+
return stdout.length > 0 ? stdout : undefined;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
22
26
|
return undefined;
|
|
23
27
|
}
|
|
24
|
-
return result.stdout;
|
|
25
28
|
}
|
|
26
|
-
function captureLinuxPng() {
|
|
29
|
+
async function captureLinuxPng() {
|
|
27
30
|
const attempts = [
|
|
28
31
|
["wl-paste", ["--no-newline", "--type", "image/png"]],
|
|
29
32
|
["xclip", ["-selection", "clipboard", "-t", "image/png", "-o"]],
|
|
30
33
|
];
|
|
31
34
|
for (const [command, args] of attempts) {
|
|
32
|
-
const bytes = captureCommand(command, args);
|
|
35
|
+
const bytes = await captureCommand(command, args);
|
|
33
36
|
if (bytes && detectModelImageMediaType(bytes) === "image/png")
|
|
34
37
|
return bytes;
|
|
35
38
|
}
|
|
36
39
|
return undefined;
|
|
37
40
|
}
|
|
38
|
-
function writeMacClipboardFormat(destination, clipboardClass) {
|
|
41
|
+
async function writeMacClipboardFormat(destination, clipboardClass) {
|
|
39
42
|
const script = [
|
|
40
43
|
"on run argv",
|
|
41
44
|
"set destinationPath to item 1 of argv",
|
|
@@ -59,38 +62,38 @@ function writeMacClipboardFormat(destination, clipboardClass) {
|
|
|
59
62
|
"end run",
|
|
60
63
|
].join("\n");
|
|
61
64
|
try {
|
|
62
|
-
const
|
|
65
|
+
const { stdout } = await execute("osascript", ["-e", script, destination], {
|
|
63
66
|
encoding: "utf8",
|
|
64
|
-
stdio: ["ignore", "pipe", "ignore"],
|
|
65
67
|
timeout: CAPTURE_TIMEOUT_MS,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
+
maxBuffer: 4096,
|
|
69
|
+
});
|
|
70
|
+
return stdout.trim() !== "NO_IMAGE" && await exists(destination);
|
|
68
71
|
}
|
|
69
72
|
catch {
|
|
70
73
|
return false;
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
|
-
function captureMacPng(destination) {
|
|
74
|
-
if (writeMacClipboardFormat(destination, "PNGf"))
|
|
76
|
+
async function captureMacPng(destination) {
|
|
77
|
+
if (await writeMacClipboardFormat(destination, "PNGf"))
|
|
75
78
|
return true;
|
|
76
79
|
const tiffPath = `${destination}.tiff`;
|
|
77
|
-
if (!writeMacClipboardFormat(tiffPath, "TIFF"))
|
|
78
|
-
return false;
|
|
79
80
|
try {
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
if (!(await writeMacClipboardFormat(tiffPath, "TIFF")))
|
|
82
|
+
return false;
|
|
83
|
+
await execute("sips", ["-s", "format", "png", tiffPath, "--out", destination], {
|
|
82
84
|
timeout: CAPTURE_TIMEOUT_MS,
|
|
85
|
+
maxBuffer: 4096,
|
|
83
86
|
});
|
|
84
|
-
return
|
|
87
|
+
return await exists(destination);
|
|
85
88
|
}
|
|
86
89
|
catch {
|
|
87
90
|
return false;
|
|
88
91
|
}
|
|
89
92
|
finally {
|
|
90
|
-
|
|
93
|
+
await rm(tiffPath, { force: true });
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
|
-
function captureWindowsPng(destination) {
|
|
96
|
+
async function captureWindowsPng(destination) {
|
|
94
97
|
const script = [
|
|
95
98
|
"Add-Type -AssemblyName System.Windows.Forms",
|
|
96
99
|
"Add-Type -AssemblyName System.Drawing",
|
|
@@ -100,31 +103,44 @@ function captureWindowsPng(destination) {
|
|
|
100
103
|
"$image.Dispose()",
|
|
101
104
|
].join("; ");
|
|
102
105
|
for (const command of ["powershell.exe", "pwsh.exe", "pwsh"]) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
106
|
+
try {
|
|
107
|
+
await execute(command, ["-NoProfile", "-NonInteractive", "-STA", "-Command", script], {
|
|
108
|
+
env: { ...process.env, CLAI_CLIPBOARD_IMAGE_PATH: destination },
|
|
109
|
+
timeout: CAPTURE_TIMEOUT_MS,
|
|
110
|
+
maxBuffer: 4096,
|
|
111
|
+
windowsHide: true,
|
|
112
|
+
});
|
|
113
|
+
if (await exists(destination))
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
111
119
|
}
|
|
112
120
|
return false;
|
|
113
121
|
}
|
|
114
|
-
function validateCapturedPng(destination) {
|
|
122
|
+
async function validateCapturedPng(destination) {
|
|
115
123
|
try {
|
|
116
|
-
const
|
|
117
|
-
if (
|
|
124
|
+
const info = await stat(destination);
|
|
125
|
+
if (info.size === 0) {
|
|
118
126
|
return { ok: false, reason: "The clipboard does not contain an image." };
|
|
119
127
|
}
|
|
120
|
-
if (
|
|
128
|
+
if (info.size > MAX_CAPTURE_BYTES) {
|
|
121
129
|
return {
|
|
122
130
|
ok: false,
|
|
123
|
-
reason: `Clipboard image is ${formatByteSize(
|
|
131
|
+
reason: `Clipboard image is ${formatByteSize(info.size)}, above the ${formatByteSize(MAX_CAPTURE_BYTES)} capture ceiling.`,
|
|
124
132
|
};
|
|
125
133
|
}
|
|
126
|
-
const
|
|
127
|
-
|
|
134
|
+
const handle = await open(destination, "r");
|
|
135
|
+
const bytes = Buffer.alloc(64);
|
|
136
|
+
let bytesRead;
|
|
137
|
+
try {
|
|
138
|
+
({ bytesRead } = await handle.read(bytes, 0, bytes.length, 0));
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
await handle.close();
|
|
142
|
+
}
|
|
143
|
+
if (detectModelImageMediaType(bytes.subarray(0, bytesRead)) !== "image/png") {
|
|
128
144
|
return {
|
|
129
145
|
ok: false,
|
|
130
146
|
reason: "Clipboard image could not be converted to PNG.",
|
|
@@ -134,18 +150,18 @@ function validateCapturedPng(destination) {
|
|
|
134
150
|
ok: true,
|
|
135
151
|
path: destination,
|
|
136
152
|
mediaType: "image/png",
|
|
137
|
-
byteLength:
|
|
153
|
+
byteLength: info.size,
|
|
138
154
|
};
|
|
139
155
|
}
|
|
140
156
|
catch {
|
|
141
157
|
return { ok: false, reason: "Clipboard image could not be read." };
|
|
142
158
|
}
|
|
143
159
|
}
|
|
144
|
-
export function captureClipboardImage(baseDir = safeCwd()) {
|
|
160
|
+
export async function captureClipboardImage(baseDir = safeCwd()) {
|
|
145
161
|
const attachmentDir = join(scratchDirFor(baseDir), "attachments");
|
|
146
162
|
const destination = join(attachmentDir, `clipboard-${Date.now()}-${randomUUID().slice(0, 8)}.png`);
|
|
147
163
|
try {
|
|
148
|
-
|
|
164
|
+
await mkdir(attachmentDir, { recursive: true });
|
|
149
165
|
}
|
|
150
166
|
catch {
|
|
151
167
|
return { ok: false, reason: "Could not create the attachment directory." };
|
|
@@ -153,13 +169,13 @@ export function captureClipboardImage(baseDir = safeCwd()) {
|
|
|
153
169
|
let captured = false;
|
|
154
170
|
const os = platform();
|
|
155
171
|
if (os === "darwin") {
|
|
156
|
-
captured = captureMacPng(destination);
|
|
172
|
+
captured = await captureMacPng(destination);
|
|
157
173
|
}
|
|
158
174
|
else if (os === "linux") {
|
|
159
|
-
const bytes = captureLinuxPng();
|
|
175
|
+
const bytes = await captureLinuxPng();
|
|
160
176
|
if (bytes) {
|
|
161
177
|
try {
|
|
162
|
-
|
|
178
|
+
await writeFile(destination, bytes, { mode: 0o600 });
|
|
163
179
|
captured = true;
|
|
164
180
|
}
|
|
165
181
|
catch {
|
|
@@ -168,10 +184,10 @@ export function captureClipboardImage(baseDir = safeCwd()) {
|
|
|
168
184
|
}
|
|
169
185
|
}
|
|
170
186
|
else if (os === "win32") {
|
|
171
|
-
captured = captureWindowsPng(destination);
|
|
187
|
+
captured = await captureWindowsPng(destination);
|
|
172
188
|
}
|
|
173
189
|
if (!captured) {
|
|
174
|
-
|
|
190
|
+
await rm(destination, { force: true });
|
|
175
191
|
return {
|
|
176
192
|
ok: false,
|
|
177
193
|
reason: os === "linux"
|
|
@@ -181,9 +197,9 @@ export function captureClipboardImage(baseDir = safeCwd()) {
|
|
|
181
197
|
: `Image clipboard paste is not supported on ${os}.`,
|
|
182
198
|
};
|
|
183
199
|
}
|
|
184
|
-
const result = validateCapturedPng(destination);
|
|
200
|
+
const result = await validateCapturedPng(destination);
|
|
185
201
|
if (!result.ok)
|
|
186
|
-
|
|
202
|
+
await rm(destination, { force: true });
|
|
187
203
|
return result;
|
|
188
204
|
}
|
|
189
205
|
//# sourceMappingURL=clipboard-image.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard-image.js","sourceRoot":"","sources":["../../src/attachments/clipboard-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"clipboard-image.js","sourceRoot":"","sources":["../../src/attachments/clipboard-image.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,8 @@ export interface RejectedImage {
|
|
|
18
18
|
readonly recoverable: boolean;
|
|
19
19
|
}
|
|
20
20
|
export type ImagePreparation = PreparedImage | RejectedImage;
|
|
21
|
-
export declare function hasImageTranscoder(): boolean
|
|
21
|
+
export declare function hasImageTranscoder(): Promise<boolean>;
|
|
22
22
|
export declare function imageTranscoderHint(): string;
|
|
23
23
|
export declare function clearImagePreparationCache(): void;
|
|
24
|
-
export declare function prepareImageForModel(sourcePath: string, budget: ImageBudget, baseDir?: string): ImagePreparation
|
|
24
|
+
export declare function prepareImageForModel(sourcePath: string, budget: ImageBudget, baseDir?: string, signal?: AbortSignal): Promise<ImagePreparation>;
|
|
25
25
|
export declare function describePreparedImage(prepared: PreparedImage): string;
|