ds4-context-core 0.1.2 → 0.2.0-beta.2

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.
Files changed (125) hide show
  1. package/README.md +20 -4
  2. package/dist/adapter/conformance.d.ts +35 -0
  3. package/dist/adapter/conformance.d.ts.map +1 -0
  4. package/dist/adapter/conformance.js +260 -0
  5. package/dist/adapter/conformance.js.map +1 -0
  6. package/dist/adapter/local-kv.d.ts +125 -0
  7. package/dist/adapter/local-kv.d.ts.map +1 -0
  8. package/dist/adapter/local-kv.js +276 -0
  9. package/dist/adapter/local-kv.js.map +1 -0
  10. package/dist/adapter/runtime-adapter.d.ts +124 -0
  11. package/dist/adapter/runtime-adapter.d.ts.map +1 -0
  12. package/dist/adapter/runtime-adapter.js +289 -0
  13. package/dist/adapter/runtime-adapter.js.map +1 -0
  14. package/dist/config/config-loader.d.ts +1 -0
  15. package/dist/config/config-loader.d.ts.map +1 -1
  16. package/dist/config/config-loader.js +110 -1
  17. package/dist/config/config-loader.js.map +1 -1
  18. package/dist/config/config.d.ts +50 -0
  19. package/dist/config/config.d.ts.map +1 -1
  20. package/dist/config/config.js +31 -0
  21. package/dist/config/config.js.map +1 -1
  22. package/dist/core/canonical-message.d.ts +2 -1
  23. package/dist/core/canonical-message.d.ts.map +1 -1
  24. package/dist/index.d.ts +13 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +13 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/manifest/context-manifest.d.ts +12 -0
  29. package/dist/manifest/context-manifest.d.ts.map +1 -1
  30. package/dist/memory/memory-manager.d.ts +7 -1
  31. package/dist/memory/memory-manager.d.ts.map +1 -1
  32. package/dist/memory/memory-manager.js +100 -3
  33. package/dist/memory/memory-manager.js.map +1 -1
  34. package/dist/memory/memory-types.d.ts +43 -0
  35. package/dist/memory/memory-types.d.ts.map +1 -1
  36. package/dist/memory/memory-types.js.map +1 -1
  37. package/dist/persistence/migrations.d.ts +2 -1
  38. package/dist/persistence/migrations.d.ts.map +1 -1
  39. package/dist/persistence/migrations.js +155 -25
  40. package/dist/persistence/migrations.js.map +1 -1
  41. package/dist/persistence/repositories/artifact-repository.d.ts +3 -1
  42. package/dist/persistence/repositories/artifact-repository.d.ts.map +1 -1
  43. package/dist/persistence/repositories/artifact-repository.js +16 -27
  44. package/dist/persistence/repositories/artifact-repository.js.map +1 -1
  45. package/dist/persistence/repositories/context-manifest-repository.d.ts +3 -1
  46. package/dist/persistence/repositories/context-manifest-repository.d.ts.map +1 -1
  47. package/dist/persistence/repositories/context-manifest-repository.js +10 -18
  48. package/dist/persistence/repositories/context-manifest-repository.js.map +1 -1
  49. package/dist/persistence/repositories/context-quality-repository.d.ts +21 -0
  50. package/dist/persistence/repositories/context-quality-repository.d.ts.map +1 -0
  51. package/dist/persistence/repositories/context-quality-repository.js +83 -0
  52. package/dist/persistence/repositories/context-quality-repository.js.map +1 -0
  53. package/dist/persistence/repositories/embedding-repository.d.ts +37 -0
  54. package/dist/persistence/repositories/embedding-repository.d.ts.map +1 -0
  55. package/dist/persistence/repositories/embedding-repository.js +142 -0
  56. package/dist/persistence/repositories/embedding-repository.js.map +1 -0
  57. package/dist/persistence/repositories/lease-repository.d.ts +22 -0
  58. package/dist/persistence/repositories/lease-repository.d.ts.map +1 -0
  59. package/dist/persistence/repositories/lease-repository.js +113 -0
  60. package/dist/persistence/repositories/lease-repository.js.map +1 -0
  61. package/dist/persistence/repositories/memory-repository.d.ts +34 -3
  62. package/dist/persistence/repositories/memory-repository.d.ts.map +1 -1
  63. package/dist/persistence/repositories/memory-repository.js +426 -64
  64. package/dist/persistence/repositories/memory-repository.js.map +1 -1
  65. package/dist/persistence/repositories/project-knowledge-repository.d.ts +28 -5
  66. package/dist/persistence/repositories/project-knowledge-repository.d.ts.map +1 -1
  67. package/dist/persistence/repositories/project-knowledge-repository.js +123 -53
  68. package/dist/persistence/repositories/project-knowledge-repository.js.map +1 -1
  69. package/dist/persistence/repositories/session-index-repository.d.ts +9 -1
  70. package/dist/persistence/repositories/session-index-repository.d.ts.map +1 -1
  71. package/dist/persistence/repositories/session-index-repository.js +38 -17
  72. package/dist/persistence/repositories/session-index-repository.js.map +1 -1
  73. package/dist/persistence/repositories/summary-repository.d.ts +3 -1
  74. package/dist/persistence/repositories/summary-repository.d.ts.map +1 -1
  75. package/dist/persistence/repositories/summary-repository.js +35 -31
  76. package/dist/persistence/repositories/summary-repository.js.map +1 -1
  77. package/dist/persistence/sqlite.d.ts +10 -0
  78. package/dist/persistence/sqlite.d.ts.map +1 -1
  79. package/dist/persistence/sqlite.js +41 -12
  80. package/dist/persistence/sqlite.js.map +1 -1
  81. package/dist/persistence/write-coordinator.d.ts +37 -0
  82. package/dist/persistence/write-coordinator.d.ts.map +1 -0
  83. package/dist/persistence/write-coordinator.js +120 -0
  84. package/dist/persistence/write-coordinator.js.map +1 -0
  85. package/dist/planner/context-planner.d.ts +5 -0
  86. package/dist/planner/context-planner.d.ts.map +1 -1
  87. package/dist/planner/context-planner.js +41 -62
  88. package/dist/planner/context-planner.js.map +1 -1
  89. package/dist/project/file-indexer.d.ts +5 -3
  90. package/dist/project/file-indexer.d.ts.map +1 -1
  91. package/dist/project/file-indexer.js +83 -38
  92. package/dist/project/file-indexer.js.map +1 -1
  93. package/dist/project/project-knowledge.d.ts +15 -3
  94. package/dist/project/project-knowledge.d.ts.map +1 -1
  95. package/dist/project/project-knowledge.js +168 -42
  96. package/dist/project/project-knowledge.js.map +1 -1
  97. package/dist/project/symbol-parser.d.ts +48 -0
  98. package/dist/project/symbol-parser.d.ts.map +1 -0
  99. package/dist/project/symbol-parser.js +427 -0
  100. package/dist/project/symbol-parser.js.map +1 -0
  101. package/dist/quality/context-quality.d.ts +172 -0
  102. package/dist/quality/context-quality.d.ts.map +1 -0
  103. package/dist/quality/context-quality.js +624 -0
  104. package/dist/quality/context-quality.js.map +1 -0
  105. package/dist/ranking/learned-ranker.d.ts +174 -0
  106. package/dist/ranking/learned-ranker.d.ts.map +1 -0
  107. package/dist/ranking/learned-ranker.js +782 -0
  108. package/dist/ranking/learned-ranker.js.map +1 -0
  109. package/dist/retrieval/embedding.d.ts +92 -0
  110. package/dist/retrieval/embedding.d.ts.map +1 -0
  111. package/dist/retrieval/embedding.js +56 -0
  112. package/dist/retrieval/embedding.js.map +1 -0
  113. package/dist/retrieval/retrieval-engine.d.ts +9 -1
  114. package/dist/retrieval/retrieval-engine.d.ts.map +1 -1
  115. package/dist/retrieval/retrieval-engine.js +105 -7
  116. package/dist/retrieval/retrieval-engine.js.map +1 -1
  117. package/dist/retrieval/semantic-index.d.ts +30 -0
  118. package/dist/retrieval/semantic-index.d.ts.map +1 -0
  119. package/dist/retrieval/semantic-index.js +284 -0
  120. package/dist/retrieval/semantic-index.js.map +1 -0
  121. package/dist/retrieval/semantic-quality.d.ts +52 -0
  122. package/dist/retrieval/semantic-quality.d.ts.map +1 -0
  123. package/dist/retrieval/semantic-quality.js +117 -0
  124. package/dist/retrieval/semantic-quality.js.map +1 -0
  125. package/package.json +1 -1
