@fungi.computer/oyster 0.1.0 → 0.3.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 (292) hide show
  1. package/README.md +376 -72
  2. package/dist/agent-avatars.d.ts +103 -0
  3. package/dist/agent-avatars.js +66 -0
  4. package/dist/agents.d.ts +15 -4
  5. package/dist/agents.js +43 -4
  6. package/dist/app-builds.d.ts +81 -8
  7. package/dist/app-builds.js +210 -60
  8. package/dist/app-storage.d.ts +3 -3
  9. package/dist/approval-capability.d.ts +5 -0
  10. package/dist/approval-capability.js +46 -0
  11. package/dist/approval-home.d.ts +51 -0
  12. package/dist/approval-home.js +226 -0
  13. package/dist/apps/catalog.d.ts +335 -0
  14. package/dist/apps/catalog.js +46 -0
  15. package/dist/apps/gate.d.ts +26 -12
  16. package/dist/apps/gate.js +48 -22
  17. package/dist/apps/index.d.ts +3 -1
  18. package/dist/apps/index.js +3 -1
  19. package/dist/apps/installation.d.ts +147 -66
  20. package/dist/apps/installation.js +193 -86
  21. package/dist/apps/permissions.d.ts +247 -0
  22. package/dist/apps/permissions.js +255 -0
  23. package/dist/boot-capability-route.d.ts +15 -0
  24. package/dist/boot-capability-route.js +196 -0
  25. package/dist/boot-capability.d.ts +103 -0
  26. package/dist/boot-capability.js +141 -0
  27. package/dist/boot-construction.d.ts +12 -0
  28. package/dist/boot-construction.js +175 -0
  29. package/dist/boot-gate.d.ts +267 -0
  30. package/dist/boot-gate.js +236 -0
  31. package/dist/boot-host-script.d.ts +2 -0
  32. package/dist/boot-host-script.js +1 -0
  33. package/dist/boot-mount.d.ts +21 -0
  34. package/dist/boot-mount.js +65 -0
  35. package/dist/browser/boot.d.ts +73 -0
  36. package/dist/browser/boot.js +502 -0
  37. package/dist/browser/browser.d.ts +104 -0
  38. package/dist/browser/browser.js +374 -0
  39. package/dist/browser/capability-source.d.ts +76 -0
  40. package/dist/browser/capability-source.js +338 -0
  41. package/dist/browser/cdp-client.d.ts +56 -0
  42. package/dist/browser/cdp-client.js +184 -0
  43. package/dist/browser/errors.d.ts +79 -0
  44. package/dist/browser/errors.js +32 -0
  45. package/dist/browser/index.d.ts +16 -0
  46. package/dist/browser/index.js +14 -0
  47. package/dist/browser/lease-registry.d.ts +61 -0
  48. package/dist/browser/lease-registry.js +101 -0
  49. package/dist/browser/operations.d.ts +225 -0
  50. package/dist/browser/operations.js +137 -0
  51. package/dist/browser/page.d.ts +25 -0
  52. package/dist/browser/page.js +172 -0
  53. package/dist/browser/quick-reads.d.ts +29 -0
  54. package/dist/browser/quick-reads.js +160 -0
  55. package/dist/browser/sessions.d.ts +52 -0
  56. package/dist/browser/sessions.js +118 -0
  57. package/dist/browser/url-policy.d.ts +18 -0
  58. package/dist/browser/url-policy.js +58 -0
  59. package/dist/build/app-imports.d.ts +12 -0
  60. package/dist/build/app-imports.js +105 -0
  61. package/dist/build/build-policy.d.ts +5 -3
  62. package/dist/build/build-policy.js +5 -3
  63. package/dist/build/candidate-builder.d.ts +1 -1
  64. package/dist/build/candidate-cli.mjs +8428 -337
  65. package/dist/build/local-build.d.ts +2 -0
  66. package/dist/build/local-build.js +28 -6
  67. package/dist/build/snapshot-package-store.d.ts +1 -1
  68. package/dist/build/snapshot-package-store.js +7 -2
  69. package/dist/build/workspace-build.d.ts +92 -5
  70. package/dist/build/workspace-build.js +93 -19
  71. package/dist/build-egress.js +4 -4
  72. package/dist/build.d.ts +1 -1
  73. package/dist/build.js +1 -1
  74. package/dist/catalog-frame.js +1 -1
  75. package/dist/cloudflare.d.ts +13 -3
  76. package/dist/cloudflare.js +106 -8
  77. package/dist/frame-binding-wire-script.js +1 -1
  78. package/dist/frame-binding-wire.d.ts +1 -1
  79. package/dist/frame-binding-wire.js +5 -3
  80. package/dist/git-auth.d.ts +0 -2
  81. package/dist/git-auth.js +0 -2
  82. package/dist/git-journal.js +4 -4
  83. package/dist/git.d.ts +0 -1
  84. package/dist/git.js +0 -2
  85. package/dist/host.d.ts +39 -13
  86. package/dist/host.js +268 -142
  87. package/dist/index.d.ts +26 -15
  88. package/dist/index.js +40 -16
  89. package/dist/install-release-cli.d.ts +2 -0
  90. package/dist/install-release-cli.js +46 -0
  91. package/dist/installation-client.d.ts +43 -0
  92. package/dist/installation-client.js +178 -0
  93. package/dist/installation-execution.d.ts +11 -0
  94. package/dist/installation-execution.js +184 -0
  95. package/dist/installation-operations.d.ts +1437 -0
  96. package/dist/installation-operations.js +664 -0
  97. package/dist/installation-store-generation.d.ts +3 -0
  98. package/dist/installation-store-generation.js +16 -0
  99. package/dist/instance-id.d.ts +10 -0
  100. package/dist/instance-id.js +10 -0
  101. package/dist/instance-refusal.d.ts +11 -0
  102. package/dist/instance-refusal.js +21 -0
  103. package/dist/internal/delivery.js +4 -2
  104. package/dist/internal/host-gate.js +7 -1
  105. package/dist/internal/registry-installations.js +4 -4
  106. package/dist/keys.d.ts +5 -1
  107. package/dist/keys.js +10 -2
  108. package/dist/machine-link/authority.d.ts +89 -0
  109. package/dist/machine-link/authority.js +37 -0
  110. package/dist/machine-link/client.d.ts +66 -0
  111. package/dist/machine-link/client.js +94 -0
  112. package/dist/machine-link/delivery.d.ts +18 -0
  113. package/dist/machine-link/delivery.js +55 -0
  114. package/dist/machine-link/enrollment.d.ts +111 -0
  115. package/dist/machine-link/enrollment.js +286 -0
  116. package/dist/machine-link/fences.d.ts +37 -0
  117. package/dist/machine-link/fences.js +166 -0
  118. package/dist/machine-link/home.d.ts +20 -0
  119. package/dist/machine-link/home.js +24 -0
  120. package/dist/machine-link/host.d.ts +43 -0
  121. package/dist/machine-link/host.js +189 -0
  122. package/dist/machine-link/index.d.ts +15 -0
  123. package/dist/machine-link/index.js +15 -0
  124. package/dist/machine-link/link.d.ts +48 -0
  125. package/dist/machine-link/link.js +223 -0
  126. package/dist/machine-link/presence.d.ts +10 -0
  127. package/dist/machine-link/presence.js +25 -0
  128. package/dist/machine-link/workers.d.ts +6 -0
  129. package/dist/machine-link/workers.js +6 -0
  130. package/dist/mcp-owner.d.ts +2 -2
  131. package/dist/mcp-owner.js +41 -33
  132. package/dist/mcp.d.ts +15 -3
  133. package/dist/mcp.js +146 -25
  134. package/dist/pack.d.ts +14 -3
  135. package/dist/pack.js +44 -19
  136. package/dist/page/app-access.d.ts +7 -0
  137. package/dist/page/app-access.js +75 -0
  138. package/dist/page/boot-host.js +57 -0
  139. package/dist/page/capabilities.d.ts +3 -3
  140. package/dist/page/capabilities.js +16 -12
  141. package/dist/page/computer-handles.d.ts +3 -3
  142. package/dist/page/computer-target.d.ts +3 -0
  143. package/dist/page/computer-target.js +9 -0
  144. package/dist/page/mount.d.ts +23 -7
  145. package/dist/page/mount.js +152 -16
  146. package/dist/page-assets.d.ts +22 -0
  147. package/dist/page-assets.js +28 -0
  148. package/dist/page-script.d.ts +3 -0
  149. package/dist/page-script.js +5 -4
  150. package/dist/release.d.ts +13 -6
  151. package/dist/release.js +10 -7
  152. package/dist/root-data.d.ts +16 -6
  153. package/dist/root-data.js +2 -2
  154. package/dist/source/index.d.ts +1 -1
  155. package/dist/source/team-source.d.ts +20 -8
  156. package/dist/source/team-source.js +39 -10
  157. package/dist/source/template-seed.d.ts +2 -2
  158. package/dist/standalone/agent-mail.d.ts +24 -0
  159. package/dist/standalone/agent-mail.js +62 -0
  160. package/dist/standalone/agent-store.d.ts +9 -0
  161. package/dist/standalone/agent-store.js +30 -0
  162. package/dist/standalone/agents.d.ts +78 -12
  163. package/dist/standalone/agents.js +470 -59
  164. package/dist/standalone/app-builds-binding.d.ts +20 -2
  165. package/dist/standalone/app-builds-binding.js +151 -27
  166. package/dist/standalone/app-set.d.ts +5 -2
  167. package/dist/standalone/app-set.js +174 -143
  168. package/dist/standalone/browser.d.ts +11 -0
  169. package/dist/standalone/browser.js +72 -0
  170. package/dist/standalone/builds.d.ts +13 -4
  171. package/dist/standalone/builds.js +28 -44
  172. package/dist/standalone/computer-egress.d.ts +2 -0
  173. package/dist/standalone/computer-egress.js +13 -4
  174. package/dist/standalone/computer-fleet.d.ts +43 -0
  175. package/dist/standalone/computer-fleet.js +200 -0
  176. package/dist/standalone/computer.d.ts +44 -9
  177. package/dist/standalone/computer.js +132 -25
  178. package/dist/standalone/install-apps-cli.js +43 -6
  179. package/dist/standalone/instance.d.ts +2 -2
  180. package/dist/standalone/instance.js +8 -11
  181. package/dist/standalone/machine-link.d.ts +354 -0
  182. package/dist/standalone/machine-link.js +368 -0
  183. package/dist/standalone/media.d.ts +2 -2
  184. package/dist/standalone/media.js +19 -16
  185. package/dist/standalone/preview.d.ts +2 -2
  186. package/dist/standalone/preview.js +39 -12
  187. package/dist/standalone/registry.d.ts +149 -9
  188. package/dist/standalone/registry.js +299 -8
  189. package/dist/standalone/worker.d.ts +19 -5
  190. package/dist/standalone/worker.js +90 -54
  191. package/dist/standalone/workflow-binding.d.ts +28 -32
  192. package/dist/standalone/workflow-binding.js +20 -20
  193. package/dist/standalone/workflow-control.d.ts +4 -0
  194. package/dist/standalone/workflow-control.js +40 -0
  195. package/dist/standalone/workflow-events.d.ts +2 -2
  196. package/dist/standalone/workflow-events.js +9 -10
  197. package/dist/standalone/workflow-git-capture.js +4 -3
  198. package/dist/standalone/workflow-host.d.ts +177 -152
  199. package/dist/standalone/workflow-host.js +137 -30
  200. package/dist/standalone/workflow-node-capture.js +11 -4
  201. package/dist/standalone/workflow-schedules.d.ts +5 -2
  202. package/dist/standalone/workflow-schedules.js +9 -10
  203. package/dist/standalone/workflow-trigger-host.d.ts +88 -6
  204. package/dist/standalone/workflow-trigger-host.js +2 -2
  205. package/dist/standalone/workflow-webhooks.d.ts +22 -0
  206. package/dist/standalone/workflow-webhooks.js +39 -0
  207. package/dist/standalone/workflows.d.ts +203 -50
  208. package/dist/standalone/workflows.js +198 -39
  209. package/dist/storage-frame.d.ts +6 -6
  210. package/dist/testing/capabilities.js +14 -3
  211. package/dist/testing/installation.js +26 -2
  212. package/dist/testing/worker.js +1 -1
  213. package/dist/testing/workers-runtime.d.ts +8 -2
  214. package/dist/testing/workers-runtime.js +20 -2
  215. package/dist/webhook-abuse.d.ts +25 -0
  216. package/dist/webhook-abuse.js +54 -0
  217. package/dist/webhook-custody.d.ts +144 -0
  218. package/dist/webhook-custody.js +222 -0
  219. package/dist/webhook-ingress.d.ts +36 -0
  220. package/dist/webhook-ingress.js +146 -0
  221. package/dist/webhooks.d.ts +111 -0
  222. package/dist/webhooks.js +189 -0
  223. package/dist/workers-git.d.ts +12 -17
  224. package/dist/workers-git.js +60 -55
  225. package/dist/workers.d.ts +224 -13
  226. package/dist/workers.js +351 -51
  227. package/dist/workflow-agent-authority.d.ts +8 -0
  228. package/dist/workflow-agent-authority.js +42 -0
  229. package/dist/workflows.d.ts +66 -0
  230. package/dist/workflows.js +97 -0
  231. package/docs/api/README.md +63 -37
  232. package/docs/api/agents.md +17 -0
  233. package/docs/api/app-storage.md +1 -1
  234. package/docs/api/apps.md +1394 -543
  235. package/docs/api/browser/boot.md +132 -0
  236. package/docs/api/browser.md +1440 -0
  237. package/docs/api/build-contract.md +38 -25
  238. package/docs/api/build.md +263 -84
  239. package/docs/api/cloudflare.md +93 -7
  240. package/docs/api/git.md +3 -13
  241. package/docs/api/host.md +944 -118
  242. package/docs/api/index.md +320 -18
  243. package/docs/api/keys.md +24 -1
  244. package/docs/api/mcp.md +59 -12
  245. package/docs/api/modules.md +33 -40
  246. package/docs/api/pack.md +57 -8
  247. package/docs/api/page/mount.md +92 -4
  248. package/docs/api/workers-git.md +103 -24
  249. package/docs/api/workers.md +1581 -244
  250. package/docs/site/agent-quickstart.mdx +28 -14
  251. package/examples/standalone/worker.ts +3 -1
  252. package/examples/standalone/wrangler.jsonc +2 -0
  253. package/package.json +73 -69
  254. package/dist/installation-consent.d.ts +0 -79
  255. package/dist/installation-consent.js +0 -82
  256. package/dist/shell/app-directory.d.ts +0 -542
  257. package/dist/shell/app-directory.js +0 -199
  258. package/dist/shell/browser-actions.d.ts +0 -7
  259. package/dist/shell/browser-actions.js +0 -56
  260. package/dist/shell/command-host.d.ts +0 -112
  261. package/dist/shell/command-host.js +0 -502
  262. package/dist/shell/commands.d.ts +0 -25
  263. package/dist/shell/commands.js +0 -78
  264. package/dist/shell/index.d.ts +0 -8
  265. package/dist/shell/index.js +0 -8
  266. package/dist/shell/keys.d.ts +0 -41
  267. package/dist/shell/keys.js +0 -134
  268. package/dist/shell/shell-module.d.ts +0 -55
  269. package/dist/shell/shell-module.js +0 -86
  270. package/dist/shell/window-manager.d.ts +0 -124
  271. package/dist/shell/window-manager.js +0 -711
  272. package/dist/shell/workbench-contract.d.ts +0 -68
  273. package/dist/shell/workbench-directory.d.ts +0 -332
  274. package/dist/shell/workbench-directory.js +0 -35
  275. package/dist/shell/workbench-host-types.d.ts +0 -96
  276. package/dist/shell/workbench-host-types.js +0 -1
  277. package/dist/shell/workbench-host.d.ts +0 -34
  278. package/dist/shell/workbench-host.js +0 -347
  279. package/dist/shell/workbench-model.d.ts +0 -192
  280. package/dist/shell/workbench-model.js +0 -53
  281. package/dist/shell/workbench.d.ts +0 -4
  282. package/dist/shell/workbench.js +0 -2
  283. package/docs/api/shell/app-directory.md +0 -599
  284. package/docs/api/shell/command-host.md +0 -224
  285. package/docs/api/shell/commands.md +0 -197
  286. package/docs/api/shell/keys.md +0 -183
  287. package/docs/api/shell/shell-module.md +0 -204
  288. package/docs/api/shell/window-manager.md +0 -267
  289. package/docs/api/shell/workbench-directory.md +0 -119
  290. package/docs/api/shell/workbench.md +0 -205
  291. package/docs/api/shell.md +0 -1915
  292. /package/dist/{shell/workbench-contract.js → page/boot-host.d.ts} +0 -0
