@fabrika/builder 0.8.1 → 0.9.0-cloudflare.1

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 (50) hide show
  1. package/daemon/src/platform-remote.ts +3 -0
  2. package/decisions/technologies/zerops-fabrika-auth.md +1 -1
  3. package/decisions/technologies/zerops-platform.md +4 -3
  4. package/package.json +12 -11
  5. package/types/cli/src/bin.d.ts +3 -0
  6. package/types/cli/src/build-status.d.ts +20 -0
  7. package/types/cli/src/catalog.d.ts +9 -0
  8. package/types/cli/src/commands/advance.d.ts +1 -0
  9. package/types/cli/src/commands/build.d.ts +1 -0
  10. package/types/cli/src/commands/ensure-daemon.d.ts +1 -0
  11. package/types/cli/src/commands/gate.d.ts +1 -0
  12. package/types/cli/src/commands/induce.d.ts +1 -0
  13. package/types/cli/src/commands/init.d.ts +1 -0
  14. package/types/cli/src/commands/next.d.ts +1 -0
  15. package/types/cli/src/commands/platform.d.ts +2 -0
  16. package/types/cli/src/config.d.ts +16 -0
  17. package/types/cli/src/context.d.ts +13 -0
  18. package/types/cli/src/daemon-client.d.ts +36 -0
  19. package/types/cli/src/daemon-lifecycle.d.ts +16 -0
  20. package/types/cli/src/derive.d.ts +17 -0
  21. package/types/cli/src/errors.d.ts +2 -0
  22. package/types/cli/src/index.d.ts +7 -0
  23. package/types/cli/src/induce.d.ts +16 -0
  24. package/types/cli/src/inject-skills.d.ts +23 -0
  25. package/types/cli/src/issues.d.ts +12 -0
  26. package/types/cli/src/layout.d.ts +21 -0
  27. package/types/cli/src/packet.d.ts +32 -0
  28. package/types/cli/src/phase-state.d.ts +6 -0
  29. package/types/cli/src/platform-client.d.ts +24 -0
  30. package/types/cli/src/skeletons.d.ts +11 -0
  31. package/types/daemon/src/admission.d.ts +1 -0
  32. package/types/daemon/src/bin.d.ts +2 -0
  33. package/types/daemon/src/build-stream.d.ts +14 -0
  34. package/types/daemon/src/handlers.d.ts +15 -0
  35. package/types/daemon/src/index.d.ts +23 -0
  36. package/types/daemon/src/paths.d.ts +10 -0
  37. package/types/daemon/src/phases.d.ts +21 -0
  38. package/types/daemon/src/platform-compiler.d.ts +1 -0
  39. package/types/daemon/src/platform-remote.d.ts +279 -0
  40. package/types/daemon/src/platform-routes.d.ts +3 -0
  41. package/types/daemon/src/platform-source.d.ts +7 -0
  42. package/types/daemon/src/platform-storage.d.ts +38 -0
  43. package/types/daemon/src/platform.d.ts +43 -0
  44. package/types/daemon/src/static.d.ts +2 -0
  45. package/types/index.d.ts +2 -0
  46. package/types/shared/index.d.ts +2324 -0
  47. package/types/shared/phases.d.ts +25 -0
  48. package/types/shared/urls.d.ts +4 -0
  49. package/ui/dist/assets/{client.j37h210g.js → client.v5z73zge.js} +26 -26
  50. package/ui/dist/index.html +1 -1
