@cleocode/contracts 2026.10.3 → 2026.10.5-rc.ci.672
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/__tests__/cloud-replica-retirement.test.d.ts +10 -0
- package/dist/__tests__/cloud-replica-retirement.test.d.ts.map +1 -0
- package/dist/__tests__/cloud-replica-retirement.test.js +111 -0
- package/dist/__tests__/cloud-replica-retirement.test.js.map +1 -0
- package/dist/__tests__/cloud-status-checkpoint-reads.test.d.ts +10 -0
- package/dist/__tests__/cloud-status-checkpoint-reads.test.d.ts.map +1 -0
- package/dist/__tests__/cloud-status-checkpoint-reads.test.js +49 -0
- package/dist/__tests__/cloud-status-checkpoint-reads.test.js.map +1 -0
- package/dist/agent-registry.d.ts +5 -1
- package/dist/agent-registry.d.ts.map +1 -1
- package/dist/cloud/api.d.ts +156 -0
- package/dist/cloud/api.d.ts.map +1 -1
- package/dist/cloud/api.js +99 -1
- package/dist/cloud/api.js.map +1 -1
- package/dist/cloud/envelope.d.ts +3 -3
- package/dist/dispatch/operations-registry.js +1 -1
- package/dist/dispatch/operations-registry.js.map +1 -1
- package/dist/doctor.d.ts +79 -7
- package/dist/doctor.d.ts.map +1 -1
- package/dist/heavy-command-hook.d.ts +134 -5
- package/dist/heavy-command-hook.d.ts.map +1 -1
- package/dist/index.d.ts +10 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/invariants/sync-write-invariants.d.ts.map +1 -1
- package/dist/invariants/sync-write-invariants.js +31 -6
- package/dist/invariants/sync-write-invariants.js.map +1 -1
- package/dist/ledger/index.d.ts +211 -0
- package/dist/ledger/index.d.ts.map +1 -0
- package/dist/ledger/index.js +122 -0
- package/dist/ledger/index.js.map +1 -0
- package/dist/nexus-account.d.ts +72 -1
- package/dist/nexus-account.d.ts.map +1 -1
- package/dist/nexus-account.js +5 -0
- package/dist/nexus-account.js.map +1 -1
- package/dist/nexus-cloud.d.ts +175 -0
- package/dist/nexus-cloud.d.ts.map +1 -1
- package/dist/nexus-cloud.js +17 -0
- package/dist/nexus-cloud.js.map +1 -1
- package/dist/nexus-first-run.d.ts +145 -0
- package/dist/nexus-first-run.d.ts.map +1 -0
- package/dist/nexus-first-run.js +54 -0
- package/dist/nexus-first-run.js.map +1 -0
- package/dist/nexus-vault.d.ts +113 -1
- package/dist/nexus-vault.d.ts.map +1 -1
- package/dist/nexus-vault.js +27 -0
- package/dist/nexus-vault.js.map +1 -1
- package/dist/operations/admin.d.ts +14 -1
- package/dist/operations/admin.d.ts.map +1 -1
- package/dist/operations/docs-lifecycle.d.ts +23 -0
- package/dist/operations/docs-lifecycle.d.ts.map +1 -0
- package/dist/operations/docs-lifecycle.js +29 -0
- package/dist/operations/docs-lifecycle.js.map +1 -0
- package/dist/operations/docs.d.ts +2 -11
- package/dist/operations/docs.d.ts.map +1 -1
- package/dist/operations/docs.js +3 -17
- package/dist/operations/docs.js.map +1 -1
- package/dist/project-context.d.ts +17 -2
- package/dist/project-context.d.ts.map +1 -1
- package/dist/release/evidence-atoms.d.ts +15 -7
- package/dist/release/evidence-atoms.d.ts.map +1 -1
- package/dist/release/evidence-atoms.js +16 -12
- package/dist/release/evidence-atoms.js.map +1 -1
- package/dist/resource-governor.d.ts +96 -0
- package/dist/resource-governor.d.ts.map +1 -1
- package/dist/resource-governor.js.map +1 -1
- package/dist/row-identity.d.ts +81 -0
- package/dist/row-identity.d.ts.map +1 -1
- package/dist/store-restore.d.ts +66 -0
- package/dist/store-restore.d.ts.map +1 -0
- package/dist/store-restore.js +9 -0
- package/dist/store-restore.js.map +1 -0
- package/dist/task.d.ts +14 -0
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js.map +1 -1
- package/dist/tasks.d.ts +17 -17
- package/dist/workgraph.d.ts +28 -28
- package/package.json +6 -2
- package/src/__tests__/cloud-replica-retirement.test.ts +135 -0
- package/src/__tests__/cloud-status-checkpoint-reads.test.ts +60 -0
- package/src/agent-registry.ts +5 -1
- package/src/cloud/api.ts +125 -1
- package/src/dispatch/operations-registry.ts +1 -1
- package/src/doctor.ts +85 -7
- package/src/heavy-command-hook.ts +175 -5
- package/src/index.ts +58 -0
- package/src/invariants/sync-write-invariants.ts +81 -42
- package/src/ledger/index.ts +141 -0
- package/src/nexus-account.ts +82 -0
- package/src/nexus-cloud.ts +193 -0
- package/src/nexus-first-run.ts +165 -0
- package/src/nexus-vault.ts +124 -1
- package/src/operations/admin.ts +14 -1
- package/src/operations/conduit.ts +1 -1
- package/src/operations/docs-lifecycle.ts +31 -0
- package/src/operations/docs.ts +4 -19
- package/src/project-context.ts +17 -2
- package/src/release/evidence-atoms.ts +16 -12
- package/src/resource-governor.ts +100 -0
- package/src/row-identity.ts +98 -0
- package/src/store-restore.ts +70 -0
- package/src/task.ts +14 -0
package/dist/tasks.d.ts
CHANGED
|
@@ -525,8 +525,8 @@ export declare const completionCriterionEvaluationSchema: z.ZodObject<{
|
|
|
525
525
|
targetTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
526
526
|
pending: "pending";
|
|
527
527
|
cancelled: "cancelled";
|
|
528
|
-
active: "active";
|
|
529
528
|
blocked: "blocked";
|
|
529
|
+
active: "active";
|
|
530
530
|
done: "done";
|
|
531
531
|
archived: "archived";
|
|
532
532
|
proposed: "proposed";
|
|
@@ -549,8 +549,8 @@ export declare const completionCriterionEvaluationSchema: z.ZodObject<{
|
|
|
549
549
|
replacementTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
550
550
|
pending: "pending";
|
|
551
551
|
cancelled: "cancelled";
|
|
552
|
-
active: "active";
|
|
553
552
|
blocked: "blocked";
|
|
553
|
+
active: "active";
|
|
554
554
|
done: "done";
|
|
555
555
|
archived: "archived";
|
|
556
556
|
proposed: "proposed";
|
|
@@ -571,8 +571,8 @@ export declare const unsatisfiedCompletionCriterionSchema: z.ZodObject<{
|
|
|
571
571
|
targetTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
572
572
|
pending: "pending";
|
|
573
573
|
cancelled: "cancelled";
|
|
574
|
-
active: "active";
|
|
575
574
|
blocked: "blocked";
|
|
575
|
+
active: "active";
|
|
576
576
|
done: "done";
|
|
577
577
|
archived: "archived";
|
|
578
578
|
proposed: "proposed";
|
|
@@ -595,8 +595,8 @@ export declare const unsatisfiedCompletionCriterionSchema: z.ZodObject<{
|
|
|
595
595
|
replacementTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
596
596
|
pending: "pending";
|
|
597
597
|
cancelled: "cancelled";
|
|
598
|
-
active: "active";
|
|
599
598
|
blocked: "blocked";
|
|
599
|
+
active: "active";
|
|
600
600
|
done: "done";
|
|
601
601
|
archived: "archived";
|
|
602
602
|
proposed: "proposed";
|
|
@@ -618,8 +618,8 @@ export declare const completionEvaluationSchema: z.ZodObject<{
|
|
|
618
618
|
taskStatus: z.ZodEnum<{
|
|
619
619
|
pending: "pending";
|
|
620
620
|
cancelled: "cancelled";
|
|
621
|
-
active: "active";
|
|
622
621
|
blocked: "blocked";
|
|
622
|
+
active: "active";
|
|
623
623
|
done: "done";
|
|
624
624
|
archived: "archived";
|
|
625
625
|
proposed: "proposed";
|
|
@@ -657,8 +657,8 @@ export declare const completionEvaluationSchema: z.ZodObject<{
|
|
|
657
657
|
targetTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
658
658
|
pending: "pending";
|
|
659
659
|
cancelled: "cancelled";
|
|
660
|
-
active: "active";
|
|
661
660
|
blocked: "blocked";
|
|
661
|
+
active: "active";
|
|
662
662
|
done: "done";
|
|
663
663
|
archived: "archived";
|
|
664
664
|
proposed: "proposed";
|
|
@@ -681,8 +681,8 @@ export declare const completionEvaluationSchema: z.ZodObject<{
|
|
|
681
681
|
replacementTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
682
682
|
pending: "pending";
|
|
683
683
|
cancelled: "cancelled";
|
|
684
|
-
active: "active";
|
|
685
684
|
blocked: "blocked";
|
|
685
|
+
active: "active";
|
|
686
686
|
done: "done";
|
|
687
687
|
archived: "archived";
|
|
688
688
|
proposed: "proposed";
|
|
@@ -702,8 +702,8 @@ export declare const completionEvaluationSchema: z.ZodObject<{
|
|
|
702
702
|
targetTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
703
703
|
pending: "pending";
|
|
704
704
|
cancelled: "cancelled";
|
|
705
|
-
active: "active";
|
|
706
705
|
blocked: "blocked";
|
|
706
|
+
active: "active";
|
|
707
707
|
done: "done";
|
|
708
708
|
archived: "archived";
|
|
709
709
|
proposed: "proposed";
|
|
@@ -726,8 +726,8 @@ export declare const completionEvaluationSchema: z.ZodObject<{
|
|
|
726
726
|
replacementTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
727
727
|
pending: "pending";
|
|
728
728
|
cancelled: "cancelled";
|
|
729
|
-
active: "active";
|
|
730
729
|
blocked: "blocked";
|
|
730
|
+
active: "active";
|
|
731
731
|
done: "done";
|
|
732
732
|
archived: "archived";
|
|
733
733
|
proposed: "proposed";
|
|
@@ -770,8 +770,8 @@ export declare const completionEvaluationSchema: z.ZodObject<{
|
|
|
770
770
|
targetTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
771
771
|
pending: "pending";
|
|
772
772
|
cancelled: "cancelled";
|
|
773
|
-
active: "active";
|
|
774
773
|
blocked: "blocked";
|
|
774
|
+
active: "active";
|
|
775
775
|
done: "done";
|
|
776
776
|
archived: "archived";
|
|
777
777
|
proposed: "proposed";
|
|
@@ -794,8 +794,8 @@ export declare const completionEvaluationSchema: z.ZodObject<{
|
|
|
794
794
|
replacementTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
795
795
|
pending: "pending";
|
|
796
796
|
cancelled: "cancelled";
|
|
797
|
-
active: "active";
|
|
798
797
|
blocked: "blocked";
|
|
798
|
+
active: "active";
|
|
799
799
|
done: "done";
|
|
800
800
|
archived: "archived";
|
|
801
801
|
proposed: "proposed";
|
|
@@ -829,8 +829,8 @@ export declare const completionEvaluationSchema: z.ZodObject<{
|
|
|
829
829
|
targetTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
830
830
|
pending: "pending";
|
|
831
831
|
cancelled: "cancelled";
|
|
832
|
-
active: "active";
|
|
833
832
|
blocked: "blocked";
|
|
833
|
+
active: "active";
|
|
834
834
|
done: "done";
|
|
835
835
|
archived: "archived";
|
|
836
836
|
proposed: "proposed";
|
|
@@ -853,8 +853,8 @@ export declare const completionEvaluationSchema: z.ZodObject<{
|
|
|
853
853
|
replacementTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
854
854
|
pending: "pending";
|
|
855
855
|
cancelled: "cancelled";
|
|
856
|
-
active: "active";
|
|
857
856
|
blocked: "blocked";
|
|
857
|
+
active: "active";
|
|
858
858
|
done: "done";
|
|
859
859
|
archived: "archived";
|
|
860
860
|
proposed: "proposed";
|
|
@@ -903,8 +903,8 @@ export declare const completionExplanationSchema: z.ZodObject<{
|
|
|
903
903
|
targetTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
904
904
|
pending: "pending";
|
|
905
905
|
cancelled: "cancelled";
|
|
906
|
-
active: "active";
|
|
907
906
|
blocked: "blocked";
|
|
907
|
+
active: "active";
|
|
908
908
|
done: "done";
|
|
909
909
|
archived: "archived";
|
|
910
910
|
proposed: "proposed";
|
|
@@ -927,8 +927,8 @@ export declare const completionExplanationSchema: z.ZodObject<{
|
|
|
927
927
|
replacementTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
928
928
|
pending: "pending";
|
|
929
929
|
cancelled: "cancelled";
|
|
930
|
-
active: "active";
|
|
931
930
|
blocked: "blocked";
|
|
931
|
+
active: "active";
|
|
932
932
|
done: "done";
|
|
933
933
|
archived: "archived";
|
|
934
934
|
proposed: "proposed";
|
|
@@ -981,8 +981,8 @@ export declare const completionListResultSchema: z.ZodObject<{
|
|
|
981
981
|
targetTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
982
982
|
pending: "pending";
|
|
983
983
|
cancelled: "cancelled";
|
|
984
|
-
active: "active";
|
|
985
984
|
blocked: "blocked";
|
|
985
|
+
active: "active";
|
|
986
986
|
done: "done";
|
|
987
987
|
archived: "archived";
|
|
988
988
|
proposed: "proposed";
|
|
@@ -1005,8 +1005,8 @@ export declare const completionListResultSchema: z.ZodObject<{
|
|
|
1005
1005
|
replacementTaskStatus: z.ZodOptional<z.ZodEnum<{
|
|
1006
1006
|
pending: "pending";
|
|
1007
1007
|
cancelled: "cancelled";
|
|
1008
|
-
active: "active";
|
|
1009
1008
|
blocked: "blocked";
|
|
1009
|
+
active: "active";
|
|
1010
1010
|
done: "done";
|
|
1011
1011
|
archived: "archived";
|
|
1012
1012
|
proposed: "proposed";
|
package/dist/workgraph.d.ts
CHANGED
|
@@ -531,8 +531,8 @@ export declare const workGraphSliceSchema: z.ZodObject<{
|
|
|
531
531
|
status: z.ZodEnum<{
|
|
532
532
|
pending: "pending";
|
|
533
533
|
cancelled: "cancelled";
|
|
534
|
-
active: "active";
|
|
535
534
|
blocked: "blocked";
|
|
535
|
+
active: "active";
|
|
536
536
|
done: "done";
|
|
537
537
|
archived: "archived";
|
|
538
538
|
proposed: "proposed";
|
|
@@ -599,8 +599,8 @@ export declare const workGraphReadinessResultSchema: z.ZodObject<{
|
|
|
599
599
|
status: z.ZodEnum<{
|
|
600
600
|
pending: "pending";
|
|
601
601
|
cancelled: "cancelled";
|
|
602
|
-
active: "active";
|
|
603
602
|
blocked: "blocked";
|
|
603
|
+
active: "active";
|
|
604
604
|
done: "done";
|
|
605
605
|
archived: "archived";
|
|
606
606
|
proposed: "proposed";
|
|
@@ -618,8 +618,8 @@ export declare const workGraphReadinessResultSchema: z.ZodObject<{
|
|
|
618
618
|
status: z.ZodEnum<{
|
|
619
619
|
pending: "pending";
|
|
620
620
|
cancelled: "cancelled";
|
|
621
|
-
active: "active";
|
|
622
621
|
blocked: "blocked";
|
|
622
|
+
active: "active";
|
|
623
623
|
done: "done";
|
|
624
624
|
archived: "archived";
|
|
625
625
|
proposed: "proposed";
|
|
@@ -649,8 +649,8 @@ export declare const workGraphReadinessResultSchema: z.ZodObject<{
|
|
|
649
649
|
status: z.ZodEnum<{
|
|
650
650
|
pending: "pending";
|
|
651
651
|
cancelled: "cancelled";
|
|
652
|
-
active: "active";
|
|
653
652
|
blocked: "blocked";
|
|
653
|
+
active: "active";
|
|
654
654
|
done: "done";
|
|
655
655
|
archived: "archived";
|
|
656
656
|
proposed: "proposed";
|
|
@@ -668,8 +668,8 @@ export declare const workGraphReadinessResultSchema: z.ZodObject<{
|
|
|
668
668
|
status: z.ZodEnum<{
|
|
669
669
|
pending: "pending";
|
|
670
670
|
cancelled: "cancelled";
|
|
671
|
-
active: "active";
|
|
672
671
|
blocked: "blocked";
|
|
672
|
+
active: "active";
|
|
673
673
|
done: "done";
|
|
674
674
|
archived: "archived";
|
|
675
675
|
proposed: "proposed";
|
|
@@ -736,8 +736,8 @@ export declare const workGraphContextPackSchema: z.ZodObject<{
|
|
|
736
736
|
status: z.ZodEnum<{
|
|
737
737
|
pending: "pending";
|
|
738
738
|
cancelled: "cancelled";
|
|
739
|
-
active: "active";
|
|
740
739
|
blocked: "blocked";
|
|
740
|
+
active: "active";
|
|
741
741
|
done: "done";
|
|
742
742
|
archived: "archived";
|
|
743
743
|
proposed: "proposed";
|
|
@@ -834,8 +834,8 @@ export declare const workGraphContextPackSchema: z.ZodObject<{
|
|
|
834
834
|
status: z.ZodEnum<{
|
|
835
835
|
pending: "pending";
|
|
836
836
|
cancelled: "cancelled";
|
|
837
|
-
active: "active";
|
|
838
837
|
blocked: "blocked";
|
|
838
|
+
active: "active";
|
|
839
839
|
done: "done";
|
|
840
840
|
archived: "archived";
|
|
841
841
|
proposed: "proposed";
|
|
@@ -853,8 +853,8 @@ export declare const workGraphContextPackSchema: z.ZodObject<{
|
|
|
853
853
|
status: z.ZodEnum<{
|
|
854
854
|
pending: "pending";
|
|
855
855
|
cancelled: "cancelled";
|
|
856
|
-
active: "active";
|
|
857
856
|
blocked: "blocked";
|
|
857
|
+
active: "active";
|
|
858
858
|
done: "done";
|
|
859
859
|
archived: "archived";
|
|
860
860
|
proposed: "proposed";
|
|
@@ -884,8 +884,8 @@ export declare const workGraphContextPackSchema: z.ZodObject<{
|
|
|
884
884
|
status: z.ZodEnum<{
|
|
885
885
|
pending: "pending";
|
|
886
886
|
cancelled: "cancelled";
|
|
887
|
-
active: "active";
|
|
888
887
|
blocked: "blocked";
|
|
888
|
+
active: "active";
|
|
889
889
|
done: "done";
|
|
890
890
|
archived: "archived";
|
|
891
891
|
proposed: "proposed";
|
|
@@ -903,8 +903,8 @@ export declare const workGraphContextPackSchema: z.ZodObject<{
|
|
|
903
903
|
status: z.ZodEnum<{
|
|
904
904
|
pending: "pending";
|
|
905
905
|
cancelled: "cancelled";
|
|
906
|
-
active: "active";
|
|
907
906
|
blocked: "blocked";
|
|
907
|
+
active: "active";
|
|
908
908
|
done: "done";
|
|
909
909
|
archived: "archived";
|
|
910
910
|
proposed: "proposed";
|
|
@@ -948,8 +948,8 @@ export declare const workGraphContextPackSchema: z.ZodObject<{
|
|
|
948
948
|
byStatus: z.ZodRecord<z.ZodEnum<{
|
|
949
949
|
pending: "pending";
|
|
950
950
|
cancelled: "cancelled";
|
|
951
|
-
active: "active";
|
|
952
951
|
blocked: "blocked";
|
|
952
|
+
active: "active";
|
|
953
953
|
done: "done";
|
|
954
954
|
archived: "archived";
|
|
955
955
|
proposed: "proposed";
|
|
@@ -966,8 +966,8 @@ export declare const workGraphContextPackSchema: z.ZodObject<{
|
|
|
966
966
|
byStatus: z.ZodRecord<z.ZodEnum<{
|
|
967
967
|
pending: "pending";
|
|
968
968
|
cancelled: "cancelled";
|
|
969
|
-
active: "active";
|
|
970
969
|
blocked: "blocked";
|
|
970
|
+
active: "active";
|
|
971
971
|
done: "done";
|
|
972
972
|
archived: "archived";
|
|
973
973
|
proposed: "proposed";
|
|
@@ -1239,8 +1239,8 @@ export declare const tasksTraverseResultSchema: z.ZodObject<{
|
|
|
1239
1239
|
status: z.ZodEnum<{
|
|
1240
1240
|
pending: "pending";
|
|
1241
1241
|
cancelled: "cancelled";
|
|
1242
|
-
active: "active";
|
|
1243
1242
|
blocked: "blocked";
|
|
1243
|
+
active: "active";
|
|
1244
1244
|
done: "done";
|
|
1245
1245
|
archived: "archived";
|
|
1246
1246
|
proposed: "proposed";
|
|
@@ -1292,8 +1292,8 @@ export declare const tasksTreeResultSchema: z.ZodObject<{
|
|
|
1292
1292
|
status: z.ZodEnum<{
|
|
1293
1293
|
pending: "pending";
|
|
1294
1294
|
cancelled: "cancelled";
|
|
1295
|
-
active: "active";
|
|
1296
1295
|
blocked: "blocked";
|
|
1296
|
+
active: "active";
|
|
1297
1297
|
done: "done";
|
|
1298
1298
|
archived: "archived";
|
|
1299
1299
|
proposed: "proposed";
|
|
@@ -1325,8 +1325,8 @@ export declare const tasksRollupParamsSchema: z.ZodObject<{
|
|
|
1325
1325
|
byStatus: z.ZodRecord<z.ZodEnum<{
|
|
1326
1326
|
pending: "pending";
|
|
1327
1327
|
cancelled: "cancelled";
|
|
1328
|
-
active: "active";
|
|
1329
1328
|
blocked: "blocked";
|
|
1329
|
+
active: "active";
|
|
1330
1330
|
done: "done";
|
|
1331
1331
|
archived: "archived";
|
|
1332
1332
|
proposed: "proposed";
|
|
@@ -1347,8 +1347,8 @@ export declare const tasksRollupResultSchema: z.ZodObject<{
|
|
|
1347
1347
|
byStatus: z.ZodRecord<z.ZodEnum<{
|
|
1348
1348
|
pending: "pending";
|
|
1349
1349
|
cancelled: "cancelled";
|
|
1350
|
-
active: "active";
|
|
1351
1350
|
blocked: "blocked";
|
|
1351
|
+
active: "active";
|
|
1352
1352
|
done: "done";
|
|
1353
1353
|
archived: "archived";
|
|
1354
1354
|
proposed: "proposed";
|
|
@@ -1365,8 +1365,8 @@ export declare const tasksRollupResultSchema: z.ZodObject<{
|
|
|
1365
1365
|
byStatus: z.ZodRecord<z.ZodEnum<{
|
|
1366
1366
|
pending: "pending";
|
|
1367
1367
|
cancelled: "cancelled";
|
|
1368
|
-
active: "active";
|
|
1369
1368
|
blocked: "blocked";
|
|
1369
|
+
active: "active";
|
|
1370
1370
|
done: "done";
|
|
1371
1371
|
archived: "archived";
|
|
1372
1372
|
proposed: "proposed";
|
|
@@ -1419,8 +1419,8 @@ export declare const tasksFrontierResultSchema: z.ZodObject<{
|
|
|
1419
1419
|
status: z.ZodEnum<{
|
|
1420
1420
|
pending: "pending";
|
|
1421
1421
|
cancelled: "cancelled";
|
|
1422
|
-
active: "active";
|
|
1423
1422
|
blocked: "blocked";
|
|
1423
|
+
active: "active";
|
|
1424
1424
|
done: "done";
|
|
1425
1425
|
archived: "archived";
|
|
1426
1426
|
proposed: "proposed";
|
|
@@ -1438,8 +1438,8 @@ export declare const tasksFrontierResultSchema: z.ZodObject<{
|
|
|
1438
1438
|
status: z.ZodEnum<{
|
|
1439
1439
|
pending: "pending";
|
|
1440
1440
|
cancelled: "cancelled";
|
|
1441
|
-
active: "active";
|
|
1442
1441
|
blocked: "blocked";
|
|
1442
|
+
active: "active";
|
|
1443
1443
|
done: "done";
|
|
1444
1444
|
archived: "archived";
|
|
1445
1445
|
proposed: "proposed";
|
|
@@ -1469,8 +1469,8 @@ export declare const tasksFrontierResultSchema: z.ZodObject<{
|
|
|
1469
1469
|
status: z.ZodEnum<{
|
|
1470
1470
|
pending: "pending";
|
|
1471
1471
|
cancelled: "cancelled";
|
|
1472
|
-
active: "active";
|
|
1473
1472
|
blocked: "blocked";
|
|
1473
|
+
active: "active";
|
|
1474
1474
|
done: "done";
|
|
1475
1475
|
archived: "archived";
|
|
1476
1476
|
proposed: "proposed";
|
|
@@ -1488,8 +1488,8 @@ export declare const tasksFrontierResultSchema: z.ZodObject<{
|
|
|
1488
1488
|
status: z.ZodEnum<{
|
|
1489
1489
|
pending: "pending";
|
|
1490
1490
|
cancelled: "cancelled";
|
|
1491
|
-
active: "active";
|
|
1492
1491
|
blocked: "blocked";
|
|
1492
|
+
active: "active";
|
|
1493
1493
|
done: "done";
|
|
1494
1494
|
archived: "archived";
|
|
1495
1495
|
proposed: "proposed";
|
|
@@ -1578,8 +1578,8 @@ export declare const tasksWorkGraphAuditResultSchema: z.ZodObject<{
|
|
|
1578
1578
|
status: z.ZodEnum<{
|
|
1579
1579
|
pending: "pending";
|
|
1580
1580
|
cancelled: "cancelled";
|
|
1581
|
-
active: "active";
|
|
1582
1581
|
blocked: "blocked";
|
|
1582
|
+
active: "active";
|
|
1583
1583
|
done: "done";
|
|
1584
1584
|
archived: "archived";
|
|
1585
1585
|
proposed: "proposed";
|
|
@@ -1625,8 +1625,8 @@ export declare const tasksWorkGraphAuditResultSchema: z.ZodObject<{
|
|
|
1625
1625
|
status: z.ZodEnum<{
|
|
1626
1626
|
pending: "pending";
|
|
1627
1627
|
cancelled: "cancelled";
|
|
1628
|
-
active: "active";
|
|
1629
1628
|
blocked: "blocked";
|
|
1629
|
+
active: "active";
|
|
1630
1630
|
done: "done";
|
|
1631
1631
|
archived: "archived";
|
|
1632
1632
|
proposed: "proposed";
|
|
@@ -1644,8 +1644,8 @@ export declare const tasksWorkGraphAuditResultSchema: z.ZodObject<{
|
|
|
1644
1644
|
status: z.ZodEnum<{
|
|
1645
1645
|
pending: "pending";
|
|
1646
1646
|
cancelled: "cancelled";
|
|
1647
|
-
active: "active";
|
|
1648
1647
|
blocked: "blocked";
|
|
1648
|
+
active: "active";
|
|
1649
1649
|
done: "done";
|
|
1650
1650
|
archived: "archived";
|
|
1651
1651
|
proposed: "proposed";
|
|
@@ -1675,8 +1675,8 @@ export declare const tasksWorkGraphAuditResultSchema: z.ZodObject<{
|
|
|
1675
1675
|
status: z.ZodEnum<{
|
|
1676
1676
|
pending: "pending";
|
|
1677
1677
|
cancelled: "cancelled";
|
|
1678
|
-
active: "active";
|
|
1679
1678
|
blocked: "blocked";
|
|
1679
|
+
active: "active";
|
|
1680
1680
|
done: "done";
|
|
1681
1681
|
archived: "archived";
|
|
1682
1682
|
proposed: "proposed";
|
|
@@ -1694,8 +1694,8 @@ export declare const tasksWorkGraphAuditResultSchema: z.ZodObject<{
|
|
|
1694
1694
|
status: z.ZodEnum<{
|
|
1695
1695
|
pending: "pending";
|
|
1696
1696
|
cancelled: "cancelled";
|
|
1697
|
-
active: "active";
|
|
1698
1697
|
blocked: "blocked";
|
|
1698
|
+
active: "active";
|
|
1699
1699
|
done: "done";
|
|
1700
1700
|
archived: "archived";
|
|
1701
1701
|
proposed: "proposed";
|
|
@@ -1739,8 +1739,8 @@ export declare const tasksWorkGraphAuditResultSchema: z.ZodObject<{
|
|
|
1739
1739
|
byStatus: z.ZodRecord<z.ZodEnum<{
|
|
1740
1740
|
pending: "pending";
|
|
1741
1741
|
cancelled: "cancelled";
|
|
1742
|
-
active: "active";
|
|
1743
1742
|
blocked: "blocked";
|
|
1743
|
+
active: "active";
|
|
1744
1744
|
done: "done";
|
|
1745
1745
|
archived: "archived";
|
|
1746
1746
|
proposed: "proposed";
|
|
@@ -1757,8 +1757,8 @@ export declare const tasksWorkGraphAuditResultSchema: z.ZodObject<{
|
|
|
1757
1757
|
byStatus: z.ZodRecord<z.ZodEnum<{
|
|
1758
1758
|
pending: "pending";
|
|
1759
1759
|
cancelled: "cancelled";
|
|
1760
|
-
active: "active";
|
|
1761
1760
|
blocked: "blocked";
|
|
1761
|
+
active: "active";
|
|
1762
1762
|
done: "done";
|
|
1763
1763
|
archived: "archived";
|
|
1764
1764
|
proposed: "proposed";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/contracts",
|
|
3
|
-
"version": "2026.10.
|
|
3
|
+
"version": "2026.10.5-rc.ci.672",
|
|
4
4
|
"description": "Domain types, interfaces, and contracts for the CLEO ecosystem",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,6 +26,10 @@
|
|
|
26
26
|
"types": "./dist/cloud/index.d.ts",
|
|
27
27
|
"import": "./dist/cloud/index.js"
|
|
28
28
|
},
|
|
29
|
+
"./ledger": {
|
|
30
|
+
"types": "./dist/ledger/index.d.ts",
|
|
31
|
+
"import": "./dist/ledger/index.js"
|
|
32
|
+
},
|
|
29
33
|
"./config.js": {
|
|
30
34
|
"types": "./dist/config/index.d.ts",
|
|
31
35
|
"import": "./dist/config/index.js"
|
|
@@ -198,7 +202,7 @@
|
|
|
198
202
|
"dependencies": {
|
|
199
203
|
"zod": "^4.3.6",
|
|
200
204
|
"zod-to-json-schema": "^3.25.2",
|
|
201
|
-
"@cleocode/lafs": "2026.10.
|
|
205
|
+
"@cleocode/lafs": "2026.10.5-rc.ci.672"
|
|
202
206
|
},
|
|
203
207
|
"scripts": {
|
|
204
208
|
"build": "tsc -b --force && node scripts/copy-assets.mjs && node scripts/emit-schemas.mjs",
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud contract mirror of cleo-nexus #41 (T123 replica retirement, contract
|
|
3
|
+
* v2.28; T13284): the E31 request and answer, the stored retirement, and the
|
|
4
|
+
* `retiredAt` / `successor` fields home replicas gain, as the server validates
|
|
5
|
+
* them.
|
|
6
|
+
*
|
|
7
|
+
* @task T13284
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { describe, expect, it } from 'vitest';
|
|
11
|
+
import {
|
|
12
|
+
AttachHomeReplicaResult,
|
|
13
|
+
HomeReplica,
|
|
14
|
+
ListHomeReplicasResult,
|
|
15
|
+
ReplicaRetirement,
|
|
16
|
+
RetireReplicaRequest,
|
|
17
|
+
RetireReplicaResult,
|
|
18
|
+
} from '../cloud/index.js';
|
|
19
|
+
import { NEXUS_REPLICA_RETIREMENT_REASONS } from '../nexus-vault.js';
|
|
20
|
+
|
|
21
|
+
const DEVICE = '0192f1c2-7d3e-4abc-8def-0000000000b0';
|
|
22
|
+
const R1 = '0192f1c2-7d3e-7abc-8def-0000000000a1';
|
|
23
|
+
const R2 = '0192f1c2-7d3e-7abc-8def-0000000000b1';
|
|
24
|
+
const STREAM = 'project:0192f1c2-7d3e-7abc-8def-0123456789ab';
|
|
25
|
+
const SIG = Buffer.alloc(64, 7).toString('base64');
|
|
26
|
+
|
|
27
|
+
const request = {
|
|
28
|
+
deviceId: DEVICE,
|
|
29
|
+
successor: R2,
|
|
30
|
+
lastReplicaSeq: 4,
|
|
31
|
+
txnId: `${R1}:17`,
|
|
32
|
+
signature: SIG,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
describe('RetireReplicaRequest (T13284)', () => {
|
|
36
|
+
it('takes a successor, lastReplicaSeq and txn id, each nullable', () => {
|
|
37
|
+
expect(RetireReplicaRequest.safeParse(request).success).toBe(true);
|
|
38
|
+
expect(
|
|
39
|
+
RetireReplicaRequest.safeParse({
|
|
40
|
+
...request,
|
|
41
|
+
successor: null,
|
|
42
|
+
lastReplicaSeq: null,
|
|
43
|
+
txnId: null,
|
|
44
|
+
}).success,
|
|
45
|
+
).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('refuses a negative or fractional lastReplicaSeq and a malformed txn id', () => {
|
|
49
|
+
expect(RetireReplicaRequest.safeParse({ ...request, lastReplicaSeq: -1 }).success).toBe(false);
|
|
50
|
+
expect(RetireReplicaRequest.safeParse({ ...request, lastReplicaSeq: 1.5 }).success).toBe(false);
|
|
51
|
+
for (const txnId of [
|
|
52
|
+
R1,
|
|
53
|
+
`${R1}:`,
|
|
54
|
+
`${R1}:01`,
|
|
55
|
+
`${R1}:-1`,
|
|
56
|
+
`not-a-uuid:3`,
|
|
57
|
+
`${R1}:12345678901234567`,
|
|
58
|
+
]) {
|
|
59
|
+
expect(RetireReplicaRequest.safeParse({ ...request, txnId }).success).toBe(false);
|
|
60
|
+
}
|
|
61
|
+
// Any UUID may emit the transaction (the successor on a rebind), not only a v7 replica id.
|
|
62
|
+
expect(RetireReplicaRequest.safeParse({ ...request, txnId: `${DEVICE}:0` }).success).toBe(true);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('a successor must be a replica id (UUIDv7)', () => {
|
|
66
|
+
expect(RetireReplicaRequest.safeParse({ ...request, successor: DEVICE }).success).toBe(false);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
describe('ReplicaRetirement and RetireReplicaResult (T13284)', () => {
|
|
71
|
+
const stored = {
|
|
72
|
+
streamId: STREAM,
|
|
73
|
+
replicaId: R1,
|
|
74
|
+
successor: R2,
|
|
75
|
+
lastReplicaSeq: null,
|
|
76
|
+
signerDeviceId: DEVICE,
|
|
77
|
+
txnId: null,
|
|
78
|
+
signature: SIG,
|
|
79
|
+
retiredAt: '2026-10-06T07:00:00.000Z',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
it('is the stored record, wrapped as { retirement }', () => {
|
|
83
|
+
expect(ReplicaRetirement.safeParse(stored).success).toBe(true);
|
|
84
|
+
expect(RetireReplicaResult.safeParse({ retirement: stored }).success).toBe(true);
|
|
85
|
+
expect(RetireReplicaResult.safeParse(stored).success).toBe(false);
|
|
86
|
+
const { retiredAt: _retiredAt, ...undated } = stored;
|
|
87
|
+
expect(ReplicaRetirement.safeParse(undated).success).toBe(false);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
describe('home replicas carry retiredAt and successor (T13284)', () => {
|
|
92
|
+
const replica = {
|
|
93
|
+
replicaId: R1,
|
|
94
|
+
deviceId: DEVICE,
|
|
95
|
+
deviceState: 'active',
|
|
96
|
+
attachedAt: '2026-10-01T00:00:00.000Z',
|
|
97
|
+
lastSyncAt: null,
|
|
98
|
+
presence: null,
|
|
99
|
+
presenceAt: null,
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
it('parses an older server without them, and a retired replica with them', () => {
|
|
103
|
+
expect(HomeReplica.safeParse(replica).success).toBe(true);
|
|
104
|
+
const retired = { ...replica, retiredAt: '2026-10-06T07:00:00.000Z', successor: R2 };
|
|
105
|
+
expect(HomeReplica.parse(retired)).toMatchObject({
|
|
106
|
+
retiredAt: retired.retiredAt,
|
|
107
|
+
successor: R2,
|
|
108
|
+
});
|
|
109
|
+
expect(HomeReplica.safeParse({ ...replica, retiredAt: null, successor: null }).success).toBe(
|
|
110
|
+
true,
|
|
111
|
+
);
|
|
112
|
+
expect(HomeReplica.safeParse({ ...replica, successor: DEVICE }).success).toBe(false);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it('the attach answer and the list follow HomeReplica', () => {
|
|
116
|
+
expect(AttachHomeReplicaResult).toBe(HomeReplica);
|
|
117
|
+
expect(ListHomeReplicasResult.shape.replicas.element).toBe(HomeReplica);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
describe('E31 refusal reasons (T13284)', () => {
|
|
122
|
+
it('are the seven server reasons', () => {
|
|
123
|
+
expect([...NEXUS_REPLICA_RETIREMENT_REASONS].sort()).toEqual(
|
|
124
|
+
[
|
|
125
|
+
'not-pinned-or-owner',
|
|
126
|
+
'replica-retired',
|
|
127
|
+
'retire-below-head',
|
|
128
|
+
'retired',
|
|
129
|
+
'successor-other-user',
|
|
130
|
+
'successor-retired',
|
|
131
|
+
'successor-taken',
|
|
132
|
+
].sort(),
|
|
133
|
+
);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud contract mirrors of cleo-nexus #38 (`DeviceScope`, `StatusQuery`;
|
|
3
|
+
* T13282) and #39 (`GetCheckpointResult`; T13283): the shapes the server
|
|
4
|
+
* validates, so a client that parses with them agrees with it.
|
|
5
|
+
*
|
|
6
|
+
* @task T13282
|
|
7
|
+
* @task T13283
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { describe, expect, it } from 'vitest';
|
|
11
|
+
import {
|
|
12
|
+
DeviceScope,
|
|
13
|
+
GetCheckpointResult,
|
|
14
|
+
ListCheckpointsResult,
|
|
15
|
+
StatusQuery,
|
|
16
|
+
} from '../cloud/index.js';
|
|
17
|
+
|
|
18
|
+
const PROJECT = '0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b';
|
|
19
|
+
const REPLICA = '0198a1b2-0000-7000-8000-0000000000a1';
|
|
20
|
+
|
|
21
|
+
describe('DeviceScope and StatusQuery (T13282)', () => {
|
|
22
|
+
it('DeviceScope is the eight §2.3 scopes and nothing else', () => {
|
|
23
|
+
expect(DeviceScope.options).toEqual([
|
|
24
|
+
'account:read',
|
|
25
|
+
'devices:read',
|
|
26
|
+
'projects:read',
|
|
27
|
+
'projects:write',
|
|
28
|
+
'sync:read',
|
|
29
|
+
'sync:write',
|
|
30
|
+
'keys:read',
|
|
31
|
+
'keys:write',
|
|
32
|
+
]);
|
|
33
|
+
expect(DeviceScope.safeParse('admin').success).toBe(false);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('StatusQuery: both optional, replicaId requires projectId and must be a UUIDv7', () => {
|
|
37
|
+
expect(StatusQuery.safeParse({}).success).toBe(true);
|
|
38
|
+
expect(StatusQuery.safeParse({ projectId: PROJECT }).success).toBe(true);
|
|
39
|
+
expect(StatusQuery.safeParse({ projectId: PROJECT, replicaId: REPLICA }).success).toBe(true);
|
|
40
|
+
const orphan = StatusQuery.safeParse({ replicaId: REPLICA });
|
|
41
|
+
expect(orphan.success).toBe(false);
|
|
42
|
+
expect(orphan.error?.issues[0]?.message).toBe('replicaId requires projectId');
|
|
43
|
+
// A UUIDv4 is not a replica id.
|
|
44
|
+
expect(
|
|
45
|
+
StatusQuery.safeParse({
|
|
46
|
+
projectId: PROJECT,
|
|
47
|
+
replicaId: '0198a1b2-0000-4000-8000-0000000000a1',
|
|
48
|
+
}).success,
|
|
49
|
+
).toBe(false);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
describe('GetCheckpointResult (T13283)', () => {
|
|
54
|
+
it('is one checkpoint shaped exactly as a list item', () => {
|
|
55
|
+
const listItem = ListCheckpointsResult.shape.checkpoints.element;
|
|
56
|
+
expect(GetCheckpointResult.shape.checkpoint).toBe(listItem);
|
|
57
|
+
expect(Object.keys(GetCheckpointResult.shape)).toEqual(['checkpoint']);
|
|
58
|
+
expect(GetCheckpointResult.safeParse({ checkpoints: [] }).success).toBe(false);
|
|
59
|
+
});
|
|
60
|
+
});
|
package/src/agent-registry.ts
CHANGED
|
@@ -47,7 +47,11 @@ export interface AgentCredential {
|
|
|
47
47
|
* device). Re-register with `cleo agent register --id <id> --api-key <key>`.
|
|
48
48
|
*/
|
|
49
49
|
requiresReauth?: boolean;
|
|
50
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* Base URL of the cloud messaging API, or `'local'` for none. Rows from
|
|
52
|
+
* before T13169 may still hold the retired `https://api.signaldock.io`;
|
|
53
|
+
* CLEO never calls a SignalDock host.
|
|
54
|
+
*/
|
|
51
55
|
apiBaseUrl: string;
|
|
52
56
|
/** Agent classification from the registry (e.g. 'code_dev', 'orchestrator'). */
|
|
53
57
|
classification?: string;
|