@opengeni/db 0.14.0 → 0.16.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 (63) hide show
  1. package/dist/{chunk-ELMUCYZF.js → chunk-4RUK5CON.js} +183 -42
  2. package/dist/chunk-4RUK5CON.js.map +1 -0
  3. package/dist/chunk-HZD7KVAR.js +4648 -0
  4. package/dist/chunk-HZD7KVAR.js.map +1 -0
  5. package/dist/{chunk-Y5WZZVQK.js → chunk-SK7YYHBI.js} +5 -2
  6. package/dist/chunk-SK7YYHBI.js.map +1 -0
  7. package/dist/codex-token-resolver.d.ts +64 -0
  8. package/dist/connection-token-resolver.d.ts +90 -0
  9. package/dist/environment-crypto.d.ts +11 -0
  10. package/dist/event-payload-sanitizer.d.ts +32 -0
  11. package/dist/index.d.ts +6217 -10
  12. package/dist/index.js +6992 -2728
  13. package/dist/index.js.map +1 -1
  14. package/dist/insights.d.ts +157 -0
  15. package/dist/memory-domain.d.ts +44 -0
  16. package/dist/migrate.d.ts +5 -7
  17. package/dist/migrate.js +1 -1
  18. package/dist/new-session-drafts.d.ts +49 -0
  19. package/dist/persistence-errors.d.ts +69 -0
  20. package/dist/preference-registry-schema.d.ts +1147 -0
  21. package/dist/preference-registry.d.ts +878 -0
  22. package/dist/provision-roles.d.ts +4 -6478
  23. package/dist/provision-roles.js +1 -1
  24. package/dist/role-relationships.d.ts +35 -0
  25. package/dist/runtime-posture-cli.d.ts +1 -0
  26. package/dist/runtime-posture.d.ts +103 -0
  27. package/dist/schema.d.ts +23533 -3
  28. package/dist/schema.js +17 -1
  29. package/dist/session-control.d.ts +331 -0
  30. package/dist/session-queue-commands.d.ts +186 -0
  31. package/dist/session-tool-call-settlement.d.ts +32 -0
  32. package/dist/turn-initiator.d.ts +28 -0
  33. package/dist/workspace-instruction-policies-schema.d.ts +735 -0
  34. package/dist/workspace-instruction-policies.d.ts +64 -0
  35. package/drizzle/0136_unified_session_tool_policy.sql +109 -0
  36. package/drizzle/0137_preference_registry.sql +1347 -0
  37. package/drizzle/0138_sandbox_checkpoint_artifacts_and_deadlines.sql +1074 -0
  38. package/drizzle/0139_codex_provider_artifact_invalidations.sql +51 -0
  39. package/drizzle/0140_sandbox_restore_and_reaper_fences.sql +276 -0
  40. package/drizzle/0142_sandbox_archive_capture_gate.sql +80 -0
  41. package/drizzle/0143_session_codex_compaction_mode.sql +20 -0
  42. package/drizzle/0144_sandbox_viewer_force_drain_gate.sql +95 -0
  43. package/drizzle/0145_model_call_facts.sql +96 -0
  44. package/drizzle/0146_slack_bot_delete_idempotency.sql +105 -0
  45. package/drizzle/0147_draft_latency_mode.sql +12 -0
  46. package/drizzle/0148_session_turn_latency_mode.sql +12 -0
  47. package/package.json +6 -6
  48. package/src/index.ts +5095 -430
  49. package/src/insights.ts +837 -0
  50. package/src/migrate.ts +9 -1
  51. package/src/new-session-drafts.ts +4 -0
  52. package/src/preference-registry-schema.ts +170 -0
  53. package/src/preference-registry.ts +1220 -0
  54. package/src/provision-roles.ts +95 -22
  55. package/src/role-relationships.ts +132 -0
  56. package/src/runtime-posture.ts +28 -26
  57. package/src/schema.ts +484 -12
  58. package/src/session-queue-commands.ts +47 -46
  59. package/dist/chunk-ELMUCYZF.js.map +0 -1
  60. package/dist/chunk-PQKVUWQW.js +0 -4047
  61. package/dist/chunk-PQKVUWQW.js.map +0 -1
  62. package/dist/chunk-Y5WZZVQK.js.map +0 -1
  63. package/dist/schema-FoPub9yt.d.ts +0 -22666
