@lucern/contracts 0.3.0-alpha.2 → 0.3.0-alpha.4

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 (127) hide show
  1. package/dist/component-boundary.contract.d.ts +14 -0
  2. package/dist/component-boundary.contract.js +155 -0
  3. package/dist/component-boundary.contract.js.map +1 -0
  4. package/dist/component-host-boundary.contract.d.ts +41 -0
  5. package/dist/component-host-boundary.contract.js +54 -0
  6. package/dist/component-host-boundary.contract.js.map +1 -0
  7. package/dist/function-registry/beliefs.d.ts +41 -41
  8. package/dist/function-registry/beliefs.js +202 -8
  9. package/dist/function-registry/beliefs.js.map +1 -1
  10. package/dist/function-registry/coding.js +187 -8
  11. package/dist/function-registry/coding.js.map +1 -1
  12. package/dist/function-registry/context.d.ts +13 -13
  13. package/dist/function-registry/context.js +187 -9
  14. package/dist/function-registry/context.js.map +1 -1
  15. package/dist/function-registry/contracts.js +158 -5
  16. package/dist/function-registry/contracts.js.map +1 -1
  17. package/dist/function-registry/coordination.js +158 -5
  18. package/dist/function-registry/coordination.js.map +1 -1
  19. package/dist/function-registry/edges.js +169 -6
  20. package/dist/function-registry/edges.js.map +1 -1
  21. package/dist/function-registry/evidence.d.ts +33 -33
  22. package/dist/function-registry/evidence.js +202 -9
  23. package/dist/function-registry/evidence.js.map +1 -1
  24. package/dist/function-registry/graph.d.ts +53 -53
  25. package/dist/function-registry/graph.js +217 -12
  26. package/dist/function-registry/graph.js.map +1 -1
  27. package/dist/function-registry/helpers.d.ts +1 -1
  28. package/dist/function-registry/helpers.js +158 -5
  29. package/dist/function-registry/helpers.js.map +1 -1
  30. package/dist/function-registry/identity.js +158 -5
  31. package/dist/function-registry/identity.js.map +1 -1
  32. package/dist/function-registry/index.d.ts +1 -1
  33. package/dist/function-registry/index.js +158 -5
  34. package/dist/function-registry/index.js.map +1 -1
  35. package/dist/function-registry/judgments.d.ts +9 -9
  36. package/dist/function-registry/judgments.js +170 -8
  37. package/dist/function-registry/judgments.js.map +1 -1
  38. package/dist/function-registry/legacy.js +158 -5
  39. package/dist/function-registry/legacy.js.map +1 -1
  40. package/dist/function-registry/lenses.d.ts +17 -17
  41. package/dist/function-registry/lenses.js +181 -8
  42. package/dist/function-registry/lenses.js.map +1 -1
  43. package/dist/function-registry/manifest.d.ts +3 -3
  44. package/dist/function-registry/manifest.js +1 -1
  45. package/dist/function-registry/manifest.js.map +1 -1
  46. package/dist/function-registry/ontologies.d.ts +45 -45
  47. package/dist/function-registry/ontologies.js +176 -11
  48. package/dist/function-registry/ontologies.js.map +1 -1
  49. package/dist/function-registry/pipeline.d.ts +13 -13
  50. package/dist/function-registry/pipeline.js +167 -8
  51. package/dist/function-registry/pipeline.js.map +1 -1
  52. package/dist/function-registry/questions.d.ts +49 -49
  53. package/dist/function-registry/questions.js +255 -13
  54. package/dist/function-registry/questions.js.map +1 -1
  55. package/dist/function-registry/tasks.js +158 -5
  56. package/dist/function-registry/tasks.js.map +1 -1
  57. package/dist/function-registry/topics.d.ts +21 -21
  58. package/dist/function-registry/topics.js +172 -8
  59. package/dist/function-registry/topics.js.map +1 -1
  60. package/dist/function-registry/types.d.ts +1 -1
  61. package/dist/function-registry/worktrees.d.ts +80 -41
  62. package/dist/function-registry/worktrees.js +292 -17
  63. package/dist/function-registry/worktrees.js.map +1 -1
  64. package/dist/function-registry-input-audit.d.ts +13 -0
  65. package/dist/function-registry-input-audit.js +164 -0
  66. package/dist/function-registry-input-audit.js.map +1 -0
  67. package/dist/gateway.contract.d.ts +2 -0
  68. package/dist/gateway.contract.js.map +1 -1
  69. package/dist/generated/convexSchemas.js +2 -1
  70. package/dist/generated/convexSchemas.js.map +1 -1
  71. package/dist/generated/schema-manifest.json +42 -3
  72. package/dist/generated/tableOwnership.d.ts +2 -1
  73. package/dist/generated/tableOwnership.js +2 -0
  74. package/dist/generated/tableOwnership.js.map +1 -1
  75. package/dist/generated/tier-expectations.json +4 -2
  76. package/dist/index.d.ts +445 -35
  77. package/dist/index.js +1987 -17
  78. package/dist/index.js.map +1 -1
  79. package/dist/infisical-runtime.contract.d.ts +174 -0
  80. package/dist/infisical-runtime.contract.js +192 -0
  81. package/dist/infisical-runtime.contract.js.map +1 -0
  82. package/dist/mcp-gateway-boundary.contract.d.ts +181 -0
  83. package/dist/mcp-gateway-boundary.contract.js +43 -0
  84. package/dist/mcp-gateway-boundary.contract.js.map +1 -0
  85. package/dist/schemas/component-table-manifest.d.ts +2 -2
  86. package/dist/schemas/index.js +38 -1
  87. package/dist/schemas/index.js.map +1 -1
  88. package/dist/schemas/manifest.d.ts +1050 -910
  89. package/dist/schemas/manifest.js +38 -1
  90. package/dist/schemas/manifest.js.map +1 -1
  91. package/dist/schemas/sl-opinion.d.ts +4 -4
  92. package/dist/schemas/tables/identity/platform.d.ts +10 -10
  93. package/dist/schemas/tables/kernel/epistemic.d.ts +6 -6
  94. package/dist/schemas/tables/kernel/infra.d.ts +4 -4
  95. package/dist/schemas/tables/kernel/intelligence.d.ts +10 -10
  96. package/dist/schemas/tables/kernel/lens.d.ts +4 -4
  97. package/dist/schemas/tables/kernel/platform.d.ts +12 -12
  98. package/dist/schemas/tables/kernel/spine.d.ts +2 -2
  99. package/dist/schemas/tables/kernel/task.d.ts +42 -42
  100. package/dist/schemas/tables/kernel/worktree.d.ts +62 -62
  101. package/dist/schemas/tables/mc/identity.d.ts +26 -3
  102. package/dist/schemas/tables/mc/identity.js +35 -1
  103. package/dist/schemas/tables/mc/identity.js.map +1 -1
  104. package/dist/schemas/tables/mc/pack.d.ts +20 -20
  105. package/dist/schemas/tables/mc/registry.d.ts +4 -4
  106. package/dist/schemas/tables/mc/workspace.d.ts +9 -3
  107. package/dist/schemas/tables/mc/workspace.js +3 -1
  108. package/dist/schemas/tables/mc/workspace.js.map +1 -1
  109. package/dist/sdk-methods.contract.d.ts +1 -1
  110. package/dist/{sdk-tools.contract-S4ia0TTo.d.ts → sdk-tools.contract-CD-N1Jf7.d.ts} +1 -1
  111. package/dist/sdk-tools.contract.d.ts +2 -2
  112. package/dist/sdk-tools.contract.js +157 -4
  113. package/dist/sdk-tools.contract.js.map +1 -1
  114. package/dist/tenant-bootstrap-seed.contract.d.ts +1097 -0
  115. package/dist/tenant-bootstrap-seed.contract.js +651 -0
  116. package/dist/tenant-bootstrap-seed.contract.js.map +1 -0
  117. package/dist/tenant-bootstrap-seed.defaults.d.ts +16 -0
  118. package/dist/tenant-bootstrap-seed.defaults.js +303 -0
  119. package/dist/tenant-bootstrap-seed.defaults.js.map +1 -0
  120. package/dist/tenant-client.contract.d.ts +266 -0
  121. package/dist/tenant-client.contract.js +404 -0
  122. package/dist/tenant-client.contract.js.map +1 -0
  123. package/dist/{tool-contracts-C92-9ueT.d.ts → tool-contracts-BcKz-VGj.d.ts} +4 -2
  124. package/dist/tool-contracts.d.ts +1 -1
  125. package/dist/tool-contracts.js +158 -5
  126. package/dist/tool-contracts.js.map +1 -1
  127. package/package.json +1 -1
