@fabrika/builder 0.8.1 → 0.9.0-dev.2

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 (48) 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 +213 -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
@@ -0,0 +1,213 @@
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
+ };
76
+ runs: {
77
+ list: (input: import("@fabrika/control-contract").RunListInput) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").RunDto>>;
78
+ latestFailures: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").RunDto>>;
79
+ get: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunDto>;
80
+ log: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunLogResponse>;
81
+ tail: (input: import("@fabrika/control-contract").TailRunInput) => Promise<import("@fabrika/control-contract").RunTailResponse>;
82
+ cancel: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunDto>;
83
+ };
84
+ approvals: {
85
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").ApprovalDto>>;
86
+ get: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").ApprovalDto>;
87
+ complete: (input: import("@fabrika/control-contract").CompleteApprovalRequest) => Promise<import("@fabrika/control-contract").ApprovalDto>;
88
+ };
89
+ deploy: (input: import("@fabrika/control-contract").TriggerDeployRequest) => Promise<import("@fabrika/control-contract").RunDto>;
90
+ register: (input: import("@fabrika/control-contract").RegisterAppRequest) => Promise<import("@fabrika/control-contract").RegisterAppResponse>;
91
+ connectors: {
92
+ describe: (input: import("@fabrika/control-contract").DescribeConnectorRequest) => Promise<import("@fabrika/auth-core").ExportDescription>;
93
+ };
94
+ mail: {
95
+ messages: {
96
+ list: (input: import("@fabrika/control-contract").MailMessageListInput) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").MailMessageDto>>;
97
+ get: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDetailDto>;
98
+ release: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
99
+ drop: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
100
+ requeue: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
101
+ };
102
+ rules: {
103
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").MailRuleDto>>;
104
+ set: (input: import("@fabrika/control-contract").SetMailRuleInput) => Promise<import("@fabrika/control-contract").MailRuleDto>;
105
+ remove: (input: import("@fabrika/control-contract").MailRuleIdInput) => Promise<import("@fabrika/control-contract").OkResponse>;
106
+ };
107
+ };
108
+ };
109
+ controlForReceipt(controlOrigin: string, token: string): {
110
+ installation: (input: void) => Promise<import("@fabrika/control-contract").InstallationDto>;
111
+ consoleAccess: (input: void) => Promise<import("@fabrika/control-contract").ConsoleAccessDto>;
112
+ builderPairing: {
113
+ inspect: (input: import("@fabrika/control-contract").BuilderPairingProofRequest) => Promise<import("@fabrika/auth-core").InspectDeviceAuthorizationResult>;
114
+ approve: (input: import("@fabrika/control-contract").BuilderPairingProofRequest) => Promise<import("@fabrika/auth-core").ApproveDeviceAuthorizationResult>;
115
+ deny: (input: import("@fabrika/control-contract").BuilderPairingProofRequest) => Promise<import("@fabrika/auth-core").DenyDeviceAuthorizationResult>;
116
+ listOwn: (input: import("@fabrika/control-contract").ListOwnBuilderPairingsRequest) => Promise<import("@fabrika/auth-core").ListOwnDeviceAuthorizationsResult>;
117
+ revoke: (input: import("@fabrika/control-contract").RevokeBuilderPairingRequest) => Promise<import("@fabrika/auth-core").RevokeKeyResult>;
118
+ };
119
+ builderConnections: {
120
+ createReceipt: (input: import("@fabrika/control-contract").CreateBuilderConnectionReceiptRequest) => Promise<import("@fabrika/control-contract").BuilderConnectionReceiptDto>;
121
+ getReceipt: (input: import("@fabrika/control-contract").GetBuilderConnectionReceiptRequest) => Promise<import("@fabrika/control-contract").BuilderConnectionReceiptDto>;
122
+ };
123
+ sourceConnection: {
124
+ list: (input: import("@fabrika/control-contract").GitHubSourceConnectionListInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionListResponse>;
125
+ start: (input: import("@fabrika/control-contract").StartGitHubSourceConnectionRequest) => Promise<import("@fabrika/control-contract").StartGitHubSourceConnectionResponse>;
126
+ verifyInstallation: (input: import("@fabrika/control-contract").GitHubSourceConnectionInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionStatusDto>;
127
+ repair: (input: import("@fabrika/control-contract").GitHubSourceConnectionInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionStatusDto>;
128
+ reconcile: (input: import("@fabrika/control-contract").GitHubSourceConnectionInput) => Promise<import("@fabrika/control-contract").GitHubSourceConnectionStatusDto>;
129
+ };
130
+ apps: {
131
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").AppDto>>;
132
+ get: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").AppDto>;
133
+ create: (input: import("@fabrika/control-contract").CreateAppRequest) => Promise<import("@fabrika/control-contract").AppDto>;
134
+ update: (input: import("@fabrika/control-contract").AppIdInput & {
135
+ app: import("@fabrika/control-contract").UpdateAppRequest;
136
+ }) => Promise<import("@fabrika/control-contract").AppDto>;
137
+ delete: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").OkResponse>;
138
+ environments: {
139
+ list: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").ListResponse<AppEnvDto>>;
140
+ put: (input: import("@fabrika/control-contract").PutAppEnvironmentInput) => Promise<AppEnvDto>;
141
+ delete: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/control-contract").OkResponse>;
142
+ protect: (input: import("@fabrika/control-contract").SetEnvironmentProtectionRequest) => Promise<AppEnvDto>;
143
+ rotateTokenKey: (input: import("@fabrika/control-contract").AppEnvironmentInput) => Promise<import("@fabrika/control-contract").RotateTokenKeyResponse>;
144
+ };
145
+ secrets: {
146
+ list: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").AppSecretDto>>;
147
+ put: (input: import("@fabrika/control-contract").PutAppSecretInput) => Promise<import("@fabrika/control-contract").AppSecretDto>;
148
+ delete: (input: import("@fabrika/control-contract").AppNamedValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
149
+ };
150
+ variables: {
151
+ list: (input: import("@fabrika/control-contract").AppIdInput) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").AppVarDto>>;
152
+ put: (input: import("@fabrika/control-contract").PutAppVarInput) => Promise<import("@fabrika/control-contract").AppVarDto>;
153
+ delete: (input: import("@fabrika/control-contract").AppNamedValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
154
+ };
155
+ };
156
+ vault: {
157
+ set: (input: import("@fabrika/control-contract").SecretValueInput) => Promise<import("@fabrika/control-contract").SecretValueResponse>;
158
+ rotate: (input: import("@fabrika/control-contract").SecretValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
159
+ delete: (input: import("@fabrika/control-contract").AppNamedValueInput) => Promise<import("@fabrika/control-contract").OkResponse>;
160
+ };
161
+ namespaces: {
162
+ list: (input: void) => Promise<import("@fabrika/control-contract").DeploymentNamespaceListResponse>;
163
+ get: (input: import("@fabrika/control-contract").NamespaceIdInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
164
+ plan: (input: import("@fabrika/control-contract").PlanDeploymentNamespaceRequest) => Promise<import("@fabrika/control-contract").PlanDeploymentNamespaceResponse>;
165
+ create: (input: import("@fabrika/control-contract").CreateDeploymentNamespaceRequest) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
166
+ adopt: (input: import("@fabrika/control-contract").AdoptNamespaceInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
167
+ reconcile: (input: import("@fabrika/control-contract").NamespaceIdInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
168
+ update: (input: import("@fabrika/control-contract").UpdateNamespaceInput) => Promise<import("@fabrika/control-contract").DeploymentNamespaceDetailDto>;
169
+ remove: (input: import("@fabrika/control-contract").NamespaceIdInput) => Promise<import("@fabrika/control-contract").RemoveDeploymentNamespaceResponse>;
170
+ };
171
+ runs: {
172
+ list: (input: import("@fabrika/control-contract").RunListInput) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").RunDto>>;
173
+ latestFailures: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").RunDto>>;
174
+ get: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunDto>;
175
+ log: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunLogResponse>;
176
+ tail: (input: import("@fabrika/control-contract").TailRunInput) => Promise<import("@fabrika/control-contract").RunTailResponse>;
177
+ cancel: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").RunDto>;
178
+ };
179
+ approvals: {
180
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").ApprovalDto>>;
181
+ get: (input: import("@fabrika/control-contract").RunIdInput) => Promise<import("@fabrika/control-contract").ApprovalDto>;
182
+ complete: (input: import("@fabrika/control-contract").CompleteApprovalRequest) => Promise<import("@fabrika/control-contract").ApprovalDto>;
183
+ };
184
+ deploy: (input: import("@fabrika/control-contract").TriggerDeployRequest) => Promise<import("@fabrika/control-contract").RunDto>;
185
+ register: (input: import("@fabrika/control-contract").RegisterAppRequest) => Promise<import("@fabrika/control-contract").RegisterAppResponse>;
186
+ connectors: {
187
+ describe: (input: import("@fabrika/control-contract").DescribeConnectorRequest) => Promise<import("@fabrika/auth-core").ExportDescription>;
188
+ };
189
+ mail: {
190
+ messages: {
191
+ list: (input: import("@fabrika/control-contract").MailMessageListInput) => Promise<import("@fabrika/control-contract").CursorList<import("@fabrika/control-contract").MailMessageDto>>;
192
+ get: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDetailDto>;
193
+ release: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
194
+ drop: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
195
+ requeue: (input: import("@fabrika/control-contract").MailMessageIdInput) => Promise<import("@fabrika/control-contract").MailMessageDto>;
196
+ };
197
+ rules: {
198
+ list: (input: void) => Promise<import("@fabrika/control-contract").ListResponse<import("@fabrika/control-contract").MailRuleDto>>;
199
+ set: (input: import("@fabrika/control-contract").SetMailRuleInput) => Promise<import("@fabrika/control-contract").MailRuleDto>;
200
+ remove: (input: import("@fabrika/control-contract").MailRuleIdInput) => Promise<import("@fabrika/control-contract").OkResponse>;
201
+ };
202
+ };
203
+ };
204
+ }
205
+ export declare function parseEnvironments(value: unknown): AppEnvDto[];
206
+ export declare function parseRun(value: unknown): {
207
+ id: string;
208
+ appId: string;
209
+ env: string;
210
+ ref: string;
211
+ commitSha: string | null;
212
+ status: RunStatus;
213
+ };
@@ -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';