@askdkc/kiokuko 0.1.29 → 0.1.31

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.
@@ -1,100 +1,367 @@
1
+ import { readRunIntakeLink } from '../akinator/store.js';
1
2
  import { KiokukoError } from '../errors.js';
2
- import { readEntryRevision } from '../memory/revisions.js';
3
- import { readContextDelivery, } from './delivery.js';
4
- const LEGACY_SCOPED_POLICY_VERSIONS = ['context-ranking-v2', 'context-ranking-v3'];
5
- const MAX_DELIVERIES = 100_000;
6
- function migrationIntegrity() {
7
- throw new KiokukoError('INTEGRITY_ERROR', 'Stored context delivery cannot be migrated safely');
3
+ import { canonicalJson } from '../serialization/validate.js';
4
+ import { CONTEXT_RANKING_COMPONENTS_V2, CONTEXT_SELECTION_REASON_ORDER, } from './ranking.js';
5
+ import { entryOriginMatchesWorkspace, isContextEntryOrigin, } from './origin.js';
6
+ import { legacyScopedDeliveryId, readContextDelivery, } from './delivery.js';
7
+ export const LEGACY_SCOPED_POLICY_VERSIONS = ['context-ranking-v2', 'context-ranking-v3'];
8
+ export const MAX_DELIVERIES = 100_000;
9
+ export const MAX_FINDINGS = 100;
10
+ export const LEGACY_DELIVERY_INSPECTION_STAGES = [
11
+ 'legacy-delivery-row',
12
+ 'legacy-delivery-read',
13
+ 'legacy-delivery-policy',
14
+ 'legacy-delivery-identity',
15
+ 'legacy-delivery-run-binding',
16
+ 'legacy-delivery-profile-binding',
17
+ 'legacy-delivery-entry-revision',
18
+ 'legacy-delivery-entry-rank',
19
+ 'legacy-delivery-entry-score',
20
+ 'legacy-delivery-entry-reasons',
21
+ 'legacy-delivery-entry-origin',
22
+ 'legacy-delivery-character-range',
23
+ ];
24
+ const MAX_IDENTIFIER_BYTES = 256;
25
+ const MAX_ITEMS = 100;
26
+ const MAX_SCORE_COMPONENT = 1_000_000;
27
+ const MAX_CHAR_BUDGET = 100_000;
28
+ const MAX_STORED_JSON_BYTES = 1_000_000;
29
+ function safeIdentifier(value) {
30
+ return typeof value === 'string'
31
+ && value.length > 0
32
+ && !/[\p{C}]/u.test(value)
33
+ && Buffer.byteLength(value, 'utf8') <= MAX_IDENTIFIER_BYTES;
34
+ }
35
+ function safePolicyVersion(value) {
36
+ return safeIdentifier(value);
37
+ }
38
+ function safeDiagnosticString(value) {
39
+ return safeIdentifier(value) ? value : undefined;
40
+ }
41
+ function safeInteger(value, minimum = 0) {
42
+ return typeof value === 'number' && Number.isSafeInteger(value) && value >= minimum;
43
+ }
44
+ function safeHash(value) {
45
+ return typeof value === 'string' && /^[0-9a-f]{64}$/u.test(value);
46
+ }
47
+ function safeStoredJson(value) {
48
+ if (typeof value !== 'string' || Buffer.byteLength(value, 'utf8') > MAX_STORED_JSON_BYTES)
49
+ return undefined;
50
+ try {
51
+ const parsed = JSON.parse(value);
52
+ return canonicalJson(parsed) === value ? parsed : undefined;
53
+ }
54
+ catch {
55
+ return undefined;
56
+ }
57
+ }
58
+ function isPlainObject(value) {
59
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
60
+ return false;
61
+ const prototype = Object.getPrototypeOf(value);
62
+ return prototype === Object.prototype || prototype === null;
63
+ }
64
+ function validStoredScore(value) {
65
+ const parsed = safeStoredJson(value);
66
+ if (!isPlainObject(parsed))
67
+ return false;
68
+ const keys = Object.keys(parsed);
69
+ if (keys.length !== CONTEXT_RANKING_COMPONENTS_V2.length
70
+ || CONTEXT_RANKING_COMPONENTS_V2.some((component) => !Object.hasOwn(parsed, component)))
71
+ return false;
72
+ return CONTEXT_RANKING_COMPONENTS_V2.every((component) => {
73
+ const score = parsed[component];
74
+ return typeof score === 'number'
75
+ && Number.isSafeInteger(score)
76
+ && Number.isFinite(score)
77
+ && score >= -MAX_SCORE_COMPONENT
78
+ && score <= MAX_SCORE_COMPONENT;
79
+ });
80
+ }
81
+ function validStoredReasons(value) {
82
+ const parsed = safeStoredJson(value);
83
+ if (!Array.isArray(parsed) || parsed.length === 0)
84
+ return false;
85
+ let previousIndex = -1;
86
+ for (const reason of parsed) {
87
+ if (typeof reason !== 'string')
88
+ return false;
89
+ const index = CONTEXT_SELECTION_REASON_ORDER.indexOf(reason);
90
+ if (index < 0 || index <= previousIndex)
91
+ return false;
92
+ previousIndex = index;
93
+ }
94
+ return true;
95
+ }
96
+ function migrationIntegrity(metadata, stage, causeCode = 'INTEGRITY_ERROR') {
97
+ const details = { stage, causeCode };
98
+ if (metadata.deliveryId !== undefined)
99
+ details.deliveryId = metadata.deliveryId;
100
+ if (metadata.runId !== undefined)
101
+ details.runId = metadata.runId;
102
+ if (metadata.policyVersion !== undefined)
103
+ details.policyVersion = metadata.policyVersion;
104
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored legacy context delivery is invalid', details);
105
+ }
106
+ function errorCode(error) {
107
+ if (!(error instanceof KiokukoError))
108
+ return 'INTEGRITY_ERROR';
109
+ return safeDiagnosticString(error.details.causeCode) ?? error.code;
110
+ }
111
+ function metadataFromRow(row) {
112
+ return {
113
+ ...(safeDiagnosticString(row.delivery_id) === undefined ? {} : { deliveryId: row.delivery_id }),
114
+ ...(safeDiagnosticString(row.run_id) === undefined ? {} : { runId: row.run_id }),
115
+ ...(safePolicyVersion(row.policy_version) === undefined ? {} : { policyVersion: row.policy_version }),
116
+ };
117
+ }
118
+ function metadataFromHeader(header) {
119
+ return {
120
+ ...(safeDiagnosticString(header.delivery_id) === undefined ? {} : { deliveryId: header.delivery_id }),
121
+ ...(safeDiagnosticString(header.run_id) === undefined ? {} : { runId: header.run_id }),
122
+ ...(safePolicyVersion(header.policy_version) === undefined ? {} : { policyVersion: header.policy_version }),
123
+ };
8
124
  }
9
125
  function deliveryRows(database) {
10
126
  const placeholders = LEGACY_SCOPED_POLICY_VERSIONS.map(() => '?').join(', ');
11
127
  const rows = database.prepare(`
12
- SELECT cd.delivery_id, lr.workspace AS run_workspace
128
+ SELECT cd.delivery_id, cd.run_id, cd.policy_version, cd.score_schema_version,
129
+ lr.workspace AS run_workspace
13
130
  FROM context_deliveries AS cd
14
131
  LEFT JOIN ledger_runs AS lr ON lr.run_id = cd.run_id
15
- WHERE cd.score_schema_version = 2
16
- AND cd.policy_version IN (${placeholders})
132
+ WHERE cd.policy_version IN (${placeholders})
17
133
  ORDER BY cd.delivery_id ASC
18
134
  LIMIT ?
19
135
  `).all(...LEGACY_SCOPED_POLICY_VERSIONS, MAX_DELIVERIES + 1);
20
- if (rows.length > MAX_DELIVERIES)
21
- migrationIntegrity();
22
- return rows;
136
+ return {
137
+ rows: rows.slice(0, MAX_DELIVERIES),
138
+ scanTruncated: rows.length > MAX_DELIVERIES,
139
+ };
23
140
  }
24
- function readLegacyDelivery(database, row) {
25
- if (typeof row.delivery_id !== 'string' || row.delivery_id.length === 0
26
- || typeof row.run_workspace !== 'string' || row.run_workspace.length === 0)
27
- migrationIntegrity();
141
+ function selectLegacyDeliveryHeader(database, deliveryId) {
142
+ return database.prepare(`
143
+ SELECT cd.delivery_id, cd.run_id, cd.through_sequence, cd.intake_session_id,
144
+ cd.task_profile_hash, cd.query_hash, cd.policy_version,
145
+ cd.char_budget, cd.char_count, cd.truncated, cd.created_at,
146
+ cd.score_schema_version, lr.workspace AS run_workspace,
147
+ lr.last_sequence AS run_last_sequence
148
+ FROM context_deliveries AS cd
149
+ LEFT JOIN ledger_runs AS lr ON lr.run_id = cd.run_id
150
+ WHERE cd.delivery_id = ?
151
+ `).get(deliveryId);
152
+ }
153
+ function selectLegacyDeliveryEntries(database, deliveryId) {
154
+ return database.prepare(`
155
+ SELECT cde.delivery_id, cde.entry_id, cde.entry_revision, cde.rank,
156
+ cde.score_components_json, cde.selection_reason_json, cde.origin_scope,
157
+ e.workspace AS entry_workspace, r.entry_id AS revision_entry_id,
158
+ r.workspace AS revision_workspace
159
+ FROM context_delivery_entries AS cde
160
+ LEFT JOIN entry_revisions AS r
161
+ ON r.entry_id = cde.entry_id AND r.revision = cde.entry_revision
162
+ LEFT JOIN entries AS e ON e.id = cde.entry_id
163
+ WHERE cde.delivery_id = ?
164
+ ORDER BY cde.rank ASC, cde.entry_id ASC
165
+ `).all(deliveryId);
166
+ }
167
+ function headerStage(row, header) {
168
+ if (!safeIdentifier(header.delivery_id)
169
+ || !safeIdentifier(header.run_id)
170
+ || !safeIdentifier(header.run_workspace)
171
+ || header.delivery_id !== row.delivery_id
172
+ || header.run_id !== row.run_id
173
+ || header.run_workspace !== row.run_workspace)
174
+ return 'legacy-delivery-run-binding';
175
+ if (!LEGACY_SCOPED_POLICY_VERSIONS.includes(header.policy_version)
176
+ || header.score_schema_version !== 2)
177
+ return 'legacy-delivery-policy';
178
+ if (!safeInteger(header.run_last_sequence)
179
+ || !safeInteger(header.through_sequence)
180
+ || header.through_sequence > header.run_last_sequence)
181
+ return 'legacy-delivery-run-binding';
182
+ if (!safeHash(header.task_profile_hash) || !safeHash(header.query_hash))
183
+ return 'legacy-delivery-row';
184
+ if (header.intake_session_id !== null && !safeIdentifier(header.intake_session_id))
185
+ return 'legacy-delivery-profile-binding';
186
+ if (!safeInteger(header.char_budget, 1) || header.char_budget > MAX_CHAR_BUDGET
187
+ || !safeInteger(header.char_count) || header.char_count > header.char_budget) {
188
+ return 'legacy-delivery-character-range';
189
+ }
190
+ if (header.truncated !== 0 && header.truncated !== 1)
191
+ return 'legacy-delivery-row';
192
+ if (typeof header.created_at !== 'string'
193
+ || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u.test(header.created_at))
194
+ return 'legacy-delivery-row';
195
+ return undefined;
196
+ }
197
+ function legacyBindingIsValid(database, header) {
198
+ if (!safeIdentifier(header.run_id) || !safeIdentifier(header.run_workspace))
199
+ return false;
200
+ if (header.intake_session_id === null)
201
+ return true;
28
202
  try {
29
- return readContextDelivery(database, { workspace: row.run_workspace, deliveryId: row.delivery_id });
203
+ const link = readRunIntakeLink(database, { workspace: header.run_workspace, runId: header.run_id });
204
+ return link.workspace === header.run_workspace && link.sessionId === header.intake_session_id;
30
205
  }
31
206
  catch {
32
- migrationIntegrity();
207
+ return false;
33
208
  }
34
209
  }
35
- function readDeliveredRevision(database, delivery, item) {
36
- const entry = database.prepare('SELECT workspace FROM entries WHERE id = ?').get(item.entryId);
37
- if (typeof entry?.workspace !== 'string' || entry.workspace.length === 0)
38
- migrationIntegrity();
39
- try {
40
- const revision = readEntryRevision(database, {
41
- entryId: item.entryId,
42
- workspace: entry.workspace,
43
- revision: item.entryRevision,
44
- });
45
- if (revision.workspace !== entry.workspace || revision.revision !== item.entryRevision)
46
- migrationIntegrity();
47
- return { title: revision.title, summary: revision.summary, body: revision.body };
210
+ function entryStage(database, header) {
211
+ if (!safeIdentifier(header.run_workspace) || !safeIdentifier(header.delivery_id)) {
212
+ return 'legacy-delivery-run-binding';
48
213
  }
49
- catch {
50
- migrationIntegrity();
214
+ const rows = selectLegacyDeliveryEntries(database, header.delivery_id);
215
+ if (rows.length > MAX_ITEMS)
216
+ return 'legacy-delivery-entry-rank';
217
+ // Migration 009 can remove an invalid entry and its delivery reference.
218
+ // Released deliveries may therefore retain gaps in their historical ranks.
219
+ const allowsRankGaps = LEGACY_SCOPED_POLICY_VERSIONS.includes(header.policy_version);
220
+ let previousRank = 0;
221
+ let expectedRank = 1;
222
+ for (const row of rows) {
223
+ if (row.delivery_id !== header.delivery_id
224
+ || !safeIdentifier(row.entry_id)
225
+ || row.revision_entry_id !== row.entry_id
226
+ || !safeIdentifier(row.entry_workspace)
227
+ || !safeIdentifier(row.revision_workspace)
228
+ || !safeInteger(row.entry_revision, 1)
229
+ || row.revision_workspace !== row.entry_workspace)
230
+ return 'legacy-delivery-entry-revision';
231
+ const origin = isContextEntryOrigin(row.origin_scope) ? row.origin_scope : undefined;
232
+ if (origin === undefined
233
+ || !entryOriginMatchesWorkspace({
234
+ origin,
235
+ runWorkspace: header.run_workspace,
236
+ entryWorkspace: row.entry_workspace,
237
+ }))
238
+ return 'legacy-delivery-entry-origin';
239
+ if (!safeInteger(row.rank, 1)
240
+ || (allowsRankGaps ? row.rank <= previousRank : row.rank !== expectedRank)) {
241
+ return 'legacy-delivery-entry-rank';
242
+ }
243
+ previousRank = row.rank;
244
+ expectedRank += 1;
245
+ if (!validStoredScore(row.score_components_json))
246
+ return 'legacy-delivery-entry-score';
247
+ if (!validStoredReasons(row.selection_reason_json))
248
+ return 'legacy-delivery-entry-reasons';
51
249
  }
250
+ return undefined;
52
251
  }
53
- /** Reproduce the released v2/v3 scoped materializer without changing its persisted identity. */
54
- export function storedLegacyScopedItems(database, delivery) {
55
- if (!LEGACY_SCOPED_POLICY_VERSIONS.includes(delivery.policyVersion)) {
56
- migrationIntegrity();
252
+ function diagnosticFailureStage(database, row, header) {
253
+ const rowMetadata = metadataFromRow(row);
254
+ if (rowMetadata.deliveryId === undefined)
255
+ return 'legacy-delivery-row';
256
+ if (!safeIdentifier(row.run_id) || !safeIdentifier(row.run_workspace))
257
+ return 'legacy-delivery-run-binding';
258
+ if (!LEGACY_SCOPED_POLICY_VERSIONS.includes(row.policy_version)
259
+ || row.score_schema_version !== 2)
260
+ return 'legacy-delivery-policy';
261
+ if (header === undefined)
262
+ return 'legacy-delivery-read';
263
+ const headerFailure = headerStage(row, header);
264
+ if (headerFailure !== undefined)
265
+ return headerFailure;
266
+ if (!legacyBindingIsValid(database, header))
267
+ return 'legacy-delivery-profile-binding';
268
+ const entryFailure = entryStage(database, header);
269
+ if (entryFailure !== undefined)
270
+ return entryFailure;
271
+ if (!safeIdentifier(header.run_id) || !safeHash(header.query_hash)
272
+ || header.delivery_id !== legacyScopedDeliveryId({ runId: header.run_id, queryHash: header.query_hash })) {
273
+ return 'legacy-delivery-identity';
57
274
  }
58
- const items = [];
59
- let remaining = delivery.charBudget;
60
- let charCount = 0;
61
- for (const item of delivery.items) {
62
- if (remaining <= 0)
63
- migrationIntegrity();
64
- const revision = readDeliveredRevision(database, delivery, item);
65
- const bodySource = revision.summary ?? revision.body;
66
- const bodyPreview = Array.from(bodySource).slice(0, remaining).join('');
67
- const cost = Array.from(revision.title).length
68
- + Array.from(revision.summary ?? '').length
69
- + bodyPreview.length;
70
- const scoreComponents = item.scoreComponents;
71
- items.push({
72
- entryId: item.entryId,
73
- revision: item.entryRevision,
74
- origin: item.origin ?? 'project',
75
- title: revision.title,
76
- summary: revision.summary,
77
- bodyPreview,
78
- score: Object.values(scoreComponents).reduce((total, component) => total + component, 0),
79
- scoreComponents: { ...scoreComponents },
80
- selectionReasons: [...item.selectionReasons],
81
- metadata: { storedData: true, untrusted: true, instructions: false },
82
- });
83
- charCount += bodyPreview.length;
84
- remaining -= cost;
275
+ return 'legacy-delivery-read';
276
+ }
277
+ function readLegacyDelivery(database, row) {
278
+ const metadata = metadataFromRow(row);
279
+ if (metadata.deliveryId === undefined)
280
+ migrationIntegrity(metadata, 'legacy-delivery-row');
281
+ if (!safeIdentifier(row.run_workspace))
282
+ migrationIntegrity(metadata, 'legacy-delivery-run-binding');
283
+ const header = selectLegacyDeliveryHeader(database, metadata.deliveryId);
284
+ const preliminaryFailure = header === undefined ? 'legacy-delivery-read' : headerStage(row, header);
285
+ if (preliminaryFailure !== undefined)
286
+ migrationIntegrity(metadataFromHeader(header ?? row), preliminaryFailure);
287
+ if (header === undefined || !safeIdentifier(header.run_workspace))
288
+ migrationIntegrity(metadata, 'legacy-delivery-run-binding');
289
+ if (!legacyBindingIsValid(database, header))
290
+ migrationIntegrity(metadataFromHeader(header), 'legacy-delivery-profile-binding');
291
+ const entryFailure = entryStage(database, header);
292
+ if (entryFailure !== undefined)
293
+ migrationIntegrity(metadataFromHeader(header), entryFailure);
294
+ if (!safeIdentifier(header.run_id) || !safeHash(header.query_hash)
295
+ || header.delivery_id !== legacyScopedDeliveryId({ runId: header.run_id, queryHash: header.query_hash })) {
296
+ migrationIntegrity(metadataFromHeader(header), 'legacy-delivery-identity');
297
+ }
298
+ try {
299
+ return readContextDelivery(database, { workspace: header.run_workspace, deliveryId: metadata.deliveryId });
85
300
  }
86
- if (charCount !== delivery.charCount)
87
- migrationIntegrity();
88
- return items;
301
+ catch (error) {
302
+ if (!(error instanceof KiokukoError))
303
+ throw error;
304
+ migrationIntegrity(metadataFromHeader(header), diagnosticFailureStage(database, row, header), errorCode(error));
305
+ }
306
+ }
307
+ /** Validate one released v2/v3 delivery using persisted structure only. */
308
+ export function inspectLegacyContextDelivery(database, row) {
309
+ const delivery = readLegacyDelivery(database, row);
310
+ if (!LEGACY_SCOPED_POLICY_VERSIONS.includes(delivery.policyVersion)
311
+ || delivery.scoreSchemaVersion !== 2) {
312
+ migrationIntegrity(metadataFromRow(row), 'legacy-delivery-policy');
313
+ }
314
+ return {
315
+ deliveryId: delivery.deliveryId,
316
+ runId: delivery.runId,
317
+ policyVersion: delivery.policyVersion,
318
+ };
89
319
  }
90
- function migrateOneDelivery(database, row) {
91
- const legacy = readLegacyDelivery(database, row);
92
- storedLegacyScopedItems(database, legacy);
320
+ /** Inspect all released v2/v3 deliveries without stopping at the first finding. */
321
+ export function inspectLegacyContextDeliveries(database) {
322
+ const loaded = deliveryRows(database);
323
+ let valid = 0;
324
+ let invalid = 0;
325
+ const findings = [];
326
+ for (const row of loaded.rows) {
327
+ try {
328
+ inspectLegacyContextDelivery(database, row);
329
+ valid += 1;
330
+ }
331
+ catch (error) {
332
+ if (!(error instanceof KiokukoError))
333
+ throw error;
334
+ invalid += 1;
335
+ const stage = LEGACY_DELIVERY_INSPECTION_STAGES.includes(error.details.stage)
336
+ ? error.details.stage
337
+ : 'legacy-delivery-read';
338
+ const metadata = metadataFromRow(row);
339
+ if (findings.length < MAX_FINDINGS) {
340
+ findings.push({
341
+ deliveryId: metadata.deliveryId ?? '<invalid>',
342
+ ...(metadata.runId === undefined ? {} : { runId: metadata.runId }),
343
+ ...(metadata.policyVersion === undefined ? {} : { policyVersion: metadata.policyVersion }),
344
+ stage,
345
+ code: errorCode(error),
346
+ });
347
+ }
348
+ }
349
+ }
350
+ return {
351
+ scanned: loaded.rows.length,
352
+ valid,
353
+ invalid,
354
+ findings,
355
+ scanTruncated: loaded.scanTruncated,
356
+ findingsTruncated: invalid > findings.length,
357
+ };
93
358
  }
94
359
  /** Validate released scoped delivery formats inside the caller-owned migration transaction. */
95
360
  export function migrateLegacyContextDeliveries(database) {
96
- const rows = deliveryRows(database);
97
- for (const row of rows)
98
- migrateOneDelivery(database, row);
361
+ const loaded = deliveryRows(database);
362
+ if (loaded.scanTruncated)
363
+ migrationIntegrity({}, 'legacy-delivery-row');
364
+ for (const row of loaded.rows)
365
+ inspectLegacyContextDelivery(database, row);
99
366
  }
100
367
  //# sourceMappingURL=delivery-migration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-migration.js","sourceRoot":"","sources":["../../src/context/delivery-migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery-migration.js","sourceRoot":"","sources":["../../src/context/delivery-migration.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ export interface ContextDeliveryPage {
53
53
  nextCursor: string | null;
54
54
  }
55
55
  export declare function scopedDeliveryId(input: ContextDeliveryInput): string;
56
+ export declare function legacyScopedDeliveryId(input: Pick<ContextDeliveryInput, 'runId' | 'queryHash'>): string;
56
57
  export declare function recordContextDeliveryInTransaction(database: SqliteDatabase, input: unknown, options?: ContextDeliveryWriteOptions): ContextDeliveryView;
57
58
  export declare function recordContextDelivery(database: SqliteDatabase, input: unknown, options?: ContextDeliveryWriteOptions): ContextDeliveryView;
58
59
  export declare function readContextDelivery(database: SqliteDatabase, input: unknown): ContextDeliveryView;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/context/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAqD,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA0BzG,MAAM,MAAM,8BAA8B,GAAG;KAAG,SAAS,IAAI,uBAAuB,GAAG,MAAM;CAAE,CAAC;AAChG,MAAM,MAAM,gCAAgC,GAAG;KAAG,SAAS,IAAI,yBAAyB,GAAG,MAAM;CAAE,CAAC;AACpG,MAAM,MAAM,iCAAiC,GAAG,8BAA8B,GAAG,gCAAgC,CAAC;AAElH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,iCAAiC,CAAC;IACnD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC;IAC9E,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,2GAA2G;IAC3G,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAudD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAwBpE;AAgRD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,2BAAgC,GACxC,mBAAmB,CAQrB;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,2BAAgC,GACxC,mBAAmB,CAQrB;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAOjG;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB,CA8CnG"}
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/context/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAqD,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA2BzG,MAAM,MAAM,8BAA8B,GAAG;KAAG,SAAS,IAAI,uBAAuB,GAAG,MAAM;CAAE,CAAC;AAChG,MAAM,MAAM,gCAAgC,GAAG;KAAG,SAAS,IAAI,yBAAyB,GAAG,MAAM;CAAE,CAAC;AACpG,MAAM,MAAM,iCAAiC,GAAG,8BAA8B,GAAG,gCAAgC,CAAC;AAElH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,iCAAiC,CAAC;IACnD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC;IAC9E,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,2GAA2G;IAC3G,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAudD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAwBpE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG,MAAM,CAEvG;AAqSD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,2BAAgC,GACxC,mBAAmB,CAQrB;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,2BAAgC,GACxC,mBAAmB,CAQrB;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAOjG;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB,CA8CnG"}
@@ -8,6 +8,7 @@ import { isRetrievableEntry } from '../memory/hybrid-retrieval.js';
8
8
  import { entryOriginMatchesWorkspace, isContextEntryOrigin } from './origin.js';
9
9
  import { RUN_STATUSES } from '../ledger/types.js';
10
10
  import { RECOMMENDATION_POLICY_VERSION } from './recommendations.js';
11
+ import { readRunIntakeLink } from '../akinator/store.js';
11
12
  import { readContextRunProfileBinding } from './run-state.js';
12
13
  const MAX_IDENTIFIER_BYTES = 256;
13
14
  const MAX_ITEMS = 100;
@@ -494,7 +495,7 @@ export function scopedDeliveryId(input) {
494
495
  })),
495
496
  })}`;
496
497
  }
497
- function legacyScopedDeliveryId(input) {
498
+ export function legacyScopedDeliveryId(input) {
498
499
  return `context-${canonicalContentHash({ runId: input.runId, queryHash: input.queryHash })}`;
499
500
  }
500
501
  function storedScopedDeliveryIdentityMatches(input) {
@@ -671,7 +672,11 @@ function validateStoredEntries(database, header) {
671
672
  const rows = selectDeliveryEntries(database, header.deliveryId);
672
673
  if (rows.length > MAX_ITEMS)
673
674
  integrity();
675
+ // Migration 009 may remove an invalid entry from a released delivery,
676
+ // leaving a historical rank gap. New writes still require contiguous ranks.
677
+ const allowsRankGaps = LEGACY_SCOPED_DELIVERY_POLICY_VERSIONS.has(header.policyVersion);
674
678
  const entryIds = new Set();
679
+ let previousRank = 0;
675
680
  let expectedRank = 1;
676
681
  return rows.map((row) => {
677
682
  const deliveryId = boundedStoredIdentifier(row.delivery_id);
@@ -688,8 +693,9 @@ function validateStoredEntries(database, header) {
688
693
  if (revisionWorkspace !== entryWorkspace)
689
694
  integrity();
690
695
  const rank = storedPositiveSafeInteger(row.rank);
691
- if (rank !== expectedRank)
696
+ if (allowsRankGaps ? rank <= previousRank : rank !== expectedRank)
692
697
  integrity();
698
+ previousRank = rank;
693
699
  expectedRank += 1;
694
700
  const scoreValue = validateStoredJson(row.score_components_json);
695
701
  const reasonValue = validateStoredJson(row.selection_reason_json);
@@ -715,6 +721,28 @@ function assertStoredProfileBinding(database, header) {
715
721
  || header.taskProfileHash !== binding.profileHash)
716
722
  integrity();
717
723
  }
724
+ function assertLegacyStoredIntakeBinding(database, header) {
725
+ if (header.intakeSessionId === null)
726
+ return;
727
+ let link;
728
+ try {
729
+ link = readRunIntakeLink(database, { workspace: header.workspace, runId: header.runId });
730
+ }
731
+ catch (error) {
732
+ if (isKiokukoError(error) && (error.code === 'NOT_FOUND' || error.code === 'INTEGRITY_ERROR'))
733
+ integrity();
734
+ throw error;
735
+ }
736
+ if (link.workspace !== header.workspace || link.sessionId !== header.intakeSessionId)
737
+ integrity();
738
+ }
739
+ function assertStoredDeliveryBinding(database, header) {
740
+ if (LEGACY_SCOPED_DELIVERY_POLICY_VERSIONS.has(header.policyVersion)) {
741
+ assertLegacyStoredIntakeBinding(database, header);
742
+ return;
743
+ }
744
+ assertStoredProfileBinding(database, header);
745
+ }
718
746
  function readStoredDelivery(database, workspace, deliveryId) {
719
747
  const row = selectHeaderByDeliveryId(database, deliveryId);
720
748
  if (!row)
@@ -724,7 +752,7 @@ function readStoredDelivery(database, workspace, deliveryId) {
724
752
  if (row.run_workspace !== workspace)
725
753
  notFound();
726
754
  const header = validateStoredHeader(row, workspace);
727
- assertStoredProfileBinding(database, header);
755
+ assertStoredDeliveryBinding(database, header);
728
756
  const items = validateStoredEntries(database, header);
729
757
  const complete = { ...header, items };
730
758
  if ((header.scoreSchemaVersion ?? 1) === 2 && !storedScopedDeliveryIdentityMatches(complete))
@@ -828,7 +856,7 @@ export function listContextDeliveries(database, input) {
828
856
  const pageRows = rows.slice(0, validated.limit);
829
857
  const items = pageRows.map((row) => {
830
858
  const header = validateStoredHeader(row, validated.workspace);
831
- assertStoredProfileBinding(database, header);
859
+ assertStoredDeliveryBinding(database, header);
832
860
  const storedItems = validateStoredEntries(database, header);
833
861
  const complete = { ...header, items: storedItems };
834
862
  if ((header.scoreSchemaVersion ?? 1) === 2 && !storedScopedDeliveryIdentityMatches(complete))