@downcity/agent 1.1.335 → 1.1.337
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/bin/executor/core-engine/CoreEngineContextCompaction.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineContextCompaction.js +14 -64
- package/bin/executor/core-engine/CoreEngineContextCompaction.js.map +1 -1
- package/bin/executor/messages/SessionMessageCodec.js +1 -62
- package/bin/executor/messages/SessionMessageCodec.js.map +1 -1
- package/package.json +6 -6
- package/scripts/core-engine-context-compaction.test.mjs +4 -4
- package/scripts/session-messages.test.mjs +0 -38
- package/src/executor/core-engine/CoreEngineContextCompaction.ts +19 -75
- package/src/executor/messages/SessionMessageCodec.ts +1 -68
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreEngineContextCompaction.d.ts","sourceRoot":"","sources":["../../../src/executor/core-engine/CoreEngineContextCompaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,IAAI,CAAC;AAEtD,yCAAyC;AACzC,eAAO,MAAM,sCAAsC,OAAO,CAAC;AAE3D,wCAAwC;AACxC,eAAO,MAAM,qCAAqC,MAAM,CAAC;AAWzD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAUxE;AAED,gCAAgC;AAChC,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,GAAG,IAAI,CAOf;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,qBAAqB,EAAE,OAAO,GAC7B,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,YAAY,EAAE,EACxB,aAAa,SAAI,GAChB,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"CoreEngineContextCompaction.d.ts","sourceRoot":"","sources":["../../../src/executor/core-engine/CoreEngineContextCompaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,IAAI,CAAC;AAEtD,yCAAyC;AACzC,eAAO,MAAM,sCAAsC,OAAO,CAAC;AAE3D,wCAAwC;AACxC,eAAO,MAAM,qCAAqC,MAAM,CAAC;AAWzD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAUxE;AAED,gCAAgC;AAChC,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,GAAG,IAAI,CAOf;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,qBAAqB,EAAE,OAAO,GAC7B,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,YAAY,EAAE,EACxB,aAAa,SAAI,GAChB,YAAY,EAAE,CA4EhB;AAED,6BAA6B;AAC7B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAS3E"}
|
|
@@ -70,9 +70,8 @@ export function deep_compact_model_messages(messages, compact_depth = 0) {
|
|
|
70
70
|
const depth = Math.max(0, Math.min(8, Math.floor(compact_depth)));
|
|
71
71
|
const pruned_messages = pruneMessages({
|
|
72
72
|
messages,
|
|
73
|
-
//
|
|
74
|
-
|
|
75
|
-
reasoning: "none",
|
|
73
|
+
// 压缩后只保留语义内容;Provider replay 状态由 Federation 在最终路由后按作用域决定。
|
|
74
|
+
reasoning: "all",
|
|
76
75
|
// 工具事务由本模块按 toolCallId/approvalId 选择;先让 SDK 保留完整关联,
|
|
77
76
|
// 避免 approval response 作为最后一条消息时 SDK 丢掉更早的 tool-call。
|
|
78
77
|
toolCalls: "none",
|
|
@@ -268,9 +267,7 @@ function compact_retained_message(message, message_limit, selected_tool_call_ids
|
|
|
268
267
|
content: fold_compacted_text(message.content, message_limit),
|
|
269
268
|
};
|
|
270
269
|
}
|
|
271
|
-
const
|
|
272
|
-
if (part.type === "reasoning")
|
|
273
|
-
return false;
|
|
270
|
+
const relevant_parts = message.content.filter((part) => {
|
|
274
271
|
if (part.type === "tool-call" || part.type === "tool-result") {
|
|
275
272
|
return selected_tool_call_ids.has(part.toolCallId);
|
|
276
273
|
}
|
|
@@ -281,46 +278,35 @@ function compact_retained_message(message, message_limit, selected_tool_call_ids
|
|
|
281
278
|
const tool_call_id = approval_to_tool_call.get(part.approvalId);
|
|
282
279
|
return Boolean(tool_call_id && selected_tool_call_ids.has(tool_call_id));
|
|
283
280
|
}
|
|
284
|
-
return
|
|
281
|
+
return part.type !== "reasoning";
|
|
285
282
|
});
|
|
286
|
-
const requires_provider_reasoning = retained_non_reasoning_parts.some((part) => (part.type === "tool-call" || part.type === "tool-result") &&
|
|
287
|
-
has_openai_item_reference(part));
|
|
288
|
-
const relevant_parts = message.content.filter((part) => part.type !== "reasoning" ||
|
|
289
|
-
(requires_provider_reasoning &&
|
|
290
|
-
has_openai_reasoning_replay_data(part)));
|
|
291
283
|
const part_limit = Math.max(MIN_FOLDED_PART_CHARS, Math.floor(message_limit / Math.max(1, relevant_parts.length)));
|
|
292
284
|
const content = relevant_parts
|
|
293
|
-
.filter((part) => part.type === "reasoning" || retained_non_reasoning_parts.includes(part))
|
|
294
285
|
.map((part) => compact_model_part(part, part_limit));
|
|
295
286
|
if (content.length === 0)
|
|
296
287
|
return null;
|
|
297
288
|
return { ...message, content };
|
|
298
289
|
}
|
|
299
290
|
function compact_model_part(part, part_limit) {
|
|
291
|
+
const semantic_part = strip_provider_replay_state(part);
|
|
300
292
|
if (part.type === "text") {
|
|
301
293
|
return {
|
|
302
|
-
...
|
|
294
|
+
...semantic_part,
|
|
303
295
|
text: fold_compacted_text(String(part.text || ""), part_limit),
|
|
304
|
-
...without_openai_item_reference(part),
|
|
305
296
|
};
|
|
306
297
|
}
|
|
307
|
-
if (part.type === "reasoning") {
|
|
308
|
-
// 压缩不保留可见思维文本,但必须保留与最新 Tool 事务关联的
|
|
309
|
-
// Responses API itemId / encrypted content,否则 Provider 会拒绝孤立的 Tool item。
|
|
310
|
-
return { ...part, text: "" };
|
|
311
|
-
}
|
|
312
298
|
if (part.type === "tool-call") {
|
|
313
299
|
return {
|
|
314
|
-
...
|
|
300
|
+
...semantic_part,
|
|
315
301
|
input: fold_compacted_value(part.input, part_limit),
|
|
316
302
|
};
|
|
317
303
|
}
|
|
318
304
|
if (part.type === "tool-result") {
|
|
319
305
|
const serialized_output = safe_stringify(part.output);
|
|
320
306
|
if (serialized_output.length <= part_limit)
|
|
321
|
-
return
|
|
307
|
+
return semantic_part;
|
|
322
308
|
return {
|
|
323
|
-
...
|
|
309
|
+
...semantic_part,
|
|
324
310
|
output: {
|
|
325
311
|
type: "text",
|
|
326
312
|
value: fold_compacted_text(serialized_output, part_limit),
|
|
@@ -345,48 +331,12 @@ function compact_model_part(part, part_limit) {
|
|
|
345
331
|
};
|
|
346
332
|
}
|
|
347
333
|
}
|
|
348
|
-
return
|
|
349
|
-
}
|
|
350
|
-
/** 判断 Part 是否引用 OpenAI Responses API 中已存储的 item。 */
|
|
351
|
-
function has_openai_item_reference(part) {
|
|
352
|
-
const provider_options = read_record(part.providerOptions);
|
|
353
|
-
const openai_options = read_record(provider_options?.openai);
|
|
354
|
-
return typeof openai_options?.itemId === "string" && openai_options.itemId.length > 0;
|
|
334
|
+
return semantic_part;
|
|
355
335
|
}
|
|
356
|
-
/**
|
|
357
|
-
function
|
|
358
|
-
const
|
|
359
|
-
|
|
360
|
-
return ((typeof openai_options?.itemId === "string" && openai_options.itemId.length > 0) ||
|
|
361
|
-
(typeof openai_options?.reasoningEncryptedContent === "string" &&
|
|
362
|
-
openai_options.reasoningEncryptedContent.length > 0));
|
|
363
|
-
}
|
|
364
|
-
/**
|
|
365
|
-
* 压缩后的 Text 已经是新的语义投影,不能继续引用 Provider 中的原始 msg_* item。
|
|
366
|
-
*/
|
|
367
|
-
function without_openai_item_reference(part) {
|
|
368
|
-
const provider_options = read_record(part.providerOptions);
|
|
369
|
-
const openai_options = read_record(provider_options?.openai);
|
|
370
|
-
if (!provider_options || !openai_options || !("itemId" in openai_options)) {
|
|
371
|
-
return {};
|
|
372
|
-
}
|
|
373
|
-
const { itemId: _item_id, ...remaining_openai_options } = openai_options;
|
|
374
|
-
const next_provider_options = { ...provider_options };
|
|
375
|
-
if (Object.keys(remaining_openai_options).length > 0) {
|
|
376
|
-
next_provider_options.openai = remaining_openai_options;
|
|
377
|
-
}
|
|
378
|
-
else {
|
|
379
|
-
delete next_provider_options.openai;
|
|
380
|
-
}
|
|
381
|
-
return Object.keys(next_provider_options).length > 0
|
|
382
|
-
? { providerOptions: next_provider_options }
|
|
383
|
-
: { providerOptions: undefined };
|
|
384
|
-
}
|
|
385
|
-
/** 安全读取普通 JSON object。 */
|
|
386
|
-
function read_record(value) {
|
|
387
|
-
return value && typeof value === "object" && !Array.isArray(value)
|
|
388
|
-
? value
|
|
389
|
-
: undefined;
|
|
336
|
+
/** 压缩后的模型 Part 只作为语义历史传递,不继续携带任何 Provider replay state。 */
|
|
337
|
+
function strip_provider_replay_state(part) {
|
|
338
|
+
const { providerOptions: _provider_options, providerMetadata: _provider_metadata, ...semantic_part } = part;
|
|
339
|
+
return semantic_part;
|
|
390
340
|
}
|
|
391
341
|
function fold_compacted_value(value, max_chars) {
|
|
392
342
|
const serialized = safe_stringify(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreEngineContextCompaction.js","sourceRoot":"","sources":["../../../src/executor/core-engine/CoreEngineContextCompaction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CoreEngineContextCompaction.js","sourceRoot":"","sources":["../../../src/executor/core-engine/CoreEngineContextCompaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,67 +70,6 @@ export async function to_model_messages(messages, tools, project_root) {
|
|
|
70
70
|
// 忽略历史里的不完整工具调用,提升容错性。
|
|
71
71
|
ignoreIncompleteToolCalls: true,
|
|
72
72
|
});
|
|
73
|
-
return
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* 修复旧版 Session 中“只保存 msg_*、未保存必需 rs_*”的孤立 Responses API 引用。
|
|
77
|
-
*
|
|
78
|
-
* 关键点(中文)
|
|
79
|
-
* - reasoning itemId / encrypted content 与 message itemId 存在时,保留 Provider 原子重放。
|
|
80
|
-
* - 只有 message itemId 时,删除该引用并发送已持久化的普通文本,避免 400。
|
|
81
|
-
* - 不修改 Session canonical source,该修复是可重建的 Provider 投影。
|
|
82
|
-
*/
|
|
83
|
-
function repair_orphaned_openai_text_references(messages) {
|
|
84
|
-
return messages.map((message) => {
|
|
85
|
-
if (message.role !== "assistant" || !Array.isArray(message.content)) {
|
|
86
|
-
return message;
|
|
87
|
-
}
|
|
88
|
-
const has_reasoning_replay_data = message.content.some((part) => {
|
|
89
|
-
if (part.type !== "reasoning")
|
|
90
|
-
return false;
|
|
91
|
-
const openai_options = read_openai_provider_options(part.providerOptions);
|
|
92
|
-
return Boolean((typeof openai_options?.itemId === "string" && openai_options.itemId) ||
|
|
93
|
-
(typeof openai_options?.reasoningEncryptedContent === "string" &&
|
|
94
|
-
openai_options.reasoningEncryptedContent));
|
|
95
|
-
});
|
|
96
|
-
if (has_reasoning_replay_data)
|
|
97
|
-
return message;
|
|
98
|
-
let changed = false;
|
|
99
|
-
const content = message.content.map((part) => {
|
|
100
|
-
if (part.type !== "text")
|
|
101
|
-
return part;
|
|
102
|
-
const provider_options = read_json_record(part.providerOptions);
|
|
103
|
-
const openai_options = read_openai_provider_options(part.providerOptions);
|
|
104
|
-
if (!provider_options || !openai_options || !("itemId" in openai_options)) {
|
|
105
|
-
return part;
|
|
106
|
-
}
|
|
107
|
-
changed = true;
|
|
108
|
-
const { itemId: _item_id, ...remaining_openai_options } = openai_options;
|
|
109
|
-
const next_provider_options = { ...provider_options };
|
|
110
|
-
if (Object.keys(remaining_openai_options).length > 0) {
|
|
111
|
-
next_provider_options.openai = remaining_openai_options;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
delete next_provider_options.openai;
|
|
115
|
-
}
|
|
116
|
-
return {
|
|
117
|
-
...part,
|
|
118
|
-
providerOptions: Object.keys(next_provider_options).length > 0
|
|
119
|
-
? next_provider_options
|
|
120
|
-
: undefined,
|
|
121
|
-
};
|
|
122
|
-
});
|
|
123
|
-
return changed ? { ...message, content } : message;
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
/** 读取 Provider options 中的 OpenAI 协议字段。 */
|
|
127
|
-
function read_openai_provider_options(value) {
|
|
128
|
-
return read_json_record(read_json_record(value)?.openai);
|
|
129
|
-
}
|
|
130
|
-
/** 安全读取普通 JSON object。 */
|
|
131
|
-
function read_json_record(value) {
|
|
132
|
-
return value && typeof value === "object" && !Array.isArray(value)
|
|
133
|
-
? value
|
|
134
|
-
: undefined;
|
|
73
|
+
return converted_messages;
|
|
135
74
|
}
|
|
136
75
|
//# sourceMappingURL=SessionMessageCodec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionMessageCodec.js","sourceRoot":"","sources":["../../../src/executor/messages/SessionMessageCodec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,GAIvB,MAAM,IAAI,CAAC;AACZ,OAAO,EACL,yBAAyB,GAE1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,+CAA+C,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAA2B;IAE3B,iCAAiC;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,UAAU;IACV,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QACjC,gBAAgB;QAChB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAEtD,oBAAoB;QACpB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1C,oBAAoB;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEhD,2CAA2C;QAC3C,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAClE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAA2B,EAC3B,KAA2B,EAC3B,YAAqB;IAErB,wBAAwB;IACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjE,iCAAiC;IACjC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAClE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,MAAM,kCAAkC,CAC/D,cAAc,EACd,YAAY,CACb,CAAC;IAEF,uDAAuD;IACvD,MAAM,gBAAgB,GAAG,MAAM,gCAAgC,CAC7D,gBAAgB,EAChB,YAAY,CACb,CAAC;IAEF,0CAA0C;IAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7C,WAAW;QACX,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAErC,UAAU;QACV,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,kBAAkB,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE;QAC7D,uBAAuB;QACvB,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,uBAAuB;QACvB,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;IACH,OAAO,
|
|
1
|
+
{"version":3,"file":"SessionMessageCodec.js","sourceRoot":"","sources":["../../../src/executor/messages/SessionMessageCodec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,GAIvB,MAAM,IAAI,CAAC;AACZ,OAAO,EACL,yBAAyB,GAE1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,+CAA+C,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAA2B;IAE3B,iCAAiC;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,UAAU;IACV,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QACjC,gBAAgB;QAChB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAEtD,oBAAoB;QACpB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1C,oBAAoB;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEhD,2CAA2C;QAC3C,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAClE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAA2B,EAC3B,KAA2B,EAC3B,YAAqB;IAErB,wBAAwB;IACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjE,iCAAiC;IACjC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAClE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,MAAM,kCAAkC,CAC/D,cAAc,EACd,YAAY,CACb,CAAC;IAEF,uDAAuD;IACvD,MAAM,gBAAgB,GAAG,MAAM,gCAAgC,CAC7D,gBAAgB,EAChB,YAAY,CACb,CAAC;IAEF,0CAA0C;IAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7C,WAAW;QACX,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAErC,UAAU;QACV,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,kBAAkB,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE;QAC7D,uBAAuB;QACvB,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,uBAAuB;QACvB,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@downcity/agent",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.337",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Downcity Agent 运行时 — 单 Agent 执行壳与本机 RPC 能力",
|
|
6
6
|
"main": "./bin/index.js",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@downcity/shell": "^0.1.
|
|
20
|
-
"@downcity/type": "0.1.
|
|
19
|
+
"@downcity/shell": "^0.1.172",
|
|
20
|
+
"@downcity/type": "0.1.197",
|
|
21
21
|
"ai": "^6.0.193",
|
|
22
22
|
"commander": "^15.0.0",
|
|
23
23
|
"dotenv": "^17.4.2",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"zod": "^4.4.3"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@downcity/sandbox-linux": "^0.1.
|
|
36
|
-
"@downcity/sandbox-macos": "^0.1.
|
|
37
|
-
"@downcity/sandbox-windows-mxc": "^0.1.
|
|
35
|
+
"@downcity/sandbox-linux": "^0.1.35",
|
|
36
|
+
"@downcity/sandbox-macos": "^0.1.35",
|
|
37
|
+
"@downcity/sandbox-windows-mxc": "^0.1.35",
|
|
38
38
|
"@ai-sdk/openai": "^3.0.67",
|
|
39
39
|
"@types/fs-extra": "^11.0.4",
|
|
40
40
|
"@types/js-yaml": "^4.0.9",
|
|
@@ -335,9 +335,9 @@ test("deep compact 删除 reasoning,并完整保留最新并行 tool transacti
|
|
|
335
335
|
const serialized = JSON.stringify(compacted);
|
|
336
336
|
assert.equal(serialized.includes("old reasoning"), false);
|
|
337
337
|
assert.equal(serialized.includes("latest reasoning"), false);
|
|
338
|
-
assert.equal(serialized.includes('"itemId":"rs_latest"'),
|
|
338
|
+
assert.equal(serialized.includes('"itemId":"rs_latest"'), false);
|
|
339
339
|
assert.equal(serialized.includes('"itemId":"msg_latest"'), false);
|
|
340
|
-
assert.equal(serialized.includes('"phase":"final_answer"'),
|
|
340
|
+
assert.equal(serialized.includes('"phase":"final_answer"'), false);
|
|
341
341
|
assert.equal(serialized.includes("latest request"), true);
|
|
342
342
|
assert.equal(serialized.includes("call-a"), true);
|
|
343
343
|
assert.equal(serialized.includes("call-b"), true);
|
|
@@ -359,8 +359,8 @@ test("deep compact 删除 reasoning,并完整保留最新并行 tool transacti
|
|
|
359
359
|
assert.equal(active_tool_text.join("\n").includes("old-call"), false);
|
|
360
360
|
assert.deepEqual([...tool_call_ids].sort(), ["call-a", "call-b"]);
|
|
361
361
|
assert.deepEqual([...tool_result_ids].sort(), ["call-a", "call-b"]);
|
|
362
|
-
assert.equal(serialized.includes('"itemId":"fc_a"'),
|
|
363
|
-
assert.equal(serialized.includes('"resultId":"result_a"'),
|
|
362
|
+
assert.equal(serialized.includes('"itemId":"fc_a"'), false);
|
|
363
|
+
assert.equal(serialized.includes('"resultId":"result_a"'), false);
|
|
364
364
|
});
|
|
365
365
|
|
|
366
366
|
test("单条 assistant 含大量 parts 时也会在消息内部折叠", () => {
|
|
@@ -20,7 +20,6 @@ import {
|
|
|
20
20
|
to_executor_history,
|
|
21
21
|
to_executor_ui_message,
|
|
22
22
|
} from "../bin/session/messages/SessionMessageCodec.js";
|
|
23
|
-
import { to_model_messages } from "../bin/executor/messages/SessionMessageCodec.js";
|
|
24
23
|
import { convertToModelMessages } from "ai";
|
|
25
24
|
import { MockLanguageModelV3 } from "ai/test";
|
|
26
25
|
|
|
@@ -1258,43 +1257,6 @@ test("空 Reasoning 携带 Provider metadata 时作为跨轮重放协议 Part
|
|
|
1258
1257
|
assert.deepEqual(assistant.parts[0].provider_metadata, reasoning_metadata);
|
|
1259
1258
|
assert.deepEqual(assistant.parts[1].provider_metadata, message_metadata);
|
|
1260
1259
|
|
|
1261
|
-
const restored = to_executor_ui_message(assistant);
|
|
1262
|
-
const model_messages = await to_model_messages([restored], {});
|
|
1263
|
-
const model_parts = model_messages.flatMap((message) =>
|
|
1264
|
-
Array.isArray(message.content) ? message.content : []
|
|
1265
|
-
);
|
|
1266
|
-
assert.deepEqual(model_parts.map((part) => part.type), ["reasoning", "text"]);
|
|
1267
|
-
assert.deepEqual(model_parts[0].providerOptions, reasoning_metadata);
|
|
1268
|
-
assert.deepEqual(model_parts[1].providerOptions, message_metadata);
|
|
1269
|
-
});
|
|
1270
|
-
|
|
1271
|
-
test("旧 Session 缺少 Reasoning 协议 Part 时移除孤立 msg_* 引用", async () => {
|
|
1272
|
-
const model_messages = await to_model_messages([{
|
|
1273
|
-
id: "assistant-legacy",
|
|
1274
|
-
role: "assistant",
|
|
1275
|
-
metadata: {
|
|
1276
|
-
v: 1,
|
|
1277
|
-
ts: 1,
|
|
1278
|
-
session_id: "legacy-session",
|
|
1279
|
-
source: "egress",
|
|
1280
|
-
kind: "normal",
|
|
1281
|
-
},
|
|
1282
|
-
parts: [{
|
|
1283
|
-
type: "text",
|
|
1284
|
-
text: "已持久化的回复",
|
|
1285
|
-
state: "done",
|
|
1286
|
-
providerMetadata: {
|
|
1287
|
-
openai: { itemId: "msg_orphaned", phase: "final_answer" },
|
|
1288
|
-
},
|
|
1289
|
-
}],
|
|
1290
|
-
}], {});
|
|
1291
|
-
const text_part = model_messages
|
|
1292
|
-
.flatMap((message) => Array.isArray(message.content) ? message.content : [])
|
|
1293
|
-
.find((part) => part.type === "text");
|
|
1294
|
-
assert.equal(text_part.text, "已持久化的回复");
|
|
1295
|
-
assert.deepEqual(text_part.providerOptions, {
|
|
1296
|
-
openai: { phase: "final_answer" },
|
|
1297
|
-
});
|
|
1298
1260
|
});
|
|
1299
1261
|
|
|
1300
1262
|
test("空 Text Start 不会抢占后续 Tool 的真实顺序", async () => {
|
|
@@ -84,9 +84,8 @@ export function deep_compact_model_messages(
|
|
|
84
84
|
const depth = Math.max(0, Math.min(8, Math.floor(compact_depth)));
|
|
85
85
|
const pruned_messages = pruneMessages({
|
|
86
86
|
messages,
|
|
87
|
-
//
|
|
88
|
-
|
|
89
|
-
reasoning: "none",
|
|
87
|
+
// 压缩后只保留语义内容;Provider replay 状态由 Federation 在最终路由后按作用域决定。
|
|
88
|
+
reasoning: "all",
|
|
90
89
|
// 工具事务由本模块按 toolCallId/approvalId 选择;先让 SDK 保留完整关联,
|
|
91
90
|
// 避免 approval response 作为最后一条消息时 SDK 丢掉更早的 tool-call。
|
|
92
91
|
toolCalls: "none",
|
|
@@ -345,8 +344,7 @@ function compact_retained_message(
|
|
|
345
344
|
content: fold_compacted_text(message.content, message_limit),
|
|
346
345
|
} as ModelMessage;
|
|
347
346
|
}
|
|
348
|
-
const
|
|
349
|
-
if (part.type === "reasoning") return false;
|
|
347
|
+
const relevant_parts = message.content.filter((part) => {
|
|
350
348
|
if (part.type === "tool-call" || part.type === "tool-result") {
|
|
351
349
|
return selected_tool_call_ids.has(part.toolCallId);
|
|
352
350
|
}
|
|
@@ -357,26 +355,13 @@ function compact_retained_message(
|
|
|
357
355
|
const tool_call_id = approval_to_tool_call.get(part.approvalId);
|
|
358
356
|
return Boolean(tool_call_id && selected_tool_call_ids.has(tool_call_id));
|
|
359
357
|
}
|
|
360
|
-
return
|
|
358
|
+
return part.type !== "reasoning";
|
|
361
359
|
});
|
|
362
|
-
const requires_provider_reasoning = retained_non_reasoning_parts.some(
|
|
363
|
-
(part) =>
|
|
364
|
-
(part.type === "tool-call" || part.type === "tool-result") &&
|
|
365
|
-
has_openai_item_reference(part as unknown as Record<string, unknown>),
|
|
366
|
-
);
|
|
367
|
-
const relevant_parts = message.content.filter((part) =>
|
|
368
|
-
part.type !== "reasoning" ||
|
|
369
|
-
(requires_provider_reasoning &&
|
|
370
|
-
has_openai_reasoning_replay_data(part as unknown as Record<string, unknown>))
|
|
371
|
-
);
|
|
372
360
|
const part_limit = Math.max(
|
|
373
361
|
MIN_FOLDED_PART_CHARS,
|
|
374
362
|
Math.floor(message_limit / Math.max(1, relevant_parts.length)),
|
|
375
363
|
);
|
|
376
364
|
const content = relevant_parts
|
|
377
|
-
.filter((part) =>
|
|
378
|
-
part.type === "reasoning" || retained_non_reasoning_parts.includes(part)
|
|
379
|
-
)
|
|
380
365
|
.map((part) =>
|
|
381
366
|
compact_model_part(
|
|
382
367
|
part as unknown as Record<string, unknown>,
|
|
@@ -391,29 +376,24 @@ function compact_model_part(
|
|
|
391
376
|
part: Record<string, unknown>,
|
|
392
377
|
part_limit: number,
|
|
393
378
|
): Record<string, unknown> {
|
|
379
|
+
const semantic_part = strip_provider_replay_state(part);
|
|
394
380
|
if (part.type === "text") {
|
|
395
381
|
return {
|
|
396
|
-
...
|
|
382
|
+
...semantic_part,
|
|
397
383
|
text: fold_compacted_text(String(part.text || ""), part_limit),
|
|
398
|
-
...without_openai_item_reference(part),
|
|
399
384
|
};
|
|
400
385
|
}
|
|
401
|
-
if (part.type === "reasoning") {
|
|
402
|
-
// 压缩不保留可见思维文本,但必须保留与最新 Tool 事务关联的
|
|
403
|
-
// Responses API itemId / encrypted content,否则 Provider 会拒绝孤立的 Tool item。
|
|
404
|
-
return { ...part, text: "" };
|
|
405
|
-
}
|
|
406
386
|
if (part.type === "tool-call") {
|
|
407
387
|
return {
|
|
408
|
-
...
|
|
388
|
+
...semantic_part,
|
|
409
389
|
input: fold_compacted_value(part.input, part_limit),
|
|
410
390
|
};
|
|
411
391
|
}
|
|
412
392
|
if (part.type === "tool-result") {
|
|
413
393
|
const serialized_output = safe_stringify(part.output);
|
|
414
|
-
if (serialized_output.length <= part_limit) return
|
|
394
|
+
if (serialized_output.length <= part_limit) return semantic_part;
|
|
415
395
|
return {
|
|
416
|
-
...
|
|
396
|
+
...semantic_part,
|
|
417
397
|
output: {
|
|
418
398
|
type: "text",
|
|
419
399
|
value: fold_compacted_text(serialized_output, part_limit),
|
|
@@ -438,55 +418,19 @@ function compact_model_part(
|
|
|
438
418
|
};
|
|
439
419
|
}
|
|
440
420
|
}
|
|
441
|
-
return
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
/** 判断 Part 是否引用 OpenAI Responses API 中已存储的 item。 */
|
|
445
|
-
function has_openai_item_reference(part: Record<string, unknown>): boolean {
|
|
446
|
-
const provider_options = read_record(part.providerOptions);
|
|
447
|
-
const openai_options = read_record(provider_options?.openai);
|
|
448
|
-
return typeof openai_options?.itemId === "string" && openai_options.itemId.length > 0;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
/** 判断空 Reasoning 是否仍携带可用于跨轮重放的 Provider 协议数据。 */
|
|
452
|
-
function has_openai_reasoning_replay_data(part: Record<string, unknown>): boolean {
|
|
453
|
-
const provider_options = read_record(part.providerOptions);
|
|
454
|
-
const openai_options = read_record(provider_options?.openai);
|
|
455
|
-
return (
|
|
456
|
-
(typeof openai_options?.itemId === "string" && openai_options.itemId.length > 0) ||
|
|
457
|
-
(typeof openai_options?.reasoningEncryptedContent === "string" &&
|
|
458
|
-
openai_options.reasoningEncryptedContent.length > 0)
|
|
459
|
-
);
|
|
421
|
+
return semantic_part;
|
|
460
422
|
}
|
|
461
423
|
|
|
462
|
-
/**
|
|
463
|
-
|
|
464
|
-
*/
|
|
465
|
-
function without_openai_item_reference(
|
|
424
|
+
/** 压缩后的模型 Part 只作为语义历史传递,不继续携带任何 Provider replay state。 */
|
|
425
|
+
function strip_provider_replay_state(
|
|
466
426
|
part: Record<string, unknown>,
|
|
467
|
-
):
|
|
468
|
-
const
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
const next_provider_options = { ...provider_options };
|
|
475
|
-
if (Object.keys(remaining_openai_options).length > 0) {
|
|
476
|
-
next_provider_options.openai = remaining_openai_options;
|
|
477
|
-
} else {
|
|
478
|
-
delete next_provider_options.openai;
|
|
479
|
-
}
|
|
480
|
-
return Object.keys(next_provider_options).length > 0
|
|
481
|
-
? { providerOptions: next_provider_options }
|
|
482
|
-
: { providerOptions: undefined };
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
/** 安全读取普通 JSON object。 */
|
|
486
|
-
function read_record(value: unknown): Record<string, unknown> | undefined {
|
|
487
|
-
return value && typeof value === "object" && !Array.isArray(value)
|
|
488
|
-
? value as Record<string, unknown>
|
|
489
|
-
: undefined;
|
|
427
|
+
): Record<string, unknown> {
|
|
428
|
+
const {
|
|
429
|
+
providerOptions: _provider_options,
|
|
430
|
+
providerMetadata: _provider_metadata,
|
|
431
|
+
...semantic_part
|
|
432
|
+
} = part;
|
|
433
|
+
return semantic_part;
|
|
490
434
|
}
|
|
491
435
|
|
|
492
436
|
function fold_compacted_value(value: unknown, max_chars: number): unknown {
|
|
@@ -102,72 +102,5 @@ export async function to_model_messages(
|
|
|
102
102
|
// 忽略历史里的不完整工具调用,提升容错性。
|
|
103
103
|
ignoreIncompleteToolCalls: true,
|
|
104
104
|
});
|
|
105
|
-
return
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* 修复旧版 Session 中“只保存 msg_*、未保存必需 rs_*”的孤立 Responses API 引用。
|
|
110
|
-
*
|
|
111
|
-
* 关键点(中文)
|
|
112
|
-
* - reasoning itemId / encrypted content 与 message itemId 存在时,保留 Provider 原子重放。
|
|
113
|
-
* - 只有 message itemId 时,删除该引用并发送已持久化的普通文本,避免 400。
|
|
114
|
-
* - 不修改 Session canonical source,该修复是可重建的 Provider 投影。
|
|
115
|
-
*/
|
|
116
|
-
function repair_orphaned_openai_text_references(
|
|
117
|
-
messages: ModelMessage[],
|
|
118
|
-
): ModelMessage[] {
|
|
119
|
-
return messages.map((message) => {
|
|
120
|
-
if (message.role !== "assistant" || !Array.isArray(message.content)) {
|
|
121
|
-
return message;
|
|
122
|
-
}
|
|
123
|
-
const has_reasoning_replay_data = message.content.some((part) => {
|
|
124
|
-
if (part.type !== "reasoning") return false;
|
|
125
|
-
const openai_options = read_openai_provider_options(part.providerOptions);
|
|
126
|
-
return Boolean(
|
|
127
|
-
(typeof openai_options?.itemId === "string" && openai_options.itemId) ||
|
|
128
|
-
(typeof openai_options?.reasoningEncryptedContent === "string" &&
|
|
129
|
-
openai_options.reasoningEncryptedContent),
|
|
130
|
-
);
|
|
131
|
-
});
|
|
132
|
-
if (has_reasoning_replay_data) return message;
|
|
133
|
-
|
|
134
|
-
let changed = false;
|
|
135
|
-
const content = message.content.map((part) => {
|
|
136
|
-
if (part.type !== "text") return part;
|
|
137
|
-
const provider_options = read_json_record(part.providerOptions);
|
|
138
|
-
const openai_options = read_openai_provider_options(part.providerOptions);
|
|
139
|
-
if (!provider_options || !openai_options || !("itemId" in openai_options)) {
|
|
140
|
-
return part;
|
|
141
|
-
}
|
|
142
|
-
changed = true;
|
|
143
|
-
const { itemId: _item_id, ...remaining_openai_options } = openai_options;
|
|
144
|
-
const next_provider_options = { ...provider_options };
|
|
145
|
-
if (Object.keys(remaining_openai_options).length > 0) {
|
|
146
|
-
next_provider_options.openai = remaining_openai_options;
|
|
147
|
-
} else {
|
|
148
|
-
delete next_provider_options.openai;
|
|
149
|
-
}
|
|
150
|
-
return {
|
|
151
|
-
...part,
|
|
152
|
-
providerOptions: Object.keys(next_provider_options).length > 0
|
|
153
|
-
? next_provider_options
|
|
154
|
-
: undefined,
|
|
155
|
-
};
|
|
156
|
-
});
|
|
157
|
-
return changed ? { ...message, content } as ModelMessage : message;
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/** 读取 Provider options 中的 OpenAI 协议字段。 */
|
|
162
|
-
function read_openai_provider_options(
|
|
163
|
-
value: unknown,
|
|
164
|
-
): Record<string, unknown> | undefined {
|
|
165
|
-
return read_json_record(read_json_record(value)?.openai);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/** 安全读取普通 JSON object。 */
|
|
169
|
-
function read_json_record(value: unknown): Record<string, unknown> | undefined {
|
|
170
|
-
return value && typeof value === "object" && !Array.isArray(value)
|
|
171
|
-
? value as Record<string, unknown>
|
|
172
|
-
: undefined;
|
|
105
|
+
return converted_messages;
|
|
173
106
|
}
|