@@ -0,0 +1,289 @@
1
+ import { sha256 } from "../shared/hash.js";
2
+ export const RUNTIME_ADAPTER_CONTRACT_VERSION = "runtime-adapter-v1";
3
+ export const RUNTIME_HISTORY_SCHEMA_VERSION = "runtime-history-v1";
4
+ export const RUNTIME_CAPABILITY_IDS = [
5
+ "compaction",
6
+ "provider-continuation",
7
+ "embeddings",
8
+ "local-kv-reuse",
9
+ ];
10
+ function capabilityVersion(value) {
11
+ const normalized = value?.trim();
12
+ return normalized && /^[a-z0-9][a-z0-9._-]{0,63}$/iu.test(normalized) ? normalized : undefined;
13
+ }
14
+ function capabilityReason(value) {
15
+ const normalized = value?.replace(/\s+/gu, " ").trim();
16
+ return normalized ? normalized.slice(0, 240) : undefined;
17
+ }
18
+ export function negotiateRuntimeCapabilities(declarations, requested) {
19
+ const diagnostics = [];
20
+ const declarationMap = new Map();
21
+ const duplicateDeclarations = new Set();
22
+ for (const declaration of declarations) {
23
+ if (declarationMap.has(declaration.id))
24
+ duplicateDeclarations.add(declaration.id);
25
+ else
26
+ declarationMap.set(declaration.id, declaration);
27
+ }
28
+ const requestMap = new Map();
29
+ for (const request of requested) {
30
+ const previous = requestMap.get(request.id);
31
+ requestMap.set(request.id, {
32
+ id: request.id,
33
+ required: previous?.required === true || request.required === true,
34
+ });
35
+ }
36
+ const statuses = RUNTIME_CAPABILITY_IDS.map((id) => {
37
+ const request = requestMap.get(id);
38
+ const declared = declarationMap.get(id);
39
+ const version = capabilityVersion(declared?.version);
40
+ const declaredReason = capabilityReason(declared?.reason);
41
+ const duplicate = duplicateDeclarations.has(id);
42
+ const invalidSupportedDeclaration = declared?.supported === true && !version;
43
+ const invalidUnsupportedDeclaration = declared?.supported === false && !declaredReason;
44
+ const malformed = duplicate || invalidSupportedDeclaration || invalidUnsupportedDeclaration;
45
+ const supported = declared?.supported === true && !malformed;
46
+ const isRequested = request !== undefined;
47
+ const required = request?.required === true;
48
+ const enabled = isRequested && supported;
49
+ const reason = duplicate
50
+ ? "runtime adapter declared this capability more than once"
51
+ : invalidSupportedDeclaration
52
+ ? "supported capability has a missing or invalid version"
53
+ : invalidUnsupportedDeclaration
54
+ ? "unsupported capability is missing a reason"
55
+ : declaredReason ?? "runtime adapter did not declare this capability";
56
+ if (isRequested && !supported) {
57
+ diagnostics.push({
58
+ code: malformed ? "capability-declaration-invalid" : "capability-unsupported",
59
+ severity: required ? "warning" : "info",
60
+ capability: id,
61
+ message: required
62
+ ? `Required runtime capability ${id} is disabled: ${reason}`
63
+ : `Optional runtime capability ${id} is disabled: ${reason}`,
64
+ });
65
+ }
66
+ return {
67
+ id,
68
+ supported,
69
+ requested: isRequested,
70
+ required,
71
+ enabled,
72
+ ...(version ? { version } : {}),
73
+ ...(!supported ? { reason } : declaredReason ? { reason: declaredReason } : {}),
74
+ };
75
+ });
76
+ return {
77
+ contractVersion: RUNTIME_ADAPTER_CONTRACT_VERSION,
78
+ statuses,
79
+ enabled: statuses.filter((status) => status.enabled).map((status) => status.id),
80
+ disabled: statuses.filter((status) => status.requested && !status.enabled).map((status) => status.id),
81
+ diagnostics,
82
+ };
83
+ }
84
+ function canonicalToolRelations(messages) {
85
+ const calls = new Map();
86
+ const results = new Map();
87
+ const toolMessageIndices = new Set();
88
+ const append = (target, id, index) => {
89
+ const indices = target.get(id) ?? [];
90
+ indices.push(index);
91
+ target.set(id, indices);
92
+ };
93
+ messages.forEach((message, index) => {
94
+ for (const block of message.blocks) {
95
+ if (block.type === "toolCall") {
96
+ append(calls, block.id, index);
97
+ toolMessageIndices.add(index);
98
+ }
99
+ else if (block.type === "toolResult") {
100
+ append(results, block.toolCallId, index);
101
+ toolMessageIndices.add(index);
102
+ }
103
+ }
104
+ });
105
+ return { calls, results, toolMessageIndices };
106
+ }
107
+ export function buildCanonicalToolAtomicGroups(messages) {
108
+ const relations = canonicalToolRelations(messages);
109
+ if (relations.toolMessageIndices.size === 0)
110
+ return [];
111
+ const parents = messages.map((_, index) => index);
112
+ const find = (value) => {
113
+ let root = value;
114
+ while (parents[root] !== root)
115
+ root = parents[root] ?? root;
116
+ while (parents[value] !== value) {
117
+ const parent = parents[value] ?? value;
118
+ parents[value] = root;
119
+ value = parent;
120
+ }
121
+ return root;
122
+ };
123
+ const union = (left, right) => {
124
+ const leftRoot = find(left);
125
+ const rightRoot = find(right);
126
+ if (leftRoot !== rightRoot)
127
+ parents[Math.max(leftRoot, rightRoot)] = Math.min(leftRoot, rightRoot);
128
+ };
129
+ for (const [toolCallId, callIndices] of relations.calls) {
130
+ const related = [...callIndices, ...(relations.results.get(toolCallId) ?? [])];
131
+ const first = related[0];
132
+ if (first === undefined)
133
+ continue;
134
+ for (const index of related.slice(1))
135
+ union(first, index);
136
+ }
137
+ const components = new Map();
138
+ for (const index of relations.toolMessageIndices) {
139
+ const root = find(index);
140
+ const indices = components.get(root) ?? [];
141
+ indices.push(index);
142
+ components.set(root, indices);
143
+ }
144
+ return [...components.values()]
145
+ .map((indices) => {
146
+ const sortedIndices = [...indices].sort((left, right) => left - right);
147
+ const selected = new Set(sortedIndices);
148
+ const toolCallIds = [...new Set([
149
+ ...[...relations.calls].filter(([, values]) => values.some((index) => selected.has(index))).map(([id]) => id),
150
+ ...[...relations.results].filter(([, values]) => values.some((index) => selected.has(index))).map(([id]) => id),
151
+ ])].sort();
152
+ const complete = toolCallIds.every((id) => {
153
+ const calls = relations.calls.get(id) ?? [];
154
+ const results = relations.results.get(id) ?? [];
155
+ return calls.length === 1
156
+ && results.length > 0
157
+ && calls.every((index) => selected.has(index))
158
+ && results.every((index) => selected.has(index));
159
+ });
160
+ const messageIds = sortedIndices.map((index) => messages[index]?.id ?? "");
161
+ return {
162
+ id: `runtime-tool-group:${sha256(messageIds.join("\0")).slice(0, 16)}`,
163
+ messageIds,
164
+ toolCallIds,
165
+ complete,
166
+ };
167
+ })
168
+ .sort((left, right) => left.messageIds[0]?.localeCompare(right.messageIds[0] ?? "") ?? 0);
169
+ }
170
+ export function validateRuntimeHistorySnapshot(snapshot) {
171
+ const issues = [];
172
+ if (snapshot.schemaVersion !== RUNTIME_HISTORY_SCHEMA_VERSION) {
173
+ issues.push({ code: "history-schema-incompatible", message: "History schema version is incompatible" });
174
+ }
175
+ if (!snapshot.runtimeId.trim() || !snapshot.sessionId.trim() || !snapshot.revision.trim()) {
176
+ issues.push({ code: "history-identity-invalid", message: "History identity fields must be non-empty" });
177
+ }
178
+ if (!snapshot.projectRoot.trim()) {
179
+ issues.push({ code: "trusted-project-root-missing", message: "Trusted project root must be non-empty" });
180
+ }
181
+ const messageIds = new Set();
182
+ for (const message of snapshot.messages) {
183
+ if (!message.id.trim() || messageIds.has(message.id)) {
184
+ issues.push({
185
+ code: messageIds.has(message.id) ? "history-message-id-duplicate" : "history-message-id-missing",
186
+ message: "Canonical message IDs must be non-empty and unique",
187
+ ...(message.id ? { messageId: message.id } : {}),
188
+ });
189
+ }
190
+ messageIds.add(message.id);
191
+ const runtimeProvenanceMismatch = message.provenance.source === "runtime-session"
192
+ && message.provenance.runtimeId !== snapshot.runtimeId;
193
+ if (message.provenance.sessionId !== snapshot.sessionId
194
+ || !message.provenance.entryId.trim()
195
+ || message.sourceEntryId !== message.provenance.entryId
196
+ || runtimeProvenanceMismatch) {
197
+ issues.push({
198
+ code: "history-provenance-invalid",
199
+ message: "Canonical message provenance does not match the snapshot",
200
+ messageId: message.id,
201
+ });
202
+ }
203
+ }
204
+ const relations = canonicalToolRelations(snapshot.messages);
205
+ for (const [toolCallId, callIndices] of relations.calls) {
206
+ if (!toolCallId.trim() || callIndices.length !== 1) {
207
+ issues.push({
208
+ code: "tool-call-identity-invalid",
209
+ message: "Canonical tool call IDs must be non-empty and unique",
210
+ ...(toolCallId ? { toolCallId } : {}),
211
+ });
212
+ }
213
+ }
214
+ for (const toolCallId of relations.results.keys()) {
215
+ if (!toolCallId.trim() || !relations.calls.has(toolCallId)) {
216
+ issues.push({
217
+ code: "tool-result-orphaned",
218
+ message: "Canonical tool results must reference one known tool call",
219
+ ...(toolCallId ? { toolCallId } : {}),
220
+ });
221
+ }
222
+ }
223
+ const expectedGroups = buildCanonicalToolAtomicGroups(snapshot.messages);
224
+ const expectedByTool = new Map();
225
+ for (const group of expectedGroups) {
226
+ for (const toolCallId of group.toolCallIds)
227
+ expectedByTool.set(toolCallId, group);
228
+ }
229
+ const actualByTool = new Map();
230
+ const groupedMessages = new Set();
231
+ for (const group of snapshot.toolAtomicGroups) {
232
+ if (!group.id.trim() || group.messageIds.length === 0 || group.toolCallIds.length === 0) {
233
+ issues.push({ code: "tool-atomic-group-invalid", message: "Tool atomic groups must have stable IDs and members" });
234
+ }
235
+ for (const messageId of group.messageIds) {
236
+ if (!messageIds.has(messageId) || groupedMessages.has(messageId)) {
237
+ issues.push({
238
+ code: !messageIds.has(messageId) ? "tool-atomic-message-missing" : "tool-atomic-message-overlap",
239
+ message: "Tool atomic group message membership is invalid",
240
+ messageId,
241
+ });
242
+ }
243
+ groupedMessages.add(messageId);
244
+ }
245
+ for (const toolCallId of group.toolCallIds) {
246
+ if (actualByTool.has(toolCallId)) {
247
+ issues.push({
248
+ code: "tool-atomic-call-overlap",
249
+ message: "A tool call belongs to more than one atomic group",
250
+ toolCallId,
251
+ });
252
+ }
253
+ actualByTool.set(toolCallId, group);
254
+ }
255
+ }
256
+ for (const expected of expectedGroups) {
257
+ for (const toolCallId of expected.toolCallIds) {
258
+ const actual = actualByTool.get(toolCallId);
259
+ if (!actual) {
260
+ issues.push({
261
+ code: "tool-atomic-group-missing",
262
+ message: "A canonical tool exchange has no atomic group",
263
+ toolCallId,
264
+ });
265
+ continue;
266
+ }
267
+ const expectedMessages = [...expected.messageIds].sort().join("\0");
268
+ const actualMessages = [...actual.messageIds].sort().join("\0");
269
+ if (expectedMessages !== actualMessages || actual.complete !== expected.complete) {
270
+ issues.push({
271
+ code: "tool-atomic-group-mismatch",
272
+ message: "Tool atomic group does not match canonical call/result relations",
273
+ toolCallId,
274
+ });
275
+ }
276
+ }
277
+ }
278
+ for (const toolCallId of actualByTool.keys()) {
279
+ if (!expectedByTool.has(toolCallId)) {
280
+ issues.push({
281
+ code: "tool-atomic-call-unknown",
282
+ message: "Tool atomic group references an unknown tool call",
283
+ toolCallId,
284
+ });
285
+ }
286
+ }
287
+ return issues;
288
+ }
289
+ //# sourceMappingURL=runtime-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-adapter.js","sourceRoot":"","sources":["../../src/adapter/runtime-adapter.ts"],"names":[],"mappings":"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"}
@@ -15,4 +15,5 @@ export interface LoadedConfig {
15
15
  }