@@ -62,16 +62,16 @@ declare const worktrees: TableContract<{
62
62
  answerConfidence: z.ZodOptional<z.ZodEnum<["high", "medium", "low"]>>;
63
63
  linkedQuestionId: z.ZodOptional<z.ZodString>;
64
64
  }, "strip", z.ZodTypeAny, {
65
- status: "answered" | "forked" | "open";
65
+ status: "answered" | "open" | "forked";
66
66
  question: string;
67
- answer?: string | undefined;
68
67
  linkedQuestionId?: string | undefined;
68
+ answer?: string | undefined;
69
69
  answerConfidence?: "high" | "medium" | "low" | undefined;
70
70
  }, {
71
- status: "answered" | "forked" | "open";
71
+ status: "answered" | "open" | "forked";
72
72
  question: string;
73
- answer?: string | undefined;
74
73
  linkedQuestionId?: string | undefined;
74
+ answer?: string | undefined;
75
75
  answerConfidence?: "high" | "medium" | "low" | undefined;
76
76
  }>, "many">>;
77
77
  evidenceSignals: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -82,13 +82,13 @@ declare const worktrees: TableContract<{
82
82
  }, "strip", z.ZodTypeAny, {
83
83
  signal: string;
84
84
  collected: boolean;
85
- notes?: string | undefined;
86
85
  progress?: string | undefined;
86
+ notes?: string | undefined;
87
87
  }, {
88
88
  signal: string;
89
89
  collected: boolean;
90
- notes?: string | undefined;
91
90
  progress?: string | undefined;
91
+ notes?: string | undefined;
92
92
  }>, "many">>;
