@astrale-os/kernel-core 1.0.0-beta.4 → 1.0.0-beta.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.
Files changed (25) hide show
  1. package/dist/callable/invocation/result.d.ts +8 -1
  2. package/dist/schema/callables/execution.d.ts +300 -0
  3. package/dist/schema/callables/function.js +2 -1
  4. package/dist/schema/kernel/schema.d.ts +435 -17
  5. package/dist/schema/kernel/syscalls/contracts/execution.d.ts +241 -1
  6. package/dist/schema/kernel/syscalls/contracts/execution.js +77 -7
  7. package/dist/schema/kernel/syscalls/contracts/index.d.ts +2 -2
  8. package/dist/schema/kernel/syscalls/contracts/index.js +2 -2
  9. package/dist/schema/kernel/syscalls/contracts/install.d.ts +160 -0
  10. package/dist/schema/kernel/syscalls/contracts/install.js +48 -2
  11. package/dist/schema/kernel/syscalls/contracts/installation.d.ts +5 -0
  12. package/dist/schema/kernel/syscalls/contracts/installation.js +1 -1
  13. package/dist/schema/kernel/syscalls/contracts/query.d.ts +7 -0
  14. package/dist/schema/kernel/syscalls/contracts/query.js +8 -1
  15. package/dist/schema/kernel/syscalls/contracts/uninstall.d.ts +1 -0
  16. package/dist/schema/kernel/syscalls/contracts/uninstall.js +1 -0
  17. package/dist/schema/kernel/syscalls/declarations/execution.d.ts +150 -0
  18. package/dist/schema/kernel/syscalls/declarations/index.d.ts +212 -3
  19. package/dist/schema/kernel/syscalls/declarations/install.d.ts +58 -2
  20. package/dist/schema/kernel/syscalls/declarations/install.js +6 -4
  21. package/dist/schema/kernel/syscalls/declarations/query.d.ts +1 -0
  22. package/dist/schema/kernel/syscalls/declarations/uninstall.d.ts +3 -1
  23. package/dist/schema/kernel/syscalls/declarations/uninstall.js +2 -0
  24. package/dist/schema/kernel/syscalls/descriptors/execution.d.ts +150 -0
  25. package/package.json +1 -1
@@ -7,6 +7,11 @@ export declare const artifactRef: import("zod").ZodObject<{
7
7
  mediaType: import("zod").ZodString;
8
8
  size: import("zod").ZodNumber;
9
9
  }, import("zod/v4/core").$strict>;