16
16
  export declare function loadConfig(options: LoadConfigOptions): LoadedConfig;
17
17
  export declare function resolveDatabasePath(configuredPath: string, agentDir: string, homeDir?: string): string;
18
+ export declare function resolveRankingModelPath(configuredPath: string, agentDir: string, homeDir?: string): string;
18
19
  //# sourceMappingURL=config-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA+RD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAoBnE;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAY,GAClB,MAAM,CAQR"}
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsYD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAoBnE;AAgBD,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAY,GAClB,MAAM,CAER;AAED,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAY,GAClB,MAAM,CAER"}
@@ -82,6 +82,54 @@ function validateConfig(config) {
82
82
  if (!Number.isInteger(config.retrieval.maxResults) || config.retrieval.maxResults <= 0 || config.retrieval.maxResults > 100) {
83
83
  throw new Error("retrieval.maxResults must be a positive integer at most 100");
84
84
  }
85
+ const embedding = config.retrieval.embedding;
86
+ if (embedding.mode !== "local" && embedding.mode !== "remote") {
87
+ throw new Error("retrieval.embedding.mode must be local or remote");
88
+ }
89
+ if (!embedding.provider.trim() || !embedding.model.trim()
90
+ || embedding.provider.trim() !== embedding.provider
91
+ || embedding.model.trim() !== embedding.model
92
+ || /[\s/]/u.test(embedding.provider)
93
+ || /\s/u.test(embedding.model)) {
94
+ throw new Error("retrieval.embedding provider/model must be trimmed non-empty identifiers");
95
+ }
96
+ const boundedEmbeddingIntegers = [
97
+ ["retrieval.embedding.dimensions", embedding.dimensions, 16, 4_096],
98
+ ["retrieval.embedding.maxSources", embedding.maxSources, 1, 100_000],
99
+ ["retrieval.embedding.candidatePool", embedding.candidatePool, 1, 500],
100
+ ["retrieval.embedding.batchSize", embedding.batchSize, 1, 512],
101
+ ["retrieval.embedding.queryCacheSize", embedding.queryCacheSize, 1, 1_000],
102
+ ["retrieval.embedding.timeoutMs", embedding.timeoutMs, 1, 120_000],
103
+ ];
104
+ for (const [name, value, minimum, maximum] of boundedEmbeddingIntegers) {
105
+ if (!Number.isInteger(value) || value < minimum || value > maximum) {
106
+ throw new Error(`${name} must be an integer between ${minimum} and ${maximum}`);
107
+ }
108
+ }
109
+ if (!Array.isArray(embedding.remoteProfiles)) {
110
+ throw new Error("retrieval.embedding.remoteProfiles must be an array");
111
+ }
112
+ const remoteProfiles = new Set();
113
+ for (const profile of embedding.remoteProfiles) {
114
+ if (typeof profile !== "string" || profile.trim() !== profile || /\s/u.test(profile)) {
115
+ throw new Error("retrieval.embedding.remoteProfiles must contain trimmed provider/model profiles");
116
+ }
117
+ const separator = profile.indexOf("/");
118
+ if (separator <= 0 || separator === profile.length - 1 || profile.includes("*")) {
119
+ throw new Error(`retrieval embedding profile ${profile} must be an exact provider/model`);
120
+ }
121
+ if (remoteProfiles.has(profile)) {
122
+ throw new Error("retrieval.embedding.remoteProfiles must not contain duplicates");
123
+ }
124
+ remoteProfiles.add(profile);
125
+ }
126
+ if (embedding.mode === "remote"
127
+ && !remoteProfiles.has(`${embedding.provider}/${embedding.model}`)) {
128
+ throw new Error("remote embedding requires exact provider/model consent in retrieval.embedding.remoteProfiles");
129
+ }
130
+ if (embedding.mode === "remote" && !config.privacy.enabled) {
131
+ throw new Error("remote embedding requires privacy.enabled for filtering");
132
+ }
85
133
  const positiveProjectIntegers = [
86
134
  ["project.maxFiles", config.project.maxFiles, 100_000],
87
135
  ["project.snippetLines", config.project.snippetLines, 500],
@@ -97,6 +145,14 @@ function validateConfig(config) {
97
145
  || config.project.snippetOverlapLines >= config.project.snippetLines) {
98
146
  throw new Error("project.snippetOverlapLines must be a non-negative integer below project.snippetLines");
99
147
  }
148
+ if (typeof config.memory.crossSession !== "boolean") {
149
+ throw new Error("memory.crossSession must be boolean");
150
+ }
151
+ if (!Number.isInteger(config.memory.maxProjectSessions)
152
+ || config.memory.maxProjectSessions < 1
153
+ || config.memory.maxProjectSessions > 10_000) {
154
+ throw new Error("memory.maxProjectSessions must be an integer between 1 and 10000");
155
+ }
100
156
  if (config.memory.maxPinChars < 1 || config.memory.maxPinChars > 20_000) {
101
157
  throw new Error("memory.maxPinChars must be between 1 and 20000");
102
158
  }
@@ -247,12 +303,59 @@ function validateConfig(config) {
247
303
  || config.nativeContinuation.maxStateAgeMs > 86_400_000) {
248
304
  throw new Error("nativeContinuation.maxStateAgeMs must be an integer between 10000 and 86400000");
249
305
  }
306
+ if (typeof config.localKvReuse.enabled !== "boolean") {
307
+ throw new Error("localKvReuse.enabled must be boolean");
308
+ }
309
+ if (typeof config.quality.enabled !== "boolean") {
310
+ throw new Error("quality.enabled must be boolean");
311
+ }
312
+ if (!Number.isInteger(config.quality.maxSamples)
313
+ || config.quality.maxSamples < 1
314
+ || config.quality.maxSamples > 100_000) {
315
+ throw new Error("quality.maxSamples must be an integer between 1 and 100000");
316
+ }
317
+ if (!["off", "shadow", "active"].includes(config.ranking.mode)) {
318
+ throw new Error("ranking.mode must be off, shadow, or active");
319
+ }
320
+ if (config.ranking.modelPath.trim().length === 0) {
321
+ throw new Error("ranking.modelPath must not be empty");
322
+ }
323
+ if (!Number.isSafeInteger(config.ranking.minimumTrainingSamples)
324
+ || config.ranking.minimumTrainingSamples < 2
325
+ || config.ranking.minimumTrainingSamples > 100_000) {
326
+ throw new Error("ranking.minimumTrainingSamples must be an integer between 2 and 100000");
327
+ }
328
+ if (!Number.isSafeInteger(config.ranking.maxTrainingSamples)
329
+ || config.ranking.maxTrainingSamples < config.ranking.minimumTrainingSamples
330
+ || config.ranking.maxTrainingSamples > 1_000_000) {
331
+ throw new Error("ranking.maxTrainingSamples must be an integer between minimumTrainingSamples and 1000000");
332
+ }
333
+ if (!Number.isFinite(config.ranking.maxLatencyMs)
334
+ || config.ranking.maxLatencyMs <= 0
335
+ || config.ranking.maxLatencyMs > 1_000) {
336
+ throw new Error("ranking.maxLatencyMs must be greater than 0 and at most 1000");
337
+ }
250
338
  if (!["error", "warn", "info", "debug", "trace"].includes(config.diagnostics.logLevel)) {
251
339
  throw new Error("diagnostics.logLevel is invalid");
252
340
  }
253
341
  if (config.storage.databasePath.trim().length === 0) {
254
342
  throw new Error("storage.databasePath must not be empty");
255
343
  }
344
+ if (!Number.isSafeInteger(config.storage.busyTimeoutMs)
345
+ || config.storage.busyTimeoutMs < 1
346
+ || config.storage.busyTimeoutMs > 60_000) {
347
+ throw new Error("storage.busyTimeoutMs must be an integer between 1 and 60000");
348
+ }
349
+ if (!Number.isSafeInteger(config.storage.writeRetryTimeoutMs)
350
+ || config.storage.writeRetryTimeoutMs < config.storage.busyTimeoutMs
351
+ || config.storage.writeRetryTimeoutMs > 300_000) {
352
+ throw new Error("storage.writeRetryTimeoutMs must be an integer between busyTimeoutMs and 300000");
353
+ }
354
+ if (!Number.isSafeInteger(config.storage.projectIndexLeaseMs)
355
+ || config.storage.projectIndexLeaseMs < 10_000
356
+ || config.storage.projectIndexLeaseMs > 3_600_000) {
357
+ throw new Error("storage.projectIndexLeaseMs must be an integer between 10000 and 3600000");
358
+ }
256
359
  }
257
360
  function applyConfigFile(path, base, warnings) {
258
361
  if (!existsSync(path))
@@ -294,7 +397,7 @@ export function loadConfig(options) {
294
397
  }
295
398
  return { config, globalPath, projectPath, loadedFiles, warnings };
296
399
  }
297
- export function resolveDatabasePath(configuredPath, agentDir, homeDir = homedir()) {
400
+ function resolveAgentPath(configuredPath, agentDir, homeDir = homedir()) {
298
401
  const expanded = configuredPath === "~"
299
402
  ? homeDir
300
403
  : configuredPath.startsWith("~/")
@@ -302,4 +405,10 @@ export function resolveDatabasePath(configuredPath, agentDir, homeDir = homedir(
302
405
  : configuredPath;
303
406
  return isAbsolute(expanded) ? resolve(expanded) : resolve(agentDir, expanded);
304
407
  }
408
+ export function resolveDatabasePath(configuredPath, agentDir, homeDir = homedir()) {
409
+ return resolveAgentPath(configuredPath, agentDir, homeDir);
410
+ }
411
+ export function resolveRankingModelPath(configuredPath, agentDir, homeDir = homedir()) {
412
+ return resolveAgentPath(configuredPath, agentDir, homeDir);
413
+ }
305
414
  //# sourceMappingURL=config-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
@@ -21,11 +21,26 @@ export interface CompactionConfig {
21
21
  segmentTargetTokens: number;
22
22
  preserveRecentVerbatim: boolean;
23
23
  }
24
+ export interface EmbeddingConfig {
25
+ /** Local is the supported default; remote requires an exact consent profile. */
26
+ mode: "local" | "remote";
27
+ provider: string;
28
+ model: string;
29
+ dimensions: number;
30
+ remoteProfiles: string[];
31
+ maxSources: number;
32
+ candidatePool: number;
33
+ batchSize: number;
34
+ queryCacheSize: number;
35
+ timeoutMs: number;
36
+ }
24
37
  export interface RetrievalConfig {
25
38
  exact: boolean;
26
39
  fts: boolean;
40
+ /** Opt-in hybrid vector candidate generation. */
27
41
  semantic: boolean;
28
42
  maxResults: number;
43
+ embedding: EmbeddingConfig;
29
44
  }
30
45
  export interface ProjectKnowledgeConfig {
31
46
  enabled: boolean;
@@ -38,6 +53,10 @@ export interface ProjectKnowledgeConfig {
38
53
  }
39
54
  export interface MemoryConfig {
40
55
  enabled: boolean;
56
+ /** Opt-in replay of project-scoped mutations from sibling Pi sessions. */
57
+ crossSession: boolean;
58
+ /** Bounded number of canonical project session files inspected per refresh. */
59
+ maxProjectSessions: number;
41
60
  maxPinChars: number;
42
61
  maxClaimChars: number;
43
62
  maxResults: number;
@@ -85,6 +104,28 @@ export interface NativeContinuationConfig {
85
104
  maxStateAgeMs: number;
86
105
  retryManagedReplay: boolean;
87
106
  }
107
+ export interface LocalKvReuseConfig {
108
+ /** Opt-in; also requires an enabled runtime `local-kv-reuse` capability. */
109
+ enabled: boolean;
110
+ }
111
+ export interface QualityConfig {
112
+ /** Opt-in metadata-only quality sampling. */
113
+ enabled: boolean;
114
+ /** Bounded number of disposable samples retained in SQLite. */
115
+ maxSamples: number;
116
+ }
117
+ export interface RankingConfig {
118
+ /** Off preserves the static ranker; shadow compares only; active requires a promoted model. */
119
+ mode: "off" | "shadow" | "active";
120
+ /** Absolute, `~`-relative, or relative to Pi's agent directory. */
121
+ modelPath: string;
122
+ /** Minimum unique classified labels required for local training. */
123
+ minimumTrainingSamples: number;
124
+ /** Maximum canonical feedback entries inspected during one training run. */
125
+ maxTrainingSamples: number;
126
+ /** Promotion-gate p95 budget for learned inference inside planning. */
127
+ maxLatencyMs: number;
128
+ }
88
129
  export interface DiagnosticsConfig {
89
130
  storeContextManifest: boolean;
90
131
  storeFullRenderedContext: boolean;
@@ -93,6 +134,12 @@ export interface DiagnosticsConfig {
93
134
  export interface StorageConfig {
94
135
  /** Absolute, `~`-relative, or relative to Pi's agent directory. */
95
136
  databasePath: string;
137
+ /** Per-attempt SQLite lock wait. */
138
+ busyTimeoutMs: number;
139
+ /** Total bounded retry window for replayable writes. */
140
+ writeRetryTimeoutMs: number;
141
+ /** Renewable cross-process lease duration for one project indexer. */
142
+ projectIndexLeaseMs: number;
96
143
  }
97
144
  export interface Ds4ContextConfig {
98
145
  enabled: boolean;
@@ -105,6 +152,9 @@ export interface Ds4ContextConfig {
105
152
  privacy: PrivacyConfig;
106
153
  modelAwareness: ModelAwarenessConfig;
107
154
  nativeContinuation: NativeContinuationConfig;
155
+ localKvReuse: LocalKvReuseConfig;
156
+ quality: QualityConfig;
157
+ ranking: RankingConfig;
108
158
  diagnostics: DiagnosticsConfig;
109
159
  storage: StorageConfig;
110
160
  }