@@ -0,0 +1,1437 @@
1
+ import { z } from "zod";
2
+ import { type WatchdogSqliteOwner } from "@fungi.computer/watchdog";
3
+ import { type Installation } from "./apps/installation.js";
4
+ import type { InstallationCommit } from "./host.js";
5
+ import { type UiBootCheckOutcome } from "./boot-gate.js";
6
+ export declare const installationRequestIdSchema: z.ZodString;
7
+ /** Application evidence, never a classification of an edge's HTTP response. */
8
+ declare const installationOutcomeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9
+ state: z.ZodLiteral<"succeeded">;
10
+ installation: z.ZodObject<{
11
+ installationId: z.ZodLazy<z.ZodString>;
12
+ instanceId: z.ZodNullable<z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>>;
13
+ appId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").AppId, unknown>>;
14
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
15
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
16
+ readonly appId: import("@fungi.computer/puffball").AppId;
17
+ readonly artifact: {
18
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
19
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
20
+ readonly provenance: {
21
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
22
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
23
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
24
+ };
25
+ };
26
+ }, unknown>>;
27
+ releasePin: z.ZodEnum<{
28
+ pinned: "pinned";
29
+ floating: "floating";
30
+ }>;
31
+ authority: z.ZodObject<{
32
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
33
+ declaredOperationsDigest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
34
+ approvedGrants: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
35
+ capability: z.ZodPipe<z.ZodUnknown, z.ZodTransform<"approvals" | "agent.list" | "agent.manage" | "agent.rename" | "agent.avatar" | "agent.toolPolicy" | "agent.read" | "agent.send" | "computer.list" | "computer.readFile" | "computer.writeFile" | "computer.execute" | "llm.generation" | "media.generation" | "games:servers" | "git.repository" | "apps.open" | "apps.call" | "app.storage" | "app.events.emit" | "team.workbenchHost" | "marketplace.browse" | "marketplace.purchase" | "workflow.run" | "workflow.publish" | "workflow.arm" | "world" | "channels.read" | "channels.personal.manage", unknown>>;
36
+ capabilityApproved: z.ZodLiteral<true>;
37
+ operations: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
38
+ resources: z.ZodUnion<readonly [z.ZodLiteral<"tenant-scope">, z.ZodReadonly<z.ZodArray<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
39
+ kind: z.ZodString;
40
+ id: z.ZodString;
41
+ }, z.core.$strict>>>>>]>;
42
+ }, z.core.$strict>>>>>;
43
+ approval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
44
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
45
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
46
+ memberId: import("zod/mini").ZodMiniString<string>;
47
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
48
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
49
+ agentId: import("zod/mini").ZodMiniString<string>;
50
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
51
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
52
+ keyId: import("zod/mini").ZodMiniString<string>;
53
+ }, z.core.$strip>], "kind">;
54
+ at: z.ZodNumber;
55
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
56
+ }, z.core.$strict>>>>;
57
+ }, z.core.$strict>;
58
+ status: z.ZodEnum<{
59
+ enabled: "enabled";
60
+ disabled: "disabled";
61
+ deleted: "deleted";
62
+ }>;
63
+ visibility: z.ZodEnum<{
64
+ private: "private";
65
+ public: "public";
66
+ }>;
67
+ approvedAnonymousMethods: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
68
+ name: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string, unknown>>;
69
+ digest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
70
+ }, z.core.$strict>>>>;
71
+ anonymousApproval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
72
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
73
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
74
+ memberId: import("zod/mini").ZodMiniString<string>;
75
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
76
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
77
+ agentId: import("zod/mini").ZodMiniString<string>;
78
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
79
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
80
+ keyId: import("zod/mini").ZodMiniString<string>;
81
+ }, z.core.$strip>], "kind">;
82
+ at: z.ZodNumber;
83
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
84
+ }, z.core.$strict>>>>;
85
+ }, z.core.$strict>;
86
+ creation: z.ZodEnum<{
87
+ fresh: "fresh";
88
+ replacement: "replacement";
89
+ reminted: "reminted";
90
+ }>;
91
+ uiCheck: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
92
+ kind: z.ZodLiteral<"passed">;
93
+ }, z.core.$strict>, z.ZodObject<{
94
+ kind: z.ZodLiteral<"failed">;
95
+ code: z.ZodLiteral<"ui_mount_failed">;
96
+ diagnostics: z.ZodOptional<z.ZodObject<{
97
+ failedPredicate: z.ZodEnum<{
98
+ unexpected_candidate_request: "unexpected_candidate_request";
99
+ response_status: "response_status";
100
+ request_failed: "request_failed";
101
+ page_error: "page_error";
102
+ candidate_not_mounted: "candidate_not_mounted";
103
+ }>;
104
+ errorName: z.ZodOptional<z.ZodEnum<{
105
+ TypeError: "TypeError";
106
+ RangeError: "RangeError";
107
+ SyntaxError: "SyntaxError";
108
+ AbortError: "AbortError";
109
+ TimeoutError: "TimeoutError";
110
+ Other: "Other";
111
+ Error: "Error";
112
+ }>>;
113
+ finalUrlPath: z.ZodString;
114
+ consoleErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
115
+ pageErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
116
+ failedRequests: z.ZodArray<z.ZodObject<{
117
+ path: z.ZodString;
118
+ status: z.ZodOptional<z.ZodNumber>;
119
+ failureKind: z.ZodOptional<z.ZodEnum<{
120
+ unexpected_candidate_request: "unexpected_candidate_request";
121
+ response_status: "response_status";
122
+ request_failed: "request_failed";
123
+ }>>;
124
+ }, z.core.$strict>>;
125
+ droppedCount: z.ZodNumber;
126
+ }, z.core.$strict>>;
127
+ }, z.core.$strict>, z.ZodObject<{
128
+ kind: z.ZodLiteral<"not_checked">;
129
+ code: z.ZodEnum<{
130
+ boot_runner_unavailable: "boot_runner_unavailable";
131
+ boot_browser_binding_missing: "boot_browser_binding_missing";
132
+ boot_clone_unavailable: "boot_clone_unavailable";
133
+ boot_timeout: "boot_timeout";
134
+ boot_cleanup_failed: "boot_cleanup_failed";
135
+ ui_check_not_run_on_host: "ui_check_not_run_on_host";
136
+ }>;
137
+ }, z.core.$strict>], "kind">>;
138
+ }, z.core.$strict>, z.ZodObject<{
139
+ state: z.ZodLiteral<"refused">;
140
+ status: z.ZodNumber;
141
+ code: z.ZodString;
142
+ }, z.core.$strict>, z.ZodObject<{
143
+ state: z.ZodLiteral<"unconfirmed">;
144
+ outcome: z.ZodEnum<{
145
+ cancelled: "cancelled";
146
+ outcome_unknown: "outcome_unknown";
147
+ interrupted: "interrupted";
148
+ }>;
149
+ }, z.core.$strict>], "state">;
150
+ export type InstallationOutcome = z.output<typeof installationOutcomeSchema>;
151
+ /** One wire contract for admission and subsequent authoritative observation. */
152
+ export declare const installationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
153
+ state: z.ZodLiteral<"pending">;
154
+ requestId: z.ZodString;
155
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
156
+ installationId: z.ZodLazy<z.ZodString>;
157
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
158
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
159
+ readonly appId: import("@fungi.computer/puffball").AppId;
160
+ readonly artifact: {
161
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
162
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
163
+ readonly provenance: {
164
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
165
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
166
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
167
+ };
168
+ };
169
+ }, unknown>>;
170
+ }, z.core.$strict>, z.ZodObject<{
171
+ state: z.ZodLiteral<"succeeded">;
172
+ reference: z.ZodObject<{
173
+ generation: z.ZodString;
174
+ instanceId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>;
175
+ authorityVersion: z.ZodNumber;
176
+ status: z.ZodEnum<{
177
+ enabled: "enabled";
178
+ disabled: "disabled";
179
+ deleted: "deleted";
180
+ }>;
181
+ }, z.core.$strict>;
182
+ creation: z.ZodEnum<{
183
+ fresh: "fresh";
184
+ replacement: "replacement";
185
+ reminted: "reminted";
186
+ }>;
187
+ uiCheck: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
188
+ kind: z.ZodLiteral<"passed">;
189
+ }, z.core.$strict>, z.ZodObject<{
190
+ kind: z.ZodLiteral<"failed">;
191
+ code: z.ZodLiteral<"ui_mount_failed">;
192
+ diagnostics: z.ZodOptional<z.ZodObject<{
193
+ failedPredicate: z.ZodEnum<{
194
+ unexpected_candidate_request: "unexpected_candidate_request";
195
+ response_status: "response_status";
196
+ request_failed: "request_failed";
197
+ page_error: "page_error";
198
+ candidate_not_mounted: "candidate_not_mounted";
199
+ }>;
200
+ errorName: z.ZodOptional<z.ZodEnum<{
201
+ TypeError: "TypeError";
202
+ RangeError: "RangeError";
203
+ SyntaxError: "SyntaxError";
204
+ AbortError: "AbortError";
205
+ TimeoutError: "TimeoutError";
206
+ Other: "Other";
207
+ Error: "Error";
208
+ }>>;
209
+ finalUrlPath: z.ZodString;
210
+ consoleErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
211
+ pageErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
212
+ failedRequests: z.ZodArray<z.ZodObject<{
213
+ path: z.ZodString;
214
+ status: z.ZodOptional<z.ZodNumber>;
215
+ failureKind: z.ZodOptional<z.ZodEnum<{
216
+ unexpected_candidate_request: "unexpected_candidate_request";
217
+ response_status: "response_status";
218
+ request_failed: "request_failed";
219
+ }>>;
220
+ }, z.core.$strict>>;
221
+ droppedCount: z.ZodNumber;
222
+ }, z.core.$strict>>;
223
+ }, z.core.$strict>, z.ZodObject<{
224
+ kind: z.ZodLiteral<"not_checked">;
225
+ code: z.ZodEnum<{
226
+ boot_runner_unavailable: "boot_runner_unavailable";
227
+ boot_browser_binding_missing: "boot_browser_binding_missing";
228
+ boot_clone_unavailable: "boot_clone_unavailable";
229
+ boot_timeout: "boot_timeout";
230
+ boot_cleanup_failed: "boot_cleanup_failed";
231
+ ui_check_not_run_on_host: "ui_check_not_run_on_host";
232
+ }>;
233
+ }, z.core.$strict>], "kind">>;
234
+ requestId: z.ZodString;
235
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
236
+ installationId: z.ZodLazy<z.ZodString>;
237
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
238
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
239
+ readonly appId: import("@fungi.computer/puffball").AppId;
240
+ readonly artifact: {
241
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
242
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
243
+ readonly provenance: {
244
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
245
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
246
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
247
+ };
248
+ };
249
+ }, unknown>>;
250
+ installation: z.ZodNullable<z.ZodObject<{
251
+ installationId: z.ZodLazy<z.ZodString>;
252
+ instanceId: z.ZodNullable<z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>>;
253
+ appId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").AppId, unknown>>;
254
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
255
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
256
+ readonly appId: import("@fungi.computer/puffball").AppId;
257
+ readonly artifact: {
258
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
259
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
260
+ readonly provenance: {
261
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
262
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
263
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
264
+ };
265
+ };
266
+ }, unknown>>;
267
+ releasePin: z.ZodEnum<{
268
+ pinned: "pinned";
269
+ floating: "floating";
270
+ }>;
271
+ authority: z.ZodObject<{
272
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
273
+ declaredOperationsDigest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
274
+ approvedGrants: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
275
+ capability: z.ZodPipe<z.ZodUnknown, z.ZodTransform<"approvals" | "agent.list" | "agent.manage" | "agent.rename" | "agent.avatar" | "agent.toolPolicy" | "agent.read" | "agent.send" | "computer.list" | "computer.readFile" | "computer.writeFile" | "computer.execute" | "llm.generation" | "media.generation" | "games:servers" | "git.repository" | "apps.open" | "apps.call" | "app.storage" | "app.events.emit" | "team.workbenchHost" | "marketplace.browse" | "marketplace.purchase" | "workflow.run" | "workflow.publish" | "workflow.arm" | "world" | "channels.read" | "channels.personal.manage", unknown>>;
276
+ capabilityApproved: z.ZodLiteral<true>;
277
+ operations: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
278
+ resources: z.ZodUnion<readonly [z.ZodLiteral<"tenant-scope">, z.ZodReadonly<z.ZodArray<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
279
+ kind: z.ZodString;
280
+ id: z.ZodString;
281
+ }, z.core.$strict>>>>>]>;
282
+ }, z.core.$strict>>>>>;
283
+ approval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
284
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
285
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
286
+ memberId: import("zod/mini").ZodMiniString<string>;
287
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
288
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
289
+ agentId: import("zod/mini").ZodMiniString<string>;
290
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
291
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
292
+ keyId: import("zod/mini").ZodMiniString<string>;
293
+ }, z.core.$strip>], "kind">;
294
+ at: z.ZodNumber;
295
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
296
+ }, z.core.$strict>>>>;
297
+ }, z.core.$strict>;
298
+ status: z.ZodEnum<{
299
+ enabled: "enabled";
300
+ disabled: "disabled";
301
+ deleted: "deleted";
302
+ }>;
303
+ visibility: z.ZodEnum<{
304
+ private: "private";
305
+ public: "public";
306
+ }>;
307
+ approvedAnonymousMethods: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
308
+ name: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string, unknown>>;
309
+ digest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
310
+ }, z.core.$strict>>>>;
311
+ anonymousApproval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
312
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
313
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
314
+ memberId: import("zod/mini").ZodMiniString<string>;
315
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
316
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
317
+ agentId: import("zod/mini").ZodMiniString<string>;
318
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
319
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
320
+ keyId: import("zod/mini").ZodMiniString<string>;
321
+ }, z.core.$strip>], "kind">;
322
+ at: z.ZodNumber;
323
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
324
+ }, z.core.$strict>>>>;
325
+ }, z.core.$strict>>;
326
+ }, z.core.$strict>, z.ZodObject<{
327
+ state: z.ZodLiteral<"refused">;
328
+ status: z.ZodNumber;
329
+ code: z.ZodString;
330
+ requestId: z.ZodString;
331
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
332
+ installationId: z.ZodLazy<z.ZodString>;
333
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
334
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
335
+ readonly appId: import("@fungi.computer/puffball").AppId;
336
+ readonly artifact: {
337
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
338
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
339
+ readonly provenance: {
340
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
341
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
342
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
343
+ };
344
+ };
345
+ }, unknown>>;
346
+ }, z.core.$strict>, z.ZodObject<{
347
+ state: z.ZodLiteral<"unconfirmed">;
348
+ outcome: z.ZodEnum<{
349
+ cancelled: "cancelled";
350
+ outcome_unknown: "outcome_unknown";
351
+ interrupted: "interrupted";
352
+ }>;
353
+ requestId: z.ZodString;
354
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
355
+ installationId: z.ZodLazy<z.ZodString>;
356
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
357
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
358
+ readonly appId: import("@fungi.computer/puffball").AppId;
359
+ readonly artifact: {
360
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
361
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
362
+ readonly provenance: {
363
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
364
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
365
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
366
+ };
367
+ };
368
+ }, unknown>>;
369
+ }, z.core.$strict>], "state">;
370
+ export type InstallationOperation = z.output<typeof installationOperationSchema>;
371
+ declare const installationAdmissionSchema: z.ZodObject<{
372
+ requestId: z.ZodString;
373
+ installationId: z.ZodLazy<z.ZodString>;
374
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
375
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
376
+ readonly appId: import("@fungi.computer/puffball").AppId;
377
+ readonly artifact: {
378
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
379
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
380
+ readonly provenance: {
381
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
382
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
383
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
384
+ };
385
+ };
386
+ }, unknown>>;
387
+ actor: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
388
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
389
+ memberId: import("zod/mini").ZodMiniString<string>;
390
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
391
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
392
+ agentId: import("zod/mini").ZodMiniString<string>;
393
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
394
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
395
+ keyId: import("zod/mini").ZodMiniString<string>;
396
+ }, z.core.$strip>], "kind">;
397
+ intent: z.ZodEnum<{
398
+ "install-or-select": "install-or-select";
399
+ "install-or-remint": "install-or-remint";
400
+ "create-only": "create-only";
401
+ }>;
402
+ origin: z.ZodEnum<{
403
+ workflow: "workflow";
404
+ "owner-direct": "owner-direct";
405
+ }>;
406
+ }, z.core.$strict>;
407
+ export type InstallationAdmission = z.output<typeof installationAdmissionSchema>;
408
+ /** Retained intent and exact baseline; recovery never re-reduces a newer row. */
409
+ export declare const retainedInstallationCommandSchema: z.ZodObject<{
410
+ admission: z.ZodObject<{
411
+ requestId: z.ZodString;
412
+ installationId: z.ZodLazy<z.ZodString>;
413
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
414
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
415
+ readonly appId: import("@fungi.computer/puffball").AppId;
416
+ readonly artifact: {
417
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
418
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
419
+ readonly provenance: {
420
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
421
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
422
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
423
+ };
424
+ };
425
+ }, unknown>>;
426
+ actor: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
427
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
428
+ memberId: import("zod/mini").ZodMiniString<string>;
429
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
430
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
431
+ agentId: import("zod/mini").ZodMiniString<string>;
432
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
433
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
434
+ keyId: import("zod/mini").ZodMiniString<string>;
435
+ }, z.core.$strip>], "kind">;
436
+ intent: z.ZodEnum<{
437
+ "install-or-select": "install-or-select";
438
+ "install-or-remint": "install-or-remint";
439
+ "create-only": "create-only";
440
+ }>;
441
+ origin: z.ZodEnum<{
442
+ workflow: "workflow";
443
+ "owner-direct": "owner-direct";
444
+ }>;
445
+ }, z.core.$strict>;
446
+ scope: z.ZodObject<{
447
+ tenantId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string & import("effect/Brand").Brand<"OysterTenantId">, unknown>>;
448
+ origin: z.ZodURL;
449
+ }, z.core.$strict>;
450
+ installationId: z.ZodLazy<z.ZodString>;
451
+ instanceId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>;
452
+ generation: z.ZodString;
453
+ baseline: z.ZodNullable<z.ZodObject<{
454
+ installationId: z.ZodLazy<z.ZodString>;
455
+ instanceId: z.ZodNullable<z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>>;
456
+ appId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").AppId, unknown>>;
457
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
458
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
459
+ readonly appId: import("@fungi.computer/puffball").AppId;
460
+ readonly artifact: {
461
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
462
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
463
+ readonly provenance: {
464
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
465
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
466
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
467
+ };
468
+ };
469
+ }, unknown>>;
470
+ releasePin: z.ZodEnum<{
471
+ pinned: "pinned";
472
+ floating: "floating";
473
+ }>;
474
+ authority: z.ZodObject<{
475
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
476
+ declaredOperationsDigest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
477
+ approvedGrants: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
478
+ capability: z.ZodPipe<z.ZodUnknown, z.ZodTransform<"approvals" | "agent.list" | "agent.manage" | "agent.rename" | "agent.avatar" | "agent.toolPolicy" | "agent.read" | "agent.send" | "computer.list" | "computer.readFile" | "computer.writeFile" | "computer.execute" | "llm.generation" | "media.generation" | "games:servers" | "git.repository" | "apps.open" | "apps.call" | "app.storage" | "app.events.emit" | "team.workbenchHost" | "marketplace.browse" | "marketplace.purchase" | "workflow.run" | "workflow.publish" | "workflow.arm" | "world" | "channels.read" | "channels.personal.manage", unknown>>;
479
+ capabilityApproved: z.ZodLiteral<true>;
480
+ operations: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
481
+ resources: z.ZodUnion<readonly [z.ZodLiteral<"tenant-scope">, z.ZodReadonly<z.ZodArray<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
482
+ kind: z.ZodString;
483
+ id: z.ZodString;
484
+ }, z.core.$strict>>>>>]>;
485
+ }, z.core.$strict>>>>>;
486
+ approval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
487
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
488
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
489
+ memberId: import("zod/mini").ZodMiniString<string>;
490
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
491
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
492
+ agentId: import("zod/mini").ZodMiniString<string>;
493
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
494
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
495
+ keyId: import("zod/mini").ZodMiniString<string>;
496
+ }, z.core.$strip>], "kind">;
497
+ at: z.ZodNumber;
498
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
499
+ }, z.core.$strict>>>>;
500
+ }, z.core.$strict>;
501
+ status: z.ZodEnum<{
502
+ enabled: "enabled";
503
+ disabled: "disabled";
504
+ deleted: "deleted";
505
+ }>;
506
+ visibility: z.ZodEnum<{
507
+ private: "private";
508
+ public: "public";
509
+ }>;
510
+ approvedAnonymousMethods: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
511
+ name: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string, unknown>>;
512
+ digest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
513
+ }, z.core.$strict>>>>;
514
+ anonymousApproval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
515
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
516
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
517
+ memberId: import("zod/mini").ZodMiniString<string>;
518
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
519
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
520
+ agentId: import("zod/mini").ZodMiniString<string>;
521
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
522
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
523
+ keyId: import("zod/mini").ZodMiniString<string>;
524
+ }, z.core.$strip>], "kind">;
525
+ at: z.ZodNumber;
526
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
527
+ }, z.core.$strict>>>>;
528
+ }, z.core.$strict>>;
529
+ acceptedAt: z.ZodNumber;
530
+ creation: z.ZodEnum<{
531
+ fresh: "fresh";
532
+ replacement: "replacement";
533
+ reminted: "reminted";
534
+ }>;
535
+ plan: z.ZodNullable<z.ZodObject<{
536
+ installation: z.ZodObject<{
537
+ installationId: z.ZodLazy<z.ZodString>;
538
+ instanceId: z.ZodNullable<z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>>;
539
+ appId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").AppId, unknown>>;
540
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
541
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
542
+ readonly appId: import("@fungi.computer/puffball").AppId;
543
+ readonly artifact: {
544
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
545
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
546
+ readonly provenance: {
547
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
548
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
549
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
550
+ };
551
+ };
552
+ }, unknown>>;
553
+ releasePin: z.ZodEnum<{
554
+ pinned: "pinned";
555
+ floating: "floating";
556
+ }>;
557
+ authority: z.ZodObject<{
558
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
559
+ declaredOperationsDigest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
560
+ approvedGrants: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
561
+ capability: z.ZodPipe<z.ZodUnknown, z.ZodTransform<"approvals" | "agent.list" | "agent.manage" | "agent.rename" | "agent.avatar" | "agent.toolPolicy" | "agent.read" | "agent.send" | "computer.list" | "computer.readFile" | "computer.writeFile" | "computer.execute" | "llm.generation" | "media.generation" | "games:servers" | "git.repository" | "apps.open" | "apps.call" | "app.storage" | "app.events.emit" | "team.workbenchHost" | "marketplace.browse" | "marketplace.purchase" | "workflow.run" | "workflow.publish" | "workflow.arm" | "world" | "channels.read" | "channels.personal.manage", unknown>>;
562
+ capabilityApproved: z.ZodLiteral<true>;
563
+ operations: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
564
+ resources: z.ZodUnion<readonly [z.ZodLiteral<"tenant-scope">, z.ZodReadonly<z.ZodArray<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
565
+ kind: z.ZodString;
566
+ id: z.ZodString;
567
+ }, z.core.$strict>>>>>]>;
568
+ }, z.core.$strict>>>>>;
569
+ approval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
570
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
571
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
572
+ memberId: import("zod/mini").ZodMiniString<string>;
573
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
574
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
575
+ agentId: import("zod/mini").ZodMiniString<string>;
576
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
577
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
578
+ keyId: import("zod/mini").ZodMiniString<string>;
579
+ }, z.core.$strip>], "kind">;
580
+ at: z.ZodNumber;
581
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
582
+ }, z.core.$strict>>>>;
583
+ }, z.core.$strict>;
584
+ status: z.ZodEnum<{
585
+ enabled: "enabled";
586
+ disabled: "disabled";
587
+ deleted: "deleted";
588
+ }>;
589
+ visibility: z.ZodEnum<{
590
+ private: "private";
591
+ public: "public";
592
+ }>;
593
+ approvedAnonymousMethods: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
594
+ name: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string, unknown>>;
595
+ digest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
596
+ }, z.core.$strict>>>>;
597
+ anonymousApproval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
598
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
599
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
600
+ memberId: import("zod/mini").ZodMiniString<string>;
601
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
602
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
603
+ agentId: import("zod/mini").ZodMiniString<string>;
604
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
605
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
606
+ keyId: import("zod/mini").ZodMiniString<string>;
607
+ }, z.core.$strip>], "kind">;
608
+ at: z.ZodNumber;
609
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
610
+ }, z.core.$strict>>>>;
611
+ }, z.core.$strict>;
612
+ hasBackend: z.ZodBoolean;
613
+ prepared: z.ZodBoolean;
614
+ uiCheck: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
615
+ kind: z.ZodLiteral<"passed">;
616
+ }, z.core.$strict>, z.ZodObject<{
617
+ kind: z.ZodLiteral<"failed">;
618
+ code: z.ZodLiteral<"ui_mount_failed">;
619
+ diagnostics: z.ZodOptional<z.ZodObject<{
620
+ failedPredicate: z.ZodEnum<{
621
+ unexpected_candidate_request: "unexpected_candidate_request";
622
+ response_status: "response_status";
623
+ request_failed: "request_failed";
624
+ page_error: "page_error";
625
+ candidate_not_mounted: "candidate_not_mounted";
626
+ }>;
627
+ errorName: z.ZodOptional<z.ZodEnum<{
628
+ TypeError: "TypeError";
629
+ RangeError: "RangeError";
630
+ SyntaxError: "SyntaxError";
631
+ AbortError: "AbortError";
632
+ TimeoutError: "TimeoutError";
633
+ Other: "Other";
634
+ Error: "Error";
635
+ }>>;
636
+ finalUrlPath: z.ZodString;
637
+ consoleErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
638
+ pageErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
639
+ failedRequests: z.ZodArray<z.ZodObject<{
640
+ path: z.ZodString;
641
+ status: z.ZodOptional<z.ZodNumber>;
642
+ failureKind: z.ZodOptional<z.ZodEnum<{
643
+ unexpected_candidate_request: "unexpected_candidate_request";
644
+ response_status: "response_status";
645
+ request_failed: "request_failed";
646
+ }>>;
647
+ }, z.core.$strict>>;
648
+ droppedCount: z.ZodNumber;
649
+ }, z.core.$strict>>;
650
+ }, z.core.$strict>, z.ZodObject<{
651
+ kind: z.ZodLiteral<"not_checked">;
652
+ code: z.ZodEnum<{
653
+ boot_runner_unavailable: "boot_runner_unavailable";
654
+ boot_browser_binding_missing: "boot_browser_binding_missing";
655
+ boot_clone_unavailable: "boot_clone_unavailable";
656
+ boot_timeout: "boot_timeout";
657
+ boot_cleanup_failed: "boot_cleanup_failed";
658
+ ui_check_not_run_on_host: "ui_check_not_run_on_host";
659
+ }>;
660
+ }, z.core.$strict>], "kind">>>;
661
+ }, z.core.$strict>>;
662
+ operation: z.ZodObject<{
663
+ state: z.ZodLiteral<"pending">;
664
+ requestId: z.ZodString;
665
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
666
+ installationId: z.ZodLazy<z.ZodString>;
667
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
668
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
669
+ readonly appId: import("@fungi.computer/puffball").AppId;
670
+ readonly artifact: {
671
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
672
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
673
+ readonly provenance: {
674
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
675
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
676
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
677
+ };
678
+ };
679
+ }, unknown>>;
680
+ }, z.core.$strict>;
681
+ }, z.core.$strict>;
682
+ export type RetainedInstallationCommand = z.output<typeof retainedInstallationCommandSchema>;
683
+ /** Host-side port; RPC transport and tenant context belong to the adapter. */
684
+ export type InstallationOperations = Readonly<{
685
+ /** Accept one command, or replay the retained operation for its request id. */
686
+ admit(input: InstallationAdmission): Promise<InstallationOperation>;
687
+ /** The operation's current state, when it names this installation. */
688
+ read(requestId: string, installationId: string): Promise<InstallationOperation | null>;
689
+ /** Only pending recovery is executable; terminal history returns null. */
690
+ load(requestId: string): Promise<RetainedInstallationCommand | null>;
691
+ /** Record the executor's one reduced installation for this command. */
692
+ plan(requestId: string, installation: Installation, hasBackend: boolean): Promise<RetainedInstallationCommand>;
693
+ /** Commit the planned installation against its exact baseline. */
694
+ commit(requestId: string, uiCheck: UiBootCheckOutcome | null): Promise<InstallationCommit>;
695
+ }>;
696
+ declare const installationOperationRequestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
697
+ action: z.ZodLiteral<"admit">;
698
+ scope: z.ZodObject<{
699
+ tenantId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string & import("effect/Brand").Brand<"OysterTenantId">, unknown>>;
700
+ origin: z.ZodURL;
701
+ }, z.core.$strict>;
702
+ input: z.ZodObject<{
703
+ requestId: z.ZodString;
704
+ installationId: z.ZodLazy<z.ZodString>;
705
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
706
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
707
+ readonly appId: import("@fungi.computer/puffball").AppId;
708
+ readonly artifact: {
709
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
710
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
711
+ readonly provenance: {
712
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
713
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
714
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
715
+ };
716
+ };
717
+ }, unknown>>;
718
+ actor: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
719
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
720
+ memberId: import("zod/mini").ZodMiniString<string>;
721
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
722
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
723
+ agentId: import("zod/mini").ZodMiniString<string>;
724
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
725
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
726
+ keyId: import("zod/mini").ZodMiniString<string>;
727
+ }, z.core.$strip>], "kind">;
728
+ intent: z.ZodEnum<{
729
+ "install-or-select": "install-or-select";
730
+ "install-or-remint": "install-or-remint";
731
+ "create-only": "create-only";
732
+ }>;
733
+ origin: z.ZodEnum<{
734
+ workflow: "workflow";
735
+ "owner-direct": "owner-direct";
736
+ }>;
737
+ }, z.core.$strict>;
738
+ }, z.core.$strict>, z.ZodObject<{
739
+ action: z.ZodLiteral<"read">;
740
+ scope: z.ZodObject<{
741
+ tenantId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string & import("effect/Brand").Brand<"OysterTenantId">, unknown>>;
742
+ origin: z.ZodURL;
743
+ }, z.core.$strict>;
744
+ requestId: z.ZodString;
745
+ installationId: z.ZodLazy<z.ZodString>;
746
+ }, z.core.$strict>, z.ZodObject<{
747
+ action: z.ZodLiteral<"load">;
748
+ scope: z.ZodObject<{
749
+ tenantId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string & import("effect/Brand").Brand<"OysterTenantId">, unknown>>;
750
+ origin: z.ZodURL;
751
+ }, z.core.$strict>;
752
+ requestId: z.ZodString;
753
+ }, z.core.$strict>, z.ZodObject<{
754
+ action: z.ZodLiteral<"plan">;
755
+ scope: z.ZodObject<{
756
+ tenantId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string & import("effect/Brand").Brand<"OysterTenantId">, unknown>>;
757
+ origin: z.ZodURL;
758
+ }, z.core.$strict>;
759
+ requestId: z.ZodString;
760
+ installation: z.ZodObject<{
761
+ installationId: z.ZodLazy<z.ZodString>;
762
+ instanceId: z.ZodNullable<z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>>;
763
+ appId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").AppId, unknown>>;
764
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
765
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
766
+ readonly appId: import("@fungi.computer/puffball").AppId;
767
+ readonly artifact: {
768
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
769
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
770
+ readonly provenance: {
771
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
772
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
773
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
774
+ };
775
+ };
776
+ }, unknown>>;
777
+ releasePin: z.ZodEnum<{
778
+ pinned: "pinned";
779
+ floating: "floating";
780
+ }>;
781
+ authority: z.ZodObject<{
782
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
783
+ declaredOperationsDigest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
784
+ approvedGrants: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
785
+ capability: z.ZodPipe<z.ZodUnknown, z.ZodTransform<"approvals" | "agent.list" | "agent.manage" | "agent.rename" | "agent.avatar" | "agent.toolPolicy" | "agent.read" | "agent.send" | "computer.list" | "computer.readFile" | "computer.writeFile" | "computer.execute" | "llm.generation" | "media.generation" | "games:servers" | "git.repository" | "apps.open" | "apps.call" | "app.storage" | "app.events.emit" | "team.workbenchHost" | "marketplace.browse" | "marketplace.purchase" | "workflow.run" | "workflow.publish" | "workflow.arm" | "world" | "channels.read" | "channels.personal.manage", unknown>>;
786
+ capabilityApproved: z.ZodLiteral<true>;
787
+ operations: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
788
+ resources: z.ZodUnion<readonly [z.ZodLiteral<"tenant-scope">, z.ZodReadonly<z.ZodArray<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
789
+ kind: z.ZodString;
790
+ id: z.ZodString;
791
+ }, z.core.$strict>>>>>]>;
792
+ }, z.core.$strict>>>>>;
793
+ approval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
794
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
795
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
796
+ memberId: import("zod/mini").ZodMiniString<string>;
797
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
798
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
799
+ agentId: import("zod/mini").ZodMiniString<string>;
800
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
801
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
802
+ keyId: import("zod/mini").ZodMiniString<string>;
803
+ }, z.core.$strip>], "kind">;
804
+ at: z.ZodNumber;
805
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
806
+ }, z.core.$strict>>>>;
807
+ }, z.core.$strict>;
808
+ status: z.ZodEnum<{
809
+ enabled: "enabled";
810
+ disabled: "disabled";
811
+ deleted: "deleted";
812
+ }>;
813
+ visibility: z.ZodEnum<{
814
+ private: "private";
815
+ public: "public";
816
+ }>;
817
+ approvedAnonymousMethods: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
818
+ name: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string, unknown>>;
819
+ digest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
820
+ }, z.core.$strict>>>>;
821
+ anonymousApproval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
822
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
823
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
824
+ memberId: import("zod/mini").ZodMiniString<string>;
825
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
826
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
827
+ agentId: import("zod/mini").ZodMiniString<string>;
828
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
829
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
830
+ keyId: import("zod/mini").ZodMiniString<string>;
831
+ }, z.core.$strip>], "kind">;
832
+ at: z.ZodNumber;
833
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
834
+ }, z.core.$strict>>>>;
835
+ }, z.core.$strict>;
836
+ hasBackend: z.ZodBoolean;
837
+ }, z.core.$strict>, z.ZodObject<{
838
+ action: z.ZodLiteral<"commit">;
839
+ scope: z.ZodObject<{
840
+ tenantId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string & import("effect/Brand").Brand<"OysterTenantId">, unknown>>;
841
+ origin: z.ZodURL;
842
+ }, z.core.$strict>;
843
+ requestId: z.ZodString;
844
+ uiCheck: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
845
+ kind: z.ZodLiteral<"passed">;
846
+ }, z.core.$strict>, z.ZodObject<{
847
+ kind: z.ZodLiteral<"failed">;
848
+ code: z.ZodLiteral<"ui_mount_failed">;
849
+ diagnostics: z.ZodOptional<z.ZodObject<{
850
+ failedPredicate: z.ZodEnum<{
851
+ unexpected_candidate_request: "unexpected_candidate_request";
852
+ response_status: "response_status";
853
+ request_failed: "request_failed";
854
+ page_error: "page_error";
855
+ candidate_not_mounted: "candidate_not_mounted";
856
+ }>;
857
+ errorName: z.ZodOptional<z.ZodEnum<{
858
+ TypeError: "TypeError";
859
+ RangeError: "RangeError";
860
+ SyntaxError: "SyntaxError";
861
+ AbortError: "AbortError";
862
+ TimeoutError: "TimeoutError";
863
+ Other: "Other";
864
+ Error: "Error";
865
+ }>>;
866
+ finalUrlPath: z.ZodString;
867
+ consoleErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
868
+ pageErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
869
+ failedRequests: z.ZodArray<z.ZodObject<{
870
+ path: z.ZodString;
871
+ status: z.ZodOptional<z.ZodNumber>;
872
+ failureKind: z.ZodOptional<z.ZodEnum<{
873
+ unexpected_candidate_request: "unexpected_candidate_request";
874
+ response_status: "response_status";
875
+ request_failed: "request_failed";
876
+ }>>;
877
+ }, z.core.$strict>>;
878
+ droppedCount: z.ZodNumber;
879
+ }, z.core.$strict>>;
880
+ }, z.core.$strict>, z.ZodObject<{
881
+ kind: z.ZodLiteral<"not_checked">;
882
+ code: z.ZodEnum<{
883
+ boot_runner_unavailable: "boot_runner_unavailable";
884
+ boot_browser_binding_missing: "boot_browser_binding_missing";
885
+ boot_clone_unavailable: "boot_clone_unavailable";
886
+ boot_timeout: "boot_timeout";
887
+ boot_cleanup_failed: "boot_cleanup_failed";
888
+ ui_check_not_run_on_host: "ui_check_not_run_on_host";
889
+ }>;
890
+ }, z.core.$strict>], "kind">>;
891
+ }, z.core.$strict>], "action">;
892
+ export type InstallationOperationRequest = z.output<typeof installationOperationRequestSchema>;
893
+ declare const installationOperationReplySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
894
+ kind: z.ZodLiteral<"refused">;
895
+ code: z.ZodEnum<{
896
+ unavailable: "unavailable";
897
+ stale_authority: "stale_authority";
898
+ request_conflict: "request_conflict";
899
+ needs_consent: "needs_consent";
900
+ stored_operation_invalid: "stored_operation_invalid";
901
+ }>;
902
+ }, z.core.$strict>, z.ZodObject<{
903
+ kind: z.ZodLiteral<"operation">;
904
+ operation: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
905
+ state: z.ZodLiteral<"pending">;
906
+ requestId: z.ZodString;
907
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
908
+ installationId: z.ZodLazy<z.ZodString>;
909
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
910
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
911
+ readonly appId: import("@fungi.computer/puffball").AppId;
912
+ readonly artifact: {
913
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
914
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
915
+ readonly provenance: {
916
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
917
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
918
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
919
+ };
920
+ };
921
+ }, unknown>>;
922
+ }, z.core.$strict>, z.ZodObject<{
923
+ state: z.ZodLiteral<"succeeded">;
924
+ reference: z.ZodObject<{
925
+ generation: z.ZodString;
926
+ instanceId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>;
927
+ authorityVersion: z.ZodNumber;
928
+ status: z.ZodEnum<{
929
+ enabled: "enabled";
930
+ disabled: "disabled";
931
+ deleted: "deleted";
932
+ }>;
933
+ }, z.core.$strict>;
934
+ creation: z.ZodEnum<{
935
+ fresh: "fresh";
936
+ replacement: "replacement";
937
+ reminted: "reminted";
938
+ }>;
939
+ uiCheck: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
940
+ kind: z.ZodLiteral<"passed">;
941
+ }, z.core.$strict>, z.ZodObject<{
942
+ kind: z.ZodLiteral<"failed">;
943
+ code: z.ZodLiteral<"ui_mount_failed">;
944
+ diagnostics: z.ZodOptional<z.ZodObject<{
945
+ failedPredicate: z.ZodEnum<{
946
+ unexpected_candidate_request: "unexpected_candidate_request";
947
+ response_status: "response_status";
948
+ request_failed: "request_failed";
949
+ page_error: "page_error";
950
+ candidate_not_mounted: "candidate_not_mounted";
951
+ }>;
952
+ errorName: z.ZodOptional<z.ZodEnum<{
953
+ TypeError: "TypeError";
954
+ RangeError: "RangeError";
955
+ SyntaxError: "SyntaxError";
956
+ AbortError: "AbortError";
957
+ TimeoutError: "TimeoutError";
958
+ Other: "Other";
959
+ Error: "Error";
960
+ }>>;
961
+ finalUrlPath: z.ZodString;
962
+ consoleErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
963
+ pageErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
964
+ failedRequests: z.ZodArray<z.ZodObject<{
965
+ path: z.ZodString;
966
+ status: z.ZodOptional<z.ZodNumber>;
967
+ failureKind: z.ZodOptional<z.ZodEnum<{
968
+ unexpected_candidate_request: "unexpected_candidate_request";
969
+ response_status: "response_status";
970
+ request_failed: "request_failed";
971
+ }>>;
972
+ }, z.core.$strict>>;
973
+ droppedCount: z.ZodNumber;
974
+ }, z.core.$strict>>;
975
+ }, z.core.$strict>, z.ZodObject<{
976
+ kind: z.ZodLiteral<"not_checked">;
977
+ code: z.ZodEnum<{
978
+ boot_runner_unavailable: "boot_runner_unavailable";
979
+ boot_browser_binding_missing: "boot_browser_binding_missing";
980
+ boot_clone_unavailable: "boot_clone_unavailable";
981
+ boot_timeout: "boot_timeout";
982
+ boot_cleanup_failed: "boot_cleanup_failed";
983
+ ui_check_not_run_on_host: "ui_check_not_run_on_host";
984
+ }>;
985
+ }, z.core.$strict>], "kind">>;
986
+ requestId: z.ZodString;
987
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
988
+ installationId: z.ZodLazy<z.ZodString>;
989
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
990
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
991
+ readonly appId: import("@fungi.computer/puffball").AppId;
992
+ readonly artifact: {
993
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
994
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
995
+ readonly provenance: {
996
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
997
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
998
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
999
+ };
1000
+ };
1001
+ }, unknown>>;
1002
+ installation: z.ZodNullable<z.ZodObject<{
1003
+ installationId: z.ZodLazy<z.ZodString>;
1004
+ instanceId: z.ZodNullable<z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>>;
1005
+ appId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").AppId, unknown>>;
1006
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
1007
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
1008
+ readonly appId: import("@fungi.computer/puffball").AppId;
1009
+ readonly artifact: {
1010
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
1011
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
1012
+ readonly provenance: {
1013
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
1014
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
1015
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
1016
+ };
1017
+ };
1018
+ }, unknown>>;
1019
+ releasePin: z.ZodEnum<{
1020
+ pinned: "pinned";
1021
+ floating: "floating";
1022
+ }>;
1023
+ authority: z.ZodObject<{
1024
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
1025
+ declaredOperationsDigest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
1026
+ approvedGrants: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1027
+ capability: z.ZodPipe<z.ZodUnknown, z.ZodTransform<"approvals" | "agent.list" | "agent.manage" | "agent.rename" | "agent.avatar" | "agent.toolPolicy" | "agent.read" | "agent.send" | "computer.list" | "computer.readFile" | "computer.writeFile" | "computer.execute" | "llm.generation" | "media.generation" | "games:servers" | "git.repository" | "apps.open" | "apps.call" | "app.storage" | "app.events.emit" | "team.workbenchHost" | "marketplace.browse" | "marketplace.purchase" | "workflow.run" | "workflow.publish" | "workflow.arm" | "world" | "channels.read" | "channels.personal.manage", unknown>>;
1028
+ capabilityApproved: z.ZodLiteral<true>;
1029
+ operations: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1030
+ resources: z.ZodUnion<readonly [z.ZodLiteral<"tenant-scope">, z.ZodReadonly<z.ZodArray<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
1031
+ kind: z.ZodString;
1032
+ id: z.ZodString;
1033
+ }, z.core.$strict>>>>>]>;
1034
+ }, z.core.$strict>>>>>;
1035
+ approval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
1036
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
1037
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
1038
+ memberId: import("zod/mini").ZodMiniString<string>;
1039
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1040
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
1041
+ agentId: import("zod/mini").ZodMiniString<string>;
1042
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1043
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
1044
+ keyId: import("zod/mini").ZodMiniString<string>;
1045
+ }, z.core.$strip>], "kind">;
1046
+ at: z.ZodNumber;
1047
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
1048
+ }, z.core.$strict>>>>;
1049
+ }, z.core.$strict>;
1050
+ status: z.ZodEnum<{
1051
+ enabled: "enabled";
1052
+ disabled: "disabled";
1053
+ deleted: "deleted";
1054
+ }>;
1055
+ visibility: z.ZodEnum<{
1056
+ private: "private";
1057
+ public: "public";
1058
+ }>;
1059
+ approvedAnonymousMethods: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1060
+ name: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string, unknown>>;
1061
+ digest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
1062
+ }, z.core.$strict>>>>;
1063
+ anonymousApproval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
1064
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
1065
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
1066
+ memberId: import("zod/mini").ZodMiniString<string>;
1067
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1068
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
1069
+ agentId: import("zod/mini").ZodMiniString<string>;
1070
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1071
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
1072
+ keyId: import("zod/mini").ZodMiniString<string>;
1073
+ }, z.core.$strip>], "kind">;
1074
+ at: z.ZodNumber;
1075
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
1076
+ }, z.core.$strict>>>>;
1077
+ }, z.core.$strict>>;
1078
+ }, z.core.$strict>, z.ZodObject<{
1079
+ state: z.ZodLiteral<"refused">;
1080
+ status: z.ZodNumber;
1081
+ code: z.ZodString;
1082
+ requestId: z.ZodString;
1083
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
1084
+ installationId: z.ZodLazy<z.ZodString>;
1085
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
1086
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
1087
+ readonly appId: import("@fungi.computer/puffball").AppId;
1088
+ readonly artifact: {
1089
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
1090
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
1091
+ readonly provenance: {
1092
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
1093
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
1094
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
1095
+ };
1096
+ };
1097
+ }, unknown>>;
1098
+ }, z.core.$strict>, z.ZodObject<{
1099
+ state: z.ZodLiteral<"unconfirmed">;
1100
+ outcome: z.ZodEnum<{
1101
+ cancelled: "cancelled";
1102
+ outcome_unknown: "outcome_unknown";
1103
+ interrupted: "interrupted";
1104
+ }>;
1105
+ requestId: z.ZodString;
1106
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
1107
+ installationId: z.ZodLazy<z.ZodString>;
1108
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
1109
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
1110
+ readonly appId: import("@fungi.computer/puffball").AppId;
1111
+ readonly artifact: {
1112
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
1113
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
1114
+ readonly provenance: {
1115
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
1116
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
1117
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
1118
+ };
1119
+ };
1120
+ }, unknown>>;
1121
+ }, z.core.$strict>], "state">>;
1122
+ }, z.core.$strict>, z.ZodObject<{
1123
+ kind: z.ZodLiteral<"command">;
1124
+ command: z.ZodNullable<z.ZodObject<{
1125
+ admission: z.ZodObject<{
1126
+ requestId: z.ZodString;
1127
+ installationId: z.ZodLazy<z.ZodString>;
1128
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
1129
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
1130
+ readonly appId: import("@fungi.computer/puffball").AppId;
1131
+ readonly artifact: {
1132
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
1133
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
1134
+ readonly provenance: {
1135
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
1136
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
1137
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
1138
+ };
1139
+ };
1140
+ }, unknown>>;
1141
+ actor: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
1142
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
1143
+ memberId: import("zod/mini").ZodMiniString<string>;
1144
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1145
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
1146
+ agentId: import("zod/mini").ZodMiniString<string>;
1147
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1148
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
1149
+ keyId: import("zod/mini").ZodMiniString<string>;
1150
+ }, z.core.$strip>], "kind">;
1151
+ intent: z.ZodEnum<{
1152
+ "install-or-select": "install-or-select";
1153
+ "install-or-remint": "install-or-remint";
1154
+ "create-only": "create-only";
1155
+ }>;
1156
+ origin: z.ZodEnum<{
1157
+ workflow: "workflow";
1158
+ "owner-direct": "owner-direct";
1159
+ }>;
1160
+ }, z.core.$strict>;
1161
+ scope: z.ZodObject<{
1162
+ tenantId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string & import("effect/Brand").Brand<"OysterTenantId">, unknown>>;
1163
+ origin: z.ZodURL;
1164
+ }, z.core.$strict>;
1165
+ installationId: z.ZodLazy<z.ZodString>;
1166
+ instanceId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>;
1167
+ generation: z.ZodString;
1168
+ baseline: z.ZodNullable<z.ZodObject<{
1169
+ installationId: z.ZodLazy<z.ZodString>;
1170
+ instanceId: z.ZodNullable<z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>>;
1171
+ appId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").AppId, unknown>>;
1172
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
1173
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
1174
+ readonly appId: import("@fungi.computer/puffball").AppId;
1175
+ readonly artifact: {
1176
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
1177
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
1178
+ readonly provenance: {
1179
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
1180
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
1181
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
1182
+ };
1183
+ };
1184
+ }, unknown>>;
1185
+ releasePin: z.ZodEnum<{
1186
+ pinned: "pinned";
1187
+ floating: "floating";
1188
+ }>;
1189
+ authority: z.ZodObject<{
1190
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
1191
+ declaredOperationsDigest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
1192
+ approvedGrants: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1193
+ capability: z.ZodPipe<z.ZodUnknown, z.ZodTransform<"approvals" | "agent.list" | "agent.manage" | "agent.rename" | "agent.avatar" | "agent.toolPolicy" | "agent.read" | "agent.send" | "computer.list" | "computer.readFile" | "computer.writeFile" | "computer.execute" | "llm.generation" | "media.generation" | "games:servers" | "git.repository" | "apps.open" | "apps.call" | "app.storage" | "app.events.emit" | "team.workbenchHost" | "marketplace.browse" | "marketplace.purchase" | "workflow.run" | "workflow.publish" | "workflow.arm" | "world" | "channels.read" | "channels.personal.manage", unknown>>;
1194
+ capabilityApproved: z.ZodLiteral<true>;
1195
+ operations: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1196
+ resources: z.ZodUnion<readonly [z.ZodLiteral<"tenant-scope">, z.ZodReadonly<z.ZodArray<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
1197
+ kind: z.ZodString;
1198
+ id: z.ZodString;
1199
+ }, z.core.$strict>>>>>]>;
1200
+ }, z.core.$strict>>>>>;
1201
+ approval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
1202
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
1203
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
1204
+ memberId: import("zod/mini").ZodMiniString<string>;
1205
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1206
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
1207
+ agentId: import("zod/mini").ZodMiniString<string>;
1208
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1209
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
1210
+ keyId: import("zod/mini").ZodMiniString<string>;
1211
+ }, z.core.$strip>], "kind">;
1212
+ at: z.ZodNumber;
1213
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
1214
+ }, z.core.$strict>>>>;
1215
+ }, z.core.$strict>;
1216
+ status: z.ZodEnum<{
1217
+ enabled: "enabled";
1218
+ disabled: "disabled";
1219
+ deleted: "deleted";
1220
+ }>;
1221
+ visibility: z.ZodEnum<{
1222
+ private: "private";
1223
+ public: "public";
1224
+ }>;
1225
+ approvedAnonymousMethods: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1226
+ name: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string, unknown>>;
1227
+ digest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
1228
+ }, z.core.$strict>>>>;
1229
+ anonymousApproval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
1230
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
1231
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
1232
+ memberId: import("zod/mini").ZodMiniString<string>;
1233
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1234
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
1235
+ agentId: import("zod/mini").ZodMiniString<string>;
1236
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1237
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
1238
+ keyId: import("zod/mini").ZodMiniString<string>;
1239
+ }, z.core.$strip>], "kind">;
1240
+ at: z.ZodNumber;
1241
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
1242
+ }, z.core.$strict>>>>;
1243
+ }, z.core.$strict>>;
1244
+ acceptedAt: z.ZodNumber;
1245
+ creation: z.ZodEnum<{
1246
+ fresh: "fresh";
1247
+ replacement: "replacement";
1248
+ reminted: "reminted";
1249
+ }>;
1250
+ plan: z.ZodNullable<z.ZodObject<{
1251
+ installation: z.ZodObject<{
1252
+ installationId: z.ZodLazy<z.ZodString>;
1253
+ instanceId: z.ZodNullable<z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("./instance-id.js").InstanceId, unknown>>>;
1254
+ appId: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").AppId, unknown>>;
1255
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
1256
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
1257
+ readonly appId: import("@fungi.computer/puffball").AppId;
1258
+ readonly artifact: {
1259
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
1260
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
1261
+ readonly provenance: {
1262
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
1263
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
1264
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
1265
+ };
1266
+ };
1267
+ }, unknown>>;
1268
+ releasePin: z.ZodEnum<{
1269
+ pinned: "pinned";
1270
+ floating: "floating";
1271
+ }>;
1272
+ authority: z.ZodObject<{
1273
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
1274
+ declaredOperationsDigest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
1275
+ approvedGrants: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1276
+ capability: z.ZodPipe<z.ZodUnknown, z.ZodTransform<"approvals" | "agent.list" | "agent.manage" | "agent.rename" | "agent.avatar" | "agent.toolPolicy" | "agent.read" | "agent.send" | "computer.list" | "computer.readFile" | "computer.writeFile" | "computer.execute" | "llm.generation" | "media.generation" | "games:servers" | "git.repository" | "apps.open" | "apps.call" | "app.storage" | "app.events.emit" | "team.workbenchHost" | "marketplace.browse" | "marketplace.purchase" | "workflow.run" | "workflow.publish" | "workflow.arm" | "world" | "channels.read" | "channels.personal.manage", unknown>>;
1277
+ capabilityApproved: z.ZodLiteral<true>;
1278
+ operations: z.ZodLazy<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1279
+ resources: z.ZodUnion<readonly [z.ZodLiteral<"tenant-scope">, z.ZodReadonly<z.ZodArray<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
1280
+ kind: z.ZodString;
1281
+ id: z.ZodString;
1282
+ }, z.core.$strict>>>>>]>;
1283
+ }, z.core.$strict>>>>>;
1284
+ approval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
1285
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
1286
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
1287
+ memberId: import("zod/mini").ZodMiniString<string>;
1288
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1289
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
1290
+ agentId: import("zod/mini").ZodMiniString<string>;
1291
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1292
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
1293
+ keyId: import("zod/mini").ZodMiniString<string>;
1294
+ }, z.core.$strip>], "kind">;
1295
+ at: z.ZodNumber;
1296
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
1297
+ }, z.core.$strict>>>>;
1298
+ }, z.core.$strict>;
1299
+ status: z.ZodEnum<{
1300
+ enabled: "enabled";
1301
+ disabled: "disabled";
1302
+ deleted: "deleted";
1303
+ }>;
1304
+ visibility: z.ZodEnum<{
1305
+ private: "private";
1306
+ public: "public";
1307
+ }>;
1308
+ approvedAnonymousMethods: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1309
+ name: z.ZodPipe<z.ZodUnknown, z.ZodTransform<string, unknown>>;
1310
+ digest: z.ZodPipe<z.ZodUnknown, z.ZodTransform<import("@fungi.computer/puffball").Sha256Digest, unknown>>;
1311
+ }, z.core.$strict>>>>;
1312
+ anonymousApproval: z.ZodNullable<z.ZodLazy<z.ZodReadonly<z.ZodObject<{
1313
+ by: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
1314
+ kind: import("zod/mini").ZodMiniLiteral<"member">;
1315
+ memberId: import("zod/mini").ZodMiniString<string>;
1316
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1317
+ kind: import("zod/mini").ZodMiniLiteral<"agent">;
1318
+ agentId: import("zod/mini").ZodMiniString<string>;
1319
+ }, z.core.$strip>, import("zod/mini").ZodMiniObject<{
1320
+ kind: import("zod/mini").ZodMiniLiteral<"team-key">;
1321
+ keyId: import("zod/mini").ZodMiniString<string>;
1322
+ }, z.core.$strip>], "kind">;
1323
+ at: z.ZodNumber;
1324
+ authorityVersion: z.ZodLazy<z.ZodNumber>;
1325
+ }, z.core.$strict>>>>;
1326
+ }, z.core.$strict>;
1327
+ hasBackend: z.ZodBoolean;
1328
+ prepared: z.ZodBoolean;
1329
+ uiCheck: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
1330
+ kind: z.ZodLiteral<"passed">;
1331
+ }, z.core.$strict>, z.ZodObject<{
1332
+ kind: z.ZodLiteral<"failed">;
1333
+ code: z.ZodLiteral<"ui_mount_failed">;
1334
+ diagnostics: z.ZodOptional<z.ZodObject<{
1335
+ failedPredicate: z.ZodEnum<{
1336
+ unexpected_candidate_request: "unexpected_candidate_request";
1337
+ response_status: "response_status";
1338
+ request_failed: "request_failed";
1339
+ page_error: "page_error";
1340
+ candidate_not_mounted: "candidate_not_mounted";
1341
+ }>;
1342
+ errorName: z.ZodOptional<z.ZodEnum<{
1343
+ TypeError: "TypeError";
1344
+ RangeError: "RangeError";
1345
+ SyntaxError: "SyntaxError";
1346
+ AbortError: "AbortError";
1347
+ TimeoutError: "TimeoutError";
1348
+ Other: "Other";
1349
+ Error: "Error";
1350
+ }>>;
1351
+ finalUrlPath: z.ZodString;
1352
+ consoleErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
1353
+ pageErrors: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
1354
+ failedRequests: z.ZodArray<z.ZodObject<{
1355
+ path: z.ZodString;
1356
+ status: z.ZodOptional<z.ZodNumber>;
1357
+ failureKind: z.ZodOptional<z.ZodEnum<{
1358
+ unexpected_candidate_request: "unexpected_candidate_request";
1359
+ response_status: "response_status";
1360
+ request_failed: "request_failed";
1361
+ }>>;
1362
+ }, z.core.$strict>>;
1363
+ droppedCount: z.ZodNumber;
1364
+ }, z.core.$strict>>;
1365
+ }, z.core.$strict>, z.ZodObject<{
1366
+ kind: z.ZodLiteral<"not_checked">;
1367
+ code: z.ZodEnum<{
1368
+ boot_runner_unavailable: "boot_runner_unavailable";
1369
+ boot_browser_binding_missing: "boot_browser_binding_missing";
1370
+ boot_clone_unavailable: "boot_clone_unavailable";
1371
+ boot_timeout: "boot_timeout";
1372
+ boot_cleanup_failed: "boot_cleanup_failed";
1373
+ ui_check_not_run_on_host: "ui_check_not_run_on_host";
1374
+ }>;
1375
+ }, z.core.$strict>], "kind">>>;
1376
+ }, z.core.$strict>>;
1377
+ operation: z.ZodObject<{
1378
+ state: z.ZodLiteral<"pending">;
1379
+ requestId: z.ZodString;
1380
+ requestedInstallationId: z.ZodLazy<z.ZodString>;
1381
+ installationId: z.ZodLazy<z.ZodString>;
1382
+ release: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
1383
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
1384
+ readonly appId: import("@fungi.computer/puffball").AppId;
1385
+ readonly artifact: {
1386
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
1387
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
1388
+ readonly provenance: {
1389
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
1390
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
1391
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
1392
+ };
1393
+ };
1394
+ }, unknown>>;
1395
+ }, z.core.$strict>;
1396
+ }, z.core.$strict>>;
1397
+ }, z.core.$strict>, z.ZodObject<{
1398
+ kind: z.ZodLiteral<"commit">;
1399
+ commit: z.ZodDiscriminatedUnion<[z.ZodObject<{
1400
+ ok: z.ZodLiteral<true>;
1401
+ }, z.core.$strict>, z.ZodObject<{
1402
+ ok: z.ZodLiteral<false>;
1403
+ code: z.ZodLiteral<"stale_authority">;
1404
+ }, z.core.$strict>], "ok">;
1405
+ }, z.core.$strict>], "kind">;
1406
+ export type InstallationOperationReply = z.output<typeof installationOperationReplySchema>;
1407
+ export declare class InstallationOperationError extends Error {
1408
+ readonly code: Extract<InstallationOperationReply, {
1409
+ kind: "refused";
1410
+ }>["code"];
1411
+ constructor(code: Extract<InstallationOperationReply, {
1412
+ kind: "refused";
1413
+ }>["code"]);
1414
+ }
1415
+ /** Decode ordinary RPC replies and rehydrate only the owner's closed refusal. */
1416
+ export declare function installationOperationsPort(send: (request: InstallationOperationRequest) => Promise<InstallationOperationReply>, scope: RetainedInstallationCommand["scope"]): InstallationOperations;
1417
+ export declare const installationCommandIds: Readonly<{
1418
+ readonly installation: import("@fungi.computer/cairn").IdCodec<"app-installation", "installation", 1>;
1419
+ readonly request: import("@fungi.computer/cairn").IdCodec<"app-installation", "request", 1>;
1420
+ }>;
1421
+ /**
1422
+ * One registry-owned command journal joined to maintained Watchdog transactions.
1423
+ * The executor runs outside this owner. No release bytes or guest work enter it.
1424
+ */
1425
+ export declare function createInstallationOperations(ports: Readonly<{
1426
+ owner: WatchdogSqliteOwner;
1427
+ registryName: string;
1428
+ generation(): string;
1429
+ get(installationId: string): Installation | null;
1430
+ compareAndPut(installation: Installation, expectedVersion: number, generation: string, scope: RetainedInstallationCommand["scope"]): Promise<InstallationCommit>;
1431
+ execute(command: RetainedInstallationCommand): Promise<InstallationOutcome>;
1432
+ scheduleWake(at: number): Promise<void>;
1433
+ }>): Promise<{
1434
+ dispatch(raw: InstallationOperationRequest): Promise<InstallationOperationReply>;
1435
+ tick(): Promise<import("@fungi.computer/watchdog").WatchdogTickResult>;
1436
+ }>;
1437
+ export {};