@zooique/memora 2.0.3 → 3.0.1
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 +1037 -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAInE;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,kEAAmE,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAmGhD;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;IACxB,kDAAkD;;IAElD,qEAAqE;;IAErE,0CAA0C;;IAE1C,sDAAsD;;IAEtD,gCAAgC;;IAEhC,0BAA0B;;CAElB,CAAC;AAIX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,oDAAoD;AACpD,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE"}
|
package/dist/memory/types.js
CHANGED
|
@@ -1,58 +1,83 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 记忆类型定义 —
|
|
3
|
-
*
|
|
4
|
-
* 设计哲学:万物皆是记忆,用 source 开放字符串替代封闭枚举
|
|
5
|
-
* 详见 ADR-004 · 记忆统一模型
|
|
2
|
+
* 记忆类型定义 — 基元驱动模型:记忆即轮次摘要(memory-as-summary),source 以开放字符串承载溯源标签(替代封闭枚举)
|
|
6
3
|
*/
|
|
7
4
|
import { configError } from '../utils/errors.js';
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
import { isPlainObject } from '../utils/objects.js';
|
|
6
|
+
/**
|
|
7
|
+
* round-summary 摘要类型取值集合(单一真源:运行时校验与类型声明均从此派生)。
|
|
8
|
+
* 新增取值只改此处——若类型与运行时校验集双写,类型扩展会静默漏掉校验集,
|
|
9
|
+
* 导致新类型摘要被兜底为 'general'(行为漂移无编译报错)。
|
|
10
|
+
*/
|
|
11
|
+
export const SUMMARY_TYPES = ['preference', 'fact', 'decision', 'intent', 'general'];
|
|
10
12
|
/**
|
|
11
|
-
* 记忆解析器 — 验证原始数据并转换为 Memory
|
|
13
|
+
* 记忆解析器 — 验证原始数据并转换为 Memory
|
|
14
|
+
* 校验:非空对象、字段类型、ISO 8601 日期
|
|
12
15
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* - 字段类型验证(string/number)
|
|
16
|
-
* - ISO 8601 日期格式验证
|
|
17
|
-
* - score 范围检查(0-1)
|
|
18
|
-
* - 默认值填充(score = 0.5)
|
|
16
|
+
* **白名单构造**:返回值只含 Memory 接口声明的字段,源对象上的任何未知字段(如旧档残留的
|
|
17
|
+
* `score`)一律剥离——宿主读旧档经此函数即完成数据层清洗,无需另写迁移脚本。
|
|
19
18
|
*
|
|
20
19
|
* @param raw - 原始数据(通常来自 JSON 解析或数据库查询)
|
|
21
|
-
* @returns 验证通过的 Memory
|
|
20
|
+
* @returns 验证通过的 Memory 对象(仅白名单字段,未知字段已剥离)
|
|
22
21
|
* @throws Error 当数据不符合 Memory 接口定义时
|
|
23
22
|
*/
|
|
24
23
|
export function parseMemory(raw) {
|
|
25
24
|
if (raw === null || typeof raw !== 'object') {
|
|
26
|
-
throw configError('Memory 解析失败', '输入必须是非空对象', [
|
|
25
|
+
throw configError('Memory 解析失败', '输入必须是非空对象', [
|
|
26
|
+
'检查数据源(JSON 文件 / 数据库查询)是否返回了有效对象',
|
|
27
|
+
]);
|
|
27
28
|
}
|
|
28
29
|
const obj = raw;
|
|
29
30
|
// 验证必需的 string 字段
|
|
30
31
|
const stringFields = ['id', 'content', 'source', 'name'];
|
|
31
32
|
for (const field of stringFields) {
|
|
32
33
|
if (typeof obj[field] !== 'string') {
|
|
33
|
-
throw configError('Memory 解析失败', `${field} 必须是字符串`, [
|
|
34
|
+
throw configError('Memory 解析失败', `${field} 必须是字符串`, [
|
|
35
|
+
`检查数据源中 ${field} 字段的类型(当前为 ${typeof obj[field]})`,
|
|
36
|
+
]);
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
// 验证 ISO 8601 日期字段
|
|
37
40
|
const dateFields = ['createdAt', 'accessedAt'];
|
|
38
41
|
for (const field of dateFields) {
|
|
39
42
|
if (typeof obj[field] !== 'string' || isNaN(Date.parse(obj[field]))) {
|
|
40
|
-
throw configError('Memory 解析失败', `${field} 必须是有效的 ISO 8601 日期字符串`, [
|
|
43
|
+
throw configError('Memory 解析失败', `${field} 必须是有效的 ISO 8601 日期字符串`, [
|
|
44
|
+
`检查数据源中 ${field} 字段的格式(当前值: ${JSON.stringify(obj[field])})`,
|
|
45
|
+
]);
|
|
41
46
|
}
|
|
42
47
|
}
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
if (typeof obj.score !== 'number' || !Number.isFinite(obj.score) || obj.score < 0 || obj.score > 1) {
|
|
47
|
-
throw configError('Memory 解析失败', `score 必须是 0-1 之间的数字(当前值: ${String(obj.score)})`, ['将 score 调整为 0-1 之间的有效数字']);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// 验证可选的 deletedAt 字段
|
|
48
|
+
// 验证可选的 deletedAt 字段(null 视为未删除并归一为 undefined:
|
|
49
|
+
// JSON 落盘可能出现 null,而 deletedAt?: string 不允许 null——否则消费方判
|
|
50
|
+
// `deletedAt === undefined` 会因 null !== undefined 把活跃记忆误判为已删除)
|
|
51
51
|
if (obj.deletedAt !== undefined && obj.deletedAt !== null) {
|
|
52
52
|
if (typeof obj.deletedAt !== 'string' || isNaN(Date.parse(obj.deletedAt))) {
|
|
53
53
|
throw configError('Memory 解析失败', `deletedAt 必须是有效的 ISO 8601 日期字符串(当前值: ${JSON.stringify(obj.deletedAt)})`, ['检查数据源中 deletedAt 字段的格式']);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
+
// 验证可选语义字段的类型(运行时校验与类型声明同源):不可信磁盘 JSON 的非法值
|
|
57
|
+
// (如 summaryType: 'bogus' / isModified: 'yes')靠 as 断言透传会致
|
|
58
|
+
// round-summary 分轨召回与编辑标记消费行为漂移(无编译报错)。
|
|
59
|
+
if (obj.metadata !== undefined && !isPlainObject(obj.metadata)) {
|
|
60
|
+
throw configError('Memory 解析失败', `metadata 必须是对象(当前为 ${typeof obj.metadata})`, [
|
|
61
|
+
'检查数据源中 metadata 字段的类型',
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
if (obj.summaryType !== undefined && !SUMMARY_TYPES.includes(obj.summaryType)) {
|
|
65
|
+
throw configError('Memory 解析失败', `summaryType 必须是合法摘要类型之一:${SUMMARY_TYPES.join(' / ')}(当前为 ${JSON.stringify(obj.summaryType)})`, ['检查数据源中 summaryType 字段的取值']);
|
|
66
|
+
}
|
|
67
|
+
if (obj.sessionName !== undefined && typeof obj.sessionName !== 'string') {
|
|
68
|
+
throw configError('Memory 解析失败', `sessionName 必须是字符串(当前为 ${typeof obj.sessionName})`, ['检查数据源中 sessionName 字段的类型']);
|
|
69
|
+
}
|
|
70
|
+
if (obj.roundId !== undefined && typeof obj.roundId !== 'string') {
|
|
71
|
+
throw configError('Memory 解析失败', `roundId 必须是字符串(当前为 ${typeof obj.roundId})`, [
|
|
72
|
+
'检查数据源中 roundId 字段的类型',
|
|
73
|
+
]);
|
|
74
|
+
}
|
|
75
|
+
if (obj.isModified !== undefined && typeof obj.isModified !== 'boolean') {
|
|
76
|
+
throw configError('Memory 解析失败', `isModified 必须是布尔值(当前为 ${typeof obj.isModified})`, ['检查数据源中 isModified 字段的类型']);
|
|
77
|
+
}
|
|
78
|
+
if (obj.supersededBy !== undefined && typeof obj.supersededBy !== 'string') {
|
|
79
|
+
throw configError('Memory 解析失败', `supersededBy 必须是字符串(当前为 ${typeof obj.supersededBy})`, ['检查数据源中 supersededBy 字段的类型']);
|
|
80
|
+
}
|
|
56
81
|
return {
|
|
57
82
|
id: obj.id,
|
|
58
83
|
content: obj.content,
|
|
@@ -60,76 +85,49 @@ export function parseMemory(raw) {
|
|
|
60
85
|
name: obj.name,
|
|
61
86
|
createdAt: obj.createdAt,
|
|
62
87
|
accessedAt: obj.accessedAt,
|
|
63
|
-
|
|
64
|
-
|
|
88
|
+
deletedAt: obj.deletedAt ?? undefined,
|
|
89
|
+
metadata: obj.metadata,
|
|
90
|
+
summaryType: obj.summaryType,
|
|
91
|
+
sessionName: obj.sessionName,
|
|
92
|
+
roundId: obj.roundId,
|
|
93
|
+
isModified: obj.isModified,
|
|
94
|
+
supersededBy: obj.supersededBy,
|
|
65
95
|
};
|
|
66
96
|
}
|
|
97
|
+
// ─── source 标签约定(非枚举,仅为当前使用的约定) ──────
|
|
67
98
|
/**
|
|
68
|
-
*
|
|
69
|
-
*/
|
|
70
|
-
export const MemorySchema = { parse: parseMemory };
|
|
71
|
-
// ─── source 标签约定(非枚举,仅为泊文当前使用的约定) ──────
|
|
72
|
-
/**
|
|
73
|
-
* 泊文当前使用的 source 标签约定
|
|
99
|
+
* 当前使用的 source 标签约定;source 是开放字符串,新增来源无需改代码,存储时指定即可
|
|
74
100
|
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
101
|
+
* persona / rule / skill / work-projection 为残留兼容标签:对应内容不归记忆库管理
|
|
102
|
+
* (角色包内容由角色包管理,作品投影落项目目录 projections/),标签保留用于
|
|
103
|
+
* typo 检测(sourceValidation.ts:KNOWN_SOURCES 集合)与存量行/外部导入识别;
|
|
104
|
+
* 它们不出现在 GOVERNANCE_SOURCES 中(治理系统只治理实际写入记忆库的 source)。
|
|
77
105
|
*/
|
|
78
106
|
export const SOURCE_LABELS = {
|
|
79
|
-
/**
|
|
107
|
+
/** 角色人格(角色包 content/persona.md)— 残留兼容标签,不写入记忆库 */
|
|
80
108
|
PERSONA: 'persona',
|
|
81
|
-
/**
|
|
109
|
+
/** 创作规则(角色包 content/rules.md + .memora/rules/*.md)— 残留兼容标签,不写入记忆库 */
|
|
82
110
|
RULE: 'rule',
|
|
83
|
-
/**
|
|
111
|
+
/** 技能定义(角色包 skills/ 目录)— 残留兼容标签,不写入记忆库 */
|
|
84
112
|
SKILL: 'skill',
|
|
85
|
-
/**
|
|
86
|
-
INSIGHT: 'insight',
|
|
87
|
-
/** 用户画像(每轮问答中 LLM 实时提取) */
|
|
88
|
-
PROFILE: 'profile',
|
|
89
|
-
/** 作品投影(Agent 读取用户作品时生成的概要) */
|
|
113
|
+
/** 作品投影(读取用户作品时生成的概要)— 残留兼容标签,作品落项目目录 projections/ */
|
|
90
114
|
WORK_PROJECTION: 'work-projection',
|
|
91
|
-
/**
|
|
92
|
-
|
|
93
|
-
/**
|
|
115
|
+
/** 轮次摘要(每轮对话后生成的溯源式摘要,记忆即摘要) */
|
|
116
|
+
ROUND_SUMMARY: 'round-summary',
|
|
117
|
+
/** 未知来源(未被已知标签覆盖时的兜底值) */
|
|
94
118
|
UNKNOWN: 'unknown',
|
|
95
119
|
};
|
|
120
|
+
// ─── round-summary 规范 ID 构造(单一真源) ────────────────
|
|
96
121
|
/**
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* - 离散值比连续浮点稳定,LLM 输出可预测
|
|
101
|
-
* - 0.5 兜底避免 LLM 失败时关系数据缺失
|
|
102
|
-
*/
|
|
103
|
-
export const RELATION_WEIGHTS = {
|
|
104
|
-
/** 几乎无关(LLM 明确判断无关系) */
|
|
105
|
-
NONE: 0.0,
|
|
106
|
-
/** 弱相关(关系存在但强度低) */
|
|
107
|
-
WEAK: 0.3,
|
|
108
|
-
/** 未判断(代码默认兜底,LLM 失败或未输出时) */
|
|
109
|
-
UNDEFINED: 0.5,
|
|
110
|
-
/** 强相关(关系明确且强度高) */
|
|
111
|
-
STRONG: 0.7,
|
|
112
|
-
/** 确定关系(矛盾/等价等强关系) */
|
|
113
|
-
CERTAIN: 1.0,
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* 预设关系类型建议值(非枚举,仅作约定)
|
|
117
|
-
*
|
|
118
|
-
* 注意:type 是开放字符串,新增关系类型无需改代码
|
|
119
|
-
* 只需在存储时指定 type 字符串即可
|
|
122
|
+
* round-summary 记忆的规范 ID:`{source}:{sessionName}:{roundId}`。
|
|
123
|
+
* 读写/过滤侧一律经本函数构造,禁止散落 `round-summary:` 字面量——
|
|
124
|
+
* 溯源标签变更只需同步 SOURCE_LABELS,此处自动跟随。
|
|
120
125
|
*/
|
|
121
|
-
export
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
/** 细化/演化(有向) */
|
|
129
|
-
REFINES: 'refines',
|
|
130
|
-
/** 因果(有向) */
|
|
131
|
-
CAUSED: 'caused',
|
|
132
|
-
/** 泛相关(双向对称) */
|
|
133
|
-
RELATED: 'related',
|
|
134
|
-
};
|
|
126
|
+
export function roundSummaryMemoryId(sessionName, roundId) {
|
|
127
|
+
return `${SOURCE_LABELS.ROUND_SUMMARY}:${sessionName}:${roundId}`;
|
|
128
|
+
}
|
|
129
|
+
/** 会话级前缀(定位某会话的全部摘要记忆),与 roundSummaryMemoryId 同源 */
|
|
130
|
+
export function roundSummarySessionPrefix(sessionName) {
|
|
131
|
+
return `${SOURCE_LABELS.ROUND_SUMMARY}:${sessionName}:`;
|
|
132
|
+
}
|
|
135
133
|
//# sourceMappingURL=types.js.map
|
package/dist/memory/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 项目搜索集成入口:带超时保护的加载包装,组合宿主自定义实现。
|
|
3
|
+
* 搜索失败时不抛异常、不中断对话流程(30s 超时防卡死 Agent 主循环);
|
|
4
|
+
* 但**失败不再降级为「空结果」**——二者必须可区分,见 `safeSearchProjectText` 的注释。
|
|
5
|
+
*/
|
|
6
|
+
import type { IProjectSearchProvider, ProjectFileSearchOptions, ProjectFileSearchResult, ProjectTextSearchOptions, ProjectTextSearchResult } from '../project-search/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* 带超时和错误处理的按文件名搜索包装:超时或失败时不抛异常。
|
|
9
|
+
*
|
|
10
|
+
* **为什么失败不返回空数组**(name 模式同 content):`[]` 与「真零命中」在调用侧
|
|
11
|
+
* **逐字同形**,于是「搜索坏了」被当成「项目里没有」——扁平数组返回正是这类
|
|
12
|
+
* 假阴性的温床(返回 `ProjectFileSearchResult` 对象,放宽/截断/失败各有载体)。
|
|
13
|
+
* 失败→上报 `failed: true`(**不是** error:不置错、不重试,只在文案里如实说明检索未完成),
|
|
14
|
+
* 由调用方分流表述。
|
|
15
|
+
*/
|
|
16
|
+
export declare function safeSearchProjectFiles(provider: IProjectSearchProvider, options?: ProjectFileSearchOptions): Promise<ProjectFileSearchResult>;
|
|
17
|
+
/**
|
|
18
|
+
* 带超时和错误处理的按内容搜索包装:超时或失败时不抛异常。
|
|
19
|
+
*
|
|
20
|
+
* **为什么失败不返回空数组**:`[]` 与「真零命中」在调用侧**逐字同形**,
|
|
21
|
+
* 于是「搜索坏了」被当成「项目里没有」——这是本仓最隐蔽的一类假阴性(ripgrep 用 exit 2 与 1
|
|
22
|
+
* 区分这两态)。失败→上报 `failed: true`(**不是** error,对齐
|
|
23
|
+
* "no results is not an error":不置错、不重试,只在文案里如实说明检索未完成),由调用方分流表述。
|
|
24
|
+
*
|
|
25
|
+
* 注:`safeSearchProjectFiles`(name 模式)与 content 同一套元信息载体
|
|
26
|
+
* (`ProjectFileSearchResult` + 失败→`failed: true`)。
|
|
27
|
+
*/
|
|
28
|
+
export declare function safeSearchProjectText(provider: IProjectSearchProvider, options: ProjectTextSearchOptions): Promise<ProjectTextSearchResult>;
|
|
29
|
+
//# sourceMappingURL=projectSearchProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectSearchProvider.d.ts","sourceRoot":"","sources":["../../src/project-search/projectSearchProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAKnC;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,sBAAsB,EAChC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,uBAAuB,CAAC,CAkBlC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAkBlC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** 项目搜索超时时间(毫秒) */
|
|
2
|
+
const PROJECT_SEARCH_TIMEOUT_MS = 30_000;
|
|
3
|
+
/**
|
|
4
|
+
* 带超时和错误处理的按文件名搜索包装:超时或失败时不抛异常。
|
|
5
|
+
*
|
|
6
|
+
* **为什么失败不返回空数组**(name 模式同 content):`[]` 与「真零命中」在调用侧
|
|
7
|
+
* **逐字同形**,于是「搜索坏了」被当成「项目里没有」——扁平数组返回正是这类
|
|
8
|
+
* 假阴性的温床(返回 `ProjectFileSearchResult` 对象,放宽/截断/失败各有载体)。
|
|
9
|
+
* 失败→上报 `failed: true`(**不是** error:不置错、不重试,只在文案里如实说明检索未完成),
|
|
10
|
+
* 由调用方分流表述。
|
|
11
|
+
*/
|
|
12
|
+
export async function safeSearchProjectFiles(provider, options) {
|
|
13
|
+
let timer;
|
|
14
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
15
|
+
timer = setTimeout(() => reject(new Error('项目文件搜索超时(30s)')), PROJECT_SEARCH_TIMEOUT_MS);
|
|
16
|
+
});
|
|
17
|
+
try {
|
|
18
|
+
return await Promise.race([provider.searchFiles(options), timeoutPromise]);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
// 失败不抛异常,但**不再伪装成可信的零命中**
|
|
22
|
+
return { matches: [], truncated: false, failed: true };
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
// 成功/失败均清理超时定时器,防残留定时器拖住进程
|
|
26
|
+
clearTimeout(timer);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 带超时和错误处理的按内容搜索包装:超时或失败时不抛异常。
|
|
31
|
+
*
|
|
32
|
+
* **为什么失败不返回空数组**:`[]` 与「真零命中」在调用侧**逐字同形**,
|
|
33
|
+
* 于是「搜索坏了」被当成「项目里没有」——这是本仓最隐蔽的一类假阴性(ripgrep 用 exit 2 与 1
|
|
34
|
+
* 区分这两态)。失败→上报 `failed: true`(**不是** error,对齐
|
|
35
|
+
* "no results is not an error":不置错、不重试,只在文案里如实说明检索未完成),由调用方分流表述。
|
|
36
|
+
*
|
|
37
|
+
* 注:`safeSearchProjectFiles`(name 模式)与 content 同一套元信息载体
|
|
38
|
+
* (`ProjectFileSearchResult` + 失败→`failed: true`)。
|
|
39
|
+
*/
|
|
40
|
+
export async function safeSearchProjectText(provider, options) {
|
|
41
|
+
let timer;
|
|
42
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
43
|
+
timer = setTimeout(() => reject(new Error('项目内容搜索超时(30s)')), PROJECT_SEARCH_TIMEOUT_MS);
|
|
44
|
+
});
|
|
45
|
+
try {
|
|
46
|
+
return await Promise.race([provider.searchText(options), timeoutPromise]);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// 失败不抛异常,但**不再伪装成可信的零命中**
|
|
50
|
+
return { matches: [], truncated: false, failed: true };
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
// 成功/失败均清理超时定时器,防残留定时器拖住进程
|
|
54
|
+
clearTimeout(timer);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=projectSearchProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectSearchProvider.js","sourceRoot":"","sources":["../../src/project-search/projectSearchProvider.ts"],"names":[],"mappings":"AAaA,mBAAmB;AACnB,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgC,EAChC,OAAkC;IAElC,IAAI,KAAgD,CAAC;IACrD,MAAM,cAAc,GAAG,IAAI,OAAO,CAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACxE,KAAK,GAAG,UAAU,CAChB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,EACxC,yBAAyB,CAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;QAC1B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,2BAA2B;QAC3B,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgC,EAChC,OAAiC;IAEjC,IAAI,KAAgD,CAAC;IACrD,MAAM,cAAc,GAAG,IAAI,OAAO,CAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACxE,KAAK,GAAG,UAAU,CAChB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,EACxC,yBAAyB,CAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;QAC1B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,2BAA2B;QAC3B,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 构造内容搜索的放宽词表(显式片段优先)
|
|
3
|
+
*
|
|
4
|
+
* @param query 原始查询串(LLM 传入,可能多词/含分隔符)
|
|
5
|
+
* @returns 去重后的词表;**不含**整串本身(整串是「精确优先」那一轮用的,重复下发无意义)
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* buildSearchTerms('技术栈 FastAPI Next.js PostgreSQL')
|
|
9
|
+
* // → ['技术', 'FastAPI', 'Next.js', 'PostgreSQL'] (无 next / js 碎片)
|
|
10
|
+
* buildSearchTerms('核心|愿景')
|
|
11
|
+
* // → ['核心', '愿景'] (分隔符写法与空格写法同解,见分词 SSOT)
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildSearchTerms(query: string): string[];
|
|
14
|
+
//# sourceMappingURL=terms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terms.d.ts","sourceRoot":"","sources":["../../src/project-search/terms.ts"],"names":[],"mappings":"AAiCA;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBxD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 项目内容搜索的「放宽词表」构造 —— 显式片段优先
|
|
3
|
+
*
|
|
4
|
+
* 用途:`search_project mode=content` 采用「精确优先 + 零命中回退」——先按整串字面量搜,
|
|
5
|
+
* 整串零命中才用本函数产出的词表做一次 OR 放宽。词表由内核产出、宿主执行(判定留在宿主)。
|
|
6
|
+
*
|
|
7
|
+
* 为什么不能直接复用 `extractKeywords(query)`——实测反例:
|
|
8
|
+
* ```
|
|
9
|
+
* extractKeywords("技术栈 FastAPI Next.js PostgreSQL")
|
|
10
|
+
* → ["技术","fastapi","next.js","postgresql","next","js"]
|
|
11
|
+
* ^^^^^^ ^^^^ 原查询中不存在的碎片
|
|
12
|
+
* ```
|
|
13
|
+
* 根因:`extractKeywords` 的英文补充 `input.match(/[a-z]{2,}/gi)` 在 `.` 处切断 `Next.js`;
|
|
14
|
+
* 而碎片 `js` 会命中一切 `JSON` / `Node.js` 写法 —— 实测 20 条放宽命中里 **10 条纯靠 `js` 命中**
|
|
15
|
+
* (假阴性换成假阳性,同样违反诚实化)。本词表把「空白分隔的片段」当一等公民,碎片噪声 10/20 → 0/20。
|
|
16
|
+
*
|
|
17
|
+
* 不变量(测试断言对象):
|
|
18
|
+
* 1. 空白分隔片段是一等公民:**不含 CJK 的片段原样保留**(`Next.js` 仍是 `Next.js`,不二次切分);
|
|
19
|
+
* 2. 含 CJK 的片段走内核分词 SSOT(`extractKeywords`),**不新造第二套分词器**;
|
|
20
|
+
* 3. 词表中**不得出现原查询里不存在的 ASCII 碎片**(`next` / `js`)。
|
|
21
|
+
*/
|
|
22
|
+
import { extractKeywords } from '../memory/keywordsTouch.js';
|
|
23
|
+
/** 含 CJK(汉字/扩展区 + CJK 标点 + 全角形式)的片段 → 需分词;其余(ASCII、拉丁扩展)原样保留 */
|
|
24
|
+
const CONTAINS_CJK = /[\u3400-\u9fff\u3000-\u303f\uff00-\uffef]/;
|
|
25
|
+
/**
|
|
26
|
+
* 最短词长(对齐 `extractKeywords` 自己的 `length >= 2` 守卫,同一标准不再造第二条)
|
|
27
|
+
*
|
|
28
|
+
* 为什么必须挡单字符 ASCII 片段:`"a b"` 会产出 `a|b` 级正则,命中几乎每一行 —— 放宽变成噪声。
|
|
29
|
+
*/
|
|
30
|
+
const MIN_TERM_LEN = 2;
|
|
31
|
+
/**
|
|
32
|
+
* 构造内容搜索的放宽词表(显式片段优先)
|
|
33
|
+
*
|
|
34
|
+
* @param query 原始查询串(LLM 传入,可能多词/含分隔符)
|
|
35
|
+
* @returns 去重后的词表;**不含**整串本身(整串是「精确优先」那一轮用的,重复下发无意义)
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* buildSearchTerms('技术栈 FastAPI Next.js PostgreSQL')
|
|
39
|
+
* // → ['技术', 'FastAPI', 'Next.js', 'PostgreSQL'] (无 next / js 碎片)
|
|
40
|
+
* buildSearchTerms('核心|愿景')
|
|
41
|
+
* // → ['核心', '愿景'] (分隔符写法与空格写法同解,见分词 SSOT)
|
|
42
|
+
*/
|
|
43
|
+
export function buildSearchTerms(query) {
|
|
44
|
+
const terms = [];
|
|
45
|
+
const seen = new Set();
|
|
46
|
+
// 大小写不敏感去重(匹配本就是大小写不敏感的),但**保留首次出现的写法**供文案展示
|
|
47
|
+
// (`Next.js` 比 `next.js` 更像原查询;`TODO todo` 不应产出两条等价分支)
|
|
48
|
+
const push = (term) => {
|
|
49
|
+
const key = term.toLowerCase();
|
|
50
|
+
if (seen.has(key))
|
|
51
|
+
return;
|
|
52
|
+
seen.add(key);
|
|
53
|
+
terms.push(term);
|
|
54
|
+
};
|
|
55
|
+
for (const segment of query.split(/\s+/).filter(Boolean)) {
|
|
56
|
+
if (CONTAINS_CJK.test(segment)) {
|
|
57
|
+
// 含 CJK:交给内核分词原语(标点/分隔符由它切)
|
|
58
|
+
for (const term of extractKeywords(segment))
|
|
59
|
+
push(term);
|
|
60
|
+
}
|
|
61
|
+
else if (segment.length >= MIN_TERM_LEN) {
|
|
62
|
+
// 纯 ASCII / 拉丁扩展:原样保留,不二次切分(保 `Next.js` 完整)
|
|
63
|
+
push(segment);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return terms;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=terms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terms.js","sourceRoot":"","sources":["../../src/project-search/terms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,gEAAgE;AAChE,MAAM,YAAY,GAAG,2CAA2C,CAAC;AAEjE;;;;GAIG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,6CAA6C;IAC7C,uDAAuD;IACvD,MAAM,IAAI,GAAG,CAAC,IAAY,EAAQ,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,4BAA4B;YAC5B,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YAC1C,4CAA4C;YAC5C,IAAI,CAAC,OAAO,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 项目搜索提供者接口定义:让 memora 内核具备可注入的「项目内搜索」能力。
|
|
3
|
+
* 宿主实现 IProjectSearchProvider 注入自定义实现(VS Code 宿主用 workspace.findFiles /
|
|
4
|
+
* findTextInFiles,等价 IDE 全局搜索 Ctrl+Shift+F)。接口注入,遵循 IWebSearchProvider
|
|
5
|
+
* 模式;零依赖。
|
|
6
|
+
*/
|
|
7
|
+
/** 按文件名 glob 命中的文件 */
|
|
8
|
+
export interface ProjectFileMatch {
|
|
9
|
+
/** 文件相对项目根的路径 */
|
|
10
|
+
path: string;
|
|
11
|
+
}
|
|
12
|
+
/** 按内容全文命中的文件(含行级定位,供后续 read_file 精读) */
|
|
13
|
+
export interface ProjectTextMatch {
|
|
14
|
+
/** 文件相对项目根的路径 */
|
|
15
|
+
path: string;
|
|
16
|
+
/** 命中行号(1 起;宿主可不提供) */
|
|
17
|
+
line?: number;
|
|
18
|
+
/** 命中行预览片段(去控制字符 + 限长,防上下文注入) */
|
|
19
|
+
preview?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 按内容搜索的**结果对象**(三态通道)
|
|
23
|
+
*
|
|
24
|
+
* 为什么不是一个 `ProjectTextMatch[]`:截断/失败/放宽都是**关于本次检索本身**的元信息,
|
|
25
|
+
* 挂在逐条命中上时**零命中就没有载体**(空数组承载不了任何字段)——于是「没搜到」与
|
|
26
|
+
* 「没搜完」与「搜索坏了」在调用侧逐字同形。返回对象让这三态各自可见(对齐 ripgrep
|
|
27
|
+
* 的 exit 0/1/2:有匹配 / 可信的零 / 出错了)。
|
|
28
|
+
*/
|
|
29
|
+
export interface ProjectTextSearchResult {
|
|
30
|
+
/** 命中列表(零命中也可能是 "没搜完" 或 "搜索失败",须结合下方标记判断,勿单独采信) */
|
|
31
|
+
matches: ProjectTextMatch[];
|
|
32
|
+
/** 检索被截断:零命中或少量命中都**不代表"不存在"** */
|
|
33
|
+
truncated: boolean;
|
|
34
|
+
/** 截断主因:`results` 结果达上限 / `files` 扫描达文件上限(二者可同时成立时以 `results` 为停因) */
|
|
35
|
+
truncatedBy?: 'results' | 'files';
|
|
36
|
+
/**
|
|
37
|
+
* 实际参与匹配的文件数(宿主**上报的数据**,不是内核常量——内核从不扫描;
|
|
38
|
+
* 宿主内部预算量不得提升为内核常量,只能以结果对象数据上报)
|
|
39
|
+
*/
|
|
40
|
+
scannedFiles?: number;
|
|
41
|
+
/**
|
|
42
|
+
* 只检索了**前一部分**(文件过大,后半段未覆盖)的文件数;`> 0` 时"零命中"不等于"不存在"
|
|
43
|
+
*
|
|
44
|
+
* 注意语义:这些文件**参与了检索**(不是被跳过),只是覆盖面不完整——故不叫 "skipped"。
|
|
45
|
+
*/
|
|
46
|
+
partialReadFiles?: number;
|
|
47
|
+
/**
|
|
48
|
+
* 读取失败(权限不足 / 已被删除 / 悬空链接 / IO 错误)而**完全未参与检索**的文件数
|
|
49
|
+
*
|
|
50
|
+
* 与 `partialReadFiles` 区分:前者"看了但没看全",后者"根本没看上"——两者都是"零命中不等于不存在"的
|
|
51
|
+
* 依据,但补救动作不同(部分读 → 换更具体的关键词或 read_file 精读;读取失败 → 可重试)。
|
|
52
|
+
*/
|
|
53
|
+
unreadableSkipped?: number;
|
|
54
|
+
/** 某文件命中数曾被"单文件上限"截断(结果条数**不完整**) */
|
|
55
|
+
perFileCapped?: boolean;
|
|
56
|
+
/** 检索自身失败(超时/抛错)≠ 真零命中——与 `matches: []` **正交**,须分流表述 */
|
|
57
|
+
failed?: boolean;
|
|
58
|
+
/** 整串未精确命中、已放宽为分词匹配 → 结果**非精确**命中 */
|
|
59
|
+
relaxed?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* 放宽时**实际使用**的词(文案"已按 … 放宽"的**唯一取值来源**)
|
|
62
|
+
*
|
|
63
|
+
* ⚠️ 调用方**不得**改用自己下发的那份 `terms`——那样就有两份副本需要保持一致(双轨镜像);
|
|
64
|
+
* 唯一真值 = 宿主回报的这个字段。
|
|
65
|
+
*/
|
|
66
|
+
termsUsed?: string[];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 按文件名搜索的结果对象(与 content 模式同构的两轮语义)
|
|
70
|
+
*
|
|
71
|
+
* 扁平 `ProjectFileMatch[]` 无法区分零命中的两种语义——空数组承载不了任何标志,
|
|
72
|
+
* 「真零命中」与「放宽过的零命中」在调用侧逐字同形。与 `ProjectTextSearchResult`
|
|
73
|
+
* 同构:放宽/截断都是**关于本次检索本身**的元信息,返回对象让各态各自可见
|
|
74
|
+
* (对齐 ripgrep 的 exit 0/1/2:有匹配 / 可信的零 / 出错了)。
|
|
75
|
+
*/
|
|
76
|
+
export interface ProjectFileSearchResult {
|
|
77
|
+
/** 命中列表(零命中也可能是"没搜完"或"搜索失败",须结合标记判断,勿单独采信) */
|
|
78
|
+
matches: ProjectFileMatch[];
|
|
79
|
+
/** 整串 glob 未精确命中、已放宽为名称子串匹配 → 结果**非精确**命中 */
|
|
80
|
+
relaxed?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* 放宽时**实际使用**的词(文案"已按 … 放宽"的**唯一取值来源**)
|
|
83
|
+
*
|
|
84
|
+
* ⚠️ 调用方**不得**改用自己下发的那份 `terms`——那样就有两份副本需要保持一致(双轨镜像);
|
|
85
|
+
* 唯一真值 = 宿主回报的这个字段。
|
|
86
|
+
*/
|
|
87
|
+
termsUsed?: string[];
|
|
88
|
+
/** 检索被截断(findFiles 达 maxResults 上限) */
|
|
89
|
+
truncated?: boolean;
|
|
90
|
+
/** 截断主因:`results` 结果达上限 / `files` 扫描达文件上限(name 模式下仅 results) */
|
|
91
|
+
truncatedBy?: 'results' | 'files';
|
|
92
|
+
/** 检索自身失败(超时/抛错)≠ 真零命中 —— 与 `matches: []` **正交**,须分流表述 */
|
|
93
|
+
failed?: boolean;
|
|
94
|
+
}
|
|
95
|
+
/** 按文件名搜索的选项 */
|
|
96
|
+
export interface ProjectFileSearchOptions {
|
|
97
|
+
/** 文件名 glob(如匹配 src 目录下全部 TS 文件);省略时列出项目全部文件(受 maxResults 限制) */
|
|
98
|
+
query?: string;
|
|
99
|
+
/** 限定目录/文件 glob(可选,如仅搜 src 目录) */
|
|
100
|
+
include?: string;
|
|
101
|
+
/** 排除 glob(可选,如排除 node_modules 目录) */
|
|
102
|
+
exclude?: string;
|
|
103
|
+
/** 返回结果数量上限 */
|
|
104
|
+
maxResults?: number;
|
|
105
|
+
/**
|
|
106
|
+
* 放宽词表(由内核分词 SSOT 产出,见 `buildSearchTerms`);宿主**仅在整串/原样 glob 零命中时**才启用,
|
|
107
|
+
* 未提供则不放宽。放宽的**判定**留在宿主(只有宿主知道扫了多少、有没有扫完)。
|
|
108
|
+
* name 与 content 共用(两模式同一放宽设施,无第二套节奏)。
|
|
109
|
+
*/
|
|
110
|
+
terms?: string[];
|
|
111
|
+
}
|
|
112
|
+
/** 按内容全文搜索的选项 */
|
|
113
|
+
export interface ProjectTextSearchOptions extends ProjectFileSearchOptions {
|
|
114
|
+
/** 内容查询词(宿主按**字面量**匹配;宿主自行决定大小写与转义,内核不假定正则语义) */
|
|
115
|
+
pattern: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* 项目搜索提供者接口:宿主实现并注入 AgentOptions.projectSearchProvider 提供
|
|
119
|
+
* 「在项目(当前工作区)中搜索文件」能力;未注入时内核不暴露 search_project 工具给 LLM。
|
|
120
|
+
*/
|
|
121
|
+
export interface IProjectSearchProvider {
|
|
122
|
+
/**
|
|
123
|
+
* 按文件名 glob 搜索项目文件,返回命中列表 + **本次检索的元信息**(放宽/截断)
|
|
124
|
+
*
|
|
125
|
+
* 实现约定(宿主侧):① 先按 `query` 原样作 glob 精确匹配(保会写 glob 的用法);
|
|
126
|
+
* ② 零命中且 `query` 无 glob 元字符、且 `terms` 非空时,才用 `terms` 按名称子串做一次
|
|
127
|
+
* OR 放宽,并置 `relaxed` + 回填 `termsUsed`;③ 截断**必须回报**(宁少勿假)。
|
|
128
|
+
*/
|
|
129
|
+
searchFiles(options?: ProjectFileSearchOptions): Promise<ProjectFileSearchResult>;
|
|
130
|
+
/**
|
|
131
|
+
* 按内容全文搜索项目文件(等价全局搜索内容),返回命中文件及行预览 + **本次检索的元信息**
|
|
132
|
+
*
|
|
133
|
+
* 实现约定(宿主侧):① 先按 `pattern` 整串匹配(精确优先);② 整串零命中且 `terms` 非空时,
|
|
134
|
+
* 才用 `terms` 做一次 OR 放宽,并置 `relaxed` + 回填 `termsUsed`;③ 截断/跳过/失败等事实
|
|
135
|
+
* **必须回报**(宁少勿假:报告"没搜完"好过让调用方把"没搜到"当成"不存在")。
|
|
136
|
+
*/
|
|
137
|
+
searchText(options: ProjectTextSearchOptions): Promise<ProjectTextSearchResult>;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/project-search/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sBAAsB;AACtB,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,kCAAkC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,WAAW,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,8CAA8C;IAC9C,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAClC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAwB;IACvC,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,iBAAiB;AACjB,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;IACxE,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClF;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/project-search/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|