@@ -0,0 +1,878 @@
1
+ import { PreferenceRegistryDescriptor, type CreatePreferenceRegistryProposalRequest, type PreferenceRegistryConflictStrategy, type PreferenceRegistryScope, type PreferenceRegistryStatus } from "@opengeni/contracts";
2
+ import type { Database } from "./index";
3
+ export declare class PreferenceRegistryNotFoundError extends Error {
4
+ readonly name = "PreferenceRegistryNotFoundError";
5
+ }
6
+ export declare class PreferenceRegistryInvalidOperationError extends Error {
7
+ readonly name = "PreferenceRegistryInvalidOperationError";
8
+ }
9
+ export declare class PreferenceRegistryConflictError extends Error {
10
+ readonly currentRevisionId: string | null;
11
+ readonly scopeVersion: number | null;
12
+ readonly name = "PreferenceRegistryConflictError";
13
+ readonly code = "PREFERENCE_REGISTRY_CONFLICT";
14
+ constructor(message: string, currentRevisionId: string | null, scopeVersion: number | null);
15
+ }
16
+ export declare class PreferenceRegistryInitiatorError extends Error {
17
+ readonly name = "PreferenceRegistryInitiatorError";
18
+ }
19
+ export declare class PreferenceRegistryStableKeyConflictError extends Error {
20
+ readonly name = "PreferenceRegistryStableKeyConflictError";
21
+ readonly code = "PREFERENCE_REGISTRY_STABLE_KEY_CONFLICT";
22
+ }
23
+ export type PreferenceRegistryAttemptClaims = {
24
+ accountId: string;
25
+ workspaceId: string;
26
+ sessionId: string;
27
+ turnId: string;
28
+ attemptId: string;
29
+ executionGeneration: number;
30
+ };
31
+ export type PreferenceRegistryScopeAuthorizer = (scope: PreferenceRegistryScope) => void;
32
+ /** Plain one-line descriptor text; never include full imported source content. */
33
+ export declare function sanitizePreferenceDescriptorText(value: string): string;
34
+ export declare function createPreferenceRegistryProposal(db: Database, input: CreatePreferenceRegistryProposalRequest & {
35
+ accountId: string;
36
+ workspaceId: string;
37
+ actorSubjectId: string;
38
+ principalKind: string | undefined;
39
+ }): Promise<{
40
+ id: string;
41
+ accountId: string;
42
+ stableKey: string;
43
+ target: {
44
+ scope: "organization" | "user" | "workspace";
45
+ workspaceId: string | null;
46
+ subjectId: string | null;
47
+ };
48
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
49
+ scopeVersion: number;
50
+ activationVersion: number;
51
+ activeRevision: {
52
+ id: string;
53
+ preferenceId: string;
54
+ revision: number;
55
+ contentHash: string;
56
+ title: string;
57
+ description: string;
58
+ precedence: {
59
+ tier: "organization" | "user" | "workspace";
60
+ rank: number;
61
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
62
+ conflictsWith: string[];
63
+ };
64
+ provenance: {
65
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
66
+ sourceId: string | null;
67
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
68
+ };
69
+ expiresAt: string | null;
70
+ correctsRevisionId: string | null;
71
+ createdBySubjectId: string;
72
+ createdAt: string;
73
+ } | null;
74
+ supersededByPreferenceId: string | null;
75
+ createdBySubjectId: string;
76
+ createdAt: string;
77
+ updatedAt: string;
78
+ }>;
79
+ type PreferenceRegistryListInput = {
80
+ scope?: PreferenceRegistryScope | undefined;
81
+ status?: PreferenceRegistryStatus | undefined;
82
+ limit: number;
83
+ };
84
+ export declare function listPreferenceRegistry(db: Database, input: {
85
+ workspaceId: string;
86
+ subjectId: string;
87
+ } & PreferenceRegistryListInput): Promise<{
88
+ preferences: {
89
+ id: string;
90
+ accountId: string;
91
+ stableKey: string;
92
+ target: {
93
+ scope: "organization" | "user" | "workspace";
94
+ workspaceId: string | null;
95
+ subjectId: string | null;
96
+ };
97
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
98
+ scopeVersion: number;
99
+ activationVersion: number;
100
+ activeRevision: {
101
+ id: string;
102
+ preferenceId: string;
103
+ revision: number;
104
+ contentHash: string;
105
+ title: string;
106
+ description: string;
107
+ precedence: {
108
+ tier: "organization" | "user" | "workspace";
109
+ rank: number;
110
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
111
+ conflictsWith: string[];
112
+ };
113
+ provenance: {
114
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
115
+ sourceId: string | null;
116
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
117
+ };
118
+ expiresAt: string | null;
119
+ correctsRevisionId: string | null;
120
+ createdBySubjectId: string;
121
+ createdAt: string;
122
+ } | null;
123
+ supersededByPreferenceId: string | null;
124
+ createdBySubjectId: string;
125
+ createdAt: string;
126
+ updatedAt: string;
127
+ }[];
128
+ }>;
129
+ export declare function listPreferenceRegistryForAttempt(db: Database, input: PreferenceRegistryAttemptClaims & PreferenceRegistryListInput): Promise<{
130
+ preferences: {
131
+ id: string;
132
+ accountId: string;
133
+ stableKey: string;
134
+ target: {
135
+ scope: "organization" | "user" | "workspace";
136
+ workspaceId: string | null;
137
+ subjectId: string | null;
138
+ };
139
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
140
+ scopeVersion: number;
141
+ activationVersion: number;
142
+ activeRevision: {
143
+ id: string;
144
+ preferenceId: string;
145
+ revision: number;
146
+ contentHash: string;
147
+ title: string;
148
+ description: string;
149
+ precedence: {
150
+ tier: "organization" | "user" | "workspace";
151
+ rank: number;
152
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
153
+ conflictsWith: string[];
154
+ };
155
+ provenance: {
156
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
157
+ sourceId: string | null;
158
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
159
+ };
160
+ expiresAt: string | null;
161
+ correctsRevisionId: string | null;
162
+ createdBySubjectId: string;
163
+ createdAt: string;
164
+ } | null;
165
+ supersededByPreferenceId: string | null;
166
+ createdBySubjectId: string;
167
+ createdAt: string;
168
+ updatedAt: string;
169
+ }[];
170
+ }>;
171
+ export declare function getPreferenceRegistryDetail(db: Database, input: {
172
+ workspaceId: string;
173
+ subjectId: string;
174
+ preferenceId: string;
175
+ }): Promise<{
176
+ preference: {
177
+ id: string;
178
+ accountId: string;
179
+ stableKey: string;
180
+ target: {
181
+ scope: "organization" | "user" | "workspace";
182
+ workspaceId: string | null;
183
+ subjectId: string | null;
184
+ };
185
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
186
+ scopeVersion: number;
187
+ activationVersion: number;
188
+ activeRevision: {
189
+ id: string;
190
+ preferenceId: string;
191
+ revision: number;
192
+ contentHash: string;
193
+ title: string;
194
+ description: string;
195
+ precedence: {
196
+ tier: "organization" | "user" | "workspace";
197
+ rank: number;
198
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
199
+ conflictsWith: string[];
200
+ };
201
+ provenance: {
202
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
203
+ sourceId: string | null;
204
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
205
+ };
206
+ expiresAt: string | null;
207
+ correctsRevisionId: string | null;
208
+ createdBySubjectId: string;
209
+ createdAt: string;
210
+ } | null;
211
+ supersededByPreferenceId: string | null;
212
+ createdBySubjectId: string;
213
+ createdAt: string;
214
+ updatedAt: string;
215
+ };
216
+ revisions: {
217
+ id: string;
218
+ preferenceId: string;
219
+ revision: number;
220
+ contentHash: string;
221
+ title: string;
222
+ description: string;
223
+ precedence: {
224
+ tier: "organization" | "user" | "workspace";
225
+ rank: number;
226
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
227
+ conflictsWith: string[];
228
+ };
229
+ provenance: {
230
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
231
+ sourceId: string | null;
232
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
233
+ };
234
+ expiresAt: string | null;
235
+ correctsRevisionId: string | null;
236
+ createdBySubjectId: string;
237
+ createdAt: string;
238
+ }[];
239
+ events: {
240
+ id: string;
241
+ accountId: string;
242
+ preferenceId: string;
243
+ type: "activated" | "corrected" | "deactivated" | "proposal_created" | "rejected" | "scope_changed" | "superseded";
244
+ version: number;
245
+ oldRevisionId: string | null;
246
+ newRevisionId: string | null;
247
+ oldTarget: {
248
+ scope: "organization" | "user" | "workspace";
249
+ workspaceId: string | null;
250
+ subjectId: string | null;
251
+ } | null;
252
+ newTarget: {
253
+ scope: "organization" | "user" | "workspace";
254
+ workspaceId: string | null;
255
+ subjectId: string | null;
256
+ } | null;
257
+ relatedPreferenceId: string | null;
258
+ actorSubjectId: string;
259
+ reason: string;
260
+ createdAt: string;
261
+ }[];
262
+ }>;
263
+ export declare function getPreferenceRegistryDetailForAttempt(db: Database, input: PreferenceRegistryAttemptClaims & {
264
+ preferenceId: string;
265
+ }): Promise<{
266
+ preference: {
267
+ id: string;
268
+ accountId: string;
269
+ stableKey: string;
270
+ target: {
271
+ scope: "organization" | "user" | "workspace";
272
+ workspaceId: string | null;
273
+ subjectId: string | null;
274
+ };
275
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
276
+ scopeVersion: number;
277
+ activationVersion: number;
278
+ activeRevision: {
279
+ id: string;
280
+ preferenceId: string;
281
+ revision: number;
282
+ contentHash: string;
283
+ title: string;
284
+ description: string;
285
+ precedence: {
286
+ tier: "organization" | "user" | "workspace";
287
+ rank: number;
288
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
289
+ conflictsWith: string[];
290
+ };
291
+ provenance: {
292
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
293
+ sourceId: string | null;
294
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
295
+ };
296
+ expiresAt: string | null;
297
+ correctsRevisionId: string | null;
298
+ createdBySubjectId: string;
299
+ createdAt: string;
300
+ } | null;
301
+ supersededByPreferenceId: string | null;
302
+ createdBySubjectId: string;
303
+ createdAt: string;
304
+ updatedAt: string;
305
+ };
306
+ revisions: {
307
+ id: string;
308
+ preferenceId: string;
309
+ revision: number;
310
+ contentHash: string;
311
+ title: string;
312
+ description: string;
313
+ precedence: {
314
+ tier: "organization" | "user" | "workspace";
315
+ rank: number;
316
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
317
+ conflictsWith: string[];
318
+ };
319
+ provenance: {
320
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
321
+ sourceId: string | null;
322
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
323
+ };
324
+ expiresAt: string | null;
325
+ correctsRevisionId: string | null;
326
+ createdBySubjectId: string;
327
+ createdAt: string;
328
+ }[];
329
+ events: {
330
+ id: string;
331
+ accountId: string;
332
+ preferenceId: string;
333
+ type: "activated" | "corrected" | "deactivated" | "proposal_created" | "rejected" | "scope_changed" | "superseded";
334
+ version: number;
335
+ oldRevisionId: string | null;
336
+ newRevisionId: string | null;
337
+ oldTarget: {
338
+ scope: "organization" | "user" | "workspace";
339
+ workspaceId: string | null;
340
+ subjectId: string | null;
341
+ } | null;
342
+ newTarget: {
343
+ scope: "organization" | "user" | "workspace";
344
+ workspaceId: string | null;
345
+ subjectId: string | null;
346
+ } | null;
347
+ relatedPreferenceId: string | null;
348
+ actorSubjectId: string;
349
+ reason: string;
350
+ createdAt: string;
351
+ }[];
352
+ }>;
353
+ export declare function activatePreferenceRegistryRevision(db: Database, input: {
354
+ accountId: string;
355
+ workspaceId: string;
356
+ actorSubjectId: string;
357
+ principalKind: string | undefined;
358
+ preferenceId: string;
359
+ revisionId: string;
360
+ expectedCurrentRevisionId: string | null;
361
+ expectedScopeVersion: number;
362
+ authorizeScope: PreferenceRegistryScopeAuthorizer;
363
+ reason: string;
364
+ eventType?: "activated" | "corrected";
365
+ }): Promise<{
366
+ preference: {
367
+ id: string;
368
+ accountId: string;
369
+ stableKey: string;
370
+ target: {
371
+ scope: "organization" | "user" | "workspace";
372
+ workspaceId: string | null;
373
+ subjectId: string | null;
374
+ };
375
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
376
+ scopeVersion: number;
377
+ activationVersion: number;
378
+ activeRevision: {
379
+ id: string;
380
+ preferenceId: string;
381
+ revision: number;
382
+ contentHash: string;
383
+ title: string;
384
+ description: string;
385
+ precedence: {
386
+ tier: "organization" | "user" | "workspace";
387
+ rank: number;
388
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
389
+ conflictsWith: string[];
390
+ };
391
+ provenance: {
392
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
393
+ sourceId: string | null;
394
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
395
+ };
396
+ expiresAt: string | null;
397
+ correctsRevisionId: string | null;
398
+ createdBySubjectId: string;
399
+ createdAt: string;
400
+ } | null;
401
+ supersededByPreferenceId: string | null;
402
+ createdBySubjectId: string;
403
+ createdAt: string;
404
+ updatedAt: string;
405
+ };
406
+ event: {
407
+ id: string;
408
+ accountId: string;
409
+ preferenceId: string;
410
+ type: "activated" | "corrected" | "deactivated" | "proposal_created" | "rejected" | "scope_changed" | "superseded";
411
+ version: number;
412
+ oldRevisionId: string | null;
413
+ newRevisionId: string | null;
414
+ oldTarget: {
415
+ scope: "organization" | "user" | "workspace";
416
+ workspaceId: string | null;
417
+ subjectId: string | null;
418
+ } | null;
419
+ newTarget: {
420
+ scope: "organization" | "user" | "workspace";
421
+ workspaceId: string | null;
422
+ subjectId: string | null;
423
+ } | null;
424
+ relatedPreferenceId: string | null;
425
+ actorSubjectId: string;
426
+ reason: string;
427
+ createdAt: string;
428
+ };
429
+ }>;
430
+ export declare function correctPreferenceRegistry(db: Database, input: {
431
+ accountId: string;
432
+ workspaceId: string;
433
+ actorSubjectId: string;
434
+ principalKind: string | undefined;
435
+ preferenceId: string;
436
+ expectedCurrentRevisionId: string;
437
+ expectedScopeVersion: number;
438
+ authorizeScope: PreferenceRegistryScopeAuthorizer;
439
+ title: string;
440
+ description: string;
441
+ content: string;
442
+ precedenceRank: number;
443
+ conflictStrategy: PreferenceRegistryConflictStrategy;
444
+ conflictsWith: string[];
445
+ expiresAt: string | null;
446
+ reason: string;
447
+ }): Promise<{
448
+ preference: {
449
+ id: string;
450
+ accountId: string;
451
+ stableKey: string;
452
+ target: {
453
+ scope: "organization" | "user" | "workspace";
454
+ workspaceId: string | null;
455
+ subjectId: string | null;
456
+ };
457
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
458
+ scopeVersion: number;
459
+ activationVersion: number;
460
+ activeRevision: {
461
+ id: string;
462
+ preferenceId: string;
463
+ revision: number;
464
+ contentHash: string;
465
+ title: string;
466
+ description: string;
467
+ precedence: {
468
+ tier: "organization" | "user" | "workspace";
469
+ rank: number;
470
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
471
+ conflictsWith: string[];
472
+ };
473
+ provenance: {
474
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
475
+ sourceId: string | null;
476
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
477
+ };
478
+ expiresAt: string | null;
479
+ correctsRevisionId: string | null;
480
+ createdBySubjectId: string;
481
+ createdAt: string;
482
+ } | null;
483
+ supersededByPreferenceId: string | null;
484
+ createdBySubjectId: string;
485
+ createdAt: string;
486
+ updatedAt: string;
487
+ };
488
+ event: {
489
+ id: string;
490
+ accountId: string;
491
+ preferenceId: string;
492
+ type: "activated" | "corrected" | "deactivated" | "proposal_created" | "rejected" | "scope_changed" | "superseded";
493
+ version: number;
494
+ oldRevisionId: string | null;
495
+ newRevisionId: string | null;
496
+ oldTarget: {
497
+ scope: "organization" | "user" | "workspace";
498
+ workspaceId: string | null;
499
+ subjectId: string | null;
500
+ } | null;
501
+ newTarget: {
502
+ scope: "organization" | "user" | "workspace";
503
+ workspaceId: string | null;
504
+ subjectId: string | null;
505
+ } | null;
506
+ relatedPreferenceId: string | null;
507
+ actorSubjectId: string;
508
+ reason: string;
509
+ createdAt: string;
510
+ };
511
+ }>;
512
+ export declare function changePreferenceRegistryScope(db: Database, input: {
513
+ accountId: string;
514
+ workspaceId: string;
515
+ actorSubjectId: string;
516
+ principalKind: string | undefined;
517
+ preferenceId: string;
518
+ scope: PreferenceRegistryScope;
519
+ expectedScopeVersion: number;
520
+ authorizeScope: PreferenceRegistryScopeAuthorizer;
521
+ reason: string;
522
+ }): Promise<{
523
+ preference: {
524
+ id: string;
525
+ accountId: string;
526
+ stableKey: string;
527
+ target: {
528
+ scope: "organization" | "user" | "workspace";
529
+ workspaceId: string | null;
530
+ subjectId: string | null;
531
+ };
532
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
533
+ scopeVersion: number;
534
+ activationVersion: number;
535
+ activeRevision: {
536
+ id: string;
537
+ preferenceId: string;
538
+ revision: number;
539
+ contentHash: string;
540
+ title: string;
541
+ description: string;
542
+ precedence: {
543
+ tier: "organization" | "user" | "workspace";
544
+ rank: number;
545
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
546
+ conflictsWith: string[];
547
+ };
548
+ provenance: {
549
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
550
+ sourceId: string | null;
551
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
552
+ };
553
+ expiresAt: string | null;
554
+ correctsRevisionId: string | null;
555
+ createdBySubjectId: string;
556
+ createdAt: string;
557
+ } | null;
558
+ supersededByPreferenceId: string | null;
559
+ createdBySubjectId: string;
560
+ createdAt: string;
561
+ updatedAt: string;
562
+ };
563
+ event: {
564
+ id: string;
565
+ accountId: string;
566
+ preferenceId: string;
567
+ type: "activated" | "corrected" | "deactivated" | "proposal_created" | "rejected" | "scope_changed" | "superseded";
568
+ version: number;
569
+ oldRevisionId: string | null;
570
+ newRevisionId: string | null;
571
+ oldTarget: {
572
+ scope: "organization" | "user" | "workspace";
573
+ workspaceId: string | null;
574
+ subjectId: string | null;
575
+ } | null;
576
+ newTarget: {
577
+ scope: "organization" | "user" | "workspace";
578
+ workspaceId: string | null;
579
+ subjectId: string | null;
580
+ } | null;
581
+ relatedPreferenceId: string | null;
582
+ actorSubjectId: string;
583
+ reason: string;
584
+ createdAt: string;
585
+ };
586
+ }>;
587
+ export declare function deactivatePreferenceRegistry(db: Database, input: {
588
+ accountId: string;
589
+ workspaceId: string;
590
+ actorSubjectId: string;
591
+ principalKind: string | undefined;
592
+ preferenceId: string;
593
+ expectedCurrentRevisionId: string;
594
+ expectedScopeVersion: number;
595
+ authorizeScope: PreferenceRegistryScopeAuthorizer;
596
+ reason: string;
597
+ }): Promise<{
598
+ preference: {
599
+ id: string;
600
+ accountId: string;
601
+ stableKey: string;
602
+ target: {
603
+ scope: "organization" | "user" | "workspace";
604
+ workspaceId: string | null;
605
+ subjectId: string | null;
606
+ };
607
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
608
+ scopeVersion: number;
609
+ activationVersion: number;
610
+ activeRevision: {
611
+ id: string;
612
+ preferenceId: string;
613
+ revision: number;
614
+ contentHash: string;
615
+ title: string;
616
+ description: string;
617
+ precedence: {
618
+ tier: "organization" | "user" | "workspace";
619
+ rank: number;
620
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
621
+ conflictsWith: string[];
622
+ };
623
+ provenance: {
624
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
625
+ sourceId: string | null;
626
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
627
+ };
628
+ expiresAt: string | null;
629
+ correctsRevisionId: string | null;
630
+ createdBySubjectId: string;
631
+ createdAt: string;
632
+ } | null;
633
+ supersededByPreferenceId: string | null;
634
+ createdBySubjectId: string;
635
+ createdAt: string;
636
+ updatedAt: string;
637
+ };
638
+ event: {
639
+ id: string;
640
+ accountId: string;
641
+ preferenceId: string;
642
+ type: "activated" | "corrected" | "deactivated" | "proposal_created" | "rejected" | "scope_changed" | "superseded";
643
+ version: number;
644
+ oldRevisionId: string | null;
645
+ newRevisionId: string | null;
646
+ oldTarget: {
647
+ scope: "organization" | "user" | "workspace";
648
+ workspaceId: string | null;
649
+ subjectId: string | null;
650
+ } | null;
651
+ newTarget: {
652
+ scope: "organization" | "user" | "workspace";
653
+ workspaceId: string | null;
654
+ subjectId: string | null;
655
+ } | null;
656
+ relatedPreferenceId: string | null;
657
+ actorSubjectId: string;
658
+ reason: string;
659
+ createdAt: string;
660
+ };
661
+ }>;
662
+ export declare function supersedePreferenceRegistry(db: Database, input: {
663
+ accountId: string;
664
+ workspaceId: string;
665
+ actorSubjectId: string;
666
+ principalKind: string | undefined;
667
+ preferenceId: string;
668
+ replacementPreferenceId: string;
669
+ expectedCurrentRevisionId: string;
670
+ expectedScopeVersion: number;
671
+ authorizeScope: PreferenceRegistryScopeAuthorizer;
672
+ reason: string;
673
+ }): Promise<{
674
+ preference: {
675
+ id: string;
676
+ accountId: string;
677
+ stableKey: string;
678
+ target: {
679
+ scope: "organization" | "user" | "workspace";
680
+ workspaceId: string | null;
681
+ subjectId: string | null;
682
+ };
683
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
684
+ scopeVersion: number;
685
+ activationVersion: number;
686
+ activeRevision: {
687
+ id: string;
688
+ preferenceId: string;
689
+ revision: number;
690
+ contentHash: string;
691
+ title: string;
692
+ description: string;
693
+ precedence: {
694
+ tier: "organization" | "user" | "workspace";
695
+ rank: number;
696
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
697
+ conflictsWith: string[];
698
+ };
699
+ provenance: {
700
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
701
+ sourceId: string | null;
702
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
703
+ };
704
+ expiresAt: string | null;
705
+ correctsRevisionId: string | null;
706
+ createdBySubjectId: string;
707
+ createdAt: string;
708
+ } | null;
709
+ supersededByPreferenceId: string | null;
710
+ createdBySubjectId: string;
711
+ createdAt: string;
712
+ updatedAt: string;
713
+ };
714
+ event: {
715
+ id: string;
716
+ accountId: string;
717
+ preferenceId: string;
718
+ type: "activated" | "corrected" | "deactivated" | "proposal_created" | "rejected" | "scope_changed" | "superseded";
719
+ version: number;
720
+ oldRevisionId: string | null;
721
+ newRevisionId: string | null;
722
+ oldTarget: {
723
+ scope: "organization" | "user" | "workspace";
724
+ workspaceId: string | null;
725
+ subjectId: string | null;
726
+ } | null;
727
+ newTarget: {
728
+ scope: "organization" | "user" | "workspace";
729
+ workspaceId: string | null;
730
+ subjectId: string | null;
731
+ } | null;
732
+ relatedPreferenceId: string | null;
733
+ actorSubjectId: string;
734
+ reason: string;
735
+ createdAt: string;
736
+ };
737
+ }>;
738
+ export declare function rejectPreferenceRegistryProposal(db: Database, input: {
739
+ accountId: string;
740
+ workspaceId: string;
741
+ actorSubjectId: string;
742
+ principalKind: string | undefined;
743
+ preferenceId: string;
744
+ revisionId: string;
745
+ expectedScopeVersion: number;
746
+ authorizeScope: PreferenceRegistryScopeAuthorizer;
747
+ reason: string;
748
+ }): Promise<{
749
+ preference: {
750
+ id: string;
751
+ accountId: string;
752
+ stableKey: string;
753
+ target: {
754
+ scope: "organization" | "user" | "workspace";
755
+ workspaceId: string | null;
756
+ subjectId: string | null;
757
+ };
758
+ status: "active" | "expired" | "inactive" | "proposed" | "rejected" | "superseded";
759
+ scopeVersion: number;
760
+ activationVersion: number;
761
+ activeRevision: {
762
+ id: string;
763
+ preferenceId: string;
764
+ revision: number;
765
+ contentHash: string;
766
+ title: string;
767
+ description: string;
768
+ precedence: {
769
+ tier: "organization" | "user" | "workspace";
770
+ rank: number;
771
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
772
+ conflictsWith: string[];
773
+ };
774
+ provenance: {
775
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
776
+ sourceId: string | null;
777
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
778
+ };
779
+ expiresAt: string | null;
780
+ correctsRevisionId: string | null;
781
+ createdBySubjectId: string;
782
+ createdAt: string;
783
+ } | null;
784
+ supersededByPreferenceId: string | null;
785
+ createdBySubjectId: string;
786
+ createdAt: string;
787
+ updatedAt: string;
788
+ };
789
+ event: {
790
+ id: string;
791
+ accountId: string;
792
+ preferenceId: string;
793
+ type: "activated" | "corrected" | "deactivated" | "proposal_created" | "rejected" | "scope_changed" | "superseded";
794
+ version: number;
795
+ oldRevisionId: string | null;
796
+ newRevisionId: string | null;
797
+ oldTarget: {
798
+ scope: "organization" | "user" | "workspace";
799
+ workspaceId: string | null;
800
+ subjectId: string | null;
801
+ } | null;
802
+ newTarget: {
803
+ scope: "organization" | "user" | "workspace";
804
+ workspaceId: string | null;
805
+ subjectId: string | null;
806
+ } | null;
807
+ relatedPreferenceId: string | null;
808
+ actorSubjectId: string;
809
+ reason: string;
810
+ createdAt: string;
811
+ };
812
+ }>;
813
+ export declare function boundPreferenceRegistryDescriptors(descriptors: readonly PreferenceRegistryDescriptor[]): {
814
+ descriptors: PreferenceRegistryDescriptor[];
815
+ truncated: boolean;
816
+ };
817
+ export declare function getOrCreatePreferenceRegistrySnapshot(db: Database, claims: PreferenceRegistryAttemptClaims): Promise<{
818
+ id: string;
819
+ workspaceId: string;
820
+ sessionId: string;
821
+ turnId: string;
822
+ attemptId: string;
823
+ executionGeneration: number;
824
+ initiatingHumanSubjectId: string;
825
+ descriptorHash: string;
826
+ descriptors: {
827
+ id: string;
828
+ stableKey: string;
829
+ title: string;
830
+ description: string;
831
+ scope: "organization" | "user" | "workspace";
832
+ activeVersion: number;
833
+ revisionId: string;
834
+ contentHash: string;
835
+ precedence: {
836
+ tier: "organization" | "user" | "workspace";
837
+ rank: number;
838
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
839
+ conflictsWith: string[];
840
+ };
841
+ provenance: {
842
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
843
+ sourceIdHash: string | null;
844
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
845
+ };
846
+ expiresAt: string | null;
847
+ retrievalHandle: string;
848
+ }[];
849
+ truncated: boolean;
850
+ createdAt: string;
851
+ }>;
852
+ export declare function getPreferenceRegistryFullContent(db: Database, claims: PreferenceRegistryAttemptClaims, handle: string): Promise<{
853
+ descriptor: {
854
+ id: string;
855
+ stableKey: string;
856
+ title: string;
857
+ description: string;
858
+ scope: "organization" | "user" | "workspace";
859
+ activeVersion: number;
860
+ revisionId: string;
861
+ contentHash: string;
862
+ precedence: {
863
+ tier: "organization" | "user" | "workspace";
864
+ rank: number;
865
+ conflictStrategy: "inform" | "merge" | "override" | "reject";
866
+ conflictsWith: string[];
867
+ };
868
+ provenance: {
869
+ source: "call_transcript" | "human" | "imported_document" | "knowledge_proposal" | "meeting_transcript" | "onboarding" | "slack";
870
+ sourceIdHash: string | null;
871
+ trust: "organization_managed" | "personal" | "untrusted_proposal" | "workspace_managed";
872
+ };
873
+ expiresAt: string | null;
874
+ retrievalHandle: string;
875
+ };
876
+ content: string;
877
+ }>;
878
+ export {};