@zooique/memora 2.0.3 → 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 -272
- package/README.md +303 -260
- package/config.example.json +43 -0
- package/dist/agent/agent.d.ts +376 -408
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +1166 -926
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +105 -43
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +543 -75
- 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 +225 -38
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +748 -132
- 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 +137 -20
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +152 -20
- package/dist/agent/constants.js.map +1 -1
- package/dist/agent/contextManager.d.ts +119 -77
- package/dist/agent/contextManager.d.ts.map +1 -1
- package/dist/agent/contextManager.js +192 -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 +716 -295
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +2178 -664
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/archiveCoordinator.d.ts +14 -171
- package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
- package/dist/agent/managers/archiveCoordinator.js +19 -287
- 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 +31 -115
- package/dist/agent/managers/dedupManager.d.ts.map +1 -1
- package/dist/agent/managers/dedupManager.js +48 -136
- package/dist/agent/managers/dedupManager.js.map +1 -1
- 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 +8 -25
- package/dist/agent/managers/llmJudgeHelper.d.ts.map +1 -1
- package/dist/agent/managers/llmJudgeHelper.js +7 -24
- package/dist/agent/managers/llmJudgeHelper.js.map +1 -1
- 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 +85 -207
- package/dist/agent/managers/memoryAdvisor.js.map +1 -1
- package/dist/agent/managers/memoryGovernance.d.ts +10 -42
- package/dist/agent/managers/memoryGovernance.d.ts.map +1 -1
- package/dist/agent/managers/memoryGovernance.js +19 -36
- package/dist/agent/managers/memoryGovernance.js.map +1 -1
- package/dist/agent/managers/memoryInspector.d.ts +59 -268
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +91 -442
- 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 -68
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +76 -147
- 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 +8 -33
- package/dist/agent/managers/streamAccumulator.d.ts.map +1 -1
- package/dist/agent/managers/streamAccumulator.js +4 -29
- package/dist/agent/managers/streamAccumulator.js.map +1 -1
- 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 +9 -41
- 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 +55 -100
- package/dist/agent/managers/workProjection.d.ts.map +1 -1
- package/dist/agent/managers/workProjection.js +164 -268
- 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 +236 -10
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +932 -21
- 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 +510 -169
- 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 +27 -98
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +110 -223
- package/dist/config/loader.js.map +1 -1
- package/dist/index.d.ts +67 -77
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +90 -69
- 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 +22 -32
- package/dist/llm/factory.d.ts.map +1 -1
- package/dist/llm/factory.js +29 -46
- 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 +179 -120
- 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 -31
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +28 -215
- 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 +11 -44
- package/dist/memory/governance.d.ts.map +1 -1
- package/dist/memory/governance.js +11 -64
- package/dist/memory/governance.js.map +1 -1
- 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 +25 -175
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +32 -221
- 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 +2 -2
- package/dist/memory/lockManager.d.ts.map +1 -1
- package/dist/memory/lockManager.js +6 -8
- package/dist/memory/lockManager.js.map +1 -1
- package/dist/memory/projectManager.d.ts +30 -129
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +39 -189
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/projectRegistry.d.ts +14 -62
- package/dist/memory/projectRegistry.d.ts.map +1 -1
- package/dist/memory/projectRegistry.js +27 -111
- 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 +10 -12
- package/dist/memory/sourceValidation.d.ts.map +1 -1
- package/dist/memory/sourceValidation.js +16 -32
- package/dist/memory/sourceValidation.js.map +1 -1
- package/dist/memory/storageInterface.d.ts +44 -150
- package/dist/memory/storageInterface.d.ts.map +1 -1
- package/dist/memory/types.d.ts +65 -164
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +81 -83
- 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 +136 -19
- package/dist/skill/skillManager.d.ts.map +1 -1
- package/dist/skill/skillManager.js +312 -61
- 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 -16
- 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 +40 -72
- package/dist/utils/configResourceManager.d.ts.map +1 -1
- package/dist/utils/configResourceManager.js +78 -76
- package/dist/utils/configResourceManager.js.map +1 -1
- package/dist/utils/errors.d.ts +44 -69
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +54 -71
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +104 -103
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js +37 -45
- 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 +2 -3
- 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 +25 -3
- package/dist/utils/math.d.ts.map +1 -1
- package/dist/utils/math.js +32 -16
- 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 -19
- package/dist/utils/segmenter.d.ts.map +1 -1
- package/dist/utils/segmenter.js +230 -97
- 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 +416 -476
- package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +841 -806
- 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 -100
- 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 -49
- package/dist/agent/guardrail.d.ts.map +0 -1
- package/dist/agent/guardrail.js +0 -59
- 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 -146
- package/dist/agent/managers/autoConfigRefiner.js.map +0 -1
- package/dist/agent/managers/configManager.d.ts +0 -209
- package/dist/agent/managers/configManager.d.ts.map +0 -1
- package/dist/agent/managers/configManager.js +0 -331
- 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 -239
- package/dist/agent/managers/memoryDecayScheduler.d.ts.map +0 -1
- package/dist/agent/managers/memoryDecayScheduler.js +0 -413
- 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 -88
- 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 -79
- 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 -50
- package/dist/memory/hybridMerge.d.ts.map +0 -1
- package/dist/memory/hybridMerge.js +0 -51
- package/dist/memory/hybridMerge.js.map +0 -1
- package/dist/memory/inMemoryRelationStore.d.ts +0 -58
- package/dist/memory/inMemoryRelationStore.d.ts.map +0 -1
- package/dist/memory/inMemoryRelationStore.js +0 -80
- package/dist/memory/inMemoryRelationStore.js.map +0 -1
- package/dist/memory/loader.d.ts +0 -51
- package/dist/memory/loader.d.ts.map +0 -1
- package/dist/memory/loader.js +0 -100
- package/dist/memory/loader.js.map +0 -1
- package/dist/memory/recall.d.ts +0 -82
- package/dist/memory/recall.d.ts.map +0 -1
- package/dist/memory/recall.js +0 -157
- package/dist/memory/recall.js.map +0 -1
- package/dist/memory/relationStore.d.ts +0 -95
- 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 -71
- package/dist/memory/store.d.ts.map +0 -1
- package/dist/memory/store.js +0 -199
- package/dist/memory/store.js.map +0 -1
- package/dist/memory/userProfile.d.ts +0 -180
- package/dist/memory/userProfile.d.ts.map +0 -1
- package/dist/memory/userProfile.js +0 -381
- package/dist/memory/userProfile.js.map +0 -1
- package/dist/memory/vectorStore.d.ts +0 -179
- package/dist/memory/vectorStore.d.ts.map +0 -1
- package/dist/memory/vectorStore.js +0 -284
- package/dist/memory/vectorStore.js.map +0 -1
- package/dist/persona/personaManager.d.ts +0 -109
- package/dist/persona/personaManager.d.ts.map +0 -1
- package/dist/persona/personaManager.js +0 -315
- 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
|
@@ -1,158 +1,92 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ONE_DAY_MS } from '../../memory/recall.js';
|
|
3
|
-
import { nowIso } from '../../utils/time.js';
|
|
1
|
+
import { nowIso, ONE_DAY_MS } from '../../utils/time.js';
|
|
4
2
|
import { roundTo } from '../../utils/math.js';
|
|
5
|
-
//
|
|
3
|
+
// 召回排除默认值 SSOT 共享(设定记忆已归角色包,默认不排除)
|
|
4
|
+
import { DEFAULT_RECALL_EXCLUDE_SOURCES } from '../../utils/recallDefaults.js';
|
|
5
|
+
// LLM judge 高阶函数(流式累积 + parseLlmJson + configError 封装)
|
|
6
6
|
import { judgeWithLlm } from '../../agent/managers/llmJudgeHelper.js';
|
|
7
|
-
import {
|
|
7
|
+
import { byAccessedDesc } from '../../utils/array.js';
|
|
8
8
|
import { truncate } from '../../utils/strings.js';
|
|
9
9
|
import { logger } from '../../logging/logger.js';
|
|
10
|
-
//
|
|
10
|
+
// 治理源列表 SSOT(设定记忆已归角色包)
|
|
11
11
|
import { GOVERNANCE_SOURCES } from '../../memory/governance.js';
|
|
12
12
|
// ─── 常量 ────────────────────────────────────────────────
|
|
13
13
|
/** 关联推荐:每个 source 采样 top-N 条 */
|
|
14
14
|
const SUGGEST_TOP_PER_SOURCE = 3;
|
|
15
|
-
/**
|
|
15
|
+
/** 关联推荐:时效性窗口(天),超过此天数 relevance 归零(score 退役后纯时效排序) */
|
|
16
16
|
const SUGGEST_RECENCY_WINDOW_DAYS = 30;
|
|
17
|
-
/**
|
|
17
|
+
/** 推荐内容预览字符数 */
|
|
18
18
|
const ADVISOR_PREVIEW_LEN = 120;
|
|
19
|
-
/** source 健康度阈值(低于此值或超期触发 critical/warning) */
|
|
20
|
-
const SOURCE_HEALTH_THRESHOLDS = {
|
|
21
|
-
/** 平均 score 低于此值 → critical */
|
|
22
|
-
CRITICAL_SCORE: 0.2,
|
|
23
|
-
/** 平均 score 低于此值 → warning */
|
|
24
|
-
WARNING_SCORE: 0.5,
|
|
25
|
-
/** 超过此天数未访问 → critical */
|
|
26
|
-
CRITICAL_DAYS: 30,
|
|
27
|
-
/** 超过此天数未访问 → warning */
|
|
28
|
-
WARNING_DAYS: 7,
|
|
29
|
-
};
|
|
30
19
|
// ─── L3 冲突检测常量 ────────────────────────────────────
|
|
31
|
-
|
|
32
|
-
/** 单个 source 内参与配对的记忆条数上限(控制 O(n²) 配对规模) */
|
|
20
|
+
/** 单个 source 内参与配对的条数上限(控制 O(n²) 配对规模) */
|
|
33
21
|
const CONFLICT_CANDIDATES_PER_SOURCE = 10;
|
|
34
22
|
/** 单次 LLM 冲突判断的候选对数上限 */
|
|
35
23
|
const CONFLICT_PAIR_LIMIT = 10;
|
|
36
24
|
/** LLM 冲突判断超时(ms) */
|
|
37
25
|
const CONFLICT_TIMEOUT_MS = 15_000;
|
|
38
|
-
/**
|
|
26
|
+
/** 候选内容预览长度(送入 LLM 前截断) */
|
|
39
27
|
const CONFLICT_CONTENT_PREVIEW_LEN = 200;
|
|
40
28
|
// ─── 类 ──────────────────────────────────────────────────
|
|
41
|
-
/**
|
|
42
|
-
* 记忆顾问
|
|
43
|
-
*
|
|
44
|
-
* 从 MemoryInspector 拆分,负责基于记忆数据的分析计算:
|
|
45
|
-
* - sourceHealth():记忆源健康诊断(数量、score、新鲜度)
|
|
46
|
-
* - suggest():关联推荐(基于 score + 时效性 + 多样性)
|
|
47
|
-
* - detectConflicts():语义冲突检测(L3,可选,backgroundProvider 注入后启用)
|
|
48
|
-
*
|
|
49
|
-
* 与 MemoryInspector 的分工:
|
|
50
|
-
* - MemoryInspector:直接数据查询(snapshot/search/stats/relations + 写操作代理)
|
|
51
|
-
* - MemoryAdvisor:分析计算(健康诊断 + 推荐排序 + 冲突检测)
|
|
52
|
-
*/
|
|
29
|
+
/** 记忆顾问:与 MemoryInspector 分工(Inspector 直接数据查询,Advisor 分析计算:健康诊断 + 推荐排序 + 冲突检测) */
|
|
53
30
|
export class MemoryAdvisor {
|
|
54
31
|
index;
|
|
55
32
|
/** 后台 LLM Provider(可选,用于 L3 冲突检测,未注入时跳过) */
|
|
56
33
|
backgroundProvider;
|
|
57
|
-
/**
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
*/
|
|
61
|
-
constructor(index, backgroundProvider = null) {
|
|
34
|
+
/** 治理源列表(默认 GOVERNANCE_SOURCES;空治理源时推荐/冲突检测空转,测试可显式注入) */
|
|
35
|
+
sources;
|
|
36
|
+
constructor(index, backgroundProvider = null, sources = GOVERNANCE_SOURCES) {
|
|
62
37
|
this.index = index;
|
|
63
38
|
this.backgroundProvider = backgroundProvider;
|
|
39
|
+
this.sources = sources;
|
|
64
40
|
}
|
|
65
41
|
// ─── 源健康诊断 ─────────────────────────────────────────
|
|
66
42
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* 健康状态判定:
|
|
73
|
-
* - healthy:avgScore ≥ 0.5 且 7 天内有访问
|
|
74
|
-
* - warning:avgScore < 0.5 或 7-30 天未访问
|
|
75
|
-
* - critical:avgScore < 0.2 或 30 天以上未访问
|
|
76
|
-
*
|
|
77
|
-
* 纯只读、同步、不调 LLM,与 stats() 互补(stats 只有数量,本方法有质量指标)。
|
|
78
|
-
* 使用 getAllSources() 发现所有 source 标签,替代全量 search。
|
|
43
|
+
* 记忆源健康诊断:逐 source 计算记忆数量 / 最近访问天数(纯事实观测)。
|
|
44
|
+
* 不设健康等级:记忆健康由 supersede(写时取代)/ 命中体现,
|
|
45
|
+
* 无需榜单级 status 判定(daysSinceLastAccess 作冷记忆观测)。
|
|
46
|
+
* 纯只读同步不调 LLM,用 getAllSources() 发现所有 source 标签(替代全量 search)。
|
|
79
47
|
*/
|
|
80
48
|
sourceHealth() {
|
|
81
|
-
|
|
82
|
-
// 使用 getAllSources() 获取所有有数据的 source 标签
|
|
49
|
+
// 获取所有有数据的 source 标签
|
|
83
50
|
const sourceMap = this.index.getAllSources();
|
|
84
51
|
const sourceSet = new Set();
|
|
85
52
|
for (const [source, count] of sourceMap) {
|
|
86
53
|
if (count > 0)
|
|
87
54
|
sourceSet.add(source);
|
|
88
55
|
}
|
|
89
|
-
// 逐 source 计算健康指标
|
|
90
56
|
const entries = [];
|
|
91
57
|
for (const source of sourceSet) {
|
|
92
58
|
const memories = this.index.getBySource(source);
|
|
93
59
|
const count = memories.length;
|
|
94
|
-
//
|
|
95
|
-
const avgScore = count > 0
|
|
96
|
-
? memories.reduce((sum, m) => sum + m.score, 0) / count
|
|
97
|
-
: 0;
|
|
98
|
-
// 最近访问时间(取该 source 中最新的 accessedAt)
|
|
60
|
+
// 最近访问时间(取该 source 中最新 accessedAt)
|
|
99
61
|
const latestAccess = memories
|
|
100
62
|
.map((m) => new Date(m.accessedAt).getTime())
|
|
101
63
|
.filter((t) => !isNaN(t))
|
|
102
64
|
.sort((a, b) => b - a)[0] ?? 0;
|
|
103
|
-
const daysSinceLastAccess = latestAccess > 0
|
|
104
|
-
? (now - latestAccess) / ONE_DAY_MS
|
|
105
|
-
: Infinity;
|
|
106
|
-
// 健康状态判定
|
|
107
|
-
let status;
|
|
108
|
-
if (avgScore < SOURCE_HEALTH_THRESHOLDS.CRITICAL_SCORE || daysSinceLastAccess > SOURCE_HEALTH_THRESHOLDS.CRITICAL_DAYS) {
|
|
109
|
-
status = 'critical';
|
|
110
|
-
}
|
|
111
|
-
else if (avgScore < SOURCE_HEALTH_THRESHOLDS.WARNING_SCORE || daysSinceLastAccess > SOURCE_HEALTH_THRESHOLDS.WARNING_DAYS) {
|
|
112
|
-
status = 'warning';
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
status = 'healthy';
|
|
116
|
-
}
|
|
65
|
+
const daysSinceLastAccess = latestAccess > 0 ? (Date.now() - latestAccess) / ONE_DAY_MS : Infinity;
|
|
117
66
|
entries.push({
|
|
118
67
|
source,
|
|
119
68
|
count,
|
|
120
|
-
avgScore: roundTo(avgScore, 3),
|
|
121
69
|
daysSinceLastAccess: roundTo(daysSinceLastAccess, 1),
|
|
122
|
-
status,
|
|
123
70
|
});
|
|
124
71
|
}
|
|
125
|
-
// 整体状态取最差 source
|
|
126
|
-
const statusPriority = { healthy: 0, warning: 1, critical: 2 };
|
|
127
|
-
const overallStatus = entries.reduce((worst, e) => statusPriority[e.status] > statusPriority[worst] ? e.status : worst, 'healthy');
|
|
128
72
|
return {
|
|
129
|
-
|
|
130
|
-
|
|
73
|
+
// 按 source 名稳定排序(保证输出可预期;无关健康等级)
|
|
74
|
+
sources: entries.sort((a, b) => a.source.localeCompare(b.source)),
|
|
131
75
|
diagnosedAt: nowIso(),
|
|
132
76
|
};
|
|
133
77
|
}
|
|
134
78
|
// ─── 关联推荐 ─────────────────────────────────────────
|
|
135
79
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
* 返回"与你当前关注点相关但尚未直接搜索到"的记忆。
|
|
140
|
-
*
|
|
141
|
-
* 适用场景:
|
|
142
|
-
* - 用户搜索后,展示"你可能还想看"
|
|
143
|
-
* - 对话开始时,展示"最近你可能关心的记忆"
|
|
144
|
-
* - 宿主程序构建个性化推荐面板
|
|
145
|
-
*
|
|
146
|
-
* @param query - 可选的搜索关键词(提供时结合搜索结果推荐,省略时基于全局热度推荐)
|
|
147
|
-
* @param options - 推荐选项
|
|
80
|
+
* 关联推荐:不调 LLM 纯计算,综合 accessedAt(时效)+ source 多样性,
|
|
81
|
+
* 返回"相关但尚未直接搜索到"的记忆。query 提供时结合搜索命中推荐,省略时基于最近使用。
|
|
82
|
+
* relevance 为纯时效(recency)
|
|
148
83
|
*/
|
|
149
84
|
suggest(query, options = {}) {
|
|
150
|
-
const { limit = 5, excludeSources = [
|
|
151
|
-
const scoreWeight = 1 - recencyWeight;
|
|
85
|
+
const { limit = 5, excludeSources = [...DEFAULT_RECALL_EXCLUDE_SOURCES] } = options;
|
|
152
86
|
const now = Date.now();
|
|
153
87
|
// 收集候选记忆
|
|
154
88
|
const candidates = new Map();
|
|
155
|
-
//
|
|
89
|
+
// 有 query 时先搜直接命中(标记 searchHit)
|
|
156
90
|
if (query && query.trim()) {
|
|
157
91
|
const directHits = this.index.search(query, limit * 3);
|
|
158
92
|
for (const m of directHits) {
|
|
@@ -161,13 +95,13 @@ export class MemoryAdvisor {
|
|
|
161
95
|
}
|
|
162
96
|
}
|
|
163
97
|
}
|
|
164
|
-
//
|
|
165
|
-
for (const source of
|
|
98
|
+
// 按 source 分组采样,确保来源多样性
|
|
99
|
+
for (const source of this.sources) {
|
|
166
100
|
const count = this.index.countBySource(source);
|
|
167
101
|
if (count > 0 && !excludeSources.includes(source)) {
|
|
168
102
|
const memories = this.index.getBySource(source);
|
|
169
|
-
//
|
|
170
|
-
const top = memories.sort(
|
|
103
|
+
// 取最近使用的前 N 条(score 退役后按 accessedAt 降序)
|
|
104
|
+
const top = memories.sort(byAccessedDesc).slice(0, SUGGEST_TOP_PER_SOURCE);
|
|
171
105
|
for (const m of top) {
|
|
172
106
|
if (!candidates.has(m.id)) {
|
|
173
107
|
candidates.set(m.id, { memory: m, searchHit: false });
|
|
@@ -177,16 +111,14 @@ export class MemoryAdvisor {
|
|
|
177
111
|
}
|
|
178
112
|
if (candidates.size === 0)
|
|
179
113
|
return [];
|
|
180
|
-
// 计算综合推荐分数
|
|
181
114
|
const scored = [];
|
|
182
115
|
for (const { memory, searchHit } of candidates.values()) {
|
|
183
|
-
//
|
|
116
|
+
// 时效性分:窗口内线性衰减,超过窗口归零;score 退役后 relevance 即纯时效
|
|
184
117
|
const accessedAt = new Date(memory.accessedAt);
|
|
185
118
|
const daysSinceAccess = isNaN(accessedAt.getTime())
|
|
186
119
|
? SUGGEST_RECENCY_WINDOW_DAYS
|
|
187
120
|
: (now - accessedAt.getTime()) / ONE_DAY_MS;
|
|
188
|
-
const
|
|
189
|
-
const relevance = memory.score * scoreWeight + recency * recencyWeight;
|
|
121
|
+
const relevance = Math.max(0, 1 - daysSinceAccess / SUGGEST_RECENCY_WINDOW_DAYS);
|
|
190
122
|
// 生成推荐理由
|
|
191
123
|
let reason;
|
|
192
124
|
if (searchHit) {
|
|
@@ -195,9 +127,6 @@ export class MemoryAdvisor {
|
|
|
195
127
|
else if (daysSinceAccess < 1) {
|
|
196
128
|
reason = '最近访问';
|
|
197
129
|
}
|
|
198
|
-
else if (memory.score >= 0.8) {
|
|
199
|
-
reason = '高频记忆';
|
|
200
|
-
}
|
|
201
130
|
else {
|
|
202
131
|
reason = `${memory.source} 推荐`;
|
|
203
132
|
}
|
|
@@ -220,30 +149,11 @@ export class MemoryAdvisor {
|
|
|
220
149
|
}
|
|
221
150
|
// ─── L3 语义冲突检测(可选,backgroundProvider 注入后启用) ───
|
|
222
151
|
/**
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
* 流程:
|
|
226
|
-
* 1. 从 insight/profile/work-projection 加载候选记忆(每个 source 取 top 10 条)
|
|
227
|
-
* 2. 同 source 内两两配对,取前 10 对
|
|
228
|
-
* 3. 对每对调用 LLM 判断是否存在语义冲突
|
|
229
|
-
* 4. 返回冲突报告(仅检测,不修复——冲突需要用户决策)
|
|
230
|
-
*
|
|
231
|
-
* 安全设计:
|
|
232
|
-
* - 仅检测不修复——不自动降级任何记忆,返回冲突详情供用户决策
|
|
233
|
-
* - LLM 失败降级——返回已处理的报告,不阻塞调用方
|
|
234
|
-
* - 单对 LLM 失败不阻塞后续检测
|
|
235
|
-
* - backgroundProvider 未注入时静默跳过(向后兼容)
|
|
236
|
-
*
|
|
237
|
-
* 使用场景:
|
|
238
|
-
* - 宿主定时任务定期检测(如每天一次)
|
|
239
|
-
* - 用户手动触发(记忆管理面板的"检测冲突"按钮)
|
|
240
|
-
* - 健康诊断报告的补充(sourceHealth 显示数量,本方法显示质量冲突)
|
|
241
|
-
*
|
|
242
|
-
* @param signal 可选的 AbortSignal(取消正在进行的 LLM 判断)
|
|
243
|
-
* @returns 冲突检测报告
|
|
152
|
+
* 语义冲突检测:加载候选(每 source top 10)→ 同 source 两两配对(前 10 对)→ LLM 判断冲突。
|
|
153
|
+
* 仅检测不修复(不自动降级,冲突需用户决策);LLM 失败不阻塞;provider 未注入静默跳过。
|
|
244
154
|
*/
|
|
245
155
|
async detectConflicts(signal) {
|
|
246
|
-
//
|
|
156
|
+
// provider 未注入时静默降级
|
|
247
157
|
if (!this.backgroundProvider) {
|
|
248
158
|
return {
|
|
249
159
|
scannedCount: 0,
|
|
@@ -253,12 +163,11 @@ export class MemoryAdvisor {
|
|
|
253
163
|
skippedReason: 'backgroundProvider 未注入',
|
|
254
164
|
};
|
|
255
165
|
}
|
|
256
|
-
// ── 步骤 1:加载候选记忆(每个 source 取 top 10 条,按 score 降序) ──
|
|
257
166
|
const candidates = [];
|
|
258
|
-
for (const source of
|
|
167
|
+
for (const source of this.sources) {
|
|
259
168
|
const memories = this.index.getBySource(source);
|
|
260
|
-
// 按
|
|
261
|
-
const top = memories.sort(
|
|
169
|
+
// 按 accessedAt 降序取 top N(score 退役后按最近使用采样)
|
|
170
|
+
const top = memories.sort(byAccessedDesc).slice(0, CONFLICT_CANDIDATES_PER_SOURCE);
|
|
262
171
|
candidates.push(...top);
|
|
263
172
|
}
|
|
264
173
|
if (candidates.length < 2) {
|
|
@@ -270,7 +179,7 @@ export class MemoryAdvisor {
|
|
|
270
179
|
skippedReason: '候选记忆不足(少于 2 条)',
|
|
271
180
|
};
|
|
272
181
|
}
|
|
273
|
-
//
|
|
182
|
+
// 同 source 内两两配对
|
|
274
183
|
const pairs = this.findConflictCandidates(candidates);
|
|
275
184
|
if (pairs.length === 0) {
|
|
276
185
|
return {
|
|
@@ -281,7 +190,7 @@ export class MemoryAdvisor {
|
|
|
281
190
|
skippedReason: '无同 source 候选对',
|
|
282
191
|
};
|
|
283
192
|
}
|
|
284
|
-
//
|
|
193
|
+
// 逐对调用 LLM 判断冲突
|
|
285
194
|
const conflicts = [];
|
|
286
195
|
for (const pair of pairs) {
|
|
287
196
|
try {
|
|
@@ -303,17 +212,7 @@ export class MemoryAdvisor {
|
|
|
303
212
|
conflicts,
|
|
304
213
|
};
|
|
305
214
|
}
|
|
306
|
-
/**
|
|
307
|
-
* 筛选同 source 内的候选冲突对
|
|
308
|
-
*
|
|
309
|
-
* 策略:
|
|
310
|
-
* - 按 source 分组,同 source 内两两配对
|
|
311
|
-
* - 限制每个 source 的配对数,避免 O(n²) 爆炸
|
|
312
|
-
* - 总候选对数上限 10 对
|
|
313
|
-
*
|
|
314
|
-
* @param candidates 候选记忆列表(已按 source 分组混合)
|
|
315
|
-
* @returns 同 source 候选对列表
|
|
316
|
-
*/
|
|
215
|
+
/** 筛选同 source 内候选冲突对:按 source 分组两两配对,限制每 source 配对数避免 O(n²) 爆炸,总上限 10 对 */
|
|
317
216
|
findConflictCandidates(candidates) {
|
|
318
217
|
// 按 source 分组
|
|
319
218
|
const bySource = new Map();
|
|
@@ -344,17 +243,8 @@ export class MemoryAdvisor {
|
|
|
344
243
|
return pairs.slice(0, CONFLICT_PAIR_LIMIT);
|
|
345
244
|
}
|
|
346
245
|
/**
|
|
347
|
-
* 调用 LLM
|
|
348
|
-
*
|
|
349
|
-
* 使用结构化 JSON 输出(hasConflict + conflictDescription + recommendation + reason),
|
|
350
|
-
* 流式累积 + parseLlmJson + 异常封装委托给 llmJudgeHelper.judgeWithLlm。
|
|
351
|
-
*
|
|
352
|
-
* LLM 失败时抛出 MemoraError(由 detectConflicts 捕获并降级跳过此对)。
|
|
353
|
-
*
|
|
354
|
-
* @param memoryA 记忆 A
|
|
355
|
-
* @param memoryB 记忆 B
|
|
356
|
-
* @param signal 可选的 AbortSignal
|
|
357
|
-
* @returns LLM 判断结果
|
|
246
|
+
* 调用 LLM 判断两条记忆是否冲突:结构化 JSON 输出(hasConflict+conflictDescription+recommendation+reason)。
|
|
247
|
+
* 流式累积/解析/异常封装委托 llmJudgeHelper.judgeWithLlm;失败抛 MemoraError 由调用方捕获跳过。
|
|
358
248
|
*/
|
|
359
249
|
async judgeConflict(memoryA, memoryB, signal) {
|
|
360
250
|
const messages = buildConflictMessages(memoryA, memoryB);
|
|
@@ -372,20 +262,8 @@ export class MemoryAdvisor {
|
|
|
372
262
|
};
|
|
373
263
|
}
|
|
374
264
|
}
|
|
375
|
-
// ─── L3 冲突检测 Prompt
|
|
376
|
-
/**
|
|
377
|
-
* 构建冲突判断的 LLM 消息
|
|
378
|
-
*
|
|
379
|
-
* 设计要点:
|
|
380
|
-
* - system 消息定义判断规则(冲突 = 两条记忆表达互相矛盾的信息)
|
|
381
|
-
* - user 消息携带两条记忆的内容预览(截断到 200 字符)
|
|
382
|
-
* - 要求输出结构化 JSON(hasConflict + conflictDescription + recommendation + reason)
|
|
383
|
-
* - few-shot 示例降低 LLM 误判率
|
|
384
|
-
*
|
|
385
|
-
* @param memoryA 记忆 A
|
|
386
|
-
* @param memoryB 记忆 B
|
|
387
|
-
* @returns system + user 消息数组
|
|
388
|
-
*/
|
|
265
|
+
// ─── L3 冲突检测 Prompt 模板(模块级函数) ───
|
|
266
|
+
/** 构建冲突判断的 LLM 消息:system 定义冲突规则 + user 携带两条记忆内容预览,few-shot 降误判率 */
|
|
389
267
|
function buildConflictMessages(memoryA, memoryB) {
|
|
390
268
|
const contentA = memoryA.content.length > CONFLICT_CONTENT_PREVIEW_LEN
|
|
391
269
|
? truncate(memoryA.content, CONFLICT_CONTENT_PREVIEW_LEN, '…[截断]')
|
|
@@ -396,47 +274,47 @@ function buildConflictMessages(memoryA, memoryB) {
|
|
|
396
274
|
return [
|
|
397
275
|
{
|
|
398
276
|
role: 'system',
|
|
399
|
-
content: `你是记忆冲突检测助手。判断给定的两条记忆是否存在语义冲突(表达互相矛盾的信息)。
|
|
400
|
-
|
|
401
|
-
判断规则:
|
|
402
|
-
- 存在冲突 = 两条记忆表达的信息互相矛盾,不能同时为真(如"喜欢 X" vs "讨厌 X")
|
|
403
|
-
- 无冲突 = 两条记忆信息互补、独立或不相关
|
|
404
|
-
- 不同维度不构成冲突(如"擅长后端" vs "偏好前端"是不同维度,非冲突)
|
|
405
|
-
- 时间演化不构成冲突(如"用 React 16" vs "用 React 18"是版本升级,非冲突)
|
|
406
|
-
|
|
407
|
-
输出 JSON 格式:
|
|
408
|
-
{
|
|
409
|
-
"hasConflict": true/false,
|
|
410
|
-
"conflictDescription": "冲突点描述(仅 hasConflict=true 时提供)",
|
|
411
|
-
"recommendation": "a/b/both(建议保留哪条:a=保留A,b=保留B,both=都保留需用户裁决)",
|
|
412
|
-
"reason": "判断理由(简短说明)"
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
示例:
|
|
416
|
-
输入 A: "用户喜欢使用 JavaScript"
|
|
417
|
-
输入 B: "用户讨厌 JavaScript"
|
|
418
|
-
输出: {"hasConflict": true, "conflictDescription": "对 JavaScript 的态度矛盾", "recommendation": "both", "reason": "需用户裁决当前偏好"}
|
|
419
|
-
|
|
420
|
-
输入 A: "用户擅长后端开发"
|
|
421
|
-
输入 B: "用户偏好前端开发"
|
|
277
|
+
content: `你是记忆冲突检测助手。判断给定的两条记忆是否存在语义冲突(表达互相矛盾的信息)。
|
|
278
|
+
|
|
279
|
+
判断规则:
|
|
280
|
+
- 存在冲突 = 两条记忆表达的信息互相矛盾,不能同时为真(如"喜欢 X" vs "讨厌 X")
|
|
281
|
+
- 无冲突 = 两条记忆信息互补、独立或不相关
|
|
282
|
+
- 不同维度不构成冲突(如"擅长后端" vs "偏好前端"是不同维度,非冲突)
|
|
283
|
+
- 时间演化不构成冲突(如"用 React 16" vs "用 React 18"是版本升级,非冲突)
|
|
284
|
+
|
|
285
|
+
输出 JSON 格式:
|
|
286
|
+
{
|
|
287
|
+
"hasConflict": true/false,
|
|
288
|
+
"conflictDescription": "冲突点描述(仅 hasConflict=true 时提供)",
|
|
289
|
+
"recommendation": "a/b/both(建议保留哪条:a=保留A,b=保留B,both=都保留需用户裁决)",
|
|
290
|
+
"reason": "判断理由(简短说明)"
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
示例:
|
|
294
|
+
输入 A: "用户喜欢使用 JavaScript"
|
|
295
|
+
输入 B: "用户讨厌 JavaScript"
|
|
296
|
+
输出: {"hasConflict": true, "conflictDescription": "对 JavaScript 的态度矛盾", "recommendation": "both", "reason": "需用户裁决当前偏好"}
|
|
297
|
+
|
|
298
|
+
输入 A: "用户擅长后端开发"
|
|
299
|
+
输入 B: "用户偏好前端开发"
|
|
422
300
|
输出: {"hasConflict": false, "reason": "擅长领域与偏好领域是不同维度,非冲突"}`,
|
|
423
301
|
},
|
|
424
302
|
{
|
|
425
303
|
role: 'user',
|
|
426
|
-
content: `请判断以下两条记忆是否存在语义冲突:
|
|
427
|
-
|
|
428
|
-
记忆 A
|
|
429
|
-
- 名称:${memoryA.name}
|
|
430
|
-
- 来源:${memoryA.source}
|
|
431
|
-
- 创建时间:${memoryA.createdAt}
|
|
432
|
-
- 内容:${contentA}
|
|
433
|
-
|
|
434
|
-
记忆 B
|
|
435
|
-
- 名称:${memoryB.name}
|
|
436
|
-
- 来源:${memoryB.source}
|
|
437
|
-
- 创建时间:${memoryB.createdAt}
|
|
438
|
-
- 内容:${contentB}
|
|
439
|
-
|
|
304
|
+
content: `请判断以下两条记忆是否存在语义冲突:
|
|
305
|
+
|
|
306
|
+
记忆 A:
|
|
307
|
+
- 名称:${memoryA.name}
|
|
308
|
+
- 来源:${memoryA.source}
|
|
309
|
+
- 创建时间:${memoryA.createdAt}
|
|
310
|
+
- 内容:${contentA}
|
|
311
|
+
|
|
312
|
+
记忆 B:
|
|
313
|
+
- 名称:${memoryB.name}
|
|
314
|
+
- 来源:${memoryB.source}
|
|
315
|
+
- 创建时间:${memoryB.createdAt}
|
|
316
|
+
- 内容:${contentB}
|
|
317
|
+
|
|
440
318
|
请输出 JSON 判断结果。`,
|
|
441
319
|
},
|
|
442
320
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryAdvisor.js","sourceRoot":"","sources":["../../../src/agent/managers/memoryAdvisor.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C,4DAA4D;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,+EAA+E;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,0DAA0D;AAE1D,gCAAgC;AAChC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,8BAA8B;AAC9B,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,yEAAyE;AACzE,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,+CAA+C;AAC/C,MAAM,wBAAwB,GAAG;IAC/B,+BAA+B;IAC/B,cAAc,EAAE,GAAG;IACnB,8BAA8B;IAC9B,aAAa,EAAE,GAAG;IAClB,0BAA0B;IAC1B,aAAa,EAAE,EAAE;IACjB,yBAAyB;IACzB,YAAY,EAAE,CAAC;CACP,CAAC;AAEX,qDAAqD;AACrD,uEAAuE;AACvE,4CAA4C;AAC5C,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAC1C,yBAAyB;AACzB,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,qBAAqB;AACrB,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,4BAA4B;AAC5B,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAyFzC,2DAA2D;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IASL;IARnB,4CAA4C;IAC3B,kBAAkB,CAAqB;IAExD;;;OAGG;IACH,YACmB,KAAqB,EACtC,qBAAyC,IAAI;QAD5B,UAAK,GAAL,KAAK,CAAgB;QAGtC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,sDAAsD;IAEtD;;;;;;;;;;;;;OAaG;IACH,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,wCAAwC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;YACxC,IAAI,KAAK,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,kBAAkB;QAClB,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;YAE9B,WAAW;YACX,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC;gBACxB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK;gBACvD,CAAC,CAAC,CAAC,CAAC;YAEN,oCAAoC;YACpC,MAAM,YAAY,GAAG,QAAQ;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACxB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,mBAAmB,GAAG,YAAY,GAAG,CAAC;gBAC1C,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,UAAU;gBACnC,CAAC,CAAC,QAAQ,CAAC;YAEb,SAAS;YACT,IAAI,MAA0B,CAAC;YAC/B,IAAI,QAAQ,GAAG,wBAAwB,CAAC,cAAc,IAAI,mBAAmB,GAAG,wBAAwB,CAAC,aAAa,EAAE,CAAC;gBACvH,MAAM,GAAG,UAAU,CAAC;YACtB,CAAC;iBAAM,IAAI,QAAQ,GAAG,wBAAwB,CAAC,aAAa,IAAI,mBAAmB,GAAG,wBAAwB,CAAC,YAAY,EAAE,CAAC;gBAC5H,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM;gBACN,KAAK;gBACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACpD,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,MAAM,cAAc,GAAuC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACnG,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EACjF,SAAS,CACV,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACpF,aAAa;YACb,WAAW,EAAE,MAAM,EAAE;SACtB,CAAC;IACJ,CAAC;IAED,qDAAqD;IAErD;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,KAAc,EAAE,UAA0B,EAAE;QAClD,MAAM,EACJ,KAAK,GAAG,CAAC,EACT,cAAc,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EACjF,aAAa,GAAG,GAAG,GACpB,GAAG,OAAO,CAAC;QAEZ,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,SAAS;QACT,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkD,CAAC;QAE7E,sCAAsC;QACtC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACvD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAChD,mBAAmB;gBACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;gBACxE,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC1B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAErC,WAAW;QACX,MAAM,MAAM,GAAqF,EAAE,CAAC;QAEpG,KAAK,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACxD,sBAAsB;YACtB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACjD,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,GAAG,2BAA2B,CAAC,CAAC;YAE/E,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;YAEvE,SAAS;YACT,IAAI,MAAc,CAAC;YACnB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,GAAG,OAAO,CAAC;YACnB,CAAC;iBAAM,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,MAAM,CAAC;YAClB,CAAC;iBAAM,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC;gBAC/B,MAAM,GAAG,MAAM,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC;YACjC,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,6BAA6B;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACnB,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;gBAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACpE,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAChC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC;YAC7D,MAAM;SACP,CAAC,CAAC,CAAC;IACN,CAAC;IAED,iDAAiD;IAEjD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,eAAe,CAAC,MAAoB;QACxC,oCAAoC;QACpC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO;gBACL,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE,wBAAwB;aACxC,CAAC;QACJ,CAAC;QAED,qDAAqD;QACrD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAChD,oBAAoB;YACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC;YAChF,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,YAAY,EAAE,UAAU,CAAC,MAAM;gBAC/B,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE,gBAAgB;aAChC,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,YAAY,EAAE,UAAU,CAAC,MAAM;gBAC/B,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE,eAAe;aAC/B,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAsB,EAAE,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACnE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBACxB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxB,MAAM,CAAC,IAAI,CACT,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EACpF,aAAa,CACd,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,qBAAqB;gBACrB,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAC9C,oBAAoB,CACrB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,YAAY,EAAE,UAAU,CAAC,MAAM;YAC/B,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,aAAa,EAAE,SAAS,CAAC,MAAM;YAC/B,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACK,sBAAsB,CAAC,UAAoB;QACjD,cAAc;QACd,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,yBAAyB;QACzB,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,mDAAmD;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YACvC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;oBACjC,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,IAAI,mBAAmB;gBAAE,MAAM;QACjD,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,OAAe,EAAE,MAAoB;QAChF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,YAAY,CAM/B,IAAI,CAAC,kBAAmB,EACxB,QAAQ,EACR,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAC1D,mBAAmB,CACpB,CAAC;QAEF,oDAAoD;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;QACrC,MAAM,cAAc,GAClB,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7E,OAAO;YACL,OAAO;YACP,OAAO;YACP,WAAW,EAAE,MAAM,CAAC,WAAW,KAAK,IAAI;YACxC,mBAAmB,EAAE,OAAO,MAAM,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;YAC5G,cAAc;YACd,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa;SAC1E,CAAC;IACJ,CAAC;CACF;AAED,4DAA4D;AAE5D;;;;;;;;;;;;GAYG;AACH,SAAS,qBAAqB,CAAC,OAAe,EAAE,OAAe;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,4BAA4B;QACpE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,4BAA4B,EAAE,OAAO,CAAC;QAClE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,4BAA4B;QACpE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,4BAA4B,EAAE,OAAO,CAAC;QAClE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAEpB,OAAO;QACL;YACE,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;2DAuB4C;SACtD;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;;cAED,OAAO,CAAC,KAAK;OACpB,OAAO,CAAC,IAAI;OACZ,OAAO,CAAC,MAAM;SACZ,OAAO,CAAC,SAAS;OACnB,QAAQ;;cAED,OAAO,CAAC,KAAK;OACpB,OAAO,CAAC,IAAI;OACZ,OAAO,CAAC,MAAM;SACZ,OAAO,CAAC,SAAS;OACnB,QAAQ;;eAEA;SACV;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"memoryAdvisor.js","sourceRoot":"","sources":["../../../src/agent/managers/memoryAdvisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 记忆治理统一门面 —
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* - L2 时效性:LLM 驱动的时效性评估
|
|
8
|
-
* - L3 冲突:LLM 驱动的语义冲突检测
|
|
9
|
-
* - 诊断:source 健康度 + 记忆推荐
|
|
10
|
-
*
|
|
11
|
-
* 设计原则(§2.2 借力生长):
|
|
12
|
-
* - 6 个治理方法原散落在 Agent 的 45 个公开 API 中,职责碎片化
|
|
13
|
-
* - 收束为单一门面,Agent 只暴露 `agent.governance.xxx()`,减少 6 个直接 API 入口
|
|
14
|
-
* - 门面仅做委托和空值降级,不引入新逻辑——每一层抽象对应一个真实故障点
|
|
15
|
-
*
|
|
16
|
-
* 空值降级策略:
|
|
17
|
-
* - 底层 Manager 未注入时返回空报告(非抛错),符合"降级优先"原则
|
|
18
|
-
* - 与 L1/L2/L3 层的 skippedReason 语义一致
|
|
2
|
+
* 记忆治理统一门面 — 聚合记忆治理操作(L1 去重 / L3 冲突 / 诊断)。
|
|
3
|
+
* 治理模型 = supersede(写时取代)+ 命中刷新 accessedAt(只 touch、不做重要度加权),无衰减(见架构决策)。
|
|
4
|
+
* 根本动机:治理方法原散落 Agent 公开 API 中职责碎片化,收束为单一门面 `agent.governance.xxx()`。
|
|
5
|
+
* 门面仅做委托 + 空值降级不引入新逻辑(每层抽象对应一个真实故障点);
|
|
6
|
+
* 底层 Manager 未注入时返回空报告(非抛错),符合"降级优先"。
|
|
19
7
|
*/
|
|
20
8
|
import type { DedupManager, DedupReport } from '../../agent/managers/dedupManager.js';
|
|
21
|
-
import type { MemoryDecayScheduler, TimelinessReport } from '../../agent/managers/memoryDecayScheduler.js';
|
|
22
9
|
import type { MemoryAdvisor, ConflictReport } from '../../agent/managers/memoryAdvisor.js';
|
|
23
10
|
import type { SourceHealthReport, SuggestOptions, SuggestHit } from '../../agent/managers/memoryAdvisor.js';
|
|
24
11
|
export declare class MemoryGovernance {
|
|
25
12
|
private readonly dedupManager;
|
|
26
|
-
private readonly decayScheduler;
|
|
27
13
|
private readonly memoryAdvisor;
|
|
28
|
-
constructor(dedupManager: DedupManager | null,
|
|
29
|
-
/**
|
|
30
|
-
* 手动触发一次记忆衰减(纯 score 递减,无 LLM 调用)
|
|
31
|
-
*/
|
|
32
|
-
decay(): void;
|
|
33
|
-
/**
|
|
34
|
-
* 语义去重:扫描名称相似记忆对,LLM 判断等价性,降级重复记忆
|
|
35
|
-
*/
|
|
14
|
+
constructor(dedupManager: DedupManager | null, memoryAdvisor: MemoryAdvisor | null);
|
|
15
|
+
/** 语义去重:扫描名称相似记忆对,LLM 判断等价性,降级重复记忆 */
|
|
36
16
|
deduplicate(signal?: AbortSignal): Promise<DedupReport>;
|
|
37
|
-
/**
|
|
38
|
-
* 时效性评估:LLM 判断低分记忆是否过时,降级过时记忆
|
|
39
|
-
*/
|
|
40
|
-
evaluateTimeliness(signal?: AbortSignal): Promise<TimelinessReport>;
|
|
41
|
-
/**
|
|
42
|
-
* 冲突检测:LLM 判断同 source 记忆是否存在语义矛盾
|
|
43
|
-
*/
|
|
17
|
+
/** 冲突检测:LLM 判断同 source 记忆是否存在语义矛盾 */
|
|
44
18
|
detectConflicts(signal?: AbortSignal): Promise<ConflictReport>;
|
|
45
|
-
/**
|
|
46
|
-
* 记忆源健康诊断(纯只读,不修改状态)
|
|
47
|
-
*
|
|
48
|
-
* @returns 健康报告;advisor 未注入时返回 null
|
|
49
|
-
*/
|
|
19
|
+
/** 记忆源健康诊断(纯只读);advisor 未注入返回 null */
|
|
50
20
|
sourceHealth(): SourceHealthReport | null;
|
|
51
|
-
/**
|
|
52
|
-
* 记忆关联推荐(纯只读,不修改状态)
|
|
53
|
-
*/
|
|
21
|
+
/** 记忆关联推荐(纯只读) */
|
|
54
22
|
suggest(query?: string, options?: SuggestOptions): SuggestHit[];
|
|
55
23
|
}
|
|
56
24
|
//# sourceMappingURL=memoryGovernance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryGovernance.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/memoryGovernance.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"memoryGovernance.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/memoryGovernance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,UAAU,EACX,MAAM,mCAAmC,CAAC;AAE3C,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,aAAa,EAAE,aAAa,GAAG,IAAI;IAKtD,sCAAsC;IAChC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAe7D,qCAAqC;IAC/B,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAepE,sCAAsC;IACtC,YAAY,IAAI,kBAAkB,GAAG,IAAI;IAIzC,kBAAkB;IAClB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE;CAGhE"}
|