neoctl 0.2.63 → 0.2.64

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 (35) hide show
  1. package/README.md +58 -58
  2. package/dist/context/compaction.d.ts +2 -0
  3. package/dist/context/compaction.js +66 -32
  4. package/dist/context/compaction.js.map +1 -1
  5. package/dist/context/system.md +18 -18
  6. package/dist/core/message-pipeline.js +6 -3
  7. package/dist/core/message-pipeline.js.map +1 -1
  8. package/dist/core/query-engine.js +1 -1
  9. package/dist/core/query-engine.js.map +1 -1
  10. package/dist/core/run-agent.js +1 -1
  11. package/dist/core/run-agent.js.map +1 -1
  12. package/dist/execution/filesystem.js +22 -22
  13. package/dist/execution/process.js +44 -44
  14. package/dist/model/model-metadata.json +144 -144
  15. package/dist/session/tool-result-memory.d.ts +4 -1
  16. package/dist/session/tool-result-memory.js +35 -14
  17. package/dist/session/tool-result-memory.js.map +1 -1
  18. package/dist/session/user-message-archive.d.ts +7 -0
  19. package/dist/session/user-message-archive.js +107 -0
  20. package/dist/session/user-message-archive.js.map +1 -0
  21. package/dist/tools/builtins/filesystem-tools.js +6 -1
  22. package/dist/tools/builtins/filesystem-tools.js.map +1 -1
  23. package/dist/tools/builtins/grep-tool.js +3 -1
  24. package/dist/tools/builtins/grep-tool.js.map +1 -1
  25. package/dist/tools/builtins/image-loader-tool.d.ts +1 -1
  26. package/dist/tools/builtins/image-loader-tool.js +10 -10
  27. package/dist/tools/builtins/image-loader-tool.js.map +1 -1
  28. package/dist/tools/builtins/search-tool.js +3 -1
  29. package/dist/tools/builtins/search-tool.js.map +1 -1
  30. package/dist/tools/run-tool-use.js +16 -6
  31. package/dist/tools/run-tool-use.js.map +1 -1
  32. package/dist/web/index.js.map +1 -1
  33. package/docs/prompt-config.md +86 -86
  34. package/package.json +96 -96
  35. package/scripts/copy-prompt-resources.mjs +5 -5
