neoctl 0.2.36 → 0.2.37
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/agents/agent-report-security.test.d.ts +1 -0
- package/dist/agents/agent-report-security.test.js +301 -0
- package/dist/agents/agent-report-security.test.js.map +1 -0
- package/dist/agents/agent-tool-persistence.test.js +9 -3
- package/dist/agents/agent-tool-persistence.test.js.map +1 -1
- package/dist/agents/agent-tool.d.ts +3 -0
- package/dist/agents/agent-tool.js +127 -34
- package/dist/agents/agent-tool.js.map +1 -1
- package/dist/agents/live-preview-redaction-security.test.d.ts +1 -0
- package/dist/agents/live-preview-redaction-security.test.js +286 -0
- package/dist/agents/live-preview-redaction-security.test.js.map +1 -0
- package/dist/agents/local-agent-task.d.ts +27 -1
- package/dist/agents/local-agent-task.js +75 -5
- package/dist/agents/local-agent-task.js.map +1 -1
- package/dist/agents/obs07-11-run-facts.test.d.ts +1 -0
- package/dist/agents/obs07-11-run-facts.test.js +459 -0
- package/dist/agents/obs07-11-run-facts.test.js.map +1 -0
- package/dist/agents/smoke-agent-lifecycle.js +8 -4
- package/dist/agents/smoke-agent-lifecycle.js.map +1 -1
- package/dist/agents/smoke-agents.js +7 -3
- package/dist/agents/smoke-agents.js.map +1 -1
- package/dist/context/context-manager.d.ts +1 -0
- package/dist/context/context-manager.js +10 -6
- package/dist/context/context-manager.js.map +1 -1
- package/dist/context/smoke-context.js +46 -3
- package/dist/context/smoke-context.js.map +1 -1
- package/dist/core/image-registry.js +1 -1
- package/dist/core/image-registry.js.map +1 -1
- package/dist/core/obs04-visible-data.test.d.ts +1 -0
- package/dist/core/obs04-visible-data.test.js +147 -0
- package/dist/core/obs04-visible-data.test.js.map +1 -0
- package/dist/core/query-engine.d.ts +5 -0
- package/dist/core/query-engine.js +35 -2
- package/dist/core/query-engine.js.map +1 -1
- package/dist/core/query.d.ts +2 -0
- package/dist/core/query.js +104 -15
- package/dist/core/query.js.map +1 -1
- package/dist/core/run-agent.d.ts +2 -0
- package/dist/core/run-agent.js +20 -10
- package/dist/core/run-agent.js.map +1 -1
- package/dist/model/model-gateway.d.ts +1 -0
- package/dist/model/model-metadata.json +99 -99
- package/dist/model/openai-native-image-guard.test.d.ts +1 -0
- package/dist/model/openai-native-image-guard.test.js +101 -0
- package/dist/model/openai-native-image-guard.test.js.map +1 -0
- package/dist/model/openai-responses-mapper.js +91 -16
- package/dist/model/openai-responses-mapper.js.map +1 -1
- package/dist/plugins/smoke-plugin-system.js +14 -14
- package/dist/repl/index.js +2 -2
- package/dist/repl/index.js.map +1 -1
- package/dist/secrets/secret-redaction.d.ts +6 -5
- package/dist/secrets/secret-redaction.js +7 -79
- package/dist/secrets/secret-redaction.js.map +1 -1
- package/dist/secrets/secret-types.d.ts +4 -1
- package/dist/secrets/secret-types.js.map +1 -1
- package/dist/session/session-store.d.ts +4 -1
- package/dist/session/session-store.js +5 -2
- package/dist/session/session-store.js.map +1 -1
- package/dist/tasks/subagent-tools.test.js +1 -0
- package/dist/tasks/subagent-tools.test.js.map +1 -1
- package/dist/tasks/task-ack-size.test.js +6 -5
- package/dist/tasks/task-ack-size.test.js.map +1 -1
- package/dist/tasks/task-persistence.d.ts +1 -0
- package/dist/tasks/task-persistence.js +31 -9
- package/dist/tasks/task-persistence.js.map +1 -1
- package/dist/tasks/task-store.d.ts +6 -4
- package/dist/tasks/task-store.js +46 -20
- package/dist/tasks/task-store.js.map +1 -1
- package/dist/tools/builtins/exec-process-manager.d.ts +97 -2
- package/dist/tools/builtins/exec-process-manager.js +218 -19
- package/dist/tools/builtins/exec-process-manager.js.map +1 -1
- package/dist/tools/builtins/exec-tool.js +14 -1
- package/dist/tools/builtins/exec-tool.js.map +1 -1
- package/dist/tools/builtins/image-generation-tool.js +24 -24
- package/dist/tools/builtins/image-generation-tool.js.map +1 -1
- package/dist/tools/smoke-exec-process.js +2 -1
- package/dist/tools/smoke-exec-process.js.map +1 -1
- package/dist/tools/smoke-terminal-output-chain.d.ts +1 -0
- package/dist/tools/smoke-terminal-output-chain.js +245 -0
- package/dist/tools/smoke-terminal-output-chain.js.map +1 -0
- package/dist/tools/smoke-tool-system.js +6 -6
- package/dist/tools/smoke-tool-system.js.map +1 -1
- package/dist/tools/terminal-output-persistence.test.d.ts +1 -0
- package/dist/tools/terminal-output-persistence.test.js +50 -0
- package/dist/tools/terminal-output-persistence.test.js.map +1 -0
- package/dist/tools/terminal-output-store.d.ts +150 -0
- package/dist/tools/terminal-output-store.js +562 -0
- package/dist/tools/terminal-output-store.js.map +1 -0
- package/dist/tools/terminal-output-store.test.d.ts +1 -0
- package/dist/tools/terminal-output-store.test.js +364 -0
- package/dist/tools/terminal-output-store.test.js.map +1 -0
- package/dist/types/events.d.ts +1 -0
- package/dist/types/messages.d.ts +1 -0
- package/dist/web/agent-content-detail.d.ts +78 -0
- package/dist/web/agent-content-detail.js +495 -0
- package/dist/web/agent-content-detail.js.map +1 -0
- package/dist/web/agent-content-detail.test.d.ts +1 -0
- package/dist/web/agent-content-detail.test.js +307 -0
- package/dist/web/agent-content-detail.test.js.map +1 -0
- package/dist/web/agent-parent-messages.test.d.ts +1 -0
- package/dist/web/agent-parent-messages.test.js +58 -0
- package/dist/web/agent-parent-messages.test.js.map +1 -0
- package/dist/web/agent-tool-payload-security.test.d.ts +1 -0
- package/dist/web/agent-tool-payload-security.test.js +120 -0
- package/dist/web/agent-tool-payload-security.test.js.map +1 -0
- package/dist/web/index.d.ts +114 -3
- package/dist/web/index.js +182 -67
- package/dist/web/index.js.map +1 -1
- package/dist/web/smoke-agent-content-http.d.ts +1 -0
- package/dist/web/smoke-agent-content-http.js +446 -0
- package/dist/web/smoke-agent-content-http.js.map +1 -0
- package/dist/web/smoke-status-semantics.d.ts +1 -0
- package/dist/web/smoke-status-semantics.js +90 -0
- package/dist/web/smoke-status-semantics.js.map +1 -0
- package/dist/web/smoke-task-session-entrypoints.js +22 -1
- package/dist/web/smoke-task-session-entrypoints.js.map +1 -1
- package/dist/web/smoke-terminal-output-http.d.ts +1 -0
- package/dist/web/smoke-terminal-output-http.js +372 -0
- package/dist/web/smoke-terminal-output-http.js.map +1 -0
- package/dist/web/smoke-tool-call-detail.d.ts +1 -0
- package/dist/web/smoke-tool-call-detail.js +106 -0
- package/dist/web/smoke-tool-call-detail.js.map +1 -0
- package/dist/web/smoke-tool-call-http.d.ts +1 -0
- package/dist/web/smoke-tool-call-http.js +100 -0
- package/dist/web/smoke-tool-call-http.js.map +1 -0
- package/dist/web/smoke-tool-detail-fields-http.d.ts +1 -0
- package/dist/web/smoke-tool-detail-fields-http.js +121 -0
- package/dist/web/smoke-tool-detail-fields-http.js.map +1 -0
- package/dist/web/smoke-web-terminal-tasks.js +126 -76
- package/dist/web/smoke-web-terminal-tasks.js.map +1 -1
- package/dist/web/status-semantics.d.ts +11 -0
- package/dist/web/status-semantics.js +59 -0
- package/dist/web/status-semantics.js.map +1 -0
- package/dist/web/terminal-presentation.d.ts +15 -0
- package/dist/web/terminal-presentation.js +61 -0
- package/dist/web/terminal-presentation.js.map +1 -0
- package/dist/web/terminal-presentation.test.d.ts +1 -0
- package/dist/web/terminal-presentation.test.js +33 -0
- package/dist/web/terminal-presentation.test.js.map +1 -0
- package/dist/web/tool-call-detail.d.ts +40 -0
- package/dist/web/tool-call-detail.js +167 -0
- package/dist/web/tool-call-detail.js.map +1 -0
- package/dist/web/tool-detail-fields.d.ts +59 -0
- package/dist/web/tool-detail-fields.js +119 -0
- package/dist/web/tool-detail-fields.js.map +1 -0
- package/dist/web/tool-detail-fields.test.d.ts +1 -0
- package/dist/web/tool-detail-fields.test.js +121 -0
- package/dist/web/tool-detail-fields.test.js.map +1 -0
- package/package.json +93 -93
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import test from "node:test";
|
|
3
|
+
import { mkdtemp, readFile, rm } from "node:fs/promises";
|
|
4
|
+
import os from "node:os";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { normalizeResponsesObject, normalizeResponsesStream } from "../model/openai-responses-mapper.js";
|
|
7
|
+
import { runAgent } from "./run-agent.js";
|
|
8
|
+
import { SessionStore } from "../session/session-store.js";
|
|
9
|
+
import { ToolRegistry } from "../tools/registry.js";
|
|
10
|
+
import { createTextMessage } from "../types/messages.js";
|
|
11
|
+
async function streamEvents(events) {
|
|
12
|
+
const stream = new ReadableStream({ start(controller) {
|
|
13
|
+
for (const event of events)
|
|
14
|
+
controller.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(event)}\n\n`));
|
|
15
|
+
controller.close();
|
|
16
|
+
} });
|
|
17
|
+
const result = [];
|
|
18
|
+
for await (const event of normalizeResponsesStream(stream, { model: "test" }))
|
|
19
|
+
result.push(event);
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
function visibleText(messages) {
|
|
23
|
+
return messages.flatMap((message) => message.role === "assistant" ? message.blocks : [])
|
|
24
|
+
.filter((block) => block.type === "text" && block.displayChannel === "visible")
|
|
25
|
+
.map((block) => block.type === "text" ? block.text : "").join("");
|
|
26
|
+
}
|
|
27
|
+
function finalMessages(events) {
|
|
28
|
+
return events.flatMap((event) => event.type === "assistant_message" ? [event.message] : []);
|
|
29
|
+
}
|
|
30
|
+
const textDelta = (text, displayChannel) => ({ type: "assistant_delta", text, ...(displayChannel ? { displayChannel } : {}) });
|
|
31
|
+
const gateway = (events) => ({ async *stream() { yield* structuredClone(events); } });
|
|
32
|
+
function options(root, events) {
|
|
33
|
+
return { agentId: "child-visible", agent: { agentType: "test", whenToUse: "test", tools: [] }, prompt: "INITIAL", maxTurns: 1, workspaceCwd: root,
|
|
34
|
+
parentContext: { session: { sessionId: "parent", sessionDir: root } },
|
|
35
|
+
dependencies: { modelGateway: gateway(events), tools: new ToolRegistry(),
|
|
36
|
+
contextManager: { async build() { return { systemPrompt: "test", promptSections: [], userContext: { currentDate: "2026-09-07" }, systemContext: { cwd: root, platform: process.platform } }; } },
|
|
37
|
+
compactor: { async compact(messages) { return { messages: [...messages], changed: false }; } },
|
|
38
|
+
}, };
|
|
39
|
+
}
|
|
40
|
+
async function drain(input) {
|
|
41
|
+
const events = [];
|
|
42
|
+
for await (const event of runAgent(input)) {
|
|
43
|
+
if (event.type === "error")
|
|
44
|
+
throw event.error;
|
|
45
|
+
events.push(event);
|
|
46
|
+
}
|
|
47
|
+
return events;
|
|
48
|
+
}
|
|
49
|
+
test("Responses output_text marks visible; item/event/part analysis, system, hidden and reasoning never do", async () => {
|
|
50
|
+
const sources = [];
|
|
51
|
+
const add = (index, text, item = {}, event = {}, part = {}) => {
|
|
52
|
+
sources.push({ type: "response.output_item.added", output_index: index, item: { type: "message", id: `m${index}`, role: "assistant", ...item } });
|
|
53
|
+
sources.push({ type: "response.content_part.added", item_id: `m${index}`, content_index: 0, part: { type: "output_text", ...part } });
|
|
54
|
+
sources.push({ type: "response.output_text.delta", item_id: `m${index}`, delta: text, ...event });
|
|
55
|
+
};
|
|
56
|
+
add(0, "COMMENT", { channel: "commentary" });
|
|
57
|
+
add(1, "ANALYSIS", { channel: "analysis" }, { channel: "answer" });
|
|
58
|
+
add(2, "ANSWER", { phase: "final_answer" });
|
|
59
|
+
add(3, "SYSTEM", { role: "system" });
|
|
60
|
+
add(4, "HIDDEN", {}, { channel: "hidden" });
|
|
61
|
+
add(5, "PART_ANALYSIS", {}, {}, { channel: "analysis" });
|
|
62
|
+
add(6, "EVENT_ANALYSIS", { channel: "answer" }, { channel: "analysis" });
|
|
63
|
+
add(7, "UNKNOWN", { channel: "unknown" });
|
|
64
|
+
add(8, "REASONING_ITEM", { type: "reasoning" });
|
|
65
|
+
sources.push({ type: "response.output_text.delta", delta: "CONTRACT" });
|
|
66
|
+
sources.push({ type: "response.reasoning_summary_text.delta", delta: "PRIVATE_THINKING", channel: "answer" });
|
|
67
|
+
sources.push({ type: "response.completed", response: { status: "completed" } });
|
|
68
|
+
const result = await streamEvents(sources);
|
|
69
|
+
const marked = result.filter((event) => event.type === "assistant_delta" && event.displayChannel === "visible");
|
|
70
|
+
assert.equal(marked.map((event) => "text" in event ? event.text : "").join(""), "COMMENTANSWERCONTRACT");
|
|
71
|
+
assert.equal(visibleText(finalMessages(result)), "COMMENTANSWERCONTRACT");
|
|
72
|
+
assert(result.some((event) => event.type === "thinking_delta" && !("displayChannel" in event)));
|
|
73
|
+
assert(finalMessages(result).some((message) => message.blocks.some((block) => block.type === "thinking" && !("displayChannel" in block))));
|
|
74
|
+
});
|
|
75
|
+
test("non-stream response separates visible output_text from analysis and legacy text", () => {
|
|
76
|
+
const result = [...normalizeResponsesObject({ status: 200, headers: new Headers(), body: { status: "completed", output: [
|
|
77
|
+
{ type: "message", role: "assistant", channel: "answer", content: [{ type: "output_text", text: "PUBLIC" }, { type: "text", text: "LEGACY" }, { type: "output_text", channel: "analysis", text: "PRIVATE_PART" }] },
|
|
78
|
+
{ type: "message", role: "assistant", channel: "analysis", content: [{ type: "output_text", text: "PRIVATE_ITEM" }] },
|
|
79
|
+
{ type: "message", role: "system", content: [{ type: "output_text", text: "SYSTEM" }] },
|
|
80
|
+
{ type: "reasoning", summary: [{ text: "THINKING" }] },
|
|
81
|
+
] } })];
|
|
82
|
+
assert.equal(visibleText(finalMessages(result)), "PUBLIC");
|
|
83
|
+
assert.match(JSON.stringify(finalMessages(result)), /LEGACY/);
|
|
84
|
+
});
|
|
85
|
+
test("query filter preserves per-character provenance across hold-back, tail flush and final text", async () => {
|
|
86
|
+
const root = await mkdtemp(path.join(os.tmpdir(), "obs04-query-"));
|
|
87
|
+
try {
|
|
88
|
+
for (const [first, second, expected] of [
|
|
89
|
+
[textDelta("W"), textDelta("x", "visible"), "x"],
|
|
90
|
+
[textDelta("W", "visible"), textDelta("x"), "W"],
|
|
91
|
+
[textDelta("W", "visible"), textDelta("", "visible"), "W"],
|
|
92
|
+
]) {
|
|
93
|
+
const input = options(root, [first, second, { type: "response_completed" }]);
|
|
94
|
+
input.parentContext = undefined;
|
|
95
|
+
const events = await drain(input);
|
|
96
|
+
assert.equal(events.filter((event) => event.type === "assistant.delta" && event.displayChannel === "visible").map((event) => "text" in event ? event.text : "").join(""), expected);
|
|
97
|
+
}
|
|
98
|
+
const mapped = await streamEvents([{ type: "response.output_text.delta", delta: "PUBLIC" }, { type: "response.completed", response: { status: "completed" } }]);
|
|
99
|
+
const events = await drain(options(root, mapped));
|
|
100
|
+
assert.equal(visibleText(events.flatMap((event) => event.type === "message" ? [event.message] : [])), "PUBLIC");
|
|
101
|
+
assert.equal(events.filter((event) => event.type === "assistant.delta" && event.displayChannel === "visible").map((event) => "text" in event ? event.text : "").join(""), "PUBLIC");
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
await rm(root, { recursive: true, force: true });
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
test("child transcript tags only new query messages with actual generation; restore/compact preserve visible blocks", async () => {
|
|
108
|
+
const root = await mkdtemp(path.join(os.tmpdir(), "obs04-transcript-"));
|
|
109
|
+
try {
|
|
110
|
+
const mapped = await streamEvents([{ type: "response.output_text.delta", delta: "ROUND_ONE" }, { type: "response.completed", response: { status: "completed" } }]);
|
|
111
|
+
const input = options(root, mapped);
|
|
112
|
+
const inherited = createTextMessage("assistant", "PARENT_CONTEXT");
|
|
113
|
+
inherited.blocks = [{ type: "text", text: "PARENT_CONTEXT", displayChannel: "visible" }];
|
|
114
|
+
input.fork = true;
|
|
115
|
+
input.parentMessages = [inherited];
|
|
116
|
+
input.runGeneration = 7;
|
|
117
|
+
input.dependencies.modelGateway = gateway([...mapped, { type: "tool_use", toolUse: { id: "call-new", name: "missing-tool", input: {} } }]);
|
|
118
|
+
input.takePendingMessages = (() => { let sent = false; return () => { if (sent)
|
|
119
|
+
return []; sent = true; return [createTextMessage("user", "PENDING")]; }; })();
|
|
120
|
+
await drain(input);
|
|
121
|
+
const open = () => SessionStore.open({ rootDir: path.join(root, "subagents"), sessionId: input.agentId, agentId: input.agentId, resume: true });
|
|
122
|
+
let child = await open();
|
|
123
|
+
assert.match(visibleText(child.getInitialMessages()), /ROUND_ONE/);
|
|
124
|
+
child.recordCompactCheckpoint(child.getInitialMessages(), "autocompact");
|
|
125
|
+
child = await open();
|
|
126
|
+
assert.match(visibleText(child.getInitialMessages()), /ROUND_ONE/);
|
|
127
|
+
const next = options(root, [{ type: "assistant_message", message: createTextMessage("assistant", "ROUND_TWO_LEGACY") }, { type: "response_completed" }]);
|
|
128
|
+
next.runGeneration = 11;
|
|
129
|
+
next.resumeDirective = "RESUME";
|
|
130
|
+
await drain(next);
|
|
131
|
+
const legacy = options(root, [{ type: "assistant_message", message: createTextMessage("assistant", "NO_GENERATION") }]);
|
|
132
|
+
await drain(legacy);
|
|
133
|
+
const entries = (await readFile(child.transcriptPath, "utf8")).trim().split("\n").map((line) => JSON.parse(line));
|
|
134
|
+
const rows = entries.filter((entry) => entry.type === "message");
|
|
135
|
+
const tagged = rows.filter((entry) => entry.runGeneration !== undefined);
|
|
136
|
+
assert.deepEqual(tagged.map((entry) => entry.runGeneration), [7, 7, 7, 11]);
|
|
137
|
+
assert(tagged.some((entry) => entry.message.role === "tool_result" && entry.runGeneration === 7));
|
|
138
|
+
assert.equal(visibleText(tagged.filter((entry) => entry.runGeneration === 7).map((entry) => entry.message)), "ROUND_ONE");
|
|
139
|
+
assert.equal(visibleText(tagged.filter((entry) => entry.runGeneration === 11).map((entry) => entry.message)), "");
|
|
140
|
+
for (const entry of rows.filter((entry) => /PARENT_CONTEXT|INITIAL|PENDING|RESUME|NO_GENERATION/.test(JSON.stringify(entry.message))))
|
|
141
|
+
assert.equal(entry.runGeneration, undefined);
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
await rm(root, { recursive: true, force: true });
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
//# sourceMappingURL=obs04-visible-data.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obs04-visible-data.test.js","sourceRoot":"","sources":["../../src/core/obs04-visible-data.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,9 +71,12 @@ export declare class QueryEngine {
|
|
|
71
71
|
private readonly contextManager;
|
|
72
72
|
private readonly additionalPromptContextManager;
|
|
73
73
|
private pendingCwdTransitionPaths?;
|
|
74
|
+
private pendingRequestContext?;
|
|
75
|
+
private pendingRequestContextConsumed?;
|
|
74
76
|
constructor(options: QueryEngineOptions);
|
|
75
77
|
forkForSession(sessionId?: string, resume?: boolean): QueryEngine;
|
|
76
78
|
onSessionTitleChange(listener: (snapshot: SessionStoreSnapshot | undefined) => void): () => void;
|
|
79
|
+
noteRecoverableSubagents(onConsumed?: () => void): void;
|
|
77
80
|
initialize(): Promise<void>;
|
|
78
81
|
newSession(): Promise<SessionStoreSnapshot>;
|
|
79
82
|
listSessions(limit?: number): Promise<SessionSummary[]>;
|
|
@@ -120,6 +123,8 @@ export declare class QueryEngine {
|
|
|
120
123
|
session?: SessionStoreSnapshot;
|
|
121
124
|
};
|
|
122
125
|
getHistoryMessages(): Message[];
|
|
126
|
+
/** User-facing read-only detail boundaries must also redact secrets registered at runtime. */
|
|
127
|
+
redactDisplayValue<T>(value: T): T;
|
|
123
128
|
getDisplayEntries(): SessionDisplayEntry[];
|
|
124
129
|
private applyCompactionResult;
|
|
125
130
|
contextMetrics(): Promise<ContextMetrics>;
|
|
@@ -35,6 +35,8 @@ export class QueryEngine {
|
|
|
35
35
|
contextManager;
|
|
36
36
|
additionalPromptContextManager;
|
|
37
37
|
pendingCwdTransitionPaths;
|
|
38
|
+
pendingRequestContext;
|
|
39
|
+
pendingRequestContextConsumed;
|
|
38
40
|
constructor(options) {
|
|
39
41
|
this.options = options;
|
|
40
42
|
this.agentId = options.agentId ?? "main";
|
|
@@ -66,6 +68,14 @@ export class QueryEngine {
|
|
|
66
68
|
this.sessionTitleListeners.add(listener);
|
|
67
69
|
return () => this.sessionTitleListeners.delete(listener);
|
|
68
70
|
}
|
|
71
|
+
noteRecoverableSubagents(onConsumed) {
|
|
72
|
+
this.pendingRequestContext = {
|
|
73
|
+
...this.pendingRequestContext,
|
|
74
|
+
recoveryHint: "Interrupted subagents can be resumed.",
|
|
75
|
+
};
|
|
76
|
+
if (onConsumed)
|
|
77
|
+
this.pendingRequestContextConsumed = onConsumed;
|
|
78
|
+
}
|
|
69
79
|
async initialize() {
|
|
70
80
|
if (this.sessionInitialized)
|
|
71
81
|
return;
|
|
@@ -113,6 +123,8 @@ export class QueryEngine {
|
|
|
113
123
|
async *sendUserText(text, options = {}) {
|
|
114
124
|
await this.initialize();
|
|
115
125
|
const cwdTransitionPaths = this.pendingCwdTransitionPaths;
|
|
126
|
+
const pendingRequestContext = this.pendingRequestContext;
|
|
127
|
+
const pendingRequestContextConsumed = this.pendingRequestContextConsumed;
|
|
116
128
|
this.pendingCwdTransitionPaths = undefined;
|
|
117
129
|
this.options.cwdTransitionPaths = undefined;
|
|
118
130
|
if (cwdTransitionPaths?.length)
|
|
@@ -154,9 +166,21 @@ export class QueryEngine {
|
|
|
154
166
|
contextWindowTokensOverride: this.currentContextWindowTokens,
|
|
155
167
|
maxTurns: this.options.maxTurns,
|
|
156
168
|
workspaceCwd: this.options.cwd,
|
|
157
|
-
requestContext: cwdTransitionPaths?.length
|
|
158
|
-
? {
|
|
169
|
+
requestContext: pendingRequestContext || cwdTransitionPaths?.length
|
|
170
|
+
? {
|
|
171
|
+
...pendingRequestContext,
|
|
172
|
+
...(cwdTransitionPaths?.length
|
|
173
|
+
? { cwdTransition: { paths: cwdTransitionPaths, current: cwdTransitionPaths.at(-1) } }
|
|
174
|
+
: {}),
|
|
175
|
+
}
|
|
159
176
|
: undefined,
|
|
177
|
+
onRequestContextConsumed: pendingRequestContext ? () => {
|
|
178
|
+
pendingRequestContextConsumed?.();
|
|
179
|
+
if (this.pendingRequestContext === pendingRequestContext) {
|
|
180
|
+
this.pendingRequestContext = undefined;
|
|
181
|
+
this.pendingRequestContextConsumed = undefined;
|
|
182
|
+
}
|
|
183
|
+
} : undefined,
|
|
160
184
|
abortSignal: options.abortSignal,
|
|
161
185
|
stopAfterTurn: options.stopAfterTurn,
|
|
162
186
|
};
|
|
@@ -287,6 +311,10 @@ export class QueryEngine {
|
|
|
287
311
|
getHistoryMessages() {
|
|
288
312
|
return this.history.map(cloneMessage);
|
|
289
313
|
}
|
|
314
|
+
/** User-facing read-only detail boundaries must also redact secrets registered at runtime. */
|
|
315
|
+
redactDisplayValue(value) {
|
|
316
|
+
return this.options.secretRedactions?.redact(value) ?? value;
|
|
317
|
+
}
|
|
290
318
|
getDisplayEntries() {
|
|
291
319
|
return this.sessionStore?.getDisplayEntries() ?? this.history.map((message) => ({ type: "message", message: cloneMessage(message) }));
|
|
292
320
|
}
|
|
@@ -331,6 +359,11 @@ export class QueryEngine {
|
|
|
331
359
|
tools: this.options.tools,
|
|
332
360
|
appState: new InMemoryAppState(this.agentId, this.options.cwd),
|
|
333
361
|
toolResultMemory: this.sessionStore?.toolResultMemory,
|
|
362
|
+
session: this.sessionStore ? {
|
|
363
|
+
sessionId: this.sessionStore.sessionId,
|
|
364
|
+
sessionDir: this.sessionStore.sessionDir,
|
|
365
|
+
rootDir: this.options.session?.rootDir,
|
|
366
|
+
} : undefined,
|
|
334
367
|
secrets: this.options.secrets,
|
|
335
368
|
secretRedactions: this.options.secretRedactions,
|
|
336
369
|
recordContentReplacements: (records) => this.sessionStore?.recordContentReplacements(records),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-engine.js","sourceRoot":"","sources":["../../src/core/query-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query-engine.js","sourceRoot":"","sources":["../../src/core/query-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/core/query.d.ts
CHANGED
|
@@ -28,6 +28,8 @@ export interface QueryOptions {
|
|
|
28
28
|
workspaceCwd?: string;
|
|
29
29
|
/** Ephemeral request-scoped context inserted beside the latest user message. */
|
|
30
30
|
requestContext?: Record<string, unknown>;
|
|
31
|
+
/** Called immediately before the model gateway receives this request context. */
|
|
32
|
+
onRequestContextConsumed?: () => void;
|
|
31
33
|
/**
|
|
32
34
|
* Native cooperative yield point checked after a complete model turn and its
|
|
33
35
|
* tool results have been appended. Returning true stops before the next model
|
package/dist/core/query.js
CHANGED
|
@@ -231,7 +231,7 @@ function applyRequestContext(messages, requestContext) {
|
|
|
231
231
|
async function* callModelForTurn(state, context, messagesForQuery, dependencies, options, toolContext, telemetry) {
|
|
232
232
|
const assistantMessages = [];
|
|
233
233
|
const toolUses = [];
|
|
234
|
-
const outputFilter = new
|
|
234
|
+
const outputFilter = new DisplayOutputFilter(dependencies.secretRedactions);
|
|
235
235
|
const thinkingParts = [];
|
|
236
236
|
let previousResponseId = state.previousResponseId;
|
|
237
237
|
let incompleteReason;
|
|
@@ -250,6 +250,8 @@ async function* callModelForTurn(state, context, messagesForQuery, dependencies,
|
|
|
250
250
|
if (state.modelInputMessages)
|
|
251
251
|
state.modelInputMessages = [...state.modelInputMessages, ...pending];
|
|
252
252
|
}
|
|
253
|
+
if (options.requestContext)
|
|
254
|
+
options.onRequestContextConsumed?.();
|
|
253
255
|
for await (const event of dependencies.modelGateway.stream({
|
|
254
256
|
model: activeModel,
|
|
255
257
|
messages: modelMessages,
|
|
@@ -268,6 +270,7 @@ async function* callModelForTurn(state, context, messagesForQuery, dependencies,
|
|
|
268
270
|
const thinkingMessage = finalizeThinkingMessage(assistantMessages, thinkingParts);
|
|
269
271
|
if (thinkingMessage)
|
|
270
272
|
yield { type: "message", message: thinkingMessage };
|
|
273
|
+
yield* outputFilter.finishVisibleMessage(assistantMessages);
|
|
271
274
|
return { terminal: "aborted_streaming" };
|
|
272
275
|
}
|
|
273
276
|
const handled = yield* handleModelEvent(event, assistantMessages, toolUses, outputFilter, thinkingParts);
|
|
@@ -298,6 +301,7 @@ async function* callModelForTurn(state, context, messagesForQuery, dependencies,
|
|
|
298
301
|
};
|
|
299
302
|
const compacted = withCompactionReport(await (compactor.reactiveCompact?.(state.messages, normalized, reactiveBudget) ?? compactor.compact(state.messages, reactiveBudget)), state.messages.length);
|
|
300
303
|
if (!compacted.changed) {
|
|
304
|
+
yield* outputFilter.finishVisibleMessage(assistantMessages);
|
|
301
305
|
yield { type: "error", error: normalized };
|
|
302
306
|
return { terminal: terminalForModelError(normalized) };
|
|
303
307
|
}
|
|
@@ -325,11 +329,13 @@ async function* callModelForTurn(state, context, messagesForQuery, dependencies,
|
|
|
325
329
|
const thinkingMessage = finalizeThinkingMessage(assistantMessages, thinkingParts);
|
|
326
330
|
if (thinkingMessage)
|
|
327
331
|
yield { type: "message", message: thinkingMessage };
|
|
332
|
+
yield* outputFilter.finishVisibleMessage(assistantMessages);
|
|
328
333
|
const terminal = terminalForModelError(error);
|
|
329
334
|
yield { type: "error", error: error instanceof Error ? error : new Error(String(error)) };
|
|
330
335
|
return { terminal };
|
|
331
336
|
}
|
|
332
337
|
if (options.abortSignal?.aborted) {
|
|
338
|
+
yield* outputFilter.finishVisibleMessage(assistantMessages);
|
|
333
339
|
const thinkingMessage = finalizeThinkingMessage(assistantMessages, thinkingParts);
|
|
334
340
|
if (thinkingMessage)
|
|
335
341
|
yield { type: "message", message: thinkingMessage };
|
|
@@ -338,9 +344,7 @@ async function* callModelForTurn(state, context, messagesForQuery, dependencies,
|
|
|
338
344
|
// Some providers end a tool-calling turn without a finalized text message.
|
|
339
345
|
// Release the filter's safety hold-back before the tool boundary so the UI
|
|
340
346
|
// does not defer the last part of the assistant's pre-tool narration.
|
|
341
|
-
|
|
342
|
-
if (heldBackText)
|
|
343
|
-
yield { type: "assistant.delta", text: heldBackText };
|
|
347
|
+
yield* outputFilter.finishVisibleMessage(assistantMessages);
|
|
344
348
|
if (toolUses.length)
|
|
345
349
|
dependencies.exportToolCalls?.(toolUses);
|
|
346
350
|
const syntheticToolUseMessage = appendSyntheticToolUseMessage(assistantMessages, toolUses);
|
|
@@ -382,9 +386,7 @@ function formatUnsupportedImagePlaceholder(block) {
|
|
|
382
386
|
}
|
|
383
387
|
async function* handleModelEvent(event, assistantMessages, toolUses, outputFilter, thinkingParts) {
|
|
384
388
|
if (event.type === "assistant_delta") {
|
|
385
|
-
|
|
386
|
-
if (text)
|
|
387
|
-
yield { type: "assistant.delta", text };
|
|
389
|
+
yield* outputFilter.pushEvent(event);
|
|
388
390
|
return {};
|
|
389
391
|
}
|
|
390
392
|
if (event.type === "thinking_delta") {
|
|
@@ -394,9 +396,7 @@ async function* handleModelEvent(event, assistantMessages, toolUses, outputFilte
|
|
|
394
396
|
}
|
|
395
397
|
if (event.type === "assistant_message") {
|
|
396
398
|
const message = outputFilter.sanitizeMessage(event.message);
|
|
397
|
-
|
|
398
|
-
if (heldBackText)
|
|
399
|
-
yield { type: "assistant.delta", text: heldBackText };
|
|
399
|
+
yield* outputFilter.flushEvents();
|
|
400
400
|
assistantMessages.push(message);
|
|
401
401
|
for (const toolUse of extractToolUses(message))
|
|
402
402
|
toolUses.push(toolUse);
|
|
@@ -441,11 +441,8 @@ async function* handleModelEvent(event, assistantMessages, toolUses, outputFilte
|
|
|
441
441
|
return { previousResponseId: event.responseId, incompleteReason: event.reason };
|
|
442
442
|
}
|
|
443
443
|
if (event.type === "error") {
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
yield { type: "message", message: thinkingMessage };
|
|
447
|
-
yield { type: "error", error: event.error };
|
|
448
|
-
return {};
|
|
444
|
+
// Provider error events are terminal failures, not successful empty turns.
|
|
445
|
+
throw event.error;
|
|
449
446
|
}
|
|
450
447
|
return {};
|
|
451
448
|
}
|
|
@@ -745,4 +742,96 @@ function collectTaskNotifications(source, sessionDir) {
|
|
|
745
742
|
});
|
|
746
743
|
});
|
|
747
744
|
}
|
|
745
|
+
// Preserve provenance across the existing safety filter's hold-back without
|
|
746
|
+
// changing filtering semantics or relabelling buffered text from another channel.
|
|
747
|
+
class DisplayOutputFilter extends AssistantOutputFilter {
|
|
748
|
+
secrets;
|
|
749
|
+
visibleParts = [];
|
|
750
|
+
secretStream;
|
|
751
|
+
constructor(secrets) {
|
|
752
|
+
super();
|
|
753
|
+
this.secrets = secrets;
|
|
754
|
+
this.secretStream = secrets?.createStreamingRedactor?.({ incompleteSecret: "redact" });
|
|
755
|
+
}
|
|
756
|
+
*finishVisibleMessage(messages) {
|
|
757
|
+
yield* this.flushEvents();
|
|
758
|
+
// The registry's streaming flush masks ambiguous credential prefixes; never
|
|
759
|
+
// release raw held text at an interrupted provider boundary.
|
|
760
|
+
const tail = this.secretStream?.flush() ?? "";
|
|
761
|
+
if (tail) {
|
|
762
|
+
this.visibleParts.push(tail);
|
|
763
|
+
yield { type: "assistant.delta", text: tail, displayChannel: "visible" };
|
|
764
|
+
}
|
|
765
|
+
const text = this.visibleParts.join("");
|
|
766
|
+
this.visibleParts = [];
|
|
767
|
+
if (!text)
|
|
768
|
+
return;
|
|
769
|
+
const message = { ...createTextMessage("assistant", text),
|
|
770
|
+
blocks: [{ type: "text", text, displayChannel: "visible" }],
|
|
771
|
+
metadata: { streamedPartial: true } };
|
|
772
|
+
messages.push(message);
|
|
773
|
+
yield { type: "message", message };
|
|
774
|
+
}
|
|
775
|
+
pending = [];
|
|
776
|
+
pushEvent(event) {
|
|
777
|
+
this.pending.push({ length: event.text.length, displayChannel: event.displayChannel });
|
|
778
|
+
return this.events(super.push(event.text));
|
|
779
|
+
}
|
|
780
|
+
flushEvents() {
|
|
781
|
+
return this.events(super.flush());
|
|
782
|
+
}
|
|
783
|
+
sanitizeMessage(message) {
|
|
784
|
+
const hasVisibleFinal = message.role === "assistant" && message.isMeta !== true &&
|
|
785
|
+
message.blocks.some(block => block.type === "text" && block.displayChannel === "visible");
|
|
786
|
+
// The base filter consumes its hold-back on ANY final text. An unmarked or
|
|
787
|
+
// analysis-only final must not consume the visible draft (including its tail).
|
|
788
|
+
// Sanitize such messages with a separate filter so provenance is not reset.
|
|
789
|
+
const sanitized = hasVisibleFinal ? super.sanitizeMessage(message) : new AssistantOutputFilter().sanitizeMessage(message);
|
|
790
|
+
if (hasVisibleFinal) {
|
|
791
|
+
this.pending = [];
|
|
792
|
+
this.visibleParts = []; // Final text replaces the streamed draft.
|
|
793
|
+
this.secretStream = this.secrets?.createStreamingRedactor?.({ incompleteSecret: "redact" });
|
|
794
|
+
}
|
|
795
|
+
if (!this.secrets)
|
|
796
|
+
return sanitized;
|
|
797
|
+
// Provider-finalized visible blocks must pass the same prefix-safe boundary.
|
|
798
|
+
// Other channels retain model provenance, but can never become public text.
|
|
799
|
+
const redactor = this.secrets.createStreamingRedactor?.({ incompleteSecret: "redact" });
|
|
800
|
+
const blocks = sanitized.blocks.map(block => block.type === "text" && block.displayChannel === "visible"
|
|
801
|
+
? { ...block, text: redactor?.push(block.text) ?? "" } : block);
|
|
802
|
+
const tail = redactor?.flush() ?? "";
|
|
803
|
+
if (tail) {
|
|
804
|
+
const last = [...blocks].reverse().find(block => block.type === "text" && block.displayChannel === "visible");
|
|
805
|
+
if (last?.type === "text")
|
|
806
|
+
last.text += tail;
|
|
807
|
+
}
|
|
808
|
+
return { ...sanitized, blocks };
|
|
809
|
+
}
|
|
810
|
+
events(text) {
|
|
811
|
+
const events = [];
|
|
812
|
+
while (text && this.pending.length) {
|
|
813
|
+
const part = this.pending[0];
|
|
814
|
+
const length = Math.min(text.length, part.length);
|
|
815
|
+
if (length) {
|
|
816
|
+
const piece = text.slice(0, length);
|
|
817
|
+
if (part.displayChannel === "visible") {
|
|
818
|
+
// If a custom registry lacks streaming support, fail closed rather
|
|
819
|
+
// than expose half a credential using whole-value redact(piece).
|
|
820
|
+
const safe = this.secrets ? this.secretStream?.push(piece) ?? "" : piece;
|
|
821
|
+
if (safe) {
|
|
822
|
+
this.visibleParts.push(safe);
|
|
823
|
+
events.push({ type: "assistant.delta", text: safe, displayChannel: "visible" });
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
else
|
|
827
|
+
events.push({ type: "assistant.delta", text: piece });
|
|
828
|
+
}
|
|
829
|
+
text = text.slice(length);
|
|
830
|
+
part.length -= length;
|
|
831
|
+
if (!part.length)
|
|
832
|
+
this.pending.shift();
|
|
833
|
+
}
|
|
834
|
+
return events;
|
|
835
|
+
}
|
|
836
|
+
}
|
|
748
837
|
//# sourceMappingURL=query.js.map
|