@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/llm/embedding.js
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedding Provider — 调用 OpenAI 兼容的 /embeddings 端点
|
|
3
|
-
*
|
|
4
|
-
* 语义检索的核心能力:
|
|
5
|
-
* - 将文本转为向量(embedding)
|
|
6
|
-
* - 支持批量嵌入(减少 API 调用次数)
|
|
7
|
-
* - 向量维度由模型决定(如 text-embedding-3-small: 1536 维)
|
|
8
|
-
*
|
|
9
|
-
* 设计原则:
|
|
10
|
-
* - 复用 OpenAI 兼容协议(与 chat 共用 baseUrl/apiKey)
|
|
11
|
-
* - 0 新 npm 依赖(纯 fetch 调用)
|
|
12
|
-
* - 缓存机制:相同文本不重复调用 API
|
|
13
|
-
*
|
|
14
|
-
* 详见 ADR-003 · LLM 适配层使用 OpenAI Chat Completions 兼容协议
|
|
15
|
-
*/
|
|
16
|
-
import { logger } from '../logging/logger.js';
|
|
17
|
-
import { networkError, configError, llmError, toError } from '../utils/errors.js';
|
|
18
|
-
import { mergeAbortSignals } from '../llm/abortSignal.js';
|
|
19
|
-
/**
|
|
20
|
-
* Embedding Provider
|
|
21
|
-
*
|
|
22
|
-
* 调用 /embeddings 端点将文本转为向量
|
|
23
|
-
* 支持批量嵌入和本地缓存
|
|
24
|
-
*/
|
|
25
|
-
export class EmbeddingProvider {
|
|
26
|
-
config;
|
|
27
|
-
/** 缓存最大条目数(LRU 上限,防止无界增长导致内存泄漏) */
|
|
28
|
-
static CACHE_MAX_SIZE = 1000;
|
|
29
|
-
/** 默认请求超时:60 秒(embedding 无流式推理,比 chat 的 120s 更短) */
|
|
30
|
-
static DEFAULT_TIMEOUT_MS = 60_000;
|
|
31
|
-
/** 本地缓存:text → vector(LRU,Map 迭代顺序 = 最近访问顺序) */
|
|
32
|
-
cache = new Map();
|
|
33
|
-
constructor(config) {
|
|
34
|
-
this.config = config;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* LRU 读取:命中时把条目移到末尾,标记为最近访问
|
|
38
|
-
* Map 保持插入顺序,末尾即最近访问,首部即最久未访问(淘汰候选)
|
|
39
|
-
*/
|
|
40
|
-
getCached(text) {
|
|
41
|
-
const vector = this.cache.get(text);
|
|
42
|
-
if (vector === undefined)
|
|
43
|
-
return undefined;
|
|
44
|
-
// 删除后重新插入,移到末尾
|
|
45
|
-
this.cache.delete(text);
|
|
46
|
-
this.cache.set(text, vector);
|
|
47
|
-
return vector;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* LRU 写入:超过容量时淘汰最旧条目(首部)
|
|
51
|
-
*/
|
|
52
|
-
setCache(text, vector) {
|
|
53
|
-
if (this.cache.size >= EmbeddingProvider.CACHE_MAX_SIZE) {
|
|
54
|
-
const oldest = this.cache.keys().next().value;
|
|
55
|
-
if (oldest !== undefined)
|
|
56
|
-
this.cache.delete(oldest);
|
|
57
|
-
}
|
|
58
|
-
this.cache.set(text, vector);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* 嵌入单条文本
|
|
62
|
-
* @param text 待嵌入的文本
|
|
63
|
-
* @param options 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
64
|
-
* @returns 向量
|
|
65
|
-
*/
|
|
66
|
-
async embed(text, options) {
|
|
67
|
-
// 缓存命中
|
|
68
|
-
const cached = this.getCached(text);
|
|
69
|
-
if (cached)
|
|
70
|
-
return cached;
|
|
71
|
-
const results = await this.batchEmbed([text], options);
|
|
72
|
-
const first = results[0];
|
|
73
|
-
if (!first) {
|
|
74
|
-
// 错误处理统一:使用 llmError 工厂
|
|
75
|
-
throw llmError('嵌入结果为空', 'batchEmbed 返回空结果', ['请检查 Embedding 模型配置', '确认 API 返回了有效的向量数据']);
|
|
76
|
-
}
|
|
77
|
-
return first.vector;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* 批量嵌入多条文本
|
|
81
|
-
* OpenAI 兼容 API 支持一次请求嵌入多条文本,减少 API 调用
|
|
82
|
-
* @param texts 待嵌入的文本数组
|
|
83
|
-
* @param options 调用选项(signal 外部取消 + timeoutMs 超时)
|
|
84
|
-
* @returns 嵌入结果数组(顺序与输入一致)
|
|
85
|
-
*/
|
|
86
|
-
async batchEmbed(texts, options) {
|
|
87
|
-
// 过滤已缓存的
|
|
88
|
-
const uncached = [];
|
|
89
|
-
const uncachedIndices = [];
|
|
90
|
-
const results = texts.map((text, i) => {
|
|
91
|
-
const cached = this.getCached(text);
|
|
92
|
-
if (cached)
|
|
93
|
-
return { text, vector: cached };
|
|
94
|
-
uncached.push(text);
|
|
95
|
-
uncachedIndices.push(i);
|
|
96
|
-
return null;
|
|
97
|
-
});
|
|
98
|
-
// 全部命中缓存
|
|
99
|
-
if (uncached.length === 0) {
|
|
100
|
-
return results;
|
|
101
|
-
}
|
|
102
|
-
// 调用 /embeddings API
|
|
103
|
-
if (!this.config.apiKey) {
|
|
104
|
-
throw configError('Embedding API Key 未配置', 'embedding 需要 LLM API Key', [
|
|
105
|
-
'检查 ~/.memora/config.json 的 llm.apiKey 字段',
|
|
106
|
-
]);
|
|
107
|
-
}
|
|
108
|
-
const url = `${this.config.baseUrl}/embeddings`;
|
|
109
|
-
// 合并 AbortSignal:外部取消信号 + 超时信号(mergeAbortSignals 集中维护,ADR-017 枝叶层 2 次提取)
|
|
110
|
-
// 确保用户取消和请求超时都能中断 fetch
|
|
111
|
-
const timeoutMs = options?.timeoutMs ?? EmbeddingProvider.DEFAULT_TIMEOUT_MS;
|
|
112
|
-
const abort = mergeAbortSignals(options?.signal, timeoutMs, 'Embedding 请求超时');
|
|
113
|
-
try {
|
|
114
|
-
let response;
|
|
115
|
-
try {
|
|
116
|
-
response = await fetch(url, {
|
|
117
|
-
method: 'POST',
|
|
118
|
-
headers: {
|
|
119
|
-
'Content-Type': 'application/json',
|
|
120
|
-
Authorization: `Bearer ${this.config.apiKey}`,
|
|
121
|
-
},
|
|
122
|
-
body: JSON.stringify({
|
|
123
|
-
model: this.config.model,
|
|
124
|
-
input: uncached,
|
|
125
|
-
}),
|
|
126
|
-
signal: abort.signal,
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
const e = toError(err);
|
|
131
|
-
// 区分超时错误和网络错误
|
|
132
|
-
if (e.name === 'AbortError' || e.name === 'TimeoutError') {
|
|
133
|
-
throw networkError('Embedding 请求超时', `${url} 请求超过 ${timeoutMs / 1000}s 未响应`, ['检查网络连接稳定性', '如频繁超时,考虑调整 timeoutMs', '稍后重试'], e);
|
|
134
|
-
}
|
|
135
|
-
throw networkError('Embedding 服务连接失败', `无法访问 ${url}:${e.message}`, ['检查网络连接', '确认 baseUrl 配置正确'], e);
|
|
136
|
-
}
|
|
137
|
-
if (!response.ok) {
|
|
138
|
-
const body = await response.text().catch(() => '');
|
|
139
|
-
throw networkError('Embedding 请求失败', `HTTP ${response.status}: ${body.slice(0, 200)}`, [
|
|
140
|
-
'检查 API Key 是否有效',
|
|
141
|
-
'确认 embedding 模型名称正确',
|
|
142
|
-
]);
|
|
143
|
-
}
|
|
144
|
-
const data = (await response.json());
|
|
145
|
-
// 按 index 排序(API 不保证顺序)
|
|
146
|
-
const sorted = data.data.sort((a, b) => a.index - b.index);
|
|
147
|
-
// 填充结果 + 更新缓存
|
|
148
|
-
for (let i = 0; i < uncached.length; i++) {
|
|
149
|
-
// 循环条件保证索引有效,null 检查兜底
|
|
150
|
-
const text = uncached[i];
|
|
151
|
-
if (!text)
|
|
152
|
-
continue;
|
|
153
|
-
const vector = sorted[i]?.embedding;
|
|
154
|
-
if (!vector) {
|
|
155
|
-
logger.warn({ text: text.slice(0, 50), index: i }, 'Embedding 缺失,跳过');
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
this.setCache(text, vector);
|
|
159
|
-
// null 检查兜底
|
|
160
|
-
const idx = uncachedIndices[i];
|
|
161
|
-
if (idx !== undefined)
|
|
162
|
-
results[idx] = { text, vector };
|
|
163
|
-
}
|
|
164
|
-
return results.filter((r) => r !== null);
|
|
165
|
-
}
|
|
166
|
-
finally {
|
|
167
|
-
// 统一清理:覆盖 HTTP 错误、空 body、正常完成所有路径
|
|
168
|
-
abort.dispose();
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* 获取缓存大小(调试用)
|
|
173
|
-
*/
|
|
174
|
-
get cacheSize() {
|
|
175
|
-
return this.cache.size;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* 清空缓存
|
|
179
|
-
*/
|
|
180
|
-
clearCache() {
|
|
181
|
-
this.cache.clear();
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
//# sourceMappingURL=embedding.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/llm/embedding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 双通道融合排序 — 共享给 recall() 和 searchHybrid()
|
|
3
|
-
*
|
|
4
|
-
* 设计动机:
|
|
5
|
-
* recall.ts 和 memoryInspector.ts 共用"向量通道 + 关键词通道合并排序"逻辑,
|
|
6
|
-
* 集中到此模块实现单点维护。常量(RECALL_LIMIT_MULTIPLIER /
|
|
7
|
-
* VECTOR_SCORE_WEIGHT / MEMORY_SCORE_WEIGHT)与算法同源,
|
|
8
|
-
* agent 直接从本模块导入,不再绕道 recall.ts,遵守"agent 不依赖 memory
|
|
9
|
-
* 内部常量"分层原则。
|
|
10
|
-
*
|
|
11
|
-
* 收益:
|
|
12
|
-
* - 算法单点维护(排序权重调整只需改一处)
|
|
13
|
-
* - 常量与算法同源,agent 直接从 hybridMerge 导入,不再绕道 recall.ts
|
|
14
|
-
*
|
|
15
|
-
* 详见 ADR-004 · 记忆统一模型 + architecture_philosophy_rules.md §6 增量召回
|
|
16
|
-
*/
|
|
17
|
-
import type { Memory } from '../memory/types.js';
|
|
18
|
-
/** 语义搜索召回倍率(在最终 limit 基础上多召回一些,供后续融合排序) */
|
|
19
|
-
export declare const RECALL_LIMIT_MULTIPLIER = 2;
|
|
20
|
-
/** 综合排序时语义相似度权重 */
|
|
21
|
-
export declare const VECTOR_SCORE_WEIGHT = 0.6;
|
|
22
|
-
/** 综合排序时记忆 score 权重 */
|
|
23
|
-
export declare const MEMORY_SCORE_WEIGHT = 0.4;
|
|
24
|
-
/**
|
|
25
|
-
* 双通道合并结果条目
|
|
26
|
-
*
|
|
27
|
-
* 一条记忆在合并 Map 中的状态:memory + 它在向量通道的相似度分数。
|
|
28
|
-
* vectorScore = 0 表示该记忆仅来自关键词通道(未命中向量索引)。
|
|
29
|
-
*/
|
|
30
|
-
export interface HybridMergeEntry {
|
|
31
|
-
/** 记忆对象 */
|
|
32
|
-
memory: Memory;
|
|
33
|
-
/** 向量相似度分数(0~1,仅关键词命中时为 0) */
|
|
34
|
-
vectorScore: number;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* 双通道融合排序的纯函数
|
|
38
|
-
*
|
|
39
|
-
* 算法:按 vectorScore * VECTOR_SCORE_WEIGHT + memory.score * MEMORY_SCORE_WEIGHT 降序排列,
|
|
40
|
-
* 取前 limit 条。
|
|
41
|
-
*
|
|
42
|
-
* 输入:已去重的合并 Map 的 values(或任何可迭代的 HybridMergeEntry)
|
|
43
|
-
* 输出:排序后的数组(前 limit 条)
|
|
44
|
-
*
|
|
45
|
-
* 共享消费者:
|
|
46
|
-
* - recall.ts recall() — 召回时融合排序(+ boost + 写回存储)
|
|
47
|
-
* - memoryInspector.ts searchHybrid() — 搜索时融合排序(→ AgentSearchHit)
|
|
48
|
-
*
|
|
49
|
-
* @param entries - 双通道合并后的条目(调用方负责去重)
|
|
50
|
-
* @param limit - 返回数量上限
|
|
51
|
-
* @returns 排序后的 HybridMergeEntry 数组
|
|
52
|
-
*/
|
|
53
|
-
export declare function hybridMerge(entries: Iterable<HybridMergeEntry>, limit: number): HybridMergeEntry[];
|
|
54
|
-
//# sourceMappingURL=hybridMerge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hybridMerge.d.ts","sourceRoot":"","sources":["../../src/memory/hybridMerge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,mBAAmB;AACnB,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,uBAAuB;AACvB,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAIvC;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,KAAK,EAAE,MAAM,GACZ,gBAAgB,EAAE,CASpB"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// ─── 融合排序常量 ─────────────────────────────────────
|
|
2
|
-
/** 语义搜索召回倍率(在最终 limit 基础上多召回一些,供后续融合排序) */
|
|
3
|
-
export const RECALL_LIMIT_MULTIPLIER = 2;
|
|
4
|
-
/** 综合排序时语义相似度权重 */
|
|
5
|
-
export const VECTOR_SCORE_WEIGHT = 0.6;
|
|
6
|
-
/** 综合排序时记忆 score 权重 */
|
|
7
|
-
export const MEMORY_SCORE_WEIGHT = 0.4;
|
|
8
|
-
// ─── 融合排序纯函数 ───────────────────────────────────
|
|
9
|
-
/**
|
|
10
|
-
* 双通道融合排序的纯函数
|
|
11
|
-
*
|
|
12
|
-
* 算法:按 vectorScore * VECTOR_SCORE_WEIGHT + memory.score * MEMORY_SCORE_WEIGHT 降序排列,
|
|
13
|
-
* 取前 limit 条。
|
|
14
|
-
*
|
|
15
|
-
* 输入:已去重的合并 Map 的 values(或任何可迭代的 HybridMergeEntry)
|
|
16
|
-
* 输出:排序后的数组(前 limit 条)
|
|
17
|
-
*
|
|
18
|
-
* 共享消费者:
|
|
19
|
-
* - recall.ts recall() — 召回时融合排序(+ boost + 写回存储)
|
|
20
|
-
* - memoryInspector.ts searchHybrid() — 搜索时融合排序(→ AgentSearchHit)
|
|
21
|
-
*
|
|
22
|
-
* @param entries - 双通道合并后的条目(调用方负责去重)
|
|
23
|
-
* @param limit - 返回数量上限
|
|
24
|
-
* @returns 排序后的 HybridMergeEntry 数组
|
|
25
|
-
*/
|
|
26
|
-
export function hybridMerge(entries, limit) {
|
|
27
|
-
return [...entries]
|
|
28
|
-
.sort((a, b) => {
|
|
29
|
-
// 综合分数 = 向量相似度 * 0.6 + 记忆 score * 0.4
|
|
30
|
-
const scoreA = a.vectorScore * VECTOR_SCORE_WEIGHT + a.memory.score * MEMORY_SCORE_WEIGHT;
|
|
31
|
-
const scoreB = b.vectorScore * VECTOR_SCORE_WEIGHT + b.memory.score * MEMORY_SCORE_WEIGHT;
|
|
32
|
-
return scoreB - scoreA;
|
|
33
|
-
})
|
|
34
|
-
.slice(0, limit);
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=hybridMerge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hybridMerge.js","sourceRoot":"","sources":["../../src/memory/hybridMerge.ts"],"names":[],"mappings":"AAkBA,mDAAmD;AAEnD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,mBAAmB;AACnB,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,uBAAuB;AACvB,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAiBvC,kDAAkD;AAElD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CACzB,OAAmC,EACnC,KAAa;IAEb,OAAO,CAAC,GAAG,OAAO,CAAC;SAChB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,sCAAsC;QACtC,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,GAAG,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC;QAC1F,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,GAAG,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC;QAC1F,OAAO,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* InMemoryRelationStore — 内存关系存储测试用实现
|
|
3
|
-
*
|
|
4
|
-
* 职责:
|
|
5
|
-
* - 实现 IMemoryRelationStore 接口,纯内存数组存储
|
|
6
|
-
* - 用于单元测试和开发环境验证,不持久化
|
|
7
|
-
* - 与 InMemoryStorage 对齐,提供零 IO 的测试基座
|
|
8
|
-
*
|
|
9
|
-
* 设计原则(ADR-014):
|
|
10
|
-
* - 零 native 依赖:纯 JS 数组操作
|
|
11
|
-
* - 幂等添加:sourceId+targetId+type 三元组唯一,重复添加更新 weight/createdAt
|
|
12
|
-
* - 方向过滤:getRelations 按 direction 参数过滤 sourceId/targetId
|
|
13
|
-
*
|
|
14
|
-
* 宿主项目应实现 SqliteRelationStore(依赖 better-sqlite3)用于生产环境。
|
|
15
|
-
*/
|
|
16
|
-
import type { MemoryRelation, RelationDirection } from '../memory/types.js';
|
|
17
|
-
import type { IMemoryRelationStore } from '../memory/relationStore.js';
|
|
18
|
-
export declare class InMemoryRelationStore implements IMemoryRelationStore {
|
|
19
|
-
/** 关系列表(内存数组,不持久化) */
|
|
20
|
-
private readonly relations;
|
|
21
|
-
/**
|
|
22
|
-
* 添加关系
|
|
23
|
-
*
|
|
24
|
-
* 三元组唯一约束:sourceId+targetId+type 已存在时更新 weight/createdAt(幂等)。
|
|
25
|
-
*/
|
|
26
|
-
addRelation(relation: MemoryRelation): void;
|
|
27
|
-
/**
|
|
28
|
-
* 查询某记忆的关系
|
|
29
|
-
*
|
|
30
|
-
* direction 控制方向过滤:
|
|
31
|
-
* - 'outgoing':sourceId = memoryId
|
|
32
|
-
* - 'incoming':targetId = memoryId
|
|
33
|
-
* - 'both':合并两个方向并去重(基于对象引用)
|
|
34
|
-
*/
|
|
35
|
-
getRelations(memoryId: string, direction?: RelationDirection): MemoryRelation[];
|
|
36
|
-
/**
|
|
37
|
-
* 按关系类型查询
|
|
38
|
-
*/
|
|
39
|
-
getRelationsByType(type: string): MemoryRelation[];
|
|
40
|
-
/**
|
|
41
|
-
* 获取全部关系
|
|
42
|
-
*/
|
|
43
|
-
getAllRelations(): MemoryRelation[];
|
|
44
|
-
/**
|
|
45
|
-
* 删除指定关系
|
|
46
|
-
*
|
|
47
|
-
* sourceId+targetId+type 唯一定位,删除单条关系。
|
|
48
|
-
*/
|
|
49
|
-
removeRelation(sourceId: string, targetId: string, type: string): void;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=inMemoryRelationStore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inMemoryRelationStore.d.ts","sourceRoot":"","sources":["../../src/memory/inMemoryRelationStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,qBAAa,qBAAsB,YAAW,oBAAoB;IAChE,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAElD;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAe3C;;;;;;;OAOG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,iBAA0B,GAAG,cAAc,EAAE;IAavF;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE;IAIlD;;OAEG;IACH,eAAe,IAAI,cAAc,EAAE;IAInC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAQvE"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
export class InMemoryRelationStore {
|
|
2
|
-
/** 关系列表(内存数组,不持久化) */
|
|
3
|
-
relations = [];
|
|
4
|
-
/**
|
|
5
|
-
* 添加关系
|
|
6
|
-
*
|
|
7
|
-
* 三元组唯一约束:sourceId+targetId+type 已存在时更新 weight/createdAt(幂等)。
|
|
8
|
-
*/
|
|
9
|
-
addRelation(relation) {
|
|
10
|
-
const existingIdx = this.relations.findIndex((r) => r.sourceId === relation.sourceId &&
|
|
11
|
-
r.targetId === relation.targetId &&
|
|
12
|
-
r.type === relation.type);
|
|
13
|
-
if (existingIdx >= 0) {
|
|
14
|
-
// 幂等更新:保留原位置,覆盖 weight 和 createdAt
|
|
15
|
-
this.relations[existingIdx] = { ...relation };
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
this.relations.push({ ...relation });
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* 查询某记忆的关系
|
|
23
|
-
*
|
|
24
|
-
* direction 控制方向过滤:
|
|
25
|
-
* - 'outgoing':sourceId = memoryId
|
|
26
|
-
* - 'incoming':targetId = memoryId
|
|
27
|
-
* - 'both':合并两个方向并去重(基于对象引用)
|
|
28
|
-
*/
|
|
29
|
-
getRelations(memoryId, direction = 'both') {
|
|
30
|
-
if (direction === 'outgoing') {
|
|
31
|
-
return this.relations.filter((r) => r.sourceId === memoryId).map((r) => ({ ...r }));
|
|
32
|
-
}
|
|
33
|
-
if (direction === 'incoming') {
|
|
34
|
-
return this.relations.filter((r) => r.targetId === memoryId).map((r) => ({ ...r }));
|
|
35
|
-
}
|
|
36
|
-
// 'both':合并两个方向(每条关系最多匹配一次,无需去重)
|
|
37
|
-
return this.relations
|
|
38
|
-
.filter((r) => r.sourceId === memoryId || r.targetId === memoryId)
|
|
39
|
-
.map((r) => ({ ...r }));
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* 按关系类型查询
|
|
43
|
-
*/
|
|
44
|
-
getRelationsByType(type) {
|
|
45
|
-
return this.relations.filter((r) => r.type === type).map((r) => ({ ...r }));
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* 获取全部关系
|
|
49
|
-
*/
|
|
50
|
-
getAllRelations() {
|
|
51
|
-
return this.relations.map((r) => ({ ...r }));
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* 删除指定关系
|
|
55
|
-
*
|
|
56
|
-
* sourceId+targetId+type 唯一定位,删除单条关系。
|
|
57
|
-
*/
|
|
58
|
-
removeRelation(sourceId, targetId, type) {
|
|
59
|
-
const idx = this.relations.findIndex((r) => r.sourceId === sourceId && r.targetId === targetId && r.type === type);
|
|
60
|
-
if (idx >= 0) {
|
|
61
|
-
this.relations.splice(idx, 1);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=inMemoryRelationStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inMemoryRelationStore.js","sourceRoot":"","sources":["../../src/memory/inMemoryRelationStore.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,qBAAqB;IAChC,sBAAsB;IACL,SAAS,GAAqB,EAAE,CAAC;IAElD;;;;OAIG;IACH,WAAW,CAAC,QAAwB;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAC1C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;YAChC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;YAChC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAC3B,CAAC;QACF,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACrB,mCAAmC;YACnC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,QAAgB,EAAE,YAA+B,MAAM;QAClE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,iCAAiC;QACjC,OAAO,IAAI,CAAC,SAAS;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;aACjE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,QAAgB,EAAE,QAAgB,EAAE,IAAY;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAC7E,CAAC;QACF,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF"}
|
package/dist/memory/loader.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 记忆加载器
|
|
3
|
-
*
|
|
4
|
-
* 职责:把文件系统的记忆(personas/rules/skills)加载到 SQLite 索引
|
|
5
|
-
* 启动时:扫描文件 → 写入索引 → 按 source 召回必召记忆
|
|
6
|
-
*
|
|
7
|
-
* 这是"万物皆记忆"哲学的代码体现——所有记忆共享同一条加载管线
|
|
8
|
-
*/
|
|
9
|
-
import type { FileStore } from '../memory/store.js';
|
|
10
|
-
import type { IMemoryStorage } from '../memory/storageInterface.js';
|
|
11
|
-
import { type Memory } from '../memory/types.js';
|
|
12
|
-
export interface LoadResult {
|
|
13
|
-
/** 实际加载到索引的记忆数量 */
|
|
14
|
-
loaded: number;
|
|
15
|
-
/** 跳过的记忆(解析失败等) */
|
|
16
|
-
skipped: number;
|
|
17
|
-
/** 加载失败的详情 */
|
|
18
|
-
errors: Array<{
|
|
19
|
-
file: string;
|
|
20
|
-
error: string;
|
|
21
|
-
}>;
|
|
22
|
-
}
|
|
23
|
-
export declare class MemoryLoader {
|
|
24
|
-
private readonly fileStore;
|
|
25
|
-
private readonly index;
|
|
26
|
-
constructor(fileStore: FileStore, index: IMemoryStorage);
|
|
27
|
-
/**
|
|
28
|
-
* 扫描所有"配置类"记忆文件(persona/rule/skill)
|
|
29
|
-
* 写入 SQLite 索引
|
|
30
|
-
*
|
|
31
|
-
* @returns 加载结果统计
|
|
32
|
-
*/
|
|
33
|
-
loadAllToIndex(): Promise<LoadResult>;
|
|
34
|
-
/**
|
|
35
|
-
* 启动时的完整引导流程
|
|
36
|
-
* 1. 扫描配置文件 → 写入索引
|
|
37
|
-
* 2. 从索引按 source 召回必召记忆(rule + skill)
|
|
38
|
-
*
|
|
39
|
-
* 注:persona 记忆由 PersonaManager 单独处理,
|
|
40
|
-
* bootstrap 中自动跳过 persona(避免与 systemPromptPrefix 中的角色 prompt 重复)。
|
|
41
|
-
*
|
|
42
|
-
* @returns 启动时必召的所有记忆(用于初始化 Agent Loop 的 system prompt)
|
|
43
|
-
*/
|
|
44
|
-
bootstrap(): Promise<{
|
|
45
|
-
memories: Memory[];
|
|
46
|
-
loadResult: LoadResult;
|
|
47
|
-
}>;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/memory/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AA6B/D,MAAM,WAAW,UAAU;IACzB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,cAAc;IAGxC;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;IAgC3C;;;;;;;;;OASG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC;CAW3E"}
|
package/dist/memory/loader.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { SOURCE_LABELS } from '../memory/types.js';
|
|
2
|
-
import { toError } from '../utils/toError.js';
|
|
3
|
-
/**
|
|
4
|
-
* 启动时全量扫描的 source 列表
|
|
5
|
-
* - insight/profile/work-projection:运行时产生,不由 FileStore 管理
|
|
6
|
-
* - tool:由 registerTool() 注册为 tool_call,不再重复注入 system prompt
|
|
7
|
-
* - guardrail:由 AgentLoop 运行时读取,不注入 system prompt
|
|
8
|
-
*/
|
|
9
|
-
const STARTUP_SCAN_SOURCES = [
|
|
10
|
-
SOURCE_LABELS.PERSONA,
|
|
11
|
-
SOURCE_LABELS.RULE,
|
|
12
|
-
SOURCE_LABELS.SKILL,
|
|
13
|
-
SOURCE_LABELS.GUARDRAIL,
|
|
14
|
-
];
|
|
15
|
-
/**
|
|
16
|
-
* 判断内容是否为空壳模板(仅含标题和 blockquote 占位说明)
|
|
17
|
-
* 新建项目时的空壳规则模板属于此类
|
|
18
|
-
*
|
|
19
|
-
* 判断逻辑:过滤掉标题行和空行后,剩余内容全部是 blockquote 行
|
|
20
|
-
*/
|
|
21
|
-
function isPlaceholderContent(memory) {
|
|
22
|
-
const trimmed = memory.content.trim();
|
|
23
|
-
if (trimmed.length > 200)
|
|
24
|
-
return false;
|
|
25
|
-
const lines = trimmed.split('\n').filter(l => l.trim() && !l.trim().startsWith('#'));
|
|
26
|
-
return lines.length > 0 && lines.every(l => l.trim().startsWith('>'));
|
|
27
|
-
}
|
|
28
|
-
export class MemoryLoader {
|
|
29
|
-
fileStore;
|
|
30
|
-
index;
|
|
31
|
-
constructor(fileStore, index) {
|
|
32
|
-
this.fileStore = fileStore;
|
|
33
|
-
this.index = index;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* 扫描所有"配置类"记忆文件(persona/rule/skill)
|
|
37
|
-
* 写入 SQLite 索引
|
|
38
|
-
*
|
|
39
|
-
* @returns 加载结果统计
|
|
40
|
-
*/
|
|
41
|
-
async loadAllToIndex() {
|
|
42
|
-
const result = { loaded: 0, skipped: 0, errors: [] };
|
|
43
|
-
for (const source of STARTUP_SCAN_SOURCES) {
|
|
44
|
-
const names = await this.fileStore.list(source);
|
|
45
|
-
for (const name of names) {
|
|
46
|
-
try {
|
|
47
|
-
const memory = await this.fileStore.read(source, name);
|
|
48
|
-
if (!memory) {
|
|
49
|
-
result.skipped++;
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
// 跳过空壳模板(新建项目时的占位文件,无实质规则内容)
|
|
53
|
-
if (isPlaceholderContent(memory)) {
|
|
54
|
-
result.skipped++;
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
this.index.upsert(memory);
|
|
58
|
-
result.loaded++;
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
result.skipped++;
|
|
62
|
-
result.errors.push({
|
|
63
|
-
file: `${source}/${name}`,
|
|
64
|
-
error: toError(err).message,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return result;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* 启动时的完整引导流程
|
|
73
|
-
* 1. 扫描配置文件 → 写入索引
|
|
74
|
-
* 2. 从索引按 source 召回必召记忆(rule + skill)
|
|
75
|
-
*
|
|
76
|
-
* 注:persona 记忆由 PersonaManager 单独处理,
|
|
77
|
-
* bootstrap 中自动跳过 persona(避免与 systemPromptPrefix 中的角色 prompt 重复)。
|
|
78
|
-
*
|
|
79
|
-
* @returns 启动时必召的所有记忆(用于初始化 Agent Loop 的 system prompt)
|
|
80
|
-
*/
|
|
81
|
-
async bootstrap() {
|
|
82
|
-
const loadResult = await this.loadAllToIndex();
|
|
83
|
-
// 按 source 获取 rule 和 skill 记忆(跳过 persona,由 PersonaManager 单独管理)
|
|
84
|
-
const rules = this.index.getBySource(SOURCE_LABELS.RULE);
|
|
85
|
-
const skills = this.index.getBySource(SOURCE_LABELS.SKILL);
|
|
86
|
-
const memories = [...rules, ...skills];
|
|
87
|
-
return {
|
|
88
|
-
memories,
|
|
89
|
-
loadResult,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/memory/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/recall.d.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 记忆召回 — 简化关键词搜索
|
|
3
|
-
*
|
|
4
|
-
* 设计哲学:每次用户发消息,从所有记忆中搜索最相关的几条注入上下文
|
|
5
|
-
* 基于基元驱动模型,通过 source 开放字符串区分记忆来源,
|
|
6
|
-
* 通过双通道(语义 + 关键词)召回,无需独立管理器
|
|
7
|
-
*
|
|
8
|
-
* 双通道融合排序算法在 hybridMerge.ts 中实现,与 memoryInspector.searchHybrid() 共享。
|
|
9
|
-
*
|
|
10
|
-
* 详见 ADR-004 · 记忆统一模型 + architecture_philosophy_rules.md §6 增量召回
|
|
11
|
-
*/
|
|
12
|
-
import type { Memory } from '../memory/types.js';
|
|
13
|
-
import type { IMemoryStorage } from '../memory/storageInterface.js';
|
|
14
|
-
import type { IVectorStore } from '../memory/vectorStore.js';
|
|
15
|
-
/** 一天对应的毫秒数 */
|
|
16
|
-
export declare const ONE_DAY_MS: number;
|
|
17
|
-
/**
|
|
18
|
-
* 从文本中提取关键词(用于记忆召回)
|
|
19
|
-
*
|
|
20
|
-
* 基于 segmentText() 精确分词,叠加停用词过滤 + 英文词补充 + 去重。
|
|
21
|
-
* 分词基础设施统一由 segmenter.ts 提供,避免重复实现。
|
|
22
|
-
*
|
|
23
|
-
* @param input - 输入文本
|
|
24
|
-
* @returns 关键词数组(去重 + 停用词过滤)
|
|
25
|
-
*/
|
|
26
|
-
export declare function extractKeywords(input: string): string[];
|
|
27
|
-
/**
|
|
28
|
-
* 召回选项
|
|
29
|
-
*/
|
|
30
|
-
export interface RecallOptions {
|
|
31
|
-
/** 返回数量上限(默认 5) */
|
|
32
|
-
limit?: number;
|
|
33
|
-
/** 排除的 source 标签(默认排除 persona、rule、skill——已单独注入 system prompt 的记忆) */
|
|
34
|
-
excludeSources?: string[];
|
|
35
|
-
/** 向量存储(可选,提供时启用语义搜索;接受任意 IVectorStore 实现) */
|
|
36
|
-
vectorStore?: IVectorStore;
|
|
37
|
-
/** 语义搜索相似度阈值(默认 0.3) */
|
|
38
|
-
minSimilarity?: number;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* 从记忆存储中搜索相关记忆
|
|
42
|
-
*
|
|
43
|
-
* 双通道召回策略:
|
|
44
|
-
* 1. 语义搜索(VectorStore 可用时):向量余弦相似度
|
|
45
|
-
* 2. 关键词搜索(兜底):LIKE 匹配
|
|
46
|
-
* 3. 两路结果合并去重,按 score + similarity 综合排序(委托给 hybridMerge)
|
|
47
|
-
* 4. 排除已单独注入的记忆(persona、rule、skill)
|
|
48
|
-
* 5. 返回 top N
|
|
49
|
-
*
|
|
50
|
-
* 融合排序算法已提取到 hybridMerge.ts,与 searchHybrid() 共享同一实现
|
|
51
|
-
*
|
|
52
|
-
* @param storage - 记忆存储实例
|
|
53
|
-
* @param query - 搜索查询文本
|
|
54
|
-
* @param options - 召回选项
|
|
55
|
-
* @returns 匹配的记忆列表
|
|
56
|
-
*/
|
|
57
|
-
export declare function recall(storage: IMemoryStorage, query: string, options?: RecallOptions): Promise<Memory[]>;
|
|
58
|
-
/**
|
|
59
|
-
* 对单条记忆执行衰减计算
|
|
60
|
-
*
|
|
61
|
-
* @param memory - 要衰减的记忆
|
|
62
|
-
* @param now - 当前时间(Date 对象)
|
|
63
|
-
* @returns 是否实际发生了衰减
|
|
64
|
-
*/
|
|
65
|
-
export declare function applyDecayToMemory(memory: Memory, now: Date): boolean;
|
|
66
|
-
//# sourceMappingURL=recall.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/memory/recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA2B5D,eAAe;AACf,eAAO,MAAM,UAAU,QAAsB,CAAC;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAUvD;AAID;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC,CAgEnB;AAkBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAcrE"}
|