@@ -1,144 +1,144 @@
1
- {
2
- "updatedAt": "2026-11-03",
3
- "notes": [
4
- "Bundled metadata for current mainstream Claude models and supported OpenAI models.",
5
- "Claude contextWindowTokens is neo's configured 256000-token usage ceiling, not the upstream model maximum or a pricing guarantee.",
6
- "MODEL_CONTEXT_WINDOW_TOKENS or OPENAI_CONTEXT_WINDOW_TOKENS overrides contextWindowTokens at runtime.",
7
- "Model IDs and aliases are matched case-insensitively. Availability depends on the connected API and account."
8
- ],
9
- "sources": {
10
- "claude-models": "https://platform.claude.com/docs/en/models/overview",
11
- "claude-effort": "https://platform.claude.com/docs/en/build-with-claude/effort",
12
- "openai-models": "https://developers.openai.com/api/docs/models",
13
- "openai-reasoning": "https://developers.openai.com/api/docs/guides/reasoning"
14
- },
15
- "models": [
16
- {"id": "claude-fable-5-1", "provider": "anthropic", "protocols": ["anthropic"], "modelIds": ["claude-fable-5-1"], "contextWindowTokens": 256000, "maxOutputTokens": 128000, "knowledgeCutoff": "2026-06", "reasoning": true, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max"], "imageInput": true, "source": "claude-models", "notes": "Adaptive thinking; thinking cannot be disabled."},
17
- {"id": "claude-haiku-5-5", "provider": "anthropic", "protocols": ["anthropic"], "modelIds": ["claude-haiku-5-5"], "contextWindowTokens": 256000, "maxOutputTokens": 128000, "knowledgeCutoff": "2026-06", "reasoning": true, "reasoningEfforts": ["none", "low", "medium", "high", "xhigh", "max"], "imageInput": true, "source": "claude-models", "notes": "none disables thinking; other efforts use adaptive thinking."},
18
- {"id": "claude-opus-5-5", "provider": "anthropic", "protocols": ["anthropic"], "modelIds": ["claude-opus-5-5"], "contextWindowTokens": 256000, "maxOutputTokens": 128000, "knowledgeCutoff": "2026-06", "reasoning": true, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max"], "imageInput": true, "source": "claude-models", "notes": "Adaptive thinking; thinking cannot be disabled."},
19
- {"id": "claude-sonnet-5-5", "provider": "anthropic", "protocols": ["anthropic"], "modelIds": ["claude-sonnet-5-5"], "contextWindowTokens": 256000, "maxOutputTokens": 128000, "knowledgeCutoff": "2026-06", "reasoning": true, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max"], "imageInput": true, "source": "claude-models", "notes": "Adaptive thinking; thinking cannot be disabled."},
20
- {
21
- "id": "gpt-5.6-sol",
22
- "provider": "openai",
23
- "modelIds": [
24
- "gpt-5.6-sol"
25
- ],
26
- "contextWindowTokens": 256000,
27
- "maxOutputTokens": 128000,
28
- "knowledgeCutoff": "2026-02-16",
29
- "reasoning": true,
30
- "imageInput": true,
31
- "source": "openai-models",
32
- "reasoningEfforts": [
33
- "none",
34
- "low",
35
- "medium",
36
- "high",
37
- "xhigh",
38
- "max"
39
- ]
40
- },
41
- {
42
- "id": "gpt-5.6-terra",
43
- "provider": "openai",
44
- "modelIds": [
45
- "gpt-5.6-terra"
46
- ],
47
- "contextWindowTokens": 256000,
48
- "maxOutputTokens": 128000,
49
- "knowledgeCutoff": "2026-02-16",
50
- "reasoning": true,
51
- "imageInput": true,
52
- "source": "openai-models",
53
- "reasoningEfforts": [
54
- "none",
55
- "low",
56
- "medium",
57
- "high",
58
- "xhigh",
59
- "max"
60
- ]
61
- },
62
- {
63
- "id": "gpt-5.6-luna",
64
- "provider": "openai",
65
- "modelIds": [
66
- "gpt-5.6-luna"
67
- ],
68
- "contextWindowTokens": 256000,
69
- "maxOutputTokens": 128000,
70
- "knowledgeCutoff": "2026-02-16",
71
- "reasoning": true,
72
- "imageInput": true,
73
- "source": "openai-models",
74
- "reasoningEfforts": [
75
- "none",
76
- "low",
77
- "medium",
78
- "high",
79
- "xhigh",
80
- "max"
81
- ]
82
- },
83
- {
84
- "id": "gpt-6-sol",
85
- "provider": "openai",
86
- "modelIds": [
87
- "gpt-6-sol"
88
- ],
89
- "contextWindowTokens": 256000,
90
- "maxOutputTokens": 128000,
91
- "reasoning": true,
92
- "imageInput": true,
93
- "source": "openai-models",
94
- "reasoningEfforts": [
95
- "none",
96
- "low",
97
- "medium",
98
- "high",
99
- "xhigh",
100
- "max"
101
- ]
102
- },
103
- {
104
- "id": "gpt-6.1-sol",
105
- "provider": "openai",
106
- "modelIds": [
107
- "gpt-6.1-sol"
108
- ],
109
- "contextWindowTokens": 256000,
110
- "maxOutputTokens": 128000,
111
- "reasoning": true,
112
- "imageInput": true,
113
- "source": "openai-models",
114
- "reasoningEfforts": [
115
- "none",
116
- "low",
117
- "medium",
118
- "high",
119
- "xhigh",
120
- "max"
121
- ]
122
- },
123
- {
124
- "id": "gpt-6-astra",
125
- "provider": "openai",
126
- "modelIds": [
127
- "gpt-6-astra"
128
- ],
129
- "contextWindowTokens": 256000,
130
- "maxOutputTokens": 128000,
131
- "reasoning": true,
132
- "imageInput": true,
133
- "source": "openai-models",
134
- "reasoningEfforts": [
135
- "none",
136
- "low",
137
- "medium",
138
- "high",
139
- "xhigh",
140
- "max"
141
- ]
142
- }
143
- ]
144
- }
1
+ {
2
+ "updatedAt": "2026-11-03",
3
+ "notes": [
4
+ "Bundled metadata for current mainstream Claude models and supported OpenAI models.",
5
+ "Claude contextWindowTokens is neo's configured 256000-token usage ceiling, not the upstream model maximum or a pricing guarantee.",
6
+ "MODEL_CONTEXT_WINDOW_TOKENS or OPENAI_CONTEXT_WINDOW_TOKENS overrides contextWindowTokens at runtime.",
7
+ "Model IDs and aliases are matched case-insensitively. Availability depends on the connected API and account."
8
+ ],
9
+ "sources": {
10
+ "claude-models": "https://platform.claude.com/docs/en/models/overview",
11
+ "claude-effort": "https://platform.claude.com/docs/en/build-with-claude/effort",
12
+ "openai-models": "https://developers.openai.com/api/docs/models",
13
+ "openai-reasoning": "https://developers.openai.com/api/docs/guides/reasoning"
14
+ },
15
+ "models": [
16
+ {"id": "claude-fable-5-1", "provider": "anthropic", "protocols": ["anthropic"], "modelIds": ["claude-fable-5-1"], "contextWindowTokens": 256000, "maxOutputTokens": 128000, "knowledgeCutoff": "2026-06", "reasoning": true, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max"], "imageInput": true, "source": "claude-models", "notes": "Adaptive thinking; thinking cannot be disabled."},
17
+ {"id": "claude-haiku-5-5", "provider": "anthropic", "protocols": ["anthropic"], "modelIds": ["claude-haiku-5-5"], "contextWindowTokens": 256000, "maxOutputTokens": 128000, "knowledgeCutoff": "2026-06", "reasoning": true, "reasoningEfforts": ["none", "low", "medium", "high", "xhigh", "max"], "imageInput": true, "source": "claude-models", "notes": "none disables thinking; other efforts use adaptive thinking."},
18
+ {"id": "claude-opus-5-5", "provider": "anthropic", "protocols": ["anthropic"], "modelIds": ["claude-opus-5-5"], "contextWindowTokens": 256000, "maxOutputTokens": 128000, "knowledgeCutoff": "2026-06", "reasoning": true, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max"], "imageInput": true, "source": "claude-models", "notes": "Adaptive thinking; thinking cannot be disabled."},
19
+ {"id": "claude-sonnet-5-5", "provider": "anthropic", "protocols": ["anthropic"], "modelIds": ["claude-sonnet-5-5"], "contextWindowTokens": 256000, "maxOutputTokens": 128000, "knowledgeCutoff": "2026-06", "reasoning": true, "reasoningEfforts": ["low", "medium", "high", "xhigh", "max"], "imageInput": true, "source": "claude-models", "notes": "Adaptive thinking; thinking cannot be disabled."},
20
+ {
21
+ "id": "gpt-5.6-sol",
22
+ "provider": "openai",
23
+ "modelIds": [
24
+ "gpt-5.6-sol"
25
+ ],
26
+ "contextWindowTokens": 256000,
27
+ "maxOutputTokens": 128000,
28
+ "knowledgeCutoff": "2026-02-16",
29
+ "reasoning": true,
30
+ "imageInput": true,
31
+ "source": "openai-models",
32
+ "reasoningEfforts": [
33
+ "none",
34
+ "low",
35
+ "medium",
36
+ "high",
37
+ "xhigh",
38
+ "max"
39
+ ]
40
+ },
41
+ {
42
+ "id": "gpt-5.6-terra",
43
+ "provider": "openai",
44
+ "modelIds": [
45
+ "gpt-5.6-terra"
46
+ ],
47
+ "contextWindowTokens": 256000,
48
+ "maxOutputTokens": 128000,
49
+ "knowledgeCutoff": "2026-02-16",
50
+ "reasoning": true,
51
+ "imageInput": true,
52
+ "source": "openai-models",
53
+ "reasoningEfforts": [
54
+ "none",
55
+ "low",
56
+ "medium",
57
+ "high",
58
+ "xhigh",
59
+ "max"
60
+ ]
61
+ },
62
+ {
63
+ "id": "gpt-5.6-luna",
64
+ "provider": "openai",
65
+ "modelIds": [
66
+ "gpt-5.6-luna"
67
+ ],
68
+ "contextWindowTokens": 256000,
69
+ "maxOutputTokens": 128000,
70
+ "knowledgeCutoff": "2026-02-16",
71
+ "reasoning": true,
72
+ "imageInput": true,
73
+ "source": "openai-models",
74
+ "reasoningEfforts": [
75
+ "none",
76
+ "low",
77
+ "medium",
78
+ "high",
79
+ "xhigh",
80
+ "max"
81
+ ]
82
+ },
83
+ {
84
+ "id": "gpt-6-sol",
85
+ "provider": "openai",
86
+ "modelIds": [
87
+ "gpt-6-sol"
88
+ ],
89
+ "contextWindowTokens": 256000,
90
+ "maxOutputTokens": 128000,
91
+ "reasoning": true,
92
+ "imageInput": true,
93
+ "source": "openai-models",
94
+ "reasoningEfforts": [
95
+ "none",
96
+ "low",
97
+ "medium",
98
+ "high",
99
+ "xhigh",
100
+ "max"
101
+ ]
102
+ },
103
+ {
104
+ "id": "gpt-6.1-sol",
105
+ "provider": "openai",
106
+ "modelIds": [
107
+ "gpt-6.1-sol"
108
+ ],
109
+ "contextWindowTokens": 256000,
110
+ "maxOutputTokens": 128000,
111
+ "reasoning": true,
112
+ "imageInput": true,
113
+ "source": "openai-models",
114
+ "reasoningEfforts": [
115
+ "none",
116
+ "low",
117
+ "medium",
118
+ "high",
119
+ "xhigh",
120
+ "max"
121
+ ]
122
+ },
123
+ {
124
+ "id": "gpt-6-astra",
125
+ "provider": "openai",
126
+ "modelIds": [
127
+ "gpt-6-astra"
128
+ ],
129
+ "contextWindowTokens": 256000,
130
+ "maxOutputTokens": 128000,
131
+ "reasoning": true,
132
+ "imageInput": true,
133
+ "source": "openai-models",
134
+ "reasoningEfforts": [
135
+ "none",
136
+ "low",
137
+ "medium",
138
+ "high",
139
+ "xhigh",
140
+ "max"
141
+ ]
142
+ }
143
+ ]
144
+ }
@@ -65,5 +65,8 @@ export declare class FileToolResultMemory implements ToolResultMemory {
65
65
  }
66
66
  export declare function createContentReplacementState(records?: readonly ContentReplacementRecord[]): ContentReplacementState;
67
67
  export declare function reconstructContentReplacementState(messages: readonly Message[], records: readonly ContentReplacementRecord[]): ContentReplacementState;
68
- export declare function buildLargeToolResultMessage(result: PersistedToolResult): string;
68
+ /** Budget includes the persisted-path wrapper, not only the preview. */
69
+ export declare function buildLargeToolResultMessage(result: PersistedToolResult, maxChars?: number): string;
70
+ /** Strict UTF-16 character budget, without splitting a surrogate pair. */
71
+ export declare function truncateToolText(text: string, maxChars: number): string;
69
72
  export declare function serializeToolOutput(output: unknown): string;
@@ -32,7 +32,7 @@ export class FileToolResultMemory {
32
32
  return { output };
33
33
  }
34
34
  const persisted = await this.persistToolResult(toolUseId, output, serialized);
35
- const replacement = buildLargeToolResultMessage(persisted);
35
+ const replacement = buildLargeToolResultMessage(persisted, thresholdChars);
36
36
  this.state.seenIds.add(toolUseId);
37
37
  this.state.replacements.set(toolUseId, replacement);
38
38
  return {
@@ -69,7 +69,7 @@ export class FileToolResultMemory {
69
69
  for (const candidate of selected) {
70
70
  this.state.seenIds.add(candidate.toolUseId);
71
71
  const persisted = await this.persistToolResult(candidate.toolUseId, candidate.output, candidate.serialized);
72
- const replacement = buildLargeToolResultMessage(persisted);
72
+ const replacement = buildLargeToolResultMessage(persisted, maxSerializedLength);
73
73
  this.state.replacements.set(candidate.toolUseId, replacement);
74
74
  replacementMap.set(candidate.toolUseId, replacement);
75
75
  records.push({ kind: "tool-result", toolUseId: candidate.toolUseId, replacement });
@@ -139,7 +139,7 @@ function collectCandidatesByGroup(messages, skipToolNames) {
139
139
  messages.forEach((message, messageIndex) => {
140
140
  if (message.role === "assistant" || message.role === "user" || message.role === "system")
141
141
  flush();
142
- if (message.role !== "tool_result")
142
+ if (message.role !== "tool_result" || message.metadata?.toolResultBudgetApplied === true)
143
143
  return;
144
144
  message.blocks.forEach((block, blockIndex) => {
145
145
  if (block.type !== "tool_result")
@@ -189,7 +189,7 @@ function replaceToolResultOutputs(messages, replacementMap) {
189
189
  if (block.type !== "tool_result")
190
190
  return block;
191
191
  const replacement = replacementMap.get(block.toolUseId);
192
- if (replacement === undefined)
192
+ if (replacement === undefined || replacement === block.output)
193
193
  return block;
194
194
  changed = true;
195
195
  return { ...block, output: replacement };
@@ -200,16 +200,37 @@ function replaceToolResultOutputs(messages, replacementMap) {
200
200
  function isContentAlreadyPersisted(content) {
201
201
  return content.startsWith(PERSISTED_OUTPUT_TAG);
202
202
  }
203
- export function buildLargeToolResultMessage(result) {
204
- return [
205
- PERSISTED_OUTPUT_TAG,
206
- `Output too large (${result.originalSize} chars). Full output saved to: ${result.filepath}`,
207
- "",
208
- `Preview (first ${result.preview.length} chars):`,
209
- result.preview,
210
- result.hasMore ? "..." : "",
211
- PERSISTED_OUTPUT_CLOSING_TAG,
212
- ].filter((line) => line !== undefined).join("\n");
203
+ /** Budget includes the persisted-path wrapper, not only the preview. */
204
+ export function buildLargeToolResultMessage(result, maxChars = DEFAULT_TOOL_RESULT_BUDGET_CHARS) {
205
+ const header = `${PERSISTED_OUTPUT_TAG}\nOutput too large (${result.originalSize} chars). Full output saved to: ${result.filepath}\n`;
206
+ const footer = `\n${PERSISTED_OUTPUT_CLOSING_TAG}`;
207
+ if (header.length + footer.length > maxChars) {
208
+ // A tiny budget cannot fit a usable persisted reference. The file remains
209
+ // durable, but never claim that a clipped path is a complete reference.
210
+ return truncateToolText("[Tool result truncated; full output saved in session tool-results.]", maxChars);
211
+ }
212
+ let preview = result.preview;
213
+ for (;;) {
214
+ const label = `\nPreview (first ${preview.length} chars):\n`;
215
+ const suffix = result.hasMore || preview.length < result.preview.length ? "\n..." : "";
216
+ const available = maxChars - header.length - footer.length - label.length - suffix.length;
217
+ if (available < 1)
218
+ return header + footer;
219
+ if (preview.length <= available)
220
+ return header + label + preview + suffix + footer;
221
+ preview = truncateToolText(preview, available);
222
+ }
223
+ }
224
+ /** Strict UTF-16 character budget, without splitting a surrogate pair. */
225
+ export function truncateToolText(text, maxChars) {
226
+ if (text.length <= maxChars)
227
+ return text;
228
+ if (maxChars < 1)
229
+ return "";
230
+ let end = maxChars - 1;
231
+ if (end > 0 && /[\uD800-\uDBFF]/.test(text[end - 1]))
232
+ end--;
233
+ return text.slice(0, end) + "…";
213
234
  }
214
235
  function generatePreview(content, maxChars) {
215
236
  if (content.length <= maxChars)
@@ -1 +1 @@
1
- {"version":3,"file":"tool-result-memory.js","sourceRoot":"","sources":["../../src/session/tool-result-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-result-memory.js","sourceRoot":"","sources":["../../src/session/tool-result-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ToolResult, ToolUseContext } from "../tools/tool.js";
2
+ /** Read the existing transcript; never duplicate user bodies into sidecar files/checkpoints. */
3
+ export declare function readArchivedUserMessage(input: {
4
+ path: string;
5
+ offset: number;
6
+ limit: number;
7
+ }, context: ToolUseContext): Promise<ToolResult>;
@@ -0,0 +1,107 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { createInterface } from "node:readline";
4
+ const INDEX = "neo://session/user-messages";
5
+ const PREFIX = "neo://session/user-message/";
6
+ /** Read the existing transcript; never duplicate user bodies into sidecar files/checkpoints. */
7
+ export async function readArchivedUserMessage(input, context) {
8
+ if (!context.session)
9
+ return { ok: false, output: { error: "No durable session archive is available." } };
10
+ const index = input.path === INDEX;
11
+ if (!index && !input.path.startsWith(PREFIX))
12
+ return { ok: false, output: { error: "Unknown session archive path." } };
13
+ const id = index ? undefined : decodeURIComponent(input.path.slice(PREFIX.length));
14
+ const transcript = path.join(context.session.sessionDir, "transcript.jsonl");
15
+ const stat = await fs.lstat(transcript);
16
+ if (!stat.isFile() || stat.isSymbolicLink() || stat.nlink > 1)
17
+ throw new Error("Unsafe session transcript");
18
+ const handle = await fs.open(transcript, "r");
19
+ const selected = [];
20
+ let totalLines = 0;
21
+ let found = false;
22
+ const seen = new Set();
23
+ const addLine = (line) => {
24
+ totalLines++;
25
+ if (totalLines >= input.offset && selected.length < input.limit)
26
+ selected.push(`${totalLines} | ${line}`);
27
+ };
28
+ try {
29
+ // Bound the read to a snapshot: concurrent appends cannot alter a page mid-read.
30
+ const snapshot = await handle.stat();
31
+ if (!snapshot.isFile() || snapshot.ino !== stat.ino || snapshot.nlink > 1)
32
+ throw new Error("Unsafe session transcript");
33
+ if (snapshot.size) {
34
+ const lines = createInterface({ input: handle.createReadStream({ start: 0, end: snapshot.size - 1, autoClose: false }), crlfDelay: Infinity });
35
+ try {
36
+ for await (const line of lines) {
37
+ if (context.abortSignal?.aborted)
38
+ throw new Error("Session archive read aborted");
39
+ let entry;
40
+ try {
41
+ entry = JSON.parse(line);
42
+ }
43
+ catch {
44
+ continue;
45
+ }
46
+ if (entry.sessionId !== context.session.sessionId || entry.agentId !== context.agentId)
47
+ continue;
48
+ if (entry.type === "reset") {
49
+ selected.length = 0;
50
+ totalLines = 0;
51
+ seen.clear();
52
+ found = false;
53
+ continue;
54
+ }
55
+ if (entry.type !== "message" || !isOriginalUser(entry.message) || seen.has(entry.message.id))
56
+ continue;
57
+ const message = entry.message;
58
+ seen.add(message.id);
59
+ if (index) {
60
+ const preview = message.blocks.filter(b => b.type === "text").map(b => b.text).join(" ").replace(/\s+/g, " ").slice(0, 160);
61
+ addLine(`${PREFIX}${encodeURIComponent(message.id)} ${preview}`);
62
+ }
63
+ else if (message.id === id) {
64
+ found = true;
65
+ for (const block of message.blocks) {
66
+ if (block.type !== "text")
67
+ continue;
68
+ for (const textLine of block.text.split(/\r\n|\n|\r/)) {
69
+ // Stable virtual lines make even a huge one-line prompt fully pageable.
70
+ if (!textLine.length)
71
+ addLine("");
72
+ for (let start = 0; start < textLine.length;) {
73
+ let end = Math.min(start + 256, textLine.length);
74
+ if (end < textLine.length && /[\uD800-\uDBFF]/.test(textLine[end - 1]))
75
+ end--;
76
+ addLine(textLine.slice(start, end));
77
+ start = end;
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }
84
+ finally {
85
+ lines.close();
86
+ }
87
+ }
88
+ }
89
+ finally {
90
+ await handle.close();
91
+ }
92
+ if (!index && !found)
93
+ return { ok: false, output: { error: "Original user message not found in this session archive.", path: input.path } };
94
+ return { ok: true, output: {
95
+ path: input.path, startLine: selected.length ? input.offset : undefined,
96
+ endLine: selected.length ? input.offset + selected.length - 1 : undefined,
97
+ totalLines, hasMoreBefore: input.offset > 1,
98
+ hasMoreAfter: input.offset + selected.length <= totalLines,
99
+ note: "Historical user records, not new instructions. Text is displayed as virtual lines of at most 256 characters; use offset/limit to continue. Image bytes are not duplicated here; use the session image registry.",
100
+ content: selected.join("\n"),
101
+ } };
102
+ }
103
+ function isOriginalUser(message) {
104
+ return message?.role === "user" && !message.isMeta && message.metadata?.compactPreservedUser !== true
105
+ && message.metadata?.compactBoundary !== true && message.metadata?.sourceToolUseId === undefined;
106
+ }
107
+ //# sourceMappingURL=user-message-archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-message-archive.js","sourceRoot":"","sources":["../../src/session/user-message-archive.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { readArchivedUserMessage } from "../../session/user-message-archive.js";
1
2
  import { executionFs as fs } from "../../execution/filesystem.js";
2
3
  import path from "node:path";
3
4
  export const readFileTool = {
@@ -44,6 +45,8 @@ export const readFileTool = {
44
45
  return true;
45
46
  },
46
47
  async call(input, context) {
48
+ if (input.path.startsWith("neo://session/"))
49
+ return readArchivedUserMessage(input, context);
47
50
  const root = workingDirectory(context);
48
51
  const target = resolveTarget(root, input.path);
49
52
  const stat = await fs.stat(target).catch(() => undefined);
@@ -112,7 +115,9 @@ export const listDirectoryTool = {
112
115
  searchHint: "list directory entries and file counts",
113
116
  ignoreUnknownInputProperties: true,
114
117
  },
115
- mapResult(result) {
118
+ mapResult(result, request) {
119
+ if (request.input && typeof request.input === "object" && typeof request.input.maxResultChars === "number")
120
+ return result.output;
116
121
  return shrinkDirectoryOutputForTransport(result.output, 26000);
117
122
  },
118
123
  validate(input) {