@medicine-wheel/infra 0.5.7 → 0.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/schemas.d.ts CHANGED
@@ -13,6 +13,12 @@ export declare const MetisHoldSchema: z.ZodObject<{
13
13
  exceptions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
14
14
  invisibleWork: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
15
15
  notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
16
+ /**
17
+ * `.min(1)` is load-bearing. An empty string passes every other check while
18
+ * anonymising the carrier — which is precisely the erasure this field exists
19
+ * to refuse. Absent means nobody was named; empty means somebody was named
20
+ * nothing, and only one of those is honest.
21
+ */
16
22
  heldBy: z.ZodOptional<z.ZodString>;
17
23
  }, "strip", z.ZodTypeAny, {
18
24
  exceptions?: string[] | undefined;
@@ -77,6 +83,12 @@ export declare const HostFacetSchema: z.ZodObject<{
77
83
  exceptions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
78
84
  invisibleWork: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
79
85
  notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
86
+ /**
87
+ * `.min(1)` is load-bearing. An empty string passes every other check while
88
+ * anonymising the carrier — which is precisely the erasure this field exists
89
+ * to refuse. Absent means nobody was named; empty means somebody was named
90
+ * nothing, and only one of those is honest.
91
+ */
80
92
  heldBy: z.ZodOptional<z.ZodString>;
81
93
  }, "strip", z.ZodTypeAny, {
82
94
  exceptions?: string[] | undefined;
@@ -125,6 +137,12 @@ export declare const TenantFacetSchema: z.ZodObject<{
125
137
  exceptions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
126
138
  invisibleWork: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
127
139
  notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
140
+ /**
141
+ * `.min(1)` is load-bearing. An empty string passes every other check while
142
+ * anonymising the carrier — which is precisely the erasure this field exists
143
+ * to refuse. Absent means nobody was named; empty means somebody was named
144
+ * nothing, and only one of those is honest.
145
+ */
128
146
  heldBy: z.ZodOptional<z.ZodString>;
129
147
  }, "strip", z.ZodTypeAny, {
130
148
  exceptions?: string[] | undefined;
@@ -191,6 +209,12 @@ export declare const ServiceFacetSchema: z.ZodObject<{
191
209
  exceptions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
192
210
  invisibleWork: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
193
211
  notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
212
+ /**
213
+ * `.min(1)` is load-bearing. An empty string passes every other check while
214
+ * anonymising the carrier — which is precisely the erasure this field exists
215
+ * to refuse. Absent means nobody was named; empty means somebody was named
216
+ * nothing, and only one of those is honest.
217
+ */
194
218
  heldBy: z.ZodOptional<z.ZodString>;
195
219
  }, "strip", z.ZodTypeAny, {
196
220
  exceptions?: string[] | undefined;
@@ -242,10 +266,392 @@ export declare const ServiceFacetSchema: z.ZodObject<{
242
266
  workingDirectory?: string | undefined;
243
267
  execStop?: string | undefined;
244
268
  }>;
269
+ export declare const PreconditionKindSchema: z.ZodEnum<["linger", "port-free", "unit-present", "working-directory"]>;
270
+ /**
271
+ * `observed` is `.optional()` and NOT `.default()`. An unread fact must stay
272
+ * distinguishable from a read one — a default would quietly turn "nobody looked"
273
+ * into a value, which is the exact confusion `preconditionGuard` returns
274
+ * `unknown` to prevent.
275
+ */
276
+ export declare const MachineFactSchema: z.ZodObject<{
277
+ kind: z.ZodEnum<["linger", "port-free", "unit-present", "working-directory"]>;
278
+ facetNodeId: z.ZodString;
279
+ expected: z.ZodString;
280
+ observed: z.ZodOptional<z.ZodString>;
281
+ observedAt: z.ZodOptional<z.ZodString>;
282
+ }, "strip", z.ZodTypeAny, {
283
+ expected: string;
284
+ kind: "linger" | "port-free" | "unit-present" | "working-directory";
285
+ facetNodeId: string;
286
+ observed?: string | undefined;
287
+ observedAt?: string | undefined;
288
+ }, {
289
+ expected: string;
290
+ kind: "linger" | "port-free" | "unit-present" | "working-directory";
291
+ facetNodeId: string;
292
+ observed?: string | undefined;
293
+ observedAt?: string | undefined;
294
+ }>;
295
+ /**
296
+ * `state` is a bare string, not an enum. `infra` records what the consent
297
+ * lifecycle said; it does not get to decide which states exist, and an enum here
298
+ * would let this package reject a state the lifecycle legitimately issued.
299
+ */
300
+ export declare const ConsentReferenceSchema: z.ZodObject<{
301
+ consentId: z.ZodString;
302
+ state: z.ZodOptional<z.ZodString>;
303
+ readAt: z.ZodOptional<z.ZodString>;
304
+ }, "strip", z.ZodTypeAny, {
305
+ consentId: string;
306
+ state?: string | undefined;
307
+ readAt?: string | undefined;
308
+ }, {
309
+ consentId: string;
310
+ state?: string | undefined;
311
+ readAt?: string | undefined;
312
+ }>;
313
+ export declare const PreconditionSchema: z.ZodObject<{
314
+ id: z.ZodString;
315
+ gates: z.ZodString;
316
+ description: z.ZodOptional<z.ZodString>;
317
+ fact: z.ZodOptional<z.ZodObject<{
318
+ kind: z.ZodEnum<["linger", "port-free", "unit-present", "working-directory"]>;
319
+ facetNodeId: z.ZodString;
320
+ expected: z.ZodString;
321
+ observed: z.ZodOptional<z.ZodString>;
322
+ observedAt: z.ZodOptional<z.ZodString>;
323
+ }, "strip", z.ZodTypeAny, {
324
+ expected: string;
325
+ kind: "linger" | "port-free" | "unit-present" | "working-directory";
326
+ facetNodeId: string;
327
+ observed?: string | undefined;
328
+ observedAt?: string | undefined;
329
+ }, {
330
+ expected: string;
331
+ kind: "linger" | "port-free" | "unit-present" | "working-directory";
332
+ facetNodeId: string;
333
+ observed?: string | undefined;
334
+ observedAt?: string | undefined;
335
+ }>>;
336
+ consent: z.ZodOptional<z.ZodObject<{
337
+ consentId: z.ZodString;
338
+ state: z.ZodOptional<z.ZodString>;
339
+ readAt: z.ZodOptional<z.ZodString>;
340
+ }, "strip", z.ZodTypeAny, {
341
+ consentId: string;
342
+ state?: string | undefined;
343
+ readAt?: string | undefined;
344
+ }, {
345
+ consentId: string;
346
+ state?: string | undefined;
347
+ readAt?: string | undefined;
348
+ }>>;
349
+ metis: z.ZodOptional<z.ZodObject<{
350
+ exceptions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
351
+ invisibleWork: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
352
+ notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
353
+ /**
354
+ * `.min(1)` is load-bearing. An empty string passes every other check while
355
+ * anonymising the carrier — which is precisely the erasure this field exists
356
+ * to refuse. Absent means nobody was named; empty means somebody was named
357
+ * nothing, and only one of those is honest.
358
+ */
359
+ heldBy: z.ZodOptional<z.ZodString>;
360
+ }, "strip", z.ZodTypeAny, {
361
+ exceptions?: string[] | undefined;
362
+ invisibleWork?: string[] | undefined;
363
+ notes?: string[] | undefined;
364
+ heldBy?: string | undefined;
365
+ }, {
366
+ exceptions?: string[] | undefined;
367
+ invisibleWork?: string[] | undefined;
368
+ notes?: string[] | undefined;
369
+ heldBy?: string | undefined;
370
+ }>>;
371
+ }, "strip", z.ZodTypeAny, {
372
+ id: string;
373
+ gates: string;
374
+ metis?: {
375
+ exceptions?: string[] | undefined;
376
+ invisibleWork?: string[] | undefined;
377
+ notes?: string[] | undefined;
378
+ heldBy?: string | undefined;
379
+ } | undefined;
380
+ description?: string | undefined;
381
+ fact?: {
382
+ expected: string;
383
+ kind: "linger" | "port-free" | "unit-present" | "working-directory";
384
+ facetNodeId: string;
385
+ observed?: string | undefined;
386
+ observedAt?: string | undefined;
387
+ } | undefined;
388
+ consent?: {
389
+ consentId: string;
390
+ state?: string | undefined;
391
+ readAt?: string | undefined;
392
+ } | undefined;
393
+ }, {
394
+ id: string;
395
+ gates: string;
396
+ metis?: {
397
+ exceptions?: string[] | undefined;
398
+ invisibleWork?: string[] | undefined;
399
+ notes?: string[] | undefined;
400
+ heldBy?: string | undefined;
401
+ } | undefined;
402
+ description?: string | undefined;
403
+ fact?: {
404
+ expected: string;
405
+ kind: "linger" | "port-free" | "unit-present" | "working-directory";
406
+ facetNodeId: string;
407
+ observed?: string | undefined;
408
+ observedAt?: string | undefined;
409
+ } | undefined;
410
+ consent?: {
411
+ consentId: string;
412
+ state?: string | undefined;
413
+ readAt?: string | undefined;
414
+ } | undefined;
415
+ }>;
416
+ export declare const PreconditionVerdictSchema: z.ZodEnum<["satisfied", "unsatisfied", "unauthorized", "unknown"]>;
417
+ export declare const DriftStateSchema: z.ZodEnum<["converged", "drifted", "unrealized", "undeclared"]>;
418
+ /**
419
+ * `observedBy` and `observedAt` are required. An observation without a reader
420
+ * and a time is a rumour, and this schema is the boundary that refuses one.
421
+ */
422
+ export declare const ObservedStateSchema: z.ZodObject<{
423
+ observedBy: z.ZodString;
424
+ /**
425
+ * `.datetime()`, not `.min(1)`. An unparseable stamp made `observationAgeMs`
426
+ * vanish from the result — the same output as "no `now` was given" — so a
427
+ * caller whose entire reason to read that field is *refuse a stale reading*
428
+ * could not tell a garbage timestamp from a deliberate clock-free call, and
429
+ * would proceed.
430
+ */
431
+ observedAt: z.ZodString;
432
+ services: z.ZodArray<z.ZodObject<{
433
+ nodeId: z.ZodString;
434
+ unit: z.ZodString;
435
+ scope: z.ZodEnum<["user", "system"]>;
436
+ ownedBy: z.ZodString;
437
+ ports: z.ZodArray<z.ZodObject<{
438
+ port: z.ZodNumber;
439
+ proto: z.ZodOptional<z.ZodEnum<["tcp", "udp"]>>;
440
+ host: z.ZodString;
441
+ boundBy: z.ZodString;
442
+ }, "strip", z.ZodTypeAny, {
443
+ host: string;
444
+ port: number;
445
+ boundBy: string;
446
+ proto?: "tcp" | "udp" | undefined;
447
+ }, {
448
+ host: string;
449
+ port: number;
450
+ boundBy: string;
451
+ proto?: "tcp" | "udp" | undefined;
452
+ }>, "many">;
453
+ workingDirectory: z.ZodOptional<z.ZodString>;
454
+ execStop: z.ZodOptional<z.ZodString>;
455
+ metis: z.ZodOptional<z.ZodObject<{
456
+ exceptions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
457
+ invisibleWork: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
458
+ notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
459
+ /**
460
+ * `.min(1)` is load-bearing. An empty string passes every other check while
461
+ * anonymising the carrier — which is precisely the erasure this field exists
462
+ * to refuse. Absent means nobody was named; empty means somebody was named
463
+ * nothing, and only one of those is honest.
464
+ */
465
+ heldBy: z.ZodOptional<z.ZodString>;
466
+ }, "strip", z.ZodTypeAny, {
467
+ exceptions?: string[] | undefined;
468
+ invisibleWork?: string[] | undefined;
469
+ notes?: string[] | undefined;
470
+ heldBy?: string | undefined;
471
+ }, {
472
+ exceptions?: string[] | undefined;
473
+ invisibleWork?: string[] | undefined;
474
+ notes?: string[] | undefined;
475
+ heldBy?: string | undefined;
476
+ }>>;
477
+ }, "strip", z.ZodTypeAny, {
478
+ nodeId: string;
479
+ unit: string;
480
+ scope: "user" | "system";
481
+ ownedBy: string;
482
+ ports: {
483
+ host: string;
484
+ port: number;
485
+ boundBy: string;
486
+ proto?: "tcp" | "udp" | undefined;
487
+ }[];
488
+ metis?: {
489
+ exceptions?: string[] | undefined;
490
+ invisibleWork?: string[] | undefined;
491
+ notes?: string[] | undefined;
492
+ heldBy?: string | undefined;
493
+ } | undefined;
494
+ workingDirectory?: string | undefined;
495
+ execStop?: string | undefined;
496
+ }, {
497
+ nodeId: string;
498
+ unit: string;
499
+ scope: "user" | "system";
500
+ ownedBy: string;
501
+ ports: {
502
+ host: string;
503
+ port: number;
504
+ boundBy: string;
505
+ proto?: "tcp" | "udp" | undefined;
506
+ }[];
507
+ metis?: {
508
+ exceptions?: string[] | undefined;
509
+ invisibleWork?: string[] | undefined;
510
+ notes?: string[] | undefined;
511
+ heldBy?: string | undefined;
512
+ } | undefined;
513
+ workingDirectory?: string | undefined;
514
+ execStop?: string | undefined;
515
+ }>, "many">;
516
+ tenants: z.ZodOptional<z.ZodArray<z.ZodObject<{
517
+ nodeId: z.ZodString;
518
+ account: z.ZodString;
519
+ uid: z.ZodOptional<z.ZodNumber>;
520
+ home: z.ZodOptional<z.ZodString>;
521
+ onHost: z.ZodString;
522
+ linger: z.ZodEnum<["enabled", "disabled", "unknown"]>;
523
+ metis: z.ZodOptional<z.ZodObject<{
524
+ exceptions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
525
+ invisibleWork: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
526
+ notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
527
+ /**
528
+ * `.min(1)` is load-bearing. An empty string passes every other check while
529
+ * anonymising the carrier — which is precisely the erasure this field exists
530
+ * to refuse. Absent means nobody was named; empty means somebody was named
531
+ * nothing, and only one of those is honest.
532
+ */
533
+ heldBy: z.ZodOptional<z.ZodString>;
534
+ }, "strip", z.ZodTypeAny, {
535
+ exceptions?: string[] | undefined;
536
+ invisibleWork?: string[] | undefined;
537
+ notes?: string[] | undefined;
538
+ heldBy?: string | undefined;
539
+ }, {
540
+ exceptions?: string[] | undefined;
541
+ invisibleWork?: string[] | undefined;
542
+ notes?: string[] | undefined;
543
+ heldBy?: string | undefined;
544
+ }>>;
545
+ }, "strip", z.ZodTypeAny, {
546
+ nodeId: string;
547
+ account: string;
548
+ onHost: string;
549
+ linger: "enabled" | "disabled" | "unknown";
550
+ metis?: {
551
+ exceptions?: string[] | undefined;
552
+ invisibleWork?: string[] | undefined;
553
+ notes?: string[] | undefined;
554
+ heldBy?: string | undefined;
555
+ } | undefined;
556
+ uid?: number | undefined;
557
+ home?: string | undefined;
558
+ }, {
559
+ nodeId: string;
560
+ account: string;
561
+ onHost: string;
562
+ linger: "enabled" | "disabled" | "unknown";
563
+ metis?: {
564
+ exceptions?: string[] | undefined;
565
+ invisibleWork?: string[] | undefined;
566
+ notes?: string[] | undefined;
567
+ heldBy?: string | undefined;
568
+ } | undefined;
569
+ uid?: number | undefined;
570
+ home?: string | undefined;
571
+ }>, "many">>;
572
+ }, "strip", z.ZodTypeAny, {
573
+ observedAt: string;
574
+ observedBy: string;
575
+ services: {
576
+ nodeId: string;
577
+ unit: string;
578
+ scope: "user" | "system";
579
+ ownedBy: string;
580
+ ports: {
581
+ host: string;
582
+ port: number;
583
+ boundBy: string;
584
+ proto?: "tcp" | "udp" | undefined;
585
+ }[];
586
+ metis?: {
587
+ exceptions?: string[] | undefined;
588
+ invisibleWork?: string[] | undefined;
589
+ notes?: string[] | undefined;
590
+ heldBy?: string | undefined;
591
+ } | undefined;
592
+ workingDirectory?: string | undefined;
593
+ execStop?: string | undefined;
594
+ }[];
595
+ tenants?: {
596
+ nodeId: string;
597
+ account: string;
598
+ onHost: string;
599
+ linger: "enabled" | "disabled" | "unknown";
600
+ metis?: {
601
+ exceptions?: string[] | undefined;
602
+ invisibleWork?: string[] | undefined;
603
+ notes?: string[] | undefined;
604
+ heldBy?: string | undefined;
605
+ } | undefined;
606
+ uid?: number | undefined;
607
+ home?: string | undefined;
608
+ }[] | undefined;
609
+ }, {
610
+ observedAt: string;
611
+ observedBy: string;
612
+ services: {
613
+ nodeId: string;
614
+ unit: string;
615
+ scope: "user" | "system";
616
+ ownedBy: string;
617
+ ports: {
618
+ host: string;
619
+ port: number;
620
+ boundBy: string;
621
+ proto?: "tcp" | "udp" | undefined;
622
+ }[];
623
+ metis?: {
624
+ exceptions?: string[] | undefined;
625
+ invisibleWork?: string[] | undefined;
626
+ notes?: string[] | undefined;
627
+ heldBy?: string | undefined;
628
+ } | undefined;
629
+ workingDirectory?: string | undefined;
630
+ execStop?: string | undefined;
631
+ }[];
632
+ tenants?: {
633
+ nodeId: string;
634
+ account: string;
635
+ onHost: string;
636
+ linger: "enabled" | "disabled" | "unknown";
637
+ metis?: {
638
+ exceptions?: string[] | undefined;
639
+ invisibleWork?: string[] | undefined;
640
+ notes?: string[] | undefined;
641
+ heldBy?: string | undefined;
642
+ } | undefined;
643
+ uid?: number | undefined;
644
+ home?: string | undefined;
645
+ }[] | undefined;
646
+ }>;
245
647
  export type ValidatedMetisHold = z.infer<typeof MetisHoldSchema>;
246
648
  export type ValidatedPortBinding = z.infer<typeof PortBindingSchema>;
247
649
  export type ValidatedPortConflict = z.infer<typeof PortConflictSchema>;
248
650
  export type ValidatedHostFacet = z.infer<typeof HostFacetSchema>;
249
651
  export type ValidatedTenantFacet = z.infer<typeof TenantFacetSchema>;
250
652
  export type ValidatedServiceFacet = z.infer<typeof ServiceFacetSchema>;
653
+ export type ValidatedMachineFact = z.infer<typeof MachineFactSchema>;
654
+ export type ValidatedConsentReference = z.infer<typeof ConsentReferenceSchema>;
655
+ export type ValidatedPrecondition = z.infer<typeof PreconditionSchema>;
656
+ export type ValidatedObservedState = z.infer<typeof ObservedStateSchema>;
251
657
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAIH,eAAO,MAAM,iBAAiB,+CAA6C,CAAC;AAE5E,eAAO,MAAM,kBAAkB,sDAAoD,CAAC;AAEpF,eAAO,MAAM,eAAe,2BAAyB,CAAC;AAEtD,eAAO,MAAM,kBAAkB,+BAA6B,CAAC;AAI7D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aAAqC,CAAC;AAEnE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAIH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAOH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;IAI1B;;;;;OAKG;;;;;;;;;;;;EAEH,CAAC;AAIH,eAAO,MAAM,iBAAiB,+CAA6C,CAAC;AAE5E,eAAO,MAAM,kBAAkB,sDAAoD,CAAC;AAEpF,eAAO,MAAM,eAAe,2BAAyB,CAAC;AAEtD,eAAO,MAAM,kBAAkB,+BAA6B,CAAC;AAI7D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aAAqC,CAAC;AAEnE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAIH,eAAO,MAAM,eAAe;;;;;;;;;;QA5C1B;;;;;WAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CH,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;QArD5B;;;;;WAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDH,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;QA/D7B;;;;;WAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEH,CAAC;AAIH,eAAO,MAAM,sBAAsB,yEAKjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA5G7B;;;;;WAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8GH,CAAC;AAEH,eAAO,MAAM,yBAAyB,oEAKpC,CAAC;AAIH,eAAO,MAAM,gBAAgB,iEAA+D,CAAC;AAE7F;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;IAE9B;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA5IH;;;;;eAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YALH;;;;;eAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2IH,CAAC;AAOH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACrE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC/E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACvE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
package/dist/schemas.js CHANGED
@@ -10,14 +10,20 @@
10
10
  * Spec: /opt/eury/rispecs/foundations/02-specifications.md §S1.
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.ServiceFacetSchema = exports.TenantFacetSchema = exports.HostFacetSchema = exports.PortConflictSchema = exports.PortBindingSchema = exports.PortNumberSchema = exports.ServiceScopeSchema = exports.PortProtoSchema = exports.ReachabilitySchema = exports.LingerStateSchema = exports.MetisHoldSchema = void 0;
13
+ exports.ObservedStateSchema = exports.DriftStateSchema = exports.PreconditionVerdictSchema = exports.PreconditionSchema = exports.ConsentReferenceSchema = exports.MachineFactSchema = exports.PreconditionKindSchema = exports.ServiceFacetSchema = exports.TenantFacetSchema = exports.HostFacetSchema = exports.PortConflictSchema = exports.PortBindingSchema = exports.PortNumberSchema = exports.ServiceScopeSchema = exports.PortProtoSchema = exports.ReachabilitySchema = exports.LingerStateSchema = exports.MetisHoldSchema = void 0;
14
14
  const zod_1 = require("zod");
15
15
  // ── Métis (S5) ──────────────────────────────────────────────────────────────
16
16
  exports.MetisHoldSchema = zod_1.z.object({
17
17
  exceptions: zod_1.z.array(zod_1.z.string()).optional(),
18
18
  invisibleWork: zod_1.z.array(zod_1.z.string()).optional(),
19
19
  notes: zod_1.z.array(zod_1.z.string()).optional(),
20
- heldBy: zod_1.z.string().optional(),
20
+ /**
21
+ * `.min(1)` is load-bearing. An empty string passes every other check while
22
+ * anonymising the carrier — which is precisely the erasure this field exists
23
+ * to refuse. Absent means nobody was named; empty means somebody was named
24
+ * nothing, and only one of those is honest.
25
+ */
26
+ heldBy: zod_1.z.string().min(1).optional(),
21
27
  });
22
28
  // ── Enumerations ────────────────────────────────────────────────────────────
23
29
  exports.LingerStateSchema = zod_1.z.enum(['enabled', 'disabled', 'unknown']);
@@ -71,4 +77,67 @@ exports.ServiceFacetSchema = zod_1.z.object({
71
77
  execStop: zod_1.z.string().optional(),
72
78
  metis: exports.MetisHoldSchema.optional(),
73
79
  });
80
+ // ── Preconditions (S4) ──────────────────────────────────────────────────────
81
+ exports.PreconditionKindSchema = zod_1.z.enum([
82
+ 'linger',
83
+ 'port-free',
84
+ 'unit-present',
85
+ 'working-directory',
86
+ ]);
87
+ /**
88
+ * `observed` is `.optional()` and NOT `.default()`. An unread fact must stay
89
+ * distinguishable from a read one — a default would quietly turn "nobody looked"
90
+ * into a value, which is the exact confusion `preconditionGuard` returns
91
+ * `unknown` to prevent.
92
+ */
93
+ exports.MachineFactSchema = zod_1.z.object({
94
+ kind: exports.PreconditionKindSchema,
95
+ facetNodeId: zod_1.z.string().min(1),
96
+ expected: zod_1.z.string(),
97
+ observed: zod_1.z.string().optional(),
98
+ observedAt: zod_1.z.string().optional(),
99
+ });
100
+ /**
101
+ * `state` is a bare string, not an enum. `infra` records what the consent
102
+ * lifecycle said; it does not get to decide which states exist, and an enum here
103
+ * would let this package reject a state the lifecycle legitimately issued.
104
+ */
105
+ exports.ConsentReferenceSchema = zod_1.z.object({
106
+ consentId: zod_1.z.string().min(1),
107
+ state: zod_1.z.string().optional(),
108
+ readAt: zod_1.z.string().optional(),
109
+ });
110
+ exports.PreconditionSchema = zod_1.z.object({
111
+ id: zod_1.z.string().min(1),
112
+ gates: zod_1.z.string().min(1),
113
+ description: zod_1.z.string().optional(),
114
+ fact: exports.MachineFactSchema.optional(),
115
+ consent: exports.ConsentReferenceSchema.optional(),
116
+ metis: exports.MetisHoldSchema.optional(),
117
+ });
118
+ exports.PreconditionVerdictSchema = zod_1.z.enum([
119
+ 'satisfied',
120
+ 'unsatisfied',
121
+ 'unauthorized',
122
+ 'unknown',
123
+ ]);
124
+ // ── Observed state & drift (S6) ─────────────────────────────────────────────
125
+ exports.DriftStateSchema = zod_1.z.enum(['converged', 'drifted', 'unrealized', 'undeclared']);
126
+ /**
127
+ * `observedBy` and `observedAt` are required. An observation without a reader
128
+ * and a time is a rumour, and this schema is the boundary that refuses one.
129
+ */
130
+ exports.ObservedStateSchema = zod_1.z.object({
131
+ observedBy: zod_1.z.string().min(1),
132
+ /**
133
+ * `.datetime()`, not `.min(1)`. An unparseable stamp made `observationAgeMs`
134
+ * vanish from the result — the same output as "no `now` was given" — so a
135
+ * caller whose entire reason to read that field is *refuse a stale reading*
136
+ * could not tell a garbage timestamp from a deliberate clock-free call, and
137
+ * would proceed.
138
+ */
139
+ observedAt: zod_1.z.string().datetime(),
140
+ services: zod_1.z.array(exports.ServiceFacetSchema),
141
+ tenants: zod_1.z.array(exports.TenantFacetSchema).optional(),
142
+ });
74
143
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,6BAAwB;AAExB,+EAA+E;AAElE,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,+EAA+E;AAElE,QAAA,iBAAiB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAE/D,QAAA,kBAAkB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvE,QAAA,eAAe,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEzC,QAAA,kBAAkB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7D,+EAA+E;AAE/E;;;;GAIG;AACU,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEtD,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,wBAAgB;IACtB,KAAK,EAAE,uBAAe,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,wBAAgB;IACtB,KAAK,EAAE,uBAAe;IACtB,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7C,CAAC,CAAC;AAEH,+EAA+E;AAElE,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAkB,CAAC,CAAC,QAAQ,EAAE;IACpD,KAAK,EAAE,uBAAe,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC9C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,yBAAiB;IACzB,KAAK,EAAE,uBAAe,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,0BAAkB;IACzB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,yBAAiB,CAAC;IACjC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,uBAAe,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medicine-wheel/infra",
3
- "version": "0.5.7",
3
+ "version": "0.5.9",
4
4
  "description": "Typed infrastructure facets for the Medicine Wheel Developer Suite — hosts, tenants, services, and port bindings as facets keyed by relational node id, with port-conflict detection over declared ∪ observed state",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -53,7 +53,7 @@
53
53
  "directory": "src/infra"
54
54
  },
55
55
  "dependencies": {
56
- "@medicine-wheel/ontology-core": "^0.5.7",
56
+ "@medicine-wheel/ontology-core": "^0.5.9",
57
57
  "zod": "^3.23.0"
58
58
  },
59
59
  "devDependencies": {