neoctl 0.2.48 → 0.2.49
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/README.md +59 -59
- package/dist/context/system.md +16 -16
- package/dist/core/image-input.d.ts +6 -0
- package/dist/core/image-input.js +189 -0
- package/dist/core/image-input.js.map +1 -0
- package/dist/core/image-storage.js +6 -0
- package/dist/core/image-storage.js.map +1 -1
- package/dist/core/session-images.js +14 -3
- package/dist/core/session-images.js.map +1 -1
- package/dist/execution/filesystem.js +22 -22
- package/dist/execution/process.js +44 -44
- package/dist/model/model-metadata.json +137 -137
- package/dist/model/openai-mappers.js +11 -3
- package/dist/model/openai-mappers.js.map +1 -1
- package/dist/tools/builtins/image-loader-tool.js +22 -6
- package/dist/tools/builtins/image-loader-tool.js.map +1 -1
- package/dist/web/demo-image.d.ts +1 -0
- package/dist/web/demo-image.js +26 -0
- package/dist/web/demo-image.js.map +1 -0
- package/dist/web/demo-tools.js +3 -4
- package/dist/web/demo-tools.js.map +1 -1
- package/dist/web/file-attachments.d.ts +10 -0
- package/dist/web/file-attachments.js +18 -0
- package/dist/web/file-attachments.js.map +1 -0
- package/dist/web/index.d.ts +6 -1
- package/dist/web/index.js +109 -10
- package/dist/web/index.js.map +1 -1
- package/docs/prompt-config.md +86 -86
- package/package.json +1 -1
- package/scripts/copy-prompt-resources.mjs +5 -5
package/dist/web/demo-tools.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { demoImage } from "./demo-image.js";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import fs from "node:fs/promises";
|
|
3
4
|
import { DEMO_VIDEO_BASE64 } from "./demo-video.js";
|
|
@@ -206,16 +207,14 @@ export class DemoTools {
|
|
|
206
207
|
for (const ref of input.imageRefs ?? [this.latestImage])
|
|
207
208
|
resolveContextImage(context, ref);
|
|
208
209
|
const number = ++this.imageNumber;
|
|
209
|
-
const color = number % 2 ? "#dd74ae" : "#73cbd5";
|
|
210
|
-
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="960" height="540" viewBox="0 0 960 540"><rect width="960" height="540" fill="#252c38"/><circle cx="760" cy="120" r="150" fill="${color}" opacity=".22"/><path d="M0 440L180 230 360 400 590 190 960 460V540H0Z" fill="${color}" opacity=".65"/><path d="M0 490L290 340 460 460 720 280 960 440V540H0Z" fill="${color}"/><text x="64" y="110" font-family="sans-serif" font-size="44" fill="white">AURORA / ${number.toString().padStart(2, "0")}</text><text x="66" y="154" font-family="sans-serif" font-size="20" fill="#ddd">Persistent images and context continuity</text></svg>`;
|
|
211
210
|
const message = createTextMessage("attachment", "");
|
|
212
|
-
message.blocks = [{ type: "image", mimeType: "image/
|
|
211
|
+
message.blocks = [{ type: "image", mimeType: "image/png", data: demoImage(number).toString("base64"), label: `Aurora-${number}` }];
|
|
213
212
|
const stored = await context.imageStore.persistMessage(message);
|
|
214
213
|
const block = stored.blocks.find(b => b.type === "image");
|
|
215
214
|
this.latestImage = block.imageId;
|
|
216
215
|
this.firstImage ||= block.imageId;
|
|
217
216
|
this.firstImageUrl ||= `/api/images/by-id/${encodeURIComponent(block.imageId)}?sessionId=${encodeURIComponent(context.session.sessionId)}`;
|
|
218
|
-
return { ok: true, output: { provider: "openai", simulated: true, model: "demo", mode: input.mode ?? "generate", prompt: input.prompt, semanticName: input.semanticName, size: "960x540", quality: "auto", outputFormat: "
|
|
217
|
+
return { ok: true, output: { provider: "openai", simulated: true, model: "demo", mode: input.mode ?? "generate", prompt: input.prompt, semanticName: input.semanticName, size: "960x540", quality: "auto", outputFormat: "png", background: "opaque", images: [{ index: 0, imageId: block.imageId, imageAlias: block.imageAlias, label: block.label, storagePath: block.storage?.path, base64: block.data, mimeType: block.mimeType, width: 960, height: 540 }], warnings: [] } };
|
|
219
218
|
}
|
|
220
219
|
terminal(name, input, context, options) {
|
|
221
220
|
const checked = (result) => { if (!result.ok)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demo-tools.js","sourceRoot":"","sources":["../../src/web/demo-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"demo-tools.js","sourceRoot":"","sources":["../../src/web/demo-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Message } from "../types/messages.js";
|
|
2
|
+
export interface DisplayFileAttachment {
|
|
3
|
+
kind: "file";
|
|
4
|
+
name: string;
|
|
5
|
+
absolutePath: string;
|
|
6
|
+
mimeType: string;
|
|
7
|
+
size: number;
|
|
8
|
+
url: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function messageFileAttachments(message: Message): DisplayFileAttachment[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
// Recover display metadata from the existing transcript, never mutate model history.
|
|
3
|
+
export function messageFileAttachments(message) {
|
|
4
|
+
if (message.role !== "user" || message.isMeta)
|
|
5
|
+
return [];
|
|
6
|
+
const text = message.blocks.filter(b => b.type === "text").map(b => b.text).join("\n");
|
|
7
|
+
const files = [];
|
|
8
|
+
for (const manifest of text.matchAll(/<<ATTACHMENT_MANIFEST>>([\s\S]*?)<<\/ATTACHMENT_MANIFEST>>/gu)) {
|
|
9
|
+
for (const m of manifest[1].matchAll(/^- file\d+: (.*)\r?\n path: (.*)\r?\n mimeType: (.*)\r?\n size: (\d+) bytes/gmu)) {
|
|
10
|
+
const absolutePath = m[2].trim();
|
|
11
|
+
if (!path.isAbsolute(absolutePath))
|
|
12
|
+
continue;
|
|
13
|
+
files.push({ kind: "file", name: m[1].trim(), absolutePath, mimeType: m[3].trim(), size: Number(m[4]), url: `/api/message-files/${encodeURIComponent(message.id)}/${files.length}` });
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return files;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=file-attachments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-attachments.js","sourceRoot":"","sources":["../../src/web/file-attachments.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,qFAAqF;AACrF,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvF,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,8DAA8D,CAAC,EAAE,CAAC;QACrG,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC,EAAE,CAAC;YAC3H,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,SAAS;YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,sBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1L,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/web/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { TimingRecord } from "../core/query-timing.js";
|
|
|
5
5
|
import { type DemoWait } from "./demo-mode.js";
|
|
6
6
|
import { type ImageResultMetadata } from "./image-result-metadata.js";
|
|
7
7
|
import { type IncomingMessage, type ServerResponse } from "node:http";
|
|
8
|
+
import { type DisplayFileAttachment } from "./file-attachments.js";
|
|
8
9
|
import { QueryEngine } from "../core/query-engine.js";
|
|
9
10
|
import { type AppPromptStore } from "../app/app-prompt.js";
|
|
10
11
|
import { type ModelProviderName } from "../model/config.js";
|
|
@@ -23,6 +24,7 @@ import type { PromptSection } from "../context/prompts.js";
|
|
|
23
24
|
import type { NeoPluginResource } from "../plugins/plugin-system.js";
|
|
24
25
|
import type { ContextMetrics } from "../types/events.js";
|
|
25
26
|
import { type AgentContentRequest } from "./agent-content-detail.js";
|
|
27
|
+
export { validateImageBytes } from "../core/image-input.js";
|
|
26
28
|
import { type WebRuntimeContextPayload } from "./runtime-context-protocol.js";
|
|
27
29
|
export interface WebRuntime {
|
|
28
30
|
engine: QueryEngine;
|
|
@@ -95,6 +97,7 @@ export declare class SessionUsageTracker {
|
|
|
95
97
|
snapshot(): UsageTotals;
|
|
96
98
|
}
|
|
97
99
|
interface UiLineImage {
|
|
100
|
+
sizeBytes?: number;
|
|
98
101
|
src?: string;
|
|
99
102
|
originalSrc?: string;
|
|
100
103
|
imageId?: string;
|
|
@@ -166,6 +169,7 @@ interface UiToolStream {
|
|
|
166
169
|
expanded?: boolean;
|
|
167
170
|
}
|
|
168
171
|
interface UiLine {
|
|
172
|
+
files?: DisplayFileAttachment[];
|
|
169
173
|
connectPreviousTool?: boolean;
|
|
170
174
|
id: number;
|
|
171
175
|
kind: "system" | "user" | "assistant" | "thinking" | "tool" | "error" | "meta";
|
|
@@ -213,6 +217,7 @@ interface UiStatus {
|
|
|
213
217
|
callId: string;
|
|
214
218
|
name?: string;
|
|
215
219
|
};
|
|
220
|
+
responseWaitStartedAt?: number;
|
|
216
221
|
queryTiming?: TimingRecord;
|
|
217
222
|
toolTimings?: TimingRecord[];
|
|
218
223
|
phase: string;
|
|
@@ -807,6 +812,7 @@ export declare class WebRepl {
|
|
|
807
812
|
setAppPrompt(payload: WebSetAppPromptPayload): WebActionResult<{
|
|
808
813
|
appPrompt: ReturnType<QueryEngine["getAppPrompt"]>;
|
|
809
814
|
}>;
|
|
815
|
+
fileAttachment(messageId: string, index: number): DisplayFileAttachment | undefined;
|
|
810
816
|
imagePayload(messageId: string, blockIndex: number): {
|
|
811
817
|
body: Buffer;
|
|
812
818
|
mimeType: string;
|
|
@@ -906,4 +912,3 @@ export declare function compactLineOperations(operations: WebLineOperation[]): W
|
|
|
906
912
|
export declare function handleWebRequest(req: IncomingMessage, res: ServerResponse, router: WebRuntimeRouter): Promise<void>;
|
|
907
913
|
export declare function restoreWebHistoryLines(runtime: Pick<WebRuntime, "engine">): Array<Record<string, unknown>>;
|
|
908
914
|
export declare function mergeWebQueuedInput(current: string | undefined, next: string): string;
|
|
909
|
-
export {};
|
package/dist/web/index.js
CHANGED
|
@@ -10,9 +10,14 @@ import { subagentHeader, subagentStatusFacts } from "./status-semantics.js";
|
|
|
10
10
|
import { handlePromptConfigRequest } from "./prompt-config-protocol.js";
|
|
11
11
|
import http from "node:http";
|
|
12
12
|
import fs from "node:fs/promises";
|
|
13
|
+
import { createReadStream } from "node:fs";
|
|
14
|
+
import { createHash } from "node:crypto";
|
|
15
|
+
import os from "node:os";
|
|
16
|
+
import { messageFileAttachments } from "./file-attachments.js";
|
|
13
17
|
import path from "node:path";
|
|
14
18
|
import { existsSync, readFileSync } from "node:fs";
|
|
15
19
|
import { dockerEnabled } from "../execution/docker.js";
|
|
20
|
+
import { executionFs } from "../execution/filesystem.js";
|
|
16
21
|
import { fileURLToPath } from "node:url";
|
|
17
22
|
import { createRequire } from "node:module";
|
|
18
23
|
import { readSessionPrompt, updateSessionPrompt, SessionPromptError } from "./session-prompt-protocol.js";
|
|
@@ -49,6 +54,8 @@ import { createAgentContentDetailResolver } from "./agent-content-detail.js";
|
|
|
49
54
|
import { toolDetailFieldsFromDetail } from "./tool-detail-fields.js";
|
|
50
55
|
import { WEB_HTML } from "./html.js";
|
|
51
56
|
import { openDirectory } from "../open-directory.js";
|
|
57
|
+
import { validateImageInput } from "../core/image-input.js";
|
|
58
|
+
export { validateImageBytes } from "../core/image-input.js";
|
|
52
59
|
import { resolveImageBlockDataResultSync, resolveImageBlockDataSync } from "../core/image-storage.js";
|
|
53
60
|
import { isWebPlanPayload, serializeWebPlanPayload, webPlanBodyTitle } from "./plan-payload.js";
|
|
54
61
|
import { createWebRuntimeContextPayload } from "./runtime-context-protocol.js";
|
|
@@ -1207,6 +1214,13 @@ export class WebRepl {
|
|
|
1207
1214
|
return actionFailure("PROMPT_UPDATE_FAILED", message);
|
|
1208
1215
|
}
|
|
1209
1216
|
}
|
|
1217
|
+
fileAttachment(messageId, index) {
|
|
1218
|
+
for (const entry of this.runtime.engine.getDisplayEntries()) {
|
|
1219
|
+
if (entry.type === "message" && entry.message.id === messageId)
|
|
1220
|
+
return messageFileAttachments(entry.message)[index];
|
|
1221
|
+
}
|
|
1222
|
+
return undefined;
|
|
1223
|
+
}
|
|
1210
1224
|
imagePayload(messageId, blockIndex) {
|
|
1211
1225
|
if (!messageId || !Number.isInteger(blockIndex) || blockIndex < 0)
|
|
1212
1226
|
return undefined;
|
|
@@ -1531,6 +1545,11 @@ export class WebRepl {
|
|
|
1531
1545
|
this.broadcastSync();
|
|
1532
1546
|
}
|
|
1533
1547
|
setStatus(next) {
|
|
1548
|
+
const waiting = next.phase === "calling_model" && !next.modelOutput;
|
|
1549
|
+
const wasWaiting = this.status.phase === "calling_model" && !this.status.modelOutput;
|
|
1550
|
+
next = { ...next, responseWaitStartedAt: waiting
|
|
1551
|
+
? (wasWaiting ? this.status.responseWaitStartedAt ?? Date.now() : Date.now())
|
|
1552
|
+
: undefined };
|
|
1534
1553
|
this.status = next;
|
|
1535
1554
|
this.broadcastSync();
|
|
1536
1555
|
}
|
|
@@ -2247,7 +2266,17 @@ export class WebRepl {
|
|
|
2247
2266
|
stopAfterTurn: () => this.queuedInput !== undefined,
|
|
2248
2267
|
};
|
|
2249
2268
|
const stream = continuationOnly ? engine.continueExecution(options) : engine.sendUserText(promptPayload.text, options);
|
|
2269
|
+
let attachedDisplay = false;
|
|
2250
2270
|
for await (const event of stream) {
|
|
2271
|
+
if (!attachedDisplay && attachments.length && !continuationOnly && this.runtime.engine === engine) {
|
|
2272
|
+
const stored = [...engine.getDisplayEntries()].reverse().find(entry => entry.type === "message" && entry.message.role === "user" && !entry.message.isMeta);
|
|
2273
|
+
const optimistic = this.lines.find(line => line.messageId === optimisticMessageId);
|
|
2274
|
+
if (stored?.type === "message" && optimistic) {
|
|
2275
|
+
this.replaceLine(optimistic.id, { messageId: stored.message.id, files: messageFileAttachments(stored.message) });
|
|
2276
|
+
renderMessageImages(stored.message, line => this.append(line));
|
|
2277
|
+
attachedDisplay = true;
|
|
2278
|
+
}
|
|
2279
|
+
}
|
|
2251
2280
|
if (this.foregroundRunToken !== runToken)
|
|
2252
2281
|
continue;
|
|
2253
2282
|
if (this.runtime.engine !== engine)
|
|
@@ -2624,15 +2653,46 @@ export async function handleWebRequest(req, res, router) {
|
|
|
2624
2653
|
const body = await readJsonBody(req);
|
|
2625
2654
|
return sendJson(res, await repl.setSessionPlugins(body.overrides));
|
|
2626
2655
|
}
|
|
2656
|
+
const fileMatch = /^\/api\/message-files\/([^/]+)\/(\d+)$/u.exec(url.pathname);
|
|
2657
|
+
if ((req.method === "GET" || req.method === "HEAD") && fileMatch) {
|
|
2658
|
+
const file = repl.fileAttachment(decodeURIComponent(fileMatch[1]), Number(fileMatch[2]));
|
|
2659
|
+
if (!file)
|
|
2660
|
+
return sendJson(res, { error: "attachment not found" }, 404);
|
|
2661
|
+
try {
|
|
2662
|
+
const stat = await executionFs.stat(file.absolutePath);
|
|
2663
|
+
if (!stat.isFile())
|
|
2664
|
+
throw new Error("not a file");
|
|
2665
|
+
if (url.searchParams.get("preview") === "1") {
|
|
2666
|
+
const body = await executionFs.readFile(file.absolutePath);
|
|
2667
|
+
const actual = validateImageInput(body.toString("base64"));
|
|
2668
|
+
res.writeHead(200, { "Content-Type": actual.mimeType, "Content-Length": String(body.length), "X-Content-Type-Options": "nosniff", "Cache-Control": "private, no-cache", ...nativeResourceHeaders(req, file.absolutePath) });
|
|
2669
|
+
res.end(req.method === "HEAD" ? undefined : body);
|
|
2670
|
+
return;
|
|
2671
|
+
}
|
|
2672
|
+
res.writeHead(200, { "Content-Type": "application/octet-stream", "Content-Length": String(stat.size),
|
|
2673
|
+
"Content-Disposition": `attachment; filename*=UTF-8''${encodeURIComponent(file.name)}`,
|
|
2674
|
+
"X-Content-Type-Options": "nosniff", "Cache-Control": "private, no-store", ...nativeResourceHeaders(req, file.absolutePath) });
|
|
2675
|
+
if (req.method === "HEAD")
|
|
2676
|
+
res.end();
|
|
2677
|
+
else if (dockerEnabled())
|
|
2678
|
+
res.end(await executionFs.readFile(file.absolutePath));
|
|
2679
|
+
else
|
|
2680
|
+
createReadStream(file.absolutePath).on("error", () => res.destroy()).pipe(res);
|
|
2681
|
+
}
|
|
2682
|
+
catch {
|
|
2683
|
+
sendJson(res, { error: "attachment unavailable" }, 404);
|
|
2684
|
+
}
|
|
2685
|
+
return;
|
|
2686
|
+
}
|
|
2627
2687
|
const imageIdMatch = /^\/api\/images\/by-id\/([^/]+)$/u.exec(url.pathname);
|
|
2628
|
-
if (req.method === "GET" && imageIdMatch) {
|
|
2688
|
+
if ((req.method === "GET" || req.method === "HEAD") && imageIdMatch) {
|
|
2629
2689
|
const payload = repl.imagePayloadById(decodeURIComponent(imageIdMatch[1]));
|
|
2630
|
-
return payload ? sendImage(res, payload) : sendJson(res, { error: "image not found" }, 404);
|
|
2690
|
+
return payload ? sendImage(res, payload, req) : sendJson(res, { error: "image not found" }, 404);
|
|
2631
2691
|
}
|
|
2632
2692
|
const imageMatch = /^\/api\/images\/([^/]+)\/(\d+)$/u.exec(url.pathname);
|
|
2633
|
-
if (req.method === "GET" && imageMatch) {
|
|
2693
|
+
if ((req.method === "GET" || req.method === "HEAD") && imageMatch) {
|
|
2634
2694
|
const payload = repl.imagePayload(decodeURIComponent(imageMatch[1]), Number(imageMatch[2]));
|
|
2635
|
-
return payload ? sendImage(res, payload) : sendJson(res, { error: "image not found" }, 404);
|
|
2695
|
+
return payload ? sendImage(res, payload, req) : sendJson(res, { error: "image not found" }, 404);
|
|
2636
2696
|
}
|
|
2637
2697
|
if (req.method === "GET" && url.pathname === "/api/app-prompt")
|
|
2638
2698
|
return sendJson(res, repl.appPrompt());
|
|
@@ -2753,15 +2813,47 @@ function imagePayloadForBlock(block) {
|
|
|
2753
2813
|
if (!base64 || !/^[A-Za-z0-9+/]*={0,2}$/u.test(base64))
|
|
2754
2814
|
return undefined;
|
|
2755
2815
|
const body = Buffer.from(base64, "base64");
|
|
2756
|
-
|
|
2816
|
+
try {
|
|
2817
|
+
return body.length ? { body, mimeType: validateImageInput(base64).mimeType } : undefined;
|
|
2818
|
+
}
|
|
2819
|
+
catch {
|
|
2820
|
+
return undefined;
|
|
2821
|
+
}
|
|
2757
2822
|
}
|
|
2758
|
-
function
|
|
2823
|
+
function nativeResourceHeaders(req, filePath) {
|
|
2824
|
+
if (process.env.NEO_DESKTOP_LOCAL_RESOURCES !== "1" || dockerEnabled() || req.method !== "HEAD" || req.headers["x-neo-resource-action"] !== "reveal")
|
|
2825
|
+
return {};
|
|
2826
|
+
if (!["127.0.0.1", "::1", "::ffff:127.0.0.1"].includes(req.socket.remoteAddress ?? "") || req.headers["sec-fetch-site"] === "cross-site")
|
|
2827
|
+
return {};
|
|
2828
|
+
if (req.headers.origin) {
|
|
2829
|
+
try {
|
|
2830
|
+
if (new URL(req.headers.origin).host !== req.headers.host)
|
|
2831
|
+
return {};
|
|
2832
|
+
}
|
|
2833
|
+
catch {
|
|
2834
|
+
return {};
|
|
2835
|
+
}
|
|
2836
|
+
}
|
|
2837
|
+
return { "X-Neo-Resource-Path": encodeURIComponent(filePath), Vary: "X-Neo-Resource-Action" };
|
|
2838
|
+
}
|
|
2839
|
+
async function sendImage(res, payload, req) {
|
|
2840
|
+
let headers = {};
|
|
2841
|
+
if (Object.keys(nativeResourceHeaders(req, "probe")).length) {
|
|
2842
|
+
const directory = path.join(os.tmpdir(), "neo-desktop-images");
|
|
2843
|
+
await fs.mkdir(directory, { recursive: true });
|
|
2844
|
+
const name = createHash("sha256").update(payload.body).digest("hex") + "." + payload.mimeType.split("/")[1];
|
|
2845
|
+
const target = path.join(directory, name);
|
|
2846
|
+
await fs.writeFile(target, payload.body);
|
|
2847
|
+
headers = nativeResourceHeaders(req, target);
|
|
2848
|
+
}
|
|
2759
2849
|
res.writeHead(200, {
|
|
2850
|
+
...headers,
|
|
2851
|
+
"X-Content-Type-Options": "nosniff",
|
|
2760
2852
|
"Content-Type": payload.mimeType,
|
|
2761
2853
|
"Content-Length": String(payload.body.length),
|
|
2762
2854
|
"Cache-Control": "private, max-age=31536000, immutable",
|
|
2763
2855
|
});
|
|
2764
|
-
res.end(payload.body);
|
|
2856
|
+
res.end(req.method === "HEAD" ? undefined : payload.body);
|
|
2765
2857
|
}
|
|
2766
2858
|
async function readJsonBody(req) {
|
|
2767
2859
|
const chunks = [];
|
|
@@ -2779,7 +2871,8 @@ function sanitizeWebAttachments(value) {
|
|
|
2779
2871
|
return [];
|
|
2780
2872
|
if (item.kind === "image" && typeof item.label === "string" && /^\[img#\d+\]$/.test(item.label) && typeof item.mimeType === "string" && item.mimeType.startsWith("image/") && typeof item.data === "string") {
|
|
2781
2873
|
const imageId = typeof item.imageId === "string" && /^image_[0-9a-f-]{36}$/iu.test(item.imageId) ? item.imageId : createImageId();
|
|
2782
|
-
|
|
2874
|
+
const image = validateImageInput(item.data);
|
|
2875
|
+
return [{ kind: "image", imageId, label: item.label, mimeType: image.mimeType, data: image.data }];
|
|
2783
2876
|
}
|
|
2784
2877
|
if (item.kind === "file" && typeof item.name === "string" && typeof item.mimeType === "string" && typeof item.size === "number" && Number.isFinite(item.size) && typeof item.absolutePath === "string" && path.isAbsolute(item.absolutePath)) {
|
|
2785
2878
|
return [{
|
|
@@ -2899,7 +2992,7 @@ function buildWebPromptPayload(displayText, attachments) {
|
|
|
2899
2992
|
const activeAttachments = candidateAttachments;
|
|
2900
2993
|
const fileManifest = buildWebFileAttachmentManifest(attachments.filter((attachment) => attachment.kind === "file"));
|
|
2901
2994
|
if (activeAttachments.length === 0) {
|
|
2902
|
-
const text = [displayText
|
|
2995
|
+
const text = [displayText, fileManifest].filter(Boolean).join("\n\n");
|
|
2903
2996
|
return { text, displayText };
|
|
2904
2997
|
}
|
|
2905
2998
|
const blocks = [];
|
|
@@ -3374,7 +3467,7 @@ function renderMessage(message, append, activeAssistantId, options = {}) {
|
|
|
3374
3467
|
if (kind === "system")
|
|
3375
3468
|
append({ kind, title: titleForRole(message.role), text: block.text, messageId: message.id, previewStyle: "summary" });
|
|
3376
3469
|
else
|
|
3377
|
-
append({ kind, text: block.text, messageId: message.id });
|
|
3470
|
+
append({ kind, text: block.text, messageId: message.id, ...(kind === "user" ? { files: messageFileAttachments(message) } : {}) });
|
|
3378
3471
|
rendered = true;
|
|
3379
3472
|
}
|
|
3380
3473
|
else if (block.type === "image") {
|
|
@@ -3413,6 +3506,11 @@ function renderToolResultMessage(message, append, presentToolResult) {
|
|
|
3413
3506
|
}
|
|
3414
3507
|
function renderMessageImages(message, append, messageId = message.id) {
|
|
3415
3508
|
let rendered = false;
|
|
3509
|
+
const files = messageFileAttachments(message);
|
|
3510
|
+
if (files.length) {
|
|
3511
|
+
append({ kind: "user", text: "", messageId, files });
|
|
3512
|
+
rendered = true;
|
|
3513
|
+
}
|
|
3416
3514
|
const parentToolName = typeof message.metadata?.tool === "string" ? message.metadata.tool : undefined;
|
|
3417
3515
|
const parentToolUseId = message.blocks.find((block) => block.type === "tool_result")?.toolUseId;
|
|
3418
3516
|
for (const [blockIndex, block] of message.blocks.entries()) {
|
|
@@ -3451,6 +3549,7 @@ function imageLineForBlock(role, block, messageId, blockIndex) {
|
|
|
3451
3549
|
mimeType: block.mimeType,
|
|
3452
3550
|
available: resolution.available,
|
|
3453
3551
|
error: resolution.available ? undefined : resolution.error,
|
|
3552
|
+
sizeBytes: resolution.available ? Buffer.from(resolution.data.replace(/^data:[^;,]+;base64,/iu, ""), "base64").length : undefined,
|
|
3454
3553
|
blockIndex,
|
|
3455
3554
|
},
|
|
3456
3555
|
};
|