ai-memory-layer 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/LICENSE +21 -0
- package/README.md +765 -0
- package/bin/memory-server.mjs +157 -0
- package/dist/adapters/memory/embeddings.d.ts +4 -0
- package/dist/adapters/memory/embeddings.d.ts.map +1 -0
- package/dist/adapters/memory/embeddings.js +53 -0
- package/dist/adapters/memory/embeddings.js.map +1 -0
- package/dist/adapters/memory/index.d.ts +7 -0
- package/dist/adapters/memory/index.d.ts.map +1 -0
- package/dist/adapters/memory/index.js +650 -0
- package/dist/adapters/memory/index.js.map +1 -0
- package/dist/adapters/postgres/index.d.ts +38 -0
- package/dist/adapters/postgres/index.d.ts.map +1 -0
- package/dist/adapters/postgres/index.js +982 -0
- package/dist/adapters/postgres/index.js.map +1 -0
- package/dist/adapters/sqlite/embeddings.d.ts +5 -0
- package/dist/adapters/sqlite/embeddings.d.ts.map +1 -0
- package/dist/adapters/sqlite/embeddings.js +122 -0
- package/dist/adapters/sqlite/embeddings.js.map +1 -0
- package/dist/adapters/sqlite/index.d.ts +8 -0
- package/dist/adapters/sqlite/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/index.js +839 -0
- package/dist/adapters/sqlite/index.js.map +1 -0
- package/dist/adapters/sqlite/mappers.d.ts +40 -0
- package/dist/adapters/sqlite/mappers.d.ts.map +1 -0
- package/dist/adapters/sqlite/mappers.js +95 -0
- package/dist/adapters/sqlite/mappers.js.map +1 -0
- package/dist/adapters/sqlite/schema.d.ts +4 -0
- package/dist/adapters/sqlite/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/schema.js +394 -0
- package/dist/adapters/sqlite/schema.js.map +1 -0
- package/dist/adapters/sync-to-async.d.ts +15 -0
- package/dist/adapters/sync-to-async.d.ts.map +1 -0
- package/dist/adapters/sync-to-async.js +95 -0
- package/dist/adapters/sync-to-async.js.map +1 -0
- package/dist/cli/inspect.d.ts +34 -0
- package/dist/cli/inspect.d.ts.map +1 -0
- package/dist/cli/inspect.js +190 -0
- package/dist/cli/inspect.js.map +1 -0
- package/dist/contracts/async-storage.d.ts +86 -0
- package/dist/contracts/async-storage.d.ts.map +1 -0
- package/dist/contracts/async-storage.js +2 -0
- package/dist/contracts/async-storage.js.map +1 -0
- package/dist/contracts/embedding.d.ts +22 -0
- package/dist/contracts/embedding.d.ts.map +1 -0
- package/dist/contracts/embedding.js +2 -0
- package/dist/contracts/embedding.js.map +1 -0
- package/dist/contracts/identity.d.ts +29 -0
- package/dist/contracts/identity.d.ts.map +1 -0
- package/dist/contracts/identity.js +34 -0
- package/dist/contracts/identity.js.map +1 -0
- package/dist/contracts/observability.d.ts +18 -0
- package/dist/contracts/observability.d.ts.map +1 -0
- package/dist/contracts/observability.js +7 -0
- package/dist/contracts/observability.js.map +1 -0
- package/dist/contracts/policy.d.ts +108 -0
- package/dist/contracts/policy.d.ts.map +1 -0
- package/dist/contracts/policy.js +107 -0
- package/dist/contracts/policy.js.map +1 -0
- package/dist/contracts/storage.d.ts +78 -0
- package/dist/contracts/storage.d.ts.map +1 -0
- package/dist/contracts/storage.js +2 -0
- package/dist/contracts/storage.js.map +1 -0
- package/dist/contracts/types.d.ts +381 -0
- package/dist/contracts/types.d.ts.map +1 -0
- package/dist/contracts/types.js +94 -0
- package/dist/contracts/types.js.map +1 -0
- package/dist/core/circuit-breaker.d.ts +11 -0
- package/dist/core/circuit-breaker.d.ts.map +1 -0
- package/dist/core/circuit-breaker.js +38 -0
- package/dist/core/circuit-breaker.js.map +1 -0
- package/dist/core/context.d.ts +56 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +345 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/events.d.ts +8 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +25 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/extractor.d.ts +37 -0
- package/dist/core/extractor.d.ts.map +1 -0
- package/dist/core/extractor.js +448 -0
- package/dist/core/extractor.js.map +1 -0
- package/dist/core/formatter.d.ts +25 -0
- package/dist/core/formatter.d.ts.map +1 -0
- package/dist/core/formatter.js +97 -0
- package/dist/core/formatter.js.map +1 -0
- package/dist/core/knowledge-lifecycle.d.ts +15 -0
- package/dist/core/knowledge-lifecycle.d.ts.map +1 -0
- package/dist/core/knowledge-lifecycle.js +103 -0
- package/dist/core/knowledge-lifecycle.js.map +1 -0
- package/dist/core/maintenance.d.ts +13 -0
- package/dist/core/maintenance.d.ts.map +1 -0
- package/dist/core/maintenance.js +102 -0
- package/dist/core/maintenance.js.map +1 -0
- package/dist/core/manager.d.ts +110 -0
- package/dist/core/manager.d.ts.map +1 -0
- package/dist/core/manager.js +640 -0
- package/dist/core/manager.js.map +1 -0
- package/dist/core/monitor.d.ts +73 -0
- package/dist/core/monitor.d.ts.map +1 -0
- package/dist/core/monitor.js +395 -0
- package/dist/core/monitor.js.map +1 -0
- package/dist/core/orchestrator.d.ts +64 -0
- package/dist/core/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestrator.js +916 -0
- package/dist/core/orchestrator.js.map +1 -0
- package/dist/core/presets.d.ts +15 -0
- package/dist/core/presets.d.ts.map +1 -0
- package/dist/core/presets.js +99 -0
- package/dist/core/presets.js.map +1 -0
- package/dist/core/provider-managers.d.ts +47 -0
- package/dist/core/provider-managers.d.ts.map +1 -0
- package/dist/core/provider-managers.js +112 -0
- package/dist/core/provider-managers.js.map +1 -0
- package/dist/core/quick.d.ts +62 -0
- package/dist/core/quick.d.ts.map +1 -0
- package/dist/core/quick.js +300 -0
- package/dist/core/quick.js.map +1 -0
- package/dist/core/retrieval.d.ts +29 -0
- package/dist/core/retrieval.d.ts.map +1 -0
- package/dist/core/retrieval.js +150 -0
- package/dist/core/retrieval.js.map +1 -0
- package/dist/core/runtime.d.ts +67 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +84 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/streaming.d.ts +37 -0
- package/dist/core/streaming.d.ts.map +1 -0
- package/dist/core/streaming.js +51 -0
- package/dist/core/streaming.js.map +1 -0
- package/dist/core/sync.d.ts +13 -0
- package/dist/core/sync.d.ts.map +1 -0
- package/dist/core/sync.js +46 -0
- package/dist/core/sync.js.map +1 -0
- package/dist/core/telemetry.d.ts +8 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +14 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/core/tokens.d.ts +8 -0
- package/dist/core/tokens.d.ts.map +1 -0
- package/dist/core/tokens.js +59 -0
- package/dist/core/tokens.js.map +1 -0
- package/dist/core/trust.d.ts +23 -0
- package/dist/core/trust.d.ts.map +1 -0
- package/dist/core/trust.js +164 -0
- package/dist/core/trust.js.map +1 -0
- package/dist/core/validation.d.ts +36 -0
- package/dist/core/validation.d.ts.map +1 -0
- package/dist/core/validation.js +185 -0
- package/dist/core/validation.js.map +1 -0
- package/dist/embeddings/local.d.ts +5 -0
- package/dist/embeddings/local.d.ts.map +1 -0
- package/dist/embeddings/local.js +128 -0
- package/dist/embeddings/local.js.map +1 -0
- package/dist/embeddings/openai.d.ts +26 -0
- package/dist/embeddings/openai.d.ts.map +1 -0
- package/dist/embeddings/openai.js +48 -0
- package/dist/embeddings/openai.js.map +1 -0
- package/dist/embeddings/resilience.d.ts +5 -0
- package/dist/embeddings/resilience.d.ts.map +1 -0
- package/dist/embeddings/resilience.js +53 -0
- package/dist/embeddings/resilience.js.map +1 -0
- package/dist/embeddings/voyage.d.ts +30 -0
- package/dist/embeddings/voyage.d.ts.map +1 -0
- package/dist/embeddings/voyage.js +53 -0
- package/dist/embeddings/voyage.js.map +1 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/claude-agent.d.ts +21 -0
- package/dist/integrations/claude-agent.d.ts.map +1 -0
- package/dist/integrations/claude-agent.js +44 -0
- package/dist/integrations/claude-agent.js.map +1 -0
- package/dist/integrations/claude-tools.d.ts +18 -0
- package/dist/integrations/claude-tools.d.ts.map +1 -0
- package/dist/integrations/claude-tools.js +60 -0
- package/dist/integrations/claude-tools.js.map +1 -0
- package/dist/integrations/langchain.d.ts +24 -0
- package/dist/integrations/langchain.d.ts.map +1 -0
- package/dist/integrations/langchain.js +48 -0
- package/dist/integrations/langchain.js.map +1 -0
- package/dist/integrations/mcp.d.ts +23 -0
- package/dist/integrations/mcp.d.ts.map +1 -0
- package/dist/integrations/mcp.js +60 -0
- package/dist/integrations/mcp.js.map +1 -0
- package/dist/integrations/middleware.d.ts +15 -0
- package/dist/integrations/middleware.d.ts.map +1 -0
- package/dist/integrations/middleware.js +27 -0
- package/dist/integrations/middleware.js.map +1 -0
- package/dist/integrations/openai-tools.d.ts +21 -0
- package/dist/integrations/openai-tools.d.ts.map +1 -0
- package/dist/integrations/openai-tools.js +69 -0
- package/dist/integrations/openai-tools.js.map +1 -0
- package/dist/integrations/vercel-ai.d.ts +19 -0
- package/dist/integrations/vercel-ai.d.ts.map +1 -0
- package/dist/integrations/vercel-ai.js +41 -0
- package/dist/integrations/vercel-ai.js.map +1 -0
- package/dist/server/http-server.d.ts +61 -0
- package/dist/server/http-server.d.ts.map +1 -0
- package/dist/server/http-server.js +684 -0
- package/dist/server/http-server.js.map +1 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +3 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/mcp-server.d.ts +61 -0
- package/dist/server/mcp-server.d.ts.map +1 -0
- package/dist/server/mcp-server.js +465 -0
- package/dist/server/mcp-server.js.map +1 -0
- package/dist/summarizers/claude.d.ts +11 -0
- package/dist/summarizers/claude.d.ts.map +1 -0
- package/dist/summarizers/claude.js +39 -0
- package/dist/summarizers/claude.js.map +1 -0
- package/dist/summarizers/client.d.ts +23 -0
- package/dist/summarizers/client.d.ts.map +1 -0
- package/dist/summarizers/client.js +24 -0
- package/dist/summarizers/client.js.map +1 -0
- package/dist/summarizers/extractive.d.ts +6 -0
- package/dist/summarizers/extractive.d.ts.map +1 -0
- package/dist/summarizers/extractive.js +204 -0
- package/dist/summarizers/extractive.js.map +1 -0
- package/dist/summarizers/extractor.d.ts +12 -0
- package/dist/summarizers/extractor.d.ts.map +1 -0
- package/dist/summarizers/extractor.js +75 -0
- package/dist/summarizers/extractor.js.map +1 -0
- package/dist/summarizers/openai.d.ts +11 -0
- package/dist/summarizers/openai.d.ts.map +1 -0
- package/dist/summarizers/openai.js +41 -0
- package/dist/summarizers/openai.js.map +1 -0
- package/dist/summarizers/prompts.d.ts +11 -0
- package/dist/summarizers/prompts.d.ts.map +1 -0
- package/dist/summarizers/prompts.js +104 -0
- package/dist/summarizers/prompts.js.map +1 -0
- package/docs/DEPLOYMENT.md +84 -0
- package/docs/INTEGRATIONS.md +64 -0
- package/docs/MEMORY_QUALITY_BASELINE.md +55 -0
- package/docs/MEMORY_QUALITY_RELEASE_GATE.md +63 -0
- package/docs/MEMORY_QUALITY_RUBRIC.md +249 -0
- package/docs/OPERATIONS.md +49 -0
- package/docs/SECURITY.md +25 -0
- package/openapi.yaml +843 -0
- package/package.json +157 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import { createInMemoryAdapterWithEmbeddings } from '../adapters/memory/index.js';
|
|
2
|
+
import { createSQLiteAdapter, createSQLiteAdapterWithEmbeddings } from '../adapters/sqlite/index.js';
|
|
3
|
+
import { createLocalEmbeddingGenerator } from '../embeddings/local.js';
|
|
4
|
+
import { createOpenAIEmbeddingGenerator } from '../embeddings/openai.js';
|
|
5
|
+
import { createVoyageEmbeddingGenerator } from '../embeddings/voyage.js';
|
|
6
|
+
import { createCompositeExtractor, createHeuristicExtractor, createRegexExtractor, } from './extractor.js';
|
|
7
|
+
import { createMemoryManager, } from './manager.js';
|
|
8
|
+
import { resolveMemoryManagerPreset } from './presets.js';
|
|
9
|
+
import { createSessionId } from './tokens.js';
|
|
10
|
+
import { createClaudeSummarizer } from '../summarizers/claude.js';
|
|
11
|
+
import { createExtractiveSummarizer } from '../summarizers/extractive.js';
|
|
12
|
+
import { createOpenAISummarizer } from '../summarizers/openai.js';
|
|
13
|
+
import { createClaudeExtractor, createOpenAIExtractor } from '../summarizers/extractor.js';
|
|
14
|
+
import { emitMemoryEvent } from './telemetry.js';
|
|
15
|
+
const QUALITY_MODE_CONFIG = {
|
|
16
|
+
fast_adoption: {
|
|
17
|
+
extractionPolicy: {
|
|
18
|
+
requireGroundingForTrusted: false,
|
|
19
|
+
minimumEvidenceCountForTrusted: 1,
|
|
20
|
+
trustPromotionThreshold: 0.55,
|
|
21
|
+
trustProvisionalThreshold: 0.15,
|
|
22
|
+
contradictionDisputeThreshold: 0.5,
|
|
23
|
+
},
|
|
24
|
+
contextPolicy: {
|
|
25
|
+
trustWeight: 0.8,
|
|
26
|
+
contradictionPenalty: 1,
|
|
27
|
+
provisionalPenalty: 0.15,
|
|
28
|
+
},
|
|
29
|
+
maintenancePolicy: {
|
|
30
|
+
trustedCoreRetentionDays: 60,
|
|
31
|
+
provisionalRetentionDays: 21,
|
|
32
|
+
reverificationCadenceDays: 60,
|
|
33
|
+
requireReconfirmationForProjectFacts: false,
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
balanced_memory: {
|
|
37
|
+
extractionPolicy: {
|
|
38
|
+
requireGroundingForTrusted: true,
|
|
39
|
+
minimumEvidenceCountForTrusted: 2,
|
|
40
|
+
trustPromotionThreshold: 0.7,
|
|
41
|
+
trustProvisionalThreshold: 0.45,
|
|
42
|
+
contradictionDisputeThreshold: 0.35,
|
|
43
|
+
},
|
|
44
|
+
contextPolicy: {
|
|
45
|
+
trustWeight: 1.3,
|
|
46
|
+
contradictionPenalty: 1.5,
|
|
47
|
+
provisionalPenalty: 0.75,
|
|
48
|
+
},
|
|
49
|
+
maintenancePolicy: {
|
|
50
|
+
trustedCoreRetentionDays: 365,
|
|
51
|
+
provisionalRetentionDays: 14,
|
|
52
|
+
reverificationCadenceDays: 30,
|
|
53
|
+
requireReconfirmationForProjectFacts: true,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
high_fidelity_memory: {
|
|
57
|
+
extractionPolicy: {
|
|
58
|
+
requireGroundingForTrusted: true,
|
|
59
|
+
minimumEvidenceCountForTrusted: 2,
|
|
60
|
+
minConfidenceForPromotion: 'high',
|
|
61
|
+
trustPromotionThreshold: 0.82,
|
|
62
|
+
trustProvisionalThreshold: 0.55,
|
|
63
|
+
contradictionDisputeThreshold: 0.25,
|
|
64
|
+
},
|
|
65
|
+
contextPolicy: {
|
|
66
|
+
trustWeight: 1.6,
|
|
67
|
+
contradictionPenalty: 2,
|
|
68
|
+
provisionalPenalty: 1.2,
|
|
69
|
+
trustedCoreLimit: 10,
|
|
70
|
+
taskRelevantLimit: 10,
|
|
71
|
+
},
|
|
72
|
+
maintenancePolicy: {
|
|
73
|
+
trustedCoreRetentionDays: 730,
|
|
74
|
+
provisionalRetentionDays: 10,
|
|
75
|
+
reverificationCadenceDays: 14,
|
|
76
|
+
requireReconfirmationForProjectFacts: true,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
function resolveQualityMode(options) {
|
|
81
|
+
if (options.qualityMode)
|
|
82
|
+
return options.qualityMode;
|
|
83
|
+
switch (options.qualityTier) {
|
|
84
|
+
case 'offline_default':
|
|
85
|
+
return 'balanced_memory';
|
|
86
|
+
case 'provider_backed':
|
|
87
|
+
return 'high_fidelity_memory';
|
|
88
|
+
case 'local_semantic':
|
|
89
|
+
default:
|
|
90
|
+
return 'balanced_memory';
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function hasProviderEmbeddingEnv() {
|
|
94
|
+
return Boolean(process.env.OPENAI_API_KEY || process.env.VOYAGE_API_KEY);
|
|
95
|
+
}
|
|
96
|
+
function resolveScope(scope) {
|
|
97
|
+
if (typeof scope === 'string') {
|
|
98
|
+
return {
|
|
99
|
+
tenant_id: 'default',
|
|
100
|
+
system_id: 'default',
|
|
101
|
+
scope_id: scope,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return (scope ?? {
|
|
105
|
+
tenant_id: 'default',
|
|
106
|
+
system_id: 'default',
|
|
107
|
+
scope_id: 'default',
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
function resolveAdapter(adapter, path, logger, onEvent, qualityTier) {
|
|
111
|
+
if (!adapter && path === ':memory:') {
|
|
112
|
+
const memory = createInMemoryAdapterWithEmbeddings({ logger, onEvent });
|
|
113
|
+
return { adapter: memory, embeddingAdapter: memory.embeddings };
|
|
114
|
+
}
|
|
115
|
+
if (!adapter || adapter === 'sqlite') {
|
|
116
|
+
if (!qualityTier ||
|
|
117
|
+
qualityTier === 'offline_default' ||
|
|
118
|
+
qualityTier === 'local_semantic' ||
|
|
119
|
+
qualityTier === 'provider_backed' ||
|
|
120
|
+
hasProviderEmbeddingEnv()) {
|
|
121
|
+
const sqlite = createSQLiteAdapterWithEmbeddings(path, { logger, onEvent });
|
|
122
|
+
return { adapter: sqlite, embeddingAdapter: sqlite.embeddings };
|
|
123
|
+
}
|
|
124
|
+
return { adapter: createSQLiteAdapter(path, { logger, onEvent }) };
|
|
125
|
+
}
|
|
126
|
+
if (adapter === 'memory') {
|
|
127
|
+
const memory = createInMemoryAdapterWithEmbeddings({ logger, onEvent });
|
|
128
|
+
return { adapter: memory, embeddingAdapter: memory.embeddings };
|
|
129
|
+
}
|
|
130
|
+
return { adapter };
|
|
131
|
+
}
|
|
132
|
+
function resolveSummarizer(summarizer, options) {
|
|
133
|
+
if (!summarizer || summarizer === 'extractive') {
|
|
134
|
+
return createExtractiveSummarizer();
|
|
135
|
+
}
|
|
136
|
+
if (summarizer === 'claude') {
|
|
137
|
+
return createClaudeSummarizer(options);
|
|
138
|
+
}
|
|
139
|
+
if (summarizer === 'openai') {
|
|
140
|
+
return createOpenAISummarizer(options);
|
|
141
|
+
}
|
|
142
|
+
return summarizer;
|
|
143
|
+
}
|
|
144
|
+
function resolveExtractor(extractor, options) {
|
|
145
|
+
if (extractor === false) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
if (!extractor) {
|
|
149
|
+
return createCompositeExtractor(createHeuristicExtractor(), createRegexExtractor());
|
|
150
|
+
}
|
|
151
|
+
if (extractor === 'heuristic') {
|
|
152
|
+
return createHeuristicExtractor();
|
|
153
|
+
}
|
|
154
|
+
if (extractor === 'regex') {
|
|
155
|
+
return createRegexExtractor();
|
|
156
|
+
}
|
|
157
|
+
if (extractor === 'claude') {
|
|
158
|
+
return createClaudeExtractor(options);
|
|
159
|
+
}
|
|
160
|
+
if (extractor === 'openai') {
|
|
161
|
+
return createOpenAIExtractor(options);
|
|
162
|
+
}
|
|
163
|
+
return extractor;
|
|
164
|
+
}
|
|
165
|
+
function resolveEmbeddingGenerator(embedding, embeddingAdapter, qualityTier) {
|
|
166
|
+
if (embedding === false) {
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
if (typeof embedding === 'function') {
|
|
170
|
+
return embedding;
|
|
171
|
+
}
|
|
172
|
+
if (!embeddingAdapter) {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
if (process.env.OPENAI_API_KEY) {
|
|
176
|
+
return createOpenAIEmbeddingGenerator();
|
|
177
|
+
}
|
|
178
|
+
if (process.env.VOYAGE_API_KEY) {
|
|
179
|
+
return createVoyageEmbeddingGenerator();
|
|
180
|
+
}
|
|
181
|
+
if (embedding === 'local' || qualityTier === 'offline_default' || qualityTier === 'local_semantic') {
|
|
182
|
+
return createLocalEmbeddingGenerator();
|
|
183
|
+
}
|
|
184
|
+
return undefined;
|
|
185
|
+
}
|
|
186
|
+
function resolveCapabilityProfile(input) {
|
|
187
|
+
const storageKind = input.options.asyncAdapter
|
|
188
|
+
? 'async_custom'
|
|
189
|
+
: !input.options.adapter && (input.options.path ?? ':memory:') === ':memory:'
|
|
190
|
+
? 'memory'
|
|
191
|
+
: input.options.adapter === 'memory'
|
|
192
|
+
? 'memory'
|
|
193
|
+
: input.options.adapter === 'sqlite' || input.options.path
|
|
194
|
+
? 'sqlite'
|
|
195
|
+
: 'custom';
|
|
196
|
+
const extractorTier = input.options.extractor === false
|
|
197
|
+
? 'disabled'
|
|
198
|
+
: input.options.extractor === 'claude' || input.options.extractor === 'openai'
|
|
199
|
+
? 'provider'
|
|
200
|
+
: input.options.extractor === 'regex'
|
|
201
|
+
? 'regex_enhanced'
|
|
202
|
+
: input.options.extractor === 'heuristic' || input.options.extractor == null
|
|
203
|
+
? 'local_heuristic'
|
|
204
|
+
: typeof input.options.extractor === 'function'
|
|
205
|
+
? 'custom'
|
|
206
|
+
: input.extractor
|
|
207
|
+
? 'configured'
|
|
208
|
+
: 'disabled';
|
|
209
|
+
const embeddingTier = !input.embeddingGenerator && !input.resolvedAdapter.embeddingAdapter
|
|
210
|
+
? 'disabled'
|
|
211
|
+
: process.env.OPENAI_API_KEY || process.env.VOYAGE_API_KEY
|
|
212
|
+
? 'provider'
|
|
213
|
+
: input.embeddingGenerator
|
|
214
|
+
? 'local_semantic'
|
|
215
|
+
: 'storage_only';
|
|
216
|
+
return {
|
|
217
|
+
qualityMode: resolveQualityMode(input.options),
|
|
218
|
+
qualityTier: input.options.qualityTier ?? 'offline_default',
|
|
219
|
+
storageKind,
|
|
220
|
+
durableStorage: storageKind === 'sqlite' && (input.options.path ?? ':memory:') !== ':memory:',
|
|
221
|
+
extractorTier,
|
|
222
|
+
embeddingTier,
|
|
223
|
+
semanticSearchEnabled: Boolean(input.embeddingGenerator && input.resolvedAdapter.embeddingAdapter),
|
|
224
|
+
providerBacked: input.options.summarizer === 'claude' ||
|
|
225
|
+
input.options.summarizer === 'openai' ||
|
|
226
|
+
input.options.extractor === 'claude' ||
|
|
227
|
+
input.options.extractor === 'openai' ||
|
|
228
|
+
embeddingTier === 'provider',
|
|
229
|
+
localFallbackActive: extractorTier !== 'provider' || embeddingTier !== 'provider',
|
|
230
|
+
nativeAddonRequiredAtBootstrap: storageKind === 'sqlite',
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
export function createMemory(options = {}) {
|
|
234
|
+
return createMemoryInternal(options);
|
|
235
|
+
}
|
|
236
|
+
export function createMemoryWithAsyncAdapter(options) {
|
|
237
|
+
return createMemoryInternal(options);
|
|
238
|
+
}
|
|
239
|
+
function createMemoryInternal(options) {
|
|
240
|
+
const scope = resolveScope(options.scope);
|
|
241
|
+
const preset = resolveMemoryManagerPreset(options.preset);
|
|
242
|
+
const qualityMode = resolveQualityMode(options);
|
|
243
|
+
const qualityConfig = QUALITY_MODE_CONFIG[qualityMode];
|
|
244
|
+
const resolvedAdapter = options.asyncAdapter
|
|
245
|
+
? { adapter: undefined, embeddingAdapter: options.embeddingAdapter }
|
|
246
|
+
: resolveAdapter(options.adapter, options.path ?? ':memory:', options.logger, options.onEvent, options.qualityTier);
|
|
247
|
+
const summarizer = resolveSummarizer(options.summarizer, options.summarizerOptions);
|
|
248
|
+
const extractor = resolveExtractor(options.extractor, options.extractorOptions);
|
|
249
|
+
const embeddingAdapter = options.embeddingAdapter ?? resolvedAdapter.embeddingAdapter;
|
|
250
|
+
const embeddingGenerator = resolveEmbeddingGenerator(options.embeddingGenerator, embeddingAdapter, options.qualityTier ?? 'offline_default');
|
|
251
|
+
const manager = createMemoryManager({
|
|
252
|
+
...(options.asyncAdapter
|
|
253
|
+
? { asyncAdapter: options.asyncAdapter }
|
|
254
|
+
: { adapter: resolvedAdapter.adapter }),
|
|
255
|
+
scope,
|
|
256
|
+
sessionId: options.sessionId ?? createSessionId(scope),
|
|
257
|
+
summarizer,
|
|
258
|
+
extractor,
|
|
259
|
+
embeddingAdapter,
|
|
260
|
+
embeddingGenerator,
|
|
261
|
+
logger: options.logger,
|
|
262
|
+
onEvent: options.onEvent,
|
|
263
|
+
eventEmitter: options.eventEmitter,
|
|
264
|
+
redactText: options.redactText,
|
|
265
|
+
autoCompact: options.autoCompact ?? preset.autoCompact,
|
|
266
|
+
autoExtract: options.autoExtract ?? (extractor ? preset.autoExtract : false),
|
|
267
|
+
crossScopeLevel: options.crossScopeLevel ?? preset.crossScopeLevel,
|
|
268
|
+
monitorPolicy: {
|
|
269
|
+
...preset.monitorPolicy,
|
|
270
|
+
...qualityConfig.monitorPolicy,
|
|
271
|
+
...options.policies?.monitor,
|
|
272
|
+
},
|
|
273
|
+
extractionPolicy: {
|
|
274
|
+
...preset.extractionPolicy,
|
|
275
|
+
...qualityConfig.extractionPolicy,
|
|
276
|
+
...options.policies?.extraction,
|
|
277
|
+
},
|
|
278
|
+
contextPolicy: {
|
|
279
|
+
...preset.contextPolicy,
|
|
280
|
+
...qualityConfig.contextPolicy,
|
|
281
|
+
...options.policies?.context,
|
|
282
|
+
},
|
|
283
|
+
maintenancePolicy: {
|
|
284
|
+
...preset.maintenancePolicy,
|
|
285
|
+
...qualityConfig.maintenancePolicy,
|
|
286
|
+
...options.policies?.maintenance,
|
|
287
|
+
},
|
|
288
|
+
failurePolicy: options.failurePolicy,
|
|
289
|
+
tokenEstimator: options.tokenEstimator,
|
|
290
|
+
});
|
|
291
|
+
emitMemoryEvent('capability', scope, { logger: options.logger, onEvent: options.onEvent }, 0, resolveCapabilityProfile({
|
|
292
|
+
options,
|
|
293
|
+
resolvedAdapter,
|
|
294
|
+
scope,
|
|
295
|
+
extractor,
|
|
296
|
+
embeddingGenerator,
|
|
297
|
+
}));
|
|
298
|
+
return manager;
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=quick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick.js","sourceRoot":"","sources":["../../src/core/quick.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { MemoryScope } from '../contracts/identity.js';
|
|
2
|
+
import type { ContextPolicy } from '../contracts/policy.js';
|
|
3
|
+
import type { KnowledgeMemory, SearchOptions } from '../contracts/types.js';
|
|
4
|
+
export declare function getClassImportanceScore(knowledge: KnowledgeMemory, policy?: Pick<Required<ContextPolicy>, 'classImportanceOverrides'>): number;
|
|
5
|
+
export declare function getEvidenceDensityScore(knowledge: KnowledgeMemory, policy: Pick<Required<ContextPolicy>, 'evidenceSaturationCount'>): number;
|
|
6
|
+
export declare function getScopeRelationScore(current: MemoryScope, candidate: KnowledgeMemory, policy: Pick<Required<ContextPolicy>, 'collaborationScopeScore' | 'systemScopeScore' | 'tenantScopeScore'>): number;
|
|
7
|
+
export declare function getLineageScore(currentScopeId: string, candidateScopeId: string): number;
|
|
8
|
+
export declare function rankKnowledge(input: {
|
|
9
|
+
knowledge: KnowledgeMemory;
|
|
10
|
+
lexicalScore: number;
|
|
11
|
+
semanticScore: number;
|
|
12
|
+
recencyScore: number;
|
|
13
|
+
importanceScore: number;
|
|
14
|
+
policy: Required<ContextPolicy>;
|
|
15
|
+
scope: MemoryScope;
|
|
16
|
+
relevanceTexts?: string[];
|
|
17
|
+
preferLocalTrusted?: boolean;
|
|
18
|
+
preferLineageMemory?: boolean;
|
|
19
|
+
}): {
|
|
20
|
+
finalScore: number;
|
|
21
|
+
trustScore: number;
|
|
22
|
+
classImportanceScore: number;
|
|
23
|
+
evidenceDensityScore: number;
|
|
24
|
+
objectiveLinkScore: number;
|
|
25
|
+
scopeRelationScore: number;
|
|
26
|
+
lineageScore: number;
|
|
27
|
+
};
|
|
28
|
+
export declare function matchesKnowledgeSearchOptions(knowledge: KnowledgeMemory, options?: SearchOptions): boolean;
|
|
29
|
+
//# sourceMappingURL=retrieval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../src/core/retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAgC5E,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,EAC1B,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,0BAA0B,CAAC,GACjE,MAAM,CAMR;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,yBAAyB,CAAC,GAC/D,MAAM,CAER;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,IAAI,CACV,QAAQ,CAAC,aAAa,CAAC,EACvB,yBAAyB,GAAG,kBAAkB,GAAG,kBAAkB,CACpE,GACA,MAAM,CA0BR;AAED,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAexF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;CACtB,CAqDA;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAsBT"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
function tokenize(text) {
|
|
2
|
+
return text
|
|
3
|
+
.toLowerCase()
|
|
4
|
+
.split(/[^a-z0-9]+/g)
|
|
5
|
+
.filter((token) => token.length > 1);
|
|
6
|
+
}
|
|
7
|
+
function overlapScore(source, targets) {
|
|
8
|
+
const sourceTokens = new Set(tokenize(source));
|
|
9
|
+
if (sourceTokens.size === 0)
|
|
10
|
+
return 0;
|
|
11
|
+
const targetTokens = new Set(targets.flatMap((target) => tokenize(target)));
|
|
12
|
+
if (targetTokens.size === 0)
|
|
13
|
+
return 0;
|
|
14
|
+
let matches = 0;
|
|
15
|
+
for (const token of sourceTokens) {
|
|
16
|
+
if (targetTokens.has(token))
|
|
17
|
+
matches += 1;
|
|
18
|
+
}
|
|
19
|
+
return matches / sourceTokens.size;
|
|
20
|
+
}
|
|
21
|
+
const DEFAULT_CLASS_IMPORTANCE = {
|
|
22
|
+
identity: 1,
|
|
23
|
+
constraint: 0.95,
|
|
24
|
+
preference: 0.85,
|
|
25
|
+
strategy: 0.8,
|
|
26
|
+
procedure: 0.75,
|
|
27
|
+
project_fact: 0.6,
|
|
28
|
+
episodic_fact: 0.4,
|
|
29
|
+
anti_pattern: 0.45,
|
|
30
|
+
};
|
|
31
|
+
export function getClassImportanceScore(knowledge, policy) {
|
|
32
|
+
const override = policy?.classImportanceOverrides?.[knowledge.knowledge_class];
|
|
33
|
+
if (override != null) {
|
|
34
|
+
return override;
|
|
35
|
+
}
|
|
36
|
+
return DEFAULT_CLASS_IMPORTANCE[knowledge.knowledge_class] ?? 0.5;
|
|
37
|
+
}
|
|
38
|
+
export function getEvidenceDensityScore(knowledge, policy) {
|
|
39
|
+
return Math.min(1, knowledge.evidence_count / Math.max(1, policy.evidenceSaturationCount));
|
|
40
|
+
}
|
|
41
|
+
export function getScopeRelationScore(current, candidate, policy) {
|
|
42
|
+
const currentWorkspaceId = current.workspace_id ?? 'default';
|
|
43
|
+
const currentCollaborationId = current.collaboration_id ?? '';
|
|
44
|
+
if (candidate.tenant_id === current.tenant_id &&
|
|
45
|
+
candidate.system_id === current.system_id &&
|
|
46
|
+
candidate.workspace_id === currentWorkspaceId &&
|
|
47
|
+
candidate.collaboration_id === currentCollaborationId &&
|
|
48
|
+
candidate.scope_id === current.scope_id) {
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
if (candidate.tenant_id === current.tenant_id &&
|
|
52
|
+
currentCollaborationId.length > 0 &&
|
|
53
|
+
candidate.collaboration_id === currentCollaborationId) {
|
|
54
|
+
return policy.collaborationScopeScore;
|
|
55
|
+
}
|
|
56
|
+
if (candidate.tenant_id === current.tenant_id && candidate.system_id === current.system_id) {
|
|
57
|
+
return policy.systemScopeScore;
|
|
58
|
+
}
|
|
59
|
+
if (candidate.tenant_id === current.tenant_id) {
|
|
60
|
+
return policy.tenantScopeScore;
|
|
61
|
+
}
|
|
62
|
+
return 0;
|
|
63
|
+
}
|
|
64
|
+
export function getLineageScore(currentScopeId, candidateScopeId) {
|
|
65
|
+
if (currentScopeId === candidateScopeId)
|
|
66
|
+
return 1;
|
|
67
|
+
const split = (value) => value.split(/[/:>|]/g).filter(Boolean);
|
|
68
|
+
const currentParts = split(currentScopeId);
|
|
69
|
+
const candidateParts = split(candidateScopeId);
|
|
70
|
+
let shared = 0;
|
|
71
|
+
while (shared < currentParts.length &&
|
|
72
|
+
shared < candidateParts.length &&
|
|
73
|
+
currentParts[shared] === candidateParts[shared]) {
|
|
74
|
+
shared += 1;
|
|
75
|
+
}
|
|
76
|
+
if (shared === 0)
|
|
77
|
+
return 0;
|
|
78
|
+
return shared / Math.max(currentParts.length, candidateParts.length);
|
|
79
|
+
}
|
|
80
|
+
export function rankKnowledge(input) {
|
|
81
|
+
const { knowledge, policy } = input;
|
|
82
|
+
const trustScore = knowledge.trust_score ?? 0;
|
|
83
|
+
const classImportanceScore = getClassImportanceScore(knowledge, policy);
|
|
84
|
+
const evidenceDensityScore = getEvidenceDensityScore(knowledge, policy);
|
|
85
|
+
const objectiveLinkScore = input.relevanceTexts && input.relevanceTexts.length > 0
|
|
86
|
+
? overlapScore(knowledge.fact, input.relevanceTexts)
|
|
87
|
+
: 0;
|
|
88
|
+
const scopeRelationScore = getScopeRelationScore(input.scope, knowledge, policy);
|
|
89
|
+
const lineageScore = input.preferLineageMemory && knowledge.scope_id !== input.scope.scope_id
|
|
90
|
+
? getLineageScore(input.scope.scope_id, knowledge.scope_id)
|
|
91
|
+
: 0;
|
|
92
|
+
const localTrustedBonus = input.preferLocalTrusted &&
|
|
93
|
+
trustScore >= policy.localTrustedThreshold &&
|
|
94
|
+
knowledge.scope_id === input.scope.scope_id
|
|
95
|
+
? policy.localTrustedBonus
|
|
96
|
+
: 0;
|
|
97
|
+
const lineageBonus = input.preferLineageMemory ? lineageScore * policy.lineageWeight : 0;
|
|
98
|
+
const unrelatedCrossScopePenalty = input.preferLineageMemory && knowledge.scope_id !== input.scope.scope_id
|
|
99
|
+
? (1 - lineageScore) * policy.unrelatedLineagePenalty
|
|
100
|
+
: 0;
|
|
101
|
+
const provisionalPenalty = knowledge.knowledge_state === 'provisional' ? policy.provisionalPenalty : 0;
|
|
102
|
+
const finalScore = input.lexicalScore * policy.lexicalWeight +
|
|
103
|
+
input.semanticScore * policy.semanticWeight +
|
|
104
|
+
input.recencyScore * policy.recencyWeight +
|
|
105
|
+
input.importanceScore * policy.importanceWeight +
|
|
106
|
+
trustScore * policy.trustWeight +
|
|
107
|
+
classImportanceScore * policy.durabilityWeight +
|
|
108
|
+
evidenceDensityScore * policy.evidenceWeight +
|
|
109
|
+
objectiveLinkScore * policy.objectiveLinkWeight +
|
|
110
|
+
scopeRelationScore * policy.scopeRelationWeight +
|
|
111
|
+
localTrustedBonus +
|
|
112
|
+
lineageBonus -
|
|
113
|
+
unrelatedCrossScopePenalty -
|
|
114
|
+
knowledge.contradiction_score * policy.contradictionPenalty -
|
|
115
|
+
provisionalPenalty;
|
|
116
|
+
return {
|
|
117
|
+
finalScore,
|
|
118
|
+
trustScore,
|
|
119
|
+
classImportanceScore,
|
|
120
|
+
evidenceDensityScore,
|
|
121
|
+
objectiveLinkScore,
|
|
122
|
+
scopeRelationScore,
|
|
123
|
+
lineageScore,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export function matchesKnowledgeSearchOptions(knowledge, options) {
|
|
127
|
+
if (!options)
|
|
128
|
+
return true;
|
|
129
|
+
if (!options.includeProvisional && knowledge.knowledge_state === 'provisional') {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
if (!options.includeDisputed && knowledge.knowledge_state === 'disputed') {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
if (options.minimumTrustScore != null && knowledge.trust_score < options.minimumTrustScore) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
if (options.knowledgeStates && options.knowledgeStates.length > 0) {
|
|
139
|
+
if (!options.knowledgeStates.includes(knowledge.knowledge_state)) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (options.knowledgeClasses && options.knowledgeClasses.length > 0) {
|
|
144
|
+
if (!options.knowledgeClasses.includes(knowledge.knowledge_class)) {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=retrieval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieval.js","sourceRoot":"","sources":["../../src/core/retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { WorkItem } from '../contracts/types.js';
|
|
2
|
+
import { type FormatOptions, type SessionBootstrap } from './formatter.js';
|
|
3
|
+
import type { MemoryManager } from './manager.js';
|
|
4
|
+
import type { MemoryContext } from './context.js';
|
|
5
|
+
export interface RuntimeWorkItemSuggestion {
|
|
6
|
+
title: string;
|
|
7
|
+
kind?: WorkItem['kind'];
|
|
8
|
+
status?: WorkItem['status'];
|
|
9
|
+
detail?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface MemoryRuntimeOptions {
|
|
12
|
+
format?: FormatOptions;
|
|
13
|
+
inferWorkItems?: (input: {
|
|
14
|
+
userInput: string;
|
|
15
|
+
assistantOutput: string;
|
|
16
|
+
}) => RuntimeWorkItemSuggestion[] | Promise<RuntimeWorkItemSuggestion[]>;
|
|
17
|
+
}
|
|
18
|
+
export interface BeforeModelCallInput {
|
|
19
|
+
input: string;
|
|
20
|
+
relevanceQuery?: string;
|
|
21
|
+
format?: FormatOptions;
|
|
22
|
+
asOf?: number;
|
|
23
|
+
includeProvisionalKnowledge?: boolean;
|
|
24
|
+
includeDisputedKnowledge?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface BeforeModelCallResult {
|
|
27
|
+
bootstrap: SessionBootstrap;
|
|
28
|
+
context: MemoryContext;
|
|
29
|
+
bootstrapPrompt: string;
|
|
30
|
+
prompt: string;
|
|
31
|
+
messages: Array<{
|
|
32
|
+
role: 'system';
|
|
33
|
+
content: string;
|
|
34
|
+
}>;
|
|
35
|
+
}
|
|
36
|
+
export interface AfterModelCallInput {
|
|
37
|
+
userInput: string;
|
|
38
|
+
assistantOutput: string;
|
|
39
|
+
actors?: {
|
|
40
|
+
user?: string;
|
|
41
|
+
assistant?: string;
|
|
42
|
+
};
|
|
43
|
+
workItems?: RuntimeWorkItemSuggestion[];
|
|
44
|
+
}
|
|
45
|
+
export interface MemoryRuntime {
|
|
46
|
+
startSession(relevanceQuery?: string, format?: FormatOptions): Promise<{
|
|
47
|
+
bootstrap: SessionBootstrap;
|
|
48
|
+
bootstrapPrompt: string;
|
|
49
|
+
}>;
|
|
50
|
+
resumeSession(relevanceQuery?: string, format?: FormatOptions): Promise<{
|
|
51
|
+
bootstrap: SessionBootstrap;
|
|
52
|
+
bootstrapPrompt: string;
|
|
53
|
+
}>;
|
|
54
|
+
beforeModelCall(input: string | BeforeModelCallInput): Promise<BeforeModelCallResult>;
|
|
55
|
+
afterModelCall(input: AfterModelCallInput): Promise<{
|
|
56
|
+
exchange: Awaited<ReturnType<MemoryManager['processExchange']>>;
|
|
57
|
+
trackedWorkItems: WorkItem[];
|
|
58
|
+
}>;
|
|
59
|
+
wrapModelCall(modelCall: (payload: BeforeModelCallResult) => Promise<string>, input: string | BeforeModelCallInput, actors?: AfterModelCallInput['actors']): Promise<{
|
|
60
|
+
result: string;
|
|
61
|
+
runtime: BeforeModelCallResult;
|
|
62
|
+
exchange: Awaited<ReturnType<MemoryManager['processExchange']>>;
|
|
63
|
+
trackedWorkItems: WorkItem[];
|
|
64
|
+
}>;
|
|
65
|
+
}
|
|
66
|
+
export declare function createMemoryRuntime(manager: MemoryManager, options?: MemoryRuntimeOptions): MemoryRuntime;
|
|
67
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"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"}
|