@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
|
@@ -2,37 +2,52 @@
|
|
|
2
2
|
* OpenAI Chat Completions 兼容实现
|
|
3
3
|
*
|
|
4
4
|
* 适用于:DeepSeek / 豆包 / 通义 / Ollama / 任何兼容 OpenAI 协议的 API
|
|
5
|
-
* 详见 ADR-003
|
|
6
5
|
*/
|
|
7
6
|
import { LlmProvider } from '../llm/provider.js';
|
|
8
|
-
import { llmError, networkError, configError,
|
|
7
|
+
import { llmError, networkError, configError, isAbortError, isTimeoutError, } from '../utils/errors.js';
|
|
8
|
+
import { toError } from '../utils/toError.js';
|
|
9
9
|
import { logger } from '../logging/logger.js';
|
|
10
10
|
import { mergeAbortSignals } from '../llm/abortSignal.js';
|
|
11
|
+
/** 错误响应体截断长度(字符数):统一 4 处 errorText.slice(0,200) 的常量,避免魔法数字 */
|
|
12
|
+
const MAX_ERROR_BODY_LEN = 200;
|
|
13
|
+
// ─── LLM 请求参数边界(外部注入防失控) ─────────────────
|
|
14
|
+
/** timeoutMs 上限:5 分钟,防配置超大值导致请求等待失控(下限不设,测试/调试用小值模拟超时) */
|
|
15
|
+
const MAX_TIMEOUT_MS = 300_000;
|
|
11
16
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
17
|
+
* 归一化 maxTokens:仅做**形态防御**——正整数才透传(向下取整),零/负/非数值返回 undefined
|
|
18
|
+
* (不传,让服务端默认)。
|
|
19
|
+
* **上限不裁决**(有意为之,勿加回):真实上限由模型/服务端决定,超限值原样透传、由服务端
|
|
20
|
+
* 可见报错——本地任何一层静默丢弃都会造出「UI 显示值 ≠ 真实生效值」的坑(同一裁决见
|
|
21
|
+
* contextWindow:宿主护栏是输入边界的唯一可见裁决点,内核只防形态)。
|
|
16
22
|
*/
|
|
17
|
-
|
|
23
|
+
function normalizeMaxTokens(value) {
|
|
24
|
+
if (typeof value !== 'number' || !Number.isFinite(value))
|
|
25
|
+
return undefined;
|
|
26
|
+
if (value < 1)
|
|
27
|
+
return undefined;
|
|
28
|
+
return Math.floor(value);
|
|
29
|
+
}
|
|
18
30
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* 背景:reasoning 模型(DeepSeek-R1/o1/QwQ 等)首 chunk 前需完成思维链推理,
|
|
22
|
-
* 可能耗时 30-90s;chunk 间正常停顿 < 10s,但复杂推理节点可能短暂停顿。
|
|
23
|
-
*
|
|
24
|
-
* 策略:
|
|
25
|
-
* - 首 chunk 超时 120s:与请求级超时一致,给 reasoning 模型足够思考时间
|
|
26
|
-
* - chunk 间超时 60s:首 chunk 已到说明连接正常,60s 足以覆盖正常停顿
|
|
27
|
-
*
|
|
28
|
-
* 判定依据:firstChunkReceived 标志位区分两种阶段
|
|
31
|
+
* 归一化 timeoutMs:合法(≤MAX_TIMEOUT_MS 且 >0)返回原值,越界/非法回退默认。
|
|
32
|
+
* 防超大值等待失控;不设下限以保留测试用小超时值。
|
|
29
33
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
function normalizeTimeoutMs(value, fallback) {
|
|
35
|
+
if (typeof value !== 'number' || !Number.isFinite(value))
|
|
36
|
+
return fallback;
|
|
37
|
+
if (value <= 0 || value > MAX_TIMEOUT_MS)
|
|
38
|
+
return fallback;
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
32
41
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
42
|
+
* chunk 级读超时区分首 chunk 与 chunk 间(reasoning 适配):
|
|
43
|
+
* 首 chunk 前可能思考 30-90s(DeepSeek-R1/o1/QwQ 等)→ 120s;连接正常后停顿 <10s → 60s
|
|
35
44
|
*/
|
|
45
|
+
const FIRST_CHUNK_TIMEOUT_MS = 120_000;
|
|
46
|
+
const INTER_CHUNK_TIMEOUT_MS = 60_000;
|
|
47
|
+
/** 有效 SSE 事件停滞超时:即便有字节持续到达(keep-alive/代理心跳),只要长时间无 `data:` 事件,
|
|
48
|
+
* 也判超时——补 chunk 级超时(按 read 重置)对「有字节无进展」的真空区,防止连接半挂永久等待。 */
|
|
49
|
+
const EVENT_STALL_TIMEOUT_MS = 120_000;
|
|
50
|
+
/** 通用 OpenAI 兼容 Provider:通过 baseUrl 适配不同厂商 */
|
|
36
51
|
export class OpenAICompatibleProvider extends LlmProvider {
|
|
37
52
|
config;
|
|
38
53
|
name;
|
|
@@ -40,14 +55,32 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
40
55
|
super();
|
|
41
56
|
this.config = config;
|
|
42
57
|
this.name = name;
|
|
58
|
+
this._setCapabilities(config);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 能力位赋值(内置为只读,外部不可改):默认 true 保留存量云 LLM「有工具集即走原生 FC」行为,
|
|
62
|
+
* 本地运行时(Ollama/LM Studio 等)无原生 FC 须在宿主配置时显式置 false。
|
|
63
|
+
* @param config 构造时的能力位声明(undefined → 回落默认)
|
|
64
|
+
*/
|
|
65
|
+
_setCapabilities(config) {
|
|
66
|
+
this.supportsToolCalling =
|
|
67
|
+
config.supportsToolCalling ?? true;
|
|
68
|
+
this.supportsStructuredOutput =
|
|
69
|
+
config.supportsStructuredOutput ?? false;
|
|
43
70
|
}
|
|
44
71
|
/** 默认请求超时:120 秒 */
|
|
45
72
|
static DEFAULT_TIMEOUT_MS = 120_000;
|
|
73
|
+
/** tool_call id 兜底的自增序列:id 缺失时给出**跨批唯一**的占位——
|
|
74
|
+
* 本批内下标 `call_${idx}` 会让同一 turn 的两次迭代各产 `call_0`,
|
|
75
|
+
* 服务端按 tool_call_id 配对时错位。实例级自增,杜绝模块级全局态(架构约束)。 */
|
|
76
|
+
toolCallIdSeq = 0;
|
|
46
77
|
async *chat(messages, opts = {}) {
|
|
47
78
|
const url = `${this.config.baseUrl}/chat/completions`;
|
|
48
79
|
const model = opts.model ?? this.config.defaultModel;
|
|
49
|
-
// 请求超时控制:默认 120s,可通过 opts.timeoutMs
|
|
50
|
-
const timeoutMs = opts.timeoutMs
|
|
80
|
+
// 请求超时控制:默认 120s,可通过 opts.timeoutMs 覆盖(越界回退默认,防超大值等待失控)
|
|
81
|
+
const timeoutMs = normalizeTimeoutMs(opts.timeoutMs, OpenAICompatibleProvider.DEFAULT_TIMEOUT_MS);
|
|
82
|
+
// maxTokens 形态归一:正整数透传(零/负/非数值忽略,让服务端默认);上限不裁决(超限原样发,服务端可见报错)
|
|
83
|
+
const maxTokens = normalizeMaxTokens(opts.maxTokens);
|
|
51
84
|
const body = {
|
|
52
85
|
model,
|
|
53
86
|
messages: this.formatMessages(messages),
|
|
@@ -57,15 +90,16 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
57
90
|
};
|
|
58
91
|
if (opts.tools)
|
|
59
92
|
body['tools'] = opts.tools;
|
|
60
|
-
if (
|
|
61
|
-
body['max_tokens'] =
|
|
62
|
-
//
|
|
63
|
-
// 供未来非 tool_call 场景使用(如归档摘要强制 JSON、配置建议提取)
|
|
64
|
-
// 注意:不能与 tools 同时使用(OpenAI 协议限制),调用方需自行保证互斥
|
|
93
|
+
if (maxTokens !== undefined)
|
|
94
|
+
body['max_tokens'] = maxTokens;
|
|
95
|
+
// 透传 response_format;不能与 tools 同时使用(OpenAI 协议限制),调用方保证互斥
|
|
65
96
|
if (opts.response_format)
|
|
66
97
|
body['response_format'] = opts.response_format;
|
|
67
|
-
//
|
|
68
|
-
//
|
|
98
|
+
// 透传推理深度(reasoning_effort):loop 在 multiStepReasoning='manual' 时设置 'low'
|
|
99
|
+
// 实现快速回答,必须转达给 provider 才生效(只声明+消费而不转达 = 契约断裂)
|
|
100
|
+
if (opts.reasoning_effort)
|
|
101
|
+
body['reasoning_effort'] = opts.reasoning_effort;
|
|
102
|
+
// 合并外部取消 + 超时信号,确保用户取消和请求超时都能中断 fetch 和流读取
|
|
69
103
|
const abort = mergeAbortSignals(opts.signal, timeoutMs, 'LLM 请求超时');
|
|
70
104
|
let response;
|
|
71
105
|
try {
|
|
@@ -82,8 +116,8 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
82
116
|
catch (err) {
|
|
83
117
|
abort.dispose();
|
|
84
118
|
const e = toError(err);
|
|
85
|
-
//
|
|
86
|
-
if (e
|
|
119
|
+
// 区分超时错误和网络错误(复用 errors.ts 探测器 SSOT,避免手写 name 判断双源漂移)
|
|
120
|
+
if (isAbortError(e) || isTimeoutError(e)) {
|
|
87
121
|
throw networkError('LLM 请求超时', `${this.config.baseUrl} 请求超过 ${timeoutMs / 1000}s 未响应`, [
|
|
88
122
|
'检查网络连接稳定性',
|
|
89
123
|
'如频繁超时,考虑切换 provider 或在 config.json 调整 timeoutMs',
|
|
@@ -96,11 +130,8 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
96
130
|
'如使用 VPN/代理,检查代理设置',
|
|
97
131
|
], e);
|
|
98
132
|
}
|
|
99
|
-
// fetch 成功后保留 optsSignal
|
|
100
|
-
//
|
|
101
|
-
// 注意:{ once: true } 仅在 optsSignal 自身 abort 时移除监听器;
|
|
102
|
-
// 正常完成或异常路径必须显式 dispose(),否则监听器常驻泄漏。
|
|
103
|
-
// 下方外层 try-finally 统一调用 abort.dispose(),覆盖所有抛错路径。
|
|
133
|
+
// fetch 成功后保留 optsSignal 监听,使用户在 SSE 阶段取消也能中断 reader.read();
|
|
134
|
+
// 正常完成/异常路径须显式 dispose(),否则监听器常驻泄漏(外层 try-finally 统一调用)
|
|
104
135
|
try {
|
|
105
136
|
if (!response.ok) {
|
|
106
137
|
await this.handleResponseError(response);
|
|
@@ -111,23 +142,18 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
111
142
|
'如持续出现,联系厂商',
|
|
112
143
|
]);
|
|
113
144
|
}
|
|
114
|
-
// fetch
|
|
115
|
-
// SSE 阶段由 chunk 级超时(FIRST_CHUNK_TIMEOUT_MS / INTER_CHUNK_TIMEOUT_MS)独立保护
|
|
116
|
-
// 若保留总超时,长文生成(>timeoutMs)会被错误中断
|
|
145
|
+
// fetch 成功后清除请求级总超时,SSE 阶段由 chunk 级超时独立保护,否则长文生成(>timeoutMs)会被错误中断
|
|
117
146
|
abort.clearTimer();
|
|
118
147
|
try {
|
|
119
|
-
// 将 abort.signal 传入 SSE 解析器,使超时/取消能中断流读取
|
|
120
148
|
yield* this.parseSseStream(response.body, abort.signal);
|
|
121
149
|
}
|
|
122
150
|
catch (err) {
|
|
123
|
-
// SSE
|
|
151
|
+
// SSE 解析异常时也 cancel stream 释放底层连接
|
|
124
152
|
await this.safeCancelBody(response);
|
|
125
|
-
// DOMException(AbortError/TimeoutError)是 LLM
|
|
126
|
-
// 上游 AgentLoop/contextManager/agent.ts 按 err.name === 'AbortError' 识别,
|
|
127
|
-
// 必须原样传播,不能包装为 MemoraError(否则中断协议失效)
|
|
153
|
+
// DOMException(AbortError/TimeoutError)是 LLM 中断协议,按 err.name==='AbortError' 识别,须原样传播不能包装为 MemoraError
|
|
128
154
|
if (err instanceof DOMException)
|
|
129
155
|
throw err;
|
|
130
|
-
//
|
|
156
|
+
// 其他未知流异常统一包装为 MemoraError,避免裸 throw 逃逸非 MemoraError
|
|
131
157
|
throw networkError('LLM 流读取异常', toError(err).message, ['稍后重试', '如持续出现,检查网络稳定性或切换 provider'], toError(err));
|
|
132
158
|
}
|
|
133
159
|
}
|
|
@@ -136,18 +162,14 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
136
162
|
abort.dispose();
|
|
137
163
|
}
|
|
138
164
|
}
|
|
139
|
-
/**
|
|
140
|
-
* 处理 HTTP 错误响应
|
|
141
|
-
*
|
|
142
|
-
* 消费并释放 body,根据状态码抛出相应的错误类型。
|
|
143
|
-
*/
|
|
165
|
+
/** 处理 HTTP 错误响应:消费并释放 body,按状态码抛相应错误类型 */
|
|
144
166
|
async handleResponseError(response) {
|
|
145
167
|
const errorText = await response.text().catch(() => '<无法读取响应体>');
|
|
146
168
|
await this.safeCancelBody(response);
|
|
147
169
|
const status = response.status;
|
|
148
170
|
if (status === 401 || status === 403) {
|
|
149
171
|
throw configError('LLM API Key 无效', `HTTP ${status}:${errorText.slice(0, MAX_ERROR_BODY_LEN)}`, [
|
|
150
|
-
'检查 API Key 是否正确(注意 ${
|
|
172
|
+
'检查 API Key 是否正确(注意 ${MEMORA_API_KEY} 占位符是否已展开)',
|
|
151
173
|
'确认 Key 未过期',
|
|
152
174
|
'如使用 DeepSeek/豆包,确认 Key 来自对应平台',
|
|
153
175
|
]);
|
|
@@ -171,14 +193,7 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
171
193
|
'可在 config.json 切换 provider 兜底',
|
|
172
194
|
]);
|
|
173
195
|
}
|
|
174
|
-
/**
|
|
175
|
-
* 安全取消 response.body
|
|
176
|
-
*
|
|
177
|
-
* 在 SSE 异常和 HTTP 错误处理路径中均需 cancel response.body 释放底层连接,
|
|
178
|
-
* cancel 本身失败不应阻塞后续错误抛出,仅 debug 记录。
|
|
179
|
-
*
|
|
180
|
-
* @param response - HTTP 响应对象
|
|
181
|
-
*/
|
|
196
|
+
/** 安全取消 response.body:cancel 失败不阻塞后续错误抛出,仅 debug 记录 */
|
|
182
197
|
async safeCancelBody(response) {
|
|
183
198
|
try {
|
|
184
199
|
await response.body?.cancel();
|
|
@@ -188,12 +203,8 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
188
203
|
}
|
|
189
204
|
}
|
|
190
205
|
/**
|
|
191
|
-
* 格式化消息为 OpenAI
|
|
192
|
-
*
|
|
193
|
-
* 关键兼容性处理:
|
|
194
|
-
* - assistant 消息带 tool_calls 时,若 content 为空字符串,转为 null
|
|
195
|
-
* (部分 LLM provider 对空字符串 content 处理异常,导致请求挂起或报错)
|
|
196
|
-
* - tool 消息必须包含 tool_call_id 关联对应的工具调用
|
|
206
|
+
* 格式化消息为 OpenAI 协议格式:assistant 带 tool_calls 时 content 空串转 null
|
|
207
|
+
* (部分 provider 对空串 content 处理异常);tool 消息须带 tool_call_id
|
|
197
208
|
*/
|
|
198
209
|
formatMessages(messages) {
|
|
199
210
|
return messages.map((m) => {
|
|
@@ -203,8 +214,7 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
203
214
|
if (m.role === 'assistant' && m.toolCalls) {
|
|
204
215
|
return {
|
|
205
216
|
role: 'assistant',
|
|
206
|
-
// OpenAI 协议:有 tool_calls 时 content 应为 null
|
|
207
|
-
// 空字符串会导致部分 provider 请求异常或无响应
|
|
217
|
+
// OpenAI 协议:有 tool_calls 时 content 应为 null(空串会致部分 provider 请求异常)
|
|
208
218
|
content: m.content && m.content.length > 0 ? m.content : null,
|
|
209
219
|
tool_calls: m.toolCalls,
|
|
210
220
|
};
|
|
@@ -213,60 +223,82 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
213
223
|
});
|
|
214
224
|
}
|
|
215
225
|
/**
|
|
216
|
-
* 解析 SSE
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
* 支持解析 tool_calls delta(流式工具调用):
|
|
220
|
-
* OpenAI 协议中 tool_calls 以 delta 形式分片传输,
|
|
221
|
-
* 需要跨 chunk 累积 function.name 和 function.arguments,
|
|
222
|
-
* 在 finish_reason='tool_calls' 或流结束时输出完整的 toolCalls。
|
|
223
|
-
*
|
|
224
|
-
* @param body - SSE 响应流
|
|
225
|
-
* @param signal - 中止信号(超时/用户取消),中断 reader.read() 等待
|
|
226
|
+
* 解析 SSE 流(data: {...}\n\n)。tool_calls 以 delta 分片传输,
|
|
227
|
+
* 需跨 chunk 累积 name/arguments,在 finish_reason='tool_calls' 或流结束时输出完整 toolCalls
|
|
226
228
|
*/
|
|
227
229
|
async *parseSseStream(body, signal) {
|
|
228
230
|
const reader = body.getReader();
|
|
229
231
|
const decoder = new TextDecoder();
|
|
230
232
|
let buffer = '';
|
|
231
|
-
// 流式 tool_calls
|
|
232
|
-
// OpenAI 协议:同一个 tool_call 的 name/arguments 可能跨多个 delta 分片到达
|
|
233
|
+
// 流式 tool_calls 累积器:同一 tool_call 的 name/arguments 可能跨多个 delta 分片到达
|
|
233
234
|
const toolCallAccumulators = new Map();
|
|
234
|
-
//
|
|
235
|
-
//
|
|
236
|
-
|
|
235
|
+
// 已发射过「工具意图预告」的累积器 idx:同一工具只提前上报一次,防 delta 风暴。
|
|
236
|
+
// 必须是本生成器局部变量——随流结束/中断自然回收,防跨请求泄漏。
|
|
237
|
+
const emittedPendingIndexes = new Set();
|
|
238
|
+
// chunk 级读超时:无超时则连接半挂(NAT/代理不关 TCP)会永久等待;
|
|
239
|
+
// 区分首 chunk(reasoning 思考数十秒,120s)与 chunk 间(连接已正常,60s);
|
|
240
|
+
// 另有有效事件停滞监视(收到任意 data: 行即重置),补 chunk 超时漏掉的
|
|
241
|
+
// 「服务端持续发 keep-alive 字节但无进展」真空区。
|
|
237
242
|
//
|
|
238
|
-
//
|
|
239
|
-
//
|
|
240
|
-
//
|
|
243
|
+
// ⚠️ **超时必须经竞速闸 reject,不得用 `reader.cancel()` 表达——本看门狗成立的前提,勿回改**:
|
|
244
|
+
// `reader.cancel(reason)` 的语义是「关闭流并让**挂起的 read() 以 `{done:true}` 收尾**」,
|
|
245
|
+
// reason **不会**出现在任何抛出物上(WHATWG 规范行为;Node 22 / undici 实测:cancel 后
|
|
246
|
+
// read 产 `{done:true}`;对照 `AbortController.abort(reason)` 才会让 read reject reason)。
|
|
247
|
+
// 若把 cancel 当作「让 read 抛错」→ 超时被读成「流正常结束且零产出」→ 落「空响应重试」
|
|
248
|
+
// 通道 → **超时被静默吞成重试**(坑)。真机故障实证(`round-1789462982489`):
|
|
249
|
+
// 中断源在 reasoning 结束后停摆,60s(chunk 间)+120s+120s
|
|
250
|
+
// (两次重试首 chunk)三段超时全被吞成静默重试,期间**零 UI 事件**(tokenOut 恒 0),
|
|
251
|
+
// 用户干等 5 分 5 秒后手动取消。
|
|
252
|
+
// 故看门狗只负责「以真超时驳回当前读」;底层连接的释放仍由 finally 的 reader.cancel() 负责。
|
|
253
|
+
/** 看门狗已到期的超时(竞速闸未挂起时的落账处:下一轮读之前立即抛,账面不丢) */
|
|
254
|
+
let overdueTimeout = null;
|
|
255
|
+
/** 竞速闸的驳回句柄(仅在一次读的存活期内非空) */
|
|
256
|
+
let pendingReadReject = null;
|
|
257
|
+
/** 看门狗统一出口:以真超时驳回当前读;两读之间到期则记账,由循环顶部补抛 */
|
|
258
|
+
const failCurrentRead = (reason) => {
|
|
259
|
+
overdueTimeout ??= new DOMException(reason, 'TimeoutError');
|
|
260
|
+
pendingReadReject?.(overdueTimeout);
|
|
261
|
+
};
|
|
262
|
+
let stallTimer = null;
|
|
263
|
+
const stallReset = () => {
|
|
264
|
+
if (stallTimer)
|
|
265
|
+
clearTimeout(stallTimer);
|
|
266
|
+
stallTimer = setTimeout(() => {
|
|
267
|
+
failCurrentRead('LLM 流长时间无有效事件(有字节但无 data 事件)');
|
|
268
|
+
}, EVENT_STALL_TIMEOUT_MS);
|
|
269
|
+
};
|
|
270
|
+
// 进入流读取即启动停滞监视(首事件前的“有字节无事件”同样覆盖)
|
|
271
|
+
stallReset();
|
|
241
272
|
let firstChunkReceived = false;
|
|
242
273
|
try {
|
|
243
274
|
while (true) {
|
|
244
|
-
//
|
|
245
|
-
// 注意:此处刻意抛 DOMException 而非 MemoraError——
|
|
246
|
-
// AbortError 是 LLM 中断协议,上游(AgentLoop/contextManager/agent.ts)按
|
|
247
|
-
// err.name === 'AbortError' 识别用户取消/超时,包装为 MemoraError 会破坏协议
|
|
275
|
+
// 检查中止信号:刻意抛 DOMException(AbortError)而非 MemoraError——它是 LLM 中断协议,上游按 err.name==='AbortError' 识别
|
|
248
276
|
if (signal?.aborted) {
|
|
249
277
|
throw new DOMException('LLM 流读取被中止', signal.reason?.name ?? 'AbortError');
|
|
250
278
|
}
|
|
251
|
-
//
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
279
|
+
// 两读之间到期的超时不丢账:读之前先补抛
|
|
280
|
+
if (overdueTimeout)
|
|
281
|
+
throw overdueTimeout;
|
|
282
|
+
// 根据是否收到首 chunk 选不同超时阈值(到期经 failCurrentRead 驳回当前读,见上方注释)
|
|
283
|
+
const chunkTimeoutMs = firstChunkReceived ? INTER_CHUNK_TIMEOUT_MS : FIRST_CHUNK_TIMEOUT_MS;
|
|
256
284
|
const chunkTimer = setTimeout(() => {
|
|
257
|
-
|
|
258
|
-
const reason = firstChunkReceived ? 'LLM chunk 间读取超时' : 'LLM 首 chunk 读取超时';
|
|
259
|
-
reader.cancel(new DOMException(reason, 'TimeoutError')).catch((err) => {
|
|
260
|
-
logger.debug({ err: toError(err).message }, 'reader.cancel 失败(超时清理路径)');
|
|
261
|
-
});
|
|
285
|
+
failCurrentRead(firstChunkReceived ? 'LLM chunk 间读取超时' : 'LLM 首 chunk 读取超时');
|
|
262
286
|
}, chunkTimeoutMs);
|
|
287
|
+
// 超时竞速闸:read 与超时赛跑。超时先到 → 本读以真超时 reject;被落空的 read 仍挂起,
|
|
288
|
+
// 待 finally 释放连接时自然收尾,其无人观察的 resolve 无副作用。
|
|
289
|
+
const timeoutGate = new Promise((_, reject) => {
|
|
290
|
+
pendingReadReject = reject;
|
|
291
|
+
});
|
|
292
|
+
// 兜底观察者:闸被「已被真实数据抢先的读」落空时,其拒绝不得变成无人处理的拒绝
|
|
293
|
+
void timeoutGate.catch(() => undefined);
|
|
263
294
|
let readResult;
|
|
264
295
|
try {
|
|
265
|
-
readResult = await reader.read();
|
|
296
|
+
readResult = await Promise.race([reader.read(), timeoutGate]);
|
|
266
297
|
}
|
|
267
298
|
finally {
|
|
268
|
-
// read 完成(无论成功/失败)都清理 chunk timer
|
|
299
|
+
// read 完成(无论成功/失败)都清理 chunk timer 与竞速闸句柄,避免泄漏
|
|
269
300
|
clearTimeout(chunkTimer);
|
|
301
|
+
pendingReadReject = null;
|
|
270
302
|
}
|
|
271
303
|
const { done, value } = readResult;
|
|
272
304
|
if (done)
|
|
@@ -282,6 +314,8 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
282
314
|
const trimmed = line.trim();
|
|
283
315
|
if (!trimmed.startsWith('data:'))
|
|
284
316
|
continue;
|
|
317
|
+
// 有效事件停滞重置:收到 data 行即代表服务端仍在推进(即便内容暂无可输出)
|
|
318
|
+
stallReset();
|
|
285
319
|
const data = trimmed.slice(5).trim();
|
|
286
320
|
if (data === '[DONE]') {
|
|
287
321
|
// 流结束:输出累积的 tool_calls(如果有)
|
|
@@ -292,14 +326,32 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
292
326
|
}
|
|
293
327
|
try {
|
|
294
328
|
const json = JSON.parse(data);
|
|
329
|
+
// 提取 usage 数据(部分 Provider 在流式响应末尾携带 token 用量统计)
|
|
330
|
+
const usage = json.usage
|
|
331
|
+
? {
|
|
332
|
+
inputTokens: json.usage.prompt_tokens ?? 0,
|
|
333
|
+
outputTokens: json.usage.completion_tokens ?? 0,
|
|
334
|
+
totalTokens: json.usage.total_tokens,
|
|
335
|
+
}
|
|
336
|
+
: undefined;
|
|
295
337
|
const choice = json.choices?.[0];
|
|
296
|
-
|
|
338
|
+
// 纯 usage 事件(末尾统计块,choices 为空数组):单独 yield,跳过 choices 处理
|
|
339
|
+
if (!choice) {
|
|
340
|
+
if (usage)
|
|
341
|
+
yield { usage };
|
|
297
342
|
continue;
|
|
343
|
+
}
|
|
298
344
|
const chunk = {};
|
|
299
|
-
//
|
|
300
|
-
|
|
345
|
+
// usage 与 choices 并存时合并到同一 chunk(单出口,防同事件双 yield 致 content 重复)
|
|
346
|
+
if (usage)
|
|
347
|
+
chunk.usage = usage;
|
|
348
|
+
// delta.content 可能为 null(tool_calls 场景),truthy 检查即可
|
|
301
349
|
if (choice.delta?.content)
|
|
302
350
|
chunk.content = choice.delta.content;
|
|
351
|
+
// 模型思考(协议字段 reasoning_content → LlmChunk.thought):增量透传,与 content 并列
|
|
352
|
+
// 增量语义:消费侧自行累积。thought 命名避开路由 TaskType='reasoning' 与相位 'thinking'。
|
|
353
|
+
if (choice.delta?.reasoning_content)
|
|
354
|
+
chunk.thought = choice.delta.reasoning_content;
|
|
303
355
|
// 累积 tool_calls delta
|
|
304
356
|
if (choice.delta?.tool_calls) {
|
|
305
357
|
for (const tc of choice.delta.tool_calls) {
|
|
@@ -312,6 +364,17 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
312
364
|
if (tc.function?.arguments)
|
|
313
365
|
acc.arguments += tc.function.arguments;
|
|
314
366
|
toolCallAccumulators.set(idx, acc);
|
|
367
|
+
// 工具意图预告:name 首次由空变非空即上报,不必等 finish_reason——
|
|
368
|
+
// 写文件等大参数工具的参数生成段可能数十秒,UI 需提前显示「准备中」工具行。
|
|
369
|
+
// 每 idx 只发一次(emittedPendingIndexes 去重防风暴);id 缺失时按与最终构建
|
|
370
|
+
// 同一规则合成并**写回 acc.id**(acc.id || `call_${seq}`),保证 finish_reason
|
|
371
|
+
// 时 buildToolCallsFromAccumulators 复用同一 id,宿主侧可按 id 配对升级。
|
|
372
|
+
if (acc.name && !emittedPendingIndexes.has(idx)) {
|
|
373
|
+
emittedPendingIndexes.add(idx);
|
|
374
|
+
if (!acc.id)
|
|
375
|
+
acc.id = `call_${this.toolCallIdSeq++}`;
|
|
376
|
+
chunk.partialToolCall = { id: acc.id, name: acc.name };
|
|
377
|
+
}
|
|
315
378
|
}
|
|
316
379
|
}
|
|
317
380
|
// finish_reason='tool_calls' 时输出完整的 toolCalls
|
|
@@ -320,8 +383,7 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
320
383
|
toolCallAccumulators.clear();
|
|
321
384
|
}
|
|
322
385
|
else if (choice.finish_reason && toolCallAccumulators.size > 0) {
|
|
323
|
-
//
|
|
324
|
-
// (某些模型可能在 stop 时残留不完整的 tool_calls 碎片)
|
|
386
|
+
// 非 tool_calls 的 finish_reason(stop/length 等)时清空累积器,防残留碎片污染下一次调用
|
|
325
387
|
toolCallAccumulators.clear();
|
|
326
388
|
}
|
|
327
389
|
if (choice.finish_reason) {
|
|
@@ -336,36 +398,33 @@ export class OpenAICompatibleProvider extends LlmProvider {
|
|
|
336
398
|
}
|
|
337
399
|
}
|
|
338
400
|
finally {
|
|
339
|
-
//
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
//
|
|
401
|
+
// 清理事件停滞监视(流已结束,不再需要 stall 兜底)
|
|
402
|
+
if (stallTimer)
|
|
403
|
+
clearTimeout(stallTimer);
|
|
404
|
+
// reader.cancel() 彻底释放底层 TCP 连接(releaseLock 仅释放锁不取消流,防止 break 时连接悬挂);已 done 的 cancel 是 no-op
|
|
343
405
|
try {
|
|
344
406
|
await reader.cancel();
|
|
345
407
|
}
|
|
346
408
|
catch (err) {
|
|
347
|
-
// cancel 失败不阻塞,reader 会被 GC
|
|
409
|
+
// cancel 失败不阻塞,reader 会被 GC 回收;记日志排查偶发连接泄漏
|
|
348
410
|
logger.debug({ err: toError(err).message }, 'reader.cancel 失败(finally 清理路径)');
|
|
349
411
|
}
|
|
350
412
|
}
|
|
351
413
|
}
|
|
352
|
-
/**
|
|
353
|
-
*
|
|
354
|
-
*/
|
|
414
|
+
/** 从累积器构建完整 toolCalls 数组(finish_reason='tool_calls' 场景)。
|
|
415
|
+
* id 缺失时兜底为 `call_<toolCallIdSeq++>`(跨批唯一),不因两次迭代都缺 id 而产出重复 id。 */
|
|
355
416
|
buildToolCallsFromAccumulators(accs) {
|
|
356
417
|
const calls = [];
|
|
357
|
-
for (const [
|
|
418
|
+
for (const [, acc] of accs) {
|
|
358
419
|
calls.push({
|
|
359
|
-
id: acc.id || `call_${
|
|
420
|
+
id: acc.id || `call_${this.toolCallIdSeq++}`,
|
|
360
421
|
type: 'function',
|
|
361
422
|
function: { name: acc.name, arguments: acc.arguments },
|
|
362
423
|
});
|
|
363
424
|
}
|
|
364
425
|
return calls;
|
|
365
426
|
}
|
|
366
|
-
/**
|
|
367
|
-
* 从累积器构建 LlmChunk(用于流结束时的兜底输出)
|
|
368
|
-
*/
|
|
427
|
+
/** 从累积器构建 LlmChunk(流结束时的兜底输出) */
|
|
369
428
|
buildToolCallsChunk(accs) {
|
|
370
429
|
return {
|
|
371
430
|
toolCalls: this.buildToolCallsFromAccumulators(accs),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openaiCompatible.js","sourceRoot":"","sources":["../../src/llm/openaiCompatible.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openaiCompatible.js","sourceRoot":"","sources":["../../src/llm/openaiCompatible.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/provider.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM Provider 抽象接口
|
|
3
|
-
* 所有 LLM 实现(DeepSeek / 豆包 / OpenAI / Mock)必须实现此接口
|
|
4
|
-
* 详见 ADR-003
|
|
5
|
-
*/
|
|
1
|
+
/** LLM Provider 抽象接口:所有 LLM 实现(DeepSeek/豆包/OpenAI/Mock)必须实现 */
|
|
6
2
|
import type { LlmChunk } from '../llm/types.js';
|
|
7
3
|
export interface Message {
|
|
8
4
|
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
9
5
|
content: string;
|
|
6
|
+
/**
|
|
7
|
+
* 轮次 ID(可选):标识该消息归属的「问答轮次」。
|
|
8
|
+
* 由 loop 在写入 user/assistant/tool 消息时附上当前 currentRoundId,
|
|
9
|
+
* 作为替换式压缩(第一级 LRU)取 round-summary 的单一真理源——
|
|
10
|
+
* roundId 随消息携带,不依赖任何外部序列的尾部对齐,杜绝错位替换。
|
|
11
|
+
*/
|
|
12
|
+
roundId?: string;
|
|
13
|
+
name?: string;
|
|
10
14
|
toolCalls?: Array<{
|
|
11
15
|
id: string;
|
|
12
16
|
type: 'function';
|
|
@@ -30,11 +34,10 @@ export interface ChatOptions {
|
|
|
30
34
|
};
|
|
31
35
|
}>;
|
|
32
36
|
/**
|
|
33
|
-
* 结构化输出约束(OpenAI
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* 不支持的 Provider 静默跳过,fallback 到纯文本 tool_call 模式。
|
|
37
|
+
* 结构化输出约束(OpenAI Function Calling 响应格式约束)。
|
|
38
|
+
* 注意:response_format 不能与 tools 同时使用(OpenAI 协议限制),故 AgentLoop 默认不生成它
|
|
39
|
+
* (见 loop.ts buildChatOptions 注释)——此处仅为调用方显式传入时的可选能力孔,不宣称任何
|
|
40
|
+
* 「fallback 到纯文本 tool_call」的静默降级(文本出口不是可调用通道)。
|
|
38
41
|
*/
|
|
39
42
|
response_format?: {
|
|
40
43
|
type: 'json_schema';
|
|
@@ -44,48 +47,32 @@ export interface ChatOptions {
|
|
|
44
47
|
schema: Record<string, unknown>;
|
|
45
48
|
};
|
|
46
49
|
};
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
* openaiCompatible 始终以 stream:true 发起请求(chat() 返回 AsyncIterable)。
|
|
51
|
-
* 本字段保留用于未来"非流式回退"场景(如低延迟短回复或 Provider 不支持 SSE 时)。
|
|
52
|
-
* 保留在公共 API 中以维持 ChatOptions 契约稳定。
|
|
53
|
-
*/
|
|
54
|
-
stream?: boolean;
|
|
55
|
-
/**
|
|
56
|
-
* 中止信号:用于取消正在进行的 LLM 请求
|
|
57
|
-
*
|
|
58
|
-
* AgentLoop 在用户取消对话时传入 AbortSignal,
|
|
59
|
-
* Provider 应将 signal 传给底层 fetch/stream 读取,确保请求可被中断。
|
|
60
|
-
*/
|
|
50
|
+
/** 推理深度控制:'low'|'medium'|'high',Provider 不支持时静默忽略 */
|
|
51
|
+
reasoning_effort?: 'low' | 'medium' | 'high';
|
|
52
|
+
/** 中止信号:用户取消时传入,Provider 应传给底层 fetch/stream 以支持中断 */
|
|
61
53
|
signal?: AbortSignal;
|
|
62
|
-
/**
|
|
63
|
-
* 请求超时(毫秒)。默认 120 秒。
|
|
64
|
-
* 超时后抛出 networkError,由 callLlmWithRetry 决定是否重试。
|
|
65
|
-
*/
|
|
54
|
+
/** 请求超时(毫秒,默认 120s):超时抛 networkError,由 callLlmWithRetry 决定是否重试 */
|
|
66
55
|
timeoutMs?: number;
|
|
67
56
|
}
|
|
68
|
-
/**
|
|
69
|
-
* LLM Provider 抽象类
|
|
70
|
-
* 实现类需实现 chat() 流式方法
|
|
71
|
-
*/
|
|
57
|
+
/** LLM Provider 抽象类:实现类需实现 chat() 流式方法 */
|
|
72
58
|
export declare abstract class LlmProvider {
|
|
73
59
|
abstract readonly name: string;
|
|
74
60
|
/**
|
|
75
|
-
*
|
|
61
|
+
* 是否支持原生工具调用(OpenAI Function Calling 的 tools 协议)。
|
|
76
62
|
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
63
|
+
* 与 supportsStructuredOutput 互斥(response_format 不能与 tools 同时使用,OpenAI 协议限制):
|
|
64
|
+
* - 支持 tools → loop 走原生工具通道(列工具 + 传 tools 参数)。
|
|
65
|
+
* - 支持 structured → loop 传 response_format(JSON mode 回落)。
|
|
66
|
+
* - 两者皆 false → 无工具能力,loop 收起工具清单并显式告知(可观测,不静默)。
|
|
80
67
|
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
68
|
+
* 默认 **true**(存量行为):云 LLM 绝大多数支持原生 FC(有工具集就传 tools,与历史一致)。
|
|
69
|
+
* 本地运行时(Ollama/LM Studio 等)是否支持原生 FC 无法从 baseUrl 推断,须在宿主配置时
|
|
70
|
+
* 显式置 false(互斥双能力位)。
|
|
83
71
|
*/
|
|
72
|
+
readonly supportsToolCalling: boolean;
|
|
73
|
+
/** 是否支持结构化输出(默认 false)。注意:response_format 不能与 tools 同时使用(OpenAI 协议限制) */
|
|
84
74
|
readonly supportsStructuredOutput: boolean;
|
|
85
|
-
/**
|
|
86
|
-
* 流式对话
|
|
87
|
-
* 返回 AsyncIterable,每项是一个增量块
|
|
88
|
-
*/
|
|
75
|
+
/** 流式对话:返回 AsyncIterable,每项是一个增量块 */
|
|
89
76
|
abstract chat(messages: Message[], opts?: ChatOptions): AsyncIterable<LlmChunk>;
|
|
90
77
|
}
|
|
91
78
|
//# sourceMappingURL=provider.d.ts.map
|