93
93
  decisionGate: z.ZodOptional<z.ZodObject<{
94
94
  goCriteria: z.ZodArray<z.ZodString, "many">;
@@ -101,15 +101,15 @@ declare const worktrees: TableContract<{
101
101
  goCriteria: string[];
102
102
  noGoSignals: string[];
103
103
  verdict?: "pending" | "go" | "no_go" | "pivot" | undefined;
104
- decidedAt?: number | undefined;
105
104
  verdictRationale?: string | undefined;
105
+ decidedAt?: number | undefined;
106
106
  decidedBy?: string | undefined;
107
107
  }, {
108
108
  goCriteria: string[];
109
109
  noGoSignals: string[];
110
110
  verdict?: "pending" | "go" | "no_go" | "pivot" | undefined;
111
- decidedAt?: number | undefined;
112
111
  verdictRationale?: string | undefined;
112
+ decidedAt?: number | undefined;
113
113
  decidedBy?: string | undefined;
114
114
  }>>;
115
115
  beliefRefinement: z.ZodOptional<z.ZodObject<{
@@ -226,12 +226,12 @@ declare const worktrees: TableContract<{
226
226
  confidenceChange: z.ZodNumber;
227
227
  }, "strip", z.ZodTypeAny, {
228
228
  summary: string;
229
- verdict: "validated" | "invalidated" | "forked" | "inconclusive";
229
+ verdict: "forked" | "validated" | "invalidated" | "inconclusive";
230
230
  whatChanged: string;
231
231
  confidenceChange: number;
232
232
  }, {
233
233
  summary: string;
234
- verdict: "validated" | "invalidated" | "forked" | "inconclusive";
234
+ verdict: "forked" | "validated" | "invalidated" | "inconclusive";
235
235
  whatChanged: string;
236
236
  confidenceChange: number;
237
237
  }>>;
@@ -279,19 +279,19 @@ declare const worktrees: TableContract<{
279
279
  weight: z.ZodOptional<z.ZodNumber>;
280
280
  createdAt: z.ZodOptional<z.ZodNumber>;
281
281
  }, "strip", z.ZodTypeAny, {
282
- edgeType: string;
283
- targetId: string;
284
282
  sourceId: string;
285
- createdAt?: number | undefined;
283
+ targetId: string;
284
+ edgeType: string;
286
285
  weight?: number | undefined;
287
286
  edgeId?: string | undefined;
287
+ createdAt?: number | undefined;
288
288
  }, {
289
- edgeType: string;
290
- targetId: string;
291
289
  sourceId: string;
292
- createdAt?: number | undefined;
290
+ targetId: string;
291
+ edgeType: string;
293
292
  weight?: number | undefined;
294
293
  edgeId?: string | undefined;
294
+ createdAt?: number | undefined;
295
295
  }>, "many">;
296
296
  relatedBeliefs: z.ZodOptional<z.ZodArray<z.ZodObject<{
297
297
  id: z.ZodString;
@@ -300,13 +300,13 @@ declare const worktrees: TableContract<{
300
300
  confidenceScore: z.ZodOptional<z.ZodNumber>;
301
301
  }, "strip", z.ZodTypeAny, {
302
302
  id: string;
303
- confidence?: string | undefined;
304
303
  text?: string | undefined;
304
+ confidence?: string | undefined;
305
305
  confidenceScore?: number | undefined;
306
306
  }, {
307
307
  id: string;
308
- confidence?: string | undefined;
309
308
  text?: string | undefined;
309
+ confidence?: string | undefined;
310
310
  confidenceScore?: number | undefined;
311
311
  }>, "many">>;
312
312
  questions: z.ZodArray<z.ZodObject<{
@@ -324,8 +324,8 @@ declare const worktrees: TableContract<{
324
324
  id: string;
325
325
  text: string;
326
326
  evidenceCount: number;
327
- answer?: string | undefined;
328
327
  priority?: string | undefined;
328
+ answer?: string | undefined;
329
329
  answerStatus?: string | undefined;
330
330
  answeredBy?: string | undefined;
331
331
  answeredAt?: number | undefined;
@@ -334,8 +334,8 @@ declare const worktrees: TableContract<{
334
334
  id: string;
335
335
  text: string;
336
336
  evidenceCount: number;
337
- answer?: string | undefined;
338
337
  priority?: string | undefined;
338
+ answer?: string | undefined;
339
339
  answerStatus?: string | undefined;
340
340
  answeredBy?: string | undefined;
341
341
  answeredAt?: number | undefined;
@@ -349,15 +349,15 @@ declare const worktrees: TableContract<{
349
349
  createdAt: z.ZodOptional<z.ZodNumber>;
350
350
  }, "strip", z.ZodTypeAny, {
351
351
  id: string;
352
- verified: boolean;
353
352
  text: string;
353
+ verified: boolean;
354
354
  createdAt?: number | undefined;
355
355
  sourceType?: string | undefined;
356
356
  verificationStatus?: string | undefined;
357
357
  }, {
358
358
  id: string;
359
- verified: boolean;
360
359
  text: string;
360
+ verified: boolean;
361
361
  createdAt?: number | undefined;
362
362
  sourceType?: string | undefined;
363
363
  verificationStatus?: string | undefined;
@@ -391,65 +391,65 @@ declare const worktrees: TableContract<{
391
391
  timestamp: z.ZodOptional<z.ZodNumber>;
392
392
  }, "strip", z.ZodTypeAny, {
393
393
  timestamp?: number | undefined;
394
- confidence?: string | undefined;
395
394
  trigger?: string | undefined;
395
+ confidence?: string | undefined;
396
396
  }, {
397
397
  timestamp?: number | undefined;
398
- confidence?: string | undefined;
399
398
  trigger?: string | undefined;
399
+ confidence?: string | undefined;
400
400
  }>, "many">;
401
401
  }, "strip", z.ZodTypeAny, {
402
402
  beliefId: string;
403
403
  recentChanges: {
404
404
  timestamp?: number | undefined;
405
- confidence?: string | undefined;
406
405
  trigger?: string | undefined;
406
+ confidence?: string | undefined;
407
407
  }[];
408
408
  }, {
409
409
  beliefId: string;
410
410
  recentChanges: {
411
411
  timestamp?: number | undefined;
412
- confidence?: string | undefined;
413
412
  trigger?: string | undefined;
413
+ confidence?: string | undefined;
414
414
  }[];
415
415
  }>, "many">>;
416
416
  }, "strip", z.ZodTypeAny, {
417
417
  evidence: {
418
418
  id: string;
419
- verified: boolean;
420
419
  text: string;
420
+ verified: boolean;
421
421
  createdAt?: number | undefined;
422
422
  sourceType?: string | undefined;
423
423
  verificationStatus?: string | undefined;
424
424
  }[];
425
425
  worktreeId: string & z.BRAND<"Id<worktrees>">;
426
- outcome: {
427
- summary: string;
428
- verdict: string;
429
- startingConfidence: number;
430
- endingConfidence: number;
431
- confidenceChange: number;
432
- };
433
426
  questions: {
434
427
  status: string;
435
428
  id: string;
436
429
  text: string;
437
430
  evidenceCount: number;
438
- answer?: string | undefined;
439
431
  priority?: string | undefined;
432
+ answer?: string | undefined;
440
433
  answerStatus?: string | undefined;
441
434
  answeredBy?: string | undefined;
442
435
  answeredAt?: number | undefined;
443
436
  }[];
437
+ outcome: {
438
+ summary: string;
439
+ verdict: string;
440
+ startingConfidence: number;
441
+ endingConfidence: number;
442
+ confidenceChange: number;
443
+ };
444
444
  capturedAt: number;
445
445
  capturedBy: string;
446
446
  clusterEdges: {
447
- edgeType: string;
448
- targetId: string;
449
447
  sourceId: string;
450
- createdAt?: number | undefined;
448
+ targetId: string;
449
+ edgeType: string;
451
450
  weight?: number | undefined;
452
451
  edgeId?: string | undefined;
452
+ createdAt?: number | undefined;
453
453
  }[];
454
454
  topicId?: string | undefined;
455
455
  primaryBelief?: {
@@ -465,8 +465,8 @@ declare const worktrees: TableContract<{
465
465
  } | undefined;
466
466
  relatedBeliefs?: {
467
467
  id: string;
468
- confidence?: string | undefined;
469
468
  text?: string | undefined;
469
+ confidence?: string | undefined;
470
470
  confidenceScore?: number | undefined;
471
471
  }[] | undefined;
472
472
  tasksCompleted?: number | undefined;
@@ -475,47 +475,47 @@ declare const worktrees: TableContract<{
475
475
  beliefId: string;
476
476
  recentChanges: {
477
477
  timestamp?: number | undefined;
478
- confidence?: string | undefined;
479
478
  trigger?: string | undefined;
479
+ confidence?: string | undefined;
480
480
  }[];
481
481
  }[] | undefined;
482
482
  }, {
483
483
  evidence: {
484
484
  id: string;
485
- verified: boolean;
486
485
  text: string;
486
+ verified: boolean;
487
487
  createdAt?: number | undefined;
488
488
  sourceType?: string | undefined;
489
489
  verificationStatus?: string | undefined;
490
490
  }[];
491
491
  worktreeId: string;
492
- outcome: {
493
- summary: string;
494
- verdict: string;
495
- startingConfidence: number;
496
- endingConfidence: number;
497
- confidenceChange: number;
498
- };
499
492
  questions: {
500
493
  status: string;
501
494
  id: string;
502
495
  text: string;
503
496
  evidenceCount: number;
504
- answer?: string | undefined;
505
497
  priority?: string | undefined;
498
+ answer?: string | undefined;
506
499
  answerStatus?: string | undefined;
507
500
  answeredBy?: string | undefined;
508
501
  answeredAt?: number | undefined;
509
502
  }[];
503
+ outcome: {
504
+ summary: string;
505
+ verdict: string;
506
+ startingConfidence: number;
507
+ endingConfidence: number;
508
+ confidenceChange: number;
509
+ };
510
510
  capturedAt: number;
511
511
  capturedBy: string;
512
512
  clusterEdges: {
513
- edgeType: string;
514
- targetId: string;
515
513
  sourceId: string;
516
- createdAt?: number | undefined;
514
+ targetId: string;
515
+ edgeType: string;
517
516
  weight?: number | undefined;
518
517
  edgeId?: string | undefined;
518
+ createdAt?: number | undefined;
519
519
  }[];
520
520
  topicId?: string | undefined;
521
521
  primaryBelief?: {
@@ -531,8 +531,8 @@ declare const worktrees: TableContract<{
531
531
  } | undefined;
532
532
  relatedBeliefs?: {
533
533
  id: string;
534
- confidence?: string | undefined;
535
534
  text?: string | undefined;
535
+ confidence?: string | undefined;
536
536
  confidenceScore?: number | undefined;
537
537
  }[] | undefined;
538
538
  tasksCompleted?: number | undefined;
@@ -541,8 +541,8 @@ declare const worktrees: TableContract<{
541
541
  beliefId: string;
542
542
  recentChanges: {
543
543
  timestamp?: number | undefined;
544
- confidence?: string | undefined;
545
544
  trigger?: string | undefined;
545
+ confidence?: string | undefined;
546
546
  }[];
547
547
  }[] | undefined;
548
548
  }>>;
@@ -589,9 +589,9 @@ declare const worktrees: TableContract<{
589
589
  }, "strip", z.ZodTypeAny, {
590
590
  status: "ai_draft" | "user_draft" | "final";
591
591
  content: string;
592
- memoContent?: string | undefined;
593
592
  generatedAt?: number | undefined;
594
593
  approvedAt?: number | undefined;
594
+ memoContent?: string | undefined;
595
595
  approvedBy?: string | undefined;
596
596
  generationMetadata?: {
597
597
  promptName: string;
@@ -601,9 +601,9 @@ declare const worktrees: TableContract<{
601
601
  }, {
602
602
  status: "ai_draft" | "user_draft" | "final";
603
603
  content: string;
604
- memoContent?: string | undefined;
605
604
  generatedAt?: number | undefined;
606
605
  approvedAt?: number | undefined;
606
+ memoContent?: string | undefined;
607
607
  approvedBy?: string | undefined;
608
608
  generationMetadata?: {
609
609
  promptName: string;
@@ -629,18 +629,18 @@ declare const worktrees: TableContract<{
629
629
  linkedQuestionId: z.ZodOptional<z.ZodString>;
630
630
  linkedBeliefId: z.ZodOptional<z.ZodString>;
631
631
  }, "strip", z.ZodTypeAny, {
632
+ id: string;
632
633
  content: string;
633
634
  createdAt: number;
634
635
  createdBy: string;
635
- id: string;
636
636
  linkedBeliefId?: string | undefined;
637
637
  linkedQuestionId?: string | undefined;
638
638
  linkedTaskId?: string | undefined;
639
639
  }, {
640
+ id: string;
640
641
  content: string;
641
642
  createdAt: number;
642
643
  createdBy: string;
643
- id: string;
644
644
  linkedBeliefId?: string | undefined;
645
645
  linkedQuestionId?: string | undefined;
646
646
  linkedTaskId?: string | undefined;
@@ -723,14 +723,14 @@ declare const worktrees: TableContract<{
723
723
  cascades: z.ZodNumber;
724
724
  other: z.ZodNumber;
725
725
  }, "strip", z.ZodTypeAny, {
726
+ dependencies: number;
726
727
  other: number;
727
728
  counterfactuals: number;
728
- dependencies: number;
729
729
  cascades: number;
730
730
  }, {
731
+ dependencies: number;
731
732
  other: number;
732
733
  counterfactuals: number;
733
- dependencies: number;
734
734
  cascades: number;
735
735
  }>>;
736
736
  mappingCompletedAt: z.ZodOptional<z.ZodNumber>;
@@ -741,9 +741,9 @@ declare const worktrees: TableContract<{
741
741
  hasDependencies: boolean;
742
742
  hasCascades: boolean;
743
743
  conditionalsByType?: {
744
+ dependencies: number;
744
745
  other: number;
745
746
  counterfactuals: number;
746
- dependencies: number;
747
747
  cascades: number;
748
748
  } | undefined;
749
749
  mappingCompletedAt?: number | undefined;
@@ -754,9 +754,9 @@ declare const worktrees: TableContract<{
754
754
  hasDependencies: boolean;
755
755
  hasCascades: boolean;
756
756
  conditionalsByType?: {
757
+ dependencies: number;
757
758
  other: number;
758
759
  counterfactuals: number;
759
- dependencies: number;
760
760
  cascades: number;
761
761
  } | undefined;
762
762
  mappingCompletedAt?: number | undefined;
@@ -62,6 +62,29 @@ declare const rateLimitWindows: TableContract<{
62
62
  createdAt: z.ZodNumber;
63
63
  updatedAt: z.ZodNumber;
64
64
  }>;
65
+ declare const oauthDeviceCodes: TableContract<{
66
+ deviceCodeHash: z.ZodString;
67
+ userCode: z.ZodString;
68
+ clientId: z.ZodString;
69
+ scope: z.ZodString;
70
+ status: z.ZodEnum<["pending", "approved", "denied", "expired", "consumed"]>;
71
+ expiresAt: z.ZodNumber;
72
+ intervalSeconds: z.ZodNumber;
73
+ lastPolledAt: z.ZodOptional<z.ZodNumber>;
74
+ slowDownCount: z.ZodOptional<z.ZodNumber>;
75
+ clerkUserId: z.ZodOptional<z.ZodString>;
76
+ tenantId: z.ZodOptional<ConvexIdSchema<"tenants">>;
77
+ workspaceId: z.ZodOptional<z.ZodString>;
78
+ principalId: z.ZodOptional<z.ZodString>;
79
+ role: z.ZodOptional<z.ZodString>;
80
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
81
+ sessionId: z.ZodOptional<z.ZodString>;
82
+ approvedAt: z.ZodOptional<z.ZodNumber>;
83
+ deniedAt: z.ZodOptional<z.ZodNumber>;
84
+ consumedAt: z.ZodOptional<z.ZodNumber>;
85
+ createdAt: z.ZodNumber;
86
+ updatedAt: z.ZodNumber;
87
+ }>;
65
88
  declare const servicePrincipalKeys: TableContract<{
66
89
  keyId: z.ZodString;
67
90
  tokenHash: z.ZodString;
@@ -105,15 +128,15 @@ declare const userSessions: TableContract<{
105
128
  }, "strip", z.ZodTypeAny, {
106
129
  principalId: string;
107
130
  principalType: "human" | "service" | "agent";
108
- sessionId?: string | undefined;
109
131
  reason?: string | undefined;
132
+ sessionId?: string | undefined;
110
133
  authMode?: "interactive_user" | "service_principal" | "tenant_api_key" | "session_token" | undefined;
111
134
  delegatedAt?: number | undefined;
112
135
  }, {
113
136
  principalId: string;
114
137
  principalType: "human" | "service" | "agent";
115
- sessionId?: string | undefined;
116
138
  reason?: string | undefined;
139
+ sessionId?: string | undefined;
117
140
  authMode?: "interactive_user" | "service_principal" | "tenant_api_key" | "session_token" | undefined;
118
141
  delegatedAt?: number | undefined;
119
142
  }>, "many">>;
@@ -131,4 +154,4 @@ declare const userSessions: TableContract<{
131
154
  updatedAt: z.ZodNumber;
132
155
  }>;
133
156
 
134
- export { groupMemberships, groups, memberships, principals, rateLimitWindows, servicePrincipalKeys, userSessions };
157
+ export { groupMemberships, groups, memberships, oauthDeviceCodes, principals, rateLimitWindows, servicePrincipalKeys, userSessions };
@@ -135,6 +135,40 @@ var rateLimitWindows = defineTable({
135
135
  { kind: "index", name: "by_tier_window_end", columns: ["tier", "windowEndMs"] }
136
136
  ]
137
137
  });
138
+ var oauthDeviceCodes = defineTable({
139
+ name: "oauthDeviceCodes",
140
+ component: "mc",
141
+ category: "identity",
142
+ shape: z.object({
143
+ "deviceCodeHash": z.string(),
144
+ "userCode": z.string(),
145
+ "clientId": z.string(),
146
+ "scope": z.string(),
147
+ "status": z.enum(["pending", "approved", "denied", "expired", "consumed"]),
148
+ "expiresAt": z.number(),
149
+ "intervalSeconds": z.number(),
150
+ "lastPolledAt": z.number().optional(),
151
+ "slowDownCount": z.number().optional(),
152
+ "clerkUserId": z.string().optional(),
153
+ "tenantId": idOf("tenants").optional(),
154
+ "workspaceId": z.string().optional(),
155
+ "principalId": z.string().optional(),
156
+ "role": z.string().optional(),
157
+ "scopes": z.array(z.string()).optional(),
158
+ "sessionId": z.string().optional(),
159
+ "approvedAt": z.number().optional(),
160
+ "deniedAt": z.number().optional(),
161
+ "consumedAt": z.number().optional(),
162
+ "createdAt": z.number(),
163
+ "updatedAt": z.number()
164
+ }),
165
+ indices: [
166
+ { kind: "index", name: "by_deviceCodeHash", columns: ["deviceCodeHash"] },
167
+ { kind: "index", name: "by_userCode", columns: ["userCode"] },
168
+ { kind: "index", name: "by_status_expiresAt", columns: ["status", "expiresAt"] },
169
+ { kind: "index", name: "by_sessionId", columns: ["sessionId"] }
170
+ ]
171
+ });
138
172
  var servicePrincipalKeys = defineTable({
139
173
  name: "servicePrincipalKeys",
140
174
  component: "mc",
@@ -216,6 +250,6 @@ var userSessions = defineTable({
216
250
  ]
217
251
  });
218
252
 
219
- export { groupMemberships, groups, memberships, principals, rateLimitWindows, servicePrincipalKeys, userSessions };
253
+ export { groupMemberships, groups, memberships, oauthDeviceCodes, principals, rateLimitWindows, servicePrincipalKeys, userSessions };
220
254
  //# sourceMappingURL=identity.js.map
221
255
  //# sourceMappingURL=identity.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/dsl/defineTable.ts","../../../../src/dsl/idOf.ts","../../../../src/schemas/tables/mc/identity.ts"],"names":["z"],"mappings":"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","file":"identity.js","sourcesContent":["import type { ZodObject, ZodRawShape } from \"zod\";\n\nexport type TableComponent = \"mc\" | \"kernel\" | \"identity\" | \"developer-pack\";\n\nexport type TableIndex =\n | {\n kind: \"index\";\n name: string;\n columns: readonly string[];\n }\n | {\n kind: \"search\";\n name: string;\n searchField: string;\n filterFields?: readonly string[];\n }\n | {\n kind: \"vector\";\n name: string;\n vectorField: string;\n dimensions: number;\n filterFields?: readonly string[];\n };\n\nexport type TableDeprecation = {\n since: string;\n reason: string;\n replacement?: string;\n};\n\nexport type TableContract<S extends ZodRawShape = ZodRawShape> = {\n name: string;\n component: TableComponent;\n category: string;\n shape: ZodObject<S>;\n indices: readonly TableIndex[];\n deprecated?: TableDeprecation;\n invariants?: readonly string[];\n};\n\nexport function defineTable<S extends ZodRawShape>(\n spec: TableContract<S>\n): TableContract<S> {\n return spec;\n}\n","import { z } from \"zod\";\n\nexport const CONVEX_ID_TABLE = Symbol.for(\"lucern.contracts.convexIdTable\");\n\nexport type ConvexIdSchema<T extends string> = z.ZodBranded<\n z.ZodString,\n `Id<${T}>`\n> & {\n readonly [CONVEX_ID_TABLE]: T;\n};\n\nexport function idOf<T extends string>(table: T): ConvexIdSchema<T> {\n const schema = z.string().brand<`Id<${T}>`>();\n Object.defineProperty(schema, CONVEX_ID_TABLE, {\n configurable: false,\n enumerable: false,\n value: table,\n writable: false,\n });\n return schema as ConvexIdSchema<T>;\n}\n\nexport function getConvexIdTable(schema: z.ZodTypeAny): string | undefined {\n return (schema as Partial<Record<typeof CONVEX_ID_TABLE, string>>)[\n CONVEX_ID_TABLE\n ];\n}\n","/**\n * Schema contracts for mc/identity.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const groupMemberships = defineTable({\n name: \"groupMemberships\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"groupId\": idOf(\"groups\"),\n \"principalId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"status\": z.enum([\"active\", \"invited\", \"revoked\"]),\n \"addedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_groupId\", columns: [\"groupId\"] },\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_principal_group\", columns: [\"principalId\", \"groupId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const groups = defineTable({\n name: \"groups\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"groupKey\": z.string(),\n \"name\": z.string(),\n \"groupType\": z.enum([\"internal\", \"external\", \"system\"]),\n \"description\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenantId_groupKey\", columns: [\"tenantId\", \"groupKey\"] }\n ],\n});\n\nexport const memberships = defineTable({\n name: \"memberships\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"principalId\": z.string(),\n \"principalRefId\": idOf(\"principals\").optional(),\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"role\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]),\n \"status\": z.enum([\"active\", \"invited\", \"revoked\"]),\n \"source\": z.enum([\"manual\", \"sso\", \"bootstrap\", \"api\", \"scim\"]),\n \"grantedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_principal_tenant\", columns: [\"principalId\", \"tenantId\"] },\n { kind: 'index', name: \"by_workspace_principal\", columns: [\"workspaceId\", \"principalId\"] },\n { kind: 'index', name: \"by_tenant_role\", columns: [\"tenantId\", \"role\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const principals = defineTable({\n name: \"principals\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"principalId\": z.string(),\n \"principalType\": z.enum([\"user\", \"group\", \"service\", \"external_viewer\"]),\n \"clerkId\": z.string().optional(),\n \"email\": z.string().optional(),\n \"displayName\": z.string().optional(),\n \"groupIds\": z.array(idOf(\"groups\")).optional(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"status\": z.enum([\"active\", \"invited\", \"suspended\", \"disabled\"]),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_clerkId\", columns: [\"clerkId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const rateLimitWindows = defineTable({\n name: \"rateLimitWindows\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"principalId\": z.string(),\n \"keyId\": z.string().optional(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"windowType\": z.enum([\"minute\", \"hour\"]),\n \"windowStartMs\": z.number(),\n \"windowEndMs\": z.number(),\n \"requestCount\": z.number(),\n \"limit\": z.number(),\n \"tier\": z.enum([\"free\", \"developer\", \"partner\"]),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principal_window\", columns: [\"principalId\", \"windowType\", \"windowStartMs\"] },\n { kind: 'index', name: \"by_window_type_start\", columns: [\"windowType\", \"windowStartMs\"] },\n { kind: 'index', name: \"by_window_end\", columns: [\"windowEndMs\"] },\n { kind: 'index', name: \"by_tier_window_end\", columns: [\"tier\", \"windowEndMs\"] }\n ],\n});\n\nexport const servicePrincipalKeys = defineTable({\n name: \"servicePrincipalKeys\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"keyId\": z.string(),\n \"tokenHash\": z.string(),\n \"principalId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"scopes\": z.array(z.string()),\n \"environment\": z.enum([\"sandbox\", \"production\"]),\n \"status\": z.enum([\"active\", \"rotating\", \"rotated\", \"expired\", \"revoked\"]),\n \"expiresAt\": z.number(),\n \"rotationGracePeriod\": z.number().optional(),\n \"rotatedToKeyId\": z.string().optional(),\n \"rateLimitTier\": z.enum([\"free\", \"developer\", \"partner\"]).optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"revokedBy\": z.string().optional(),\n \"revokedAt\": z.number().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_keyId\", columns: [\"keyId\"] },\n { kind: 'index', name: \"by_tokenHash\", columns: [\"tokenHash\"] },\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_principal_status\", columns: [\"principalId\", \"status\"] }\n ],\n});\n\nexport const userSessions = defineTable({\n name: \"userSessions\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"sessionId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"clerkUserId\": z.string(),\n \"principalId\": z.string().optional(),\n \"principalType\": z.enum([\"human\", \"service\", \"agent\"]).optional(),\n \"workspaceId\": z.string().optional(),\n \"apiKeyId\": idOf(\"apiKeys\"),\n \"sessionType\": z.enum([\"user\", \"agent\"]),\n \"authMode\": z.enum([\"interactive_user\", \"service_principal\", \"tenant_api_key\", \"session_token\"]).optional(),\n \"role\": z.string().optional(),\n \"scopes\": z.array(z.string()).optional(),\n \"delegationChain\": z.array(z.object({\n \"principalId\": z.string(),\n \"principalType\": z.enum([\"human\", \"service\", \"agent\"]),\n \"authMode\": z.enum([\"interactive_user\", \"service_principal\", \"tenant_api_key\", \"session_token\"]).optional(),\n \"sessionId\": z.string().optional(),\n \"delegatedAt\": z.number().optional(),\n \"reason\": z.string().optional()\n })).optional(),\n \"sourceSessionId\": z.string().optional(),\n \"status\": z.enum([\"active\", \"expired\", \"revoked\"]),\n \"sessionExpiresAt\": z.number().optional(),\n \"jwtIssuedAt\": z.number().optional(),\n \"jwtExpiresAt\": z.number().optional(),\n \"lastActivityAt\": z.number(),\n \"lastValidatedAt\": z.number().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"revokeReason\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_sessionId\", columns: [\"sessionId\"] },\n { kind: 'index', name: \"by_sourceSessionId\", columns: [\"sourceSessionId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_clerkUserId\", columns: [\"clerkUserId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n"]}
1
+ {"version":3,"sources":["../../../../src/dsl/defineTable.ts","../../../../src/dsl/idOf.ts","../../../../src/schemas/tables/mc/identity.ts"],"names":["z"],"mappings":"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","file":"identity.js","sourcesContent":["import type { ZodObject, ZodRawShape } from \"zod\";\n\nexport type TableComponent = \"mc\" | \"kernel\" | \"identity\" | \"developer-pack\";\n\nexport type TableIndex =\n | {\n kind: \"index\";\n name: string;\n columns: readonly string[];\n }\n | {\n kind: \"search\";\n name: string;\n searchField: string;\n filterFields?: readonly string[];\n }\n | {\n kind: \"vector\";\n name: string;\n vectorField: string;\n dimensions: number;\n filterFields?: readonly string[];\n };\n\nexport type TableDeprecation = {\n since: string;\n reason: string;\n replacement?: string;\n};\n\nexport type TableContract<S extends ZodRawShape = ZodRawShape> = {\n name: string;\n component: TableComponent;\n category: string;\n shape: ZodObject<S>;\n indices: readonly TableIndex[];\n deprecated?: TableDeprecation;\n invariants?: readonly string[];\n};\n\nexport function defineTable<S extends ZodRawShape>(\n spec: TableContract<S>\n): TableContract<S> {\n return spec;\n}\n","import { z } from \"zod\";\n\nexport const CONVEX_ID_TABLE = Symbol.for(\"lucern.contracts.convexIdTable\");\n\nexport type ConvexIdSchema<T extends string> = z.ZodBranded<\n z.ZodString,\n `Id<${T}>`\n> & {\n readonly [CONVEX_ID_TABLE]: T;\n};\n\nexport function idOf<T extends string>(table: T): ConvexIdSchema<T> {\n const schema = z.string().brand<`Id<${T}>`>();\n Object.defineProperty(schema, CONVEX_ID_TABLE, {\n configurable: false,\n enumerable: false,\n value: table,\n writable: false,\n });\n return schema as ConvexIdSchema<T>;\n}\n\nexport function getConvexIdTable(schema: z.ZodTypeAny): string | undefined {\n return (schema as Partial<Record<typeof CONVEX_ID_TABLE, string>>)[\n CONVEX_ID_TABLE\n ];\n}\n","/**\n * Schema contracts for mc/identity.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const groupMemberships = defineTable({\n name: \"groupMemberships\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"groupId\": idOf(\"groups\"),\n \"principalId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"status\": z.enum([\"active\", \"invited\", \"revoked\"]),\n \"addedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_groupId\", columns: [\"groupId\"] },\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_principal_group\", columns: [\"principalId\", \"groupId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const groups = defineTable({\n name: \"groups\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"groupKey\": z.string(),\n \"name\": z.string(),\n \"groupType\": z.enum([\"internal\", \"external\", \"system\"]),\n \"description\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenantId_groupKey\", columns: [\"tenantId\", \"groupKey\"] }\n ],\n});\n\nexport const memberships = defineTable({\n name: \"memberships\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"principalId\": z.string(),\n \"principalRefId\": idOf(\"principals\").optional(),\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"role\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]),\n \"status\": z.enum([\"active\", \"invited\", \"revoked\"]),\n \"source\": z.enum([\"manual\", \"sso\", \"bootstrap\", \"api\", \"scim\"]),\n \"grantedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_principal_tenant\", columns: [\"principalId\", \"tenantId\"] },\n { kind: 'index', name: \"by_workspace_principal\", columns: [\"workspaceId\", \"principalId\"] },\n { kind: 'index', name: \"by_tenant_role\", columns: [\"tenantId\", \"role\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const principals = defineTable({\n name: \"principals\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"principalId\": z.string(),\n \"principalType\": z.enum([\"user\", \"group\", \"service\", \"external_viewer\"]),\n \"clerkId\": z.string().optional(),\n \"email\": z.string().optional(),\n \"displayName\": z.string().optional(),\n \"groupIds\": z.array(idOf(\"groups\")).optional(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"status\": z.enum([\"active\", \"invited\", \"suspended\", \"disabled\"]),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_clerkId\", columns: [\"clerkId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const rateLimitWindows = defineTable({\n name: \"rateLimitWindows\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"principalId\": z.string(),\n \"keyId\": z.string().optional(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"windowType\": z.enum([\"minute\", \"hour\"]),\n \"windowStartMs\": z.number(),\n \"windowEndMs\": z.number(),\n \"requestCount\": z.number(),\n \"limit\": z.number(),\n \"tier\": z.enum([\"free\", \"developer\", \"partner\"]),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principal_window\", columns: [\"principalId\", \"windowType\", \"windowStartMs\"] },\n { kind: 'index', name: \"by_window_type_start\", columns: [\"windowType\", \"windowStartMs\"] },\n { kind: 'index', name: \"by_window_end\", columns: [\"windowEndMs\"] },\n { kind: 'index', name: \"by_tier_window_end\", columns: [\"tier\", \"windowEndMs\"] }\n ],\n});\n\nexport const oauthDeviceCodes = defineTable({\n name: \"oauthDeviceCodes\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"deviceCodeHash\": z.string(),\n \"userCode\": z.string(),\n \"clientId\": z.string(),\n \"scope\": z.string(),\n \"status\": z.enum([\"pending\", \"approved\", \"denied\", \"expired\", \"consumed\"]),\n \"expiresAt\": z.number(),\n \"intervalSeconds\": z.number(),\n \"lastPolledAt\": z.number().optional(),\n \"slowDownCount\": z.number().optional(),\n \"clerkUserId\": z.string().optional(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": z.string().optional(),\n \"principalId\": z.string().optional(),\n \"role\": z.string().optional(),\n \"scopes\": z.array(z.string()).optional(),\n \"sessionId\": z.string().optional(),\n \"approvedAt\": z.number().optional(),\n \"deniedAt\": z.number().optional(),\n \"consumedAt\": z.number().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_deviceCodeHash\", columns: [\"deviceCodeHash\"] },\n { kind: 'index', name: \"by_userCode\", columns: [\"userCode\"] },\n { kind: 'index', name: \"by_status_expiresAt\", columns: [\"status\", \"expiresAt\"] },\n { kind: 'index', name: \"by_sessionId\", columns: [\"sessionId\"] }\n ],\n});\n\nexport const servicePrincipalKeys = defineTable({\n name: \"servicePrincipalKeys\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"keyId\": z.string(),\n \"tokenHash\": z.string(),\n \"principalId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"scopes\": z.array(z.string()),\n \"environment\": z.enum([\"sandbox\", \"production\"]),\n \"status\": z.enum([\"active\", \"rotating\", \"rotated\", \"expired\", \"revoked\"]),\n \"expiresAt\": z.number(),\n \"rotationGracePeriod\": z.number().optional(),\n \"rotatedToKeyId\": z.string().optional(),\n \"rateLimitTier\": z.enum([\"free\", \"developer\", \"partner\"]).optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"revokedBy\": z.string().optional(),\n \"revokedAt\": z.number().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_keyId\", columns: [\"keyId\"] },\n { kind: 'index', name: \"by_tokenHash\", columns: [\"tokenHash\"] },\n { kind: 'index', name: \"by_principalId\", columns: [\"principalId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_principal_status\", columns: [\"principalId\", \"status\"] }\n ],\n});\n\nexport const userSessions = defineTable({\n name: \"userSessions\",\n component: \"mc\",\n category: \"identity\",\n shape: z.object({\n \"sessionId\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"clerkUserId\": z.string(),\n \"principalId\": z.string().optional(),\n \"principalType\": z.enum([\"human\", \"service\", \"agent\"]).optional(),\n \"workspaceId\": z.string().optional(),\n \"apiKeyId\": idOf(\"apiKeys\"),\n \"sessionType\": z.enum([\"user\", \"agent\"]),\n \"authMode\": z.enum([\"interactive_user\", \"service_principal\", \"tenant_api_key\", \"session_token\"]).optional(),\n \"role\": z.string().optional(),\n \"scopes\": z.array(z.string()).optional(),\n \"delegationChain\": z.array(z.object({\n \"principalId\": z.string(),\n \"principalType\": z.enum([\"human\", \"service\", \"agent\"]),\n \"authMode\": z.enum([\"interactive_user\", \"service_principal\", \"tenant_api_key\", \"session_token\"]).optional(),\n \"sessionId\": z.string().optional(),\n \"delegatedAt\": z.number().optional(),\n \"reason\": z.string().optional()\n })).optional(),\n \"sourceSessionId\": z.string().optional(),\n \"status\": z.enum([\"active\", \"expired\", \"revoked\"]),\n \"sessionExpiresAt\": z.number().optional(),\n \"jwtIssuedAt\": z.number().optional(),\n \"jwtExpiresAt\": z.number().optional(),\n \"lastActivityAt\": z.number(),\n \"lastValidatedAt\": z.number().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"revokeReason\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_sessionId\", columns: [\"sessionId\"] },\n { kind: 'index', name: \"by_sourceSessionId\", columns: [\"sourceSessionId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_clerkUserId\", columns: [\"clerkUserId\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n"]}