taskflow-mcp-core 0.3.0-beta.1.1 → 1.0.0

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 (185) hide show
  1. package/CONTROL_GUIDE.md +113 -0
  2. package/README.md +34 -25
  3. package/dist/control/admission-service.d.ts +15 -0
  4. package/dist/control/admission-service.d.ts.map +1 -0
  5. package/dist/control/admission-service.js +64 -0
  6. package/dist/control/admission-service.js.map +1 -0
  7. package/dist/control/approval-edits.d.ts +12 -0
  8. package/dist/control/approval-edits.d.ts.map +1 -0
  9. package/dist/control/approval-edits.js +66 -0
  10. package/dist/control/approval-edits.js.map +1 -0
  11. package/dist/control/approval-service.d.ts +173 -0
  12. package/dist/control/approval-service.d.ts.map +1 -0
  13. package/dist/control/approval-service.js +342 -0
  14. package/dist/control/approval-service.js.map +1 -0
  15. package/dist/control/authorization.d.ts +94 -0
  16. package/dist/control/authorization.d.ts.map +1 -0
  17. package/dist/control/authorization.js +302 -0
  18. package/dist/control/authorization.js.map +1 -0
  19. package/dist/control/control-cli.d.ts +3 -0
  20. package/dist/control/control-cli.d.ts.map +1 -0
  21. package/dist/control/control-cli.js +279 -0
  22. package/dist/control/control-cli.js.map +1 -0
  23. package/dist/control/control-console.d.ts +17 -0
  24. package/dist/control/control-console.d.ts.map +1 -0
  25. package/dist/control/control-console.js +67 -0
  26. package/dist/control/control-console.js.map +1 -0
  27. package/dist/control/control-host.d.ts +98 -0
  28. package/dist/control/control-host.d.ts.map +1 -0
  29. package/dist/control/control-host.js +459 -0
  30. package/dist/control/control-host.js.map +1 -0
  31. package/dist/control/control-mcp.d.ts +11 -0
  32. package/dist/control/control-mcp.d.ts.map +1 -0
  33. package/dist/control/control-mcp.js +78 -0
  34. package/dist/control/control-mcp.js.map +1 -0
  35. package/dist/control/errors.d.ts +44 -0
  36. package/dist/control/errors.d.ts.map +1 -0
  37. package/dist/control/errors.js +93 -0
  38. package/dist/control/errors.js.map +1 -0
  39. package/dist/control/hello.d.ts +39 -0
  40. package/dist/control/hello.d.ts.map +1 -0
  41. package/dist/control/hello.js +80 -0
  42. package/dist/control/hello.js.map +1 -0
  43. package/dist/control/host-runtime.d.ts +32 -0
  44. package/dist/control/host-runtime.d.ts.map +1 -0
  45. package/dist/control/host-runtime.js +542 -0
  46. package/dist/control/host-runtime.js.map +1 -0
  47. package/dist/control/index.d.ts +32 -0
  48. package/dist/control/index.d.ts.map +1 -0
  49. package/dist/control/index.js +32 -0
  50. package/dist/control/index.js.map +1 -0
  51. package/dist/control/legacy-conflict.d.ts +19 -0
  52. package/dist/control/legacy-conflict.d.ts.map +1 -0
  53. package/dist/control/legacy-conflict.js +176 -0
  54. package/dist/control/legacy-conflict.js.map +1 -0
  55. package/dist/control/local-bootstrap.d.ts +21 -0
  56. package/dist/control/local-bootstrap.d.ts.map +1 -0
  57. package/dist/control/local-bootstrap.js +224 -0
  58. package/dist/control/local-bootstrap.js.map +1 -0
  59. package/dist/control/modes.d.ts +60 -0
  60. package/dist/control/modes.d.ts.map +1 -0
  61. package/dist/control/modes.js +86 -0
  62. package/dist/control/modes.js.map +1 -0
  63. package/dist/control/project-admin-cli.d.ts +3 -0
  64. package/dist/control/project-admin-cli.d.ts.map +1 -0
  65. package/dist/control/project-admin-cli.js +155 -0
  66. package/dist/control/project-admin-cli.js.map +1 -0
  67. package/dist/control/project-registry.d.ts +20 -0
  68. package/dist/control/project-registry.d.ts.map +1 -0
  69. package/dist/control/project-registry.js +181 -0
  70. package/dist/control/project-registry.js.map +1 -0
  71. package/dist/control/runtime-checkpoint.d.ts +11 -0
  72. package/dist/control/runtime-checkpoint.d.ts.map +1 -0
  73. package/dist/control/runtime-checkpoint.js +39 -0
  74. package/dist/control/runtime-checkpoint.js.map +1 -0
  75. package/dist/control/runtime-provider.d.ts +100 -0
  76. package/dist/control/runtime-provider.d.ts.map +1 -0
  77. package/dist/control/runtime-provider.js +258 -0
  78. package/dist/control/runtime-provider.js.map +1 -0
  79. package/dist/control/schema/approval.d.ts +108 -0
  80. package/dist/control/schema/approval.d.ts.map +1 -0
  81. package/dist/control/schema/approval.js +65 -0
  82. package/dist/control/schema/approval.js.map +1 -0
  83. package/dist/control/schema/commands.d.ts +663 -0
  84. package/dist/control/schema/commands.d.ts.map +1 -0
  85. package/dist/control/schema/commands.js +147 -0
  86. package/dist/control/schema/commands.js.map +1 -0
  87. package/dist/control/schema/common.d.ts +24 -0
  88. package/dist/control/schema/common.d.ts.map +1 -0
  89. package/dist/control/schema/common.js +38 -0
  90. package/dist/control/schema/common.js.map +1 -0
  91. package/dist/control/schema/coordinator.d.ts +98 -0
  92. package/dist/control/schema/coordinator.d.ts.map +1 -0
  93. package/dist/control/schema/coordinator.js +87 -0
  94. package/dist/control/schema/coordinator.js.map +1 -0
  95. package/dist/control/schema/evidence.d.ts +140 -0
  96. package/dist/control/schema/evidence.d.ts.map +1 -0
  97. package/dist/control/schema/evidence.js +64 -0
  98. package/dist/control/schema/evidence.js.map +1 -0
  99. package/dist/control/schema/header.d.ts +79 -0
  100. package/dist/control/schema/header.d.ts.map +1 -0
  101. package/dist/control/schema/header.js +66 -0
  102. package/dist/control/schema/header.js.map +1 -0
  103. package/dist/control/schema/index.d.ts +31 -0
  104. package/dist/control/schema/index.d.ts.map +1 -0
  105. package/dist/control/schema/index.js +31 -0
  106. package/dist/control/schema/index.js.map +1 -0
  107. package/dist/control/schema/plan.d.ts +291 -0
  108. package/dist/control/schema/plan.d.ts.map +1 -0
  109. package/dist/control/schema/plan.js +80 -0
  110. package/dist/control/schema/plan.js.map +1 -0
  111. package/dist/control/schema/policy.d.ts +96 -0
  112. package/dist/control/schema/policy.d.ts.map +1 -0
  113. package/dist/control/schema/policy.js +73 -0
  114. package/dist/control/schema/policy.js.map +1 -0
  115. package/dist/control/schema/run.d.ts +61 -0
  116. package/dist/control/schema/run.d.ts.map +1 -0
  117. package/dist/control/schema/run.js +56 -0
  118. package/dist/control/schema/run.js.map +1 -0
  119. package/dist/control/schema/te-mirrors.d.ts +145 -0
  120. package/dist/control/schema/te-mirrors.d.ts.map +1 -0
  121. package/dist/control/schema/te-mirrors.js +145 -0
  122. package/dist/control/schema/te-mirrors.js.map +1 -0
  123. package/dist/control/schema/transport.d.ts +479 -0
  124. package/dist/control/schema/transport.d.ts.map +1 -0
  125. package/dist/control/schema/transport.js +181 -0
  126. package/dist/control/schema/transport.js.map +1 -0
  127. package/dist/control/singleton.d.ts +135 -0
  128. package/dist/control/singleton.d.ts.map +1 -0
  129. package/dist/control/singleton.js +607 -0
  130. package/dist/control/singleton.js.map +1 -0
  131. package/dist/control/store/coordinator-store.d.ts +143 -0
  132. package/dist/control/store/coordinator-store.d.ts.map +1 -0
  133. package/dist/control/store/coordinator-store.js +620 -0
  134. package/dist/control/store/coordinator-store.js.map +1 -0
  135. package/dist/control/store/evidence-adapter.d.ts +10 -0
  136. package/dist/control/store/evidence-adapter.d.ts.map +1 -0
  137. package/dist/control/store/evidence-adapter.js +114 -0
  138. package/dist/control/store/evidence-adapter.js.map +1 -0
  139. package/dist/control/store/evidence-explanation.d.ts +55 -0
  140. package/dist/control/store/evidence-explanation.d.ts.map +1 -0
  141. package/dist/control/store/evidence-explanation.js +50 -0
  142. package/dist/control/store/evidence-explanation.js.map +1 -0
  143. package/dist/control/store/evidence-store.d.ts +143 -0
  144. package/dist/control/store/evidence-store.d.ts.map +1 -0
  145. package/dist/control/store/evidence-store.js +437 -0
  146. package/dist/control/store/evidence-store.js.map +1 -0
  147. package/dist/control/store/index.d.ts +3 -0
  148. package/dist/control/store/index.d.ts.map +1 -0
  149. package/dist/control/store/index.js +2 -0
  150. package/dist/control/store/index.js.map +1 -0
  151. package/dist/control/store/journal.d.ts +270 -0
  152. package/dist/control/store/journal.d.ts.map +1 -0
  153. package/dist/control/store/journal.js +50 -0
  154. package/dist/control/store/journal.js.map +1 -0
  155. package/dist/control/store/project-lifecycle.d.ts +49 -0
  156. package/dist/control/store/project-lifecycle.d.ts.map +1 -0
  157. package/dist/control/store/project-lifecycle.js +288 -0
  158. package/dist/control/store/project-lifecycle.js.map +1 -0
  159. package/dist/control/store/store.d.ts +93 -0
  160. package/dist/control/store/store.d.ts.map +1 -0
  161. package/dist/control/store/store.js +873 -0
  162. package/dist/control/store/store.js.map +1 -0
  163. package/dist/control/te-provider.d.ts +86 -0
  164. package/dist/control/te-provider.d.ts.map +1 -0
  165. package/dist/control/te-provider.js +131 -0
  166. package/dist/control/te-provider.js.map +1 -0
  167. package/dist/control/uds.d.ts +114 -0
  168. package/dist/control/uds.d.ts.map +1 -0
  169. package/dist/control/uds.js +456 -0
  170. package/dist/control/uds.js.map +1 -0
  171. package/dist/control/web-console/view.d.ts +5 -0
  172. package/dist/control/web-console/view.d.ts.map +1 -0
  173. package/dist/control/web-console/view.js +122 -0
  174. package/dist/control/web-console/view.js.map +1 -0
  175. package/dist/control/web-console.d.ts +50 -0
  176. package/dist/control/web-console.d.ts.map +1 -0
  177. package/dist/control/web-console.js +317 -0
  178. package/dist/control/web-console.js.map +1 -0
  179. package/dist/mcp/jsonrpc.d.ts.map +1 -1
  180. package/dist/mcp/jsonrpc.js +12 -3
  181. package/dist/mcp/jsonrpc.js.map +1 -1
  182. package/dist/mcp/server.d.ts.map +1 -1
  183. package/dist/mcp/server.js +26 -17
  184. package/dist/mcp/server.js.map +1 -1
  185. package/package.json +13 -5
