@zooique/memora 2.0.0 → 3.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 +1028 -0
- package/README.en.md +305 -0
- package/README.md +303 -148
- package/config.example.json +43 -0
- package/dist/agent/agent.d.ts +438 -295
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +1368 -836
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +117 -39
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +574 -71
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/budget.d.ts +131 -0
- package/dist/agent/budget.d.ts.map +1 -0
- package/dist/agent/budget.js +128 -0
- package/dist/agent/budget.js.map +1 -0
- package/dist/agent/builtinToolHandlers.d.ts +229 -17
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +758 -70
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/builtinTools.d.ts +198 -7
- package/dist/agent/builtinTools.d.ts.map +1 -1
- package/dist/agent/builtinTools.js +646 -14
- package/dist/agent/builtinTools.js.map +1 -1
- package/dist/agent/compaction.d.ts +93 -0
- package/dist/agent/compaction.d.ts.map +1 -0
- package/dist/agent/compaction.js +192 -0
- package/dist/agent/compaction.js.map +1 -0
- package/dist/agent/constants.d.ts +139 -18
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +154 -18
- package/dist/agent/constants.js.map +1 -1
- package/dist/agent/contextManager.d.ts +126 -76
- package/dist/agent/contextManager.d.ts.map +1 -1
- package/dist/agent/contextManager.js +197 -135
- package/dist/agent/contextManager.js.map +1 -1
- package/dist/agent/contextPreparer.d.ts +78 -0
- package/dist/agent/contextPreparer.d.ts.map +1 -0
- package/dist/agent/contextPreparer.js +128 -0
- package/dist/agent/contextPreparer.js.map +1 -0
- package/dist/agent/duplicateInterceptor.d.ts +67 -0
- package/dist/agent/duplicateInterceptor.d.ts.map +1 -0
- package/dist/agent/duplicateInterceptor.js +82 -0
- package/dist/agent/duplicateInterceptor.js.map +1 -0
- package/dist/agent/guardRail.d.ts +166 -0
- package/dist/agent/guardRail.d.ts.map +1 -0
- package/dist/agent/guardRail.js +333 -0
- package/dist/agent/guardRail.js.map +1 -0
- package/dist/agent/loop.d.ts +718 -253
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +2215 -648
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/archiveCoordinator.d.ts +21 -74
- package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
- package/dist/agent/managers/archiveCoordinator.js +32 -105
- package/dist/agent/managers/archiveCoordinator.js.map +1 -1
- package/dist/agent/managers/chatLockManager.d.ts +20 -88
- package/dist/agent/managers/chatLockManager.d.ts.map +1 -1
- package/dist/agent/managers/chatLockManager.js +31 -103
- package/dist/agent/managers/chatLockManager.js.map +1 -1
- package/dist/agent/managers/dedupManager.d.ts +85 -0
- package/dist/agent/managers/dedupManager.d.ts.map +1 -0
- package/dist/agent/managers/dedupManager.js +248 -0
- package/dist/agent/managers/dedupManager.js.map +1 -0
- package/dist/agent/managers/goalConsistencyChecker.d.ts +42 -0
- package/dist/agent/managers/goalConsistencyChecker.d.ts.map +1 -0
- package/dist/agent/managers/goalConsistencyChecker.js +178 -0
- package/dist/agent/managers/goalConsistencyChecker.js.map +1 -0
- package/dist/agent/managers/llmCaller.d.ts +124 -0
- package/dist/agent/managers/llmCaller.d.ts.map +1 -0
- package/dist/agent/managers/llmCaller.js +417 -0
- package/dist/agent/managers/llmCaller.js.map +1 -0
- package/dist/agent/managers/llmJudgeHelper.d.ts +21 -0
- package/dist/agent/managers/llmJudgeHelper.d.ts.map +1 -0
- package/dist/agent/managers/llmJudgeHelper.js +32 -0
- package/dist/agent/managers/llmJudgeHelper.js.map +1 -0
- package/dist/agent/managers/loopMetrics.d.ts +58 -0
- package/dist/agent/managers/loopMetrics.d.ts.map +1 -0
- package/dist/agent/managers/loopMetrics.js +68 -0
- package/dist/agent/managers/loopMetrics.js.map +1 -0
- package/dist/agent/managers/memoryAdvisor.d.ts +27 -120
- package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
- package/dist/agent/managers/memoryAdvisor.js +56 -192
- package/dist/agent/managers/memoryAdvisor.js.map +1 -1
- package/dist/agent/managers/memoryGovernance.d.ts +24 -0
- package/dist/agent/managers/memoryGovernance.d.ts.map +1 -0
- package/dist/agent/managers/memoryGovernance.js +46 -0
- package/dist/agent/managers/memoryGovernance.js.map +1 -0
- package/dist/agent/managers/memoryInspector.d.ts +59 -393
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +92 -736
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/roundSummaryGenerator.d.ts +56 -0
- package/dist/agent/managers/roundSummaryGenerator.d.ts.map +1 -0
- package/dist/agent/managers/roundSummaryGenerator.js +201 -0
- package/dist/agent/managers/roundSummaryGenerator.js.map +1 -0
- package/dist/agent/managers/sessionArchiver.d.ts +19 -63
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +83 -157
- package/dist/agent/managers/sessionArchiver.js.map +1 -1
- package/dist/agent/managers/sessionManager.d.ts +286 -57
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +846 -85
- package/dist/agent/managers/sessionManager.js.map +1 -1
- package/dist/agent/managers/sessionNamer.d.ts +35 -0
- package/dist/agent/managers/sessionNamer.d.ts.map +1 -0
- package/dist/agent/managers/sessionNamer.js +104 -0
- package/dist/agent/managers/sessionNamer.js.map +1 -0
- package/dist/agent/managers/streamAccumulator.d.ts +20 -0
- package/dist/agent/managers/streamAccumulator.d.ts.map +1 -0
- package/dist/agent/managers/streamAccumulator.js +15 -0
- package/dist/agent/managers/streamAccumulator.js.map +1 -0
- package/dist/agent/managers/textPolishManager.d.ts +8 -44
- package/dist/agent/managers/textPolishManager.d.ts.map +1 -1
- package/dist/agent/managers/textPolishManager.js +12 -47
- package/dist/agent/managers/textPolishManager.js.map +1 -1
- package/dist/agent/managers/toolCallHelpers.d.ts +105 -0
- package/dist/agent/managers/toolCallHelpers.d.ts.map +1 -0
- package/dist/agent/managers/toolCallHelpers.js +161 -0
- package/dist/agent/managers/toolCallHelpers.js.map +1 -0
- package/dist/agent/managers/workProjection.d.ts +57 -87
- package/dist/agent/managers/workProjection.d.ts.map +1 -1
- package/dist/agent/managers/workProjection.js +166 -246
- package/dist/agent/managers/workProjection.js.map +1 -1
- package/dist/agent/messageHistory.d.ts +134 -84
- package/dist/agent/messageHistory.d.ts.map +1 -1
- package/dist/agent/messageHistory.js +419 -133
- package/dist/agent/messageHistory.js.map +1 -1
- package/dist/agent/needsPlanning.d.ts +28 -0
- package/dist/agent/needsPlanning.d.ts.map +1 -0
- package/dist/agent/needsPlanning.js +68 -0
- package/dist/agent/needsPlanning.js.map +1 -0
- package/dist/agent/seed/index.d.ts +11 -0
- package/dist/agent/seed/index.d.ts.map +1 -0
- package/dist/agent/seed/index.js +10 -0
- package/dist/agent/seed/index.js.map +1 -0
- package/dist/agent/seed/orchestrator.d.ts +83 -0
- package/dist/agent/seed/orchestrator.d.ts.map +1 -0
- package/dist/agent/seed/orchestrator.js +260 -0
- package/dist/agent/seed/orchestrator.js.map +1 -0
- package/dist/agent/seed/prepare.d.ts +49 -0
- package/dist/agent/seed/prepare.d.ts.map +1 -0
- package/dist/agent/seed/prepare.js +107 -0
- package/dist/agent/seed/prepare.js.map +1 -0
- package/dist/agent/seed/types.d.ts +115 -0
- package/dist/agent/seed/types.d.ts.map +1 -0
- package/dist/agent/seed/types.js +15 -0
- package/dist/agent/seed/types.js.map +1 -0
- package/dist/agent/sessionStateMachine.d.ts +78 -0
- package/dist/agent/sessionStateMachine.d.ts.map +1 -0
- package/dist/agent/sessionStateMachine.js +182 -0
- package/dist/agent/sessionStateMachine.js.map +1 -0
- package/dist/agent/taskTableRenderer.d.ts +51 -0
- package/dist/agent/taskTableRenderer.d.ts.map +1 -0
- package/dist/agent/taskTableRenderer.js +115 -0
- package/dist/agent/taskTableRenderer.js.map +1 -0
- package/dist/agent/toolExecutor.d.ts +255 -9
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +956 -20
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/agent/toolLedger.d.ts +120 -0
- package/dist/agent/toolLedger.d.ts.map +1 -0
- package/dist/agent/toolLedger.js +149 -0
- package/dist/agent/toolLedger.js.map +1 -0
- package/dist/agent/toolResultCache.d.ts +134 -0
- package/dist/agent/toolResultCache.d.ts.map +1 -0
- package/dist/agent/toolResultCache.js +243 -0
- package/dist/agent/toolResultCache.js.map +1 -0
- package/dist/agent/toolResultOffload.d.ts +59 -0
- package/dist/agent/toolResultOffload.d.ts.map +1 -0
- package/dist/agent/toolResultOffload.js +70 -0
- package/dist/agent/toolResultOffload.js.map +1 -0
- package/dist/agent/toolRunner.d.ts +59 -0
- package/dist/agent/toolRunner.d.ts.map +1 -0
- package/dist/agent/toolRunner.js +147 -0
- package/dist/agent/toolRunner.js.map +1 -0
- package/dist/agent/tracer.d.ts +99 -107
- package/dist/agent/tracer.d.ts.map +1 -1
- package/dist/agent/tracer.js +24 -69
- package/dist/agent/tracer.js.map +1 -1
- package/dist/agent/types.d.ts +512 -162
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js +2 -51
- package/dist/agent/types.js.map +1 -1
- package/dist/code-exec/codeExecutionProvider.d.ts +16 -0
- package/dist/code-exec/codeExecutionProvider.d.ts.map +1 -0
- package/dist/code-exec/codeExecutionProvider.js +57 -0
- package/dist/code-exec/codeExecutionProvider.js.map +1 -0
- package/dist/code-exec/types.d.ts +37 -0
- package/dist/code-exec/types.d.ts.map +1 -0
- package/dist/code-exec/types.js +12 -0
- package/dist/code-exec/types.js.map +1 -0
- package/dist/config/expandEnvVars.d.ts +22 -0
- package/dist/config/expandEnvVars.d.ts.map +1 -0
- package/dist/config/expandEnvVars.js +38 -0
- package/dist/config/expandEnvVars.js.map +1 -0
- package/dist/config/loader.d.ts +59 -242
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +237 -194
- package/dist/config/loader.js.map +1 -1
- package/dist/index.d.ts +69 -74
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +93 -63
- package/dist/index.js.map +1 -1
- package/dist/llm/abortSignal.d.ts +2 -3
- package/dist/llm/abortSignal.d.ts.map +1 -1
- package/dist/llm/abortSignal.js +2 -3
- package/dist/llm/abortSignal.js.map +1 -1
- package/dist/llm/factory.d.ts +29 -25
- package/dist/llm/factory.d.ts.map +1 -1
- package/dist/llm/factory.js +34 -69
- package/dist/llm/factory.js.map +1 -1
- package/dist/llm/openaiCompatible.d.ts +25 -40
- package/dist/llm/openaiCompatible.d.ts.map +1 -1
- package/dist/llm/openaiCompatible.js +181 -129
- package/dist/llm/openaiCompatible.js.map +1 -1
- package/dist/llm/provider.d.ts +29 -42
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +11 -10
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/types.d.ts +54 -11
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +0 -5
- package/dist/llm/types.js.map +1 -1
- package/dist/logging/logger.d.ts +8 -29
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +43 -233
- package/dist/logging/logger.js.map +1 -1
- package/dist/logging/loggerInterface.d.ts +9 -8
- package/dist/logging/loggerInterface.d.ts.map +1 -1
- package/dist/memory/gcService.d.ts +164 -0
- package/dist/memory/gcService.d.ts.map +1 -0
- package/dist/memory/gcService.js +215 -0
- package/dist/memory/gcService.js.map +1 -0
- package/dist/memory/governance.d.ts +17 -0
- package/dist/memory/governance.d.ts.map +1 -0
- package/dist/memory/governance.js +17 -0
- package/dist/memory/governance.js.map +1 -0
- package/dist/memory/inMemoryRoundStore.d.ts +124 -0
- package/dist/memory/inMemoryRoundStore.d.ts.map +1 -0
- package/dist/memory/inMemoryRoundStore.js +216 -0
- package/dist/memory/inMemoryRoundStore.js.map +1 -0
- package/dist/memory/inMemorySessionStore.d.ts +92 -0
- package/dist/memory/inMemorySessionStore.d.ts.map +1 -0
- package/dist/memory/inMemorySessionStore.js +219 -0
- package/dist/memory/inMemorySessionStore.js.map +1 -0
- package/dist/memory/inMemorySessionViewLoader.d.ts +89 -0
- package/dist/memory/inMemorySessionViewLoader.d.ts.map +1 -0
- package/dist/memory/inMemorySessionViewLoader.js +183 -0
- package/dist/memory/inMemorySessionViewLoader.js.map +1 -0
- package/dist/memory/inMemoryStorage.d.ts +26 -141
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +48 -187
- package/dist/memory/inMemoryStorage.js.map +1 -1
- package/dist/memory/keywordsTouch.d.ts +20 -0
- package/dist/memory/keywordsTouch.d.ts.map +1 -0
- package/dist/memory/keywordsTouch.js +25 -0
- package/dist/memory/keywordsTouch.js.map +1 -0
- package/dist/memory/lockManager.d.ts +7 -2
- package/dist/memory/lockManager.d.ts.map +1 -1
- package/dist/memory/lockManager.js +35 -11
- package/dist/memory/lockManager.js.map +1 -1
- package/dist/memory/projectManager.d.ts +30 -128
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +39 -171
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/projectRegistry.d.ts +22 -37
- package/dist/memory/projectRegistry.d.ts.map +1 -1
- package/dist/memory/projectRegistry.js +78 -85
- package/dist/memory/projectRegistry.js.map +1 -1
- package/dist/memory/roundStore.d.ts +629 -0
- package/dist/memory/roundStore.d.ts.map +1 -0
- package/dist/memory/roundStore.js +116 -0
- package/dist/memory/roundStore.js.map +1 -0
- package/dist/memory/sessionStore.d.ts +70 -61
- package/dist/memory/sessionStore.d.ts.map +1 -1
- package/dist/memory/sessionStore.js +23 -1
- package/dist/memory/sessionStore.js.map +1 -1
- package/dist/memory/sessionViewLoader.d.ts +141 -0
- package/dist/memory/sessionViewLoader.d.ts.map +1 -0
- package/dist/memory/sessionViewLoader.js +65 -0
- package/dist/memory/sessionViewLoader.js.map +1 -0
- package/dist/memory/sourceValidation.d.ts +18 -9
- package/dist/memory/sourceValidation.d.ts.map +1 -1
- package/dist/memory/sourceValidation.js +35 -29
- package/dist/memory/sourceValidation.js.map +1 -1
- package/dist/memory/storageInterface.d.ts +45 -126
- package/dist/memory/storageInterface.d.ts.map +1 -1
- package/dist/memory/types.d.ts +82 -168
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +116 -79
- package/dist/memory/types.js.map +1 -1
- package/dist/project-search/projectSearchProvider.d.ts +29 -0
- package/dist/project-search/projectSearchProvider.d.ts.map +1 -0
- package/dist/project-search/projectSearchProvider.js +57 -0
- package/dist/project-search/projectSearchProvider.js.map +1 -0
- package/dist/project-search/terms.d.ts +14 -0
- package/dist/project-search/terms.d.ts.map +1 -0
- package/dist/project-search/terms.js +68 -0
- package/dist/project-search/terms.js.map +1 -0
- package/dist/project-search/types.d.ts +139 -0
- package/dist/project-search/types.d.ts.map +1 -0
- package/dist/project-search/types.js +8 -0
- package/dist/project-search/types.js.map +1 -0
- package/dist/role-pack/capabilityMap.d.ts +28 -0
- package/dist/role-pack/capabilityMap.d.ts.map +1 -0
- package/dist/role-pack/capabilityMap.js +56 -0
- package/dist/role-pack/capabilityMap.js.map +1 -0
- package/dist/role-pack/constants.d.ts +21 -0
- package/dist/role-pack/constants.d.ts.map +1 -0
- package/dist/role-pack/constants.js +21 -0
- package/dist/role-pack/constants.js.map +1 -0
- package/dist/role-pack/rolePackManager.d.ts +269 -0
- package/dist/role-pack/rolePackManager.d.ts.map +1 -0
- package/dist/role-pack/rolePackManager.js +1082 -0
- package/dist/role-pack/rolePackManager.js.map +1 -0
- package/dist/role-pack/strategyKeys.d.ts +100 -0
- package/dist/role-pack/strategyKeys.d.ts.map +1 -0
- package/dist/role-pack/strategyKeys.js +184 -0
- package/dist/role-pack/strategyKeys.js.map +1 -0
- package/dist/role-pack/strategyResolver.d.ts +109 -0
- package/dist/role-pack/strategyResolver.d.ts.map +1 -0
- package/dist/role-pack/strategyResolver.js +304 -0
- package/dist/role-pack/strategyResolver.js.map +1 -0
- package/dist/role-pack/types.d.ts +237 -0
- package/dist/role-pack/types.d.ts.map +1 -0
- package/dist/role-pack/types.js +8 -0
- package/dist/role-pack/types.js.map +1 -0
- package/dist/role-pack/validator.d.ts +38 -0
- package/dist/role-pack/validator.d.ts.map +1 -0
- package/dist/role-pack/validator.js +436 -0
- package/dist/role-pack/validator.js.map +1 -0
- package/dist/security/pathGuard.d.ts +69 -72
- package/dist/security/pathGuard.d.ts.map +1 -1
- package/dist/security/pathGuard.js +151 -131
- package/dist/security/pathGuard.js.map +1 -1
- package/dist/skill/skillLayer3.d.ts +91 -0
- package/dist/skill/skillLayer3.d.ts.map +1 -0
- package/dist/skill/skillLayer3.js +104 -0
- package/dist/skill/skillLayer3.js.map +1 -0
- package/dist/skill/skillManager.d.ts +127 -56
- package/dist/skill/skillManager.d.ts.map +1 -1
- package/dist/skill/skillManager.js +318 -163
- package/dist/skill/skillManager.js.map +1 -1
- package/dist/skill/skillScriptRunner.d.ts +97 -0
- package/dist/skill/skillScriptRunner.d.ts.map +1 -0
- package/dist/skill/skillScriptRunner.js +271 -0
- package/dist/skill/skillScriptRunner.js.map +1 -0
- package/dist/skill/types.d.ts +73 -17
- package/dist/skill/types.d.ts.map +1 -1
- package/dist/skill/types.js +5 -1
- package/dist/skill/types.js.map +1 -1
- package/dist/utils/array.d.ts +5 -6
- package/dist/utils/array.d.ts.map +1 -1
- package/dist/utils/array.js +6 -6
- package/dist/utils/array.js.map +1 -1
- package/dist/utils/atomicWrite.d.ts +8 -0
- package/dist/utils/atomicWrite.d.ts.map +1 -0
- package/dist/utils/atomicWrite.js +31 -0
- package/dist/utils/atomicWrite.js.map +1 -0
- package/dist/utils/backgroundTask.d.ts +38 -0
- package/dist/utils/backgroundTask.d.ts.map +1 -0
- package/dist/utils/backgroundTask.js +117 -0
- package/dist/utils/backgroundTask.js.map +1 -0
- package/dist/utils/configResourceManager.d.ts +79 -0
- package/dist/utils/configResourceManager.d.ts.map +1 -0
- package/dist/utils/configResourceManager.js +150 -0
- package/dist/utils/configResourceManager.js.map +1 -0
- package/dist/utils/errors.d.ts +48 -56
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +60 -58
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +141 -63
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js +50 -35
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/fileSafe.d.ts +20 -0
- package/dist/utils/fileSafe.d.ts.map +1 -0
- package/dist/utils/fileSafe.js +56 -0
- package/dist/utils/fileSafe.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +2 -3
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +6 -5
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/hash.d.ts +12 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +27 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/http.d.ts +17 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +29 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/json.d.ts +1 -1
- package/dist/utils/json.js +1 -1
- package/dist/utils/math.d.ts +34 -1
- package/dist/utils/math.d.ts.map +1 -1
- package/dist/utils/math.js +47 -14
- package/dist/utils/math.js.map +1 -1
- package/dist/utils/objects.d.ts +2 -3
- package/dist/utils/objects.d.ts.map +1 -1
- package/dist/utils/objects.js +2 -3
- package/dist/utils/objects.js.map +1 -1
- package/dist/utils/recallDefaults.d.ts +16 -0
- package/dist/utils/recallDefaults.d.ts.map +1 -0
- package/dist/utils/recallDefaults.js +16 -0
- package/dist/utils/recallDefaults.js.map +1 -0
- package/dist/utils/safeTimer.d.ts +8 -36
- package/dist/utils/safeTimer.d.ts.map +1 -1
- package/dist/utils/safeTimer.js +9 -37
- package/dist/utils/safeTimer.js.map +1 -1
- package/dist/utils/scanner.d.ts +97 -17
- package/dist/utils/scanner.d.ts.map +1 -1
- package/dist/utils/scanner.js +269 -47
- package/dist/utils/scanner.js.map +1 -1
- package/dist/utils/segmenter.d.ts +20 -29
- package/dist/utils/segmenter.d.ts.map +1 -1
- package/dist/utils/segmenter.js +230 -88
- package/dist/utils/segmenter.js.map +1 -1
- package/dist/utils/strings.d.ts +15 -32
- package/dist/utils/strings.d.ts.map +1 -1
- package/dist/utils/strings.js +25 -44
- package/dist/utils/strings.js.map +1 -1
- package/dist/utils/time.d.ts +37 -0
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/time.js +56 -0
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/toError.d.ts +13 -1
- package/dist/utils/toError.d.ts.map +1 -1
- package/dist/utils/toError.js +18 -1
- package/dist/utils/toError.js.map +1 -1
- package/dist/web-fetch/fetchWebFetchProvider.d.ts +14 -0
- package/dist/web-fetch/fetchWebFetchProvider.d.ts.map +1 -0
- package/dist/web-fetch/fetchWebFetchProvider.js +69 -0
- package/dist/web-fetch/fetchWebFetchProvider.js.map +1 -0
- package/dist/web-fetch/types.d.ts +30 -0
- package/dist/web-fetch/types.d.ts.map +1 -0
- package/dist/web-fetch/types.js +7 -0
- package/dist/web-fetch/types.js.map +1 -0
- package/dist/web-fetch/webFetchProvider.d.ts +10 -0
- package/dist/web-fetch/webFetchProvider.d.ts.map +1 -0
- package/dist/web-fetch/webFetchProvider.js +28 -0
- package/dist/web-fetch/webFetchProvider.js.map +1 -0
- package/dist/web-search/fetchWebSearchProvider.d.ts +27 -0
- package/dist/web-search/fetchWebSearchProvider.d.ts.map +1 -0
- package/dist/web-search/fetchWebSearchProvider.js +199 -0
- package/dist/web-search/fetchWebSearchProvider.js.map +1 -0
- package/dist/web-search/types.d.ts +46 -0
- package/dist/web-search/types.d.ts.map +1 -0
- package/dist/web-search/types.js +2 -0
- package/dist/{persona → web-search}/types.js.map +1 -1
- package/dist/web-search/webSearchProvider.d.ts +10 -0
- package/dist/web-search/webSearchProvider.d.ts.map +1 -0
- package/dist/web-search/webSearchProvider.js +30 -0
- package/dist/web-search/webSearchProvider.js.map +1 -0
- package/docs/architecture/role-pack-authoring-guide.md +243 -0
- package/docs/architecture/role-pack-spec.md +767 -0
- package/docs/memora-api-reference.md +1175 -0
- package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +843 -0
- package/docs/role-pack-/345/274/200/346/224/276/351/224/256/346/214/207/345/215/227.md +148 -0
- package/package.json +105 -83
- package/role-packs/README.md +41 -0
- package/role-packs/memora/345/212/251/346/211/213/manifest.json +12 -0
- package/role-packs/memora/345/212/251/346/211/213/persona.md +12 -0
- package/role-packs/memora/345/212/251/346/211/213/rules.md +4 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/manifest.json +44 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/persona.md +46 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/rules.md +15 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/character-sheet.md +34 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/core-extractor.md +37 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/craft-review.md +69 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/dialogue-craft.md +45 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/emotion-wave.md +46 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/empathy-craft.md +79 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/foreshadow.md +29 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/hotspot-mapping.md +121 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/idea-lever.md +42 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/logline-craft.md +47 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/longform-guard.md +64 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/need-finder.md +40 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/outline-expand.md +46 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/pacing-hook.md +34 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/polish-method.md +113 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/pov-discipline.md +79 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/project-init/SKILL.md +112 -0
- 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 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/relationship-web.md +47 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/scene-craft.md +46 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-bible.md +60 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-structure.md +36 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/style-weaver.md +109 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/three-layer-check.md +27 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/world-builder.md +41 -0
- 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 +48 -0
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/persona.md +73 -0
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/rules.md +19 -0
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/api-doc-writer.md +40 -0
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/doc-planner.md +42 -0
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/nutrient-search.md +28 -0
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/seed-finder.md +28 -0
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/ssot-audit.md +34 -0
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/style-guide.md +40 -0
- package/dist/agent/guardrail.d.ts +0 -47
- package/dist/agent/guardrail.d.ts.map +0 -1
- package/dist/agent/guardrail.js +0 -51
- package/dist/agent/guardrail.js.map +0 -1
- package/dist/agent/managers/autoConfigRefiner.d.ts +0 -39
- package/dist/agent/managers/autoConfigRefiner.d.ts.map +0 -1
- package/dist/agent/managers/autoConfigRefiner.js +0 -150
- package/dist/agent/managers/autoConfigRefiner.js.map +0 -1
- package/dist/agent/managers/configManager.d.ts +0 -125
- package/dist/agent/managers/configManager.d.ts.map +0 -1
- package/dist/agent/managers/configManager.js +0 -194
- package/dist/agent/managers/configManager.js.map +0 -1
- package/dist/agent/managers/insightExtractor.d.ts +0 -139
- package/dist/agent/managers/insightExtractor.d.ts.map +0 -1
- package/dist/agent/managers/insightExtractor.js +0 -401
- package/dist/agent/managers/insightExtractor.js.map +0 -1
- package/dist/agent/managers/memoryDecayScheduler.d.ts +0 -198
- package/dist/agent/managers/memoryDecayScheduler.d.ts.map +0 -1
- package/dist/agent/managers/memoryDecayScheduler.js +0 -349
- package/dist/agent/managers/memoryDecayScheduler.js.map +0 -1
- package/dist/agent/managers/relationBuilder.d.ts +0 -131
- package/dist/agent/managers/relationBuilder.d.ts.map +0 -1
- package/dist/agent/managers/relationBuilder.js +0 -192
- package/dist/agent/managers/relationBuilder.js.map +0 -1
- package/dist/agent/personaMatcher.d.ts +0 -29
- package/dist/agent/personaMatcher.d.ts.map +0 -1
- package/dist/agent/personaMatcher.js +0 -60
- package/dist/agent/personaMatcher.js.map +0 -1
- package/dist/agent/userFactExtractor.d.ts +0 -25
- package/dist/agent/userFactExtractor.d.ts.map +0 -1
- package/dist/agent/userFactExtractor.js +0 -81
- package/dist/agent/userFactExtractor.js.map +0 -1
- package/dist/eval/evalRunner.d.ts +0 -94
- package/dist/eval/evalRunner.d.ts.map +0 -1
- package/dist/eval/evalRunner.js +0 -141
- package/dist/eval/evalRunner.js.map +0 -1
- package/dist/eval/evalTypes.d.ts +0 -148
- package/dist/eval/evalTypes.d.ts.map +0 -1
- package/dist/eval/evalTypes.js +0 -118
- package/dist/eval/evalTypes.js.map +0 -1
- package/dist/eval/scenarios.d.ts +0 -33
- package/dist/eval/scenarios.d.ts.map +0 -1
- package/dist/eval/scenarios.js +0 -109
- package/dist/eval/scenarios.js.map +0 -1
- package/dist/llm/embedding.d.ts +0 -67
- package/dist/llm/embedding.d.ts.map +0 -1
- package/dist/llm/embedding.js +0 -184
- package/dist/llm/embedding.js.map +0 -1
- package/dist/memory/hybridMerge.d.ts +0 -54
- package/dist/memory/hybridMerge.d.ts.map +0 -1
- package/dist/memory/hybridMerge.js +0 -36
- package/dist/memory/hybridMerge.js.map +0 -1
- package/dist/memory/inMemoryRelationStore.d.ts +0 -51
- package/dist/memory/inMemoryRelationStore.d.ts.map +0 -1
- package/dist/memory/inMemoryRelationStore.js +0 -65
- package/dist/memory/inMemoryRelationStore.js.map +0 -1
- package/dist/memory/loader.d.ts +0 -49
- package/dist/memory/loader.d.ts.map +0 -1
- package/dist/memory/loader.js +0 -93
- package/dist/memory/loader.js.map +0 -1
- package/dist/memory/recall.d.ts +0 -66
- package/dist/memory/recall.d.ts.map +0 -1
- package/dist/memory/recall.js +0 -142
- package/dist/memory/recall.js.map +0 -1
- package/dist/memory/relationStore.d.ts +0 -78
- package/dist/memory/relationStore.d.ts.map +0 -1
- package/dist/memory/relationStore.js +0 -2
- package/dist/memory/relationStore.js.map +0 -1
- package/dist/memory/store.d.ts +0 -50
- package/dist/memory/store.d.ts.map +0 -1
- package/dist/memory/store.js +0 -161
- package/dist/memory/store.js.map +0 -1
- package/dist/memory/userProfile.d.ts +0 -156
- package/dist/memory/userProfile.d.ts.map +0 -1
- package/dist/memory/userProfile.js +0 -320
- package/dist/memory/userProfile.js.map +0 -1
- package/dist/memory/vectorStore.d.ts +0 -185
- package/dist/memory/vectorStore.d.ts.map +0 -1
- package/dist/memory/vectorStore.js +0 -257
- package/dist/memory/vectorStore.js.map +0 -1
- package/dist/persona/personaManager.d.ts +0 -160
- package/dist/persona/personaManager.d.ts.map +0 -1
- package/dist/persona/personaManager.js +0 -414
- package/dist/persona/personaManager.js.map +0 -1
- package/dist/persona/types.d.ts +0 -32
- package/dist/persona/types.d.ts.map +0 -1
- package/dist/persona/types.js +0 -5
package/dist/agent/agent.d.ts
CHANGED
|
@@ -1,55 +1,31 @@
|
|
|
1
1
|
import type { AgentLoop } from '../agent/loop.js';
|
|
2
|
-
import type { AgentChunk, ArchiveMode, AgentOptions, AgentContext } from '../agent/types.js';
|
|
2
|
+
import type { AgentChunk, ArchiveMode, AgentOptions, AgentContext, ToolExecutionRecord, SessionCheckpoint } from '../agent/types.js';
|
|
3
|
+
import type { InteractiveInputKind } from '../memory/roundStore.js';
|
|
3
4
|
import type { ToolExecutor } from '../agent/toolExecutor.js';
|
|
4
5
|
import type { MessageHistory } from '../agent/messageHistory.js';
|
|
5
6
|
import { ProjectManager, type ProjectContext } from '../memory/projectManager.js';
|
|
6
7
|
import { SecurityGuard } from '../security/pathGuard.js';
|
|
7
|
-
import type { PersonaManager } from '../persona/personaManager.js';
|
|
8
|
-
import type { UserProfile, UserProfileEntry } from '../memory/userProfile.js';
|
|
9
8
|
import type { SkillManager } from '../skill/skillManager.js';
|
|
10
|
-
import type {
|
|
9
|
+
import type { RolePackManager } from '../role-pack/rolePackManager.js';
|
|
10
|
+
import type { BehaviorStrategy } from '../role-pack/types.js';
|
|
11
11
|
import type { SessionArchiveResult } from '../agent/managers/sessionArchiver.js';
|
|
12
12
|
import type { TextPolishManager } from '../agent/managers/textPolishManager.js';
|
|
13
|
-
import type { ConfigManager } from '../agent/managers/configManager.js';
|
|
14
13
|
import type { WorkProjectionManager } from '../agent/managers/workProjection.js';
|
|
15
14
|
import type { MemoryInspector } from '../agent/managers/memoryInspector.js';
|
|
16
|
-
import type
|
|
17
|
-
import type {
|
|
18
|
-
import
|
|
19
|
-
import {
|
|
15
|
+
import { type GCResult } from '../memory/gcService.js';
|
|
16
|
+
import type { SessionManager, AgentForkResult } from '../agent/managers/sessionManager.js';
|
|
17
|
+
import { MemoryGovernance } from '../agent/managers/memoryGovernance.js';
|
|
18
|
+
import { type ArchiveTriggerOptions } from '../agent/managers/archiveCoordinator.js';
|
|
20
19
|
import { TypedEventEmitter, type AgentEventMap } from '../utils/eventEmitter.js';
|
|
21
|
-
import type { LlmProvider } from '../llm/provider.js';
|
|
22
|
-
import type { Memory } from '../memory/types.js';
|
|
20
|
+
import type { LlmProvider, Message } from '../llm/provider.js';
|
|
23
21
|
import type { AgentMetrics } from '../agent/tracer.js';
|
|
22
|
+
import type { BackgroundTaskStats } from '../utils/backgroundTask.js';
|
|
24
23
|
/**
|
|
25
24
|
* Memora Agent 门面类
|
|
26
25
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* **多实例**:宿主可通过 new Agent({ dataDir: './agent2' }) 创建
|
|
32
|
-
* 独立实例。只要 dataDir 不同,它们拥有完全隔离的记忆库和会话。
|
|
33
|
-
* 内核不负责多 Agent 编排——那是宿主层的职责。
|
|
34
|
-
*
|
|
35
|
-
* **fork vs 多实例**:
|
|
36
|
-
* - forkSession() 分叉对话历史,但记忆索引全局共享
|
|
37
|
-
* - new Agent() + 独立 dataDir 实现完全隔离的记忆空间
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```ts
|
|
41
|
-
* const agent = new Agent({
|
|
42
|
-
* projectPath: '/path/to/project',
|
|
43
|
-
* provider: new OpenAIProvider({ apiKey: '...' }),
|
|
44
|
-
* configDir: '/path/to/config',
|
|
45
|
-
* dataDir: '/path/to/data',
|
|
46
|
-
* permission: 'owner',
|
|
47
|
-
* allowedPaths: ['/path/to/project'],
|
|
48
|
-
* });
|
|
49
|
-
* await agent.init();
|
|
50
|
-
* const iter = agent.chat('你好');
|
|
51
|
-
* for await (const chunk of iter) { ... }
|
|
52
|
-
* ```
|
|
26
|
+
* 单 Agent,单配置,单记忆:每个实例拥有独立的对话管线、消息历史与运行时状态。
|
|
27
|
+
* 多实例只需 dataDir 不同即可彻底隔离记忆库与会话;forkSession() 分叉对话历史但记忆索引全局共享。
|
|
28
|
+
* skill 为当轮实时注入,不跨轮缓存。
|
|
53
29
|
*/
|
|
54
30
|
export declare class Agent extends TypedEventEmitter<AgentEventMap> {
|
|
55
31
|
#private;
|
|
@@ -57,396 +33,563 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
|
|
|
57
33
|
private history;
|
|
58
34
|
private loop;
|
|
59
35
|
private toolExec;
|
|
60
|
-
private personaManager;
|
|
61
36
|
private skillManager;
|
|
62
|
-
|
|
63
|
-
private
|
|
37
|
+
/** 角色包管理器(角色+技能+规则的唯一真理源) */
|
|
38
|
+
private _rolePackManager;
|
|
64
39
|
private memoryInspector;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
private autoConfigRefiner;
|
|
68
|
-
/** SessionArchiver(会话内容归档器,content 类记忆) */
|
|
69
|
-
private sessionArchiver;
|
|
40
|
+
/** 记忆治理统一门面(L0/L1/L2/L3 + 诊断) */
|
|
41
|
+
private _governance;
|
|
70
42
|
/** TextPolishManager(文本润色管理器,LLM 语法修正 + 表达优化) */
|
|
71
43
|
private textPolisher;
|
|
72
44
|
/** 会话管理器(从 Agent 拆分出的会话管理职责) */
|
|
73
45
|
private _sessionManager;
|
|
74
|
-
/**
|
|
75
|
-
private
|
|
76
|
-
private _initialized;
|
|
77
|
-
private pctx;
|
|
46
|
+
/** WorkProjectionManager(作品投影极简 JSON 索引,宿主经 works getter 消费) */
|
|
47
|
+
private workProjection;
|
|
78
48
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* 职责:chat() 并发锁 + token 校验(race condition 防护)+ 超时保护 + 外部 signal 合并。
|
|
82
|
-
* 详见 ChatLockManager 类注释。
|
|
49
|
+
* 内部组件聚合对象——收敛 12 个「仅门面内部消费、不对宿主暴露」的专职组件,
|
|
50
|
+
* 减少门面扁平字段数;宿主 getter 契约字段(memory/works/polish 等)不在此列。
|
|
83
51
|
*/
|
|
84
|
-
private
|
|
85
|
-
|
|
86
|
-
private
|
|
52
|
+
private internals;
|
|
53
|
+
private _initialized;
|
|
54
|
+
private pctx;
|
|
87
55
|
/** 最近一次 chat() 调用的时间戳 */
|
|
88
56
|
private _lastInteractionAt;
|
|
89
|
-
/**
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
57
|
+
/**
|
|
58
|
+
* 流活跃标志:chat()/resumeExecution() 的 AsyncGenerator 生命周期内置 true、finally 置 false。
|
|
59
|
+
* 与 chatLock.isBusy(并发锁,180s 超时后自动释放但**不中断生成流**)语义解耦——
|
|
60
|
+
* requestPause 空闲守卫必须用「流是否在产出」而非「锁是否持有」判任务是否结束,
|
|
61
|
+
* 否则长任务运行超锁期后点暂停会被误判为「任务已结束」——锁超时会自动释放但生成流仍在跑,
|
|
62
|
+
* 故判据只能是流活跃,不能是锁持有。
|
|
63
|
+
*/
|
|
64
|
+
private _flowActive;
|
|
65
|
+
/**
|
|
66
|
+
* 对话中因 chatLock 冲突暂存的配置重载请求(锁释放后补执行,兑现"对话后自动加载");
|
|
67
|
+
* 用 Set 去重——同一 source 只需补执行一次。
|
|
68
|
+
*/
|
|
69
|
+
private pendingConfigReload;
|
|
93
70
|
constructor(opts: AgentOptions);
|
|
94
71
|
/**
|
|
95
72
|
* 初始化 Agent:加载索引、组装内部组件
|
|
96
73
|
*/
|
|
97
74
|
init(projectPathOverride?: string): Promise<ProjectContext>;
|
|
98
75
|
/**
|
|
99
|
-
*
|
|
76
|
+
* 登记作品投影实时刷新处理器:register_work 工具 / 右键登记成功后,
|
|
77
|
+
* 内核 WorkProjectionManager 触发 workProjectionGenerated 事件(携带已写入内存 entries 的投影),
|
|
78
|
+
* 立即重建 AgentLoop 的 systemPromptPrefix,使 AI 在下一轮对话即可感知新索引——
|
|
79
|
+
* 否则需切角色包 / reloadConfig / 开新会话才生效。
|
|
80
|
+
* 与 registerPauseTimeoutArchiver 同生命周期(init 内注册,close 的 removeAllListeners 兜底)。
|
|
100
81
|
*/
|
|
101
|
-
|
|
82
|
+
private registerWorkProjectionRefresh;
|
|
102
83
|
/**
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* (executeToolCalls 和 generateContextSummary 已覆盖 signal 响应,但其他
|
|
107
|
-
* 第三方库或未来新增的 await 点仍可能不响应 signal)。
|
|
108
|
-
* 此时 _chatBusy 锁未释放,用户再发消息会被 chat() 的竞态保护拒绝,
|
|
109
|
-
* 表现为"UI 能操作但发不出消息",需等到 3 分钟锁超时才能恢复。
|
|
110
|
-
*
|
|
111
|
-
* 本方法让宿主在确认 generator 挂起后强制释放锁,让用户能立即发起新对话。
|
|
112
|
-
*
|
|
113
|
-
* 安全机制(委托至 ChatLockManager.forceRelease):
|
|
114
|
-
* - 递增 _chatLockToken,让原 chat() 的 finally 块检测到 token 不匹配后
|
|
115
|
-
* 跳过资源清理(避免误清新调用者的 _chatBusy/chatAbortController)
|
|
116
|
-
* - abort chatAbortController,让响应 signal 的 await 点(如 fetch)退出
|
|
117
|
-
* - 原 generator 仍可能在后台运行(无法真正中断不响应 signal 的 await),
|
|
118
|
-
* 但其 finally 块的 token 校验会阻止它影响新调用
|
|
119
|
-
*
|
|
120
|
-
* 幂等性:_chatBusy 已 false 时 no-op(多次调用安全)
|
|
121
|
-
*
|
|
122
|
-
* 使用约束:
|
|
123
|
-
* - 仅在宿主确认 generator 挂起(如无进展超时)后调用
|
|
124
|
-
* - 不应在常规 abort 路径调用(常规 abort 走 signal,generator 自然退出)
|
|
125
|
-
* - 调用后不应再消费原 chat() generator 的后续 chunk(token 已变,chunk 无意义)
|
|
84
|
+
* 注册暂停超时归档处理器(SessionManager 两条超时路径——启动加载与运行时定时器——统一在此消费)
|
|
85
|
+
* 注册在 init() 内(close() 的 removeAllListeners + init 起始的 disposePreviousInstance 保证实例周期内恰好一个监听器),
|
|
86
|
+
* 挂在生命周期稳定的 Agent 上,rebuildComponents() 重建管理器后仍有效。
|
|
126
87
|
*/
|
|
127
|
-
|
|
88
|
+
private registerPauseTimeoutArchiver;
|
|
128
89
|
/**
|
|
129
|
-
*
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* @param input 用户输入
|
|
136
|
-
* @returns 召回的记忆列表
|
|
90
|
+
* 关闭旧实例(如果已初始化),失败不阻塞重建
|
|
91
|
+
*/
|
|
92
|
+
private disposePreviousInstance;
|
|
93
|
+
/**
|
|
94
|
+
* 创建 ProjectManager 并初始化项目上下文
|
|
137
95
|
*/
|
|
138
|
-
private
|
|
96
|
+
private initializeProject;
|
|
139
97
|
/**
|
|
140
|
-
*
|
|
98
|
+
* 校验核心组件(loop / history)非空
|
|
141
99
|
*/
|
|
142
|
-
private
|
|
100
|
+
private validateCoreComponents;
|
|
143
101
|
/**
|
|
144
|
-
*
|
|
102
|
+
* 创建 init() 后期组件(初始化完成后才需要的组件)
|
|
103
|
+
*/
|
|
104
|
+
private createPostInitComponents;
|
|
105
|
+
/**
|
|
106
|
+
* 构造种子闭环编排器,注入门面稳定能力(getParts 快照 + 工具暴露 + 流收口协议)
|
|
145
107
|
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
108
|
+
* 构造偏好在 agent.ts 而非 assembler.ts(方案的"assembler 构造"):seed 依赖
|
|
109
|
+
* sessionNamer(post-init 才创建)与 consumeExecutionStream(门面私有流收口协议),
|
|
110
|
+
* 二者均无法在 assembler 阶段就绪,故收敛到 post-init 门面组装处。
|
|
148
111
|
*
|
|
149
|
-
*
|
|
150
|
-
* - 角色匹配 + 技能匹配不受 archiveMode 影响(每轮都执行,非归档行为)
|
|
151
|
-
* - `manual` 模式跳过所有自动归档(profile + insight),需用户手动调用
|
|
152
|
-
* archiveProfileFacts() / archiveInsight() 触发
|
|
153
|
-
* - `full` / `insights-only` 模式下 profile + insight 都自动归档
|
|
154
|
-
* (会话归档实现后,`insights-only` 将跳过对话原始内容自动归档)
|
|
112
|
+
* @returns 已接线门面能力的 SeedOrchestrator
|
|
155
113
|
*/
|
|
156
|
-
private
|
|
114
|
+
private createSeedOrchestrator;
|
|
157
115
|
/**
|
|
158
|
-
*
|
|
116
|
+
* 流式对话(核心 API)
|
|
117
|
+
*/
|
|
118
|
+
chat(input: string, signal?: AbortSignal): AsyncGenerator<AgentChunk, void, unknown>;
|
|
119
|
+
/**
|
|
120
|
+
* 校验 chat 输入
|
|
121
|
+
*/
|
|
122
|
+
private validateChatInput;
|
|
123
|
+
/**
|
|
124
|
+
* 获取对话锁 — 返回锁上下文
|
|
125
|
+
*/
|
|
126
|
+
private acquireChatLock;
|
|
127
|
+
/**
|
|
128
|
+
* 补执行对话期间暂存的配置重载请求
|
|
129
|
+
*/
|
|
130
|
+
private flushPendingConfigReload;
|
|
131
|
+
/**
|
|
132
|
+
* 强制释放对话锁
|
|
159
133
|
*
|
|
160
|
-
*
|
|
134
|
+
* 宿主在"无进展超时"确认 generator 挂起后调用,使用户能立即发起新对话(否则需等锁超时)。
|
|
135
|
+
* 安全机制委托 ChatLockManager.forceRelease:递增 token 让原 chat() 的 finally 跳过清理、abort signal 让响应点退出;
|
|
136
|
+
* 原 generator 仍可能后台运行但不影响新调用。幂等(未忙时 no-op)。
|
|
161
137
|
*/
|
|
162
|
-
|
|
138
|
+
forceReleaseChatLock(): void;
|
|
163
139
|
/**
|
|
164
140
|
* 发送用户消息,非流式返回完整回复
|
|
165
141
|
*/
|
|
166
142
|
chatSync(input: string, signal?: AbortSignal): Promise<string>;
|
|
167
143
|
/**
|
|
168
|
-
*
|
|
144
|
+
* 软暂停后续跑(不中断工作模型 v2.1)
|
|
145
|
+
*
|
|
146
|
+
* 翻状态机为 RUNNING(触发 sessionResumed → 宿主转发 STATUS{running}),
|
|
147
|
+
* 驱动 loop.continueAfterPause 续跑并转发 chunk,完成后追加历史 + 后处理(同 chat 尾处理)。
|
|
148
|
+
* 硬停止(signal.abort)仍是唯一霸道中止路径,与软暂停严格区分。
|
|
169
149
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
150
|
+
* 归属:补充输入归属当前问答闭环(复用 prepare 分配的闭环节点 roundId,不分裂新轮),
|
|
151
|
+
* 以 kind 区分交互类型(question-answer=主动提问回答 / supplement=暂停/流中补充)。
|
|
152
|
+
*
|
|
153
|
+
* @param input - 可选补充输入(空=续跑原路径;有=注入修正后续轮)
|
|
154
|
+
* @param signal - 可选 AbortSignal(硬停止仍走此路径)
|
|
155
|
+
* @param kind - 交互输入类型(默认 supplement;对主动提问的回答传 'question-answer')
|
|
172
156
|
*/
|
|
173
|
-
|
|
157
|
+
resumeExecution(input?: string, signal?: AbortSignal, kind?: InteractiveInputKind): AsyncGenerator<AgentChunk, void, unknown>;
|
|
174
158
|
/**
|
|
175
|
-
*
|
|
159
|
+
* 消费执行流的单一真理源
|
|
160
|
+
*
|
|
161
|
+
* chat() 与续跑(continueAfterPause)必须共用同一份消费逻辑——两份同构实现会漂移
|
|
162
|
+
* (实证:续跑漏 paused 分支导致三方分叉);收口于此,新增 chunk 类型只需改一处。
|
|
163
|
+
* 暂停幂等锁的释放放 finally——清理是"退出本作用域的不变式"而非某分支动作,新增 return 分支无遗漏。
|
|
176
164
|
*
|
|
177
|
-
*
|
|
178
|
-
* Agent 级记忆(memora.db)保留,项目级配置(.memora/)重新加载。
|
|
165
|
+
* @returns 消费结果;failed 为 true 时调用方应立即 return(错误 chunk 已 yield)
|
|
179
166
|
*/
|
|
180
|
-
|
|
167
|
+
private consumeExecutionStream;
|
|
181
168
|
/**
|
|
182
|
-
*
|
|
169
|
+
* 暂停会话(用户/Agent/系统均可触发,暂停前自动创建检查点)
|
|
170
|
+
* @param lowRisk 低风险暂停不计入连续暂停计数(默认 false)
|
|
183
171
|
*/
|
|
184
|
-
|
|
172
|
+
pause(reason: string, source?: 'user' | 'agent' | 'system', lowRisk?: boolean): boolean;
|
|
185
173
|
/**
|
|
186
|
-
*
|
|
174
|
+
* 恢复会话(从 PAUSED 恢复到 RUNNING)
|
|
187
175
|
*/
|
|
188
|
-
|
|
176
|
+
resume(): boolean;
|
|
189
177
|
/**
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* - 通过回调访问当前组件(支持 rebuild 后自动获取最新引用)
|
|
194
|
-
* - 事件转发桥接:SessionManager 使用宽类型 (string, Record<string,unknown>),
|
|
195
|
-
* Agent 内部桥接到 TypedEventEmitter 的强类型 emit
|
|
196
|
-
* - 运行时校验事件名是否在 AgentEventMap 中,避免不安全的类型断言
|
|
178
|
+
* 自动恢复暂停状态(chat() 与续跑共用):
|
|
179
|
+
* ERROR 态直接 throw(拒绝,须先 recover 保持状态一致);PAUSED 态尝试自动恢复。
|
|
180
|
+
* 续跑(continueAfterPause)不走自动恢复,由独立的暂停恢复短路逻辑处理。
|
|
197
181
|
*
|
|
198
|
-
* @returns
|
|
182
|
+
* @returns true=恢复成功或无需恢复;false=恢复失败(暂停超时等)
|
|
199
183
|
*/
|
|
200
|
-
private
|
|
201
|
-
setProvider(provider: LlmProvider): void;
|
|
202
|
-
setBackgroundProvider(provider: LlmProvider | null): void;
|
|
184
|
+
private autoResumeIfPaused;
|
|
203
185
|
/**
|
|
204
|
-
*
|
|
186
|
+
* 请求软暂停(不中断工作模型 v2.1)
|
|
205
187
|
*
|
|
206
|
-
*
|
|
188
|
+
* 经 sm.requestPause 暂存 pending(SessionStateMachine 是 pending 真理源)+ loop.pauseRequested
|
|
189
|
+
* 入 interruptQueue(在下一 step 边界挂起,不 abort)。
|
|
190
|
+
* 状态机翻 PAUSED 延后到 loop 边界真正挂起时——内核事实驱动而非申请即翻转;与硬停止(abort)严格区分,
|
|
191
|
+
* 软暂停保留历史、可经 resumeExecution 续跑。
|
|
207
192
|
*
|
|
208
|
-
* @
|
|
193
|
+
* @returns true=请求已注册(下一 step 边界生效);false=无法暂停
|
|
209
194
|
*/
|
|
210
|
-
|
|
195
|
+
requestPause(reason: string, source?: 'user' | 'agent' | 'system'): boolean;
|
|
211
196
|
/**
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
* 宿主 UI(如设置面板)可据此同步显示当前模式。
|
|
197
|
+
* 取消待处理的软暂停请求:清空 loop 的 pauseRequested 标志(与 requestPause 对称),
|
|
198
|
+
* 并同步清理 SessionStateMachine 的 pending 暂停状态。
|
|
215
199
|
*/
|
|
216
|
-
|
|
200
|
+
cancelPauseRequest(): void;
|
|
217
201
|
/**
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
* manual 模式下 postProcess 跳过自动归档,用户需通过此 API 主动归档。
|
|
221
|
-
* full / insights-only 模式下也可调用(会重复归档,但不推荐)。
|
|
202
|
+
* 是否存在待处理的暂停申请(申请已发、尚未在 loop 边界挂起)
|
|
222
203
|
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
204
|
+
* 供宿主 UI 区分三态:无申请(暂停)/ 申请在途(取消暂停)/ 已暂停(继续)。
|
|
205
|
+
* 状态真理源 SessionStateMachine.isPausePending():流中 requestPause 置位、边界挂起后 consumePendingPause 消费、
|
|
206
|
+
* cancelPauseRequest 主动清理;空闲态由 requestPause 空闲守卫作废(见上,return false 不触达状态机)——
|
|
207
|
+
* isPausePending 仅在流中「申请在途」时为 true(空闲态不翻 PAUSED)。
|
|
227
208
|
*/
|
|
228
|
-
|
|
209
|
+
isPausePending(): boolean;
|
|
229
210
|
/**
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
* manual 模式下 postProcess 跳过自动归档,用户需通过此 API 主动归档。
|
|
233
|
-
* 内部仍走 classify 判断(避免无价值输入浪费 LLM 调用)。
|
|
211
|
+
* 放弃当前暂停检查点(宿主 stop 语义的内核出口)
|
|
234
212
|
*
|
|
235
|
-
*
|
|
213
|
+
* 与 pause() 对称:pause 创建检查点;discardCurrentCheckpoint 销毁检查点。
|
|
214
|
+
* 宿主 handleStop 在 paused 态调用——用户决定彻底放弃暂停执行,不再 resume。
|
|
236
215
|
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
216
|
+
* 除转发 SessionManager.discardCheckpoint(清内存 + 状态机 resetToRunning——检查点不落盘,无存储清理动作),
|
|
217
|
+
* 还须协同 loop.clearPendingInterjections() 清排队插话——pause 生效时 step 边界优先返回不消费 queue,
|
|
218
|
+
* 只清 checkpoint 会留孤儿 queue,下次 chat() 首个 step 误消费残留(坑)。
|
|
219
|
+
* 返回值以 checkpoint 清理为主(queue 有残留不判失败)。
|
|
220
|
+
* @returns true=成功清理;false=无暂停检查点(空闲态调了个空)
|
|
240
221
|
*/
|
|
241
|
-
|
|
222
|
+
discardCurrentCheckpoint(): boolean;
|
|
242
223
|
/**
|
|
243
|
-
*
|
|
224
|
+
* 执行中插话(申请):把用户补充输入排队,当前 step 完成后在 step 边界统一注入为 user 消息。
|
|
244
225
|
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
226
|
+
* 与 requestPause(step 边界挂起待续跑)同为「申请 → 气口生效」——不中断当前 LLM/工具执行,
|
|
227
|
+
* 只在边界拿到补充输入后开始下一轮 step。插话是唯一写入口(interject → pendingInterjections 排队),
|
|
228
|
+
* 无「立即中断」模式:只有单一申请模式(无 inputInterrupt 立即中断通道)。
|
|
247
229
|
*
|
|
248
|
-
*
|
|
230
|
+
* 归属:插话同时以「补充」交互输入持久化到当前闭环节点(interactiveInputs),
|
|
231
|
+
* 保证跨重启重放时插话内容不丢失、不分裂新轮。持久化 fire-and-forget(appendUser 内部
|
|
232
|
+
* 已 catch 写入失败,仅记日志),不阻塞插话本身。
|
|
233
|
+
*/
|
|
234
|
+
interject(content: string): void;
|
|
235
|
+
/**
|
|
236
|
+
* 删除待注入的插话(宿主 UI 层用户后悔)。与 interject 对称。
|
|
237
|
+
* 注意:interject 时已持久化到 history(交互输入归属),此处只从内核队列移除,不删除已落盘记录——
|
|
238
|
+
* 未来若需完整"撤回"需额外方案(如软删标记),当前先保证 step 边界不会注入已删除的补充。
|
|
239
|
+
* @param index 要删除的插话在队列中的位置(宿主镜像数组与内核队列同序同长度)
|
|
240
|
+
* @returns true=成功删除;false=index 越界或队列为空
|
|
241
|
+
*/
|
|
242
|
+
removePendingInterject(index: number): boolean;
|
|
243
|
+
/**
|
|
244
|
+
* 清空全部待注入插话(宿主「全部清空」按钮触发,或 stop→discard 协同清理)。
|
|
249
245
|
*
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
246
|
+
* 逻辑下沉 loop.clearPendingInterjections 原子方法——清队列唯一入口在内核,
|
|
247
|
+
* 宿主不维护队列镜像,避免镜像与内核双写不一致;discardCurrentCheckpoint 经同一方法协同清理。
|
|
248
|
+
* @returns 被清除的条目数(宿主可用于 notice 反馈;无队列时返回 0)
|
|
249
|
+
*/
|
|
250
|
+
clearPendingInterjections(): number;
|
|
251
|
+
/**
|
|
252
|
+
* 读取当前待注入插话队列快照(宿主渲染层只读镜像,不修改内核状态)。
|
|
253
|
+
* 返回副本,宿主无法暗改内核 queue;宿主渲染直接读本快照,不另维护队列镜像。
|
|
254
|
+
*/
|
|
255
|
+
getPendingInterjections(): readonly string[];
|
|
256
|
+
/**
|
|
257
|
+
* 放弃在途主动提问(ask_user 工具挂起后,宿主「跳过/取消提问」时调用):
|
|
258
|
+
* 委托 loop.cancelAsk 补占位 tool 结果(防 assistant.tool_calls 无配对 → 400),
|
|
259
|
+
* 随后 resumeExecution() 续跑。与 answerQuestion 二选一消费在途提问。
|
|
253
260
|
*/
|
|
254
|
-
|
|
261
|
+
cancelAsk(): void;
|
|
255
262
|
/**
|
|
256
|
-
*
|
|
263
|
+
* 回答在途主动提问(ask_user 工具):
|
|
264
|
+
* 答案以 ask_user 的 tool result 回填(与 assistant.tool_calls 配对,结构合法)。
|
|
265
|
+
* 调用后宿主以 resumeExecution(回答文本, undefined, 'question-answer') 续跑——
|
|
266
|
+
* 回答文本同时作为新 user 输入注入并记录为闭环节点交互输入(round 不分裂),
|
|
267
|
+
* 与既有续跑主流程一致(本方法只负责结构化回填,不做历史记录,避免双写)。
|
|
268
|
+
* 返回 false 表示无在途提问(提供方未调用 / 已消费)。
|
|
269
|
+
*/
|
|
270
|
+
answerQuestion(answers: readonly string[]): boolean;
|
|
271
|
+
/**
|
|
272
|
+
* 追加计划任务项(SESSION_APPEND_TASK 落点):在现有 plan 末尾追加新任务项
|
|
273
|
+
*/
|
|
274
|
+
appendPlanItem(description: string): number;
|
|
275
|
+
/**
|
|
276
|
+
* 卸载运行态挂载物:清空检查点计划与任务项推进日志(宿主任务流结束/停止/异常广播 idle 前调用),
|
|
277
|
+
* 回到"空闲 = 无挂载物"的资源层常态;会话历史与记忆等资源层内容不受影响。
|
|
278
|
+
*/
|
|
279
|
+
clearPlan(): void;
|
|
280
|
+
/**
|
|
281
|
+
* turn 结束自动收尾:非暂停态 → 无条件 clearPlan(任务表收紧为 turn 内能力,不跨 turn 残留)。
|
|
257
282
|
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
283
|
+
* 任务表生命周期 = 单个 turn:LLM 在 turn 内编排并完成任务表;chat() 流退出(turn 真正结束)
|
|
284
|
+
* 时,无论任务项是否全部标记完成,都清空运行时挂载物(checkpoint.plan 与 planItemLog)。这样:
|
|
285
|
+
* ① 宏任务一个 turn 完不成 → 本 turn 结束兜底丢弃,下个 turn 由 LLM 重新规划全新任务表;
|
|
286
|
+
* ② 续跑轮(resumeExecution = ask_user 问答/暂停补充)是同一 turn 的闭环收尾,与 chat() 同构
|
|
287
|
+
* 走本方法——turn 真正结束即无条件清空,chat() 与续跑轮共用本收口点。
|
|
260
288
|
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
* - 'persona' → PersonaManager.reload() 清空缓存重新扫描 personas/ 目录(保持激活角色)
|
|
264
|
-
* - 'rule' → 无操作(rule 类型已由 ConfigManager.addRule() 即时注入 system prompt)
|
|
265
|
-
* - 'guardrail' → 抛错(guardrail 是 AgentLoop 的 readonly 数组,需 rebuildComponents 才能重载)
|
|
266
|
-
* - undefined → 重载 skill + persona(全量重载,不含 guardrail)
|
|
289
|
+
* 唯一例外是暂停态(pauseMeta):turn 尚未真正结束,暂停恢复后要继续用 plan 推进,
|
|
290
|
+
* 故保留不清;恢复完成后该 turn 最终退出时仍会走本方法无条件清空。
|
|
267
291
|
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
292
|
+
* 运行时状态(plan/planItemLog)清空,但对话记录里的 round-block 折叠块已沉淀为历史(不落盘删除)。
|
|
293
|
+
* 挂点:chat() 与 resumeExecution 的 finally 块(generator close 时触发,确保所有 yield 已被宿主消费)
|
|
270
294
|
*/
|
|
271
|
-
|
|
272
|
-
skill: number;
|
|
273
|
-
persona: number;
|
|
274
|
-
}>;
|
|
295
|
+
private clearPlanOnTurnEnd;
|
|
275
296
|
/**
|
|
276
|
-
*
|
|
297
|
+
* 内核→宿主信号:当前会话是否可"无输入续跑"(决定暂停按钮显隐 + 暂停后继续 UI)
|
|
277
298
|
*
|
|
278
|
-
*
|
|
279
|
-
*
|
|
299
|
+
* 真值条件:① 状态机已 paused(已软暂停必可续跑,最高优先级——pauseRequested 在下一 step 边界才挂起,
|
|
300
|
+
* 彼时 inAutonomousStep 已重置为 false,仅看它会误报);② loop 在自主工具步(可暴露暂停按钮在边界挂起);
|
|
301
|
+
* ③ 存在未完成的计划任务项(多轮任务可续跑下一轮)。三者皆否(纯单轮、无待续目标)→ 隐藏暂停按钮(仅停止)。
|
|
280
302
|
*/
|
|
281
|
-
|
|
303
|
+
canContinueWithoutInput(): boolean;
|
|
282
304
|
/**
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
*
|
|
286
|
-
* @param requires 需要检查的组件列表
|
|
305
|
+
* 触发会话异常(公开 API,宿主显式调用):仅 RUNNING 状态可触发,异常时自动创建检查点保存状态。
|
|
306
|
+
* 生产内部无调用者——运行时异常(LLM 超时/工具失败)走 yield {type:'error'} 事件流不翻状态机;
|
|
307
|
+
* 本 API 供宿主在自定义异常(如外部服务故障)显式触发,或经检查点恢复回填进入 ERROR 态。
|
|
287
308
|
*/
|
|
288
|
-
|
|
309
|
+
triggerError(cause: string): boolean;
|
|
289
310
|
/**
|
|
290
|
-
*
|
|
311
|
+
* 从异常恢复:校验恢复条件(error.recovered === true 且 cause 已解除)
|
|
291
312
|
*/
|
|
292
|
-
|
|
313
|
+
recover(): boolean;
|
|
293
314
|
/**
|
|
294
|
-
*
|
|
295
|
-
*
|
|
296
|
-
*
|
|
297
|
-
* 仍由 close() 显式调用,顺序敏感不可合并。
|
|
315
|
+
* 创建会话检查点:快照当前运行时状态(热记忆等),生成纯内存态快照
|
|
316
|
+
* (不落盘、无序列化/恢复路径——中止/断电走「中断轮补全为完整 turn」)。
|
|
317
|
+
* 无 role/standard 会话能力位,createCheckpoint 仅收 mainGoal。
|
|
298
318
|
*/
|
|
299
|
-
|
|
300
|
-
get initialized(): boolean;
|
|
301
|
-
get context(): AgentContext | null;
|
|
302
|
-
get agentLoop(): AgentLoop | null;
|
|
319
|
+
createCheckpoint(mainGoal?: string): SessionCheckpoint | null;
|
|
303
320
|
/**
|
|
304
|
-
*
|
|
321
|
+
* 获取当前检查点
|
|
322
|
+
*/
|
|
323
|
+
getCheckpoint(): SessionCheckpoint | null;
|
|
324
|
+
/**
|
|
325
|
+
* 获取最近一次处理线程的工具执行历史(loop 域聚合出口,补待办 #3)
|
|
305
326
|
*
|
|
306
|
-
*
|
|
307
|
-
*
|
|
327
|
+
* 数据源自 sessionManager 检查点的 completedToolCalls(已由
|
|
328
|
+
* AGENT_CONSTANTS.COMPLETED_TOOL_CALLS_MAX 做 FIFO 封顶)。本方法剥离「恢复/幂等」内部
|
|
329
|
+
* 语义,提供稳定的 execute 域只读契约——宿主可在透明面板/观测面消费本轮及历史的工具调用
|
|
330
|
+
* 明细(工具名 / 成败 / 结果摘要),与累计 AgentMetrics.tools 互补。
|
|
308
331
|
*
|
|
309
|
-
* @param
|
|
332
|
+
* @param limit 返回条数上限(默认取封顶上限,超界由调用方控制,取最近 limit 条)
|
|
333
|
+
* @returns 工具执行记录(记录顺序:时间正序即旧→新;无记录返回空数组;返回浅拷贝防宿主改动检查点)
|
|
310
334
|
*/
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
335
|
+
getRecentToolExecutions(limit?: number): ToolExecutionRecord[];
|
|
336
|
+
/**
|
|
337
|
+
* 向 loop 注入 system 消息
|
|
338
|
+
*/
|
|
339
|
+
injectSystemMessage(message: string): void;
|
|
316
340
|
/**
|
|
317
|
-
*
|
|
341
|
+
* 从指定 Round 位置分叉当前会话(委托至 SessionManager):
|
|
342
|
+
* round-based 模式唯一分叉方式——创建新会话,复制 Round ID 列表(指针复制),
|
|
343
|
+
* 新会话是完全平等的普通会话。记忆索引全局共享不受影响。
|
|
318
344
|
*
|
|
319
|
-
*
|
|
320
|
-
*
|
|
345
|
+
* 自动命名场景(未传 targetSession):分叉后异步触发 SessionNamer 为新会话生成标题
|
|
346
|
+
* (best-effort,不阻塞分叉返回);用户显式指定会话名时尊重用户命名,不触发 LLM 覆盖。
|
|
321
347
|
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
348
|
+
* @param roundId - 分叉点的 Round ID(可选;不传默认使用最后一个 Round)
|
|
349
|
+
* @param targetSession - 可选,自定义新会话名
|
|
350
|
+
*/
|
|
351
|
+
forkSession(roundId?: string, targetSession?: string): AgentForkResult;
|
|
352
|
+
/**
|
|
353
|
+
* 分叉会话首轮命名(best-effort,fire-and-forget)
|
|
324
354
|
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
355
|
+
* 分叉新会话是平等普通会话,自动命名(未提供 targetSession)时应拥有 LLM 生成的语义标题。
|
|
356
|
+
* 取新会话第一个 Round 的用户消息作为命名输入(分叉点即新会话起点,语义=首轮问答);
|
|
357
|
+
* SessionNamer 内部已有 autoName 存在即跳过(幂等),LLM 失败/无价值降级占位标题。
|
|
328
358
|
*
|
|
329
|
-
* @
|
|
359
|
+
* @param result - 分叉结果(含新会话名/日期/Round 列表)
|
|
330
360
|
*/
|
|
331
|
-
|
|
361
|
+
private ensureForkSessionTitle;
|
|
332
362
|
/**
|
|
333
|
-
*
|
|
363
|
+
* 切换到指定项目:切换后自动 rebuildComponents();Agent 级记忆存储(宿主注入,实例不随项目切换重建)保留,项目级配置(.memora/)重新加载
|
|
334
364
|
*
|
|
335
|
-
*
|
|
336
|
-
*
|
|
365
|
+
* `nameOrPath` 只接受两种输入:① 项目注册表中的项目名(依赖注册表跨项目共享,见 dataDir/registryDir);
|
|
366
|
+
* ② 项目根目录的**绝对路径**。二者都不满足时抛 configError——否则相对串会以 process.cwd()
|
|
367
|
+
* 为基准解析,静默造出非预期的项目目录并占用其锁。
|
|
337
368
|
*/
|
|
338
|
-
|
|
369
|
+
switchProject(nameOrPath: string): Promise<AgentContext>;
|
|
339
370
|
/**
|
|
340
|
-
*
|
|
371
|
+
* 组装所有运行时组件(一行委托给 assembler 工厂)
|
|
341
372
|
*
|
|
342
|
-
*
|
|
373
|
+
* 接线回调(工具幂等 outbox / 任务表 / loop 回调 / createSessionManager)与装配私有状态
|
|
374
|
+
* (暂存队列 / 停滞计数器)全部由 assembler 组装收口——Agent 只注入稳定能力(hooks)。
|
|
343
375
|
*/
|
|
344
|
-
|
|
376
|
+
private assembleComponents;
|
|
377
|
+
setProvider(provider: LlmProvider): void;
|
|
345
378
|
/**
|
|
346
|
-
*
|
|
379
|
+
* 运行时更新上下文窗口上限(token)
|
|
380
|
+
*
|
|
381
|
+
* 模型热切换配套:同步三处装配期值拷贝(loop 截断/软上限、ContextManager 阈值、
|
|
382
|
+
* ContextPreparer 预算与占用快照),全部对新窗口即刻生效。对话进行中禁止更新
|
|
383
|
+
* (与 setProvider 同守卫)。
|
|
347
384
|
*
|
|
348
|
-
*
|
|
385
|
+
* @param tokens 新窗口 token 数
|
|
349
386
|
*/
|
|
350
|
-
|
|
387
|
+
setContextWindow(tokens: number): void;
|
|
351
388
|
/**
|
|
352
|
-
*
|
|
389
|
+
* 运行时更新 per-LLM 输出预算默认值(token)
|
|
390
|
+
*
|
|
391
|
+
* Provider 热切换配套(与 setContextWindow 同链路):同步 #config 拷贝并即时生效于 loop——
|
|
392
|
+
* 切换 Provider 后新配置的 maxTokens 无需重装 Agent。undefined = 清除(回服务端默认)。
|
|
393
|
+
* 不设 assertNotBusy:maxTokens 是请求参数(非上下文结构),轮内下一迭代即用新值,无一致性风险。
|
|
353
394
|
*
|
|
354
|
-
*
|
|
395
|
+
* @param tokens 新输出预算(token);undefined 清除
|
|
355
396
|
*/
|
|
356
|
-
|
|
397
|
+
setMaxTokens(tokens: number | undefined): void;
|
|
357
398
|
/**
|
|
358
|
-
*
|
|
399
|
+
* 读取本轮请求体**实际**携带的 max_tokens(生效值),供宿主取证面写 meta。
|
|
359
400
|
*
|
|
360
|
-
*
|
|
401
|
+
* 薄委托:优先级裁决收敛在 AgentLoop.buildChatOptions(见其注释),此处不复制规则——
|
|
402
|
+
* 否则「谁压过谁」会在宿主侧长出第二真理源。loop 未装配时返回 undefined。
|
|
361
403
|
*/
|
|
362
|
-
|
|
404
|
+
getEffectiveMaxTokens(): number | undefined;
|
|
405
|
+
setBackgroundProvider(provider: LlmProvider | null): void;
|
|
363
406
|
/**
|
|
364
|
-
*
|
|
365
|
-
*
|
|
366
|
-
* 返回 null 时表示 Agent 未初始化或存储层未就绪。
|
|
367
|
-
* 宿主项目常用模式:`const mem = agent.memory; if (!mem) return [];`
|
|
407
|
+
* 运行时切换归档模式:对话进行中禁止切换(避免本轮 postProcess 行为不一致),无变更幂等返回
|
|
368
408
|
*/
|
|
369
|
-
|
|
409
|
+
setArchiveMode(mode: ArchiveMode): void;
|
|
370
410
|
/**
|
|
371
|
-
*
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
*
|
|
376
|
-
* @
|
|
377
|
-
* @returns 去重报告(扫描数 / 降级 ID 列表 / 跳过原因)
|
|
411
|
+
* 查询当前归档模式(宿主 UI 可据此同步显示)
|
|
412
|
+
*/
|
|
413
|
+
getArchiveMode(): ArchiveMode;
|
|
414
|
+
/**
|
|
415
|
+
* 获取角色包切换锁定状态(透传 RolePackManager,宿主 IPC 层据此区分"切换失败"原因)
|
|
416
|
+
* @returns locked 是否锁定;unlockAt 锁定自动恢复时间戳(ms epoch),未锁定时为 null
|
|
378
417
|
*/
|
|
379
|
-
|
|
418
|
+
getRolePackSwitchLockStatus(): {
|
|
419
|
+
locked: boolean;
|
|
420
|
+
unlockAt: number | null;
|
|
421
|
+
};
|
|
380
422
|
/**
|
|
381
|
-
*
|
|
423
|
+
* 获取当前激活角色包的 traits(宿主情感计算 API)
|
|
382
424
|
*
|
|
383
|
-
*
|
|
384
|
-
|
|
425
|
+
* @returns traits 键值对,无激活角色包或无 traits 时返回 undefined
|
|
426
|
+
*/
|
|
427
|
+
getActiveTraits(): Record<string, number> | undefined;
|
|
428
|
+
/**
|
|
429
|
+
* 刷新 AgentLoop 的 systemPromptPrefix(SSOT:buildSystemPromptPrefix)
|
|
385
430
|
*
|
|
386
|
-
*
|
|
387
|
-
*
|
|
388
|
-
*
|
|
431
|
+
* 角色包是 system prompt 的唯一注入源。调用时机:手动切换成功后、reloadConfig 重载后;
|
|
432
|
+
* loop 为 null 时静默跳过(init 前或 close 后边界)。统一走 buildSystemPromptPrefix 真理源,
|
|
433
|
+
* 全局技能清单也在该前缀内(不能只拼 rolePackPrompt)。等价于「按 activePack 视角刷新」(roundRole=null)。
|
|
434
|
+
*/
|
|
435
|
+
private refreshRolePackPrefixOnLoop;
|
|
436
|
+
/**
|
|
437
|
+
* 会议阶梯推进:按当前 active 任务项的 rolePack 派生本轮装配视角。
|
|
389
438
|
*
|
|
390
|
-
*
|
|
391
|
-
*
|
|
439
|
+
* 由 assembler.getTaskTable 每轮注入时驱动(hooks.applyActivePlanItemAssembly),与任务表渲染同源,
|
|
440
|
+
* 保证后继 step 换角色即时生效(装配视角不能只在 prepare.run 设一次,否则展示层正确/装配层冻结)。
|
|
441
|
+
* roundRole=candidate(可能为 null,无有效覆盖时回落 activePack 组长),调 refreshRolePackPrefixForRound 重建前缀。
|
|
442
|
+
* 防重:candidate 与 rolePackManager 当前 roundAssemblyPerspective 一致则跳过,避免每轮迭代重复重建。
|
|
392
443
|
*/
|
|
393
|
-
|
|
444
|
+
private applyActivePlanItemAssemblyIfChanged;
|
|
394
445
|
/**
|
|
395
|
-
*
|
|
446
|
+
* 按本轮表层装配视角刷新 AgentLoop 前缀(会议机制)
|
|
396
447
|
*
|
|
397
|
-
*
|
|
398
|
-
*
|
|
448
|
+
* roundRole=null(日常态)→ 回落 activePack 前缀;roundRole 为任务项角色 → 该角色
|
|
449
|
+
* persona/rules/skills 全量表层装配(buildSystemPrompt(name))。策略键恒为 activePack:
|
|
450
|
+
* ChatOptions(temperature/outputLimit)由 activePack 策略构建,不随视角变(键不换防抖动)。
|
|
451
|
+
* 由 seed prepare 每轮调用(`refreshRolePackPrefixForRound` 契约),保证前缀始终匹配本轮装配角色。
|
|
399
452
|
*/
|
|
400
|
-
|
|
453
|
+
private refreshRolePackPrefixForRound;
|
|
401
454
|
/**
|
|
402
|
-
*
|
|
455
|
+
* 从当前激活的角色包策略构建 ChatOptions 覆盖项
|
|
456
|
+
* 将 act.temperature / act.outputLimit 映射到 ChatOptions 字段;输出上限最终与 per-LLM 默认值
|
|
457
|
+
* 取**更小值**(两者皆为「上限」,须同时满足)——收敛在 `buildChatOptions`,此处不裁决大小。
|
|
458
|
+
*/
|
|
459
|
+
private buildChatOptionsFromStrategy;
|
|
460
|
+
/**
|
|
461
|
+
* 角色包系统的唯一切换入口(自动匹配 + 手动切换共用):activate 更新激活态 → 发射 rolePackSwitched 事件
|
|
462
|
+
* → 刷新 AgentLoop 前缀 → 同步工具白名单。
|
|
463
|
+
* @returns 是否切换成功。false 有两种成因(**均不发射切换事件**):角色包不存在、
|
|
464
|
+
* 切换锁已激活(30s 内超 5 次限流);调用方须以 getRolePackSwitchLockStatus() 区分,
|
|
465
|
+
* 不可由「返回 false + 未收到 rolePackSwitchLocked」推断为"不存在"(被锁时该事件不发射,
|
|
466
|
+
* 仅在**触发锁定**的那一次切换中发射,而那一次返回 true)。同名切换幂等返回 true。
|
|
467
|
+
*/
|
|
468
|
+
switchRolePack(name: string): boolean;
|
|
469
|
+
/**
|
|
470
|
+
* 手动归档会话(更新 SessionMeta,委托 ArchiveCoordinator)
|
|
403
471
|
*
|
|
404
|
-
*
|
|
405
|
-
*
|
|
472
|
+
* 适用于 manual 模式(用户手动触发;full 模式由宿主切换前自动调用)。
|
|
473
|
+
* options 透传给 ArchiveCoordinator:宿主自动触发传 { autoTriggered: true }(按其模式判断),
|
|
474
|
+
* 用户手动触发省略 options(默认 autoTriggered=false,无条件执行)。
|
|
406
475
|
*
|
|
407
|
-
* @
|
|
408
|
-
* @returns 冲突报告(扫描数 / 冲突数 / 冲突详情列表 / 跳过原因)
|
|
476
|
+
* @returns 归档结果(updatedFields 可能为空,表示无归档价值或 LLM 失败)
|
|
409
477
|
*/
|
|
410
|
-
|
|
478
|
+
archiveSession(date: string, session: string, options?: ArchiveTriggerOptions): Promise<SessionArchiveResult>;
|
|
411
479
|
/**
|
|
412
|
-
*
|
|
413
|
-
*
|
|
414
|
-
*
|
|
480
|
+
* 重载配置类记忆:从 configDir 重新扫描指定 source 并更新内存缓存(设定记忆纯文件装载,不写记忆库),使当前会话立即生效(无需重启)。
|
|
481
|
+
* - 'skill' → SkillManager.reload() 重扫 skills/
|
|
482
|
+
* - 'rolePack' → RolePackManager.reload() 重扫 role-packs/(保持激活角色,刷新 AgentLoop 前缀)
|
|
483
|
+
* - 'rule' → 经角色包管理机制热更新(即 rolePack)
|
|
484
|
+
* - undefined → 全量重载 skill + rolePack
|
|
415
485
|
*/
|
|
416
|
-
|
|
486
|
+
reloadConfig(source?: string): Promise<{
|
|
487
|
+
skill: number;
|
|
488
|
+
rolePack: number;
|
|
489
|
+
}>;
|
|
417
490
|
/**
|
|
418
|
-
*
|
|
419
|
-
*
|
|
420
|
-
* 返回 null 时表示 Agent 未初始化。
|
|
421
|
-
* 宿主常用模式:
|
|
422
|
-
* - `agent.userProfile?.getPending()` 查询待确认条目
|
|
423
|
-
* - `await agent.userProfile?.confirm(id)` 确认条目
|
|
424
|
-
* - `await agent.userProfile?.reject(id)` 拒绝条目
|
|
491
|
+
* 重建内部组件(history / loop / managers):通常由 switchProject() 自动触发,仅强制刷新时手动调用
|
|
425
492
|
*/
|
|
426
|
-
|
|
493
|
+
rebuildComponents(): Promise<void>;
|
|
427
494
|
/**
|
|
428
|
-
*
|
|
495
|
+
* 检查 Agent 是否已初始化(methodName 用于错误消息,requires 为需检查的组件列表)
|
|
496
|
+
*/
|
|
497
|
+
private assertInitialized;
|
|
498
|
+
/**
|
|
499
|
+
* 断言对话未进行中(统一守卫):破坏状态一致性的入口统一在此做 isBusy 检查。
|
|
500
|
+
* reloadConfig 不使用本方法——它在 isBusy 时需暂存 source 而非直接抛错。
|
|
501
|
+
*/
|
|
502
|
+
private assertNotBusy;
|
|
503
|
+
private get requireLoop();
|
|
504
|
+
private get requireArchiveCoordinator();
|
|
505
|
+
private get requireSessionManager();
|
|
506
|
+
/**
|
|
507
|
+
* 获取角色包管理器(system prompt 的唯一注入源,返回 null 表示 Agent 未初始化)
|
|
508
|
+
*/
|
|
509
|
+
get rolePackManager(): RolePackManager | null;
|
|
510
|
+
/**
|
|
511
|
+
* 获取当前激活的 L2 行为策略:从激活角色包读取,未激活时用全局默认值;供各阶段按策略调整行为
|
|
512
|
+
*/
|
|
513
|
+
getActiveStrategy(): BehaviorStrategy;
|
|
514
|
+
/**
|
|
515
|
+
* 应用当前角色包的工具暴露面(换角色 → 工具集切换):声明 capabilities 时解析为工具白名单,未声明放行全部。
|
|
516
|
+
* 空数组(parseCapabilities 对 undefined 返回 [])同样视为"未声明能力"放行全部,避免误解释为"禁止所有"。
|
|
517
|
+
* toolMode=block 全禁与此正交;变更经 setToolWhitelist → onToolsChanged 链路同步 loop 快照与 system prompt。
|
|
518
|
+
*/
|
|
519
|
+
private applyRolePackToolExposure;
|
|
520
|
+
/**
|
|
521
|
+
* 立即执行一次孤儿 Round 垃圾回收(宿主手动触发入口)。
|
|
429
522
|
*
|
|
430
|
-
*
|
|
431
|
-
*
|
|
432
|
-
* - `agent.security?.onWriteConfirmation(callback)` 注册写入确认回调
|
|
433
|
-
* - 回调返回 true 允许写入,返回 false 拒绝写入
|
|
523
|
+
* roundStore+storage 未注入时返回空统计(降级不报错);
|
|
524
|
+
* 对话进行中(chatLock busy)经 shouldSkip 跳过并返回空统计。
|
|
434
525
|
*
|
|
435
|
-
*
|
|
526
|
+
* @returns GC 结果统计(scanned/deleted/memoryCleaned 等)
|
|
436
527
|
*/
|
|
437
|
-
|
|
528
|
+
gcNow(): GCResult;
|
|
438
529
|
/**
|
|
439
|
-
*
|
|
440
|
-
*
|
|
441
|
-
* 返回 null 时表示 Agent 未初始化。
|
|
442
|
-
* 宿主常用模式:
|
|
443
|
-
* - `agent.works?.ensureProjection(filePath, content)` 读取文件后触发生成
|
|
444
|
-
* - `agent.works?.loadAll()` 获取所有投影
|
|
530
|
+
* 关闭 Agent,释放存储连接等资源
|
|
445
531
|
*/
|
|
532
|
+
close(): Promise<void>;
|
|
533
|
+
/**
|
|
534
|
+
* 统一 null 化所有组件字段(新增 Manager 时在此追加一行);带副作用的清理仍由 close() 显式调用,顺序敏感不可合并
|
|
535
|
+
*/
|
|
536
|
+
private nullifyAllComponents;
|
|
537
|
+
get initialized(): boolean;
|
|
538
|
+
get context(): AgentContext | null;
|
|
539
|
+
/**
|
|
540
|
+
* 获取 AgentLoop 实例(宿主集成面,用于 restoreHistory 等底层操作;getMessages/getMessageCount 无法替代)
|
|
541
|
+
*/
|
|
542
|
+
get agentLoop(): AgentLoop | null;
|
|
543
|
+
/**
|
|
544
|
+
* 获取当前消息列表(只读副本,不可绕过编排链路直接修改)
|
|
545
|
+
*/
|
|
546
|
+
getMessages(): readonly Message[];
|
|
547
|
+
/** 获取当前消息数量 */
|
|
548
|
+
getMessageCount(): number;
|
|
549
|
+
/**
|
|
550
|
+
* 获取 MessageHistory 实例(宿主集成面,用于日期/会话判断等底层操作;
|
|
551
|
+
* currentDateValue/currentSessionValue 等只读属性无替代接口)
|
|
552
|
+
*/
|
|
553
|
+
get agentHistory(): MessageHistory | null;
|
|
554
|
+
/**
|
|
555
|
+
* 注入情感基调到 system prompt:委托 AgentLoop.injectAffect(),在角色前缀与 bootstrap 记忆间插入情感描述;
|
|
556
|
+
* 与角色切换独立(切换角色不清除情感注入),传空串清除。
|
|
557
|
+
*/
|
|
558
|
+
injectAffect(affectString: string): void;
|
|
559
|
+
get provider(): LlmProvider;
|
|
560
|
+
get isBusy(): boolean;
|
|
561
|
+
get lastInteractionAt(): Date | null;
|
|
562
|
+
/** 记忆治理统一门面(语义去重 / 来源健康诊断 / 冲突检测 / 建议推荐),Agent 上的记忆管理方法统一收口于此(无显式衰减层面) */
|
|
563
|
+
get governance(): MemoryGovernance | null;
|
|
564
|
+
/**
|
|
565
|
+
* 后台任务统计快照(宿主观测后台副作用健康度,纯只读转发 utils 单例)。
|
|
566
|
+
* @returns 在途 / 成功 / 失败计数
|
|
567
|
+
*/
|
|
568
|
+
getBackgroundTaskStats(): BackgroundTaskStats;
|
|
569
|
+
/**
|
|
570
|
+
* 获取 Agent 运行时指标快照(可观测性):聚合 AgentLoop 指标与 Agent 层治理指标;
|
|
571
|
+
* 未初始化返回全零默认值(不抛异常),纯只读同步零副作用,适合宿主定期轮询监控面板。
|
|
572
|
+
*/
|
|
573
|
+
getMetrics(): AgentMetrics;
|
|
574
|
+
/** 角色包管理器(角色+技能+规则的唯一真理源,system prompt 的唯一注入源) */
|
|
575
|
+
get rolePack(): RolePackManager | null;
|
|
576
|
+
/** 工具执行器(返回 null 表示 Agent 未初始化) */
|
|
577
|
+
get tools(): ToolExecutor | null;
|
|
578
|
+
/** 技能管理器(返回 null 表示未初始化或技能系统未加载) */
|
|
579
|
+
get skills(): SkillManager | null;
|
|
580
|
+
/** 角色包管理器(返回 null 表示未初始化或角色包系统未加载) */
|
|
581
|
+
get rolePacks(): RolePackManager | null;
|
|
582
|
+
/** 记忆查看器(快照 + 搜索 + 统计;宿主常用 `const mem = agent.memory; if (!mem) return []`) */
|
|
583
|
+
get memory(): MemoryInspector | null;
|
|
584
|
+
/** 项目管理器(返回 null 表示 Agent 未初始化) */
|
|
585
|
+
get projects(): ProjectManager | null;
|
|
586
|
+
/** 安全守卫(写入确认回调注册:`onWriteConfirmation` 返回 true 放行、false 拒绝;未初始化/projectPath 未设为 null) */
|
|
587
|
+
get security(): SecurityGuard | null;
|
|
588
|
+
/** 作品投影管理器(用户主动登记的 JSON 极简索引;`registerWork`/`listWorks`/`loadAndGetContextBlock`/`isFileMalformed`) */
|
|
446
589
|
get works(): WorkProjectionManager | null;
|
|
447
|
-
/**
|
|
590
|
+
/** 会话管理器(会话恢复/切换/分叉功能) */
|
|
448
591
|
get sessionManager(): SessionManager | null;
|
|
449
|
-
/**
|
|
592
|
+
/** 文本润色管理器(polish 方法) */
|
|
450
593
|
get polish(): TextPolishManager | null;
|
|
451
594
|
}
|
|
452
595
|
//# sourceMappingURL=agent.d.ts.map
|