10
+ export declare const domainGeneration: import("zod").ZodObject<{
11
+ origin: import("zod").ZodString;
12
+ revision: import("zod").ZodString;
13
+ generation: import("zod").ZodString;
14
+ }, import("zod/v4/core").$strict>;
10
15
  export declare const issuerConsent: import("zod").ZodObject<{
11
16
  issuer: import("zod").ZodObject<{
12
17
  from: import("zod").ZodString;
@@ -15,7 +15,7 @@ const dependencyReadinessEvidence = strictObject({
15
15
  readiness: installationDigest,
16
16
  meaning: installationDigest,
17
17
  });
18
- const domainGeneration = strictObject({
18
+ export const domainGeneration = strictObject({
19
19
  origin: installationText,
20
20
  revision: installationText,
21
21
  generation: installationDigest,
@@ -167,6 +167,12 @@ export declare const queryInput: import("zod").ZodObject<{
167
167
  after: import("zod").ZodOptional<import("zod").ZodString>;
168
168
  }, import("zod/v4/core").$strict>;
169
169
  }, import("zod/v4/core").$strict>;
170
+ /**
171
+ * One Query page. `certification` is present exactly on a repair read inside a maintenance
172
+ * session, and on a page that holds a fact the active contract refutes while the Instance carries
173
+ * the break-glass `uncertified` mark: its facts were admitted for structure and authority, never
174
+ * for conformance.
175
+ */
170
176
  export declare const queryOutput: import("zod").ZodObject<{
171
177
  result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
172
178
  kind: import("zod").ZodLiteral<"graph">;
@@ -264,4 +270,5 @@ export declare const queryOutput: import("zod").ZodObject<{
264
270
  page: import("zod").ZodObject<{
265
271
  next: import("zod").ZodOptional<import("zod").ZodString>;
266
272
  }, import("zod/v4/core").$strict>;
273
+ certification: import("zod").ZodOptional<import("zod").ZodLiteral<"uncertified">>;
267
274
  }, import("zod/v4/core").$strict>;
@@ -1,4 +1,4 @@
1
- import { number, strictObject, string } from 'zod';
1
+ import { literal, number, strictObject, string } from 'zod';
2
2
  import { queryAstSchema, queryResultSchema } from '#graph/query/wire';
3
3
  import { domainExpectations, MAXIMUM_DOMAIN_EXPECTATIONS } from './expected.js';
4
4
  export const MAXIMUM_QUERY_EXPECTATIONS = MAXIMUM_DOMAIN_EXPECTATIONS;
@@ -10,7 +10,14 @@ export const queryInput = strictObject({
10
10
  after: string().min(1).optional(),
11
11
  }),
12
12
  });
13
+ /**
14
+ * One Query page. `certification` is present exactly on a repair read inside a maintenance
15
+ * session, and on a page that holds a fact the active contract refutes while the Instance carries
16
+ * the break-glass `uncertified` mark: its facts were admitted for structure and authority, never
17
+ * for conformance.
18
+ */
13
19
  export const queryOutput = strictObject({
14
20
  result: queryResultSchema,
15
21
  page: strictObject({ next: string().min(1).optional() }),
22
+ certification: literal('uncertified').optional(),
16
23
  });
@@ -7,6 +7,7 @@ export declare const uninstallInput: import("zod").ZodObject<{
7
7
  mode: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"safe">, import("zod").ZodLiteral<"destructive">]>;
8
8
  }, import("zod/v4/core").$strict>;
9
9
  }, import("zod/v4/core").$strict>;
10
+ /** What a completed uninstall ends with, the value its Execution's `result` yields. */
10
11
  export declare const uninstallOutput: import("zod").ZodObject<{
11
12
  operation: import("zod").ZodString;
12
13
  transitions: import("zod").ZodArray<import("zod").ZodObject<{
@@ -5,6 +5,7 @@ export const uninstallInput = strictObject({
5
5
  domains: array(installationText).min(1),
6
6
  data: strictObject({ mode: union([literal('safe'), literal('destructive')]) }),
7
7
  });
8
+ /** What a completed uninstall ends with, the value its Execution's `result` yields. */
8
9
  export const uninstallOutput = strictObject({
9
10
  operation: operationIdSchema,
10
11
  transitions: array(transitionReceipt).min(1),
@@ -7,6 +7,39 @@ export declare const ExecutionStatus: builder.Method<builder.CallableProjection<
7
7
  version: string;
8
8
  state: "cancelled" | "completed" | "expired" | "failed" | "paused" | "pending" | "running" | "waiting";
9
9
  createdAt: string;
10
+ detail?: {
11
+ phase: "activating" | "attempting" | "awaiting" | "cancelled" | "classifying" | "completed" | "draining" | "rejected" | "validating";
12
+ class?: "immediate" | "noop" | "revalidate" | undefined;
13
+ mode?: "maintenance" | "online" | undefined;
14
+ validation?: {
15
+ scope: "full" | "incremental";
16
+ counts: "exact" | "sample";
17
+ } | undefined;
18
+ progress?: {
19
+ pages: number;
20
+ interruptions: number;
21
+ } | undefined;
22
+ instance?: "attempt" | "draining" | "open" | "repair" | undefined;
23
+ command?: number | undefined;
24
+ expires?: number | undefined;
25
+ attempt?: {
26
+ number: number;
27
+ destination: "previous" | "target";
28
+ } | undefined;
29
+ report?: {
30
+ attempt: number;
31
+ destination: "previous" | "target";
32
+ result: "aborted" | "interrupted" | "migration-required";
33
+ reason?: string | undefined;
34
+ summary?: unknown;
35
+ } | undefined;
36
+ uncertified?: {
37
+ since: number;
38
+ session?: string | undefined;
39
+ operator?: string | undefined;
40
+ reason?: string | undefined;
41
+ } | undefined;
42
+ } | undefined;
10
43
  outcome?: {
11
44
  kind: "completed";
12
45
  value: unknown;
@@ -21,6 +54,23 @@ export declare const ExecutionStatus: builder.Method<builder.CallableProjection<
21
54
  } | {
22
55
  kind: "cancelled";
23
56
  } | undefined;
57
+ } | {
58
+ id: string;
59
+ state: "deleted";
60
+ outcome: {
61
+ kind: "completed";
62
+ value: unknown;
63
+ } | {
64
+ kind: "failed";
65
+ error: {
66
+ code: string;
67
+ message: string;
68
+ family?: string | undefined;
69
+ details?: unknown;
70
+ };
71
+ } | {
72
+ kind: "cancelled";
73
+ };
24
74
  };
25
75
  }, "authenticated", false, false, undefined>>;
26
76
  export declare const ExecutionResult: builder.Method<builder.CallableProjection<{
@@ -52,6 +102,39 @@ export declare const ExecutionCancel: builder.Method<builder.CallableProjection<
52
102
  version: string;
53
103
  state: "cancelled" | "completed" | "expired" | "failed" | "paused" | "pending" | "running" | "waiting";
54
104
  createdAt: string;
105
+ detail?: {
106
+ phase: "activating" | "attempting" | "awaiting" | "cancelled" | "classifying" | "completed" | "draining" | "rejected" | "validating";
107
+ class?: "immediate" | "noop" | "revalidate" | undefined;
108
+ mode?: "maintenance" | "online" | undefined;
109
+ validation?: {
110
+ scope: "full" | "incremental";
111
+ counts: "exact" | "sample";
112
+ } | undefined;
113
+ progress?: {
114
+ pages: number;
115
+ interruptions: number;
116
+ } | undefined;
117
+ instance?: "attempt" | "draining" | "open" | "repair" | undefined;
118
+ command?: number | undefined;
119
+ expires?: number | undefined;
120
+ attempt?: {
121
+ number: number;
122
+ destination: "previous" | "target";
123
+ } | undefined;
124
+ report?: {
125
+ attempt: number;
126
+ destination: "previous" | "target";
127
+ result: "aborted" | "interrupted" | "migration-required";
128
+ reason?: string | undefined;
129
+ summary?: unknown;
130
+ } | undefined;
131
+ uncertified?: {
132
+ since: number;
133
+ session?: string | undefined;
134
+ operator?: string | undefined;
135
+ reason?: string | undefined;
136
+ } | undefined;
137
+ } | undefined;
55
138
  outcome?: {
56
139
  kind: "completed";
57
140
  value: unknown;
@@ -66,6 +149,23 @@ export declare const ExecutionCancel: builder.Method<builder.CallableProjection<
66
149
  } | {
67
150
  kind: "cancelled";
68
151
  } | undefined;
152
+ } | {
153
+ id: string;
154
+ state: "deleted";
155
+ outcome: {
156
+ kind: "completed";
157
+ value: unknown;
158
+ } | {
159
+ kind: "failed";
160
+ error: {
161
+ code: string;
162
+ message: string;
163
+ family?: string | undefined;
164
+ details?: unknown;
165
+ };
166
+ } | {
167
+ kind: "cancelled";
168
+ };
69
169
  };
70
170
  }, "authenticated", false, false, undefined>>;
71
171
  export declare const ExecutionSignal: builder.Method<builder.CallableProjection<{
@@ -83,6 +183,39 @@ export declare const ExecutionResume: builder.Method<builder.CallableProjection<
83
183
  version: string;
84
184
  state: "cancelled" | "completed" | "expired" | "failed" | "paused" | "pending" | "running" | "waiting";
85
185
  createdAt: string;
186
+ detail?: {
187
+ phase: "activating" | "attempting" | "awaiting" | "cancelled" | "classifying" | "completed" | "draining" | "rejected" | "validating";
188
+ class?: "immediate" | "noop" | "revalidate" | undefined;
189
+ mode?: "maintenance" | "online" | undefined;
190
+ validation?: {
191
+ scope: "full" | "incremental";
192
+ counts: "exact" | "sample";
193
+ } | undefined;
194
+ progress?: {
195
+ pages: number;
196
+ interruptions: number;
197
+ } | undefined;
198
+ instance?: "attempt" | "draining" | "open" | "repair" | undefined;
199
+ command?: number | undefined;
200
+ expires?: number | undefined;
201
+ attempt?: {
202
+ number: number;
203
+ destination: "previous" | "target";
204
+ } | undefined;
205
+ report?: {
206
+ attempt: number;
207
+ destination: "previous" | "target";
208
+ result: "aborted" | "interrupted" | "migration-required";
209
+ reason?: string | undefined;
210
+ summary?: unknown;
211
+ } | undefined;
212
+ uncertified?: {
213
+ since: number;
214
+ session?: string | undefined;
215
+ operator?: string | undefined;
216
+ reason?: string | undefined;
217
+ } | undefined;
218
+ } | undefined;
86
219
  outcome?: {
87
220
  kind: "completed";
88
221
  value: unknown;
@@ -97,6 +230,23 @@ export declare const ExecutionResume: builder.Method<builder.CallableProjection<
97
230
  } | {
98
231
  kind: "cancelled";
99
232
  } | undefined;
233
+ } | {
234
+ id: string;
235
+ state: "deleted";
236
+ outcome: {
237
+ kind: "completed";
238
+ value: unknown;
239
+ } | {
240
+ kind: "failed";
241
+ error: {
242
+ code: string;
243
+ message: string;
244
+ family?: string | undefined;
245
+ details?: unknown;
246
+ };
247
+ } | {
248
+ kind: "cancelled";
249
+ };
100
250
  };
101
251
  }, "authenticated", false, false, undefined>>;
102
252
  export declare const ExecutionDelete: builder.Method<builder.CallableProjection<Record<string, never>, {
@@ -232,6 +232,7 @@ export declare const Functions: Readonly<{
232
232
  page: {
233
233
  next?: string | undefined;
234
234
  };
235
+ certification?: "uncertified" | undefined;
235
236
  };
236
237
  }, "authorized", false, false, undefined>>;
237
238
  upload: builder.Function<builder.CallableProjection<import("@astrale-os/kernel-dsl/v1").BinaryInputProjection<{
@@ -544,9 +545,65 @@ export declare const Functions: Readonly<{
544
545
  revision?: string | undefined;
545
546
  currentRevision?: string | null | undefined;
546
547
  })[];
548
+ mode?: "maintenance" | "online" | undefined;
549
+ validation?: {
550
+ scope?: "full" | "incremental" | undefined;
551
+ counts?: "exact" | "sample" | undefined;
552
+ } | undefined;
547
553
  }, {
548
- readonly mode: 'binary';
549
- }, "authorized", false, false, undefined>>;
554
+ readonly mode: 'value';
555
+ readonly value: {
556
+ changed: true;
557
+ receipt: {
558
+ operation: string;
559
+ transitions: {
560
+ intent: {
561
+ transition: string;
562
+ operation: string;
563
+ origin: string;
564
+ previous: {
565
+ origin: string;
566
+ revision: string;
567
+ generation: string;
568
+ } | null;
569
+ generation: {
570
+ origin: string;
571
+ revision: string;
572
+ generation: string;
573
+ } | null;
574
+ consent?: {
575
+ issuer: {
576
+ from: string;
577
+ to: string;
578
+ };
579
+ previous: "drain" | "revoke";
580
+ } | undefined;
581
+ };
582
+ phase: "converge" | "cutover";
583
+ state: "committed";
584
+ readiness?: {
585
+ generation: string;
586
+ transition: string;
587
+ dependencies: {
588
+ origin: string;
589
+ generation: string;
590
+ readiness: string;
591
+ meaning: string;
592
+ }[];
593
+ } | undefined;
594
+ }[];
595
+ };
596
+ } | {
597
+ changed: false;
598
+ domains: {
599
+ origin: string;
600
+ revision: string;
601
+ generation: string;
602
+ }[];
603
+ };
604
+ }, "authorized", false, false, {
605
+ readonly durable: true;
606
+ }>>;
550
607
  introspect: builder.Function<builder.CallableProjection<{
551
608
  kind: "bundle" | "dependencies" | "inspect";
552
609
  origin: string;
@@ -602,7 +659,9 @@ export declare const Functions: Readonly<{
602
659
  } | undefined;
603
660
  }[];