@@ -0,0 +1,479 @@
1
+ /**
2
+ * Transport wire types (🟥 NEW): negotiation handshake, unified error
3
+ * envelope + the closed TF_* code set (P4), and the ExecutionProvider DTO
4
+ * group (RFC §16) as discriminated accepted|rejected|ambiguous unions.
5
+ */
6
+ import { Type } from "typebox";
7
+ import { type EnforcementCapabilities } from "./policy.ts";
8
+ import { type ExecutionOwner } from "./te-mirrors.ts";
9
+ import { type BoundPlan } from "./plan.ts";
10
+ export declare const PROTOCOL_MAJOR = 1;
11
+ export declare const NegotiationHandshakeSchema: Type.TObject<{
12
+ protocolMajor: Type.TLiteral<1>;
13
+ supportedReadSchemas: Type.TArray<Type.TString>;
14
+ supportedWriteSchemas: Type.TArray<Type.TString>;
15
+ requiredFeatures: Type.TArray<Type.TString>;
16
+ offeredFeatures: Type.TArray<Type.TString>;
17
+ buildInfo: Type.TObject<{
18
+ packageVersion: Type.TString;
19
+ gitCommit: Type.TString;
20
+ schemaVersion: Type.TInteger;
21
+ buildTime: Type.TOptional<Type.TInteger>;
22
+ }>;
23
+ }>;
24
+ export type NegotiationHandshake = {
25
+ protocolMajor: typeof PROTOCOL_MAJOR;
26
+ supportedReadSchemas: string[];
27
+ supportedWriteSchemas: string[];
28
+ requiredFeatures: string[];
29
+ offeredFeatures: string[];
30
+ buildInfo: {
31
+ packageVersion: string;
32
+ gitCommit: string;
33
+ schemaVersion: number;
34
+ buildTime?: number;
35
+ };
36
+ };
37
+ export declare const CONTROL_ERROR_CODES: readonly ["TF_PROTOCOL_INCOMPATIBLE", "TF_SCHEMA_UNSUPPORTED", "TF_FEATURE_REQUIRED", "TF_POLICY_DENIED", "TF_AUTHORITY_REVOKED", "TF_STALE_VERSION", "TF_IDEMPOTENCY_CONFLICT", "TF_CROSS_PRINCIPAL_COMMAND", "TF_LEGACY_CONFLICT", "TF_PROVIDER_AMBIGUOUS", "TF_JOURNAL_UNAVAILABLE", "TF_DURABILITY_FAILED", "TF_CURSOR_EXPIRED", "TF_COMMAND_FAILED", "TF_BOOTSTRAP_FAILED", "TF_RECONCILE_REQUIRED", "TF_ADMISSION_BINDING_CONFLICT", "TF_CAPACITY_EXCEEDED"];
38
+ export type ControlErrorCode = (typeof CONTROL_ERROR_CODES)[number];
39
+ export declare const RecoveryActionSchema: import("typebox").TUnsafe<string>;
40
+ export type RecoveryAction = "retry-same-command" | "retry-new-command" | "refresh" | "reconcile" | "operator" | "none";
41
+ export declare const SideEffectsSchema: import("typebox").TUnsafe<string>;
42
+ export type SideEffects = "none" | "possible" | "unknown";
43
+ export declare const ErrorEnvelopeSchema: Type.TObject<{
44
+ code: import("typebox").TUnsafe<"TF_ADMISSION_BINDING_CONFLICT" | "TF_AUTHORITY_REVOKED" | "TF_BOOTSTRAP_FAILED" | "TF_CAPACITY_EXCEEDED" | "TF_COMMAND_FAILED" | "TF_CROSS_PRINCIPAL_COMMAND" | "TF_CURSOR_EXPIRED" | "TF_DURABILITY_FAILED" | "TF_FEATURE_REQUIRED" | "TF_IDEMPOTENCY_CONFLICT" | "TF_JOURNAL_UNAVAILABLE" | "TF_LEGACY_CONFLICT" | "TF_POLICY_DENIED" | "TF_PROTOCOL_INCOMPATIBLE" | "TF_PROVIDER_AMBIGUOUS" | "TF_RECONCILE_REQUIRED" | "TF_SCHEMA_UNSUPPORTED" | "TF_STALE_VERSION">;
45
+ message: Type.TString;
46
+ recoveryAction: import("typebox").TUnsafe<string>;
47
+ sideEffects: import("typebox").TUnsafe<string>;
48
+ commandId: Type.TOptional<Type.TString>;
49
+ commitSeq: Type.TOptional<Type.TInteger>;
50
+ controlDomainId: Type.TOptional<Type.TString>;
51
+ projectId: Type.TOptional<Type.TString>;
52
+ }>;
53
+ export type ErrorEnvelope = {
54
+ code: ControlErrorCode;
55
+ message: string;
56
+ recoveryAction: RecoveryAction;
57
+ sideEffects: SideEffects;
58
+ commandId?: string;
59
+ commitSeq?: number;
60
+ controlDomainId?: string;
61
+ projectId?: string;
62
+ };
63
+ export declare const ProviderRequestBaseSchema: Type.TObject<{
64
+ runId: Type.TString;
65
+ owner: Type.TObject<{
66
+ runId: Type.TString;
67
+ phaseId: Type.TString;
68
+ attemptId: Type.TString;
69
+ unitId: Type.TString;
70
+ ancestry: Type.TArray<Type.TString>;
71
+ }>;
72
+ controlDomainId: Type.TString;
73
+ }>;
74
+ export declare const ProviderAcceptedSchema: <T extends { [K in "outcome"]: "accepted"; }>(fields: T) => Type.TObject<T & {
75
+ outcome: Type.TLiteral<"accepted">;
76
+ }>;
77
+ export declare const ProviderRejectedSchema: Type.TObject<{
78
+ outcome: Type.TLiteral<"rejected">;
79
+ error: Type.TObject<{
80
+ code: import("typebox").TUnsafe<"TF_ADMISSION_BINDING_CONFLICT" | "TF_AUTHORITY_REVOKED" | "TF_BOOTSTRAP_FAILED" | "TF_CAPACITY_EXCEEDED" | "TF_COMMAND_FAILED" | "TF_CROSS_PRINCIPAL_COMMAND" | "TF_CURSOR_EXPIRED" | "TF_DURABILITY_FAILED" | "TF_FEATURE_REQUIRED" | "TF_IDEMPOTENCY_CONFLICT" | "TF_JOURNAL_UNAVAILABLE" | "TF_LEGACY_CONFLICT" | "TF_POLICY_DENIED" | "TF_PROTOCOL_INCOMPATIBLE" | "TF_PROVIDER_AMBIGUOUS" | "TF_RECONCILE_REQUIRED" | "TF_SCHEMA_UNSUPPORTED" | "TF_STALE_VERSION">;
81
+ message: Type.TString;
82
+ recoveryAction: import("typebox").TUnsafe<string>;
83
+ sideEffects: import("typebox").TUnsafe<string>;
84
+ }>;
85
+ }>;
86
+ export declare const ProviderAmbiguousSchema: Type.TObject<{
87
+ outcome: Type.TLiteral<"ambiguous">;
88
+ message: Type.TOptional<Type.TString>;
89
+ }>;
90
+ export declare const ProviderCapabilitiesSchema: Type.TObject<{
91
+ processIsolation: import("typebox").TUnsafe<string>;
92
+ resolution: Type.TLiteral<"contained">;
93
+ mutationMediation: Type.TLiteral<"brokered">;
94
+ revocation: Type.TLiteral<"admission-only">;
95
+ baselinePolicyId: Type.TString;
96
+ hostProbeSha256: Type.TString;
97
+ }>;
98
+ export type ProviderCapabilities = {
99
+ processIsolation: "none" | "sandboxed";
100
+ resolution: "contained";
101
+ mutationMediation: "brokered";
102
+ revocation: "admission-only";
103
+ baselinePolicyId: string;
104
+ hostProbeSha256: string;
105
+ };
106
+ export declare const ProbeResultSchema: Type.TObject<{
107
+ outcome: Type.TLiteral<"accepted">;
108
+ capabilities: Type.TObject<{
109
+ processIsolation: import("typebox").TUnsafe<string>;
110
+ resolution: Type.TLiteral<"contained">;
111
+ mutationMediation: Type.TLiteral<"brokered">;
112
+ revocation: Type.TLiteral<"admission-only">;
113
+ baselinePolicyId: Type.TString;
114
+ hostProbeSha256: Type.TString;
115
+ }>;
116
+ }>;
117
+ export type ProbeResult = {
118
+ outcome: "accepted";
119
+ capabilities: ProviderCapabilities;
120
+ };
121
+ export declare const PrepareRequestSchema: Type.TObject<{
122
+ plan: Type.TObject<{
123
+ schemaVersion: Type.TLiteral<2>;
124
+ projectId: Type.TString;
125
+ controlDomainId: Type.TString;
126
+ planId: Type.TString;
127
+ bindings: Type.TArray<Type.TObject<{
128
+ name: Type.TString;
129
+ path: Type.TUnion<[Type.TObject<{
130
+ subpath: Type.TOptional<Type.TUnion<[Type.TObject<{
131
+ literalPath: Type.TString;
132
+ argPath: Type.TOptional<Type.TNever>;
133
+ segments: Type.TOptional<Type.TNever>;
134
+ }>, Type.TObject<{
135
+ argPath: Type.TString;
136
+ literalPath: Type.TOptional<Type.TNever>;
137
+ segments: Type.TOptional<Type.TNever>;
138
+ }>, Type.TObject<{
139
+ segments: Type.TArray<Type.TUnion<[Type.TObject<{
140
+ segment: Type.TString;
141
+ argSegment: Type.TOptional<Type.TNever>;
142
+ }>, Type.TObject<{
143
+ argSegment: Type.TString;
144
+ segment: Type.TOptional<Type.TNever>;
145
+ }>]>>;
146
+ literalPath: Type.TOptional<Type.TNever>;
147
+ argPath: Type.TOptional<Type.TNever>;
148
+ }>]>>;
149
+ access: Type.TOptional<Type.TUnion<[Type.TLiteral<"read-only">, Type.TLiteral<"read-write">]>>;
150
+ maxLifetime: Type.TOptional<Type.TUnion<Type.TObject<{
151
+ scope: Type.TLiteral<"external" | "phase" | "run">;
152
+ }>[]>>;
153
+ intent: Type.TUnion<[Type.TLiteral<"existing-file">, Type.TLiteral<"existing-directory">, Type.TLiteral<"create-file">, Type.TLiteral<"create-directory">, Type.TLiteral<"executable">]>;
154
+ workspace: Type.TString;
155
+ handle: Type.TOptional<Type.TNever>;
156
+ }>, Type.TObject<{
157
+ subpath: Type.TOptional<Type.TUnion<[Type.TObject<{
158
+ literalPath: Type.TString;
159
+ argPath: Type.TOptional<Type.TNever>;
160
+ segments: Type.TOptional<Type.TNever>;
161
+ }>, Type.TObject<{
162
+ argPath: Type.TString;
163
+ literalPath: Type.TOptional<Type.TNever>;
164
+ segments: Type.TOptional<Type.TNever>;
165
+ }>, Type.TObject<{
166
+ segments: Type.TArray<Type.TUnion<[Type.TObject<{
167
+ segment: Type.TString;
168
+ argSegment: Type.TOptional<Type.TNever>;
169
+ }>, Type.TObject<{
170
+ argSegment: Type.TString;
171
+ segment: Type.TOptional<Type.TNever>;
172
+ }>]>>;
173
+ literalPath: Type.TOptional<Type.TNever>;
174
+ argPath: Type.TOptional<Type.TNever>;
175
+ }>]>>;
176
+ access: Type.TOptional<Type.TUnion<[Type.TLiteral<"read-only">, Type.TLiteral<"read-write">]>>;
177
+ maxLifetime: Type.TOptional<Type.TUnion<Type.TObject<{
178
+ scope: Type.TLiteral<"external" | "phase" | "run">;
179
+ }>[]>>;
180
+ intent: Type.TUnion<[Type.TLiteral<"existing-file">, Type.TLiteral<"existing-directory">, Type.TLiteral<"create-file">, Type.TLiteral<"create-directory">, Type.TLiteral<"executable">]>;
181
+ handle: Type.TObject<{
182
+ producerPhaseId: Type.TString;
183
+ exportName: Type.TString;
184
+ }>;
185
+ workspace: Type.TOptional<Type.TNever>;
186
+ }>]>;
187
+ }>>;
188
+ spawnTemplate: Type.TObject<{
189
+ allowedAgentClasses: Type.TArray<Type.TString>;
190
+ allowedProviderClasses: Type.TArray<Type.TString>;
191
+ maxToolCallsPerStep: Type.TInteger;
192
+ maxEffectsPerNode: Type.TInteger;
193
+ maxChildren: Type.TInteger;
194
+ maxDepth: Type.TInteger;
195
+ budgetShare: Type.TNumber;
196
+ }>;
197
+ savedFlowPins: Type.TArray<Type.TObject<{
198
+ flowId: Type.TString;
199
+ irHash: Type.TString;
200
+ boundPlanHash: Type.TString;
201
+ }>>;
202
+ grantRefs: Type.TArray<Type.TObject<{
203
+ grantId: Type.TString;
204
+ bindingId: Type.TOptional<Type.TString>;
205
+ }>>;
206
+ claims: Type.TArray<Type.TObject<{
207
+ name: Type.TString;
208
+ value: Type.TUnion<[Type.TString, Type.TBoolean, Type.TNumber]>;
209
+ }>>;
210
+ enforcementCapabilities: Type.TObject<{
211
+ resolution: import("typebox").TUnsafe<string>;
212
+ mutationMediation: import("typebox").TUnsafe<string>;
213
+ processIsolation: import("typebox").TUnsafe<string>;
214
+ revocation: Type.TUnion<[Type.TLiteral<"admission-only">, Type.TLiteral<"per-mutation">, Type.TObject<{
215
+ mode: Type.TLiteral<"bounded-latency">;
216
+ maxLatencyMs: Type.TInteger;
217
+ }>]>;
218
+ baselinePolicyId: Type.TString;
219
+ hostProbeSha256: Type.TString;
220
+ }>;
221
+ dynamicPolicy: Type.TObject<{
222
+ hostCeiling: Type.TObject<{
223
+ maxActiveRuns: Type.TOptional<Type.TInteger>;
224
+ maxTokens: Type.TOptional<Type.TInteger>;
225
+ maxUSD: Type.TOptional<Type.TNumber>;
226
+ }>;
227
+ userCeiling: Type.TOptional<Type.TObject<{
228
+ maxActiveRuns: Type.TOptional<Type.TInteger>;
229
+ maxTokens: Type.TOptional<Type.TInteger>;
230
+ maxUSD: Type.TOptional<Type.TNumber>;
231
+ }>>;
232
+ projectCeiling: Type.TOptional<Type.TObject<{
233
+ maxActiveRuns: Type.TOptional<Type.TInteger>;
234
+ maxTokens: Type.TOptional<Type.TInteger>;
235
+ maxUSD: Type.TOptional<Type.TNumber>;
236
+ }>>;
237
+ invocationCeiling: Type.TOptional<Type.TObject<{
238
+ maxActiveRuns: Type.TOptional<Type.TInteger>;
239
+ maxTokens: Type.TOptional<Type.TInteger>;
240
+ maxUSD: Type.TOptional<Type.TNumber>;
241
+ }>>;
242
+ authorizationContextHash: Type.TString;
243
+ }>;
244
+ boundPlanHash: Type.TString;
245
+ }>;
246
+ owner: Type.TObject<{
247
+ runId: Type.TString;
248
+ phaseId: Type.TString;
249
+ attemptId: Type.TString;
250
+ unitId: Type.TString;
251
+ ancestry: Type.TArray<Type.TString>;
252
+ }>;
253
+ controlDomainId: Type.TString;
254
+ }>;
255
+ export type PrepareRequest = {
256
+ plan: BoundPlan;
257
+ owner: ExecutionOwner;
258
+ controlDomainId: string;
259
+ };
260
+ export declare const FulfillmentPlanSchema: Type.TObject<{
261
+ preparationId: Type.TString;
262
+ enforcementCapabilities: Type.TObject<{
263
+ resolution: import("typebox").TUnsafe<string>;
264
+ mutationMediation: import("typebox").TUnsafe<string>;
265
+ processIsolation: import("typebox").TUnsafe<string>;
266
+ revocation: Type.TUnion<[Type.TLiteral<"admission-only">, Type.TLiteral<"per-mutation">, Type.TObject<{
267
+ mode: Type.TLiteral<"bounded-latency">;
268
+ maxLatencyMs: Type.TInteger;
269
+ }>]>;
270
+ baselinePolicyId: Type.TString;
271
+ hostProbeSha256: Type.TString;
272
+ }>;
273
+ }>;
274
+ export type FulfillmentPlan = {
275
+ preparationId: string;
276
+ enforcementCapabilities: EnforcementCapabilities;
277
+ };
278
+ export declare const PrepareResultSchema: Type.TUnion<[Type.TObject<{
279
+ outcome: Type.TLiteral<"accepted">;
280
+ fulfillment: Type.TObject<{
281
+ preparationId: Type.TString;
282
+ enforcementCapabilities: Type.TObject<{
283
+ resolution: import("typebox").TUnsafe<string>;
284
+ mutationMediation: import("typebox").TUnsafe<string>;
285
+ processIsolation: import("typebox").TUnsafe<string>;
286
+ revocation: Type.TUnion<[Type.TLiteral<"admission-only">, Type.TLiteral<"per-mutation">, Type.TObject<{
287
+ mode: Type.TLiteral<"bounded-latency">;
288
+ maxLatencyMs: Type.TInteger;
289
+ }>]>;
290
+ baselinePolicyId: Type.TString;
291
+ hostProbeSha256: Type.TString;
292
+ }>;
293
+ }>;
294
+ }>, Type.TObject<{
295
+ outcome: Type.TLiteral<"rejected">;
296
+ error: Type.TObject<{
297
+ code: import("typebox").TUnsafe<"TF_ADMISSION_BINDING_CONFLICT" | "TF_AUTHORITY_REVOKED" | "TF_BOOTSTRAP_FAILED" | "TF_CAPACITY_EXCEEDED" | "TF_COMMAND_FAILED" | "TF_CROSS_PRINCIPAL_COMMAND" | "TF_CURSOR_EXPIRED" | "TF_DURABILITY_FAILED" | "TF_FEATURE_REQUIRED" | "TF_IDEMPOTENCY_CONFLICT" | "TF_JOURNAL_UNAVAILABLE" | "TF_LEGACY_CONFLICT" | "TF_POLICY_DENIED" | "TF_PROTOCOL_INCOMPATIBLE" | "TF_PROVIDER_AMBIGUOUS" | "TF_RECONCILE_REQUIRED" | "TF_SCHEMA_UNSUPPORTED" | "TF_STALE_VERSION">;
298
+ message: Type.TString;
299
+ recoveryAction: import("typebox").TUnsafe<string>;
300
+ sideEffects: import("typebox").TUnsafe<string>;
301
+ }>;
302
+ }>, Type.TObject<{
303
+ outcome: Type.TLiteral<"ambiguous">;
304
+ message: Type.TOptional<Type.TString>;
305
+ }>]>;
306
+ export type PrepareResult = {
307
+ outcome: "accepted";
308
+ fulfillment: FulfillmentPlan;
309
+ } | {
310
+ outcome: "rejected";
311
+ error: ErrorEnvelope;
312
+ } | {
313
+ outcome: "ambiguous";
314
+ message?: string;
315
+ };
316
+ export declare const SubmitRequestSchema: Type.TObject<{
317
+ preparationId: Type.TString;
318
+ owner: Type.TObject<{
319
+ runId: Type.TString;
320
+ phaseId: Type.TString;
321
+ attemptId: Type.TString;
322
+ unitId: Type.TString;
323
+ ancestry: Type.TArray<Type.TString>;
324
+ }>;
325
+ controlDomainId: Type.TString;
326
+ }>;
327
+ export type SubmitRequest = {
328
+ preparationId: string;
329
+ owner: ExecutionOwner;
330
+ controlDomainId: string;
331
+ };
332
+ export declare const SubmitResultSchema: Type.TUnion<[Type.TObject<{
333
+ outcome: Type.TLiteral<"accepted">;
334
+ providerJobHandle: Type.TString;
335
+ }>, Type.TObject<{
336
+ outcome: Type.TLiteral<"rejected">;
337
+ error: Type.TObject<{
338
+ code: import("typebox").TUnsafe<"TF_ADMISSION_BINDING_CONFLICT" | "TF_AUTHORITY_REVOKED" | "TF_BOOTSTRAP_FAILED" | "TF_CAPACITY_EXCEEDED" | "TF_COMMAND_FAILED" | "TF_CROSS_PRINCIPAL_COMMAND" | "TF_CURSOR_EXPIRED" | "TF_DURABILITY_FAILED" | "TF_FEATURE_REQUIRED" | "TF_IDEMPOTENCY_CONFLICT" | "TF_JOURNAL_UNAVAILABLE" | "TF_LEGACY_CONFLICT" | "TF_POLICY_DENIED" | "TF_PROTOCOL_INCOMPATIBLE" | "TF_PROVIDER_AMBIGUOUS" | "TF_RECONCILE_REQUIRED" | "TF_SCHEMA_UNSUPPORTED" | "TF_STALE_VERSION">;
339
+ message: Type.TString;
340
+ recoveryAction: import("typebox").TUnsafe<string>;
341
+ sideEffects: import("typebox").TUnsafe<string>;
342
+ }>;
343
+ }>, Type.TObject<{
344
+ outcome: Type.TLiteral<"ambiguous">;
345
+ message: Type.TOptional<Type.TString>;
346
+ }>]>;
347
+ export type SubmitResult = {
348
+ outcome: "accepted";
349
+ providerJobHandle: string;
350
+ } | {
351
+ outcome: "rejected";
352
+ error: ErrorEnvelope;
353
+ } | {
354
+ outcome: "ambiguous";
355
+ message?: string;
356
+ };
357
+ export declare const ProviderEventSchema: Type.TUnion<[Type.TObject<{
358
+ kind: Type.TLiteral<"progress">;
359
+ message: Type.TString;
360
+ }>, Type.TObject<{
361
+ kind: Type.TLiteral<"heartbeat">;
362
+ at: Type.TInteger;
363
+ }>, Type.TObject<{
364
+ kind: Type.TLiteral<"terminal">;
365
+ outcome: import("typebox").TUnsafe<string>;
366
+ }>]>;
367
+ export type ProviderEvent = {
368
+ kind: "progress";
369
+ message: string;
370
+ } | {
371
+ kind: "heartbeat";
372
+ at: number;
373
+ } | {
374
+ kind: "terminal";
375
+ outcome: "completed" | "failed" | "ambiguous";
376
+ };
377
+ export declare const PollResultSchema: Type.TUnion<[Type.TObject<{
378
+ outcome: Type.TLiteral<"accepted">;
379
+ status: import("typebox").TUnsafe<string>;
380
+ }>, Type.TObject<{
381
+ outcome: Type.TLiteral<"rejected">;
382
+ error: Type.TObject<{
383
+ code: import("typebox").TUnsafe<"TF_ADMISSION_BINDING_CONFLICT" | "TF_AUTHORITY_REVOKED" | "TF_BOOTSTRAP_FAILED" | "TF_CAPACITY_EXCEEDED" | "TF_COMMAND_FAILED" | "TF_CROSS_PRINCIPAL_COMMAND" | "TF_CURSOR_EXPIRED" | "TF_DURABILITY_FAILED" | "TF_FEATURE_REQUIRED" | "TF_IDEMPOTENCY_CONFLICT" | "TF_JOURNAL_UNAVAILABLE" | "TF_LEGACY_CONFLICT" | "TF_POLICY_DENIED" | "TF_PROTOCOL_INCOMPATIBLE" | "TF_PROVIDER_AMBIGUOUS" | "TF_RECONCILE_REQUIRED" | "TF_SCHEMA_UNSUPPORTED" | "TF_STALE_VERSION">;
384
+ message: Type.TString;
385
+ recoveryAction: import("typebox").TUnsafe<string>;
386
+ sideEffects: import("typebox").TUnsafe<string>;
387
+ }>;
388
+ }>, Type.TObject<{
389
+ outcome: Type.TLiteral<"ambiguous">;
390
+ message: Type.TOptional<Type.TString>;
391
+ }>]>;
392
+ export type PollResult = {
393
+ outcome: "accepted";
394
+ status: "running" | "completed" | "failed" | "ambiguous";
395
+ } | {
396
+ outcome: "rejected";
397
+ error: ErrorEnvelope;
398
+ } | {
399
+ outcome: "ambiguous";
400
+ message?: string;
401
+ };
402
+ export declare const CancelResultSchema: Type.TUnion<[Type.TObject<{
403
+ outcome: Type.TLiteral<"accepted">;
404
+ cancelled: Type.TBoolean;
405
+ }>, Type.TObject<{
406
+ outcome: Type.TLiteral<"rejected">;
407
+ error: Type.TObject<{
408
+ code: import("typebox").TUnsafe<"TF_ADMISSION_BINDING_CONFLICT" | "TF_AUTHORITY_REVOKED" | "TF_BOOTSTRAP_FAILED" | "TF_CAPACITY_EXCEEDED" | "TF_COMMAND_FAILED" | "TF_CROSS_PRINCIPAL_COMMAND" | "TF_CURSOR_EXPIRED" | "TF_DURABILITY_FAILED" | "TF_FEATURE_REQUIRED" | "TF_IDEMPOTENCY_CONFLICT" | "TF_JOURNAL_UNAVAILABLE" | "TF_LEGACY_CONFLICT" | "TF_POLICY_DENIED" | "TF_PROTOCOL_INCOMPATIBLE" | "TF_PROVIDER_AMBIGUOUS" | "TF_RECONCILE_REQUIRED" | "TF_SCHEMA_UNSUPPORTED" | "TF_STALE_VERSION">;
409
+ message: Type.TString;
410
+ recoveryAction: import("typebox").TUnsafe<string>;
411
+ sideEffects: import("typebox").TUnsafe<string>;
412
+ }>;
413
+ }>, Type.TObject<{
414
+ outcome: Type.TLiteral<"ambiguous">;
415
+ message: Type.TOptional<Type.TString>;
416
+ }>]>;
417
+ export type CancelResult = {
418
+ outcome: "accepted";
419
+ cancelled: boolean;
420
+ } | {
421
+ outcome: "rejected";
422
+ error: ErrorEnvelope;
423
+ } | {
424
+ outcome: "ambiguous";
425
+ message?: string;
426
+ };
427
+ export declare const ReconcileResultSchema: Type.TUnion<[Type.TObject<{
428
+ outcome: Type.TLiteral<"accepted">;
429
+ providerState: import("typebox").TUnsafe<string>;
430
+ }>, Type.TObject<{
431
+ outcome: Type.TLiteral<"rejected">;
432
+ error: Type.TObject<{
433
+ code: import("typebox").TUnsafe<"TF_ADMISSION_BINDING_CONFLICT" | "TF_AUTHORITY_REVOKED" | "TF_BOOTSTRAP_FAILED" | "TF_CAPACITY_EXCEEDED" | "TF_COMMAND_FAILED" | "TF_CROSS_PRINCIPAL_COMMAND" | "TF_CURSOR_EXPIRED" | "TF_DURABILITY_FAILED" | "TF_FEATURE_REQUIRED" | "TF_IDEMPOTENCY_CONFLICT" | "TF_JOURNAL_UNAVAILABLE" | "TF_LEGACY_CONFLICT" | "TF_POLICY_DENIED" | "TF_PROTOCOL_INCOMPATIBLE" | "TF_PROVIDER_AMBIGUOUS" | "TF_RECONCILE_REQUIRED" | "TF_SCHEMA_UNSUPPORTED" | "TF_STALE_VERSION">;
434
+ message: Type.TString;
435
+ recoveryAction: import("typebox").TUnsafe<string>;
436
+ sideEffects: import("typebox").TUnsafe<string>;
437
+ }>;
438
+ }>, Type.TObject<{
439
+ outcome: Type.TLiteral<"ambiguous">;
440
+ message: Type.TOptional<Type.TString>;
441
+ }>]>;
442
+ export type ReconcileResult = {
443
+ outcome: "accepted";
444
+ providerState: "running" | "terminal" | "exhausted";
445
+ } | {
446
+ outcome: "rejected";
447
+ error: ErrorEnvelope;
448
+ } | {
449
+ outcome: "ambiguous";
450
+ message?: string;
451
+ };
452
+ export declare const CollectResultSchema: Type.TUnion<[Type.TObject<{
453
+ outcome: Type.TLiteral<"accepted">;
454
+ providerJobHandle: Type.TString;
455
+ }>, Type.TObject<{
456
+ outcome: Type.TLiteral<"rejected">;
457
+ error: Type.TObject<{
458
+ code: import("typebox").TUnsafe<"TF_ADMISSION_BINDING_CONFLICT" | "TF_AUTHORITY_REVOKED" | "TF_BOOTSTRAP_FAILED" | "TF_CAPACITY_EXCEEDED" | "TF_COMMAND_FAILED" | "TF_CROSS_PRINCIPAL_COMMAND" | "TF_CURSOR_EXPIRED" | "TF_DURABILITY_FAILED" | "TF_FEATURE_REQUIRED" | "TF_IDEMPOTENCY_CONFLICT" | "TF_JOURNAL_UNAVAILABLE" | "TF_LEGACY_CONFLICT" | "TF_POLICY_DENIED" | "TF_PROTOCOL_INCOMPATIBLE" | "TF_PROVIDER_AMBIGUOUS" | "TF_RECONCILE_REQUIRED" | "TF_SCHEMA_UNSUPPORTED" | "TF_STALE_VERSION">;
459
+ message: Type.TString;
460
+ recoveryAction: import("typebox").TUnsafe<string>;
461
+ sideEffects: import("typebox").TUnsafe<string>;
462
+ }>;
463
+ }>, Type.TObject<{
464
+ outcome: Type.TLiteral<"ambiguous">;
465
+ message: Type.TOptional<Type.TString>;
466
+ }>]>;
467
+ export type CollectResult = {
468
+ outcome: "accepted";
469
+ providerJobHandle: string;
470
+ } | {
471
+ outcome: "rejected";
472
+ error: ErrorEnvelope;
473
+ } | {
474
+ outcome: "ambiguous";
475
+ message?: string;
476
+ };
477
+ /** TE capabilities are the only 0.3-C capabilities (P8 default package). */
478
+ export declare function capabilitiesFromEnforcement(capabilities: ProviderCapabilities): EnforcementCapabilities;
479
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../taskflow-control/src/schema/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Transport wire types (🟥 NEW): negotiation handshake, unified error
3
+ * envelope + the closed TF_* code set (P4), and the ExecutionProvider DTO
4
+ * group (RFC §16) as discriminated accepted|rejected|ambiguous unions.
5
+ */
6
+ import { Type } from "typebox";
7
+ import { StringEnum } from "taskflow-core/typebox-helpers";
8
+ import { UuidSchema } from "./common.js";
9
+ import { EnforcementCapabilitiesSchema } from "./policy.js";
10
+ import { ExecutionOwnerSchema } from "./te-mirrors.js";
11
+ import { BoundPlanSchema } from "./plan.js";
12
+ // ---------------------------------------------------------------------------
13
+ // NegotiationHandshake (P4 / RFC §18)
14
+ // ---------------------------------------------------------------------------
15
+ export const PROTOCOL_MAJOR = 1;
16
+ export const NegotiationHandshakeSchema = Type.Object({
17
+ protocolMajor: Type.Literal(PROTOCOL_MAJOR),
18
+ supportedReadSchemas: Type.Array(Type.String({ minLength: 1 })),
19
+ supportedWriteSchemas: Type.Array(Type.String({ minLength: 1 })),
20
+ requiredFeatures: Type.Array(Type.String({ minLength: 1 })),
21
+ offeredFeatures: Type.Array(Type.String({ minLength: 1 })),
22
+ buildInfo: Type.Object({
23
+ packageVersion: Type.String({ minLength: 1 }),
24
+ gitCommit: Type.String({ minLength: 1 }),
25
+ schemaVersion: Type.Integer({ minimum: 0 }),
26
+ buildTime: Type.Optional(Type.Integer({ minimum: 0 })),
27
+ }, { additionalProperties: false }),
28
+ }, { additionalProperties: false });
29
+ // ---------------------------------------------------------------------------
30
+ // ErrorEnvelope + closed TF_* code set (P4)
31
+ // ---------------------------------------------------------------------------
32
+ export const CONTROL_ERROR_CODES = [
33
+ "TF_PROTOCOL_INCOMPATIBLE",
34
+ "TF_SCHEMA_UNSUPPORTED",
35
+ "TF_FEATURE_REQUIRED",
36
+ "TF_POLICY_DENIED",
37
+ "TF_AUTHORITY_REVOKED",
38
+ "TF_STALE_VERSION",
39
+ "TF_IDEMPOTENCY_CONFLICT",
40
+ "TF_CROSS_PRINCIPAL_COMMAND",
41
+ "TF_LEGACY_CONFLICT",
42
+ "TF_PROVIDER_AMBIGUOUS",
43
+ "TF_JOURNAL_UNAVAILABLE",
44
+ "TF_DURABILITY_FAILED",
45
+ "TF_CURSOR_EXPIRED",
46
+ "TF_COMMAND_FAILED",
47
+ "TF_BOOTSTRAP_FAILED",
48
+ "TF_RECONCILE_REQUIRED",
49
+ "TF_ADMISSION_BINDING_CONFLICT",
50
+ "TF_CAPACITY_EXCEEDED",
51
+ ];
52
+ export const RecoveryActionSchema = StringEnum([
53
+ "retry-same-command",
54
+ "retry-new-command",
55
+ "refresh",
56
+ "reconcile",
57
+ "operator",
58
+ "none",
59
+ ]);
60
+ export const SideEffectsSchema = StringEnum(["none", "possible", "unknown"]);
61
+ export const ErrorEnvelopeSchema = Type.Object({
62
+ code: StringEnum(CONTROL_ERROR_CODES),
63
+ message: Type.String({ minLength: 1 }),
64
+ recoveryAction: RecoveryActionSchema,
65
+ sideEffects: SideEffectsSchema,
66
+ commandId: Type.Optional(UuidSchema),
67
+ commitSeq: Type.Optional(Type.Integer({ minimum: 1 })),
68
+ controlDomainId: Type.Optional(UuidSchema),
69
+ projectId: Type.Optional(UuidSchema),
70
+ }, { additionalProperties: false });
71
+ // ---------------------------------------------------------------------------
72
+ // ExecutionProvider DTO group (RFC §16) — 0.3-C's only provider is TE
73
+ // resources, but the wire keeps the async provider contract.
74
+ // ---------------------------------------------------------------------------
75
+ export const ProviderRequestBaseSchema = Type.Object({
76
+ runId: UuidSchema,
77
+ owner: ExecutionOwnerSchema,
78
+ controlDomainId: UuidSchema,
79
+ }, { additionalProperties: false });
80
+ export const ProviderAcceptedSchema = (fields) => Type.Object({ ...fields, outcome: Type.Literal("accepted") }, { additionalProperties: false });
81
+ export const ProviderRejectedSchema = Type.Object({
82
+ outcome: Type.Literal("rejected"),
83
+ error: Type.Object({
84
+ code: StringEnum(CONTROL_ERROR_CODES),
85
+ message: Type.String({ minLength: 1 }),
86
+ recoveryAction: RecoveryActionSchema,
87
+ sideEffects: SideEffectsSchema,
88
+ }, { additionalProperties: false }),
89
+ }, { additionalProperties: false });
90
+ export const ProviderAmbiguousSchema = Type.Object({
91
+ outcome: Type.Literal("ambiguous"),
92
+ message: Type.Optional(Type.String()),
93
+ }, { additionalProperties: false });
94
+ export const ProviderCapabilitiesSchema = Type.Object({
95
+ processIsolation: StringEnum(["none", "sandboxed"]),
96
+ resolution: Type.Literal("contained"),
97
+ mutationMediation: Type.Literal("brokered"),
98
+ revocation: Type.Literal("admission-only"),
99
+ baselinePolicyId: Type.String({ minLength: 1 }),
100
+ hostProbeSha256: Type.String({ minLength: 1 }),
101
+ }, { additionalProperties: false });
102
+ export const ProbeResultSchema = Type.Object({
103
+ outcome: Type.Literal("accepted"),
104
+ capabilities: ProviderCapabilitiesSchema,
105
+ }, { additionalProperties: false });
106
+ export const PrepareRequestSchema = Type.Object({
107
+ plan: BoundPlanSchema,
108
+ owner: ExecutionOwnerSchema,
109
+ controlDomainId: UuidSchema,
110
+ }, { additionalProperties: false });
111
+ export const FulfillmentPlanSchema = Type.Object({
112
+ preparationId: UuidSchema,
113
+ enforcementCapabilities: EnforcementCapabilitiesSchema,
114
+ }, { additionalProperties: false });
115
+ export const PrepareResultSchema = Type.Union([
116
+ Type.Object({ outcome: Type.Literal("accepted"), fulfillment: FulfillmentPlanSchema }, { additionalProperties: false }),
117
+ ProviderRejectedSchema,
118
+ ProviderAmbiguousSchema,
119
+ ]);
120
+ export const SubmitRequestSchema = Type.Object({
121
+ preparationId: UuidSchema,
122
+ owner: ExecutionOwnerSchema,
123
+ controlDomainId: UuidSchema,
124
+ }, { additionalProperties: false });
125
+ export const SubmitResultSchema = Type.Union([
126
+ Type.Object({ outcome: Type.Literal("accepted"), providerJobHandle: Type.String({ minLength: 1 }) }, { additionalProperties: false }),
127
+ ProviderRejectedSchema,
128
+ ProviderAmbiguousSchema,
129
+ ]);
130
+ export const ProviderEventSchema = Type.Union([
131
+ Type.Object({ kind: Type.Literal("progress"), message: Type.String() }, { additionalProperties: false }),
132
+ Type.Object({ kind: Type.Literal("heartbeat"), at: Type.Integer({ minimum: 0 }) }, { additionalProperties: false }),
133
+ Type.Object({
134
+ kind: Type.Literal("terminal"),
135
+ outcome: StringEnum(["completed", "failed", "ambiguous"]),
136
+ }, { additionalProperties: false }),
137
+ ]);
138
+ export const PollResultSchema = Type.Union([
139
+ Type.Object({
140
+ outcome: Type.Literal("accepted"),
141
+ status: StringEnum(["running", "completed", "failed", "ambiguous"]),
142
+ }, { additionalProperties: false }),
143
+ ProviderRejectedSchema,
144
+ ProviderAmbiguousSchema,
145
+ ]);
146
+ export const CancelResultSchema = Type.Union([
147
+ Type.Object({
148
+ outcome: Type.Literal("accepted"),
149
+ cancelled: Type.Boolean(),
150
+ }, { additionalProperties: false }),
151
+ ProviderRejectedSchema,
152
+ ProviderAmbiguousSchema,
153
+ ]);
154
+ export const ReconcileResultSchema = Type.Union([
155
+ Type.Object({
156
+ outcome: Type.Literal("accepted"),
157
+ providerState: StringEnum(["running", "terminal", "exhausted"]),
158
+ }, { additionalProperties: false }),
159
+ ProviderRejectedSchema,
160
+ ProviderAmbiguousSchema,
161
+ ]);
162
+ export const CollectResultSchema = Type.Union([
163
+ Type.Object({
164
+ outcome: Type.Literal("accepted"),
165
+ providerJobHandle: Type.String({ minLength: 1 }),
166
+ }, { additionalProperties: false }),
167
+ ProviderRejectedSchema,
168
+ ProviderAmbiguousSchema,
169
+ ]);
170
+ /** TE capabilities are the only 0.3-C capabilities (P8 default package). */
171
+ export function capabilitiesFromEnforcement(capabilities) {
172
+ return {
173
+ resolution: capabilities.resolution,
174
+ mutationMediation: capabilities.mutationMediation,
175
+ processIsolation: capabilities.processIsolation,
176
+ revocation: capabilities.revocation,
177
+ baselinePolicyId: capabilities.baselinePolicyId,
178
+ hostProbeSha256: capabilities.hostProbeSha256,
179
+ };
180
+ }
181
+ //# sourceMappingURL=transport.js.map