@zooique/memora 3.0.0 → 4.0.0
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/CHANGELOG.md +721 -6
- package/README.en.md +6 -6
- package/README.md +303 -303
- package/config.example.json +1 -8
- package/dist/agent/agent.d.ts +48 -4
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +130 -12
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +19 -5
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +79 -16
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/backgroundTasks.d.ts +187 -0
- package/dist/agent/backgroundTasks.d.ts.map +1 -0
- package/dist/agent/backgroundTasks.js +307 -0
- package/dist/agent/backgroundTasks.js.map +1 -0
- package/dist/agent/builtinToolHandlers.d.ts +2 -1
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +8 -4
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/builtinTools.d.ts +15 -1
- package/dist/agent/builtinTools.d.ts.map +1 -1
- package/dist/agent/builtinTools.js +107 -27
- package/dist/agent/builtinTools.js.map +1 -1
- package/dist/agent/constants.d.ts +31 -0
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +31 -0
- package/dist/agent/constants.js.map +1 -1
- package/dist/agent/guardRail.d.ts +11 -0
- package/dist/agent/guardRail.d.ts.map +1 -1
- package/dist/agent/guardRail.js +36 -1
- package/dist/agent/guardRail.js.map +1 -1
- package/dist/agent/loop.d.ts +276 -24
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +593 -93
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/archiveCoordinator.d.ts +5 -2
- package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
- package/dist/agent/managers/archiveCoordinator.js +17 -2
- package/dist/agent/managers/archiveCoordinator.js.map +1 -1
- package/dist/agent/managers/loopMetrics.d.ts +14 -0
- package/dist/agent/managers/loopMetrics.d.ts.map +1 -1
- package/dist/agent/managers/loopMetrics.js +15 -0
- package/dist/agent/managers/loopMetrics.js.map +1 -1
- package/dist/agent/managers/memoryInspector.d.ts +1 -8
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +6 -30
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/roundSummaryGenerator.d.ts +28 -0
- package/dist/agent/managers/roundSummaryGenerator.d.ts.map +1 -1
- package/dist/agent/managers/roundSummaryGenerator.js +67 -2
- package/dist/agent/managers/roundSummaryGenerator.js.map +1 -1
- package/dist/agent/managers/sessionArchiver.d.ts +21 -3
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +20 -3
- package/dist/agent/managers/sessionArchiver.js.map +1 -1
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +17 -0
- package/dist/agent/managers/sessionManager.js.map +1 -1
- package/dist/agent/managers/toolCallHelpers.d.ts +109 -28
- package/dist/agent/managers/toolCallHelpers.d.ts.map +1 -1
- package/dist/agent/managers/toolCallHelpers.js +93 -37
- package/dist/agent/managers/toolCallHelpers.js.map +1 -1
- package/dist/agent/messageHistory.d.ts.map +1 -1
- package/dist/agent/messageHistory.js +9 -5
- package/dist/agent/messageHistory.js.map +1 -1
- package/dist/agent/seed/orchestrator.d.ts +12 -1
- package/dist/agent/seed/orchestrator.d.ts.map +1 -1
- package/dist/agent/seed/orchestrator.js +12 -1
- package/dist/agent/seed/orchestrator.js.map +1 -1
- package/dist/agent/textSanitize.d.ts +36 -0
- package/dist/agent/textSanitize.d.ts.map +1 -0
- package/dist/agent/textSanitize.js +55 -0
- package/dist/agent/textSanitize.js.map +1 -0
- package/dist/agent/toolExecutor.d.ts +48 -22
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +372 -71
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/agent/toolLedger.d.ts +93 -41
- package/dist/agent/toolLedger.d.ts.map +1 -1
- package/dist/agent/toolLedger.js +114 -42
- package/dist/agent/toolLedger.js.map +1 -1
- package/dist/agent/toolResultOffload.d.ts +8 -0
- package/dist/agent/toolResultOffload.d.ts.map +1 -1
- package/dist/agent/toolResultOffload.js +10 -3
- package/dist/agent/toolResultOffload.js.map +1 -1
- package/dist/agent/toolRunner.d.ts +14 -7
- package/dist/agent/toolRunner.d.ts.map +1 -1
- package/dist/agent/toolRunner.js +71 -29
- package/dist/agent/toolRunner.js.map +1 -1
- package/dist/agent/tracer.d.ts +13 -1
- package/dist/agent/tracer.d.ts.map +1 -1
- package/dist/agent/types.d.ts +67 -6
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/code-exec/types.d.ts +9 -0
- package/dist/code-exec/types.d.ts.map +1 -1
- package/dist/index.d.ts +21 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -28
- package/dist/index.js.map +1 -1
- package/dist/memory/roundStore.d.ts +67 -81
- package/dist/memory/roundStore.d.ts.map +1 -1
- package/dist/memory/roundStore.js +4 -15
- package/dist/memory/roundStore.js.map +1 -1
- package/dist/memory/types.d.ts +7 -0
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +4 -0
- package/dist/memory/types.js.map +1 -1
- package/dist/role-pack/rolePackManager.d.ts +42 -10
- package/dist/role-pack/rolePackManager.d.ts.map +1 -1
- package/dist/role-pack/rolePackManager.js +65 -12
- package/dist/role-pack/rolePackManager.js.map +1 -1
- package/dist/role-pack/strategyKeys.d.ts +36 -0
- package/dist/role-pack/strategyKeys.d.ts.map +1 -1
- package/dist/role-pack/strategyKeys.js +45 -0
- package/dist/role-pack/strategyKeys.js.map +1 -1
- package/dist/security/confirmEntries.d.ts +44 -0
- package/dist/security/confirmEntries.d.ts.map +1 -0
- package/dist/security/confirmEntries.js +59 -0
- package/dist/security/confirmEntries.js.map +1 -0
- package/dist/security/pathGuard.d.ts +41 -5
- package/dist/security/pathGuard.d.ts.map +1 -1
- package/dist/security/pathGuard.js +125 -4
- package/dist/security/pathGuard.js.map +1 -1
- package/dist/skill/skillScriptRunner.d.ts +147 -15
- package/dist/skill/skillScriptRunner.d.ts.map +1 -1
- package/dist/skill/skillScriptRunner.js +479 -68
- package/dist/skill/skillScriptRunner.js.map +1 -1
- package/dist/utils/configResourceManager.d.ts +6 -2
- package/dist/utils/configResourceManager.d.ts.map +1 -1
- package/dist/utils/configResourceManager.js +8 -2
- package/dist/utils/configResourceManager.js.map +1 -1
- package/dist/utils/errors.d.ts +9 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +9 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +57 -2
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js +23 -0
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/time.d.ts +5 -2
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/time.js +5 -2
- package/dist/utils/time.js.map +1 -1
- package/docs/memora-api-reference.md +121 -20
- package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +6 -5
- package/package.json +4 -4
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/persona.md +46 -46
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/rules.md +16 -15
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/emotion-wave.md +46 -46
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/foreshadow.md +29 -29
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/outline-expand.md +48 -46
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/project-init/scripts/init-novel-project.mjs +441 -441
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-bible.md +62 -60
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 外部文本净化(**单一真理源**)
|
|
3
|
+
*
|
|
4
|
+
* 独立成模块的原因(不是「为了整洁」):净化函数是**所有外部内容进上下文前的最后一道闸**,
|
|
5
|
+
* 而它的消费方跨了模块边界——`toolExecutor`(工具返回)、`builtinToolHandlers`(脚本/资源正文)、
|
|
6
|
+
* `skillScriptRunner`(命令结果格式化)。此前它住在 `toolExecutor.ts`,导致两个后果:
|
|
7
|
+
* ① `builtinToolHandlers` 反向 import `toolExecutor`(而 `toolExecutor` 也 import 它)——**模块循环**;
|
|
8
|
+
* ② 命令结果的**定长真源**(`RUN_SCRIPT_RESULT_MAX_LEN`)是 toolExecutor 的模块私有常量,
|
|
9
|
+
* 第二个消费面(后台回��通知)看不到它 ⇒ 回流路径裸奔、无长度上限(2MB 输出可直灌上下文)。
|
|
10
|
+
* 抽到零依赖的纯模块后,两个消费面共用同一份规则与同一个上限。
|
|
11
|
+
*
|
|
12
|
+
* 量纲纪律:本模块是**字符**层。上下文侧另有 token 入口关(`appendToolMessage` 落盘)、
|
|
13
|
+
* 子进程侧另有**字节**内存护栏(`skillScriptRunner.MAX_COLLECTED_OUTPUT_BYTES`)——
|
|
14
|
+
* 三者量纲与目的各异,**禁止互相对齐或合并**。
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* 去 ANSI 转义序列与不可打印控制字符(**不限长**)
|
|
18
|
+
*
|
|
19
|
+
* @param text 原始文本
|
|
20
|
+
* @returns 净化后的文本
|
|
21
|
+
*/
|
|
22
|
+
export declare function stripControlChars(text: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* 外部工具返回净化:去控制字符 + 长度上限
|
|
25
|
+
*
|
|
26
|
+
* 净化规则本身抽为 `stripControlChars`(**单一真理源**),供需要「净化但不限长」的调用方复用——
|
|
27
|
+
* 例如 `read_file`:它的长度由 **token 预算分段**(`sliceFileByLineBudget`)收口,不走字符上限,
|
|
28
|
+
* 但仍须剥掉 ANSI/控制字符。否则它只能传一个假的上限(如 MAX_SAFE_INTEGER)来迁就本函数签名。
|
|
29
|
+
*
|
|
30
|
+
* @param text 外部原始文本
|
|
31
|
+
* @param maxLen 最大长度(**内容预算**,不含省略标记本身)
|
|
32
|
+
* @param tailChars 尾部保留字符数(默认 0 = 仅留头部;>0 时头尾各留一份,预算内部分配)
|
|
33
|
+
* @returns 净化后的文本
|
|
34
|
+
*/
|
|
35
|
+
export declare function sanitizeExternalText(text: string, maxLen: number, tailChars?: number): string;
|
|
36
|
+
//# sourceMappingURL=textSanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textSanitize.d.ts","sourceRoot":"","sources":["../../src/agent/textSanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,MAAM,CAaxF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 外部文本净化(**单一真理源**)
|
|
3
|
+
*
|
|
4
|
+
* 独立成模块的原因(不是「为了整洁」):净化函数是**所有外部内容进上下文前的最后一道闸**,
|
|
5
|
+
* 而它的消费方跨了模块边界——`toolExecutor`(工具返回)、`builtinToolHandlers`(脚本/资源正文)、
|
|
6
|
+
* `skillScriptRunner`(命令结果格式化)。此前它住在 `toolExecutor.ts`,导致两个后果:
|
|
7
|
+
* ① `builtinToolHandlers` 反向 import `toolExecutor`(而 `toolExecutor` 也 import 它)——**模块循环**;
|
|
8
|
+
* ② 命令结果的**定长真源**(`RUN_SCRIPT_RESULT_MAX_LEN`)是 toolExecutor 的模块私有常量,
|
|
9
|
+
* 第二个消费面(后台回��通知)看不到它 ⇒ 回流路径裸奔、无长度上限(2MB 输出可直灌上下文)。
|
|
10
|
+
* 抽到零依赖的纯模块后,两个消费面共用同一份规则与同一个上限。
|
|
11
|
+
*
|
|
12
|
+
* 量纲纪律:本模块是**字符**层。上下文侧另有 token 入口关(`appendToolMessage` 落盘)、
|
|
13
|
+
* 子进程侧另有**字节**内存护栏(`skillScriptRunner.MAX_COLLECTED_OUTPUT_BYTES`)——
|
|
14
|
+
* 三者量纲与目的各异,**禁止互相对齐或合并**。
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* 去 ANSI 转义序列与不可打印控制字符(**不限长**)
|
|
18
|
+
*
|
|
19
|
+
* @param text 原始文本
|
|
20
|
+
* @returns 净化后的文本
|
|
21
|
+
*/
|
|
22
|
+
export function stripControlChars(text) {
|
|
23
|
+
// 去 ANSI 转义序列(CSI:ESC [ 参数 + 终结符;子进程经 env 继承可能拿到
|
|
24
|
+
// FORCE_COLOR 输出色码,单剥 ESC 会留 `[33m` 残渣——整个序列须剥净)
|
|
25
|
+
const withoutAnsi = text.replace(/\[[0-9;?]*[a-zA-Z]/g, '');
|
|
26
|
+
// 去控制字符:保留可打印字符(含 \t 制表符),其余控制字符移除
|
|
27
|
+
return withoutAnsi.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g, '');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 外部工具返回净化:去控制字符 + 长度上限
|
|
31
|
+
*
|
|
32
|
+
* 净化规则本身抽为 `stripControlChars`(**单一真理源**),供需要「净化但不限长」的调用方复用——
|
|
33
|
+
* 例如 `read_file`:它的长度由 **token 预算分段**(`sliceFileByLineBudget`)收口,不走字符上限,
|
|
34
|
+
* 但仍须剥掉 ANSI/控制字符。否则它只能传一个假的上限(如 MAX_SAFE_INTEGER)来迁就本函数签名。
|
|
35
|
+
*
|
|
36
|
+
* @param text 外部原始文本
|
|
37
|
+
* @param maxLen 最大长度(**内容预算**,不含省略标记本身)
|
|
38
|
+
* @param tailChars 尾部保留字符数(默认 0 = 仅留头部;>0 时头尾各留一份,预算内部分配)
|
|
39
|
+
* @returns 净化后的文本
|
|
40
|
+
*/
|
|
41
|
+
export function sanitizeExternalText(text, maxLen, tailChars = 0) {
|
|
42
|
+
const cleaned = stripControlChars(text);
|
|
43
|
+
if (cleaned.length <= maxLen)
|
|
44
|
+
return cleaned;
|
|
45
|
+
if (tailChars <= 0)
|
|
46
|
+
return `${cleaned.slice(0, maxLen)}…`;
|
|
47
|
+
// 头 + 尾:不扩大总预算(头尾合计仍 = maxLen),中间如实标注省略量。
|
|
48
|
+
// 尾部保留解决的是「长输出的关键信息常在尾部」——构建/测试的失败原因、
|
|
49
|
+
// 堆栈末尾、FAIL 汇总行都在尾;只留头会让 LLM 系统性看不到失败原因(缺口 D)。
|
|
50
|
+
const tail = Math.min(tailChars, maxLen - 1);
|
|
51
|
+
const headLen = maxLen - tail;
|
|
52
|
+
const omitted = cleaned.length - headLen - tail;
|
|
53
|
+
return (`${cleaned.slice(0, headLen)}…[省略 ${omitted} 字符]…` + cleaned.slice(cleaned.length - tail));
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=textSanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textSanitize.js","sourceRoot":"","sources":["../../src/agent/textSanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,iDAAiD;IACjD,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC7D,mCAAmC;IACnC,OAAO,WAAW,CAAC,OAAO,CAAC,iDAAiD,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,MAAc,EAAE,SAAS,GAAG,CAAC;IAC9E,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,OAAO,CAAC;IAC7C,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC;IAC1D,0CAA0C;IAC1C,sCAAsC;IACtC,+CAA+C;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAChD,OAAO,CACL,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,OAAO,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAC1F,CAAC;AACJ,CAAC"}
|
|
@@ -11,37 +11,28 @@ import type { SecurityGuard } from '../security/pathGuard.js';
|
|
|
11
11
|
import type { IMemoryStorage } from '../memory/storageInterface.js';
|
|
12
12
|
import type { ISessionStore } from '../memory/sessionStore.js';
|
|
13
13
|
import { type ToolDefinition } from '../agent/builtinTools.js';
|
|
14
|
+
import { type ToolOutcome } from '../agent/managers/toolCallHelpers.js';
|
|
15
|
+
import type { BackgroundTaskRegistry } from '../agent/backgroundTasks.js';
|
|
14
16
|
import type { MemoryInspector } from '../agent/managers/memoryInspector.js';
|
|
15
17
|
import type { IWebSearchProvider } from '../web-search/types.js';
|
|
16
18
|
import type { IFetchProvider } from '../web-fetch/types.js';
|
|
17
19
|
import type { ICodeExecutionProvider } from '../code-exec/types.js';
|
|
20
|
+
import { type ScriptExecutionResult } from '../skill/skillScriptRunner.js';
|
|
18
21
|
import type { IProjectSearchProvider } from '../project-search/types.js';
|
|
19
22
|
export { BUILTIN_TOOLS, BUILTIN_TOOL_IDEMPOTENCY } from '../agent/builtinTools.js';
|
|
20
23
|
export type { ToolDefinition } from '../agent/builtinTools.js';
|
|
21
24
|
/** search_project 单次返回最大条数(防结果刷屏撑爆上下文;对齐 list_dir 的条目上限;导出供宿主实现方对齐) */
|
|
22
25
|
export declare const PROJECT_SEARCH_RESULT_MAX_LEN = 100;
|
|
23
26
|
/**
|
|
24
|
-
*
|
|
27
|
+
* 外部文本净化(转发 re-export,保持既有 import 面不破)
|
|
25
28
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*/
|
|
32
|
-
export declare function stripControlChars(text: string): string;
|
|
33
|
-
/**
|
|
34
|
-
* 外部工具返回净化:去控制字符 + 长度上限
|
|
35
|
-
*
|
|
36
|
-
* 净化规则本身抽为 `stripControlChars`(**单一真理源**),供需要「净化但不限长」的调用方复用——
|
|
37
|
-
* 例如 `read_file`:它的长度由 **token 预算分段**(`sliceFileByLineBudget`)收口,不走字符上限,
|
|
38
|
-
* 但仍须剥掉 ANSI/控制字符。否则它只能传一个假的上限(如 MAX_SAFE_INTEGER)来迁就本函数签名。
|
|
39
|
-
*
|
|
40
|
-
* @param text 外部原始文本
|
|
41
|
-
* @param maxLen 最大长度
|
|
42
|
-
* @returns 净化后的文本
|
|
29
|
+
* 实现真源已迁至 `textSanitize.ts`:净化是**跨模块**的最后一道闸(工具返回 / 脚本与资源正文 /
|
|
30
|
+
* 命令结果三处消费),住在本文件有两个后果——① `builtinToolHandlers` 反向 import 本模块
|
|
31
|
+
* 形成循环依赖;② 命令结果的定长上限成了本模块的**私有常量**,第二个消费面
|
|
32
|
+
* (后台完成回流)看不到它 ⇒ 回流路径无长度上限。
|
|
33
|
+
* 本处只做转发,既有调用点无需改动;新代码直接 import `textSanitize.js`。
|
|
43
34
|
*/
|
|
44
|
-
export
|
|
35
|
+
export { stripControlChars, sanitizeExternalText } from '../agent/textSanitize.js';
|
|
45
36
|
/**
|
|
46
37
|
* 写入扩展接口
|
|
47
38
|
*
|
|
@@ -145,6 +136,14 @@ export declare class ToolExecutor {
|
|
|
145
136
|
private readonly projectSearchProvider?;
|
|
146
137
|
/** node 可执行文件路径(可选):run_project_script 的 node runtime 分支注入真实 node 路径 */
|
|
147
138
|
private readonly scriptNodePath?;
|
|
139
|
+
/**
|
|
140
|
+
* 后台任务注册表(可选,run_command background=true / kill_command 的唯一数据源)
|
|
141
|
+
*
|
|
142
|
+
* 由 agent 装配时注入(实例非单例,多会话互不可见——见 backgroundTasks 模块头注释)。
|
|
143
|
+
* 未注入时两个工具返回 NOT_AVAILABLE:工具面仍暴露(能力缺失要如实说,不静默假装能跑),
|
|
144
|
+
* 而非把工具从暴露面摘掉(那会让 LLM 以为自己看错了工具清单)。
|
|
145
|
+
*/
|
|
146
|
+
private backgroundTasks?;
|
|
148
147
|
/**
|
|
149
148
|
* 剩余对话预算提供者(可选,预算联动)
|
|
150
149
|
*
|
|
@@ -156,6 +155,13 @@ export declare class ToolExecutor {
|
|
|
156
155
|
private budgetProvider?;
|
|
157
156
|
/** 注入剩余对话预算提供者(装配时由 loop 创建后注入,见 assembler) */
|
|
158
157
|
setBudgetProvider(provider: () => number | undefined): void;
|
|
158
|
+
/**
|
|
159
|
+
* 注入后台任务注册表(装配层接线,run_command background / kill_command 数据源)
|
|
160
|
+
*
|
|
161
|
+
* 与 toolExec 构造解耦(注册表在 toolExec 之后创建,见 assembler),故用 setter。
|
|
162
|
+
* 注入的是**实例**——多会话各自一张任务表,kill_command 够不着别的会话的进程。
|
|
163
|
+
*/
|
|
164
|
+
setBackgroundTasks(registry: BackgroundTaskRegistry): void;
|
|
159
165
|
/** 任务表管理回调(由 agent 装配时注入,处理 task_table_write/update) */
|
|
160
166
|
planManager?: {
|
|
161
167
|
writePlan: (mode: 'overwrite' | 'append' | 'replace', items: Array<{
|
|
@@ -193,8 +199,12 @@ export declare class ToolExecutor {
|
|
|
193
199
|
*
|
|
194
200
|
* 渐进披露 L3:执行技能的 scripts/ 目录下的可执行脚本。
|
|
195
201
|
* 脚本源码不进入 LLM 上下文,仅执行结果返回。
|
|
202
|
+
*
|
|
203
|
+
* B2-a 契约加宽:返回**结构化执行事实**而非已格式化字符串——格式化与 outcome
|
|
204
|
+
* 派生都在 ToolExecutor 单点完成(与 run_project_script 同源),
|
|
205
|
+
* 消除「exitCode/timedOut 在装配边界被压成文本」的事实丢失。
|
|
196
206
|
*/
|
|
197
|
-
runSkillScript?: (skillName: string, scriptPath: string, args: string[]) => Promise<
|
|
207
|
+
runSkillScript?: (skillName: string, scriptPath: string, args: string[]) => Promise<ScriptExecutionResult | null>;
|
|
198
208
|
/**
|
|
199
209
|
* list_resources 资源清单回调(由 agent 装配时注入)
|
|
200
210
|
*
|
|
@@ -333,6 +343,19 @@ export declare class ToolExecutor {
|
|
|
333
343
|
* (写盘派生索引同源消费),此处只转手、不另存清单。
|
|
334
344
|
*/
|
|
335
345
|
get builtinDefinitions(): ToolDefinition[];
|
|
346
|
+
/**
|
|
347
|
+
* 按登记表把执行面路由到对应确认入口(CMD-1-BYPASS 2026-10-03)
|
|
348
|
+
*
|
|
349
|
+
* 入口由 `security/confirmEntries.ts` 的 `CONFIRM_ENTRY_BY_TOOL` 唯一指定,
|
|
350
|
+
* 不在各 case 分支里隐式选方法 ⇒ 新增执行面漏登记会在守卫测试处即红。
|
|
351
|
+
*
|
|
352
|
+
* @param entry 确认入口(来自登记表,类型已排除 `none`——非确认面不可能被路由进来)
|
|
353
|
+
* @param target 确认对象(命令原文 / 脚本路径 / 内联代码标识)
|
|
354
|
+
* @param tool 工具名
|
|
355
|
+
* @param description 面向用户的描述
|
|
356
|
+
* @returns 是否获确认放行
|
|
357
|
+
*/
|
|
358
|
+
private confirmByEntry;
|
|
336
359
|
/**
|
|
337
360
|
* 执行工具调用
|
|
338
361
|
*
|
|
@@ -344,9 +367,12 @@ export declare class ToolExecutor {
|
|
|
344
367
|
* @param name 工具名称
|
|
345
368
|
* @param argsJson 参数 JSON 字符串
|
|
346
369
|
* @param extensions 写入扩展(可选,用于 diff 确认等)
|
|
347
|
-
* @
|
|
370
|
+
* @param emitOutcome 原生结构化结果回调(可选 · SCRIPT-2 outcome 通道):
|
|
371
|
+
* 已切族工具在**返回字符串的同点**按执行事实产出 `ToolOutcome`(status 不读文本前缀);
|
|
372
|
+
* 未切族不调用 ⇒ ToolRunner 回落文本判据。每调用独立回调,无并发相关性问题。
|
|
373
|
+
* @returns 工具结果的字符串描述(渲染面,逐字保持)
|
|
348
374
|
*/
|
|
349
|
-
execute(name: string, argsJson: string, extensions?: WriteExtensions): Promise<string>;
|
|
375
|
+
execute(name: string, argsJson: string, extensions?: WriteExtensions, emitOutcome?: (outcome: ToolOutcome) => void): Promise<string>;
|
|
350
376
|
/**
|
|
351
377
|
* 参数类型校验 + 自动修正
|
|
352
378
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolExecutor.d.ts","sourceRoot":"","sources":["../../src/agent/toolExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"toolExecutor.d.ts","sourceRoot":"","sources":["../../src/agent/toolExecutor.ts"],"names":[],"mappings":"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"}
|