604
661
  };
605
- }, "authorized", false, false, undefined>>;
662
+ }, "authorized", false, false, {
663
+ readonly durable: true;
664
+ }>>;
606
665
  journal: builder.Function<builder.CallableProjection<{
607
666
  invocation?: {
608
667
  source: string;
@@ -779,6 +838,39 @@ export declare const ExecutionMethods: Readonly<{
779
838
  version: string;
780
839
  state: "cancelled" | "completed" | "expired" | "failed" | "paused" | "pending" | "running" | "waiting";
781
840
  createdAt: string;
841
+ detail?: {
842
+ phase: "activating" | "attempting" | "awaiting" | "cancelled" | "classifying" | "completed" | "draining" | "rejected" | "validating";
843
+ class?: "immediate" | "noop" | "revalidate" | undefined;
844
+ mode?: "maintenance" | "online" | undefined;
845
+ validation?: {
846
+ scope: "full" | "incremental";
847
+ counts: "exact" | "sample";
848
+ } | undefined;
849
+ progress?: {
850
+ pages: number;
851
+ interruptions: number;
852
+ } | undefined;
853
+ instance?: "attempt" | "draining" | "open" | "repair" | undefined;
854
+ command?: number | undefined;
855
+ expires?: number | undefined;
856
+ attempt?: {
857
+ number: number;
858
+ destination: "previous" | "target";
859
+ } | undefined;
860
+ report?: {
861
+ attempt: number;
862
+ destination: "previous" | "target";
863
+ result: "aborted" | "interrupted" | "migration-required";
864
+ reason?: string | undefined;
865
+ summary?: unknown;
866
+ } | undefined;
867
+ uncertified?: {
868
+ since: number;
869
+ session?: string | undefined;
870
+ operator?: string | undefined;
871
+ reason?: string | undefined;
872
+ } | undefined;
873
+ } | undefined;
782
874
  outcome?: {
783
875
  kind: "completed";
784
876
  value: unknown;
@@ -793,6 +885,23 @@ export declare const ExecutionMethods: Readonly<{
793
885
  } | {
794
886
  kind: "cancelled";
795
887
  } | undefined;
888
+ } | {
889
+ id: string;
890
+ state: "deleted";
891
+ outcome: {
892
+ kind: "completed";
893
+ value: unknown;
894
+ } | {
895
+ kind: "failed";
896
+ error: {
897
+ code: string;
898
+ message: string;
899
+ family?: string | undefined;
900
+ details?: unknown;
901
+ };
902
+ } | {
903
+ kind: "cancelled";
904
+ };
796
905
  };
797
906
  }, "authenticated", false, false, undefined>>;
798
907
  result: builder.Method<builder.CallableProjection<{
@@ -824,6 +933,39 @@ export declare const ExecutionMethods: Readonly<{
824
933
  version: string;
825
934
  state: "cancelled" | "completed" | "expired" | "failed" | "paused" | "pending" | "running" | "waiting";
826
935
  createdAt: string;
936
+ detail?: {
937
+ phase: "activating" | "attempting" | "awaiting" | "cancelled" | "classifying" | "completed" | "draining" | "rejected" | "validating";
938
+ class?: "immediate" | "noop" | "revalidate" | undefined;
939
+ mode?: "maintenance" | "online" | undefined;
940
+ validation?: {
941
+ scope: "full" | "incremental";
942
+ counts: "exact" | "sample";
943
+ } | undefined;
944
+ progress?: {
945
+ pages: number;
946
+ interruptions: number;
947
+ } | undefined;
948
+ instance?: "attempt" | "draining" | "open" | "repair" | undefined;
949
+ command?: number | undefined;
950
+ expires?: number | undefined;
951
+ attempt?: {
952
+ number: number;
953
+ destination: "previous" | "target";
954
+ } | undefined;
955
+ report?: {
956
+ attempt: number;
957
+ destination: "previous" | "target";
958
+ result: "aborted" | "interrupted" | "migration-required";
959
+ reason?: string | undefined;
960
+ summary?: unknown;
961
+ } | undefined;
962
+ uncertified?: {
963
+ since: number;
964
+ session?: string | undefined;
965
+ operator?: string | undefined;
966
+ reason?: string | undefined;
967
+ } | undefined;
968
+ } | undefined;
827
969
  outcome?: {
828
970
  kind: "completed";
829
971
  value: unknown;
@@ -838,6 +980,23 @@ export declare const ExecutionMethods: Readonly<{
838
980
  } | {
839
981
  kind: "cancelled";
840
982
  } | undefined;
983
+ } | {
984
+ id: string;
985
+ state: "deleted";
986
+ outcome: {
987
+ kind: "completed";
988
+ value: unknown;
989
+ } | {
990
+ kind: "failed";
991
+ error: {
992
+ code: string;
993
+ message: string;
994
+ family?: string | undefined;
995
+ details?: unknown;
996
+ };
997
+ } | {
998
+ kind: "cancelled";
999
+ };
841
1000
  };
842
1001
  }, "authenticated", false, false, undefined>>;
843
1002
  signal: builder.Method<builder.CallableProjection<{
@@ -855,6 +1014,39 @@ export declare const ExecutionMethods: Readonly<{
855
1014
  version: string;
856
1015
  state: "cancelled" | "completed" | "expired" | "failed" | "paused" | "pending" | "running" | "waiting";
857
1016
  createdAt: string;
1017
+ detail?: {
1018
+ phase: "activating" | "attempting" | "awaiting" | "cancelled" | "classifying" | "completed" | "draining" | "rejected" | "validating";
1019
+ class?: "immediate" | "noop" | "revalidate" | undefined;
1020
+ mode?: "maintenance" | "online" | undefined;
1021
+ validation?: {
1022
+ scope: "full" | "incremental";
1023
+ counts: "exact" | "sample";
1024
+ } | undefined;
1025
+ progress?: {
1026
+ pages: number;
1027
+ interruptions: number;
1028
+ } | undefined;
1029
+ instance?: "attempt" | "draining" | "open" | "repair" | undefined;
1030
+ command?: number | undefined;
1031
+ expires?: number | undefined;
1032
+ attempt?: {
1033
+ number: number;
1034
+ destination: "previous" | "target";
1035
+ } | undefined;
1036
+ report?: {
1037
+ attempt: number;
1038
+ destination: "previous" | "target";
1039
+ result: "aborted" | "interrupted" | "migration-required";
1040
+ reason?: string | undefined;
1041
+ summary?: unknown;
1042
+ } | undefined;
1043
+ uncertified?: {
1044
+ since: number;
1045
+ session?: string | undefined;
1046
+ operator?: string | undefined;
1047
+ reason?: string | undefined;
1048
+ } | undefined;
1049
+ } | undefined;
858
1050
  outcome?: {
859
1051
  kind: "completed";
860
1052
  value: unknown;
@@ -869,6 +1061,23 @@ export declare const ExecutionMethods: Readonly<{
869
1061
  } | {
870
1062
  kind: "cancelled";
871
1063
  } | undefined;
1064
+ } | {
1065
+ id: string;
1066
+ state: "deleted";
1067
+ outcome: {
1068
+ kind: "completed";
1069
+ value: unknown;
1070
+ } | {
1071
+ kind: "failed";
1072
+ error: {
1073
+ code: string;
1074
+ message: string;
1075
+ family?: string | undefined;
1076
+ details?: unknown;
1077
+ };
1078
+ } | {
1079
+ kind: "cancelled";
1080
+ };
872
1081
  };
873
1082
  }, "authenticated", false, false, undefined>>;
874
1083
  delete: builder.Method<builder.CallableProjection<Record<string, never>, {
@@ -24,6 +24,62 @@ export declare const Install: builder.Function<builder.CallableProjection<{
24
24
  revision?: string | undefined;
25
25
  currentRevision?: string | null | undefined;
26
26
  })[];
27
+ mode?: "maintenance" | "online" | undefined;
28
+ validation?: {
29
+ scope?: "full" | "incremental" | undefined;
30
+ counts?: "exact" | "sample" | undefined;
31
+ } | undefined;
27
32
  }, {
28
- readonly mode: 'binary';
29
- }, "authorized", false, false, undefined>>;
33
+ readonly mode: 'value';
34
+ readonly value: {
35
+ changed: true;
36
+ receipt: {
37
+ operation: string;
38
+ transitions: {
39
+ intent: {
40
+ transition: string;
41
+ operation: string;
42
+ origin: string;
43
+ previous: {
44
+ origin: string;
45
+ revision: string;
46
+ generation: string;
47
+ } | null;
48
+ generation: {
49
+ origin: string;
50
+ revision: string;
51
+ generation: string;
52
+ } | null;
53
+ consent?: {
54
+ issuer: {
55
+ from: string;
56
+ to: string;
57
+ };
58
+ previous: "drain" | "revoke";
59
+ } | undefined;
60
+ };
61
+ phase: "converge" | "cutover";
62
+ state: "committed";
63
+ readiness?: {
64
+ generation: string;
65
+ transition: string;
66
+ dependencies: {
67
+ origin: string;
68
+ generation: string;
69
+ readiness: string;
70
+ meaning: string;
71
+ }[];
72
+ } | undefined;
73
+ }[];
74
+ };
75
+ } | {
76
+ changed: false;
77
+ domains: {
78
+ origin: string;
79
+ revision: string;
80
+ generation: string;
81
+ }[];
82
+ };
83
+ }, "authorized", false, false, {
84
+ readonly durable: true;
85
+ }>>;
@@ -1,10 +1,12 @@
1
- import { func, output } from '@astrale-os/kernel-dsl/v1';
2
- import { installInput } from '../contracts/index.js';
1
+ import { func } from '@astrale-os/kernel-dsl/v1';
2
+ import { installInput, installOutput } from '../contracts/index.js';
3
3
  import { usePolicy } from './use-policy.js';
4
4
  export const Install = func({
5
- description: 'Authorize and atomically converge a non-empty set of exact ready Domain generations.',
5
+ description: 'Authorize and atomically converge a non-empty set of exact ready Domain generations, as the durable Execution it is.',
6
6
  auth: 'authorized',
7
7
  policy: usePolicy(() => Install),
8
8
  input: installInput,
9
- output: output.binary(),
9
+ output: installOutput,
10
+ // A durable syscall: the call returns its Execution, the Kernel's install workflow runs it.
11
+ execution: { durable: true },
10
12
  });
@@ -231,5 +231,6 @@ export declare const Query: builder.Function<builder.CallableProjection<{
231
231
  page: {
232
232
  next?: string | undefined;
233
233
  };
234
+ certification?: "uncertified" | undefined;
234
235
  };
235
236
  }, "authorized", false, false, undefined>>;
@@ -46,4 +46,6 @@ export declare const Uninstall: builder.Function<builder.CallableProjection<{
46
46
  } | undefined;
47
47
  }[];
48
48
  };
49
- }, "authorized", false, false, undefined>>;
49
+ }, "authorized", false, false, {
50
+ readonly durable: true;
51
+ }>>;
@@ -7,4 +7,6 @@ export const Uninstall = func({
7
7
  policy: usePolicy(() => Uninstall),
8
8
  input: uninstallInput,
9
9
  output: uninstallOutput,
10
+ // A durable syscall: the call returns its Execution, the Kernel's uninstall workflow runs it.
11
+ execution: { durable: true },
10
12
  });