neoctl 0.2.46 → 0.2.48
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/agents/agent-activity.js +1 -1
- package/dist/agents/agent-activity.js.map +1 -1
- package/dist/agents/agent-tool.js +2 -1
- package/dist/agents/agent-tool.js.map +1 -1
- package/dist/context/compaction.d.ts +1 -0
- package/dist/context/compaction.js +6 -2
- package/dist/context/compaction.js.map +1 -1
- package/dist/context/prompts.js +3 -4
- package/dist/context/prompts.js.map +1 -1
- package/dist/context/system.md +16 -16
- package/dist/core/abortable-stream.d.ts +2 -0
- package/dist/core/abortable-stream.js +17 -0
- package/dist/core/abortable-stream.js.map +1 -1
- package/dist/core/compaction-progress.d.ts +1 -1
- package/dist/core/compaction-progress.js +7 -5
- package/dist/core/compaction-progress.js.map +1 -1
- package/dist/core/execution-state.d.ts +2 -0
- package/dist/core/execution-state.js +2 -1
- package/dist/core/execution-state.js.map +1 -1
- package/dist/core/message-pipeline.js +2 -2
- package/dist/core/message-pipeline.js.map +1 -1
- package/dist/core/query-engine.d.ts +12 -1
- package/dist/core/query-engine.js +125 -21
- package/dist/core/query-engine.js.map +1 -1
- package/dist/core/query.js +46 -6
- package/dist/core/query.js.map +1 -1
- package/dist/execution/filesystem.js +22 -22
- package/dist/execution/process.js +44 -44
- package/dist/model/model-gateway.d.ts +4 -0
- package/dist/model/model-gateway.js.map +1 -1
- package/dist/model/model-metadata.json +137 -137
- package/dist/model/openai-chat-mapper.js +2 -0
- package/dist/model/openai-chat-mapper.js.map +1 -1
- package/dist/model/openai-responses-mapper.js +3 -0
- package/dist/model/openai-responses-mapper.js.map +1 -1
- package/dist/model/tool-input-stream.d.ts +31 -0
- package/dist/model/tool-input-stream.js +226 -0
- package/dist/model/tool-input-stream.js.map +1 -0
- package/dist/repl/index.js +30 -30
- package/dist/repl/index.js.map +1 -1
- package/dist/session/session-store.js +2 -0
- package/dist/session/session-store.js.map +1 -1
- package/dist/session/tool-result-memory.js +2 -2
- package/dist/session/tool-result-memory.js.map +1 -1
- package/dist/tasks/subagent-tools.js +1 -1
- package/dist/tasks/subagent-tools.js.map +1 -1
- package/dist/tools/builtins/exec-process-manager.d.ts +2 -1
- package/dist/tools/builtins/exec-process-manager.js +2 -1
- package/dist/tools/builtins/exec-process-manager.js.map +1 -1
- package/dist/tools/builtins/exec-tool.js +1 -1
- package/dist/tools/builtins/exec-tool.js.map +1 -1
- package/dist/tools/builtins/image-capabilities.d.ts +2 -2
- package/dist/tools/builtins/image-capabilities.js +3 -3
- package/dist/tools/builtins/image-capabilities.js.map +1 -1
- package/dist/tools/builtins/image-generation-tool.js +1 -1
- package/dist/tools/builtins/image-generation-tool.js.map +1 -1
- package/dist/tools/builtins/image-loader-tool.js +2 -1
- package/dist/tools/builtins/image-loader-tool.js.map +1 -1
- package/dist/tools/run-tool-use.js +2 -1
- package/dist/tools/run-tool-use.js.map +1 -1
- package/dist/tools/terminal-output-store.d.ts +1 -0
- package/dist/tools/terminal-output-store.js +13 -1
- package/dist/tools/terminal-output-store.js.map +1 -1
- package/dist/types/events.d.ts +11 -0
- package/dist/web/demo-tools.js +1 -1
- package/dist/web/demo-tools.js.map +1 -1
- package/dist/web/html.js +5 -5
- package/dist/web/image-result-metadata.d.ts +6 -0
- package/dist/web/image-result-metadata.js +3 -0
- package/dist/web/image-result-metadata.js.map +1 -1
- package/dist/web/index.d.ts +15 -1
- package/dist/web/index.js +134 -20
- package/dist/web/index.js.map +1 -1
- package/dist/web/terminal-presentation.js +1 -1
- package/dist/web/terminal-presentation.js.map +1 -1
- package/dist/web/tool-activity.d.ts +9 -0
- package/dist/web/tool-activity.js +19 -0
- package/dist/web/tool-activity.js.map +1 -0
- package/dist/web/tool-observation-result.d.ts +1 -0
- package/dist/web/tool-observation-result.js +35 -0
- package/dist/web/tool-observation-result.js.map +1 -0
- package/docs/prompt-config.md +86 -86
- package/package.json +1 -1
- package/scripts/copy-prompt-resources.mjs +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/context/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/context/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/context/system.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
## Agent Scaffold
|
|
2
|
-
You are an engineering agent running inside neo.
|
|
3
|
-
You may identify yourself as neo when referring to your operating identity.
|
|
4
|
-
Drive tasks through the shared query loop, tool system, context manager, and model gateway.
|
|
5
|
-
|
|
6
|
-
## Doing Tasks
|
|
7
|
-
Keep work concrete and verifiable.
|
|
8
|
-
For tasks with multiple meaningful steps, maintain a clear execution plan and report progress.
|
|
9
|
-
Use tools for real workspace changes and report validation results precisely.
|
|
10
|
-
When following a concrete strategy, you may briefly state meaningful progress transitions, such as finishing code edits and preparing to run tests.
|
|
11
|
-
|
|
12
|
-
## Using Tools
|
|
13
|
-
When using tools, you may briefly state the intent of the tool call; if a tool result contains valuable information, you may briefly report it.
|
|
14
|
-
|
|
15
|
-
## Tone And Output
|
|
16
|
-
Be direct, concise, and action-oriented. Avoid inventing file contents or command results.
|
|
1
|
+
## Agent Scaffold
|
|
2
|
+
You are an engineering agent running inside neo.
|
|
3
|
+
You may identify yourself as neo when referring to your operating identity.
|
|
4
|
+
Drive tasks through the shared query loop, tool system, context manager, and model gateway.
|
|
5
|
+
|
|
6
|
+
## Doing Tasks
|
|
7
|
+
Keep work concrete and verifiable.
|
|
8
|
+
For tasks with multiple meaningful steps, maintain a clear execution plan and report progress.
|
|
9
|
+
Use tools for real workspace changes and report validation results precisely.
|
|
10
|
+
When following a concrete strategy, you may briefly state meaningful progress transitions, such as finishing code edits and preparing to run tests.
|
|
11
|
+
|
|
12
|
+
## Using Tools
|
|
13
|
+
When using tools, you may briefly state the intent of the tool call; if a tool result contains valuable information, you may briefly report it.
|
|
14
|
+
|
|
15
|
+
## Tone And Output
|
|
16
|
+
Be direct, concise, and action-oriented. Avoid inventing file contents or command results.
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
/** Race owned work without awaiting a provider that ignores cancellation. Late failures stay handled. */
|
|
2
|
+
export declare function abortableWork<T>(work: () => Promise<T>, signal?: AbortSignal): Promise<T>;
|
|
1
3
|
/** Stop consuming immediately even if a provider ignores cancellation while awaiting I/O. */
|
|
2
4
|
export declare function abortableStream<T>(source: AsyncIterable<T>, signal?: AbortSignal): AsyncGenerator<T>;
|
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
/** Race owned work without awaiting a provider that ignores cancellation. Late failures stay handled. */
|
|
2
|
+
export async function abortableWork(work, signal) {
|
|
3
|
+
signal?.throwIfAborted();
|
|
4
|
+
let cancel;
|
|
5
|
+
const aborted = new Promise((_resolve, reject) => {
|
|
6
|
+
cancel = () => reject(signal?.reason ?? new Error("Aborted"));
|
|
7
|
+
});
|
|
8
|
+
signal?.addEventListener("abort", cancel, { once: true });
|
|
9
|
+
try {
|
|
10
|
+
const result = await Promise.race([Promise.resolve().then(() => { signal?.throwIfAborted(); return work(); }), aborted]);
|
|
11
|
+
signal?.throwIfAborted();
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
finally {
|
|
15
|
+
signal?.removeEventListener("abort", cancel);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
1
18
|
/** Stop consuming immediately even if a provider ignores cancellation while awaiting I/O. */
|
|
2
19
|
export async function* abortableStream(source, signal) {
|
|
3
20
|
const iterator = source[Symbol.asyncIterator]();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abortable-stream.js","sourceRoot":"","sources":["../../src/core/abortable-stream.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CAAI,MAAwB,EAAE,MAAoB;IACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAChD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAiB,CAAC;IACtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAmC,OAAO,CAAC,EAAE;QACtE,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,MAAM,EAAE,OAAO;QAAE,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9D,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO;YAC5B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC1C,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,iFAAiF;QACjF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC;gBAAC,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAAC,CAAC;YACzE,MAAM,CAAC,CAAC,yDAAyD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"abortable-stream.js","sourceRoot":"","sources":["../../src/core/abortable-stream.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,IAAsB,EAAE,MAAoB;IACjF,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,MAAmB,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QACtD,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACzH,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;AAC7D,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CAAI,MAAwB,EAAE,MAAoB;IACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAChD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAiB,CAAC;IACtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAmC,OAAO,CAAC,EAAE;QACtE,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,MAAM,EAAE,OAAO;QAAE,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9D,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO;YAC5B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC1C,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,iFAAiF;QACjF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC;gBAAC,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAAC,CAAC;YACzE,MAAM,CAAC,CAAC,yDAAyD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -2,4 +2,4 @@ import type { CompactionReason } from "../context/compaction.js";
|
|
|
2
2
|
import type { AgentEvent } from "../types/events.js";
|
|
3
3
|
export type CompactionStarted = (reason: Exclude<CompactionReason, "none">) => void;
|
|
4
4
|
/** Forward start notifications while awaiting summary work, not after it has finished. */
|
|
5
|
-
export declare function withCompactionProgress<T>(work: (started: CompactionStarted) => Promise<T> | T): AsyncGenerator<AgentEvent, T, void>;
|
|
5
|
+
export declare function withCompactionProgress<T>(work: (started: CompactionStarted) => Promise<T> | T, signal?: AbortSignal): AsyncGenerator<AgentEvent, T, void>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { abortableWork } from "./abortable-stream.js";
|
|
1
2
|
/** Forward start notifications while awaiting summary work, not after it has finished. */
|
|
2
|
-
export async function* withCompactionProgress(work) {
|
|
3
|
+
export async function* withCompactionProgress(work, signal) {
|
|
3
4
|
const events = [];
|
|
4
5
|
const seen = new Set();
|
|
5
6
|
let wake;
|
|
@@ -7,13 +8,13 @@ export async function* withCompactionProgress(work) {
|
|
|
7
8
|
let failed = false;
|
|
8
9
|
let error;
|
|
9
10
|
let result;
|
|
10
|
-
const pending =
|
|
11
|
-
if (settled || seen.has(reason))
|
|
11
|
+
const pending = abortableWork(async () => work(reason => {
|
|
12
|
+
if (settled || signal?.aborted || seen.has(reason))
|
|
12
13
|
return;
|
|
13
14
|
seen.add(reason);
|
|
14
15
|
events.push({ type: "state", phase: "compacting", detail: `${reason}: generating context summary` });
|
|
15
16
|
wake?.();
|
|
16
|
-
})).then(value => { result = value; }, cause => { failed = true; error = cause; }).finally(() => {
|
|
17
|
+
}), signal).then(value => { result = value; }, cause => { failed = true; error = cause; }).finally(() => {
|
|
17
18
|
settled = true;
|
|
18
19
|
wake?.();
|
|
19
20
|
});
|
|
@@ -26,9 +27,10 @@ export async function* withCompactionProgress(work) {
|
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
finally {
|
|
29
|
-
//
|
|
30
|
+
// Wait for the bounded operation, never for a provider ignoring cancellation.
|
|
30
31
|
await pending;
|
|
31
32
|
}
|
|
33
|
+
signal?.throwIfAborted();
|
|
32
34
|
if (failed)
|
|
33
35
|
throw error;
|
|
34
36
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-progress.js","sourceRoot":"","sources":["../../src/core/compaction-progress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compaction-progress.js","sourceRoot":"","sources":["../../src/core/compaction-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAMtD,0FAA0F;AAC1F,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,sBAAsB,CAAI,IAAoD,EAAE,MAAoB;IACzH,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,IAAI,IAA8B,CAAC;IACnC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAc,CAAC;IACnB,IAAI,MAAU,CAAC;IACf,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACtD,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAC3D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,8BAA8B,EAAE,CAAC,CAAC;QACrG,IAAI,EAAE,EAAE,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACtG,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,EAAE,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,MAAM;gBAAE,MAAM,MAAM,CAAC,KAAK,EAAG,CAAC;;gBACpC,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;YAAS,CAAC;QACT,8EAA8E;QAC9E,MAAM,OAAO,CAAC;IAChB,CAAC;IACD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,MAAM;QAAE,MAAM,KAAK,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export interface ExecutionState {
|
|
3
3
|
status: "running" | "paused" | "interrupted" | "completed";
|
|
4
4
|
reason?: string;
|
|
5
|
+
/** Uncommitted compaction: history remains at the pre-compaction checkpoint. */
|
|
6
|
+
resumeCompaction?: boolean;
|
|
5
7
|
/** Active execution time across continuations, excluding paused intervals. */
|
|
6
8
|
elapsedMs?: number;
|
|
7
9
|
}
|
|
@@ -3,6 +3,7 @@ export function isExecutionState(value) {
|
|
|
3
3
|
return false;
|
|
4
4
|
const state = value;
|
|
5
5
|
return ["running", "paused", "interrupted", "completed"].includes(state.status)
|
|
6
|
+
&& (state.resumeCompaction === undefined || typeof state.resumeCompaction === "boolean")
|
|
6
7
|
&& (state.reason === undefined || typeof state.reason === "string")
|
|
7
8
|
&& (state.elapsedMs === undefined || (Number.isSafeInteger(state.elapsedMs) && state.elapsedMs >= 0));
|
|
8
9
|
}
|
|
@@ -13,6 +14,6 @@ export function executionRecoveryHint(state) {
|
|
|
13
14
|
const cause = state.status === "paused"
|
|
14
15
|
? "上一轮会话被用户主动暂停/打断。"
|
|
15
16
|
: `上一轮会话意外终止,未确认完成(原因:${state.reason || "unknown"})。`;
|
|
16
|
-
return `${cause}这次是基于已保存上下文的新一轮续接,不是从底层请求断点重放。部分命令、工具或外部请求可能已执行、仍在运行或只完成了一部分,未收到结果不代表未执行。请先核实文件、进程和外部操作的实际状态,避免重复执行有副作用的操作。以用户本次新消息为最新指令:补充或调整则按新约束续做;替换或取消则不再执行旧目标;独立问题先回答,不擅自恢复旧任务;有歧义且涉及副作用时先澄清。用户仅要求继续时,继续尚未完成的原任务。`;
|
|
17
|
+
return `${cause}${state.resumeCompaction ? "上次上下文压缩被打断,未提交其摘要;运行时已保留压缩前上下文,并在本次模型调用前重新压缩。" : ""}这次是基于已保存上下文的新一轮续接,不是从底层请求断点重放。部分命令、工具或外部请求可能已执行、仍在运行或只完成了一部分,未收到结果不代表未执行。请先核实文件、进程和外部操作的实际状态,避免重复执行有副作用的操作。以用户本次新消息为最新指令:补充或调整则按新约束续做;替换或取消则不再执行旧目标;独立问题先回答,不擅自恢复旧任务;有歧义且涉及副作用时先澄清。用户仅要求继续时,继续尚未完成的原任务。`;
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=execution-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-state.js","sourceRoot":"","sources":["../../src/core/execution-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execution-state.js","sourceRoot":"","sources":["../../src/core/execution-state.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,KAAuB,CAAC;IACtC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;WAC1E,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC;WACrF,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;WAChE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1G,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,OAAO,KAAK,EAAE,MAAM,KAAK,QAAQ,IAAI,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAqB;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,QAAQ;QACrC,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,sBAAsB,KAAK,CAAC,MAAM,IAAI,SAAS,IAAI,CAAC;IACxD,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE,yMAAyM,CAAC;AAC3S,CAAC"}
|
|
@@ -198,8 +198,8 @@ export function appendSystemContext(systemPrompt, systemContext) {
|
|
|
198
198
|
function splitSystemContextForPromptCache(systemContext) {
|
|
199
199
|
const entries = Object.entries(systemContext).filter(([, value]) => value !== undefined);
|
|
200
200
|
return {
|
|
201
|
-
stableSystemContext: Object.fromEntries(entries.filter(([key]) =>
|
|
202
|
-
dynamicSystemContext: Object.fromEntries(entries.filter(([key]) =>
|
|
201
|
+
stableSystemContext: Object.fromEntries(entries.filter(([key]) => !["cwd", "Workspace scope changed", "workspaceMemory"].includes(key))),
|
|
202
|
+
dynamicSystemContext: Object.fromEntries(entries.filter(([key]) => ["cwd", "Workspace scope changed", "workspaceMemory"].includes(key))),
|
|
203
203
|
};
|
|
204
204
|
}
|
|
205
205
|
function renderObjectEntries(entries) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-pipeline.js","sourceRoot":"","sources":["../../src/core/message-pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-pipeline.js","sourceRoot":"","sources":["../../src/core/message-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,7 @@ export interface QueryEngineOptions {
|
|
|
51
51
|
name: string;
|
|
52
52
|
input: unknown;
|
|
53
53
|
}>) => void;
|
|
54
|
+
workspacePaths?: readonly string[];
|
|
54
55
|
cwdTransitionPaths?: readonly string[];
|
|
55
56
|
onCwdTransitionConsumed?: () => void | Promise<void>;
|
|
56
57
|
appPromptStore?: AppPromptStore;
|
|
@@ -113,6 +114,11 @@ export declare class QueryEngine {
|
|
|
113
114
|
private pendingRequestContext?;
|
|
114
115
|
private pendingRequestContextConsumed?;
|
|
115
116
|
constructor(options: QueryEngineOptions);
|
|
117
|
+
getWorkspacePaths(): string[];
|
|
118
|
+
setWorkspacePaths(paths: readonly string[]): void;
|
|
119
|
+
private applyWorkspacePaths;
|
|
120
|
+
updateWorkspacePaths(paths: readonly string[], persist: (paths: string[]) => Promise<void>): Promise<void>;
|
|
121
|
+
private buildWorkspaceContext;
|
|
116
122
|
forkForSession(sessionId?: string, resume?: boolean): QueryEngine;
|
|
117
123
|
onSessionTitleChange(listener: (snapshot: SessionStoreSnapshot | undefined) => void): () => void;
|
|
118
124
|
noteRecoverableSubagents(onConsumed?: () => void): void;
|
|
@@ -133,7 +139,9 @@ export declare class QueryEngine {
|
|
|
133
139
|
}): AsyncGenerator<AgentEvent>;
|
|
134
140
|
private runQuery;
|
|
135
141
|
/** Queue instance-local settings; no prompt messages or provider-global mutation. */
|
|
136
|
-
updateSessionSettings(patch: SessionSettingsPatch
|
|
142
|
+
updateSessionSettings(patch: SessionSettingsPatch, options?: {
|
|
143
|
+
abortSignal?: AbortSignal;
|
|
144
|
+
}): Promise<{
|
|
137
145
|
deferred: boolean;
|
|
138
146
|
compaction?: CompactionResult;
|
|
139
147
|
}>;
|
|
@@ -186,6 +194,9 @@ export declare class QueryEngine {
|
|
|
186
194
|
/** Read-only live snapshots from the core monotonic clock, independent of subscribers. */
|
|
187
195
|
getTimingRecords(): TimingRecord[];
|
|
188
196
|
getDisplayEntries(): SessionDisplayEntry[];
|
|
197
|
+
private clearPendingCompaction;
|
|
198
|
+
/** Keep the durable history untouched until the entire result can be committed. */
|
|
199
|
+
private cancellableCompactor;
|
|
189
200
|
private applyCompactionResult;
|
|
190
201
|
contextMetrics(): Promise<ContextMetrics>;
|
|
191
202
|
promptExportSnapshot(): Promise<SessionPromptExportSnapshot>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
1
2
|
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { performance } from "node:perf_hooks";
|
|
3
4
|
import { executionRecoveryHint, isResumableExecution } from "./execution-state.js";
|
|
@@ -10,6 +11,7 @@ import { ToolRegistry } from "../tools/registry.js";
|
|
|
10
11
|
import { createSystemInitMessage, createTextMessage } from "../types/messages.js";
|
|
11
12
|
import { buildContextMetrics } from "./context-metrics.js";
|
|
12
13
|
import { applyRuntimeContextForPromptCache } from "./message-pipeline.js";
|
|
14
|
+
import { abortableWork } from "./abortable-stream.js";
|
|
13
15
|
import { SessionImageStore } from "./session-images.js";
|
|
14
16
|
import { query } from "./query.js";
|
|
15
17
|
import { runAgent } from "./run-agent.js";
|
|
@@ -65,7 +67,7 @@ export class QueryEngine {
|
|
|
65
67
|
}
|
|
66
68
|
setExecutionState(state) {
|
|
67
69
|
const elapsedMs = state.elapsedMs ?? this.getExecutionState()?.elapsedMs ?? 0;
|
|
68
|
-
this.executionState = { ...state, elapsedMs };
|
|
70
|
+
this.executionState = { ...state, elapsedMs, ...(this.executionState?.resumeCompaction ? { resumeCompaction: true } : {}) };
|
|
69
71
|
this.executionStartedAt = state.status === "running" ? this.executionNow() : undefined;
|
|
70
72
|
this.sessionStore?.recordExecutionState(this.executionState);
|
|
71
73
|
}
|
|
@@ -113,10 +115,66 @@ export class QueryEngine {
|
|
|
113
115
|
this.contextManager = { build: async (input) => {
|
|
114
116
|
// Capture before any asynchronous baseline work: an in-flight request never observes a later edit.
|
|
115
117
|
const content = this.activeSessionPrompt;
|
|
116
|
-
return applySessionPrompt(await this.
|
|
118
|
+
return applySessionPrompt(await this.buildWorkspaceContext(input), content);
|
|
117
119
|
} };
|
|
118
120
|
this.pendingCwdTransitionPaths = normalizeCwdTransitionPaths(options.cwdTransitionPaths);
|
|
119
121
|
}
|
|
122
|
+
getWorkspacePaths() {
|
|
123
|
+
return [...(this.options.workspacePaths ?? [this.options.cwd ?? process.cwd()])];
|
|
124
|
+
}
|
|
125
|
+
setWorkspacePaths(paths) {
|
|
126
|
+
if (this.running)
|
|
127
|
+
throw new Error("Cannot change workspace scope during a model response");
|
|
128
|
+
this.applyWorkspacePaths(paths);
|
|
129
|
+
}
|
|
130
|
+
applyWorkspacePaths(paths) {
|
|
131
|
+
const seen = new Set();
|
|
132
|
+
this.options.workspacePaths = paths.map(item => resolve(item)).filter(item => {
|
|
133
|
+
const key = process.platform === 'win32' ? item.toLowerCase() : item;
|
|
134
|
+
if (seen.has(key))
|
|
135
|
+
return false;
|
|
136
|
+
seen.add(key);
|
|
137
|
+
return true;
|
|
138
|
+
});
|
|
139
|
+
if (this.options.workspacePaths.length)
|
|
140
|
+
this.options.cwd = this.options.workspacePaths[0];
|
|
141
|
+
}
|
|
142
|
+
async updateWorkspacePaths(paths, persist) {
|
|
143
|
+
if (this.running)
|
|
144
|
+
throw new Error("Cannot change workspace scope during a model response");
|
|
145
|
+
const operation = this.settingsMutation.then(async () => {
|
|
146
|
+
const previous = this.options.workspacePaths;
|
|
147
|
+
const cwd = this.options.cwd;
|
|
148
|
+
// A query accepted after this mutation waits on the same settings barrier.
|
|
149
|
+
this.applyWorkspacePaths(paths);
|
|
150
|
+
try {
|
|
151
|
+
await persist(this.getWorkspacePaths());
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
this.options.workspacePaths = previous;
|
|
155
|
+
this.options.cwd = cwd;
|
|
156
|
+
throw error;
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
this.settingsMutation = operation.catch(() => undefined);
|
|
160
|
+
await operation;
|
|
161
|
+
}
|
|
162
|
+
async buildWorkspaceContext(input) {
|
|
163
|
+
const paths = this.options.workspacePaths ? this.getWorkspacePaths() : undefined;
|
|
164
|
+
const context = await this.baselineContextManager.build({ ...input, cwd: this.options.cwd, omitProjectMemory: paths ? true : input.omitProjectMemory });
|
|
165
|
+
if (!paths)
|
|
166
|
+
return context;
|
|
167
|
+
const documents = input.omitProjectMemory ? [] : paths.flatMap(cwd => readProjectMemoryDocuments(cwd));
|
|
168
|
+
const { projectMemory, memoryFiles, ...userContext } = context.userContext;
|
|
169
|
+
return {
|
|
170
|
+
...context, userContext,
|
|
171
|
+
systemContext: {
|
|
172
|
+
...context.systemContext,
|
|
173
|
+
"Workspace scope changed": paths,
|
|
174
|
+
...(documents.length ? { workspaceMemory: documents.map(doc => ({ path: doc.path, content: doc.content })) } : {}),
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
}
|
|
120
178
|
forkForSession(sessionId, resume = true) {
|
|
121
179
|
return new QueryEngine({
|
|
122
180
|
...this.options,
|
|
@@ -265,6 +323,7 @@ export class QueryEngine {
|
|
|
265
323
|
message: initMessage,
|
|
266
324
|
};
|
|
267
325
|
this.sessionStore?.recordMessage(initMessage);
|
|
326
|
+
const compactor = this.cancellableCompactor(options.abortSignal);
|
|
268
327
|
const queryOptions = {
|
|
269
328
|
agentId: this.agentId,
|
|
270
329
|
model: this.currentModel,
|
|
@@ -295,14 +354,14 @@ export class QueryEngine {
|
|
|
295
354
|
beforeTurn: (messages, started) => {
|
|
296
355
|
if (!this.simulation)
|
|
297
356
|
this.options.refreshTools?.(this);
|
|
298
|
-
return this.consumeSessionSettings(messages, started);
|
|
357
|
+
return this.consumeSessionSettings(messages, started, compactor);
|
|
299
358
|
},
|
|
300
359
|
};
|
|
301
360
|
const stream = query(this.history, {
|
|
302
361
|
...this.options,
|
|
303
362
|
acquireTurnResources: this.simulation ? undefined : this.options.acquireTurnResources ? () => this.options.acquireTurnResources(this) : undefined,
|
|
304
363
|
tools: this.simulation?.tools ?? this.options.tools,
|
|
305
|
-
compactor
|
|
364
|
+
compactor,
|
|
306
365
|
onTimingState: timing => { this.queryTiming = timing; },
|
|
307
366
|
onTiming: record => {
|
|
308
367
|
this.timingRecords.set(record.id, { ...record });
|
|
@@ -318,7 +377,7 @@ export class QueryEngine {
|
|
|
318
377
|
// query owns synthetic tool-use messages; persist them only via the message event below.
|
|
319
378
|
// The export callback is an observer, not a second history writer.
|
|
320
379
|
exportToolCalls: this.options.exportToolCalls,
|
|
321
|
-
applyCompaction: (result) => this.applyCompactionResult(result),
|
|
380
|
+
applyCompaction: (result) => { options.abortSignal?.throwIfAborted(); this.applyCompactionResult(result); },
|
|
322
381
|
}, queryOptions);
|
|
323
382
|
for await (const event of stream) {
|
|
324
383
|
if (event.type === "message") {
|
|
@@ -360,7 +419,7 @@ export class QueryEngine {
|
|
|
360
419
|
}
|
|
361
420
|
}
|
|
362
421
|
/** Queue instance-local settings; no prompt messages or provider-global mutation. */
|
|
363
|
-
async updateSessionSettings(patch) {
|
|
422
|
+
async updateSessionSettings(patch, options = {}) {
|
|
364
423
|
const normalized = {};
|
|
365
424
|
if (Object.hasOwn(patch, "model"))
|
|
366
425
|
normalized.model = patch.model?.trim() || undefined;
|
|
@@ -384,10 +443,24 @@ export class QueryEngine {
|
|
|
384
443
|
await this.initialize();
|
|
385
444
|
if (normalized.compact)
|
|
386
445
|
delete this.pendingSessionSettings.compact;
|
|
387
|
-
const
|
|
388
|
-
if (
|
|
389
|
-
this.
|
|
390
|
-
|
|
446
|
+
const previousExecution = this.getExecutionState();
|
|
447
|
+
if (normalized.compact)
|
|
448
|
+
this.setExecutionState({ status: "running", resumeCompaction: true });
|
|
449
|
+
try {
|
|
450
|
+
const update = await this.applySessionSettings(normalized, this.getHistoryMessages(), undefined, this.cancellableCompactor(options.abortSignal));
|
|
451
|
+
options.abortSignal?.throwIfAborted();
|
|
452
|
+
if (update?.compaction)
|
|
453
|
+
this.applyCompactionResult(update.compaction);
|
|
454
|
+
if (normalized.compact)
|
|
455
|
+
this.setExecutionState({ status: previousExecution?.status ?? "completed", reason: previousExecution?.reason });
|
|
456
|
+
return { deferred: false, ...(update?.compaction ? { compaction: update.compaction } : {}) };
|
|
457
|
+
}
|
|
458
|
+
catch (error) {
|
|
459
|
+
if (normalized.compact)
|
|
460
|
+
this.setExecutionState(options.abortSignal?.aborted
|
|
461
|
+
? { status: "paused", reason: "user_pause" } : { status: "interrupted", reason: "compaction_failed" });
|
|
462
|
+
throw error;
|
|
463
|
+
}
|
|
391
464
|
});
|
|
392
465
|
// A rejected mutation must not poison subsequent settings or user input.
|
|
393
466
|
this.settingsMutation = mutation.catch(() => undefined);
|
|
@@ -439,14 +512,14 @@ export class QueryEngine {
|
|
|
439
512
|
patch.sessionPrompt = { ...patch.sessionPrompt };
|
|
440
513
|
return patch;
|
|
441
514
|
}
|
|
442
|
-
async consumeSessionSettings(messages, started) {
|
|
443
|
-
const patch = this.pendingSessionSettings;
|
|
515
|
+
async consumeSessionSettings(messages, started, compactor) {
|
|
516
|
+
const patch = { ...this.pendingSessionSettings, ...(this.executionState?.resumeCompaction ? { compact: true } : {}) };
|
|
444
517
|
if (!Object.keys(patch).length)
|
|
445
518
|
return undefined;
|
|
446
519
|
this.pendingSessionSettings = {};
|
|
447
|
-
return this.applySessionSettings(patch, messages, started);
|
|
520
|
+
return this.applySessionSettings(patch, messages, started, compactor);
|
|
448
521
|
}
|
|
449
|
-
async applySessionSettings(patch, messages, started) {
|
|
522
|
+
async applySessionSettings(patch, messages, started, activeCompactor) {
|
|
450
523
|
const changed = {};
|
|
451
524
|
if (Object.hasOwn(patch, "sessionPrompt"))
|
|
452
525
|
this.activeSessionPrompt = patch.sessionPrompt ?? null;
|
|
@@ -470,9 +543,8 @@ export class QueryEngine {
|
|
|
470
543
|
}
|
|
471
544
|
let compaction;
|
|
472
545
|
if (patch.compact) {
|
|
473
|
-
|
|
474
|
-
const
|
|
475
|
-
const budget = { ...this.options.contextBudget, imageRegistry: this.imageStore?.snapshot(), contextWindowTokens: this.currentContextWindowTokens ?? this.options.contextBudget?.contextWindowTokens };
|
|
546
|
+
const compactor = activeCompactor ?? this.cancellableCompactor();
|
|
547
|
+
const budget = { ...this.options.contextBudget, onCompactionStart: started, imageRegistry: this.imageStore?.snapshot(), contextWindowTokens: this.currentContextWindowTokens ?? this.options.contextBudget?.contextWindowTokens };
|
|
476
548
|
compaction = withCompactionReport(await (compactor.manualCompact?.(messages, budget) ?? compactor.compact(messages, budget)), messages.length);
|
|
477
549
|
}
|
|
478
550
|
return Object.keys(changed).length || compaction ? { settings: changed, compaction } : undefined;
|
|
@@ -560,7 +632,7 @@ export class QueryEngine {
|
|
|
560
632
|
async compact(options = {}) {
|
|
561
633
|
if (options.abortSignal?.aborted)
|
|
562
634
|
return { messages: this.getHistoryMessages(), changed: false, reason: "none" };
|
|
563
|
-
const result = await this.updateSessionSettings({ compact: true });
|
|
635
|
+
const result = await this.updateSessionSettings({ compact: true }, options);
|
|
564
636
|
return result.compaction ?? { messages: this.getHistoryMessages(), changed: false, reason: "none" };
|
|
565
637
|
}
|
|
566
638
|
async pureCompact(options = {}) {
|
|
@@ -608,10 +680,42 @@ export class QueryEngine {
|
|
|
608
680
|
getDisplayEntries() {
|
|
609
681
|
return this.sessionStore?.getDisplayEntries() ?? [...this.history, ...this.displayOnlyMessages].map((message) => ({ type: "message", message: cloneMessage(message) }));
|
|
610
682
|
}
|
|
683
|
+
clearPendingCompaction() {
|
|
684
|
+
if (!this.executionState?.resumeCompaction)
|
|
685
|
+
return;
|
|
686
|
+
delete this.executionState.resumeCompaction;
|
|
687
|
+
this.setExecutionState(this.getExecutionState());
|
|
688
|
+
}
|
|
689
|
+
/** Keep the durable history untouched until the entire result can be committed. */
|
|
690
|
+
cancellableCompactor(signal) {
|
|
691
|
+
const source = this.simulation?.compactor ?? this.options.compactor ?? new ModelDrivenCompactor(this.currentModelGateway);
|
|
692
|
+
const run = (messages, budget = {}, kind = "compact", error) => {
|
|
693
|
+
const started = reason => {
|
|
694
|
+
signal?.throwIfAborted();
|
|
695
|
+
if (!this.executionState?.resumeCompaction) {
|
|
696
|
+
this.setExecutionState({ ...(this.getExecutionState() ?? { status: "running" }), resumeCompaction: true });
|
|
697
|
+
}
|
|
698
|
+
budget.onCompactionStart?.(reason);
|
|
699
|
+
};
|
|
700
|
+
return abortableWork(async () => {
|
|
701
|
+
if (kind !== "compact")
|
|
702
|
+
started(kind === "manualCompact" ? "manualcompact" : "reactive_compact");
|
|
703
|
+
const options = { ...budget, abortSignal: signal, onCompactionStart: started };
|
|
704
|
+
return kind === "reactiveCompact" && source.reactiveCompact ? source.reactiveCompact(messages, error, options)
|
|
705
|
+
: kind === "manualCompact" && source.manualCompact ? source.manualCompact(messages, options)
|
|
706
|
+
: source.compact(messages, options);
|
|
707
|
+
}, signal);
|
|
708
|
+
};
|
|
709
|
+
return { compact: (m, b) => run(m, b), manualCompact: (m, b) => run(m, b, "manualCompact"),
|
|
710
|
+
reactiveCompact: (m, e, b) => run(m, b, "reactiveCompact", e) };
|
|
711
|
+
}
|
|
611
712
|
applyCompactionResult(result) {
|
|
612
|
-
if (!result.changed)
|
|
713
|
+
if (!result.changed) {
|
|
714
|
+
this.clearPendingCompaction();
|
|
613
715
|
return;
|
|
716
|
+
}
|
|
614
717
|
this.sessionStore?.recordCompactCheckpoint(result.messages, result.reason, result.report);
|
|
718
|
+
this.clearPendingCompaction();
|
|
615
719
|
this.history.length = 0;
|
|
616
720
|
this.history.push(...result.messages.map(cloneMessage));
|
|
617
721
|
}
|
|
@@ -672,7 +776,7 @@ export class QueryEngine {
|
|
|
672
776
|
};
|
|
673
777
|
const initialToolDefinitions = (this.simulation?.tools ?? this.options.tools).definitions(toolContext);
|
|
674
778
|
const activePrompt = this.activeSessionPrompt;
|
|
675
|
-
const baseline = await this.
|
|
779
|
+
const baseline = await this.buildWorkspaceContext({
|
|
676
780
|
agentId: this.agentId,
|
|
677
781
|
messages,
|
|
678
782
|
enabledTools: initialToolDefinitions.map((tool) => tool.name),
|
|
@@ -705,7 +809,7 @@ export class QueryEngine {
|
|
|
705
809
|
userContext: context.userContext,
|
|
706
810
|
systemContext: context.systemContext,
|
|
707
811
|
userContextPrompt,
|
|
708
|
-
projectDocuments:
|
|
812
|
+
projectDocuments: this.getWorkspacePaths().flatMap(cwd => readProjectMemoryDocuments(cwd)),
|
|
709
813
|
toolDefinitions,
|
|
710
814
|
commands: [...(this.options.commands ?? [])],
|
|
711
815
|
agents: [...(this.options.agents ?? [])],
|