@zooique/memora 3.0.1 → 5.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 +161 -1033
- package/README.en.md +46 -39
- package/README.md +40 -35
- package/config.example.json +1 -8
- package/dist/agent/agent.d.ts +88 -80
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +272 -221
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +22 -21
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +120 -46
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/backgroundTasks.d.ts +194 -0
- package/dist/agent/backgroundTasks.d.ts.map +1 -0
- package/dist/agent/backgroundTasks.js +314 -0
- package/dist/agent/backgroundTasks.js.map +1 -0
- package/dist/agent/budget.d.ts +23 -5
- package/dist/agent/budget.d.ts.map +1 -1
- package/dist/agent/budget.js +8 -2
- package/dist/agent/budget.js.map +1 -1
- package/dist/agent/builtinToolHandlers.d.ts +29 -9
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +53 -13
- 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 +111 -30
- package/dist/agent/builtinTools.js.map +1 -1
- package/dist/agent/constants.d.ts +31 -6
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +38 -8
- package/dist/agent/constants.js.map +1 -1
- package/dist/agent/contextManager.d.ts +8 -0
- package/dist/agent/contextManager.d.ts.map +1 -1
- package/dist/agent/contextManager.js +45 -3
- package/dist/agent/contextManager.js.map +1 -1
- package/dist/agent/contextPreparer.d.ts +1 -1
- package/dist/agent/contextPreparer.d.ts.map +1 -1
- package/dist/agent/contextPreparer.js +15 -10
- package/dist/agent/contextPreparer.js.map +1 -1
- package/dist/agent/guardRail.d.ts +12 -1
- package/dist/agent/guardRail.d.ts.map +1 -1
- package/dist/agent/guardRail.js +37 -2
- package/dist/agent/guardRail.js.map +1 -1
- package/dist/agent/loop.d.ts +319 -34
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +713 -110
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/archiveCoordinator.d.ts +19 -4
- package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
- package/dist/agent/managers/archiveCoordinator.js +25 -4
- package/dist/agent/managers/archiveCoordinator.js.map +1 -1
- package/dist/agent/managers/chatLockManager.d.ts +3 -9
- package/dist/agent/managers/chatLockManager.d.ts.map +1 -1
- package/dist/agent/managers/chatLockManager.js +7 -25
- package/dist/agent/managers/chatLockManager.js.map +1 -1
- package/dist/agent/managers/llmCaller.d.ts.map +1 -1
- package/dist/agent/managers/llmCaller.js +27 -1
- package/dist/agent/managers/llmCaller.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 +13 -15
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +38 -49
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/roundSummaryGenerator.d.ts +31 -1
- package/dist/agent/managers/roundSummaryGenerator.d.ts.map +1 -1
- package/dist/agent/managers/roundSummaryGenerator.js +81 -6
- package/dist/agent/managers/roundSummaryGenerator.js.map +1 -1
- package/dist/agent/managers/sessionArchiver.d.ts +35 -3
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +34 -3
- package/dist/agent/managers/sessionArchiver.js.map +1 -1
- package/dist/agent/managers/sessionManager.d.ts +21 -88
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +94 -278
- 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 +15 -4
- package/dist/agent/seed/orchestrator.js.map +1 -1
- package/dist/agent/seed/prepare.d.ts.map +1 -1
- package/dist/agent/seed/prepare.js +9 -4
- package/dist/agent/seed/prepare.js.map +1 -1
- package/dist/agent/seed/types.d.ts +11 -4
- package/dist/agent/seed/types.d.ts.map +1 -1
- package/dist/agent/seed/types.js +2 -2
- 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 +97 -26
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +444 -78
- 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/toolResultCache.js +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 +16 -7
- package/dist/agent/toolRunner.d.ts.map +1 -1
- package/dist/agent/toolRunner.js +74 -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 +74 -30
- 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 +28 -41
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +65 -54
- package/dist/index.js.map +1 -1
- package/dist/logging/logger.d.ts +4 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +5 -2
- package/dist/logging/logger.js.map +1 -1
- package/dist/memory/gcService.d.ts.map +1 -1
- package/dist/memory/gcService.js +3 -5
- package/dist/memory/gcService.js.map +1 -1
- package/dist/memory/inMemorySessionStore.d.ts +2 -2
- package/dist/memory/inMemorySessionStore.js +2 -2
- package/dist/memory/inMemoryStorage.d.ts +4 -3
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +2 -2
- package/dist/memory/inMemoryStorage.js.map +1 -1
- package/dist/memory/nodeSqliteStorage.d.ts +17 -0
- package/dist/memory/nodeSqliteStorage.d.ts.map +1 -0
- package/dist/memory/nodeSqliteStorage.js +393 -0
- package/dist/memory/nodeSqliteStorage.js.map +1 -0
- package/dist/memory/projectManager.d.ts +10 -20
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +27 -41
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/roundStore.d.ts +143 -82
- 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/roundSummaryLookup.d.ts +26 -0
- package/dist/memory/roundSummaryLookup.d.ts.map +1 -0
- package/dist/memory/roundSummaryLookup.js +19 -0
- package/dist/memory/roundSummaryLookup.js.map +1 -0
- package/dist/memory/sessionStore.d.ts +19 -2
- package/dist/memory/sessionStore.d.ts.map +1 -1
- package/dist/memory/sessionStore.js.map +1 -1
- package/dist/memory/sourceValidation.d.ts +2 -13
- package/dist/memory/sourceValidation.d.ts.map +1 -1
- package/dist/memory/sourceValidation.js +5 -16
- package/dist/memory/sourceValidation.js.map +1 -1
- package/dist/memory/storageInterface.d.ts +26 -16
- package/dist/memory/storageInterface.d.ts.map +1 -1
- package/dist/memory/supersedeResolve.d.ts +39 -0
- package/dist/memory/supersedeResolve.d.ts.map +1 -0
- package/dist/memory/supersedeResolve.js +16 -0
- package/dist/memory/supersedeResolve.js.map +1 -0
- package/dist/memory/types.d.ts +10 -2
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +6 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/role-pack/rolePackManager.d.ts +74 -33
- package/dist/role-pack/rolePackManager.d.ts.map +1 -1
- package/dist/role-pack/rolePackManager.js +112 -53
- package/dist/role-pack/rolePackManager.js.map +1 -1
- package/dist/role-pack/strategyKeys.d.ts +44 -0
- package/dist/role-pack/strategyKeys.d.ts.map +1 -1
- package/dist/role-pack/strategyKeys.js +55 -0
- package/dist/role-pack/strategyKeys.js.map +1 -1
- package/dist/role-pack/strategyResolver.d.ts +6 -1
- package/dist/role-pack/strategyResolver.d.ts.map +1 -1
- package/dist/role-pack/strategyResolver.js +20 -2
- package/dist/role-pack/strategyResolver.js.map +1 -1
- package/dist/role-pack/types.d.ts +5 -1
- package/dist/role-pack/types.d.ts.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 +42 -6
- package/dist/security/pathGuard.d.ts.map +1 -1
- package/dist/security/pathGuard.js +126 -5
- 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/backgroundTask.d.ts +56 -34
- package/dist/utils/backgroundTask.d.ts.map +1 -1
- package/dist/utils/backgroundTask.js +130 -99
- package/dist/utils/backgroundTask.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 +12 -2
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +12 -2
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +76 -23
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js +23 -3
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/time.d.ts +8 -5
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/time.js +8 -5
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/toError.d.ts +1 -1
- package/dist/utils/toError.js +1 -1
- package/dist/web-fetch/loginWall.d.ts +39 -0
- package/dist/web-fetch/loginWall.d.ts.map +1 -0
- package/dist/web-fetch/loginWall.js +78 -0
- package/dist/web-fetch/loginWall.js.map +1 -0
- package/dist/web-fetch/types.d.ts +8 -0
- package/dist/web-fetch/types.d.ts.map +1 -1
- package/dist/web-fetch/webFetchProvider.d.ts.map +1 -1
- package/dist/web-fetch/webFetchProvider.js +3 -1
- package/dist/web-fetch/webFetchProvider.js.map +1 -1
- package/dist/web-search/fetchWebSearchProvider.js +28 -23
- package/dist/web-search/fetchWebSearchProvider.js.map +1 -1
- package/docs/architecture/role-pack-authoring-guide.md +3 -1
- package/docs/architecture/role-pack-spec.md +2 -1
- package/docs/memora-api-reference.md +1349 -1175
- package/docs/memora-/345/215/207/347/272/247/346/214/207/345/215/227-4.x-/345/210/260-5.0.0.md +385 -0
- package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +91 -52
- package/docs/role-pack-/345/274/200/346/224/276/351/224/256/346/214/207/345/215/227.md +148 -148
- package/package.json +9 -4
- package/role-packs/README.md +41 -40
- package/role-packs/memora/345/212/251/346/211/213/rules.md +4 -4
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/manifest.json +1 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/persona.md +1 -1
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/rules.md +1 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/emotion-wave.md +1 -1
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/foreshadow.md +1 -1
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/outline-expand.md +32 -5
- 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 +10 -6
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-bible.md +3 -1
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/manifest.json +1 -0
- package/dist/agent/managers/dedupManager.d.ts +0 -85
- package/dist/agent/managers/dedupManager.d.ts.map +0 -1
- package/dist/agent/managers/dedupManager.js +0 -248
- package/dist/agent/managers/dedupManager.js.map +0 -1
- package/dist/agent/managers/goalConsistencyChecker.d.ts +0 -42
- package/dist/agent/managers/goalConsistencyChecker.d.ts.map +0 -1
- package/dist/agent/managers/goalConsistencyChecker.js +0 -178
- package/dist/agent/managers/goalConsistencyChecker.js.map +0 -1
- package/dist/agent/managers/llmJudgeHelper.d.ts +0 -21
- package/dist/agent/managers/llmJudgeHelper.d.ts.map +0 -1
- package/dist/agent/managers/llmJudgeHelper.js +0 -32
- package/dist/agent/managers/llmJudgeHelper.js.map +0 -1
- package/dist/agent/managers/memoryAdvisor.d.ts +0 -105
- package/dist/agent/managers/memoryAdvisor.d.ts.map +0 -1
- package/dist/agent/managers/memoryAdvisor.js +0 -322
- package/dist/agent/managers/memoryAdvisor.js.map +0 -1
- package/dist/agent/managers/memoryGovernance.d.ts +0 -24
- package/dist/agent/managers/memoryGovernance.d.ts.map +0 -1
- package/dist/agent/managers/memoryGovernance.js +0 -46
- package/dist/agent/managers/memoryGovernance.js.map +0 -1
- package/dist/memory/governance.d.ts +0 -17
- package/dist/memory/governance.d.ts.map +0 -1
- package/dist/memory/governance.js +0 -17
- package/dist/memory/governance.js.map +0 -1
- package/dist/memory/projectRegistry.d.ts +0 -47
- package/dist/memory/projectRegistry.d.ts.map +0 -1
- package/dist/memory/projectRegistry.js +0 -151
- package/dist/memory/projectRegistry.js.map +0 -1
- package/dist/utils/recallDefaults.d.ts +0 -16
- package/dist/utils/recallDefaults.d.ts.map +0 -1
- package/dist/utils/recallDefaults.js +0 -16
- package/dist/utils/recallDefaults.js.map +0 -1
|
@@ -18,8 +18,19 @@ import { type SeedDeps } from './types.js';
|
|
|
18
18
|
* 宿主计时超时 → cancelAsk(tool result 注入 [ASK_ABORTED])+ resumeExecution('timeout')
|
|
19
19
|
* → 本常量作为该交互输入的 content 落盘(重放渲染「问 + 未回答」行的正文)。
|
|
20
20
|
* 宿主侧镜像同文案 post 给 webview 即时渲染(运行时 = 重放同构),改此须同步 chatPanel.ts。
|
|
21
|
+
*
|
|
22
|
+
* **一个字符串服务两个语境**(渲染气泡给用户看 + 作 user 消息进模型上下文),故措辞必须
|
|
23
|
+
* 两端都成立:前半句陈述事实(用户可见),后半句给出代选指令(模型可见,同时让用户知道
|
|
24
|
+
* 助手会交代它替自己选了什么)。
|
|
25
|
+
*
|
|
26
|
+
* **为什么要显式要求「代选 + 声明」**(生产实证 round-1791449684099):旧文案只说「已自动
|
|
27
|
+
* 继续」,模型据此**暗中**替用户决策——写完第 4 章后直接写死「下一步默认开工第 5 章」,
|
|
28
|
+
* 全程未声明这是它代选的,用户回来只看到既定事实,无从否决。代选本身是既定保底语义
|
|
29
|
+
* (ask 超时自动继续,与 confirm 超时自动拒绝**刻意不同**——详见 chatPanel ASK_TIMEOUT_MS
|
|
30
|
+
* 注释,勿统一),本常量补的是**可观测性**:代选必须说出来,且交代理由,用户回来看得见、
|
|
31
|
+
* 改得动。
|
|
21
32
|
*/
|
|
22
|
-
export declare const ASK_TIMEOUT_NOTICE = "\u7528\u6237\u672A\u5728\u65F6\u9650\u5185\u56DE\u7B54\uFF0C\u5DF2\u81EA\u52A8\u7EE7\u7EED";
|
|
33
|
+
export declare const ASK_TIMEOUT_NOTICE = "\u7528\u6237\u672A\u5728\u65F6\u9650\u5185\u56DE\u7B54\uFF0C\u5DF2\u81EA\u52A8\u7EE7\u7EED\u2014\u2014\u8BF7\u4ECE\u4E0A\u9762\u7684\u9009\u9879\u91CC\u9009\u4E00\u9879\u4F60\u63A8\u8350\u7684\u65B9\u6848\u7EE7\u7EED\u63A8\u8FDB\uFF0C\u5E76\u5728\u7B54\u590D\u4E2D\u8BF4\u660E\u8FD9\u662F\u4F60\u4EE3\u9009\u7684\u53CA\u7406\u7531\uFF1B\u4E0D\u53EF\u9006\u64CD\u4F5C\u4ECD\u9700\u5411\u6211\u786E\u8BA4";
|
|
23
34
|
/**
|
|
24
35
|
* 种子 turn 编排器
|
|
25
36
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/agent/seed/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAKnE,OAAO,EAA4B,KAAK,QAAQ,EAAkB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/agent/seed/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAKnE,OAAO,EAA4B,KAAK,QAAQ,EAAkB,MAAM,YAAY,CAAC;AAKrF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,uZACwC,CAAC;AAExE;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,qBAAqB;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,IAAI,EAAE,QAAQ;IAK1B;;;;;;;;OAQG;IACI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC;IA0B7F;;;;;;;;;;;;;OAaG;IACI,SAAS,CACd,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,oBAAmC,GACxC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC;IAoD5C;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;OAIG;YACY,GAAG;IAoElB,kDAAkD;YACpC,OAAO;IAIrB,2DAA2D;YAC7C,UAAU;IAoDxB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAG5B"}
|
|
@@ -17,14 +17,24 @@ import { resolveActiveStrategy } from '../../role-pack/strategyResolver.js';
|
|
|
17
17
|
import { SeedPrepare, refreshAssemblyForRolePack } from './prepare.js';
|
|
18
18
|
import { resolveSummary, resolveSummaryFocus } from '../../role-pack/strategyResolver.js';
|
|
19
19
|
import { TRACE_SPANS, NOOP_TRACER } from '../../agent/tracer.js';
|
|
20
|
-
import { backgroundTask } from '../../utils/backgroundTask.js';
|
|
21
20
|
/**
|
|
22
21
|
* ask_user 提问超时未答的交互记录正文:
|
|
23
22
|
* 宿主计时超时 → cancelAsk(tool result 注入 [ASK_ABORTED])+ resumeExecution('timeout')
|
|
24
23
|
* → 本常量作为该交互输入的 content 落盘(重放渲染「问 + 未回答」行的正文)。
|
|
25
24
|
* 宿主侧镜像同文案 post 给 webview 即时渲染(运行时 = 重放同构),改此须同步 chatPanel.ts。
|
|
25
|
+
*
|
|
26
|
+
* **一个字符串服务两个语境**(渲染气泡给用户看 + 作 user 消息进模型上下文),故措辞必须
|
|
27
|
+
* 两端都成立:前半句陈述事实(用户可见),后半句给出代选指令(模型可见,同时让用户知道
|
|
28
|
+
* 助手会交代它替自己选了什么)。
|
|
29
|
+
*
|
|
30
|
+
* **为什么要显式要求「代选 + 声明」**(生产实证 round-1791449684099):旧文案只说「已自动
|
|
31
|
+
* 继续」,模型据此**暗中**替用户决策——写完第 4 章后直接写死「下一步默认开工第 5 章」,
|
|
32
|
+
* 全程未声明这是它代选的,用户回来只看到既定事实,无从否决。代选本身是既定保底语义
|
|
33
|
+
* (ask 超时自动继续,与 confirm 超时自动拒绝**刻意不同**——详见 chatPanel ASK_TIMEOUT_MS
|
|
34
|
+
* 注释,勿统一),本常量补的是**可观测性**:代选必须说出来,且交代理由,用户回来看得见、
|
|
35
|
+
* 改得动。
|
|
26
36
|
*/
|
|
27
|
-
export const ASK_TIMEOUT_NOTICE = '
|
|
37
|
+
export const ASK_TIMEOUT_NOTICE = '用户未在时限内回答,已自动继续——请从上面的选项里选一项你推荐的方案继续推进,并在答复中说明这是你代选的及理由;不可逆操作仍需向我确认';
|
|
28
38
|
/**
|
|
29
39
|
* 种子 turn 编排器
|
|
30
40
|
*
|
|
@@ -143,7 +153,8 @@ export class SeedOrchestrator {
|
|
|
143
153
|
* @param assistantContent 助手回答(摘要输出侧)
|
|
144
154
|
*/
|
|
145
155
|
backgroundReflect(input, assistantContent) {
|
|
146
|
-
|
|
156
|
+
// 后台槽位调度器归属本 Agent 实例(SeedDeps 注入)——摘要 fire-and-forget 不阻塞回答返回
|
|
157
|
+
this.deps.backgroundTasks.schedule('round-summary', () => this.reflect(input, assistantContent));
|
|
147
158
|
}
|
|
148
159
|
/** 回答中:消费 produce() 生成的 loop 执行流,统一尾处理。
|
|
149
160
|
* chat/resume 路径共用(驱动不同 loop 入口),非正常收场/追加助手消息尾处理收在此。
|
|
@@ -216,7 +227,7 @@ export class SeedOrchestrator {
|
|
|
216
227
|
/** 摘要生成统一委托:铺 span + 收敛 round-summary(记忆即摘要单轨),策略门控开才生成 */
|
|
217
228
|
async runSummary(input, assistantContent, spanName) {
|
|
218
229
|
const tracer = this.deps.tracer ?? NOOP_TRACER;
|
|
219
|
-
const span = tracer.startSpan(spanName, { archiveMode: this.deps.archiveMode });
|
|
230
|
+
const span = tracer.startSpan(spanName, { archiveMode: this.deps.archiveMode() });
|
|
220
231
|
try {
|
|
221
232
|
const { history, loop, roundSummaryGenerator, rolePackManager } = this.deps.getParts();
|
|
222
233
|
const roundId = loop.getCurrentRoundId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/agent/seed/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/agent/seed/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/agent/seed/prepare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,KAAK,QAAQ,EAAkB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnF;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,qBAAqB;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,IAAI,EAAE,QAAQ;IAI1B;;;;;;OAMG;IACI,GAAG,CACR,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,GAClB,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/agent/seed/prepare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,KAAK,QAAQ,EAAkB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnF;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,qBAAqB;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,IAAI,EAAE,QAAQ;IAI1B;;;;;;OAMG;IACI,GAAG,CACR,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,GAClB,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,OAAO,CAAC;CA6E1D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAK7F"}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* - 叶子逻辑(assembleContext → 上下文装配:预算派生 + 对话层注入 + 占用快照)在
|
|
9
9
|
* ContextPreparer 唯一实现,本模块只保留编排骨架(与 ContextPreparer 文档一致)。
|
|
10
10
|
*/
|
|
11
|
-
import { backgroundTask } from '../../utils/backgroundTask.js';
|
|
12
11
|
import { resolveL2Strategy, resolveActiveStrategy } from '../../role-pack/strategyResolver.js';
|
|
12
|
+
import { buildMeetingPlanSkeleton } from '../../role-pack/rolePackManager.js';
|
|
13
13
|
/**
|
|
14
14
|
* 回答前阶段执行器
|
|
15
15
|
*
|
|
@@ -51,9 +51,13 @@ export class SeedPrepare {
|
|
|
51
51
|
// 在途判定经 SessionManager.hasInflightPlan 单点(SSOT):与 loop 侧「已有在途任务表则跳过
|
|
52
52
|
// nudge」共用同一命题口径,禁此处再内联谓词另起一份判定。
|
|
53
53
|
const hasInflightPlan = sessionManager?.hasInflightPlan() ?? false;
|
|
54
|
-
|
|
54
|
+
// 骨架数据经 getActiveTeam()(公开 SSOT 出口:组长 + 截断/缺员过滤后的有效组员)取,
|
|
55
|
+
// 纯函数 buildMeetingPlanSkeleton 组装(PUB-API-PRUNE-2 从 RolePackManager 摘类);
|
|
56
|
+
// activePack 非组长/无队伍 → getActiveTeam() 返回 null ⇒ 不触发,同原方法内部守卫
|
|
57
|
+
const activeTeam = rolePackManager?.getActiveTeam() ?? null;
|
|
58
|
+
const meetingPlanItems = hasInflightPlan || !activeTeam
|
|
55
59
|
? null
|
|
56
|
-
: (
|
|
60
|
+
: buildMeetingPlanSkeleton(activeTeam.leader, activeTeam.members, input);
|
|
57
61
|
if (meetingPlanItems && sessionManager) {
|
|
58
62
|
// 骨架预置:overwrite = 真重写,新会议替换一切旧计划
|
|
59
63
|
sessionManager.writePlan('overwrite', meetingPlanItems);
|
|
@@ -77,7 +81,8 @@ export class SeedPrepare {
|
|
|
77
81
|
await history.appendUser(input, roundId);
|
|
78
82
|
// 会话标题自动命名(fire-and-forget):仅新建会话首次问答触发(以"会话无标题"判定,不覆盖手动改名)
|
|
79
83
|
if (sessionNamer) {
|
|
80
|
-
|
|
84
|
+
// 后台槽位调度器归属本 Agent 实例(SeedDeps 注入)——命名 fire-and-forget 不阻塞回答前
|
|
85
|
+
this.deps.backgroundTasks.schedule('session-title', () => sessionNamer.ensureSessionTitle(history.currentDateValue, history.currentSessionValue, input));
|
|
81
86
|
}
|
|
82
87
|
return { input, aborted: false };
|
|
83
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../src/agent/seed/prepare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../src/agent/seed/prepare.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* 本文件定义这三阶段的输入/输出契约,以及 seed 模块所需的依赖接口。
|
|
6
6
|
*
|
|
7
7
|
* 设计纪律:
|
|
8
|
-
* - getParts() 以「快照 getter
|
|
8
|
+
* - getParts() 以「快照 getter」形式提供当前组件引用——组件重装配(init / reloadConfig)
|
|
9
9
|
* 会更换 loop/history/sessionManager,seed 每次运行经 getParts() 取最新引用,
|
|
10
|
-
*
|
|
10
|
+
* 否则重装配后 seed 将残留陈旧组件引用(关键正确性约束)。
|
|
11
11
|
* - consumeExecutionStream 是「统一流收口协议」,物理实现仍在门面(Agent),
|
|
12
12
|
* 本处仅声明类型,回答中阶段经依赖注入消费(方案的流收口协议归门面)。
|
|
13
13
|
*/
|
|
@@ -21,6 +21,7 @@ import type { SessionNamer } from '../../agent/managers/sessionNamer.js';
|
|
|
21
21
|
import type { RolePackManager } from '../../role-pack/rolePackManager.js';
|
|
22
22
|
import type { LlmProvider } from '../../llm/provider.js';
|
|
23
23
|
import type { ITracer } from '../../agent/tracer.js';
|
|
24
|
+
import type { BackgroundTaskScheduler } from '../../utils/backgroundTask.js';
|
|
24
25
|
import type { BehaviorStrategy } from '../../role-pack/types.js';
|
|
25
26
|
/**
|
|
26
27
|
* 流消费结果(consumeExecutionStream 的返回约定)
|
|
@@ -64,10 +65,16 @@ export interface SeedParts {
|
|
|
64
65
|
export interface SeedDeps {
|
|
65
66
|
/** 取当前组件快照(rebuild 后仍为最新引用) */
|
|
66
67
|
getParts(): SeedParts;
|
|
68
|
+
/**
|
|
69
|
+
* 后台任务槽位调度器(实例级):摘要生成(round-summary)/ 会话命名(session-title)
|
|
70
|
+
* 经此 fire-and-forget 启动。**归属 Agent 实例**(SSOT:一个 Agent = 一个项目),
|
|
71
|
+
* 与 builtinToolHandlers 的命中 touch 共用同一实例 → close() 单点等待。必填。
|
|
72
|
+
*/
|
|
73
|
+
backgroundTasks: BackgroundTaskScheduler;
|
|
67
74
|
/** 可观测性 Tracer(缺省 Noop,reflect 阶段 span 用) */
|
|
68
75
|
tracer: ITracer | null;
|
|
69
|
-
/**
|
|
70
|
-
archiveMode: ArchiveMode;
|
|
76
|
+
/** 归档模式取当前值(reflect 阶段 span 标注用;getter 而非快照:setArchiveMode 改值后仍为真) */
|
|
77
|
+
archiveMode(): ArchiveMode;
|
|
71
78
|
/** 界面文案(中断标记 / 用户中断提示,缺省用内置默认) */
|
|
72
79
|
messages?: UIMessages;
|
|
73
80
|
/** 门面能力:应用当前角色包的工具暴露面(回答前换角色后工具集切换) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/seed/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACrD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,+BAA+B;IAC/B,QAAQ,IAAI,SAAS,CAAC;IACtB,6CAA6C;IAC7C,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/seed/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACrD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,+BAA+B;IAC/B,QAAQ,IAAI,SAAS,CAAC;IACtB;;;;OAIG;IACH,eAAe,EAAE,uBAAuB,CAAC;IACzC,6CAA6C;IAC7C,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,sEAAsE;IACtE,WAAW,IAAI,WAAW,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,uCAAuC;IACvC,yBAAyB,IAAI,IAAI,CAAC;IAClC;;;;OAIG;IACH,6BAA6B,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/D;;0EAEsE;IACtE,sBAAsB,CACpB,MAAM,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,EACjD,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,UAAU,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAC5D;;;OAGG;IACH,qBAAqB,IAAI,WAAW,GAAG,IAAI,CAAC;IAC5C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
package/dist/agent/seed/types.js
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* 本文件定义这三阶段的输入/输出契约,以及 seed 模块所需的依赖接口。
|
|
6
6
|
*
|
|
7
7
|
* 设计纪律:
|
|
8
|
-
* - getParts() 以「快照 getter
|
|
8
|
+
* - getParts() 以「快照 getter」形式提供当前组件引用——组件重装配(init / reloadConfig)
|
|
9
9
|
* 会更换 loop/history/sessionManager,seed 每次运行经 getParts() 取最新引用,
|
|
10
|
-
*
|
|
10
|
+
* 否则重装配后 seed 将残留陈旧组件引用(关键正确性约束)。
|
|
11
11
|
* - consumeExecutionStream 是「统一流收口协议」,物理实现仍在门面(Agent),
|
|
12
12
|
* 本处仅声明类型,回答中阶段经依赖注入消费(方案的流收口协议归门面)。
|
|
13
13
|
*/
|
|
@@ -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,53 @@ 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';
|
|
16
|
+
import type { BackgroundTaskScheduler } from '../utils/backgroundTask.js';
|
|
17
|
+
import type { AgentEventMap } from '../utils/eventEmitter.js';
|
|
14
18
|
import type { MemoryInspector } from '../agent/managers/memoryInspector.js';
|
|
15
19
|
import type { IWebSearchProvider } from '../web-search/types.js';
|
|
16
20
|
import type { IFetchProvider } from '../web-fetch/types.js';
|
|
17
21
|
import type { ICodeExecutionProvider } from '../code-exec/types.js';
|
|
22
|
+
import { type ScriptExecutionResult } from '../skill/skillScriptRunner.js';
|
|
18
23
|
import type { IProjectSearchProvider } from '../project-search/types.js';
|
|
19
24
|
export { BUILTIN_TOOLS, BUILTIN_TOOL_IDEMPOTENCY } from '../agent/builtinTools.js';
|
|
20
25
|
export type { ToolDefinition } from '../agent/builtinTools.js';
|
|
21
|
-
/** search_project 单次返回最大条数(防结果刷屏撑爆上下文;对齐 list_dir 的条目上限;导出供宿主实现方对齐) */
|
|
22
|
-
export declare const PROJECT_SEARCH_RESULT_MAX_LEN = 100;
|
|
23
26
|
/**
|
|
24
|
-
*
|
|
27
|
+
* web_search 执行事实(观测留痕载荷,SEARCH-QUALITY-1 P1-1)
|
|
25
28
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* @param text 原始文本
|
|
30
|
-
* @returns 净化后的文本
|
|
29
|
+
* toolExecutor 观察到的执行事实镜像(不是 `SearchResult` 的再导出——只带归因必要字段,
|
|
30
|
+
* 且标题已净化截断:落盘证据面不进原始外部内容)。loop 侧(recordWebSearchEvidence)
|
|
31
|
+
* 补 ts/meetingRound 后构造裁决证据事件,本接口不含时间与轮次语境(那归 loop)。
|
|
31
32
|
*/
|
|
32
|
-
export
|
|
33
|
+
export interface WebSearchExecInfo {
|
|
34
|
+
/**
|
|
35
|
+
* 本次搜索的工具调用唯一 ID(透传自 loop 传入的 toolCallId)。
|
|
36
|
+
* 供 loop 落证据时携带,使宿主渲染能把证据唯一配对回对应 web_search 工具行。
|
|
37
|
+
* 缺省(纯 ToolExecutor 单测直接 execute 不走 loop 时)→ 证据不带此字段,宿主回退 query 启发式。
|
|
38
|
+
*/
|
|
39
|
+
toolCallId?: string;
|
|
40
|
+
/** LLM 实际发出的查询串 */
|
|
41
|
+
query: string;
|
|
42
|
+
/** 实际服务的搜索后端名(与结果透出「搜索来源」同源;提供方未打标时缺省) */
|
|
43
|
+
endpoint?: string;
|
|
44
|
+
/** 结果条数(0 = 零结果搜索,同样留痕) */
|
|
45
|
+
count: number;
|
|
46
|
+
/** 结果标题(净化 + 截断后,最多 WEB_SEARCH_EVIDENCE_MAX_TITLES 条) */
|
|
47
|
+
titles: string[];
|
|
48
|
+
}
|
|
49
|
+
/** search_project 单次返回最大条数(防结果刷屏撑爆上下文;对齐 list_dir 的条目上限;导出供宿主实现方对齐) */
|
|
50
|
+
export declare const PROJECT_SEARCH_RESULT_MAX_LEN = 100;
|
|
33
51
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* 净化规则本身抽为 `stripControlChars`(**单一真理源**),供需要「净化但不限长」的调用方复用——
|
|
37
|
-
* 例如 `read_file`:它的长度由 **token 预算分段**(`sliceFileByLineBudget`)收口,不走字符上限,
|
|
38
|
-
* 但仍须剥掉 ANSI/控制字符。否则它只能传一个假的上限(如 MAX_SAFE_INTEGER)来迁就本函数签名。
|
|
52
|
+
* 外部文本净化(转发 re-export,保持既有 import 面不破)
|
|
39
53
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
54
|
+
* 实现真源已迁至 `textSanitize.ts`:净化是**跨模块**的最后一道闸(工具返回 / 脚本与资源正文 /
|
|
55
|
+
* 命令结果三处消费),住在本文件有两个后果——① `builtinToolHandlers` 反向 import 本模块
|
|
56
|
+
* 形成循环依赖;② 命令结果的定长上限成了本模块的**私有常量**,第二个消费面
|
|
57
|
+
* (后台完成回流)看不到它 ⇒ 回流路径无长度上限。
|
|
58
|
+
* 本处只做转发,既有调用点无需改动;新代码直接 import `textSanitize.js`。
|
|
43
59
|
*/
|
|
44
|
-
export
|
|
60
|
+
export { stripControlChars, sanitizeExternalText } from '../agent/textSanitize.js';
|
|
45
61
|
/**
|
|
46
62
|
* 写入扩展接口
|
|
47
63
|
*
|
|
@@ -145,6 +161,14 @@ export declare class ToolExecutor {
|
|
|
145
161
|
private readonly projectSearchProvider?;
|
|
146
162
|
/** node 可执行文件路径(可选):run_project_script 的 node runtime 分支注入真实 node 路径 */
|
|
147
163
|
private readonly scriptNodePath?;
|
|
164
|
+
/**
|
|
165
|
+
* 后台任务注册表(可选,run_command background=true / kill_command 的唯一数据源)
|
|
166
|
+
*
|
|
167
|
+
* 由 agent 装配时注入(实例非单例,多会话互不可见——见 backgroundTasks 模块头注释)。
|
|
168
|
+
* 未注入时两个工具返回 NOT_AVAILABLE:工具面仍暴露(能力缺失要如实说,不静默假装能跑),
|
|
169
|
+
* 而非把工具从暴露面摘掉(那会让 LLM 以为自己看错了工具清单)。
|
|
170
|
+
*/
|
|
171
|
+
private backgroundTasks?;
|
|
148
172
|
/**
|
|
149
173
|
* 剩余对话预算提供者(可选,预算联动)
|
|
150
174
|
*
|
|
@@ -156,6 +180,25 @@ export declare class ToolExecutor {
|
|
|
156
180
|
private budgetProvider?;
|
|
157
181
|
/** 注入剩余对话预算提供者(装配时由 loop 创建后注入,见 assembler) */
|
|
158
182
|
setBudgetProvider(provider: () => number | undefined): void;
|
|
183
|
+
/**
|
|
184
|
+
* web_search 执行事实观察者(可选,观测留痕)
|
|
185
|
+
*
|
|
186
|
+
* 由 agent 装配时注入(loop.recordWebSearchEvidence,「搜不准」归因取证):
|
|
187
|
+
* 每次 web_search **实际执行后**(safeSearch 返回即发射,零结果/降级页同样发射——
|
|
188
|
+
* 「没搜到」与「搜到了但不对」同为归因现场,失败按原样记录 = 诚实镜像 LLM 实际所得)。
|
|
189
|
+
* 护栏硬拦的搜索不走此路(未执行即无结果面;拦截事实已在 tool 消息可见)。
|
|
190
|
+
* undefined = 未注入静默跳过(纯 ToolExecutor 单测场景)。
|
|
191
|
+
*/
|
|
192
|
+
private searchResultObserver?;
|
|
193
|
+
/** 注入 web_search 执行事实观察者(装配时由 loop 创建后注入,见 assembler) */
|
|
194
|
+
setSearchResultObserver(observer: (info: WebSearchExecInfo) => void): void;
|
|
195
|
+
/**
|
|
196
|
+
* 注入后台任务注册表(装配层接线,run_command background / kill_command 数据源)
|
|
197
|
+
*
|
|
198
|
+
* 与 toolExec 构造解耦(注册表在 toolExec 之后创建,见 assembler),故用 setter。
|
|
199
|
+
* 注入的是**实例**——多会话各自一张任务表,kill_command 够不着别的会话的进程。
|
|
200
|
+
*/
|
|
201
|
+
setBackgroundTasks(registry: BackgroundTaskRegistry): void;
|
|
159
202
|
/** 任务表管理回调(由 agent 装配时注入,处理 task_table_write/update) */
|
|
160
203
|
planManager?: {
|
|
161
204
|
writePlan: (mode: 'overwrite' | 'append' | 'replace', items: Array<{
|
|
@@ -193,8 +236,12 @@ export declare class ToolExecutor {
|
|
|
193
236
|
*
|
|
194
237
|
* 渐进披露 L3:执行技能的 scripts/ 目录下的可执行脚本。
|
|
195
238
|
* 脚本源码不进入 LLM 上下文,仅执行结果返回。
|
|
239
|
+
*
|
|
240
|
+
* B2-a 契约加宽:返回**结构化执行事实**而非已格式化字符串——格式化与 outcome
|
|
241
|
+
* 派生都在 ToolExecutor 单点完成(与 run_project_script 同源),
|
|
242
|
+
* 消除「exitCode/timedOut 在装配边界被压成文本」的事实丢失。
|
|
196
243
|
*/
|
|
197
|
-
runSkillScript?: (skillName: string, scriptPath: string, args: string[]) => Promise<
|
|
244
|
+
runSkillScript?: (skillName: string, scriptPath: string, args: string[]) => Promise<ScriptExecutionResult | null>;
|
|
198
245
|
/**
|
|
199
246
|
* list_resources 资源清单回调(由 agent 装配时注入)
|
|
200
247
|
*
|
|
@@ -251,12 +298,10 @@ export declare class ToolExecutor {
|
|
|
251
298
|
* 转发给 builtinHandlers:search_memories 命中记忆时触发,为全库**唯一** memoryRecalled
|
|
252
299
|
* 发射位(无 warmRecall 等其他发射路径)。
|
|
253
300
|
*
|
|
254
|
-
* @param callback
|
|
301
|
+
* @param callback 命中回调(载荷类型 = AgentEventMap['memoryRecalled'] 单一真源:count 命中条数 /
|
|
302
|
+
* query 检索词 / hits 命中明细 / toolCallId 本次调用配对键),缺省注入则工具静默(无宿主 no-op)
|
|
255
303
|
*/
|
|
256
|
-
setOnMemoryRecalled(callback: (info:
|
|
257
|
-
count: number;
|
|
258
|
-
query: string;
|
|
259
|
-
}) => void): void;
|
|
304
|
+
setOnMemoryRecalled(callback: (info: AgentEventMap['memoryRecalled']) => void): void;
|
|
260
305
|
/**
|
|
261
306
|
* 注入召回互斥排除集提供者(memory-tool-recall-design §5.1 工具互斥),
|
|
262
307
|
* 转发给 builtinHandlers:search_memories 用它排除「正文或摘要已在眼前」的轮次 round-summary。
|
|
@@ -265,6 +310,13 @@ export declare class ToolExecutor {
|
|
|
265
310
|
* @param provider 返回当前会话「内容已在上下文」的 roundId 精确集合(无参,从 loop 视图派生)
|
|
266
311
|
*/
|
|
267
312
|
setExclusionRoundIdsProvider(provider: () => ReadonlySet<string>): void;
|
|
313
|
+
/**
|
|
314
|
+
* 注入后台任务槽位调度器,转发给 builtinHandlers:search_memories 命中 touch 走实例级限流。
|
|
315
|
+
* 与 SeedDeps 的调度器同一实例(装配期 wiring),纳入 Agent.close() 单点等待。
|
|
316
|
+
*
|
|
317
|
+
* @param scheduler Agent 实例级后台任务调度器
|
|
318
|
+
*/
|
|
319
|
+
setBackgroundTaskScheduler(scheduler: BackgroundTaskScheduler): void;
|
|
268
320
|
/**
|
|
269
321
|
* 注册自定义工具
|
|
270
322
|
*
|
|
@@ -333,6 +385,19 @@ export declare class ToolExecutor {
|
|
|
333
385
|
* (写盘派生索引同源消费),此处只转手、不另存清单。
|
|
334
386
|
*/
|
|
335
387
|
get builtinDefinitions(): ToolDefinition[];
|
|
388
|
+
/**
|
|
389
|
+
* 按登记表把执行面路由到对应确认入口(CMD-1-BYPASS 2026-10-03)
|
|
390
|
+
*
|
|
391
|
+
* 入口由 `security/confirmEntries.ts` 的 `CONFIRM_ENTRY_BY_TOOL` 唯一指定,
|
|
392
|
+
* 不在各 case 分支里隐式选方法 ⇒ 新增执行面漏登记会在守卫测试处即红。
|
|
393
|
+
*
|
|
394
|
+
* @param entry 确认入口(来自登记表,类型已排除 `none`——非确认面不可能被路由进来)
|
|
395
|
+
* @param target 确认对象(命令原文 / 脚本路径 / 内联代码标识)
|
|
396
|
+
* @param tool 工具名
|
|
397
|
+
* @param description 面向用户的描述
|
|
398
|
+
* @returns 是否获确认放行
|
|
399
|
+
*/
|
|
400
|
+
private confirmByEntry;
|
|
336
401
|
/**
|
|
337
402
|
* 执行工具调用
|
|
338
403
|
*
|
|
@@ -344,9 +409,15 @@ export declare class ToolExecutor {
|
|
|
344
409
|
* @param name 工具名称
|
|
345
410
|
* @param argsJson 参数 JSON 字符串
|
|
346
411
|
* @param extensions 写入扩展(可选,用于 diff 确认等)
|
|
347
|
-
* @
|
|
412
|
+
* @param emitOutcome 原生结构化结果回调(可选 · SCRIPT-2 outcome 通道):
|
|
413
|
+
* 已切族工具在**返回字符串的同点**按执行事实产出 `ToolOutcome`(status 不读文本前缀);
|
|
414
|
+
* 未切族不调用 ⇒ ToolRunner 回落文本判据。每调用独立回调,无并发相关性问题。
|
|
415
|
+
* @param toolCallId 本次工具调用的唯一 ID(可选 · 证据配对通道):web_search 执行时随
|
|
416
|
+
* 观测留痕一并携带,使宿主渲染能把证据唯一配对回工具行(不再按 query 文本猜)。
|
|
417
|
+
* 非 web_search 工具忽略此参;缺省 = 证据不带 ID,宿主回退 query 启发式(保不带伤)。
|
|
418
|
+
* @returns 工具结果的字符串描述(渲染面,逐字保持)
|
|
348
419
|
*/
|
|
349
|
-
execute(name: string, argsJson: string, extensions?: WriteExtensions): Promise<string>;
|
|
420
|
+
execute(name: string, argsJson: string, extensions?: WriteExtensions, emitOutcome?: (outcome: ToolOutcome) => void, toolCallId?: string): Promise<string>;
|
|
350
421
|
/**
|
|
351
422
|
* 参数类型校验 + 自动修正
|
|
352
423
|
*
|
|
@@ -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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"}
|