@miadi/tide-contract 0.3.4 → 0.3.6

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/index.d.ts CHANGED
@@ -391,5 +391,1236 @@ export interface TidePendingApproval {
391
391
  requires_controller: boolean;
392
392
  created_at: string;
393
393
  }
394
- export * from "./secret-redaction.js";
394
+ export type TideSecretRuleKind = "token" | "labelled" | "block";
395
+ export interface TideSecretRule {
396
+ name: string;
397
+ /** token: the whole match is redacted. labelled: group 1 is kept, group 2 is redacted. block: the whole match becomes `replacement`. */
398
+ kind: TideSecretRuleKind;
399
+ /** A regex in the subset JavaScript and Python share. */
400
+ pattern: string;
401
+ /** "" or "i". */
402
+ flags: string;
403
+ replacement?: string;
404
+ }
405
+ export declare const TIDE_SECRET_MASK = "***";
406
+ /** Applied top to bottom. */
407
+ export declare const TIDE_SECRET_RULES: readonly TideSecretRule[];
408
+ /** A secret as its first 6 characters (4 when shorter than 7) followed by `***`. */
409
+ export declare function redactSecretValue(value: string): string;
410
+ /**
411
+ * Text with every credential the rules know redacted. Running it again changes
412
+ * nothing, so a capture ironsilk already redacted passes through unchanged.
413
+ */
414
+ export declare function sanitizeSecrets(text: string): string;
415
+ /** The `MiadiEventEnvelope` version the draft events follow. */
416
+ export declare const TIDE_DRAFT_EVENT_SCHEMA_VERSION = "0.1.0";
417
+ /** Version of the catalog below. It moves when an event or a payload field is added or changed. */
418
+ export declare const TIDE_DRAFT_CATALOG_VERSION = "0.1.0";
419
+ export declare const TIDE_DRAFT_EVENT_NAMESPACE = "tide.draft";
420
+ export declare const TIDE_DRAFT_EVENTS_SCHEMA_ID = "https://miadi.dev/schemas/tide-draft-events.schema.json";
421
+ export interface TideDraftPayloadField {
422
+ type: "string" | "number" | "boolean" | "string[]" | "object";
423
+ required?: true;
424
+ description: string;
425
+ /** Decided in Episode 548 and not yet written by tide. */
426
+ proposed?: true;
427
+ }
428
+ export interface TideDraftEventDefinition {
429
+ /** What happened, in one sentence. */
430
+ summary: string;
431
+ /** Which observation writes it. */
432
+ writtenBy: string;
433
+ /** The payload carries the person's words. Only `versioned` does (D2). */
434
+ contentIncluded?: true;
435
+ /** Decided in Episode 548 and not yet written by tide. */
436
+ proposed?: true;
437
+ payload: Record<string, TideDraftPayloadField>;
438
+ }
439
+ export declare const TIDE_DRAFT_EVENT_CATALOG: {
440
+ opened: {
441
+ summary: string;
442
+ writtenBy: string;
443
+ payload: {
444
+ pane: {
445
+ readonly type: "string";
446
+ readonly required: true;
447
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
448
+ };
449
+ chars: {
450
+ readonly type: "number";
451
+ readonly required: true;
452
+ readonly description: "Length of the draft.";
453
+ };
454
+ lines: {
455
+ readonly type: "number";
456
+ readonly required: true;
457
+ readonly description: "Lines in the draft, continuation lines included.";
458
+ };
459
+ digest: {
460
+ readonly type: "string";
461
+ readonly required: true;
462
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
463
+ };
464
+ kind: {
465
+ readonly type: "string";
466
+ readonly required: true;
467
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
468
+ };
469
+ in_view: {
470
+ readonly type: "boolean";
471
+ readonly required: true;
472
+ readonly description: "The pane is the active pane of the active window of an attached session.";
473
+ };
474
+ reason: {
475
+ readonly type: "string";
476
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
477
+ };
478
+ target_team: {
479
+ readonly type: "string";
480
+ readonly description: "The team a `mctgo` draft names.";
481
+ };
482
+ target_session: {
483
+ readonly type: "string";
484
+ readonly description: "The session a `mctgo` draft names.";
485
+ };
486
+ session_id: {
487
+ readonly type: "string";
488
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
489
+ };
490
+ labels: {
491
+ readonly type: "object";
492
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
493
+ };
494
+ };
495
+ };
496
+ parked: {
497
+ summary: string;
498
+ writtenBy: string;
499
+ payload: {
500
+ pane: {
501
+ readonly type: "string";
502
+ readonly required: true;
503
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
504
+ };
505
+ chars: {
506
+ readonly type: "number";
507
+ readonly required: true;
508
+ readonly description: "Length of the draft.";
509
+ };
510
+ lines: {
511
+ readonly type: "number";
512
+ readonly required: true;
513
+ readonly description: "Lines in the draft, continuation lines included.";
514
+ };
515
+ digest: {
516
+ readonly type: "string";
517
+ readonly required: true;
518
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
519
+ };
520
+ kind: {
521
+ readonly type: "string";
522
+ readonly required: true;
523
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
524
+ };
525
+ in_view: {
526
+ readonly type: "boolean";
527
+ readonly required: true;
528
+ readonly description: "The pane is the active pane of the active window of an attached session.";
529
+ };
530
+ reason: {
531
+ readonly type: "string";
532
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
533
+ };
534
+ target_team: {
535
+ readonly type: "string";
536
+ readonly description: "The team a `mctgo` draft names.";
537
+ };
538
+ target_session: {
539
+ readonly type: "string";
540
+ readonly description: "The session a `mctgo` draft names.";
541
+ };
542
+ session_id: {
543
+ readonly type: "string";
544
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
545
+ };
546
+ labels: {
547
+ readonly type: "object";
548
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
549
+ };
550
+ };
551
+ };
552
+ resumed: {
553
+ summary: string;
554
+ writtenBy: string;
555
+ payload: {
556
+ pane: {
557
+ readonly type: "string";
558
+ readonly required: true;
559
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
560
+ };
561
+ chars: {
562
+ readonly type: "number";
563
+ readonly required: true;
564
+ readonly description: "Length of the draft.";
565
+ };
566
+ lines: {
567
+ readonly type: "number";
568
+ readonly required: true;
569
+ readonly description: "Lines in the draft, continuation lines included.";
570
+ };
571
+ digest: {
572
+ readonly type: "string";
573
+ readonly required: true;
574
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
575
+ };
576
+ kind: {
577
+ readonly type: "string";
578
+ readonly required: true;
579
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
580
+ };
581
+ in_view: {
582
+ readonly type: "boolean";
583
+ readonly required: true;
584
+ readonly description: "The pane is the active pane of the active window of an attached session.";
585
+ };
586
+ reason: {
587
+ readonly type: "string";
588
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
589
+ };
590
+ target_team: {
591
+ readonly type: "string";
592
+ readonly description: "The team a `mctgo` draft names.";
593
+ };
594
+ target_session: {
595
+ readonly type: "string";
596
+ readonly description: "The session a `mctgo` draft names.";
597
+ };
598
+ session_id: {
599
+ readonly type: "string";
600
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
601
+ };
602
+ labels: {
603
+ readonly type: "object";
604
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
605
+ };
606
+ };
607
+ };
608
+ versioned: {
609
+ summary: string;
610
+ writtenBy: string;
611
+ contentIncluded: true;
612
+ payload: {
613
+ prompt: {
614
+ readonly type: "string";
615
+ readonly proposed: true;
616
+ readonly description: "The prompt in the tracing provider, `miadi-tracing:<domain>/prompt/<miadiRun-…-presession>` (D3).";
617
+ };
618
+ prompt_version: {
619
+ readonly type: "number";
620
+ readonly proposed: true;
621
+ readonly description: "The prompt version made from this text (D3), or that the session started from (D4).";
622
+ };
623
+ text: {
624
+ type: "string";
625
+ required: true;
626
+ description: string;
627
+ };
628
+ version: {
629
+ type: "number";
630
+ required: true;
631
+ description: string;
632
+ };
633
+ pane: {
634
+ readonly type: "string";
635
+ readonly required: true;
636
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
637
+ };
638
+ chars: {
639
+ readonly type: "number";
640
+ readonly required: true;
641
+ readonly description: "Length of the draft.";
642
+ };
643
+ lines: {
644
+ readonly type: "number";
645
+ readonly required: true;
646
+ readonly description: "Lines in the draft, continuation lines included.";
647
+ };
648
+ digest: {
649
+ readonly type: "string";
650
+ readonly required: true;
651
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
652
+ };
653
+ kind: {
654
+ readonly type: "string";
655
+ readonly required: true;
656
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
657
+ };
658
+ in_view: {
659
+ readonly type: "boolean";
660
+ readonly required: true;
661
+ readonly description: "The pane is the active pane of the active window of an attached session.";
662
+ };
663
+ reason: {
664
+ readonly type: "string";
665
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
666
+ };
667
+ target_team: {
668
+ readonly type: "string";
669
+ readonly description: "The team a `mctgo` draft names.";
670
+ };
671
+ target_session: {
672
+ readonly type: "string";
673
+ readonly description: "The session a `mctgo` draft names.";
674
+ };
675
+ session_id: {
676
+ readonly type: "string";
677
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
678
+ };
679
+ labels: {
680
+ readonly type: "object";
681
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
682
+ };
683
+ };
684
+ };
685
+ restored: {
686
+ summary: string;
687
+ writtenBy: string;
688
+ payload: {
689
+ restores: {
690
+ type: "number";
691
+ required: true;
692
+ description: string;
693
+ };
694
+ ready: {
695
+ type: "boolean";
696
+ description: string;
697
+ };
698
+ pane: {
699
+ readonly type: "string";
700
+ readonly required: true;
701
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
702
+ };
703
+ chars: {
704
+ readonly type: "number";
705
+ readonly required: true;
706
+ readonly description: "Length of the draft.";
707
+ };
708
+ lines: {
709
+ readonly type: "number";
710
+ readonly required: true;
711
+ readonly description: "Lines in the draft, continuation lines included.";
712
+ };
713
+ digest: {
714
+ readonly type: "string";
715
+ readonly required: true;
716
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
717
+ };
718
+ kind: {
719
+ readonly type: "string";
720
+ readonly required: true;
721
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
722
+ };
723
+ in_view: {
724
+ readonly type: "boolean";
725
+ readonly required: true;
726
+ readonly description: "The pane is the active pane of the active window of an attached session.";
727
+ };
728
+ reason: {
729
+ readonly type: "string";
730
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
731
+ };
732
+ target_team: {
733
+ readonly type: "string";
734
+ readonly description: "The team a `mctgo` draft names.";
735
+ };
736
+ target_session: {
737
+ readonly type: "string";
738
+ readonly description: "The session a `mctgo` draft names.";
739
+ };
740
+ session_id: {
741
+ readonly type: "string";
742
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
743
+ };
744
+ labels: {
745
+ readonly type: "object";
746
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
747
+ };
748
+ };
749
+ };
750
+ readied: {
751
+ summary: string;
752
+ writtenBy: string;
753
+ payload: {
754
+ send_at: {
755
+ type: "string";
756
+ description: string;
757
+ };
758
+ scheduler: {
759
+ type: "string";
760
+ description: string;
761
+ };
762
+ window_seconds: {
763
+ type: "number";
764
+ description: string;
765
+ };
766
+ completion: {
767
+ type: "string[]";
768
+ description: string;
769
+ };
770
+ pane: {
771
+ readonly type: "string";
772
+ readonly required: true;
773
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
774
+ };
775
+ chars: {
776
+ readonly type: "number";
777
+ readonly required: true;
778
+ readonly description: "Length of the draft.";
779
+ };
780
+ lines: {
781
+ readonly type: "number";
782
+ readonly required: true;
783
+ readonly description: "Lines in the draft, continuation lines included.";
784
+ };
785
+ digest: {
786
+ readonly type: "string";
787
+ readonly required: true;
788
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
789
+ };
790
+ kind: {
791
+ readonly type: "string";
792
+ readonly required: true;
793
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
794
+ };
795
+ in_view: {
796
+ readonly type: "boolean";
797
+ readonly required: true;
798
+ readonly description: "The pane is the active pane of the active window of an attached session.";
799
+ };
800
+ reason: {
801
+ readonly type: "string";
802
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
803
+ };
804
+ target_team: {
805
+ readonly type: "string";
806
+ readonly description: "The team a `mctgo` draft names.";
807
+ };
808
+ target_session: {
809
+ readonly type: "string";
810
+ readonly description: "The session a `mctgo` draft names.";
811
+ };
812
+ session_id: {
813
+ readonly type: "string";
814
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
815
+ };
816
+ labels: {
817
+ readonly type: "object";
818
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
819
+ };
820
+ };
821
+ };
822
+ unreadied: {
823
+ summary: string;
824
+ writtenBy: string;
825
+ payload: {
826
+ pane: {
827
+ readonly type: "string";
828
+ readonly required: true;
829
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
830
+ };
831
+ chars: {
832
+ readonly type: "number";
833
+ readonly required: true;
834
+ readonly description: "Length of the draft.";
835
+ };
836
+ lines: {
837
+ readonly type: "number";
838
+ readonly required: true;
839
+ readonly description: "Lines in the draft, continuation lines included.";
840
+ };
841
+ digest: {
842
+ readonly type: "string";
843
+ readonly required: true;
844
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
845
+ };
846
+ kind: {
847
+ readonly type: "string";
848
+ readonly required: true;
849
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
850
+ };
851
+ in_view: {
852
+ readonly type: "boolean";
853
+ readonly required: true;
854
+ readonly description: "The pane is the active pane of the active window of an attached session.";
855
+ };
856
+ reason: {
857
+ readonly type: "string";
858
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
859
+ };
860
+ target_team: {
861
+ readonly type: "string";
862
+ readonly description: "The team a `mctgo` draft names.";
863
+ };
864
+ target_session: {
865
+ readonly type: "string";
866
+ readonly description: "The session a `mctgo` draft names.";
867
+ };
868
+ session_id: {
869
+ readonly type: "string";
870
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
871
+ };
872
+ labels: {
873
+ readonly type: "object";
874
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
875
+ };
876
+ };
877
+ };
878
+ due: {
879
+ summary: string;
880
+ writtenBy: string;
881
+ payload: {
882
+ sent: {
883
+ type: "boolean";
884
+ required: true;
885
+ description: string;
886
+ };
887
+ flagged_by: {
888
+ type: "string";
889
+ description: string;
890
+ };
891
+ send_at: {
892
+ type: "string";
893
+ description: string;
894
+ };
895
+ completion: {
896
+ type: "string[]";
897
+ description: string;
898
+ };
899
+ pane: {
900
+ readonly type: "string";
901
+ readonly required: true;
902
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
903
+ };
904
+ chars: {
905
+ readonly type: "number";
906
+ readonly required: true;
907
+ readonly description: "Length of the draft.";
908
+ };
909
+ lines: {
910
+ readonly type: "number";
911
+ readonly required: true;
912
+ readonly description: "Lines in the draft, continuation lines included.";
913
+ };
914
+ digest: {
915
+ readonly type: "string";
916
+ readonly required: true;
917
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
918
+ };
919
+ kind: {
920
+ readonly type: "string";
921
+ readonly required: true;
922
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
923
+ };
924
+ in_view: {
925
+ readonly type: "boolean";
926
+ readonly required: true;
927
+ readonly description: "The pane is the active pane of the active window of an attached session.";
928
+ };
929
+ reason: {
930
+ readonly type: "string";
931
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
932
+ };
933
+ target_team: {
934
+ readonly type: "string";
935
+ readonly description: "The team a `mctgo` draft names.";
936
+ };
937
+ target_session: {
938
+ readonly type: "string";
939
+ readonly description: "The session a `mctgo` draft names.";
940
+ };
941
+ session_id: {
942
+ readonly type: "string";
943
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
944
+ };
945
+ labels: {
946
+ readonly type: "object";
947
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
948
+ };
949
+ };
950
+ };
951
+ run: {
952
+ summary: string;
953
+ writtenBy: string;
954
+ payload: {
955
+ sent: {
956
+ type: "boolean";
957
+ required: true;
958
+ description: string;
959
+ };
960
+ scheduler: {
961
+ type: "string";
962
+ description: string;
963
+ };
964
+ flagged_by: {
965
+ type: "string";
966
+ description: string;
967
+ };
968
+ completion: {
969
+ type: "string[]";
970
+ description: string;
971
+ };
972
+ pane: {
973
+ readonly type: "string";
974
+ readonly required: true;
975
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
976
+ };
977
+ chars: {
978
+ readonly type: "number";
979
+ readonly required: true;
980
+ readonly description: "Length of the draft.";
981
+ };
982
+ lines: {
983
+ readonly type: "number";
984
+ readonly required: true;
985
+ readonly description: "Lines in the draft, continuation lines included.";
986
+ };
987
+ digest: {
988
+ readonly type: "string";
989
+ readonly required: true;
990
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
991
+ };
992
+ kind: {
993
+ readonly type: "string";
994
+ readonly required: true;
995
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
996
+ };
997
+ in_view: {
998
+ readonly type: "boolean";
999
+ readonly required: true;
1000
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1001
+ };
1002
+ reason: {
1003
+ readonly type: "string";
1004
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1005
+ };
1006
+ target_team: {
1007
+ readonly type: "string";
1008
+ readonly description: "The team a `mctgo` draft names.";
1009
+ };
1010
+ target_session: {
1011
+ readonly type: "string";
1012
+ readonly description: "The session a `mctgo` draft names.";
1013
+ };
1014
+ session_id: {
1015
+ readonly type: "string";
1016
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
1017
+ };
1018
+ labels: {
1019
+ readonly type: "object";
1020
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1021
+ };
1022
+ };
1023
+ };
1024
+ sent: {
1025
+ summary: string;
1026
+ writtenBy: string;
1027
+ payload: {
1028
+ pane: {
1029
+ readonly type: "string";
1030
+ readonly required: true;
1031
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
1032
+ };
1033
+ chars: {
1034
+ readonly type: "number";
1035
+ readonly required: true;
1036
+ readonly description: "Length of the draft.";
1037
+ };
1038
+ lines: {
1039
+ readonly type: "number";
1040
+ readonly required: true;
1041
+ readonly description: "Lines in the draft, continuation lines included.";
1042
+ };
1043
+ digest: {
1044
+ readonly type: "string";
1045
+ readonly required: true;
1046
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
1047
+ };
1048
+ kind: {
1049
+ readonly type: "string";
1050
+ readonly required: true;
1051
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
1052
+ };
1053
+ in_view: {
1054
+ readonly type: "boolean";
1055
+ readonly required: true;
1056
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1057
+ };
1058
+ reason: {
1059
+ readonly type: "string";
1060
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1061
+ };
1062
+ target_team: {
1063
+ readonly type: "string";
1064
+ readonly description: "The team a `mctgo` draft names.";
1065
+ };
1066
+ target_session: {
1067
+ readonly type: "string";
1068
+ readonly description: "The session a `mctgo` draft names.";
1069
+ };
1070
+ session_id: {
1071
+ readonly type: "string";
1072
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
1073
+ };
1074
+ labels: {
1075
+ readonly type: "object";
1076
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1077
+ };
1078
+ };
1079
+ };
1080
+ started: {
1081
+ summary: string;
1082
+ writtenBy: string;
1083
+ payload: {
1084
+ prompt: {
1085
+ readonly type: "string";
1086
+ readonly proposed: true;
1087
+ readonly description: "The prompt in the tracing provider, `miadi-tracing:<domain>/prompt/<miadiRun-…-presession>` (D3).";
1088
+ };
1089
+ prompt_version: {
1090
+ readonly type: "number";
1091
+ readonly proposed: true;
1092
+ readonly description: "The prompt version made from this text (D3), or that the session started from (D4).";
1093
+ };
1094
+ session_id: {
1095
+ type: "string";
1096
+ required: true;
1097
+ description: string;
1098
+ };
1099
+ agent_kind: {
1100
+ type: "string";
1101
+ required: true;
1102
+ description: string;
1103
+ };
1104
+ matched_by: {
1105
+ type: "string";
1106
+ description: string;
1107
+ };
1108
+ planned_session_id: {
1109
+ type: "string";
1110
+ description: string;
1111
+ };
1112
+ pane: {
1113
+ readonly type: "string";
1114
+ readonly required: true;
1115
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
1116
+ };
1117
+ chars: {
1118
+ readonly type: "number";
1119
+ readonly required: true;
1120
+ readonly description: "Length of the draft.";
1121
+ };
1122
+ lines: {
1123
+ readonly type: "number";
1124
+ readonly required: true;
1125
+ readonly description: "Lines in the draft, continuation lines included.";
1126
+ };
1127
+ digest: {
1128
+ readonly type: "string";
1129
+ readonly required: true;
1130
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
1131
+ };
1132
+ kind: {
1133
+ readonly type: "string";
1134
+ readonly required: true;
1135
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
1136
+ };
1137
+ in_view: {
1138
+ readonly type: "boolean";
1139
+ readonly required: true;
1140
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1141
+ };
1142
+ reason: {
1143
+ readonly type: "string";
1144
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1145
+ };
1146
+ target_team: {
1147
+ readonly type: "string";
1148
+ readonly description: "The team a `mctgo` draft names.";
1149
+ };
1150
+ target_session: {
1151
+ readonly type: "string";
1152
+ readonly description: "The session a `mctgo` draft names.";
1153
+ };
1154
+ labels: {
1155
+ readonly type: "object";
1156
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1157
+ };
1158
+ };
1159
+ };
1160
+ unstarted: {
1161
+ summary: string;
1162
+ writtenBy: string;
1163
+ payload: {
1164
+ pane: {
1165
+ readonly type: "string";
1166
+ readonly required: true;
1167
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
1168
+ };
1169
+ chars: {
1170
+ readonly type: "number";
1171
+ readonly required: true;
1172
+ readonly description: "Length of the draft.";
1173
+ };
1174
+ lines: {
1175
+ readonly type: "number";
1176
+ readonly required: true;
1177
+ readonly description: "Lines in the draft, continuation lines included.";
1178
+ };
1179
+ digest: {
1180
+ readonly type: "string";
1181
+ readonly required: true;
1182
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
1183
+ };
1184
+ kind: {
1185
+ readonly type: "string";
1186
+ readonly required: true;
1187
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
1188
+ };
1189
+ in_view: {
1190
+ readonly type: "boolean";
1191
+ readonly required: true;
1192
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1193
+ };
1194
+ reason: {
1195
+ readonly type: "string";
1196
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1197
+ };
1198
+ target_team: {
1199
+ readonly type: "string";
1200
+ readonly description: "The team a `mctgo` draft names.";
1201
+ };
1202
+ target_session: {
1203
+ readonly type: "string";
1204
+ readonly description: "The session a `mctgo` draft names.";
1205
+ };
1206
+ session_id: {
1207
+ readonly type: "string";
1208
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
1209
+ };
1210
+ labels: {
1211
+ readonly type: "object";
1212
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1213
+ };
1214
+ };
1215
+ };
1216
+ reopened: {
1217
+ summary: string;
1218
+ writtenBy: string;
1219
+ payload: {
1220
+ closed_as: {
1221
+ type: "string";
1222
+ required: true;
1223
+ description: string;
1224
+ };
1225
+ closed_reason: {
1226
+ type: "string";
1227
+ description: string;
1228
+ };
1229
+ attached: {
1230
+ type: "boolean";
1231
+ required: true;
1232
+ description: string;
1233
+ };
1234
+ pane: {
1235
+ readonly type: "string";
1236
+ readonly required: true;
1237
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
1238
+ };
1239
+ chars: {
1240
+ readonly type: "number";
1241
+ readonly required: true;
1242
+ readonly description: "Length of the draft.";
1243
+ };
1244
+ lines: {
1245
+ readonly type: "number";
1246
+ readonly required: true;
1247
+ readonly description: "Lines in the draft, continuation lines included.";
1248
+ };
1249
+ digest: {
1250
+ readonly type: "string";
1251
+ readonly required: true;
1252
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
1253
+ };
1254
+ kind: {
1255
+ readonly type: "string";
1256
+ readonly required: true;
1257
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
1258
+ };
1259
+ in_view: {
1260
+ readonly type: "boolean";
1261
+ readonly required: true;
1262
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1263
+ };
1264
+ reason: {
1265
+ readonly type: "string";
1266
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1267
+ };
1268
+ target_team: {
1269
+ readonly type: "string";
1270
+ readonly description: "The team a `mctgo` draft names.";
1271
+ };
1272
+ target_session: {
1273
+ readonly type: "string";
1274
+ readonly description: "The session a `mctgo` draft names.";
1275
+ };
1276
+ session_id: {
1277
+ readonly type: "string";
1278
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
1279
+ };
1280
+ labels: {
1281
+ readonly type: "object";
1282
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1283
+ };
1284
+ };
1285
+ };
1286
+ dismissed: {
1287
+ summary: string;
1288
+ writtenBy: string;
1289
+ payload: {
1290
+ pane: {
1291
+ readonly type: "string";
1292
+ readonly required: true;
1293
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
1294
+ };
1295
+ chars: {
1296
+ readonly type: "number";
1297
+ readonly required: true;
1298
+ readonly description: "Length of the draft.";
1299
+ };
1300
+ lines: {
1301
+ readonly type: "number";
1302
+ readonly required: true;
1303
+ readonly description: "Lines in the draft, continuation lines included.";
1304
+ };
1305
+ digest: {
1306
+ readonly type: "string";
1307
+ readonly required: true;
1308
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
1309
+ };
1310
+ kind: {
1311
+ readonly type: "string";
1312
+ readonly required: true;
1313
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
1314
+ };
1315
+ in_view: {
1316
+ readonly type: "boolean";
1317
+ readonly required: true;
1318
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1319
+ };
1320
+ reason: {
1321
+ readonly type: "string";
1322
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1323
+ };
1324
+ target_team: {
1325
+ readonly type: "string";
1326
+ readonly description: "The team a `mctgo` draft names.";
1327
+ };
1328
+ target_session: {
1329
+ readonly type: "string";
1330
+ readonly description: "The session a `mctgo` draft names.";
1331
+ };
1332
+ session_id: {
1333
+ readonly type: "string";
1334
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
1335
+ };
1336
+ labels: {
1337
+ readonly type: "object";
1338
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1339
+ };
1340
+ };
1341
+ };
1342
+ cleared: {
1343
+ summary: string;
1344
+ writtenBy: string;
1345
+ payload: {
1346
+ pane: {
1347
+ readonly type: "string";
1348
+ readonly required: true;
1349
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
1350
+ };
1351
+ chars: {
1352
+ readonly type: "number";
1353
+ readonly required: true;
1354
+ readonly description: "Length of the draft.";
1355
+ };
1356
+ lines: {
1357
+ readonly type: "number";
1358
+ readonly required: true;
1359
+ readonly description: "Lines in the draft, continuation lines included.";
1360
+ };
1361
+ digest: {
1362
+ readonly type: "string";
1363
+ readonly required: true;
1364
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
1365
+ };
1366
+ kind: {
1367
+ readonly type: "string";
1368
+ readonly required: true;
1369
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
1370
+ };
1371
+ in_view: {
1372
+ readonly type: "boolean";
1373
+ readonly required: true;
1374
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1375
+ };
1376
+ reason: {
1377
+ readonly type: "string";
1378
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1379
+ };
1380
+ target_team: {
1381
+ readonly type: "string";
1382
+ readonly description: "The team a `mctgo` draft names.";
1383
+ };
1384
+ target_session: {
1385
+ readonly type: "string";
1386
+ readonly description: "The session a `mctgo` draft names.";
1387
+ };
1388
+ session_id: {
1389
+ readonly type: "string";
1390
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
1391
+ };
1392
+ labels: {
1393
+ readonly type: "object";
1394
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1395
+ };
1396
+ };
1397
+ };
1398
+ abandoned: {
1399
+ summary: string;
1400
+ writtenBy: string;
1401
+ payload: {
1402
+ pane: {
1403
+ readonly type: "string";
1404
+ readonly required: true;
1405
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
1406
+ };
1407
+ chars: {
1408
+ readonly type: "number";
1409
+ readonly required: true;
1410
+ readonly description: "Length of the draft.";
1411
+ };
1412
+ lines: {
1413
+ readonly type: "number";
1414
+ readonly required: true;
1415
+ readonly description: "Lines in the draft, continuation lines included.";
1416
+ };
1417
+ digest: {
1418
+ readonly type: "string";
1419
+ readonly required: true;
1420
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
1421
+ };
1422
+ kind: {
1423
+ readonly type: "string";
1424
+ readonly required: true;
1425
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
1426
+ };
1427
+ in_view: {
1428
+ readonly type: "boolean";
1429
+ readonly required: true;
1430
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1431
+ };
1432
+ reason: {
1433
+ readonly type: "string";
1434
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1435
+ };
1436
+ target_team: {
1437
+ readonly type: "string";
1438
+ readonly description: "The team a `mctgo` draft names.";
1439
+ };
1440
+ target_session: {
1441
+ readonly type: "string";
1442
+ readonly description: "The session a `mctgo` draft names.";
1443
+ };
1444
+ session_id: {
1445
+ readonly type: "string";
1446
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
1447
+ };
1448
+ labels: {
1449
+ readonly type: "object";
1450
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1451
+ };
1452
+ };
1453
+ };
1454
+ withdrawn: {
1455
+ summary: string;
1456
+ writtenBy: string;
1457
+ payload: {
1458
+ pane: {
1459
+ readonly type: "string";
1460
+ readonly required: true;
1461
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
1462
+ };
1463
+ chars: {
1464
+ readonly type: "number";
1465
+ readonly required: true;
1466
+ readonly description: "Length of the draft.";
1467
+ };
1468
+ lines: {
1469
+ readonly type: "number";
1470
+ readonly required: true;
1471
+ readonly description: "Lines in the draft, continuation lines included.";
1472
+ };
1473
+ digest: {
1474
+ readonly type: "string";
1475
+ readonly required: true;
1476
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
1477
+ };
1478
+ kind: {
1479
+ readonly type: "string";
1480
+ readonly required: true;
1481
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
1482
+ };
1483
+ in_view: {
1484
+ readonly type: "boolean";
1485
+ readonly required: true;
1486
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1487
+ };
1488
+ reason: {
1489
+ readonly type: "string";
1490
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1491
+ };
1492
+ target_team: {
1493
+ readonly type: "string";
1494
+ readonly description: "The team a `mctgo` draft names.";
1495
+ };
1496
+ target_session: {
1497
+ readonly type: "string";
1498
+ readonly description: "The session a `mctgo` draft names.";
1499
+ };
1500
+ session_id: {
1501
+ readonly type: "string";
1502
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
1503
+ };
1504
+ labels: {
1505
+ readonly type: "object";
1506
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1507
+ };
1508
+ };
1509
+ };
1510
+ expired: {
1511
+ summary: string;
1512
+ writtenBy: string;
1513
+ payload: {
1514
+ pane: {
1515
+ readonly type: "string";
1516
+ readonly required: true;
1517
+ readonly description: "The pane's address, `<session>:<window>.<pane>`.";
1518
+ };
1519
+ chars: {
1520
+ readonly type: "number";
1521
+ readonly required: true;
1522
+ readonly description: "Length of the draft.";
1523
+ };
1524
+ lines: {
1525
+ readonly type: "number";
1526
+ readonly required: true;
1527
+ readonly description: "Lines in the draft, continuation lines included.";
1528
+ };
1529
+ digest: {
1530
+ readonly type: "string";
1531
+ readonly required: true;
1532
+ readonly description: "HMAC-SHA256 of the text keyed with `<MIADI_HOME>/drafts/.key`, first 16 hex.";
1533
+ };
1534
+ kind: {
1535
+ readonly type: "string";
1536
+ readonly required: true;
1537
+ readonly description: "`mctgo` when the draft starts a session on a team, else `shell`. Only a `mctgo` draft leaves the host.";
1538
+ };
1539
+ in_view: {
1540
+ readonly type: "boolean";
1541
+ readonly required: true;
1542
+ readonly description: "The pane is the active pane of the active window of an attached session.";
1543
+ };
1544
+ reason: {
1545
+ readonly type: "string";
1546
+ readonly description: "Why the state changed: `idle`, `out of view`, `its pane closed`, `never restored`, …";
1547
+ };
1548
+ target_team: {
1549
+ readonly type: "string";
1550
+ readonly description: "The team a `mctgo` draft names.";
1551
+ };
1552
+ target_session: {
1553
+ readonly type: "string";
1554
+ readonly description: "The session a `mctgo` draft names.";
1555
+ };
1556
+ session_id: {
1557
+ readonly type: "string";
1558
+ readonly description: "The agent session id mctdraft gave the draft before it was sent (Episode 548, D7, ironsilk 0.9.58); `mct new` starts the agent with it. Absent on a draft opened otherwise.";
1559
+ };
1560
+ labels: {
1561
+ readonly type: "object";
1562
+ readonly description: "What a `mctgo` draft is about (D1, ironsilk 0.9.53): `paths`, `packages`, `repositories`, `addresses`, `issues` (string arrays, each omitted when empty) and `team`. Labels, never sentences.";
1563
+ };
1564
+ };
1565
+ };
1566
+ };
1567
+ export type TideDraftEventName = keyof typeof TIDE_DRAFT_EVENT_CATALOG;
1568
+ export type TideDraftEventType = `${typeof TIDE_DRAFT_EVENT_NAMESPACE}.${TideDraftEventName}`;
1569
+ export interface TideDraftLabels {
1570
+ paths?: string[];
1571
+ /** `@miadi/*` and `@medicine-wheel/*` mentions. */
1572
+ packages?: string[];
1573
+ /** `owner/repo`, from `owner/repo#n`, `/repos/<owner>/<repo>` paths and github.com URLs. */
1574
+ repositories?: string[];
1575
+ addresses?: string[];
1576
+ issues?: string[];
1577
+ team?: string;
1578
+ }
1579
+ /** One line of `<MIADI_HOME>/drafts/events.jsonl`. */
1580
+ export interface TideDraftEvent {
1581
+ /** `tdev:<epoch ms>:<hex>`. */
1582
+ id: string;
1583
+ schema_version: typeof TIDE_DRAFT_EVENT_SCHEMA_VERSION;
1584
+ event_type: TideDraftEventType;
1585
+ source: {
1586
+ kind: "terminal";
1587
+ system: "tide";
1588
+ instance?: string;
1589
+ };
1590
+ /** `draft:<12 hex>`. The id survives a reboot. */
1591
+ subject: {
1592
+ kind: "draft";
1593
+ id: string;
1594
+ };
1595
+ occurred_at: string;
1596
+ observed_at: string;
1597
+ /** `{kind: "person", id}` once the local account is bound to a Miadi person, else `{kind: "local-user", id: "<user>@<host>"}`. */
1598
+ actor?: {
1599
+ kind: string;
1600
+ id?: string;
1601
+ };
1602
+ /** Equal to the subject id. */
1603
+ correlation_id?: string;
1604
+ causation_id?: string;
1605
+ /** Equal to `id`. */
1606
+ idempotency_key: string;
1607
+ privacy: {
1608
+ classification: string;
1609
+ content_included: boolean;
1610
+ };
1611
+ payload: Record<string, unknown> & {
1612
+ labels?: TideDraftLabels;
1613
+ };
1614
+ }
1615
+ /** `tide.draft.parked` → `parked`, or null for any other event type. */
1616
+ export declare function tideDraftEventName(eventType: string): TideDraftEventName | null;
1617
+ /** Whether a draft event leaves the host: only a `mctgo` draft's events do (Episode 548, P1). */
1618
+ export declare function tideDraftEventTravels(event: Pick<TideDraftEvent, "payload">): boolean;
1619
+ /**
1620
+ * What is wrong with a line read from `events.jsonl`, against the envelope and
1621
+ * the catalog. An empty list means it conforms.
1622
+ */
1623
+ export declare function checkTideDraftEvent(value: unknown): string[];
1624
+ /** The catalog as a JSON Schema (2020-12), committed as `schema/tide-draft-events.schema.json`. */
1625
+ export declare function tideDraftEventsJsonSchema(): Record<string, unknown>;
395
1626
  //# sourceMappingURL=index.d.ts.map