@oscharko-dev/keiko-server 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -0
- package/dist/assistant-response.d.ts +6 -0
- package/dist/assistant-response.d.ts.map +1 -0
- package/dist/assistant-response.js +12 -0
- package/dist/browser.d.ts +11 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +245 -0
- package/dist/chat-handlers.d.ts +48 -0
- package/dist/chat-handlers.d.ts.map +1 -0
- package/dist/chat-handlers.js +821 -0
- package/dist/chat-stream-handlers.d.ts +4 -0
- package/dist/chat-stream-handlers.d.ts.map +1 -0
- package/dist/chat-stream-handlers.js +136 -0
- package/dist/conversation-prompt.d.ts +8 -0
- package/dist/conversation-prompt.d.ts.map +1 -0
- package/dist/conversation-prompt.js +36 -0
- package/dist/conversation-validation.d.ts +26 -0
- package/dist/conversation-validation.d.ts.map +1 -0
- package/dist/conversation-validation.js +125 -0
- package/dist/credentialPersistence.d.ts +23 -0
- package/dist/credentialPersistence.d.ts.map +1 -0
- package/dist/credentialPersistence.js +93 -0
- package/dist/credentialVault.d.ts +30 -0
- package/dist/credentialVault.d.ts.map +1 -0
- package/dist/credentialVault.js +206 -0
- package/dist/csp.d.ts +3 -0
- package/dist/csp.d.ts.map +1 -0
- package/dist/csp.js +75 -0
- package/dist/deps.d.ts +78 -0
- package/dist/deps.d.ts.map +1 -0
- package/dist/deps.js +457 -0
- package/dist/editor/agentRoutes.d.ts +7 -0
- package/dist/editor/agentRoutes.d.ts.map +1 -0
- package/dist/editor/agentRoutes.js +197 -0
- package/dist/editor/assuredGateRunner.d.ts +36 -0
- package/dist/editor/assuredGateRunner.d.ts.map +1 -0
- package/dist/editor/assuredGateRunner.js +100 -0
- package/dist/editor/assuredPreFilter.d.ts +34 -0
- package/dist/editor/assuredPreFilter.d.ts.map +1 -0
- package/dist/editor/assuredPreFilter.js +134 -0
- package/dist/editor/assuredPreFilterRunner.d.ts +31 -0
- package/dist/editor/assuredPreFilterRunner.d.ts.map +1 -0
- package/dist/editor/assuredPreFilterRunner.js +312 -0
- package/dist/editor/builtinLanguageProviders.d.ts +6 -0
- package/dist/editor/builtinLanguageProviders.d.ts.map +1 -0
- package/dist/editor/builtinLanguageProviders.js +221 -0
- package/dist/editor/codingContext.d.ts +12 -0
- package/dist/editor/codingContext.d.ts.map +1 -0
- package/dist/editor/codingContext.js +121 -0
- package/dist/editor/codingContextEvidence.d.ts +7 -0
- package/dist/editor/codingContextEvidence.d.ts.map +1 -0
- package/dist/editor/codingContextEvidence.js +52 -0
- package/dist/editor/codingContextProviders.d.ts +36 -0
- package/dist/editor/codingContextProviders.d.ts.map +1 -0
- package/dist/editor/codingContextProviders.js +348 -0
- package/dist/editor/completionModelEvidence.d.ts +16 -0
- package/dist/editor/completionModelEvidence.d.ts.map +1 -0
- package/dist/editor/completionModelEvidence.js +50 -0
- package/dist/editor/completionRoutes.d.ts +37 -0
- package/dist/editor/completionRoutes.d.ts.map +1 -0
- package/dist/editor/completionRoutes.js +411 -0
- package/dist/editor/contextRoutes.d.ts +6 -0
- package/dist/editor/contextRoutes.d.ts.map +1 -0
- package/dist/editor/contextRoutes.js +411 -0
- package/dist/editor/disposableAssuredExecution.d.ts +22 -0
- package/dist/editor/disposableAssuredExecution.d.ts.map +1 -0
- package/dist/editor/disposableAssuredExecution.js +57 -0
- package/dist/editor/editorCompletionModel.d.ts +47 -0
- package/dist/editor/editorCompletionModel.d.ts.map +1 -0
- package/dist/editor/editorCompletionModel.js +156 -0
- package/dist/editor/editorInlineCompletionModel.d.ts +34 -0
- package/dist/editor/editorInlineCompletionModel.d.ts.map +1 -0
- package/dist/editor/editorInlineCompletionModel.js +112 -0
- package/dist/editor/editorModelTokenBudget.d.ts +46 -0
- package/dist/editor/editorModelTokenBudget.d.ts.map +1 -0
- package/dist/editor/editorModelTokenBudget.js +121 -0
- package/dist/editor/inlineCompletionRateLimiter.d.ts +19 -0
- package/dist/editor/inlineCompletionRateLimiter.d.ts.map +1 -0
- package/dist/editor/inlineCompletionRateLimiter.js +46 -0
- package/dist/editor/inlineCompletionRoutes.d.ts +26 -0
- package/dist/editor/inlineCompletionRoutes.d.ts.map +1 -0
- package/dist/editor/inlineCompletionRoutes.js +404 -0
- package/dist/editor/inlineCompletionTelemetryEvidence.d.ts +5 -0
- package/dist/editor/inlineCompletionTelemetryEvidence.d.ts.map +1 -0
- package/dist/editor/inlineCompletionTelemetryEvidence.js +42 -0
- package/dist/editor/languageCancellation.d.ts +19 -0
- package/dist/editor/languageCancellation.d.ts.map +1 -0
- package/dist/editor/languageCancellation.js +48 -0
- package/dist/editor/languageProvider.d.ts +39 -0
- package/dist/editor/languageProvider.d.ts.map +1 -0
- package/dist/editor/languageProvider.js +11 -0
- package/dist/editor/languageRoutes.d.ts +15 -0
- package/dist/editor/languageRoutes.d.ts.map +1 -0
- package/dist/editor/languageRoutes.js +106 -0
- package/dist/editor/languageSanitize.d.ts +8 -0
- package/dist/editor/languageSanitize.d.ts.map +1 -0
- package/dist/editor/languageSanitize.js +101 -0
- package/dist/editor/languageService.d.ts +36 -0
- package/dist/editor/languageService.d.ts.map +1 -0
- package/dist/editor/languageService.js +93 -0
- package/dist/editor/languageServiceHost.d.ts +14 -0
- package/dist/editor/languageServiceHost.d.ts.map +1 -0
- package/dist/editor/languageServiceHost.js +242 -0
- package/dist/editor/localKnowledgeRetrieval.d.ts +21 -0
- package/dist/editor/localKnowledgeRetrieval.d.ts.map +1 -0
- package/dist/editor/localKnowledgeRetrieval.js +44 -0
- package/dist/editor/patchApplyEvidence.d.ts +21 -0
- package/dist/editor/patchApplyEvidence.d.ts.map +1 -0
- package/dist/editor/patchApplyEvidence.js +87 -0
- package/dist/editor/patchApplyRoutes.d.ts +16 -0
- package/dist/editor/patchApplyRoutes.d.ts.map +1 -0
- package/dist/editor/patchApplyRoutes.js +307 -0
- package/dist/editor/postApplyVerification.d.ts +42 -0
- package/dist/editor/postApplyVerification.d.ts.map +1 -0
- package/dist/editor/postApplyVerification.js +177 -0
- package/dist/editor/testGenerationEvidence.d.ts +6 -0
- package/dist/editor/testGenerationEvidence.d.ts.map +1 -0
- package/dist/editor/testGenerationEvidence.js +72 -0
- package/dist/editor/testGenerationPatch.d.ts +10 -0
- package/dist/editor/testGenerationPatch.d.ts.map +1 -0
- package/dist/editor/testGenerationPatch.js +66 -0
- package/dist/editor/testGenerationRoutes.d.ts +21 -0
- package/dist/editor/testGenerationRoutes.d.ts.map +1 -0
- package/dist/editor/testGenerationRoutes.js +254 -0
- package/dist/editor/testGenerationRunner.d.ts +23 -0
- package/dist/editor/testGenerationRunner.d.ts.map +1 -0
- package/dist/editor/testGenerationRunner.js +120 -0
- package/dist/editor/textOffsets.d.ts +6 -0
- package/dist/editor/textOffsets.d.ts.map +1 -0
- package/dist/editor/textOffsets.js +82 -0
- package/dist/editor/typescriptLanguageProvider.d.ts +3 -0
- package/dist/editor/typescriptLanguageProvider.d.ts.map +1 -0
- package/dist/editor/typescriptLanguageProvider.js +217 -0
- package/dist/evidence.d.ts +28 -0
- package/dist/evidence.d.ts.map +1 -0
- package/dist/evidence.js +145 -0
- package/dist/files-deny.d.ts +3 -0
- package/dist/files-deny.d.ts.map +1 -0
- package/dist/files-deny.js +12 -0
- package/dist/files.d.ts +97 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +733 -0
- package/dist/gateway-setup.d.ts +10 -0
- package/dist/gateway-setup.d.ts.map +1 -0
- package/dist/gateway-setup.js +896 -0
- package/dist/governed-workflow.d.ts +17 -0
- package/dist/governed-workflow.d.ts.map +1 -0
- package/dist/governed-workflow.js +147 -0
- package/dist/grounded-answer.d.ts +12 -0
- package/dist/grounded-answer.d.ts.map +1 -0
- package/dist/grounded-answer.js +69 -0
- package/dist/grounded-context-index.d.ts +25 -0
- package/dist/grounded-context-index.d.ts.map +1 -0
- package/dist/grounded-context-index.js +169 -0
- package/dist/grounded-document-evidence.d.ts +28 -0
- package/dist/grounded-document-evidence.d.ts.map +1 -0
- package/dist/grounded-document-evidence.js +430 -0
- package/dist/grounded-handoff.d.ts +4 -0
- package/dist/grounded-handoff.d.ts.map +1 -0
- package/dist/grounded-handoff.js +445 -0
- package/dist/grounded-orchestrator.d.ts +43 -0
- package/dist/grounded-orchestrator.d.ts.map +1 -0
- package/dist/grounded-orchestrator.js +1445 -0
- package/dist/grounded-prompt.d.ts +2 -0
- package/dist/grounded-prompt.d.ts.map +1 -0
- package/dist/grounded-prompt.js +17 -0
- package/dist/grounded-qa-hybrid.d.ts +36 -0
- package/dist/grounded-qa-hybrid.d.ts.map +1 -0
- package/dist/grounded-qa-hybrid.js +762 -0
- package/dist/grounded-qa-multi-source.d.ts +38 -0
- package/dist/grounded-qa-multi-source.d.ts.map +1 -0
- package/dist/grounded-qa-multi-source.js +461 -0
- package/dist/grounded-qa.d.ts +45 -0
- package/dist/grounded-qa.d.ts.map +1 -0
- package/dist/grounded-qa.js +877 -0
- package/dist/grounded-rerank.d.ts +26 -0
- package/dist/grounded-rerank.d.ts.map +1 -0
- package/dist/grounded-rerank.js +72 -0
- package/dist/grounded-turn-registry.d.ts +23 -0
- package/dist/grounded-turn-registry.d.ts.map +1 -0
- package/dist/grounded-turn-registry.js +102 -0
- package/dist/headers.d.ts +3 -0
- package/dist/headers.d.ts.map +1 -0
- package/dist/headers.js +22 -0
- package/dist/host-check.d.ts +3 -0
- package/dist/host-check.d.ts.map +1 -0
- package/dist/host-check.js +58 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/load-csp.d.ts +3 -0
- package/dist/load-csp.d.ts.map +1 -0
- package/dist/load-csp.js +100 -0
- package/dist/local-knowledge-grounded-qa.d.ts +42 -0
- package/dist/local-knowledge-grounded-qa.d.ts.map +1 -0
- package/dist/local-knowledge-grounded-qa.js +678 -0
- package/dist/local-knowledge-handlers.d.ts +24 -0
- package/dist/local-knowledge-handlers.d.ts.map +1 -0
- package/dist/local-knowledge-handlers.js +1285 -0
- package/dist/local-knowledge-indexing-registry.d.ts +13 -0
- package/dist/local-knowledge-indexing-registry.d.ts.map +1 -0
- package/dist/local-knowledge-indexing-registry.js +53 -0
- package/dist/localKnowledgeKeyProvider.d.ts +11 -0
- package/dist/localKnowledgeKeyProvider.d.ts.map +1 -0
- package/dist/localKnowledgeKeyProvider.js +48 -0
- package/dist/memory-audit-event-builders.d.ts +21 -0
- package/dist/memory-audit-event-builders.d.ts.map +1 -0
- package/dist/memory-audit-event-builders.js +187 -0
- package/dist/memory-audit-handler.d.ts +23 -0
- package/dist/memory-audit-handler.d.ts.map +1 -0
- package/dist/memory-audit-handler.js +191 -0
- package/dist/memory-capture-policy.d.ts +10 -0
- package/dist/memory-capture-policy.d.ts.map +1 -0
- package/dist/memory-capture-policy.js +44 -0
- package/dist/memory-consolidation-handlers.d.ts +6 -0
- package/dist/memory-consolidation-handlers.d.ts.map +1 -0
- package/dist/memory-consolidation-handlers.js +491 -0
- package/dist/memory-consolidation-registry.d.ts +47 -0
- package/dist/memory-consolidation-registry.d.ts.map +1 -0
- package/dist/memory-consolidation-registry.js +106 -0
- package/dist/memory-conv-handlers.d.ts +8 -0
- package/dist/memory-conv-handlers.d.ts.map +1 -0
- package/dist/memory-conv-handlers.js +369 -0
- package/dist/memory-conversation-context.d.ts +13 -0
- package/dist/memory-conversation-context.d.ts.map +1 -0
- package/dist/memory-conversation-context.js +22 -0
- package/dist/memory-diagnostics.d.ts +29 -0
- package/dist/memory-diagnostics.d.ts.map +1 -0
- package/dist/memory-diagnostics.js +122 -0
- package/dist/memory-embedding.d.ts +21 -0
- package/dist/memory-embedding.d.ts.map +1 -0
- package/dist/memory-embedding.js +264 -0
- package/dist/memory-handlers.d.ts +19 -0
- package/dist/memory-handlers.d.ts.map +1 -0
- package/dist/memory-handlers.js +1204 -0
- package/dist/memory-maintenance-handlers.d.ts +35 -0
- package/dist/memory-maintenance-handlers.d.ts.map +1 -0
- package/dist/memory-maintenance-handlers.js +219 -0
- package/dist/memory-record-builders.d.ts +4 -0
- package/dist/memory-record-builders.d.ts.map +1 -0
- package/dist/memory-record-builders.js +19 -0
- package/dist/memory-retention.d.ts +31 -0
- package/dist/memory-retention.d.ts.map +1 -0
- package/dist/memory-retention.js +151 -0
- package/dist/memory-retrieval-signals.d.ts +12 -0
- package/dist/memory-retrieval-signals.d.ts.map +1 -0
- package/dist/memory-retrieval-signals.js +100 -0
- package/dist/memory-salience.d.ts +12 -0
- package/dist/memory-salience.d.ts.map +1 -0
- package/dist/memory-salience.js +154 -0
- package/dist/memory-scope-sanitizer.d.ts +6 -0
- package/dist/memory-scope-sanitizer.d.ts.map +1 -0
- package/dist/memory-scope-sanitizer.js +106 -0
- package/dist/memory-target-resolver.d.ts +4 -0
- package/dist/memory-target-resolver.d.ts.map +1 -0
- package/dist/memory-target-resolver.js +73 -0
- package/dist/memory-workflow-port.d.ts +14 -0
- package/dist/memory-workflow-port.d.ts.map +1 -0
- package/dist/memory-workflow-port.js +186 -0
- package/dist/private-json.d.ts +3 -0
- package/dist/private-json.d.ts.map +1 -0
- package/dist/private-json.js +62 -0
- package/dist/promptEnhancer/index.d.ts +3 -0
- package/dist/promptEnhancer/index.d.ts.map +1 -0
- package/dist/promptEnhancer/index.js +5 -0
- package/dist/promptEnhancer/orchestrate.d.ts +2 -0
- package/dist/promptEnhancer/orchestrate.d.ts.map +1 -0
- package/dist/promptEnhancer/orchestrate.js +5 -0
- package/dist/promptEnhancer/routes.d.ts +9 -0
- package/dist/promptEnhancer/routes.d.ts.map +1 -0
- package/dist/promptEnhancer/routes.js +205 -0
- package/dist/qualityIntelligence/capsuleAdapter.d.ts +27 -0
- package/dist/qualityIntelligence/capsuleAdapter.d.ts.map +1 -0
- package/dist/qualityIntelligence/capsuleAdapter.js +57 -0
- package/dist/qualityIntelligence/connectorAuthorization.d.ts +22 -0
- package/dist/qualityIntelligence/connectorAuthorization.d.ts.map +1 -0
- package/dist/qualityIntelligence/connectorAuthorization.js +35 -0
- package/dist/qualityIntelligence/connectorErrors.d.ts +16 -0
- package/dist/qualityIntelligence/connectorErrors.d.ts.map +1 -0
- package/dist/qualityIntelligence/connectorErrors.js +56 -0
- package/dist/qualityIntelligence/connectorRoutes.d.ts +7 -0
- package/dist/qualityIntelligence/connectorRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/connectorRoutes.js +167 -0
- package/dist/qualityIntelligence/editRoutes.d.ts +5 -0
- package/dist/qualityIntelligence/editRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/editRoutes.js +293 -0
- package/dist/qualityIntelligence/exportAssembly.d.ts +22 -0
- package/dist/qualityIntelligence/exportAssembly.d.ts.map +1 -0
- package/dist/qualityIntelligence/exportAssembly.js +352 -0
- package/dist/qualityIntelligence/exportRoutes.d.ts +5 -0
- package/dist/qualityIntelligence/exportRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/exportRoutes.js +320 -0
- package/dist/qualityIntelligence/figma/figmaConcurrency.d.ts +8 -0
- package/dist/qualityIntelligence/figma/figmaConcurrency.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaConcurrency.js +34 -0
- package/dist/qualityIntelligence/figma/figmaConnector.d.ts +65 -0
- package/dist/qualityIntelligence/figma/figmaConnector.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaConnector.js +184 -0
- package/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts +52 -0
- package/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaConnectorAudit.js +63 -0
- package/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts +31 -0
- package/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaConnectorErrors.js +220 -0
- package/dist/qualityIntelligence/figma/figmaConnectorMetrics.d.ts +44 -0
- package/dist/qualityIntelligence/figma/figmaConnectorMetrics.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaConnectorMetrics.js +49 -0
- package/dist/qualityIntelligence/figma/figmaConsent.d.ts +39 -0
- package/dist/qualityIntelligence/figma/figmaConsent.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaConsent.js +62 -0
- package/dist/qualityIntelligence/figma/figmaHttpPort.d.ts +28 -0
- package/dist/qualityIntelligence/figma/figmaHttpPort.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaHttpPort.js +70 -0
- package/dist/qualityIntelligence/figma/figmaObservedActions.d.ts +49 -0
- package/dist/qualityIntelligence/figma/figmaObservedActions.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaObservedActions.js +89 -0
- package/dist/qualityIntelligence/figma/figmaReadiness.d.ts +32 -0
- package/dist/qualityIntelligence/figma/figmaReadiness.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaReadiness.js +67 -0
- package/dist/qualityIntelligence/figma/figmaRenderPort.d.ts +29 -0
- package/dist/qualityIntelligence/figma/figmaRenderPort.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaRenderPort.js +93 -0
- package/dist/qualityIntelligence/figma/figmaResnapshot.d.ts +28 -0
- package/dist/qualityIntelligence/figma/figmaResnapshot.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaResnapshot.js +38 -0
- package/dist/qualityIntelligence/figma/figmaRetry.d.ts +31 -0
- package/dist/qualityIntelligence/figma/figmaRetry.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaRetry.js +62 -0
- package/dist/qualityIntelligence/figma/figmaScopeRef.d.ts +9 -0
- package/dist/qualityIntelligence/figma/figmaScopeRef.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaScopeRef.js +18 -0
- package/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts +86 -0
- package/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaScopedPagination.js +308 -0
- package/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts +31 -0
- package/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaSnapshotBuilder.js +314 -0
- package/dist/qualityIntelligence/figma/figmaSnapshotHash.d.ts +18 -0
- package/dist/qualityIntelligence/figma/figmaSnapshotHash.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaSnapshotHash.js +63 -0
- package/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +65 -0
- package/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaSnapshotTypes.js +13 -0
- package/dist/qualityIntelligence/figma/figmaTokenSource.d.ts +9 -0
- package/dist/qualityIntelligence/figma/figmaTokenSource.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaTokenSource.js +61 -0
- package/dist/qualityIntelligence/figma/figmaTokenStore.d.ts +19 -0
- package/dist/qualityIntelligence/figma/figmaTokenStore.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaTokenStore.js +156 -0
- package/dist/qualityIntelligence/figma/figmaUrl.d.ts +6 -0
- package/dist/qualityIntelligence/figma/figmaUrl.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/figmaUrl.js +36 -0
- package/dist/qualityIntelligence/figma/index.d.ts +20 -0
- package/dist/qualityIntelligence/figma/index.d.ts.map +1 -0
- package/dist/qualityIntelligence/figma/index.js +26 -0
- package/dist/qualityIntelligence/figmaCodegenRoutes.d.ts +28 -0
- package/dist/qualityIntelligence/figmaCodegenRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/figmaCodegenRoutes.js +165 -0
- package/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts +55 -0
- package/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts.map +1 -0
- package/dist/qualityIntelligence/figmaSnapshotAdapter.js +219 -0
- package/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts +64 -0
- package/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts.map +1 -0
- package/dist/qualityIntelligence/figmaSnapshotOrchestration.js +203 -0
- package/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +112 -0
- package/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/figmaSnapshotRoutes.js +1063 -0
- package/dist/qualityIntelligence/figmaSnapshotScreenIds.d.ts +19 -0
- package/dist/qualityIntelligence/figmaSnapshotScreenIds.d.ts.map +1 -0
- package/dist/qualityIntelligence/figmaSnapshotScreenIds.js +75 -0
- package/dist/qualityIntelligence/generationPort.d.ts +15 -0
- package/dist/qualityIntelligence/generationPort.d.ts.map +1 -0
- package/dist/qualityIntelligence/generationPort.js +185 -0
- package/dist/qualityIntelligence/handoffErrors.d.ts +9 -0
- package/dist/qualityIntelligence/handoffErrors.d.ts.map +1 -0
- package/dist/qualityIntelligence/handoffErrors.js +21 -0
- package/dist/qualityIntelligence/handoffRoutes.d.ts +15 -0
- package/dist/qualityIntelligence/handoffRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/handoffRoutes.js +341 -0
- package/dist/qualityIntelligence/index.d.ts +17 -0
- package/dist/qualityIntelligence/index.d.ts.map +1 -0
- package/dist/qualityIntelligence/index.js +36 -0
- package/dist/qualityIntelligence/judgePort.d.ts +30 -0
- package/dist/qualityIntelligence/judgePort.d.ts.map +1 -0
- package/dist/qualityIntelligence/judgePort.js +326 -0
- package/dist/qualityIntelligence/modelSelection.d.ts +58 -0
- package/dist/qualityIntelligence/modelSelection.d.ts.map +1 -0
- package/dist/qualityIntelligence/modelSelection.js +148 -0
- package/dist/qualityIntelligence/reCheckRoutes.d.ts +6 -0
- package/dist/qualityIntelligence/reCheckRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/reCheckRoutes.js +1157 -0
- package/dist/qualityIntelligence/retentionEnforcement.d.ts +13 -0
- package/dist/qualityIntelligence/retentionEnforcement.d.ts.map +1 -0
- package/dist/qualityIntelligence/retentionEnforcement.js +47 -0
- package/dist/qualityIntelligence/retentionRoutes.d.ts +8 -0
- package/dist/qualityIntelligence/retentionRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/retentionRoutes.js +74 -0
- package/dist/qualityIntelligence/reviewRoutes.d.ts +5 -0
- package/dist/qualityIntelligence/reviewRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/reviewRoutes.js +145 -0
- package/dist/qualityIntelligence/reviewStore.d.ts +75 -0
- package/dist/qualityIntelligence/reviewStore.d.ts.map +1 -0
- package/dist/qualityIntelligence/reviewStore.js +170 -0
- package/dist/qualityIntelligence/runExecution.d.ts +36 -0
- package/dist/qualityIntelligence/runExecution.d.ts.map +1 -0
- package/dist/qualityIntelligence/runExecution.js +180 -0
- package/dist/qualityIntelligence/runIngestion.d.ts +70 -0
- package/dist/qualityIntelligence/runIngestion.d.ts.map +1 -0
- package/dist/qualityIntelligence/runIngestion.js +1235 -0
- package/dist/qualityIntelligence/runRegistry.d.ts +31 -0
- package/dist/qualityIntelligence/runRegistry.d.ts.map +1 -0
- package/dist/qualityIntelligence/runRegistry.js +66 -0
- package/dist/qualityIntelligence/runRoutes.d.ts +16 -0
- package/dist/qualityIntelligence/runRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/runRoutes.js +357 -0
- package/dist/qualityIntelligence/traceabilityRoutes.d.ts +5 -0
- package/dist/qualityIntelligence/traceabilityRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/traceabilityRoutes.js +173 -0
- package/dist/qualityIntelligence/uiRoutes.d.ts +7 -0
- package/dist/qualityIntelligence/uiRoutes.d.ts.map +1 -0
- package/dist/qualityIntelligence/uiRoutes.js +336 -0
- package/dist/read-handlers.d.ts +9 -0
- package/dist/read-handlers.d.ts.map +1 -0
- package/dist/read-handlers.js +265 -0
- package/dist/relationship-handlers.d.ts +191 -0
- package/dist/relationship-handlers.d.ts.map +1 -0
- package/dist/relationship-handlers.js +0 -0
- package/dist/routes.d.ts +37 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +507 -0
- package/dist/run-engine.d.ts +25 -0
- package/dist/run-engine.d.ts.map +1 -0
- package/dist/run-engine.js +385 -0
- package/dist/run-handlers.d.ts +9 -0
- package/dist/run-handlers.d.ts.map +1 -0
- package/dist/run-handlers.js +465 -0
- package/dist/run-request.d.ts +17 -0
- package/dist/run-request.d.ts.map +1 -0
- package/dist/run-request.js +219 -0
- package/dist/runs.d.ts +47 -0
- package/dist/runs.d.ts.map +1 -0
- package/dist/runs.js +100 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +152 -0
- package/dist/sink.d.ts +28 -0
- package/dist/sink.d.ts.map +1 -0
- package/dist/sink.js +80 -0
- package/dist/sse-write.d.ts +9 -0
- package/dist/sse-write.d.ts.map +1 -0
- package/dist/sse-write.js +26 -0
- package/dist/sse.d.ts +8 -0
- package/dist/sse.d.ts.map +1 -0
- package/dist/sse.js +27 -0
- package/dist/static.d.ts +5 -0
- package/dist/static.d.ts.map +1 -0
- package/dist/static.js +76 -0
- package/dist/store/chats.d.ts +17 -0
- package/dist/store/chats.d.ts.map +1 -0
- package/dist/store/chats.js +624 -0
- package/dist/store/db.d.ts +11 -0
- package/dist/store/db.d.ts.map +1 -0
- package/dist/store/db.js +203 -0
- package/dist/store/errors.d.ts +13 -0
- package/dist/store/errors.d.ts.map +1 -0
- package/dist/store/errors.js +30 -0
- package/dist/store/index.d.ts +7 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +6 -0
- package/dist/store/messages.d.ts +8 -0
- package/dist/store/messages.d.ts.map +1 -0
- package/dist/store/messages.js +149 -0
- package/dist/store/paths.d.ts +5 -0
- package/dist/store/paths.d.ts.map +1 -0
- package/dist/store/paths.js +84 -0
- package/dist/store/projects.d.ts +8 -0
- package/dist/store/projects.d.ts.map +1 -0
- package/dist/store/projects.js +59 -0
- package/dist/store/relationship-audit.d.ts +42 -0
- package/dist/store/relationship-audit.d.ts.map +1 -0
- package/dist/store/relationship-audit.js +155 -0
- package/dist/store/relationships.d.ts +191 -0
- package/dist/store/relationships.d.ts.map +1 -0
- package/dist/store/relationships.js +724 -0
- package/dist/store/schema.d.ts +4 -0
- package/dist/store/schema.d.ts.map +1 -0
- package/dist/store/schema.js +220 -0
- package/dist/store/types.d.ts +29 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +8 -0
- package/dist/store/validation.d.ts +7 -0
- package/dist/store/validation.d.ts.map +1 -0
- package/dist/store/validation.js +117 -0
- package/dist/store-handlers.d.ts +17 -0
- package/dist/store-handlers.d.ts.map +1 -0
- package/dist/store-handlers.js +872 -0
- package/dist/terminal-errors.d.ts +22 -0
- package/dist/terminal-errors.d.ts.map +1 -0
- package/dist/terminal-errors.js +45 -0
- package/dist/terminal-evidence.d.ts +21 -0
- package/dist/terminal-evidence.d.ts.map +1 -0
- package/dist/terminal-evidence.js +65 -0
- package/dist/terminal-routes.d.ts +10 -0
- package/dist/terminal-routes.d.ts.map +1 -0
- package/dist/terminal-routes.js +219 -0
- package/dist/terminal.d.ts +68 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +855 -0
- package/package.json +52 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
// Memory embeddings — the model/IO boundary for semantic memory (#204).
|
|
2
|
+
//
|
|
3
|
+
// Mirrors the proven Local Knowledge embedding pipeline (selectEmbeddingModelId +
|
|
4
|
+
// createEmbeddingAdapter + requestOpenAIEmbedding) but for governed memory records. Two public
|
|
5
|
+
// surfaces:
|
|
6
|
+
// embedMemoryText(deps, text) — embed an arbitrary string, returning a vault-ready
|
|
7
|
+
// MemoryEmbeddingInput or null. NEVER throws.
|
|
8
|
+
// embedAndStoreMemory(deps, vault,…) — best-effort embed-on-capture: store the embedding if it
|
|
9
|
+
// and the vault accept it; swallow every failure so the
|
|
10
|
+
// capture path is never broken.
|
|
11
|
+
// cosineSimilarity(a, b) — pure cosine in [0,1] over two Float32Array vectors.
|
|
12
|
+
//
|
|
13
|
+
// Graceful degradation is the contract: when no embedding-capable model is configured, every
|
|
14
|
+
// function is inert (embedMemoryText -> null, embedAndStoreMemory -> no-op) and the caller keeps
|
|
15
|
+
// its pre-semantic behaviour byte-for-byte.
|
|
16
|
+
import { requestOpenAIEmbedding, } from "@oscharko-dev/keiko-model-gateway";
|
|
17
|
+
import { randomUUID } from "node:crypto";
|
|
18
|
+
import { currentGatewayConfig } from "./deps.js";
|
|
19
|
+
import { selectEmbeddingModelId } from "./local-knowledge-handlers.js";
|
|
20
|
+
const MEMORY_VECTOR_METRIC = "cosine";
|
|
21
|
+
export function selectMemoryEmbeddingModelId(config) {
|
|
22
|
+
return selectEmbeddingModelId(config);
|
|
23
|
+
}
|
|
24
|
+
function providerForModel(config, modelId) {
|
|
25
|
+
return config?.providers.find((provider) => provider.modelId === modelId);
|
|
26
|
+
}
|
|
27
|
+
function requestEmbeddingImpl(deps) {
|
|
28
|
+
// Reuses the same gateway seam as Local Knowledge so a single injected adapter drives both.
|
|
29
|
+
return deps.localKnowledgeEmbeddingRequest ?? requestOpenAIEmbedding;
|
|
30
|
+
}
|
|
31
|
+
function buildAdapter(provider, requestImpl) {
|
|
32
|
+
return {
|
|
33
|
+
endpoint: provider.baseUrl,
|
|
34
|
+
apiKey: provider.apiKey,
|
|
35
|
+
...(provider.apiKeyHeaderName !== undefined
|
|
36
|
+
? { apiKeyHeaderName: provider.apiKeyHeaderName }
|
|
37
|
+
: {}),
|
|
38
|
+
...(provider.egress !== undefined ? { egress: provider.egress } : {}),
|
|
39
|
+
request: (request) => requestImpl({
|
|
40
|
+
...request,
|
|
41
|
+
endpoint: provider.baseUrl,
|
|
42
|
+
apiKey: provider.apiKey,
|
|
43
|
+
...(provider.apiKeyHeaderName !== undefined
|
|
44
|
+
? { apiKeyHeaderName: provider.apiKeyHeaderName }
|
|
45
|
+
: {}),
|
|
46
|
+
...(provider.egress !== undefined ? { egress: provider.egress } : {}),
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function toEmbeddingInput(provider, outcome) {
|
|
51
|
+
return {
|
|
52
|
+
provider,
|
|
53
|
+
modelId: outcome.value.modelId,
|
|
54
|
+
...(outcome.value.modelRevision !== undefined
|
|
55
|
+
? { modelRevision: outcome.value.modelRevision }
|
|
56
|
+
: {}),
|
|
57
|
+
metric: MEMORY_VECTOR_METRIC,
|
|
58
|
+
vector: outcome.value.vector,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Builds an embedder from a gateway config, or returns null when no embedding-capable model is
|
|
62
|
+
// configured (or its provider is absent). The CLI backfill and the conversation paths both compose
|
|
63
|
+
// through this single factory so capability-aware model selection lives in one place.
|
|
64
|
+
export function createMemoryEmbedder(config, requestImpl) {
|
|
65
|
+
const modelId = selectMemoryEmbeddingModelId(config);
|
|
66
|
+
if (modelId === undefined)
|
|
67
|
+
return null;
|
|
68
|
+
const provider = providerForModel(config, modelId);
|
|
69
|
+
if (provider === undefined)
|
|
70
|
+
return null;
|
|
71
|
+
const adapter = buildAdapter(provider, requestImpl);
|
|
72
|
+
return async (text) => {
|
|
73
|
+
if (text.length === 0)
|
|
74
|
+
return null;
|
|
75
|
+
try {
|
|
76
|
+
const outcome = await adapter.request({
|
|
77
|
+
endpoint: provider.baseUrl,
|
|
78
|
+
apiKey: provider.apiKey,
|
|
79
|
+
modelId,
|
|
80
|
+
input: text,
|
|
81
|
+
...(provider.egress !== undefined ? { egress: provider.egress } : {}),
|
|
82
|
+
});
|
|
83
|
+
if (!outcome.ok)
|
|
84
|
+
return null;
|
|
85
|
+
return toEmbeddingInput("openai", outcome);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Model/transport boundary: a thrown adapter must degrade to "no embedding", never crash.
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
// Embeds `text` against the configured embedding model. Returns null when no embedding-capable
|
|
94
|
+
// model is configured, when the matching provider is absent, or on any request failure. The whole
|
|
95
|
+
// IO body is guarded so this NEVER throws into the capture/retrieval path.
|
|
96
|
+
export async function embedMemoryText(deps, text) {
|
|
97
|
+
const embedder = createMemoryEmbedder(currentGatewayConfig(deps), requestEmbeddingImpl(deps));
|
|
98
|
+
if (embedder === null)
|
|
99
|
+
return null;
|
|
100
|
+
return embedder(text);
|
|
101
|
+
}
|
|
102
|
+
// Best-effort embed-on-capture. Embeds the memory body and upserts the vector. A null embedding
|
|
103
|
+
// (no model / failure) is a no-op; a vault rejection (e.g. gateEmbeddingInput dimension/contract
|
|
104
|
+
// guard) is swallowed so a malformed vector can never break the capture that already succeeded.
|
|
105
|
+
export async function embedAndStoreMemory(deps, vault, memoryId, text) {
|
|
106
|
+
const input = await embedMemoryText(deps, text);
|
|
107
|
+
if (input === null)
|
|
108
|
+
return;
|
|
109
|
+
try {
|
|
110
|
+
vault.upsertEmbedding(memoryId, input);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// gateEmbeddingInput / storage rejection — capture already succeeded; drop the embedding.
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Pure cosine similarity in [0,1]. Returns 0 when the vectors differ in length or either has zero
|
|
117
|
+
// magnitude, and clamps a negative cosine to 0 so the ranker only ever sees a non-negative signal
|
|
118
|
+
// (mirrors Local Knowledge's cosine metric semantics).
|
|
119
|
+
export function cosineSimilarity(a, b) {
|
|
120
|
+
if (a.length === 0 || a.length !== b.length)
|
|
121
|
+
return 0;
|
|
122
|
+
let dot = 0;
|
|
123
|
+
let normA = 0;
|
|
124
|
+
let normB = 0;
|
|
125
|
+
for (let i = 0; i < a.length; i += 1) {
|
|
126
|
+
const x = a[i] ?? 0;
|
|
127
|
+
const y = b[i] ?? 0;
|
|
128
|
+
dot += x * y;
|
|
129
|
+
normA += x * x;
|
|
130
|
+
normB += y * y;
|
|
131
|
+
}
|
|
132
|
+
if (normA === 0 || normB === 0)
|
|
133
|
+
return 0;
|
|
134
|
+
const cosine = dot / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
135
|
+
if (cosine <= 0)
|
|
136
|
+
return 0;
|
|
137
|
+
return cosine > 1 ? 1 : cosine;
|
|
138
|
+
}
|
|
139
|
+
// ─── Semantic novelty gate at capture (#204, O-F1) ──────────────────────────────
|
|
140
|
+
// Lexical Jaccard dedup at capture misses semantic restatements ("I use Postgres" vs "my database is
|
|
141
|
+
// PostgreSQL"). This catches them BEFORE a second copy is stored: embed the candidate once, compare
|
|
142
|
+
// to the in-scope stored vectors, and if it is NEAR-IDENTICAL to an existing memory, reinforce that
|
|
143
|
+
// canonical memory instead of duplicating it.
|
|
144
|
+
//
|
|
145
|
+
// SAFETY: the threshold is deliberately HIGH (0.95) and the gate is applied ONLY to the low-stakes
|
|
146
|
+
// salience firehose — NOT to explicit user instructions. A pure cosine signal cannot tell a
|
|
147
|
+
// paraphrase ("uses PostgreSQL") from a value-change ("region is eu-central-1" vs "us-east-1"), so a
|
|
148
|
+
// lower threshold could merge a contradicting update. At 0.95 only near-verbatim restatements merge;
|
|
149
|
+
// value-changes (differing entities/numbers) stay below it and are inserted normally, where
|
|
150
|
+
// consolidation's conflict detection backstops them. Merging reinforces the canonical rather than
|
|
151
|
+
// deleting, so even a false merge loses no stored fact. Graceful: with no embedder the candidate
|
|
152
|
+
// embedding is null and the gate is inert (prior lexical-only behaviour, byte-for-byte).
|
|
153
|
+
export const SEMANTIC_DEDUP_COSINE_THRESHOLD = 0.95;
|
|
154
|
+
// Pure: the id of the nearest in-scope memory whose cosine to the candidate is at/above the
|
|
155
|
+
// threshold, or null (no candidate embedding, no neighbours, or none similar enough). First-max wins
|
|
156
|
+
// on ties so the result is deterministic for a fixed neighbour iteration order.
|
|
157
|
+
export function findSemanticDuplicate(candidate, neighbors, threshold = SEMANTIC_DEDUP_COSINE_THRESHOLD) {
|
|
158
|
+
if (candidate === null)
|
|
159
|
+
return null;
|
|
160
|
+
let bestId = null;
|
|
161
|
+
let bestSim = -1;
|
|
162
|
+
for (const [id, row] of neighbors) {
|
|
163
|
+
const sim = cosineSimilarity(candidate.vector, row.vector);
|
|
164
|
+
if (sim > bestSim) {
|
|
165
|
+
bestSim = sim;
|
|
166
|
+
bestId = id;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return bestSim >= threshold ? bestId : null;
|
|
170
|
+
}
|
|
171
|
+
// ─── Semantic auto-linking at capture (#204, O-P4) ──────────────────────────────
|
|
172
|
+
// A-MEM (2502.12110) self-organises memory by LINKING a new note to its semantic neighbours at
|
|
173
|
+
// write time, so associative recall has structure to traverse immediately. Memoria Viva already
|
|
174
|
+
// runs graph-proximity recall live (the ranker's `graph` subscore), but until now the only edges
|
|
175
|
+
// were supersedes/correction links and the batch consolidation pass — a fresh capture had no
|
|
176
|
+
// associations. This forms them deterministically from the SAME embedding used for the novelty
|
|
177
|
+
// gate: a novel capture is linked to its nearest in-scope neighbours that fall in a "related" band
|
|
178
|
+
// (similar enough to associate, below the dedup threshold so they are not the same fact). No model
|
|
179
|
+
// call, no non-determinism — a pure cosine band over vectors already in hand.
|
|
180
|
+
// Lower bound of the related band. Above this two memory bodies are topically associated; below it
|
|
181
|
+
// the link would be noise. Conservative starting point for text-embedding-3-large; tunable per the
|
|
182
|
+
// opt-in flag before it is switched on by default.
|
|
183
|
+
export const RELATED_LINK_COSINE_THRESHOLD = 0.82;
|
|
184
|
+
// At most this many associations per capture, so the graph stays sparse and traversal stays cheap.
|
|
185
|
+
export const MAX_AUTO_LINKS = 3;
|
|
186
|
+
// Pure: the in-scope neighbours whose cosine to the candidate falls in the band [lower, upper) —
|
|
187
|
+
// associated but not a duplicate — ranked by similarity desc (id asc tiebreak) and capped at
|
|
188
|
+
// maxLinks. Empty for a null candidate or when nothing lands in the band. Deterministic for a fixed
|
|
189
|
+
// neighbour set.
|
|
190
|
+
export function findRelatedNeighbors(candidate, neighbors, lower = RELATED_LINK_COSINE_THRESHOLD, upper = SEMANTIC_DEDUP_COSINE_THRESHOLD, maxLinks = MAX_AUTO_LINKS) {
|
|
191
|
+
if (candidate === null)
|
|
192
|
+
return [];
|
|
193
|
+
const scored = [];
|
|
194
|
+
for (const [id, row] of neighbors) {
|
|
195
|
+
const similarity = cosineSimilarity(candidate.vector, row.vector);
|
|
196
|
+
if (similarity >= lower && similarity < upper)
|
|
197
|
+
scored.push({ id, similarity });
|
|
198
|
+
}
|
|
199
|
+
scored.sort((a, b) => a.similarity !== b.similarity ? b.similarity - a.similarity : a.id.localeCompare(b.id));
|
|
200
|
+
return scored.slice(0, maxLinks).map((n) => n.id);
|
|
201
|
+
}
|
|
202
|
+
// Opt-in (KEIKO_MEMORY_AUTO_LINK=1, default off => byte-identical: no edges, no behaviour change).
|
|
203
|
+
// Best-effort: a rejected edge insert must never break the capture that already succeeded.
|
|
204
|
+
function autoLinkRelatedMemories(deps, vault, fromId, embedding, neighbors) {
|
|
205
|
+
if (deps.env.KEIKO_MEMORY_AUTO_LINK !== "1")
|
|
206
|
+
return;
|
|
207
|
+
const relatedIds = findRelatedNeighbors(embedding, neighbors);
|
|
208
|
+
if (relatedIds.length === 0)
|
|
209
|
+
return;
|
|
210
|
+
const nowMs = Date.now();
|
|
211
|
+
for (const toId of relatedIds) {
|
|
212
|
+
try {
|
|
213
|
+
vault.insertEdge({
|
|
214
|
+
id: randomUUID(),
|
|
215
|
+
schemaVersion: "1",
|
|
216
|
+
fromMemoryId: fromId,
|
|
217
|
+
toMemoryId: toId,
|
|
218
|
+
kind: "related",
|
|
219
|
+
createdAt: nowMs,
|
|
220
|
+
provenanceSummary: "semantic auto-link",
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
// Validator / storage rejection — association enrichment is best-effort, never fatal.
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// Bounds the neighbour set so the cosine sweep stays cheap on a large vault (mirrors the lexical
|
|
229
|
+
// dedup corpus bound). Scope-local list preserves cross-scope isolation.
|
|
230
|
+
const MAX_DEDUP_NEIGHBORS = 200;
|
|
231
|
+
function gatherScopeEmbeddings(vault, scope) {
|
|
232
|
+
const ids = vault
|
|
233
|
+
.listMemoriesByScope(scope)
|
|
234
|
+
.slice(0, MAX_DEDUP_NEIGHBORS)
|
|
235
|
+
.map((record) => record.id);
|
|
236
|
+
return ids.length === 0 ? new Map() : vault.getEmbeddings(ids);
|
|
237
|
+
}
|
|
238
|
+
// Insert a freshly-built salience capture record UNLESS it is a semantic near-duplicate of an
|
|
239
|
+
// existing in-scope memory, in which case reinforce the canonical (recordAccess) and skip the
|
|
240
|
+
// duplicate. Embeds the body exactly ONCE (reused for both the novelty check and storage), so this
|
|
241
|
+
// replaces — not adds to — the prior best-effort embed-on-capture call. Never throws past the
|
|
242
|
+
// vault's own guards; a null embedding degrades to a plain insert.
|
|
243
|
+
export async function insertSalienceMemoryWithNoveltyGate(deps, vault, record) {
|
|
244
|
+
const embedding = await embedMemoryText(deps, record.body);
|
|
245
|
+
const neighbors = gatherScopeEmbeddings(vault, record.scope);
|
|
246
|
+
const duplicateOf = findSemanticDuplicate(embedding, neighbors);
|
|
247
|
+
if (duplicateOf !== null) {
|
|
248
|
+
vault.recordAccess([duplicateOf], Date.now());
|
|
249
|
+
return { inserted: null, mergedInto: duplicateOf };
|
|
250
|
+
}
|
|
251
|
+
const inserted = vault.insertMemory(record);
|
|
252
|
+
if (embedding !== null) {
|
|
253
|
+
try {
|
|
254
|
+
vault.upsertEmbedding(inserted.id, embedding);
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
// gateEmbeddingInput / storage rejection — capture already succeeded; drop the embedding.
|
|
258
|
+
}
|
|
259
|
+
// A-MEM-style associative linking (#204, O-P4). Reuses the neighbour set already fetched for the
|
|
260
|
+
// novelty gate — no extra IO. Opt-in (default off => no edges, byte-identical).
|
|
261
|
+
autoLinkRelatedMemories(deps, vault, inserted.id, embedding, neighbors);
|
|
262
|
+
}
|
|
263
|
+
return { inserted, mergedInto: null };
|
|
264
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type MemoryVaultStore } from "@oscharko-dev/keiko-memory-vault";
|
|
2
|
+
import type { UiHandlerDeps } from "./deps.js";
|
|
3
|
+
import type { RouteContext, RouteResult } from "./routes.js";
|
|
4
|
+
export declare function handleListMemories(ctx: RouteContext, deps: UiHandlerDeps): RouteResult;
|
|
5
|
+
export declare function handleMemoryReviewQueue(_ctx: RouteContext, deps: UiHandlerDeps): RouteResult;
|
|
6
|
+
export declare function handleGetMemory(ctx: RouteContext, deps: UiHandlerDeps): RouteResult;
|
|
7
|
+
export declare function handleEditMemory(ctx: RouteContext, deps: UiHandlerDeps): Promise<RouteResult>;
|
|
8
|
+
export declare function handlePinMemory(ctx: RouteContext, deps: UiHandlerDeps): RouteResult;
|
|
9
|
+
export declare function handleUnpinMemory(ctx: RouteContext, deps: UiHandlerDeps): RouteResult;
|
|
10
|
+
export declare function handleArchiveMemory(ctx: RouteContext, deps: UiHandlerDeps): Promise<RouteResult>;
|
|
11
|
+
export declare function handleForgetMemory(ctx: RouteContext, deps: UiHandlerDeps): Promise<RouteResult>;
|
|
12
|
+
export declare function handleForgetMemories(ctx: RouteContext, deps: UiHandlerDeps): Promise<RouteResult>;
|
|
13
|
+
export declare function handleDeleteMemory(ctx: RouteContext, deps: UiHandlerDeps): Promise<RouteResult>;
|
|
14
|
+
export declare function handleResolveMemoryConflict(ctx: RouteContext, deps: UiHandlerDeps): Promise<RouteResult>;
|
|
15
|
+
export declare function handleCorrectMemory(ctx: RouteContext, deps: UiHandlerDeps): Promise<RouteResult>;
|
|
16
|
+
export declare function handleAcceptMemoryProposal(ctx: RouteContext, deps: UiHandlerDeps): RouteResult;
|
|
17
|
+
export declare function handleRejectMemoryProposal(ctx: RouteContext, deps: UiHandlerDeps): Promise<RouteResult>;
|
|
18
|
+
export declare function createBffMemoryVault(redactString: (s: string) => string, onMemoryEvent?: (event: import("@oscharko-dev/keiko-memory-vault").MemoryEvent) => void, env?: Readonly<Record<string, string | undefined>>): MemoryVaultStore;
|
|
19
|
+
//# sourceMappingURL=memory-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-handlers.d.ts","sourceRoot":"","sources":["../src/memory-handlers.ts"],"names":[],"mappings":"AAkBA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAqC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAY,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA6SvE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CA8BtF;AAID,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAmB5F;AAID,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAqBnF;AAwDD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CA+BtB;AAID,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CA6BnF;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CA6BrF;AAID,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAsCtB;AAkND,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CA0BtB;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAiBtB;AAKD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAkCtB;AAkND,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAiBtB;AA8GD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CA8CtB;AAyJD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAc9F;AAyBD,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAOD,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,kCAAkC,EAAE,WAAW,KAAK,IAAI,EACvF,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GACjD,gBAAgB,CASlB"}
|