claude-memory-layer 1.0.31 → 1.0.33
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/README.md +9 -2
- package/dist/cli/index.js +1110 -72
- package/dist/cli/index.js.map +4 -4
- package/dist/core/index.js +414 -25
- package/dist/core/index.js.map +2 -2
- package/dist/hooks/post-tool-use.js +416 -27
- package/dist/hooks/post-tool-use.js.map +2 -2
- package/dist/hooks/semantic-daemon.js +416 -27
- package/dist/hooks/semantic-daemon.js.map +2 -2
- package/dist/hooks/session-end.js +416 -27
- package/dist/hooks/session-end.js.map +2 -2
- package/dist/hooks/session-start.js +416 -27
- package/dist/hooks/session-start.js.map +2 -2
- package/dist/hooks/stop.js +416 -27
- package/dist/hooks/stop.js.map +2 -2
- package/dist/hooks/user-prompt-submit.js +504 -34
- package/dist/hooks/user-prompt-submit.js.map +2 -2
- package/dist/index.js +416 -27
- package/dist/index.js.map +2 -2
- package/dist/mcp/index.js +407 -32
- package/dist/mcp/index.js.map +2 -2
- package/dist/server/api/index.js +850 -44
- package/dist/server/api/index.js.map +3 -3
- package/dist/server/index.js +1073 -64
- package/dist/server/index.js.map +3 -3
- package/dist/services/memory-service.js +416 -27
- package/dist/services/memory-service.js.map +2 -2
- package/dist/ui/assets/js/bootstrap.js +2 -0
- package/dist/ui/assets/js/overview.js +166 -3
- package/dist/ui/assets/js/state.js +3 -0
- package/dist/ui/index.html +20 -0
- package/dist/ui/style.css +193 -0
- package/package.json +15 -2
- package/scripts/postinstall-embedding-backend.cjs +16 -12
- package/AGENTS.md +0 -71
- package/CLAUDE.md +0 -30
- package/HANDOFF.md +0 -92
- package/Memo.txt +0 -558
- package/benchmarks/replay/anonymized-real-sessions.json +0 -48
- package/config/kpi-thresholds.json +0 -7
- package/context.md +0 -636
- package/docs/ARCHITECTURE_COMPARISON_AND_RECOMMENDATIONS.md +0 -627
- package/docs/HERMES_MEMORY_INGESTION_ANALYSIS.md +0 -440
- package/docs/MCP_MEMORY_SERVICE_COMPARATIVE_REVIEW.md +0 -271
- package/docs/MEMORY_USEFULNESS_AUDIT.md +0 -371
- package/docs/MEMORY_USEFULNESS_AUDIT_RAW.json +0 -80
- package/docs/MEMSEARCH_PROJECT_STRUCTURE_ANALYSIS.md +0 -333
- package/docs/MEMU_ADOPTION.md +0 -40
- package/docs/OPERATIONS.md +0 -18
- package/docs/PRODUCT_VALIDATION_MATRIX.md +0 -82
- package/docs/PROJECT_STRUCTURE_ANALYSIS.md +0 -421
- package/docs/REFACTORING_MILESTONES_AND_ISSUES.md +0 -501
- package/docs/REFACTORING_PLAN_THIN_CORE.md +0 -414
- package/docs/REFERENCE_PROJECT_ANALYSES.md +0 -25
- package/docs/SUPERLOCALMEMORY_PROJECT_STRUCTURE_ANALYSIS.md +0 -452
- package/docs/TARGET_ARCHITECTURE_AND_FOLDER_STRUCTURE.md +0 -446
- package/docs/architecture/comparison-index.md +0 -47
- package/docs/reports/codex-real-data-validation-20260505T040447Z.md +0 -46
- package/plan.md +0 -1642
- package/scripts/build.ts +0 -159
- package/scripts/bump-patch-version.sh +0 -18
- package/scripts/delete-unknown-projects.js +0 -154
- package/scripts/fix-sync-gap.js +0 -32
- package/scripts/generate-session-qrels.ts +0 -126
- package/scripts/heartbeat-memory-orchestrator.sh +0 -28
- package/scripts/replay-retrieval-benchmark.ts +0 -69
- package/scripts/report-sync-gap.js +0 -26
- package/scripts/review-queue-auto-resolve.js +0 -21
- package/scripts/sync-gap-auto-heal.sh +0 -17
- package/spec.md +0 -624
- package/specs/20260207-dashboard-upgrade/context.md +0 -38
- package/specs/20260207-dashboard-upgrade/spec.md +0 -96
- package/specs/citations-system/context.md +0 -243
- package/specs/citations-system/plan.md +0 -495
- package/specs/citations-system/spec.md +0 -371
- package/specs/endless-mode/context.md +0 -305
- package/specs/endless-mode/plan.md +0 -620
- package/specs/endless-mode/spec.md +0 -455
- package/specs/entity-edge-model/context.md +0 -401
- package/specs/entity-edge-model/plan.md +0 -459
- package/specs/entity-edge-model/spec.md +0 -391
- package/specs/evidence-aligner-v2/context.md +0 -401
- package/specs/evidence-aligner-v2/plan.md +0 -303
- package/specs/evidence-aligner-v2/spec.md +0 -312
- package/specs/mcp-desktop-integration/context.md +0 -278
- package/specs/mcp-desktop-integration/plan.md +0 -550
- package/specs/mcp-desktop-integration/spec.md +0 -494
- package/specs/memory-utilization-improvements/context.md +0 -145
- package/specs/memory-utilization-improvements/plan.md +0 -361
- package/specs/memory-utilization-improvements/spec.md +0 -361
- package/specs/post-tool-use-hook/context.md +0 -319
- package/specs/post-tool-use-hook/plan.md +0 -469
- package/specs/post-tool-use-hook/spec.md +0 -364
- package/specs/private-tags/context.md +0 -288
- package/specs/private-tags/plan.md +0 -412
- package/specs/private-tags/spec.md +0 -345
- package/specs/progressive-disclosure/context.md +0 -346
- package/specs/progressive-disclosure/plan.md +0 -663
- package/specs/progressive-disclosure/spec.md +0 -415
- package/specs/selective-tool-observation/context.md +0 -100
- package/specs/selective-tool-observation/plan.md +0 -158
- package/specs/selective-tool-observation/spec.md +0 -127
- package/specs/task-entity-system/context.md +0 -297
- package/specs/task-entity-system/plan.md +0 -301
- package/specs/task-entity-system/spec.md +0 -314
- package/specs/thin-core-refactor/context.md +0 -275
- package/specs/thin-core-refactor/plan.md +0 -536
- package/specs/thin-core-refactor/spec.md +0 -465
- package/specs/vector-outbox-v2/context.md +0 -470
- package/specs/vector-outbox-v2/plan.md +0 -562
- package/specs/vector-outbox-v2/spec.md +0 -466
- package/specs/web-viewer-ui/context.md +0 -384
- package/specs/web-viewer-ui/plan.md +0 -797
- package/specs/web-viewer-ui/spec.md +0 -516
- package/src/adapters/claude/capture/index.ts +0 -3
- package/src/adapters/claude/context/index.ts +0 -3
- package/src/adapters/claude/hooks/index.ts +0 -21
- package/src/adapters/claude/hooks/post-tool-use.ts +0 -239
- package/src/adapters/claude/hooks/prompt-injection-policy.ts +0 -104
- package/src/adapters/claude/hooks/semantic-daemon-client.ts +0 -209
- package/src/adapters/claude/hooks/semantic-daemon.ts +0 -283
- package/src/adapters/claude/hooks/session-end.ts +0 -59
- package/src/adapters/claude/hooks/session-start.ts +0 -73
- package/src/adapters/claude/hooks/stop.ts +0 -128
- package/src/adapters/claude/hooks/user-prompt-submit.ts +0 -361
- package/src/adapters/claude/index.ts +0 -4
- package/src/adapters/claude/transcript/index.ts +0 -4
- package/src/adapters/claude/transcript/transcript-reader.ts +0 -57
- package/src/adapters/claude/transcript/turn-reconstructor.ts +0 -65
- package/src/apps/cli/claude-settings-hooks.ts +0 -138
- package/src/apps/cli/codex-import-runner.ts +0 -125
- package/src/apps/cli/codex-validation-output.ts +0 -95
- package/src/apps/cli/hermes-import-runner.ts +0 -130
- package/src/apps/cli/hermes-validation-output.ts +0 -91
- package/src/apps/cli/index.ts +0 -1735
- package/src/apps/cli/mcp-install.ts +0 -106
- package/src/apps/cli/retrieval-disclosure-output.ts +0 -196
- package/src/apps/dashboard/assets/js/bootstrap.js +0 -244
- package/src/apps/dashboard/assets/js/chat.js +0 -373
- package/src/apps/dashboard/assets/js/disclosure.js +0 -232
- package/src/apps/dashboard/assets/js/modals.js +0 -298
- package/src/apps/dashboard/assets/js/overview.js +0 -655
- package/src/apps/dashboard/assets/js/state.js +0 -72
- package/src/apps/dashboard/assets/js/views.js +0 -468
- package/src/apps/dashboard/index.html +0 -543
- package/src/apps/dashboard/index.ts +0 -3
- package/src/apps/dashboard/style.css +0 -1750
- package/src/apps/index.ts +0 -5
- package/src/apps/server/api/chat.ts +0 -244
- package/src/apps/server/api/citations.ts +0 -105
- package/src/apps/server/api/events.ts +0 -137
- package/src/apps/server/api/health.ts +0 -53
- package/src/apps/server/api/index.ts +0 -26
- package/src/apps/server/api/projects.ts +0 -74
- package/src/apps/server/api/search.ts +0 -184
- package/src/apps/server/api/sessions.ts +0 -115
- package/src/apps/server/api/stats.ts +0 -723
- package/src/apps/server/api/turns.ts +0 -143
- package/src/apps/server/api/utils.ts +0 -65
- package/src/apps/server/index.ts +0 -111
- package/src/cli/index.ts +0 -3
- package/src/cli/retrieval-disclosure-output.ts +0 -2
- package/src/compat/index.ts +0 -5
- package/src/core/canonical-key.ts +0 -186
- package/src/core/citation-generator.ts +0 -63
- package/src/core/consolidated-store.ts +0 -356
- package/src/core/consolidation-worker.ts +0 -493
- package/src/core/context-formatter.ts +0 -276
- package/src/core/continuity-manager.ts +0 -341
- package/src/core/db-wrapper.ts +0 -64
- package/src/core/derive/fact-deriver.ts +0 -170
- package/src/core/derive/index.ts +0 -2
- package/src/core/derive/summary-deriver.ts +0 -76
- package/src/core/edge-repo.ts +0 -333
- package/src/core/embedder.ts +0 -4
- package/src/core/engine/embedding-maintenance-service.ts +0 -187
- package/src/core/engine/endless-memory-services.ts +0 -4
- package/src/core/engine/index.ts +0 -19
- package/src/core/engine/memory-engine-services.ts +0 -170
- package/src/core/engine/memory-ingest-service.ts +0 -317
- package/src/core/engine/memory-query-service.ts +0 -173
- package/src/core/engine/memory-runtime-service.ts +0 -162
- package/src/core/engine/memory-service-composition.ts +0 -231
- package/src/core/engine/retrieval-analytics-service.ts +0 -181
- package/src/core/engine/retrieval-disclosure-service.ts +0 -420
- package/src/core/engine/retrieval-orchestrator.ts +0 -377
- package/src/core/engine/retrieval-services.ts +0 -176
- package/src/core/engine/shared-memory-services.ts +0 -4
- package/src/core/entity-repo.ts +0 -349
- package/src/core/event-store.ts +0 -779
- package/src/core/evidence-aligner.ts +0 -635
- package/src/core/external-market-context.ts +0 -582
- package/src/core/graduation-worker.ts +0 -171
- package/src/core/graduation.ts +0 -377
- package/src/core/index.ts +0 -64
- package/src/core/ingest-interceptor.ts +0 -80
- package/src/core/markdown-mirror.ts +0 -70
- package/src/core/matcher.ts +0 -208
- package/src/core/md-mirror.ts +0 -92
- package/src/core/metadata-extractor.ts +0 -203
- package/src/core/model/memory-fact.ts +0 -30
- package/src/core/model/memory-rule.ts +0 -14
- package/src/core/model/memory-summary.ts +0 -21
- package/src/core/model/raw-event.ts +0 -28
- package/src/core/model/retrieval-result.ts +0 -35
- package/src/core/mongo-sync-config.ts +0 -165
- package/src/core/mongo-sync-worker.ts +0 -381
- package/src/core/privacy/filter.ts +0 -190
- package/src/core/privacy/index.ts +0 -20
- package/src/core/privacy/tag-parser.ts +0 -145
- package/src/core/product-validation-matrix.ts +0 -314
- package/src/core/progressive-retriever.ts +0 -414
- package/src/core/registry/project-path.ts +0 -54
- package/src/core/registry/session-registry.ts +0 -69
- package/src/core/replay-evaluator.ts +0 -625
- package/src/core/retrieval-benchmark.ts +0 -117
- package/src/core/retrieval-quality.ts +0 -109
- package/src/core/retriever.ts +0 -800
- package/src/core/session-qrels.ts +0 -360
- package/src/core/shared-event-store.ts +0 -114
- package/src/core/shared-promoter.ts +0 -249
- package/src/core/shared-store.ts +0 -289
- package/src/core/shared-vector-store.ts +0 -203
- package/src/core/sqlite-event-store.ts +0 -1846
- package/src/core/sqlite-wrapper.ts +0 -116
- package/src/core/sync-worker.ts +0 -228
- package/src/core/tag-taxonomy.ts +0 -51
- package/src/core/task/blocker-resolver.ts +0 -333
- package/src/core/task/index.ts +0 -9
- package/src/core/task/task-matcher.ts +0 -240
- package/src/core/task/task-projector.ts +0 -358
- package/src/core/task/task-resolver.ts +0 -421
- package/src/core/turn-state.ts +0 -207
- package/src/core/types.ts +0 -952
- package/src/core/vector-outbox.ts +0 -299
- package/src/core/vector-store.ts +0 -231
- package/src/core/vector-worker.ts +0 -521
- package/src/core/working-set-store.ts +0 -257
- package/src/extensions/endless-memory/endless-memory-services.ts +0 -350
- package/src/extensions/endless-memory/index.ts +0 -1
- package/src/extensions/index.ts +0 -5
- package/src/extensions/mcp/handlers.ts +0 -960
- package/src/extensions/mcp/index.ts +0 -48
- package/src/extensions/mcp/tools.ts +0 -252
- package/src/extensions/shared-memory/index.ts +0 -1
- package/src/extensions/shared-memory/shared-memory-services.ts +0 -211
- package/src/extensions/vector/embedder.ts +0 -234
- package/src/extensions/vector/index.ts +0 -1
- package/src/hooks/post-tool-use.ts +0 -9
- package/src/hooks/semantic-daemon-client.ts +0 -1
- package/src/hooks/semantic-daemon.ts +0 -11
- package/src/hooks/session-end.ts +0 -9
- package/src/hooks/session-start.ts +0 -9
- package/src/hooks/stop.ts +0 -9
- package/src/hooks/user-prompt-submit.ts +0 -9
- package/src/index.ts +0 -13
- package/src/mcp/handlers.ts +0 -2
- package/src/mcp/index.ts +0 -4
- package/src/mcp/tools.ts +0 -2
- package/src/server/api/chat.ts +0 -2
- package/src/server/api/citations.ts +0 -2
- package/src/server/api/events.ts +0 -2
- package/src/server/api/health.ts +0 -2
- package/src/server/api/index.ts +0 -2
- package/src/server/api/projects.ts +0 -2
- package/src/server/api/search.ts +0 -2
- package/src/server/api/sessions.ts +0 -2
- package/src/server/api/stats.ts +0 -2
- package/src/server/api/turns.ts +0 -2
- package/src/server/api/utils.ts +0 -2
- package/src/server/index.ts +0 -2
- package/src/services/bootstrap-organizer.ts +0 -463
- package/src/services/codex-session-history-importer.ts +0 -966
- package/src/services/hermes-session-history-importer.ts +0 -733
- package/src/services/memory-service-config.ts +0 -36
- package/src/services/memory-service-registry.ts +0 -150
- package/src/services/memory-service.ts +0 -688
- package/src/services/session-history-importer.ts +0 -629
- package/tests/README.md +0 -23
- package/tests/adapters/claude/claude-semantic-daemon-adapter.test.ts +0 -54
- package/tests/adapters/claude/claude-transcript-reconstructor.test.ts +0 -98
- package/tests/adapters/claude-hook-prompt-injection-policy.test.ts +0 -99
- package/tests/apps/app-layer-boundary.test.ts +0 -48
- package/tests/apps/claude-settings-hooks.test.ts +0 -107
- package/tests/apps/cli-disclosure-output.test.ts +0 -212
- package/tests/apps/codex-import-runner.test.ts +0 -99
- package/tests/apps/codex-validation-output.test.ts +0 -100
- package/tests/apps/hermes-import-runner.test.ts +0 -99
- package/tests/apps/mcp-install-command.test.ts +0 -59
- package/tests/apps/package-build-entrypoints.test.ts +0 -30
- package/tests/apps/postinstall-embedding-backend.test.ts +0 -185
- package/tests/apps/search-api-disclosure.test.ts +0 -162
- package/tests/apps/stats-api-lightweight.test.ts +0 -67
- package/tests/apps/ui-disclosure-output.test.ts +0 -140
- package/tests/core/bootstrap-organizer.test.ts +0 -111
- package/tests/core/canonical-key.test.ts +0 -101
- package/tests/core/codex-session-history-importer-validation.test.ts +0 -185
- package/tests/core/consolidation-worker.test.ts +0 -75
- package/tests/core/embedding-maintenance-service.test.ts +0 -282
- package/tests/core/evidence-aligner.test.ts +0 -152
- package/tests/core/external-market-context.test.ts +0 -209
- package/tests/core/fact-deriver.test.ts +0 -79
- package/tests/core/hermes-session-history-importer-validation.test.ts +0 -609
- package/tests/core/ingest-interceptor.test.ts +0 -38
- package/tests/core/markdown-mirror.test.ts +0 -85
- package/tests/core/matcher.test.ts +0 -112
- package/tests/core/md-mirror.test.ts +0 -50
- package/tests/core/memory-engine-services.test.ts +0 -240
- package/tests/core/memory-ingest-service.test.ts +0 -296
- package/tests/core/memory-query-service.test.ts +0 -129
- package/tests/core/memory-runtime-service.test.ts +0 -201
- package/tests/core/memory-service-composition.test.ts +0 -192
- package/tests/core/memory-service-config.test.ts +0 -41
- package/tests/core/memory-service-facade.test.ts +0 -30
- package/tests/core/memory-service-registry.test.ts +0 -206
- package/tests/core/product-validation-matrix.test.ts +0 -61
- package/tests/core/project-registry.test.ts +0 -78
- package/tests/core/replay-evaluator.test.ts +0 -181
- package/tests/core/retrieval-analytics-service.test.ts +0 -210
- package/tests/core/retrieval-benchmark.test.ts +0 -93
- package/tests/core/retrieval-disclosure-service.test.ts +0 -264
- package/tests/core/retrieval-orchestrator.test.ts +0 -403
- package/tests/core/retrieval-quality.test.ts +0 -31
- package/tests/core/retrieval-services.test.ts +0 -185
- package/tests/core/retriever-fallback-chain.test.ts +0 -223
- package/tests/core/retriever-strategy-scope.test.ts +0 -164
- package/tests/core/retriever.memu-adoption.test.ts +0 -122
- package/tests/core/session-history-importer-filter.test.ts +0 -78
- package/tests/core/session-qrels.test.ts +0 -250
- package/tests/core/sqlite-event-store-replication.test.ts +0 -127
- package/tests/core/summary-deriver.test.ts +0 -66
- package/tests/extensions/embedder-warning-suppression.test.ts +0 -84
- package/tests/extensions/endless-memory-extension-boundary.test.ts +0 -17
- package/tests/extensions/endless-memory-services.test.ts +0 -325
- package/tests/extensions/mcp-context-tools.test.ts +0 -905
- package/tests/extensions/mcp-extension-boundary.test.ts +0 -21
- package/tests/extensions/mcp-package-build.test.ts +0 -22
- package/tests/extensions/mcp-project-aware-tools.test.ts +0 -102
- package/tests/extensions/shared-memory-extension-boundary.test.ts +0 -24
- package/tests/extensions/shared-memory-services.test.ts +0 -309
- package/tests/extensions/vector-extension-boundary.test.ts +0 -21
- package/tsconfig.json +0 -24
- package/vitest.config.ts +0 -15
|
@@ -1,377 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Retrieval Orchestrator
|
|
3
|
-
*
|
|
4
|
-
* Coordinates MemoryService-level retrieval concerns around the lower-level
|
|
5
|
-
* Retriever: initialization, rerank policy, project/shared scoping, optional
|
|
6
|
-
* intent rewriting, and non-blocking retrieval trace telemetry.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
Retriever,
|
|
11
|
-
type ProjectScopeMode,
|
|
12
|
-
type RetrievalResult,
|
|
13
|
-
type RetrievalStrategy,
|
|
14
|
-
type UnifiedRetrievalResult
|
|
15
|
-
} from '../retriever.js';
|
|
16
|
-
|
|
17
|
-
export interface RetrieveMemoriesOptions {
|
|
18
|
-
topK?: number;
|
|
19
|
-
minScore?: number;
|
|
20
|
-
sessionId?: string;
|
|
21
|
-
includeShared?: boolean;
|
|
22
|
-
adaptiveRerank?: boolean;
|
|
23
|
-
intentRewrite?: boolean;
|
|
24
|
-
projectScopeMode?: ProjectScopeMode;
|
|
25
|
-
allowedProjectHashes?: string[];
|
|
26
|
-
strategy?: RetrievalStrategy;
|
|
27
|
-
/**
|
|
28
|
-
* Disable automatic retrieval trace writes for read-only/navigation callers
|
|
29
|
-
* that may receive secret-bearing ad-hoc queries.
|
|
30
|
-
*/
|
|
31
|
-
recordTrace?: boolean;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface RecordQueryTraceInput {
|
|
35
|
-
sessionId: string;
|
|
36
|
-
queryText: string;
|
|
37
|
-
strategy: string;
|
|
38
|
-
candidateEventIds: string[];
|
|
39
|
-
selectedEventIds: string[];
|
|
40
|
-
confidence: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
interface HelpfulnessStats {
|
|
44
|
-
avgScore: number;
|
|
45
|
-
totalEvaluated: number;
|
|
46
|
-
totalRetrievals: number;
|
|
47
|
-
helpful: number;
|
|
48
|
-
neutral: number;
|
|
49
|
-
unhelpful: number;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
type RerankWeights = {
|
|
53
|
-
semantic: number;
|
|
54
|
-
lexical: number;
|
|
55
|
-
recency: number;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
interface RetrievalTraceDetail {
|
|
59
|
-
eventId: string;
|
|
60
|
-
score: number;
|
|
61
|
-
semanticScore?: number;
|
|
62
|
-
lexicalScore?: number;
|
|
63
|
-
recencyScore?: number;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export interface RetrievalTraceStore {
|
|
67
|
-
getHelpfulnessStats(): Promise<HelpfulnessStats>;
|
|
68
|
-
recordRetrievalTrace(input: {
|
|
69
|
-
sessionId?: string;
|
|
70
|
-
projectHash?: string;
|
|
71
|
-
queryText: string;
|
|
72
|
-
strategy?: string;
|
|
73
|
-
candidateEventIds: string[];
|
|
74
|
-
selectedEventIds: string[];
|
|
75
|
-
candidateDetails?: RetrievalTraceDetail[];
|
|
76
|
-
selectedDetails?: RetrievalTraceDetail[];
|
|
77
|
-
confidence?: string;
|
|
78
|
-
fallbackTrace?: string[];
|
|
79
|
-
}): Promise<void>;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export interface RetrievalAccessStore {
|
|
83
|
-
incrementAccessCount(eventIds: string[]): Promise<void>;
|
|
84
|
-
recordRetrieval(eventId: string, sessionId: string, score: number, query: string): Promise<void>;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export interface RetrievalOrchestratorDeps {
|
|
88
|
-
initialize: () => Promise<void>;
|
|
89
|
-
retriever: Retriever;
|
|
90
|
-
traceStore: RetrievalTraceStore;
|
|
91
|
-
accessStore: RetrievalAccessStore;
|
|
92
|
-
getProjectHash: () => string | null;
|
|
93
|
-
hasSharedStore: () => boolean;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export class RetrievalOrchestrator {
|
|
97
|
-
constructor(private readonly deps: RetrievalOrchestratorDeps) {
|
|
98
|
-
this.deps.retriever.setQueryRewriter((query) => this.rewriteQueryIntent(query));
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Retrieve relevant memories for a query.
|
|
103
|
-
*/
|
|
104
|
-
async retrieveMemories(
|
|
105
|
-
query: string,
|
|
106
|
-
options?: RetrieveMemoriesOptions
|
|
107
|
-
): Promise<UnifiedRetrievalResult> {
|
|
108
|
-
const { recordTrace = true, ...retrieverOptions } = options ?? {};
|
|
109
|
-
const lightweightFastRead = this.isLightweightFastRead(options);
|
|
110
|
-
if (!lightweightFastRead) {
|
|
111
|
-
await this.deps.initialize();
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Note: Pending embeddings are processed by the background worker.
|
|
115
|
-
// Don't block retrieval - search with whatever vectors are available.
|
|
116
|
-
const rerankWeights = lightweightFastRead
|
|
117
|
-
? undefined
|
|
118
|
-
: await this.getRerankWeights(options?.adaptiveRerank === true);
|
|
119
|
-
const projectHash = this.deps.getProjectHash();
|
|
120
|
-
const projectScopeMode = retrieverOptions.projectScopeMode ?? (projectHash ? 'strict' : 'global');
|
|
121
|
-
|
|
122
|
-
let result: UnifiedRetrievalResult;
|
|
123
|
-
|
|
124
|
-
if (retrieverOptions.includeShared && this.deps.hasSharedStore()) {
|
|
125
|
-
result = await this.deps.retriever.retrieveUnified(query, {
|
|
126
|
-
...retrieverOptions,
|
|
127
|
-
intentRewrite: retrieverOptions.intentRewrite === true,
|
|
128
|
-
rerankWeights,
|
|
129
|
-
includeShared: true,
|
|
130
|
-
projectHash: projectHash || undefined,
|
|
131
|
-
projectScopeMode,
|
|
132
|
-
allowedProjectHashes: retrieverOptions.allowedProjectHashes
|
|
133
|
-
});
|
|
134
|
-
} else {
|
|
135
|
-
result = await this.deps.retriever.retrieve(query, {
|
|
136
|
-
...retrieverOptions,
|
|
137
|
-
intentRewrite: retrieverOptions.intentRewrite === true,
|
|
138
|
-
rerankWeights,
|
|
139
|
-
projectHash: projectHash || undefined,
|
|
140
|
-
projectScopeMode,
|
|
141
|
-
allowedProjectHashes: retrieverOptions.allowedProjectHashes
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
if (recordTrace) {
|
|
146
|
-
try {
|
|
147
|
-
await this.recordAutomaticTrace(query, result, options, projectHash);
|
|
148
|
-
} catch {
|
|
149
|
-
// Non-blocking telemetry.
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return result;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Format retrieval results as context for Claude.
|
|
158
|
-
*/
|
|
159
|
-
formatAsContext(result: RetrievalResult): string {
|
|
160
|
-
if (!result.context) {
|
|
161
|
-
return '';
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
const confidence = result.matchResult.confidence;
|
|
165
|
-
let header = '';
|
|
166
|
-
|
|
167
|
-
if (confidence === 'high') {
|
|
168
|
-
header = '🎯 **High-confidence memory match found:**\n\n';
|
|
169
|
-
} else if (confidence === 'suggested') {
|
|
170
|
-
header = '💡 **Suggested memories (may be relevant):**\n\n';
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
return header + result.context;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Record a query-level retrieval trace used by hooks and dashboard stats.
|
|
178
|
-
*/
|
|
179
|
-
async recordQueryTrace(input: RecordQueryTraceInput): Promise<void> {
|
|
180
|
-
await this.deps.initialize();
|
|
181
|
-
await this.deps.traceStore.recordRetrievalTrace({
|
|
182
|
-
...input,
|
|
183
|
-
projectHash: this.deps.getProjectHash() || undefined,
|
|
184
|
-
candidateDetails: [],
|
|
185
|
-
selectedDetails: [],
|
|
186
|
-
fallbackTrace: [],
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Increment access count for memories that were injected into prompts.
|
|
192
|
-
*
|
|
193
|
-
* Access count writes are intentionally store-scoped: the SQLite access store
|
|
194
|
-
* initializes itself and no-ops in read-only mode, so this avoids triggering
|
|
195
|
-
* the heavier retrieval/vector initialization path for prompt telemetry.
|
|
196
|
-
*/
|
|
197
|
-
async incrementMemoryAccess(eventIds: string[]): Promise<void> {
|
|
198
|
-
if (eventIds.length === 0) return;
|
|
199
|
-
|
|
200
|
-
await this.deps.accessStore.incrementAccessCount(eventIds);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Record a selected retrieval for helpfulness analytics.
|
|
205
|
-
*/
|
|
206
|
-
async recordRetrieval(
|
|
207
|
-
eventId: string,
|
|
208
|
-
sessionId: string,
|
|
209
|
-
score: number,
|
|
210
|
-
query: string
|
|
211
|
-
): Promise<void> {
|
|
212
|
-
await this.deps.initialize();
|
|
213
|
-
await this.deps.accessStore.recordRetrieval(eventId, sessionId, score, query);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
private async recordAutomaticTrace(
|
|
217
|
-
query: string,
|
|
218
|
-
result: UnifiedRetrievalResult,
|
|
219
|
-
options: RetrieveMemoriesOptions | undefined,
|
|
220
|
-
projectHash: string | null
|
|
221
|
-
): Promise<void> {
|
|
222
|
-
const selectedEventIds = result.memories.map((memory) => memory.event.id);
|
|
223
|
-
const selectedDetails = (result.selectedDebug || []).map((detail) => ({
|
|
224
|
-
eventId: detail.eventId,
|
|
225
|
-
score: detail.score,
|
|
226
|
-
semanticScore: detail.semanticScore,
|
|
227
|
-
lexicalScore: detail.lexicalScore,
|
|
228
|
-
recencyScore: detail.recencyScore,
|
|
229
|
-
}));
|
|
230
|
-
const candidateDetails = (result.candidateDebug || []).map((detail) => ({
|
|
231
|
-
eventId: detail.eventId,
|
|
232
|
-
score: detail.score,
|
|
233
|
-
semanticScore: detail.semanticScore,
|
|
234
|
-
lexicalScore: detail.lexicalScore,
|
|
235
|
-
recencyScore: detail.recencyScore,
|
|
236
|
-
}));
|
|
237
|
-
const candidateEventIds = candidateDetails.length > 0
|
|
238
|
-
? candidateDetails.map((detail) => detail.eventId)
|
|
239
|
-
: selectedEventIds;
|
|
240
|
-
|
|
241
|
-
await this.deps.traceStore.recordRetrievalTrace({
|
|
242
|
-
sessionId: options?.sessionId,
|
|
243
|
-
projectHash: projectHash || undefined,
|
|
244
|
-
queryText: query,
|
|
245
|
-
strategy: options?.strategy || 'auto',
|
|
246
|
-
candidateEventIds,
|
|
247
|
-
selectedEventIds,
|
|
248
|
-
candidateDetails,
|
|
249
|
-
selectedDetails,
|
|
250
|
-
confidence: result.matchResult.confidence,
|
|
251
|
-
fallbackTrace: result.fallbackTrace || []
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
private isLightweightFastRead(options: RetrieveMemoriesOptions | undefined): boolean {
|
|
256
|
-
const requiresSharedRuntime = options?.includeShared === true && this.deps.hasSharedStore();
|
|
257
|
-
|
|
258
|
-
return options?.strategy === 'fast'
|
|
259
|
-
&& !requiresSharedRuntime
|
|
260
|
-
&& options.adaptiveRerank !== true;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
private getConfiguredRerankWeights(): RerankWeights | undefined {
|
|
264
|
-
const semantic = Number(process.env.MEMORY_RERANK_WEIGHT_SEMANTIC ?? '');
|
|
265
|
-
const lexical = Number(process.env.MEMORY_RERANK_WEIGHT_LEXICAL ?? '');
|
|
266
|
-
const recency = Number(process.env.MEMORY_RERANK_WEIGHT_RECENCY ?? '');
|
|
267
|
-
|
|
268
|
-
const allFinite = [semantic, lexical, recency].every((value) => Number.isFinite(value));
|
|
269
|
-
if (!allFinite) return undefined;
|
|
270
|
-
|
|
271
|
-
const nonNegative = [semantic, lexical, recency].every((value) => value >= 0);
|
|
272
|
-
const total = semantic + lexical + recency;
|
|
273
|
-
if (!nonNegative || total <= 0) return undefined;
|
|
274
|
-
|
|
275
|
-
return {
|
|
276
|
-
semantic: semantic / total,
|
|
277
|
-
lexical: lexical / total,
|
|
278
|
-
recency: recency / total,
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
private async getRerankWeights(adaptive: boolean): Promise<RerankWeights | undefined> {
|
|
283
|
-
const configured = this.getConfiguredRerankWeights();
|
|
284
|
-
if (configured) return configured;
|
|
285
|
-
if (adaptive) return this.getAdaptiveRerankWeights();
|
|
286
|
-
return undefined;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
private async getAdaptiveRerankWeights(): Promise<RerankWeights | undefined> {
|
|
290
|
-
try {
|
|
291
|
-
const stats = await this.deps.traceStore.getHelpfulnessStats();
|
|
292
|
-
if (stats.totalEvaluated < 20) return undefined;
|
|
293
|
-
|
|
294
|
-
// Base weights.
|
|
295
|
-
let semantic = 0.7;
|
|
296
|
-
let lexical = 0.2;
|
|
297
|
-
let recency = 0.1;
|
|
298
|
-
|
|
299
|
-
if (stats.avgScore < 0.45) {
|
|
300
|
-
semantic -= 0.1;
|
|
301
|
-
lexical += 0.1;
|
|
302
|
-
} else if (stats.avgScore > 0.75) {
|
|
303
|
-
semantic += 0.05;
|
|
304
|
-
lexical -= 0.05;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
if (stats.unhelpful > stats.helpful) {
|
|
308
|
-
recency += 0.05;
|
|
309
|
-
semantic -= 0.03;
|
|
310
|
-
lexical -= 0.02;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
return { semantic, lexical, recency };
|
|
314
|
-
} catch {
|
|
315
|
-
return undefined;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
private async rewriteQueryIntent(query: string): Promise<string | null> {
|
|
320
|
-
if (process.env.MEMORY_INTENT_REWRITE_ENABLED !== '1') return null;
|
|
321
|
-
|
|
322
|
-
const apiUrl = process.env.COMPANY_STOCK_API_URL || process.env.COMPANY_INT_API_URL;
|
|
323
|
-
if (!apiUrl) return null;
|
|
324
|
-
|
|
325
|
-
const controller = new AbortController();
|
|
326
|
-
const timeoutMs = Number(process.env.MEMORY_INTENT_REWRITE_TIMEOUT_MS || 5000);
|
|
327
|
-
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
328
|
-
|
|
329
|
-
try {
|
|
330
|
-
const prompt = [
|
|
331
|
-
'Rewrite user query for memory retrieval intent expansion.',
|
|
332
|
-
'Return plain text only, one line, no markdown.',
|
|
333
|
-
`Query: ${query}`,
|
|
334
|
-
].join('\n');
|
|
335
|
-
|
|
336
|
-
const res = await fetch(apiUrl, {
|
|
337
|
-
method: 'POST',
|
|
338
|
-
headers: {
|
|
339
|
-
'Content-Type': 'application/json',
|
|
340
|
-
Accept: '*/*',
|
|
341
|
-
Origin: process.env.COMPANY_INT_ORIGIN || 'http://company-int.aplusai.ai',
|
|
342
|
-
Referer: process.env.COMPANY_INT_REFERER || 'http://company-int.aplusai.ai/',
|
|
343
|
-
},
|
|
344
|
-
body: JSON.stringify({
|
|
345
|
-
question: prompt,
|
|
346
|
-
company_name: null,
|
|
347
|
-
conversation_id: null,
|
|
348
|
-
}),
|
|
349
|
-
signal: controller.signal,
|
|
350
|
-
});
|
|
351
|
-
|
|
352
|
-
const text = (await res.text()).trim();
|
|
353
|
-
if (!text) return null;
|
|
354
|
-
|
|
355
|
-
const oneLine = text
|
|
356
|
-
.replace(/^data:\s*/gm, '')
|
|
357
|
-
.split(/\r?\n/)
|
|
358
|
-
.map((line) => line.trim())
|
|
359
|
-
.filter(Boolean)
|
|
360
|
-
.join(' ')
|
|
361
|
-
.slice(0, 240);
|
|
362
|
-
|
|
363
|
-
if (!oneLine || oneLine.toLowerCase() === query.toLowerCase()) return null;
|
|
364
|
-
return oneLine;
|
|
365
|
-
} catch {
|
|
366
|
-
return null;
|
|
367
|
-
} finally {
|
|
368
|
-
clearTimeout(timeout);
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
export function createRetrievalOrchestrator(
|
|
374
|
-
deps: RetrievalOrchestratorDeps
|
|
375
|
-
): RetrievalOrchestrator {
|
|
376
|
-
return new RetrievalOrchestrator(deps);
|
|
377
|
-
}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Retrieval Services Bundle
|
|
3
|
-
*
|
|
4
|
-
* Owns construction and wiring for retrieval-facing engine services so
|
|
5
|
-
* MemoryService can hold a thin facade boundary instead of directly
|
|
6
|
-
* instantiating each retrieval collaborator.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import type { Embedder } from '../embedder.js';
|
|
10
|
-
import type { EventStore } from '../event-store.js';
|
|
11
|
-
import type { Matcher } from '../matcher.js';
|
|
12
|
-
import type { MemoryEvent } from '../types.js';
|
|
13
|
-
import {
|
|
14
|
-
createRetriever as createCoreRetriever,
|
|
15
|
-
type Retriever
|
|
16
|
-
} from '../retriever.js';
|
|
17
|
-
import type { VectorStore } from '../vector-store.js';
|
|
18
|
-
import {
|
|
19
|
-
createRetrievalAnalyticsService,
|
|
20
|
-
type RetrievalAnalyticsService,
|
|
21
|
-
type RetrievalAnalyticsStore
|
|
22
|
-
} from './retrieval-analytics-service.js';
|
|
23
|
-
import {
|
|
24
|
-
createRetrievalDisclosureService,
|
|
25
|
-
type RetrievalDisclosureEventStore,
|
|
26
|
-
type RetrievalDisclosureService,
|
|
27
|
-
type RetrievalDisclosureSharedStore
|
|
28
|
-
} from './retrieval-disclosure-service.js';
|
|
29
|
-
import {
|
|
30
|
-
createRetrievalOrchestrator,
|
|
31
|
-
type RetrievalAccessStore,
|
|
32
|
-
type RetrievalOrchestrator,
|
|
33
|
-
type RetrievalTraceStore
|
|
34
|
-
} from './retrieval-orchestrator.js';
|
|
35
|
-
|
|
36
|
-
export interface RetrievalSourceStore {
|
|
37
|
-
getRecentEvents(limit?: number): Promise<MemoryEvent[]>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export type RetrievalEventStore = RetrievalTraceStore
|
|
41
|
-
& RetrievalAccessStore
|
|
42
|
-
& RetrievalDisclosureEventStore
|
|
43
|
-
& RetrievalAnalyticsStore
|
|
44
|
-
& RetrievalSourceStore;
|
|
45
|
-
|
|
46
|
-
export type CreateRetrieverFn = (
|
|
47
|
-
eventStore: RetrievalEventStore,
|
|
48
|
-
vectorStore: VectorStore,
|
|
49
|
-
embedder: Embedder,
|
|
50
|
-
matcher: Matcher
|
|
51
|
-
) => Retriever;
|
|
52
|
-
|
|
53
|
-
export interface RetrievalServicesDeps {
|
|
54
|
-
initialize: () => Promise<void>;
|
|
55
|
-
eventStore: RetrievalEventStore;
|
|
56
|
-
vectorStore: VectorStore;
|
|
57
|
-
embedder: Embedder;
|
|
58
|
-
matcher: Matcher;
|
|
59
|
-
getProjectHash: () => string | null;
|
|
60
|
-
hasSharedStore: () => boolean;
|
|
61
|
-
sharedStore?: RetrievalDisclosureSharedStore;
|
|
62
|
-
createRetriever?: CreateRetrieverFn;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface RetrievalServices {
|
|
66
|
-
retriever: Retriever;
|
|
67
|
-
retrievalOrchestrator: RetrievalOrchestrator;
|
|
68
|
-
retrievalDisclosureService: RetrievalDisclosureService;
|
|
69
|
-
retrievalAnalyticsService: RetrievalAnalyticsService;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export function createRetrievalServices(deps: RetrievalServicesDeps): RetrievalServices {
|
|
73
|
-
const retrieverFactory = deps.createRetriever ?? defaultCreateRetriever;
|
|
74
|
-
const retriever = retrieverFactory(
|
|
75
|
-
deps.eventStore,
|
|
76
|
-
deps.vectorStore,
|
|
77
|
-
deps.embedder,
|
|
78
|
-
deps.matcher
|
|
79
|
-
);
|
|
80
|
-
const retrievalOrchestrator = createRetrievalOrchestrator({
|
|
81
|
-
initialize: deps.initialize,
|
|
82
|
-
retriever,
|
|
83
|
-
traceStore: deps.eventStore,
|
|
84
|
-
accessStore: deps.eventStore,
|
|
85
|
-
getProjectHash: deps.getProjectHash,
|
|
86
|
-
hasSharedStore: deps.hasSharedStore
|
|
87
|
-
});
|
|
88
|
-
const retrievalDisclosureService = createRetrievalDisclosureService({
|
|
89
|
-
initialize: deps.initialize,
|
|
90
|
-
retrievalOrchestrator,
|
|
91
|
-
eventStore: deps.eventStore,
|
|
92
|
-
sharedStore: deps.sharedStore
|
|
93
|
-
});
|
|
94
|
-
const retrievalAnalyticsService = createRetrievalAnalyticsService({
|
|
95
|
-
initialize: deps.initialize,
|
|
96
|
-
retrievalStore: deps.eventStore
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
return {
|
|
100
|
-
retriever,
|
|
101
|
-
retrievalOrchestrator,
|
|
102
|
-
retrievalDisclosureService,
|
|
103
|
-
retrievalAnalyticsService
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
function defaultCreateRetriever(
|
|
108
|
-
eventStore: RetrievalEventStore,
|
|
109
|
-
vectorStore: VectorStore,
|
|
110
|
-
embedder: Embedder,
|
|
111
|
-
matcher: Matcher
|
|
112
|
-
): Retriever {
|
|
113
|
-
assertDefaultRetrieverStore(eventStore);
|
|
114
|
-
return createCoreRetriever(
|
|
115
|
-
eventStore as unknown as EventStore,
|
|
116
|
-
vectorStore,
|
|
117
|
-
embedder,
|
|
118
|
-
matcher
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
function assertDefaultRetrieverStore(eventStore: RetrievalEventStore): void {
|
|
123
|
-
const store = eventStore as unknown as Record<string, unknown>;
|
|
124
|
-
for (const method of ['getEvent', 'getSessionEvents', 'getRecentEvents']) {
|
|
125
|
-
if (typeof store[method] !== 'function') {
|
|
126
|
-
throw new TypeError(`Default retrieval service eventStore requires ${method}()`);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export {
|
|
132
|
-
RetrievalAnalyticsService,
|
|
133
|
-
createRetrievalAnalyticsService
|
|
134
|
-
} from './retrieval-analytics-service.js';
|
|
135
|
-
export type {
|
|
136
|
-
AccessedMemory,
|
|
137
|
-
HelpfulMemory,
|
|
138
|
-
HelpfulnessStats,
|
|
139
|
-
RetrievalAnalyticsServiceDeps,
|
|
140
|
-
RetrievalAnalyticsStore,
|
|
141
|
-
RetrievalTrace,
|
|
142
|
-
RetrievalTraceStats
|
|
143
|
-
} from './retrieval-analytics-service.js';
|
|
144
|
-
export {
|
|
145
|
-
RetrievalDisclosureService,
|
|
146
|
-
createRetrievalDisclosureService,
|
|
147
|
-
parseDisclosureResultId,
|
|
148
|
-
parseDisclosureResultRef,
|
|
149
|
-
toDisclosureResultId
|
|
150
|
-
} from './retrieval-disclosure-service.js';
|
|
151
|
-
export type {
|
|
152
|
-
RetrievalDisclosureEnvelope,
|
|
153
|
-
RetrievalDisclosureEventStore,
|
|
154
|
-
RetrievalDisclosureExpansion,
|
|
155
|
-
RetrievalDisclosureExpandOptions,
|
|
156
|
-
RetrievalDisclosureOrchestrator,
|
|
157
|
-
RetrievalDisclosureReason,
|
|
158
|
-
RetrievalDisclosureSearchOptions,
|
|
159
|
-
RetrievalDisclosureSearchResponse,
|
|
160
|
-
RetrievalDisclosureServiceDeps,
|
|
161
|
-
RetrievalDisclosureSharedStore,
|
|
162
|
-
RetrievalDisclosureSource,
|
|
163
|
-
RetrievalDisclosureSourceReference,
|
|
164
|
-
RetrievalDisclosureSourceType
|
|
165
|
-
} from './retrieval-disclosure-service.js';
|
|
166
|
-
export {
|
|
167
|
-
RetrievalOrchestrator,
|
|
168
|
-
createRetrievalOrchestrator
|
|
169
|
-
} from './retrieval-orchestrator.js';
|
|
170
|
-
export type {
|
|
171
|
-
RecordQueryTraceInput,
|
|
172
|
-
RetrievalAccessStore,
|
|
173
|
-
RetrievalOrchestratorDeps,
|
|
174
|
-
RetrievalTraceStore,
|
|
175
|
-
RetrieveMemoriesOptions
|
|
176
|
-
} from './retrieval-orchestrator.js';
|