@@ -0,0 +1,279 @@
1
+ import { type RpcFetch } from '@fabrika/app';
2
+ import { type AppEnvDto, type RunStatus } from '@fabrika/control-contract';
3
+ import { type StoredCredential } from './platform-storage';
4
+ export declare function boundedJson(response: Response): Promise<unknown>;
5
+ export declare class PlatformRemote {
6
+ private readonly fetcher;
7
+ readonly signal: AbortSignal;
8
+ constructor(fetcher: RpcFetch | undefined, signal: AbortSignal);
9
+ json(url: string, body?: unknown): Promise<unknown>;
10
+ discover(origin: string): Promise<{
11
+ controlOrigin: string;
12
+ iamIssuer: string;
13
+ }>;
14
+ control(credential: StoredCredential): {
15
+ installation: (input: void) => Promise<import("@fabrika/control-contract").InstallationDto>;
16
+ consoleAccess: (input: void) => Promise<import("@fabrika/control-contract").ConsoleAccessDto>;
17
+ builderPairing: {
18
+ inspect: (input: import("@fabrika/control-contract").BuilderPairingProofRequest) => Promise<import("@fabrika/auth-core").InspectDeviceAuthorizationResult>;
19
+ approve: (input: import("@fabrika/control-contract").BuilderPairingProofRequest) => Promise<import("@fabrika/auth-core").ApproveDeviceAuthorizationResult>;
20
+ deny: (input: import("@fabrika/control-contract").BuilderPairingProofRequest) => Promise<import("@fabrika/auth-core").DenyDeviceAuthorizationResult>;
21
+ listOwn: (input: import("@fabrika/control-contract").ListOwnBuilderPairingsRequest) => Promise<import("@fabrika/auth-core").ListOwnDeviceAuthorizationsResult>;
22
+ revoke: (input: import("@fabrika/control-contract").RevokeBuilderPairingRequest) => Promise<import("@fabrika/auth-core").RevokeKeyResult>;
23
+ };
24
+ builderConnections: {
25
+ createReceipt: (input: import("@fabrika/control-contract").CreateBuilderConnectionReceiptRequest) => Promise<import("@fabrika/control-contract").BuilderConnectionReceiptDto>;
26
+ getReceipt: (input: import("@fabrika/control-contract").GetBuilderConnectionReceiptRequest) => Promise<import("@fabrika/control-contract").BuilderConnectionReceiptDto>;
27
+ };
28
+ sourceConnection: {
29
+ list: (input: import("@fabrika/control-contract").GitHubSourceConnectionListInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionListResponse>;
30
+ start: (input: import("@fabrika/control-contract").StartGitHubSourceConnectionRequest) => Promise<import("@fabrika/control-contract").StartGitHubSourceConnectionResponse>;
31
+ verifyInstallation: (input: import("@fabrika/control-contract").GitHubSourceConnectionInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionStatusDto>;
32
+ repair: (input: import("@fabrika/control-contract").GitHubSourceConnectionInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionStatusDto>;
33
+ reconcile: (input: import("@fabrika/control-contract").GitHubSourceConnectionInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionStatusDto>;
34
+ };
35
+ apps: {
36
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").AppDto>>;
37
+ get: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").AppDto>;
38
+ create: (input: import("@fabrika/control-contract").CreateAppRequest) => Promise<import("@fabrika/control-contract").AppDto>;
39
+ update: (input: import("@fabrika/control-contract").AppIdInput & {
40
+ app: import("@fabrika/control-contract").UpdateAppRequest;
41
+ }) => Promise<import("@fabrika/control-contract").AppDto>;
42
+ delete: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").OkResponse>;
43
+ environments: {
44
+ list: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").ListResponse<AppEnvDto>>;
45
+ put: (input: import("@fabrika/control-contract").PutAppEnvironmentInput) => Promise<AppEnvDto>;
46
+ delete: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/control-contract").OkResponse>;
47
+ protect: (input: import("@fabrika/control-contract").SetEnvironmentProtectionRequest) => Promise<AppEnvDto>;
48
+ rotateTokenKey: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/control-contract").RotateTokenKeyResponse>;
49
+ };
50
+ secrets: {
51
+ list: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").AppSecretDto>>;
52
+ put: (input: import("@fabrika/control-contract").PutAppSecretInput) => Promise<import("@fabrika/control-contract").AppSecretDto>;
53
+ delete: (input: import("@fabrika/control-contract").AppNamedValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
54
+ };
55
+ variables: {
56
+ list: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").AppVarDto>>;
57
+ put: (input: import("@fabrika/control-contract").PutAppVarInput) => Promise<import("@fabrika/control-contract").AppVarDto>;
58
+ delete: (input: import("@fabrika/control-contract").AppNamedValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
59
+ };
60
+ };
61
+ vault: {
62
+ set: (input: import("@fabrika/control-contract").SecretValueInput) => Promise<import("@fabrika/control-contract").SecretValueResponse>;
63
+ rotate: (input: import("@fabrika/control-contract").SecretValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
64
+ delete: (input: import("@fabrika/control-contract").AppNamedValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
65
+ };
66
+ namespaces: {
67
+ list: (input: void) => Promise<import("@fabrika/control-contract").DeploymentNamespaceListResponse>;
68
+ get: (input: import("@fabrika/control-contract").NamespaceIdInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
69
+ plan: (input: import("@fabrika/control-contract").PlanDeploymentNamespaceRequest) => Promise<import("@fabrika/control-contract").PlanDeploymentNamespaceResponse>;
70
+ create: (input: import("@fabrika/control-contract").CreateDeploymentNamespaceRequest) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
71
+ adopt: (input: import("@fabrika/control-contract").AdoptNamespaceInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
72
+ reconcile: (input: import("@fabrika/control-contract").NamespaceIdInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
73
+ update: (input: import("@fabrika/control-contract").UpdateNamespaceInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
74
+ remove: (input: import("@fabrika/control-contract").NamespaceIdInput) => Promise<import("@fabrika/control-contract").RemoveDeploymentNamespaceResponse>;
75
+ republishAll: (input: void) => Promise<import("@fabrika/control-contract").RepublishAllNamespacesResponse>;
76
+ releaseClaims: (input: import("@fabrika/control-contract").ReleaseNamespaceClaimsInput) => Promise<import("@fabrika/control-contract").ReleaseNamespaceClaimsResponse>;
77
+ };
78
+ runs: {
79
+ list: (input: import("@fabrika/control-contract").RunListInput) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").RunDto>>;
80
+ latestFailures: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").RunDto>>;
81
+ get: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunDto>;
82
+ log: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunLogResponse>;
83
+ tail: (input: import("@fabrika/control-contract").TailRunInput) => Promise<import("@fabrika/control-contract").RunTailResponse>;
84
+ cancel: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunDto>;
85
+ };
86
+ approvals: {
87
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").ApprovalDto>>;
88
+ get: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").ApprovalDto>;
89
+ complete: (input: import("@fabrika/control-contract").CompleteApprovalRequest) => Promise<import("@fabrika/control-contract").ApprovalDto>;
90
+ };
91
+ deploy: (input: import("@fabrika/control-contract").TriggerDeployRequest) => Promise<import("@fabrika/control-contract").RunDto>;
92
+ register: (input: import("@fabrika/control-contract").RegisterAppRequest) => Promise<import("@fabrika/control-contract").RegisterAppResponse>;
93
+ connectors: {
94
+ describe: (input: import("@fabrika/control-contract").DescribeConnectorRequest) => Promise<import("@fabrika/auth-core").ExportDescription>;
95
+ };
96
+ mail: {
97
+ messages: {
98
+ list: (input: import("@fabrika/control-contract").MailMessageListInput) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").MailMessageDto>>;
99
+ get: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDetailDto>;
100
+ release: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
101
+ drop: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
102
+ requeue: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
103
+ };
104
+ rules: {
105
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").MailRuleDto>>;
106
+ set: (input: import("@fabrika/control-contract").SetMailRuleInput) => Promise<import("@fabrika/control-contract").MailRuleDto>;
107
+ remove: (input: import("@fabrika/control-contract").MailRuleIdInput) => Promise<import("@fabrika/control-contract").OkResponse>;
108
+ };
109
+ };
110
+ data: {
111
+ operations: {
112
+ list: (input: {
113
+ env: string;
114
+ appId: string;
115
+ before?: string | undefined;
116
+ limit?: number | undefined;
117
+ }) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").DataOperationDto>>;
118
+ get: (input: {
119
+ operationId: string;
120
+ }) => Promise<import("@fabrika/control-contract").DataOperationDto>;
121
+ };
122
+ view: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/auth-core").OpsView>;
123
+ content: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/auth-core").OpsContentView>;
124
+ start: (input: {
125
+ env: string;
126
+ kind: "maintenance";
127
+ mode: "open" | "inspect" | "read-only" | "closed";
128
+ appId: string;
129
+ } | {
130
+ env: string;
131
+ kind: "backup";
132
+ appId: string;
133
+ }) => Promise<import("@fabrika/control-contract").DataOperationDto>;
134
+ recover: (input: {
135
+ env: string;
136
+ appId: string;
137
+ operationId: string;
138
+ resolution: "open" | "resume";
139
+ }) => Promise<import("@fabrika/control-contract").DataOperationDto>;
140
+ };
141
+ };
142
+ controlForReceipt(controlOrigin: string, token: string): {
143
+ installation: (input: void) => Promise<import("@fabrika/control-contract").InstallationDto>;
144
+ consoleAccess: (input: void) => Promise<import("@fabrika/control-contract").ConsoleAccessDto>;
145
+ builderPairing: {
146
+ inspect: (input: import("@fabrika/control-contract").BuilderPairingProofRequest) => Promise<import("@fabrika/auth-core").InspectDeviceAuthorizationResult>;
147
+ approve: (input: import("@fabrika/control-contract").BuilderPairingProofRequest) => Promise<import("@fabrika/auth-core").ApproveDeviceAuthorizationResult>;
148
+ deny: (input: import("@fabrika/control-contract").BuilderPairingProofRequest) => Promise<import("@fabrika/auth-core").DenyDeviceAuthorizationResult>;
149
+ listOwn: (input: import("@fabrika/control-contract").ListOwnBuilderPairingsRequest) => Promise<import("@fabrika/auth-core").ListOwnDeviceAuthorizationsResult>;
150
+ revoke: (input: import("@fabrika/control-contract").RevokeBuilderPairingRequest) => Promise<import("@fabrika/auth-core").RevokeKeyResult>;
151
+ };
152
+ builderConnections: {
153
+ createReceipt: (input: import("@fabrika/control-contract").CreateBuilderConnectionReceiptRequest) => Promise<import("@fabrika/control-contract").BuilderConnectionReceiptDto>;
154
+ getReceipt: (input: import("@fabrika/control-contract").GetBuilderConnectionReceiptRequest) => Promise<import("@fabrika/control-contract").BuilderConnectionReceiptDto>;
155
+ };
156
+ sourceConnection: {
157
+ list: (input: import("@fabrika/control-contract").GitHubSourceConnectionListInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionListResponse>;
158
+ start: (input: import("@fabrika/control-contract").StartGitHubSourceConnectionRequest) => Promise<import("@fabrika/control-contract").StartGitHubSourceConnectionResponse>;
159
+ verifyInstallation: (input: import("@fabrika/control-contract").GitHubSourceConnectionInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionStatusDto>;
160
+ repair: (input: import("@fabrika/control-contract").GitHubSourceConnectionInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionStatusDto>;
161
+ reconcile: (input: import("@fabrika/control-contract").GitHubSourceConnectionInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionStatusDto>;
162
+ };
163
+ apps: {
164
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").AppDto>>;
165
+ get: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").AppDto>;
166
+ create: (input: import("@fabrika/control-contract").CreateAppRequest) => Promise<import("@fabrika/control-contract").AppDto>;
167
+ update: (input: import("@fabrika/control-contract").AppIdInput & {
168
+ app: import("@fabrika/control-contract").UpdateAppRequest;
169
+ }) => Promise<import("@fabrika/control-contract").AppDto>;
170
+ delete: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").OkResponse>;
171
+ environments: {
172
+ list: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").ListResponse<AppEnvDto>>;
173
+ put: (input: import("@fabrika/control-contract").PutAppEnvironmentInput) => Promise<AppEnvDto>;
174
+ delete: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/control-contract").OkResponse>;
175
+ protect: (input: import("@fabrika/control-contract").SetEnvironmentProtectionRequest) => Promise<AppEnvDto>;
176
+ rotateTokenKey: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/control-contract").RotateTokenKeyResponse>;
177
+ };
178
+ secrets: {
179
+ list: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").AppSecretDto>>;
180
+ put: (input: import("@fabrika/control-contract").PutAppSecretInput) => Promise<import("@fabrika/control-contract").AppSecretDto>;
181
+ delete: (input: import("@fabrika/control-contract").AppNamedValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
182
+ };
183
+ variables: {
184
+ list: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").AppVarDto>>;
185
+ put: (input: import("@fabrika/control-contract").PutAppVarInput) => Promise<import("@fabrika/control-contract").AppVarDto>;
186
+ delete: (input: import("@fabrika/control-contract").AppNamedValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
187
+ };
188
+ };
189
+ vault: {
190
+ set: (input: import("@fabrika/control-contract").SecretValueInput) => Promise<import("@fabrika/control-contract").SecretValueResponse>;
191
+ rotate: (input: import("@fabrika/control-contract").SecretValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
192
+ delete: (input: import("@fabrika/control-contract").AppNamedValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
193
+ };
194
+ namespaces: {
195
+ list: (input: void) => Promise<import("@fabrika/control-contract").DeploymentNamespaceListResponse>;
196
+ get: (input: import("@fabrika/control-contract").NamespaceIdInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
197
+ plan: (input: import("@fabrika/control-contract").PlanDeploymentNamespaceRequest) => Promise<import("@fabrika/control-contract").PlanDeploymentNamespaceResponse>;
198
+ create: (input: import("@fabrika/control-contract").CreateDeploymentNamespaceRequest) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
199
+ adopt: (input: import("@fabrika/control-contract").AdoptNamespaceInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
200
+ reconcile: (input: import("@fabrika/control-contract").NamespaceIdInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
201
+ update: (input: import("@fabrika/control-contract").UpdateNamespaceInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
202
+ remove: (input: import("@fabrika/control-contract").NamespaceIdInput) => Promise<import("@fabrika/control-contract").RemoveDeploymentNamespaceResponse>;
203
+ republishAll: (input: void) => Promise<import("@fabrika/control-contract").RepublishAllNamespacesResponse>;
204
+ releaseClaims: (input: import("@fabrika/control-contract").ReleaseNamespaceClaimsInput) => Promise<import("@fabrika/control-contract").ReleaseNamespaceClaimsResponse>;
205
+ };
206
+ runs: {
207
+ list: (input: import("@fabrika/control-contract").RunListInput) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").RunDto>>;
208
+ latestFailures: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").RunDto>>;
209
+ get: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunDto>;
210
+ log: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunLogResponse>;
211
+ tail: (input: import("@fabrika/control-contract").TailRunInput) => Promise<import("@fabrika/control-contract").RunTailResponse>;
212
+ cancel: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunDto>;
213
+ };
214
+ approvals: {
215
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").ApprovalDto>>;
216
+ get: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").ApprovalDto>;
217
+ complete: (input: import("@fabrika/control-contract").CompleteApprovalRequest) => Promise<import("@fabrika/control-contract").ApprovalDto>;
218
+ };
219
+ deploy: (input: import("@fabrika/control-contract").TriggerDeployRequest) => Promise<import("@fabrika/control-contract").RunDto>;
220
+ register: (input: import("@fabrika/control-contract").RegisterAppRequest) => Promise<import("@fabrika/control-contract").RegisterAppResponse>;
221
+ connectors: {
222
+ describe: (input: import("@fabrika/control-contract").DescribeConnectorRequest) => Promise<import("@fabrika/auth-core").ExportDescription>;
223
+ };
224
+ mail: {
225
+ messages: {
226
+ list: (input: import("@fabrika/control-contract").MailMessageListInput) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").MailMessageDto>>;
227
+ get: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDetailDto>;
228
+ release: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
229
+ drop: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
230
+ requeue: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
231
+ };
232
+ rules: {
233
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").MailRuleDto>>;
234
+ set: (input: import("@fabrika/control-contract").SetMailRuleInput) => Promise<import("@fabrika/control-contract").MailRuleDto>;
235
+ remove: (input: import("@fabrika/control-contract").MailRuleIdInput) => Promise<import("@fabrika/control-contract").OkResponse>;
236
+ };
237
+ };
238
+ data: {
239
+ operations: {
240
+ list: (input: {
241
+ env: string;
242
+ appId: string;
243
+ before?: string | undefined;
244
+ limit?: number | undefined;
245
+ }) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").DataOperationDto>>;
246
+ get: (input: {
247
+ operationId: string;
248
+ }) => Promise<import("@fabrika/control-contract").DataOperationDto>;
249
+ };
250
+ view: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/auth-core").OpsView>;
251
+ content: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/auth-core").OpsContentView>;
252
+ start: (input: {
253
+ env: string;
254
+ kind: "maintenance";
255
+ mode: "open" | "inspect" | "read-only" | "closed";
256
+ appId: string;
257
+ } | {
258
+ env: string;
259
+ kind: "backup";
260
+ appId: string;
261
+ }) => Promise<import("@fabrika/control-contract").DataOperationDto>;
262
+ recover: (input: {
263
+ env: string;
264
+ appId: string;
265
+ operationId: string;
266
+ resolution: "open" | "resume";
267
+ }) => Promise<import("@fabrika/control-contract").DataOperationDto>;
268
+ };
269
+ };
270
+ }
271
+ export declare function parseEnvironments(value: unknown): AppEnvDto[];
272
+ export declare function parseRun(value: unknown): {
273
+ id: string;
274
+ appId: string;
275
+ env: string;
276
+ ref: string;
277
+ commitSha: string | null;
278
+ status: RunStatus;
279
+ };
@@ -0,0 +1,3 @@
1
+ import type { Route } from '@fabrika/daemon-kit';
2
+ import type { BuilderPlatform } from './platform';
3
+ export declare function createPlatformRoutes(platform: BuilderPlatform): Route[];
@@ -0,0 +1,7 @@
1
+ import type { AppDto } from '@fabrika/control-contract';
2
+ import { type FabrikaManifest } from '@fabrika/provider-zerops';
3
+ export declare function repositoryIdentity(url: string): string;
4
+ export declare function verifySource(root: string, app: AppDto, signal: AbortSignal): Promise<string>;
5
+ export declare function compilerEnvironment(source: Readonly<Record<string, string | undefined>>): Record<string, string>;
6
+ export declare function gitEnvironment(source: Readonly<Record<string, string | undefined>>): Record<string, string>;
7
+ export declare function compileProject(root: string, env: string, appId: string, tempParent: string, signal: AbortSignal): Promise<FabrikaManifest>;
@@ -0,0 +1,38 @@
1
+ import { z } from 'zod';
2
+ import { type BuilderDeploymentState, type BuilderProjectConfig, type BuilderProjectConnection } from '../../shared';
3
+ export declare class PlatformError extends Error {
4
+ }
5
+ export declare function within(root: string, path: string): boolean;
6
+ export declare const storedTextSchema: z.ZodString;
7
+ export declare const storedIntegerSchema: z.ZodNumber;
8
+ export declare function noSymlinks(path: string): void;
9
+ export interface ProjectRecord {
10
+ sessionId: string;
11
+ projectRoot: string;
12
+ deployment: BuilderDeploymentState | null;
13
+ recoveryRequired: boolean;
14
+ }
15
+ export interface StoredCredential {
16
+ connection: BuilderProjectConnection;
17
+ token: string;
18
+ expiresAt: number;
19
+ }
20
+ export declare class PlatformStorage {
21
+ readonly stateDir: string;
22
+ readonly credentialDir: string;
23
+ readonly dataDir: string;
24
+ constructor(stateDir: string, credentialDir: string, dataDir: string);
25
+ assertProjectRoot(path: string, allowMissing?: boolean): string;
26
+ private path;
27
+ project(id: string): ProjectRecord | null;
28
+ projects(): ProjectRecord[];
29
+ private readProject;
30
+ saveProject(project: ProjectRecord): void;
31
+ config(project: ProjectRecord): BuilderProjectConfig;
32
+ saveConfig(project: ProjectRecord, config: BuilderProjectConfig): void;
33
+ credential(id: string): StoredCredential | null;
34
+ saveCredential(id: string, credential: StoredCredential): void;
35
+ removeCredential(id: string): void;
36
+ artifact(root: string, path: string): string;
37
+ assertPublicFile(path: string): void;
38
+ }
@@ -0,0 +1,43 @@
1
+ import type { RpcFetch } from '@fabrika/app';
2
+ import { type BuilderPlatformStatus } from '../../shared';
3
+ import { PlatformStorage } from './platform-storage';
4
+ export interface BuilderPlatformOptions {
5
+ stateDir?: string;
6
+ credentialDir?: string;
7
+ dataDir?: string;
8
+ fetch?: RpcFetch;
9
+ now?: () => number;
10
+ sleep?: (milliseconds: number, signal: AbortSignal) => Promise<void>;
11
+ }
12
+ export declare class BuilderPlatform {
13
+ private readonly sessionRoot;
14
+ readonly storage: PlatformStorage;
15
+ private readonly stopped;
16
+ private readonly operations;
17
+ private readonly pairings;
18
+ private readonly targets;
19
+ private readonly now;
20
+ private readonly sleep;
21
+ private readonly fetcher;
22
+ constructor(sessionRoot: (id: string) => string | undefined, options?: BuilderPlatformOptions);
23
+ stop(): void;
24
+ projectRoot(id: string): string | undefined;
25
+ register(id: string, root: string): BuilderPlatformStatus;
26
+ private project;
27
+ status(id: string): BuilderPlatformStatus;
28
+ preview(id: string, url: string | null): BuilderPlatformStatus;
29
+ private operation;
30
+ private signal;
31
+ private remote;
32
+ connect(id: string, requestedOrigin: string): Promise<BuilderPlatformStatus>;
33
+ private validateConsent;
34
+ private pair;
35
+ disconnect(id: string): BuilderPlatformStatus;
36
+ deploy(id: string): BuilderPlatformStatus;
37
+ private targetKey;
38
+ private restoreReservations;
39
+ private resume;
40
+ private backgroundDeploy;
41
+ private prepare;
42
+ private monitor;
43
+ }
@@ -0,0 +1,2 @@
1
+ import type { Route } from '@fabrika/daemon-kit';
2
+ export declare function createStaticHandlers(): Route[];
@@ -0,0 +1,2 @@
1
+ export { BUILDER_USAGE, runBuilderCli } from './cli/src/bin';
2
+ export * from './cli/src/index';