@fungi.computer/oyster 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1082 -2
  3. package/dist/agents.d.ts +114 -0
  4. package/dist/agents.js +322 -0
  5. package/dist/app-builds.d.ts +151 -0
  6. package/dist/app-builds.js +355 -0
  7. package/dist/app-sandbox.d.ts +2 -0
  8. package/dist/app-sandbox.js +2 -0
  9. package/dist/app-sources.d.ts +46 -0
  10. package/dist/app-sources.js +335 -0
  11. package/dist/app-storage.d.ts +141 -0
  12. package/dist/app-storage.js +281 -0
  13. package/dist/apps/gate.d.ts +105 -0
  14. package/dist/apps/gate.js +273 -0
  15. package/dist/apps/index.d.ts +5 -0
  16. package/dist/apps/index.js +5 -0
  17. package/dist/apps/installation.d.ts +248 -0
  18. package/dist/apps/installation.js +307 -0
  19. package/dist/apps/operations.d.ts +8 -0
  20. package/dist/apps/operations.js +98 -0
  21. package/dist/apps/tools.d.ts +33 -0
  22. package/dist/apps/tools.js +17 -0
  23. package/dist/auth.d.ts +11 -0
  24. package/dist/auth.js +93 -0
  25. package/dist/backend-request.d.ts +3 -0
  26. package/dist/backend-request.js +53 -0
  27. package/dist/build/build-jobs.d.ts +128 -0
  28. package/dist/build/build-jobs.js +197 -0
  29. package/dist/build/build-step.d.ts +26 -0
  30. package/dist/build/build-step.js +20 -0
  31. package/dist/build/bundled-html.d.ts +7 -0
  32. package/dist/build/bundled-html.js +64 -0
  33. package/dist/build/definition-emission.d.ts +34 -0
  34. package/dist/build/definition-emission.js +201 -0
  35. package/dist/build/effect.d.ts +231 -0
  36. package/dist/build/effect.js +396 -0
  37. package/dist/build/git-environment.d.ts +6 -0
  38. package/dist/build/git-environment.js +48 -0
  39. package/dist/build/html-recipe.d.ts +20 -0
  40. package/dist/build/html-recipe.js +51 -0
  41. package/dist/build/local-build.d.ts +57 -0
  42. package/dist/build/local-build.js +1078 -0
  43. package/dist/build/r2-artifact-writer.d.ts +31 -0
  44. package/dist/build/r2-artifact-writer.js +179 -0
  45. package/dist/build/snapshot-package-store.d.ts +2 -0
  46. package/dist/build/snapshot-package-store.js +21 -0
  47. package/dist/build/snapshot-program-scripts.d.ts +6 -0
  48. package/dist/build/snapshot-program-scripts.js +2 -0
  49. package/dist/build/submission-contract.d.ts +384 -0
  50. package/dist/build/submission-contract.js +70 -0
  51. package/dist/build/workspace-build.d.ts +50 -0
  52. package/dist/build/workspace-build.js +156 -0
  53. package/dist/build-contract.d.ts +4 -0
  54. package/dist/build-contract.js +4 -0
  55. package/dist/build-jobs.d.ts +2 -0
  56. package/dist/build-jobs.js +2 -0
  57. package/dist/build.d.ts +11 -0
  58. package/dist/build.js +13 -0
  59. package/dist/capability-descriptor.d.ts +46 -0
  60. package/dist/capability-descriptor.js +51 -0
  61. package/dist/catalog-frame.d.ts +39 -0
  62. package/dist/catalog-frame.js +72 -0
  63. package/dist/cause-class.d.ts +19 -0
  64. package/dist/cause-class.js +54 -0
  65. package/dist/cloudflare.d.ts +123 -0
  66. package/dist/cloudflare.js +391 -0
  67. package/dist/computer-terminal.d.ts +38 -0
  68. package/dist/computer-terminal.js +410 -0
  69. package/dist/computer.d.ts +60 -0
  70. package/dist/computer.js +33 -0
  71. package/dist/event-recipients.d.ts +57 -0
  72. package/dist/event-recipients.js +144 -0
  73. package/dist/facet-invocation.d.ts +4 -0
  74. package/dist/facet-invocation.js +45 -0
  75. package/dist/files.d.ts +42 -0
  76. package/dist/files.js +123 -0
  77. package/dist/frame-binding-wire-script.d.ts +2 -0
  78. package/dist/frame-binding-wire-script.js +1 -0
  79. package/dist/frame-binding-wire.d.ts +28 -0
  80. package/dist/frame-binding-wire.js +54 -0
  81. package/dist/git-admission.d.ts +52 -0
  82. package/dist/git-admission.js +188 -0
  83. package/dist/git-auth.d.ts +11 -0
  84. package/dist/git-auth.js +27 -0
  85. package/dist/git-door.d.ts +35 -0
  86. package/dist/git-door.js +108 -0
  87. package/dist/git-journal.d.ts +31 -0
  88. package/dist/git-journal.js +188 -0
  89. package/dist/git.d.ts +31 -0
  90. package/dist/git.js +64 -0
  91. package/dist/guest-policy.d.ts +9 -0
  92. package/dist/guest-policy.js +13 -0
  93. package/dist/host.d.ts +244 -0
  94. package/dist/host.js +1043 -0
  95. package/dist/index.d.ts +166 -0
  96. package/dist/index.js +320 -0
  97. package/dist/installation-consent.d.ts +79 -0
  98. package/dist/installation-consent.js +82 -0
  99. package/dist/internal/background-origins.d.ts +3 -0
  100. package/dist/internal/background-origins.js +8 -0
  101. package/dist/internal/delivery.d.ts +12 -0
  102. package/dist/internal/delivery.js +167 -0
  103. package/dist/internal/host-gate.d.ts +14 -0
  104. package/dist/internal/host-gate.js +62 -0
  105. package/dist/internal/registry-installations.d.ts +6 -0
  106. package/dist/internal/registry-installations.js +12 -0
  107. package/dist/invocation.d.ts +251 -0
  108. package/dist/invocation.js +377 -0
  109. package/dist/keys.d.ts +48 -0
  110. package/dist/keys.js +52 -0
  111. package/dist/mcp-owner.d.ts +27 -0
  112. package/dist/mcp-owner.js +143 -0
  113. package/dist/mcp.d.ts +89 -0
  114. package/dist/mcp.js +429 -0
  115. package/dist/media.d.ts +23 -0
  116. package/dist/media.js +12 -0
  117. package/dist/pack.d.ts +76 -0
  118. package/dist/pack.js +134 -0
  119. package/dist/page/capabilities.d.ts +23 -0
  120. package/dist/page/capabilities.js +256 -0
  121. package/dist/page/computer-handles.d.ts +79 -0
  122. package/dist/page/computer-handles.js +44 -0
  123. package/dist/page/lifetime.d.ts +6 -0
  124. package/dist/page/lifetime.js +19 -0
  125. package/dist/page/mount.d.ts +163 -0
  126. package/dist/page/mount.js +390 -0
  127. package/dist/page/storage.d.ts +3 -0
  128. package/dist/page/storage.js +82 -0
  129. package/dist/page/terminal.d.ts +5 -0
  130. package/dist/page/terminal.js +7 -0
  131. package/dist/page-script.d.ts +14 -0
  132. package/dist/page-script.js +5 -0
  133. package/dist/r2-files.d.ts +3 -0
  134. package/dist/r2-files.js +79 -0
  135. package/dist/release.d.ts +72 -0
  136. package/dist/release.js +164 -0
  137. package/dist/root-data.d.ts +86 -0
  138. package/dist/root-data.js +69 -0
  139. package/dist/shell/app-directory.d.ts +537 -0
  140. package/dist/shell/app-directory.js +195 -0
  141. package/dist/shell/browser-actions.d.ts +7 -0
  142. package/dist/shell/browser-actions.js +56 -0
  143. package/dist/shell/command-host.d.ts +112 -0
  144. package/dist/shell/command-host.js +502 -0
  145. package/dist/shell/commands.d.ts +25 -0
  146. package/dist/shell/commands.js +78 -0
  147. package/dist/shell/index.d.ts +8 -0
  148. package/dist/shell/index.js +8 -0
  149. package/dist/shell/keys.d.ts +41 -0
  150. package/dist/shell/keys.js +134 -0
  151. package/dist/shell/shell-module.d.ts +31 -0
  152. package/dist/shell/shell-module.js +37 -0
  153. package/dist/shell/window-manager.d.ts +124 -0
  154. package/dist/shell/window-manager.js +711 -0
  155. package/dist/shell/workbench-contract.d.ts +68 -0
  156. package/dist/shell/workbench-contract.js +1 -0
  157. package/dist/shell/workbench-host-types.d.ts +96 -0
  158. package/dist/shell/workbench-host-types.js +1 -0
  159. package/dist/shell/workbench-host.d.ts +34 -0
  160. package/dist/shell/workbench-host.js +347 -0
  161. package/dist/shell/workbench-model.d.ts +192 -0
  162. package/dist/shell/workbench-model.js +53 -0
  163. package/dist/shell/workbench.d.ts +4 -0
  164. package/dist/shell/workbench.js +2 -0
  165. package/dist/source/fork.d.ts +27 -0
  166. package/dist/source/fork.js +46 -0
  167. package/dist/source/index.d.ts +11 -0
  168. package/dist/source/index.js +11 -0
  169. package/dist/source/seed-receipt.d.ts +53 -0
  170. package/dist/source/seed-receipt.js +18 -0
  171. package/dist/source/team-source.d.ts +32 -0
  172. package/dist/source/team-source.js +42 -0
  173. package/dist/source/template-repository.d.ts +2 -0
  174. package/dist/source/template-repository.js +8 -0
  175. package/dist/source/template-write.d.ts +69 -0
  176. package/dist/source/template-write.js +344 -0
  177. package/dist/storage-frame.d.ts +64 -0
  178. package/dist/storage-frame.js +28 -0
  179. package/dist/tenant.d.ts +81 -0
  180. package/dist/tenant.js +71 -0
  181. package/dist/testing/capabilities.d.ts +29 -0
  182. package/dist/testing/capabilities.js +130 -0
  183. package/dist/testing/catalog.d.ts +3 -0
  184. package/dist/testing/catalog.js +53 -0
  185. package/dist/testing/index.d.ts +10 -0
  186. package/dist/testing/index.js +10 -0
  187. package/dist/testing/installation.d.ts +11 -0
  188. package/dist/testing/installation.js +25 -0
  189. package/dist/testing/native-worker.d.ts +21 -0
  190. package/dist/testing/native-worker.js +106 -0
  191. package/dist/testing/worker.d.ts +18 -0
  192. package/dist/testing/worker.js +67 -0
  193. package/dist/testing/workers-runtime.d.ts +24 -0
  194. package/dist/testing/workers-runtime.js +33 -0
  195. package/dist/webhook-delivery.d.ts +14 -0
  196. package/dist/webhook-delivery.js +17 -0
  197. package/dist/workers-git.d.ts +285 -0
  198. package/dist/workers-git.js +1174 -0
  199. package/dist/workers.d.ts +352 -0
  200. package/dist/workers.js +866 -0
  201. package/docs/api/README.md +82 -0
  202. package/docs/api/agents.md +332 -0
  203. package/docs/api/app-storage.md +209 -0
  204. package/docs/api/apps.md +1375 -0
  205. package/docs/api/auth.md +63 -0
  206. package/docs/api/build-contract.md +507 -0
  207. package/docs/api/build.md +1476 -0
  208. package/docs/api/cloudflare.md +421 -0
  209. package/docs/api/computer.md +203 -0
  210. package/docs/api/files.md +117 -0
  211. package/docs/api/git.md +470 -0
  212. package/docs/api/host.md +1328 -0
  213. package/docs/api/index.md +430 -0
  214. package/docs/api/invocation.md +738 -0
  215. package/docs/api/keys.md +175 -0
  216. package/docs/api/mcp.md +301 -0
  217. package/docs/api/media.md +40 -0
  218. package/docs/api/modules.md +42 -0
  219. package/docs/api/pack.md +138 -0
  220. package/docs/api/page/mount.md +298 -0
  221. package/docs/api/root-data.md +111 -0
  222. package/docs/api/shell/app-directory.md +332 -0
  223. package/docs/api/shell/command-host.md +224 -0
  224. package/docs/api/shell/commands.md +197 -0
  225. package/docs/api/shell/keys.md +183 -0
  226. package/docs/api/shell/shell-module.md +143 -0
  227. package/docs/api/shell/window-manager.md +267 -0
  228. package/docs/api/shell/workbench.md +186 -0
  229. package/docs/api/shell.md +1788 -0
  230. package/docs/api/tenant.md +194 -0
  231. package/docs/api/workers-git.md +1527 -0
  232. package/docs/api/workers.md +1678 -0
  233. package/docs/media/architecture.mmd +32 -0
  234. package/docs/media/architecture.png +0 -0
  235. package/docs/media/bonsai-network.png +0 -0
  236. package/docs/media/bonsai-repository.png +0 -0
  237. package/docs/site/agent-quickstart.mdx +349 -0
  238. package/examples/git/worker.ts +39 -0
  239. package/examples/git/wrangler.jsonc +32 -0
  240. package/examples/standalone/worker.ts +14 -0
  241. package/examples/standalone/wrangler.jsonc +21 -0
  242. package/package.json +249 -3
@@ -0,0 +1,63 @@
1
+ <!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
2
+
3
+ [**@fungi.computer/oyster**](README.md)
4
+
5
+ ---
6
+
7
+ [@fungi.computer/oyster](modules.md) / auth
8
+
9
+ # auth
10
+
11
+ ## Variables
12
+
13
+ ### ownerKeyCookieName
14
+
15
+ ```ts
16
+ const ownerKeyCookieName: "oyster_session" = "oyster_session";
17
+ ```
18
+
19
+ Cookie emitted by ownerKeyAuth, for composing credential-specific adapters.
20
+
21
+ ## Functions
22
+
23
+ ### ownerKeyAuth()
24
+
25
+ ```ts
26
+ function ownerKeyAuth(ownerKey, ownerId?): OysterAuth;
27
+ ```
28
+
29
+ Single-owner sign-in: a bearer token or a session cookie holding the owner key's
30
+ digest. The key itself is never stored in the browser.
31
+
32
+ #### Parameters
33
+
34
+ | Parameter | Type | Default value |
35
+ | ---------- | -------- | ------------- |
36
+ | `ownerKey` | `string` | `undefined` |
37
+ | `ownerId` | `string` | `"owner"` |
38
+
39
+ #### Returns
40
+
41
+ [`OysterAuth`](host.md#oysterauth)
42
+
43
+ ---
44
+
45
+ ### ownerOrKeyAuth()
46
+
47
+ ```ts
48
+ function ownerOrKeyAuth(ownerKey, ownerId, keys): OysterAuth;
49
+ ```
50
+
51
+ The owner key, or a named key admitted as its canonical Team-key actor.
52
+
53
+ #### Parameters
54
+
55
+ | Parameter | Type |
56
+ | ---------- | ---------------------------------------------------------------------- |
57
+ | `ownerKey` | `string` |
58
+ | `ownerId` | `string` |
59
+ | `keys` | () => `Pick`\<[`OysterKeyStore`](keys.md#oysterkeystore), `"verify"`\> |
60
+
61
+ #### Returns
62
+
63
+ [`OysterAuth`](host.md#oysterauth)
@@ -0,0 +1,507 @@
1
+ <!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
2
+
3
+ [**@fungi.computer/oyster**](README.md)
4
+
5
+ ---
6
+
7
+ [@fungi.computer/oyster](modules.md) / build-contract
8
+
9
+ # build-contract
10
+
11
+ ## Type Aliases
12
+
13
+ ### TeamAppCandidateSubmission
14
+
15
+ ```ts
16
+ type TeamAppCandidateSubmission = Schema.Schema.Type<
17
+ typeof teamAppCandidateSubmissionSchema
18
+ >;
19
+ ```
20
+
21
+ One submitted Team App candidate.
22
+
23
+ ---
24
+
25
+ ### PreparedTeamAppCandidate
26
+
27
+ ```ts
28
+ type PreparedTeamAppCandidate = Schema.Schema.Type<
29
+ typeof preparedCandidateSchema
30
+ >;
31
+ ```
32
+
33
+ One Team App candidate with its reserved Release ID.
34
+
35
+ ## Variables
36
+
37
+ ### TEAM\_APP\_SUBMISSION\_MAX\_REQUEST\_BYTES
38
+
39
+ ```ts
40
+ const TEAM_APP_SUBMISSION_MAX_REQUEST_BYTES: number;
41
+ ```
42
+
43
+ The largest Team App candidate submission request body, in bytes.
44
+
45
+ ---
46
+
47
+ ### teamAppCandidateSubmissionSchema
48
+
49
+ ```ts
50
+ const teamAppCandidateSubmissionSchema: Struct<{
51
+ appId: refine<AppId, String>;
52
+ output: Union<readonly [Struct<{
53
+ declaration: optionalKey<Codec<Readonly<{
54
+ api?: ... | ...;
55
+ displayName?: ... | ...;
56
+ capabilities: readonly ...[];
57
+ calls?: ... | ...;
58
+ guidance?: ... | ...;
59
+ handlers: readonly ...[];
60
+ receives?: ... | ...;
61
+ icon?: ... | ...;
62
+ roles: readonly ...[];
63
+ storage?: ... | ...;
64
+ commands?: ... | ...;
65
+ gills?: ... | ...;
66
+ backend?: ... | ...;
67
+ }>, Readonly<{
68
+ api?: ... | ...;
69
+ displayName?: ... | ...;
70
+ capabilities: readonly ...[];
71
+ calls?: ... | ...;
72
+ guidance?: ... | ...;
73
+ handlers: readonly ...[];
74
+ receives?: ... | ...;
75
+ icon?: ... | ...;
76
+ roles: readonly ...[];
77
+ storage?: ... | ...;
78
+ commands?: ... | ...;
79
+ gills?: ... | ...;
80
+ backend?: ... | ...;
81
+ }>, never, never>>;
82
+ kind: Literal<"ui">;
83
+ ui: Union<readonly [Struct<{
84
+ mediaType: Literal<...>;
85
+ content: Struct<...>;
86
+ }>, Struct<{
87
+ mediaType: Literal<...>;
88
+ content: Struct<...>;
89
+ }>]>;
90
+ }>, Struct<{
91
+ declaration: optionalKey<Codec<Readonly<{
92
+ api?: ... | ...;
93
+ displayName?: ... | ...;
94
+ capabilities: readonly ...[];
95
+ calls?: ... | ...;
96
+ guidance?: ... | ...;
97
+ handlers: readonly ...[];
98
+ receives?: ... | ...;
99
+ icon?: ... | ...;
100
+ roles: readonly ...[];
101
+ storage?: ... | ...;
102
+ commands?: ... | ...;
103
+ gills?: ... | ...;
104
+ backend?: ... | ...;
105
+ }>, Readonly<{
106
+ api?: ... | ...;
107
+ displayName?: ... | ...;
108
+ capabilities: readonly ...[];
109
+ calls?: ... | ...;
110
+ guidance?: ... | ...;
111
+ handlers: readonly ...[];
112
+ receives?: ... | ...;
113
+ icon?: ... | ...;
114
+ roles: readonly ...[];
115
+ storage?: ... | ...;
116
+ commands?: ... | ...;
117
+ gills?: ... | ...;
118
+ backend?: ... | ...;
119
+ }>, never, never>>;
120
+ kind: Literal<"backend">;
121
+ backend: Uint8ArrayFromBase64;
122
+ }>, Struct<{
123
+ declaration: optionalKey<Codec<Readonly<{
124
+ api?: ... | ...;
125
+ displayName?: ... | ...;
126
+ capabilities: readonly ...[];
127
+ calls?: ... | ...;
128
+ guidance?: ... | ...;
129
+ handlers: readonly ...[];
130
+ receives?: ... | ...;
131
+ icon?: ... | ...;
132
+ roles: readonly ...[];
133
+ storage?: ... | ...;
134
+ commands?: ... | ...;
135
+ gills?: ... | ...;
136
+ backend?: ... | ...;
137
+ }>, Readonly<{
138
+ api?: ... | ...;
139
+ displayName?: ... | ...;
140
+ capabilities: readonly ...[];
141
+ calls?: ... | ...;
142
+ guidance?: ... | ...;
143
+ handlers: readonly ...[];
144
+ receives?: ... | ...;
145
+ icon?: ... | ...;
146
+ roles: readonly ...[];
147
+ storage?: ... | ...;
148
+ commands?: ... | ...;
149
+ gills?: ... | ...;
150
+ backend?: ... | ...;
151
+ }>, never, never>>;
152
+ kind: Literal<"app">;
153
+ ui: Union<readonly [Struct<{
154
+ mediaType: Literal<...>;
155
+ content: Struct<...>;
156
+ }>, Struct<{
157
+ mediaType: Literal<...>;
158
+ content: Struct<...>;
159
+ }>]>;
160
+ backend: Uint8ArrayFromBase64;
161
+ }>]>;
162
+ provenance: Struct<{
163
+ sourceRevision: refine<SourceRevision, String>;
164
+ sourceTreeDigest: refine<Sha256Digest, String>;
165
+ buildRecipeDigest: refine<Sha256Digest, String>;
166
+ }>;
167
+ }>;
168
+ ```
169
+
170
+ Exact submitted output and provenance before the Team assigns a stable Release
171
+ ID.
172
+
173
+ ---
174
+
175
+ ### preparedCandidateSchema
176
+
177
+ ```ts
178
+ const preparedCandidateSchema: Struct<{
179
+ appId: refine<AppId, String>;
180
+ output: Union<readonly [Struct<{
181
+ declaration: optionalKey<Codec<Readonly<{
182
+ api?: ... | ...;
183
+ displayName?: ... | ...;
184
+ capabilities: readonly ...[];
185
+ calls?: ... | ...;
186
+ guidance?: ... | ...;
187
+ handlers: readonly ...[];
188
+ receives?: ... | ...;
189
+ icon?: ... | ...;
190
+ roles: readonly ...[];
191
+ storage?: ... | ...;
192
+ commands?: ... | ...;
193
+ gills?: ... | ...;
194
+ backend?: ... | ...;
195
+ }>, Readonly<{
196
+ api?: ... | ...;
197
+ displayName?: ... | ...;
198
+ capabilities: readonly ...[];
199
+ calls?: ... | ...;
200
+ guidance?: ... | ...;
201
+ handlers: readonly ...[];
202
+ receives?: ... | ...;
203
+ icon?: ... | ...;
204
+ roles: readonly ...[];
205
+ storage?: ... | ...;
206
+ commands?: ... | ...;
207
+ gills?: ... | ...;
208
+ backend?: ... | ...;
209
+ }>, never, never>>;
210
+ kind: Literal<"ui">;
211
+ ui: Union<readonly [Struct<{
212
+ mediaType: Literal<...>;
213
+ content: Struct<...>;
214
+ }>, Struct<{
215
+ mediaType: Literal<...>;
216
+ content: Struct<...>;
217
+ }>]>;
218
+ }>, Struct<{
219
+ declaration: optionalKey<Codec<Readonly<{
220
+ api?: ... | ...;
221
+ displayName?: ... | ...;
222
+ capabilities: readonly ...[];
223
+ calls?: ... | ...;
224
+ guidance?: ... | ...;
225
+ handlers: readonly ...[];
226
+ receives?: ... | ...;
227
+ icon?: ... | ...;
228
+ roles: readonly ...[];
229
+ storage?: ... | ...;
230
+ commands?: ... | ...;
231
+ gills?: ... | ...;
232
+ backend?: ... | ...;
233
+ }>, Readonly<{
234
+ api?: ... | ...;
235
+ displayName?: ... | ...;
236
+ capabilities: readonly ...[];
237
+ calls?: ... | ...;
238
+ guidance?: ... | ...;
239
+ handlers: readonly ...[];
240
+ receives?: ... | ...;
241
+ icon?: ... | ...;
242
+ roles: readonly ...[];
243
+ storage?: ... | ...;
244
+ commands?: ... | ...;
245
+ gills?: ... | ...;
246
+ backend?: ... | ...;
247
+ }>, never, never>>;
248
+ kind: Literal<"backend">;
249
+ backend: Uint8ArrayFromBase64;
250
+ }>, Struct<{
251
+ declaration: optionalKey<Codec<Readonly<{
252
+ api?: ... | ...;
253
+ displayName?: ... | ...;
254
+ capabilities: readonly ...[];
255
+ calls?: ... | ...;
256
+ guidance?: ... | ...;
257
+ handlers: readonly ...[];
258
+ receives?: ... | ...;
259
+ icon?: ... | ...;
260
+ roles: readonly ...[];
261
+ storage?: ... | ...;
262
+ commands?: ... | ...;
263
+ gills?: ... | ...;
264
+ backend?: ... | ...;
265
+ }>, Readonly<{
266
+ api?: ... | ...;
267
+ displayName?: ... | ...;
268
+ capabilities: readonly ...[];
269
+ calls?: ... | ...;
270
+ guidance?: ... | ...;
271
+ handlers: readonly ...[];
272
+ receives?: ... | ...;
273
+ icon?: ... | ...;
274
+ roles: readonly ...[];
275
+ storage?: ... | ...;
276
+ commands?: ... | ...;
277
+ gills?: ... | ...;
278
+ backend?: ... | ...;
279
+ }>, never, never>>;
280
+ kind: Literal<"app">;
281
+ ui: Union<readonly [Struct<{
282
+ mediaType: Literal<...>;
283
+ content: Struct<...>;
284
+ }>, Struct<{
285
+ mediaType: Literal<...>;
286
+ content: Struct<...>;
287
+ }>]>;
288
+ backend: Uint8ArrayFromBase64;
289
+ }>]>;
290
+ provenance: Struct<{
291
+ sourceRevision: refine<SourceRevision, String>;
292
+ sourceTreeDigest: refine<Sha256Digest, String>;
293
+ buildRecipeDigest: refine<Sha256Digest, String>;
294
+ }>;
295
+ releaseId: refine<ReleaseId, String>;
296
+ }>;
297
+ ```
298
+
299
+ Publisher persistence input after TeamDO reserves retry-stable identities.
300
+
301
+ ## Functions
302
+
303
+ ### encodeTeamAppCandidateSubmission()
304
+
305
+ ```ts
306
+ function encodeTeamAppCandidateSubmission(input): string;
307
+ ```
308
+
309
+ Canonical wire bytes make TeamDO's same-request digest independent of JSON
310
+ spacing.
311
+
312
+ #### Parameters
313
+
314
+ | Parameter | Type |
315
+ | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
316
+ | `input` | \{ `appId`: `AppId`; `output`: \| \{ `declaration?`: `Readonly`\<\{ `api?`: `Readonly`\<\{ `methods`: `Readonly`\<`Record`\<..., ...\>\>; `toolFamily?`: `Readonly`\<...\>; `events?`: `Readonly`\<...\>; \}\>; `displayName?`: `string`; `capabilities`: readonly ( \| `"agent.list"` \| `"agent.manage"` \| `"agent.rename"` \| `"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"`)[]; `calls?`: readonly `Readonly`\<\{ `appId`: `string`; `methods`: readonly ...[]; \}\>[]; `guidance?`: `string`; `handlers`: readonly `"file.open"`[]; `receives?`: readonly `"git.push"`[]; `icon?`: `string`; `roles`: readonly (`"dashboard"` \| `"inbox"` \| `"files"` \| `"media"` \| `"sessions"` \| `"terminal"`)[]; `storage?`: readonly `Readonly`\<\{ `key`: `string`; `scopes`: readonly ...[]; `maxBytes`: `number`; \}\>[]; `commands?`: readonly `Readonly`\<\{ `id`: `string`; `title`: `string`; `category`: `string`; `description?`: ... \| ...; `sigil?`: ... \| ...; `projections?`: ... \| ...; \}\>[]; `gills?`: readonly `Readonly`\<\{ `id`: `string`; `source`: `string`; `title`: `string`; `params?`: ... \| ...; `watch?`: ... \| ...; `desktop?`: ... \| ...; \}\>[]; `backend?`: `Readonly`\<\{ `bindings`: readonly `Readonly`\<...\>[]; `sync?`: `Readonly`\<...\>; \}\>; \}\>; `kind`: `"ui"`; `ui`: \| \{ `mediaType`: `"text/html; charset=utf-8"`; `content`: \{ `kind`: `"html"`; `bytes`: `Uint8Array`\<`ArrayBufferLike`\>; \}; \} \| \{ `mediaType`: `"application/vnd.fungi.app-assets+json"`; `content`: \{ `kind`: `"assets"`; `base`: `string`; `assets`: readonly `object`[]; \}; \}; \} \| \{ `declaration?`: `Readonly`\<\{ `api?`: `Readonly`\<\{ `methods`: `Readonly`\<`Record`\<..., ...\>\>; `toolFamily?`: `Readonly`\<...\>; `events?`: `Readonly`\<...\>; \}\>; `displayName?`: `string`; `capabilities`: readonly ( \| `"agent.list"` \| `"agent.manage"` \| `"agent.rename"` \| `"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"`)[]; `calls?`: readonly `Readonly`\<\{ `appId`: `string`; `methods`: readonly ...[]; \}\>[]; `guidance?`: `string`; `handlers`: readonly `"file.open"`[]; `receives?`: readonly `"git.push"`[]; `icon?`: `string`; `roles`: readonly (`"dashboard"` \| `"inbox"` \| `"files"` \| `"media"` \| `"sessions"` \| `"terminal"`)[]; `storage?`: readonly `Readonly`\<\{ `key`: `string`; `scopes`: readonly ...[]; `maxBytes`: `number`; \}\>[]; `commands?`: readonly `Readonly`\<\{ `id`: `string`; `title`: `string`; `category`: `string`; `description?`: ... \| ...; `sigil?`: ... \| ...; `projections?`: ... \| ...; \}\>[]; `gills?`: readonly `Readonly`\<\{ `id`: `string`; `source`: `string`; `title`: `string`; `params?`: ... \| ...; `watch?`: ... \| ...; `desktop?`: ... \| ...; \}\>[]; `backend?`: `Readonly`\<\{ `bindings`: readonly `Readonly`\<...\>[]; `sync?`: `Readonly`\<...\>; \}\>; \}\>; `kind`: `"backend"`; `backend`: `Uint8Array`\<`ArrayBufferLike`\>; \} \| \{ `declaration?`: `Readonly`\<\{ `api?`: `Readonly`\<\{ `methods`: `Readonly`\<`Record`\<..., ...\>\>; `toolFamily?`: `Readonly`\<...\>; `events?`: `Readonly`\<...\>; \}\>; `displayName?`: `string`; `capabilities`: readonly ( \| `"agent.list"` \| `"agent.manage"` \| `"agent.rename"` \| `"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"`)[]; `calls?`: readonly `Readonly`\<\{ `appId`: `string`; `methods`: readonly ...[]; \}\>[]; `guidance?`: `string`; `handlers`: readonly `"file.open"`[]; `receives?`: readonly `"git.push"`[]; `icon?`: `string`; `roles`: readonly (`"dashboard"` \| `"inbox"` \| `"files"` \| `"media"` \| `"sessions"` \| `"terminal"`)[]; `storage?`: readonly `Readonly`\<\{ `key`: `string`; `scopes`: readonly ...[]; `maxBytes`: `number`; \}\>[]; `commands?`: readonly `Readonly`\<\{ `id`: `string`; `title`: `string`; `category`: `string`; `description?`: ... \| ...; `sigil?`: ... \| ...; `projections?`: ... \| ...; \}\>[]; `gills?`: readonly `Readonly`\<\{ `id`: `string`; `source`: `string`; `title`: `string`; `params?`: ... \| ...; `watch?`: ... \| ...; `desktop?`: ... \| ...; \}\>[]; `backend?`: `Readonly`\<\{ `bindings`: readonly `Readonly`\<...\>[]; `sync?`: `Readonly`\<...\>; \}\>; \}\>; `kind`: `"app"`; `ui`: \| \{ `mediaType`: `"text/html; charset=utf-8"`; `content`: \{ `kind`: `"html"`; `bytes`: `Uint8Array`\<`ArrayBufferLike`\>; \}; \} \| \{ `mediaType`: `"application/vnd.fungi.app-assets+json"`; `content`: \{ `kind`: `"assets"`; `base`: `string`; `assets`: readonly `object`[]; \}; \}; `backend`: `Uint8Array`\<`ArrayBufferLike`\>; \}; `provenance`: \{ `sourceRevision`: `SourceRevision`; `sourceTreeDigest`: `Sha256Digest`; `buildRecipeDigest`: `Sha256Digest`; \}; \} |
317
+ | `input.appId` | `AppId` |
318
+ | `input.output` | \| \{ `declaration?`: `Readonly`\<\{ `api?`: `Readonly`\<\{ `methods`: `Readonly`\<`Record`\<..., ...\>\>; `toolFamily?`: `Readonly`\<...\>; `events?`: `Readonly`\<...\>; \}\>; `displayName?`: `string`; `capabilities`: readonly ( \| `"agent.list"` \| `"agent.manage"` \| `"agent.rename"` \| `"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"`)[]; `calls?`: readonly `Readonly`\<\{ `appId`: `string`; `methods`: readonly ...[]; \}\>[]; `guidance?`: `string`; `handlers`: readonly `"file.open"`[]; `receives?`: readonly `"git.push"`[]; `icon?`: `string`; `roles`: readonly (`"dashboard"` \| `"inbox"` \| `"files"` \| `"media"` \| `"sessions"` \| `"terminal"`)[]; `storage?`: readonly `Readonly`\<\{ `key`: `string`; `scopes`: readonly ...[]; `maxBytes`: `number`; \}\>[]; `commands?`: readonly `Readonly`\<\{ `id`: `string`; `title`: `string`; `category`: `string`; `description?`: ... \| ...; `sigil?`: ... \| ...; `projections?`: ... \| ...; \}\>[]; `gills?`: readonly `Readonly`\<\{ `id`: `string`; `source`: `string`; `title`: `string`; `params?`: ... \| ...; `watch?`: ... \| ...; `desktop?`: ... \| ...; \}\>[]; `backend?`: `Readonly`\<\{ `bindings`: readonly `Readonly`\<...\>[]; `sync?`: `Readonly`\<...\>; \}\>; \}\>; `kind`: `"ui"`; `ui`: \| \{ `mediaType`: `"text/html; charset=utf-8"`; `content`: \{ `kind`: `"html"`; `bytes`: `Uint8Array`\<`ArrayBufferLike`\>; \}; \} \| \{ `mediaType`: `"application/vnd.fungi.app-assets+json"`; `content`: \{ `kind`: `"assets"`; `base`: `string`; `assets`: readonly `object`[]; \}; \}; \} \| \{ `declaration?`: `Readonly`\<\{ `api?`: `Readonly`\<\{ `methods`: `Readonly`\<`Record`\<..., ...\>\>; `toolFamily?`: `Readonly`\<...\>; `events?`: `Readonly`\<...\>; \}\>; `displayName?`: `string`; `capabilities`: readonly ( \| `"agent.list"` \| `"agent.manage"` \| `"agent.rename"` \| `"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"`)[]; `calls?`: readonly `Readonly`\<\{ `appId`: `string`; `methods`: readonly ...[]; \}\>[]; `guidance?`: `string`; `handlers`: readonly `"file.open"`[]; `receives?`: readonly `"git.push"`[]; `icon?`: `string`; `roles`: readonly (`"dashboard"` \| `"inbox"` \| `"files"` \| `"media"` \| `"sessions"` \| `"terminal"`)[]; `storage?`: readonly `Readonly`\<\{ `key`: `string`; `scopes`: readonly ...[]; `maxBytes`: `number`; \}\>[]; `commands?`: readonly `Readonly`\<\{ `id`: `string`; `title`: `string`; `category`: `string`; `description?`: ... \| ...; `sigil?`: ... \| ...; `projections?`: ... \| ...; \}\>[]; `gills?`: readonly `Readonly`\<\{ `id`: `string`; `source`: `string`; `title`: `string`; `params?`: ... \| ...; `watch?`: ... \| ...; `desktop?`: ... \| ...; \}\>[]; `backend?`: `Readonly`\<\{ `bindings`: readonly `Readonly`\<...\>[]; `sync?`: `Readonly`\<...\>; \}\>; \}\>; `kind`: `"backend"`; `backend`: `Uint8Array`\<`ArrayBufferLike`\>; \} \| \{ `declaration?`: `Readonly`\<\{ `api?`: `Readonly`\<\{ `methods`: `Readonly`\<`Record`\<..., ...\>\>; `toolFamily?`: `Readonly`\<...\>; `events?`: `Readonly`\<...\>; \}\>; `displayName?`: `string`; `capabilities`: readonly ( \| `"agent.list"` \| `"agent.manage"` \| `"agent.rename"` \| `"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"`)[]; `calls?`: readonly `Readonly`\<\{ `appId`: `string`; `methods`: readonly ...[]; \}\>[]; `guidance?`: `string`; `handlers`: readonly `"file.open"`[]; `receives?`: readonly `"git.push"`[]; `icon?`: `string`; `roles`: readonly (`"dashboard"` \| `"inbox"` \| `"files"` \| `"media"` \| `"sessions"` \| `"terminal"`)[]; `storage?`: readonly `Readonly`\<\{ `key`: `string`; `scopes`: readonly ...[]; `maxBytes`: `number`; \}\>[]; `commands?`: readonly `Readonly`\<\{ `id`: `string`; `title`: `string`; `category`: `string`; `description?`: ... \| ...; `sigil?`: ... \| ...; `projections?`: ... \| ...; \}\>[]; `gills?`: readonly `Readonly`\<\{ `id`: `string`; `source`: `string`; `title`: `string`; `params?`: ... \| ...; `watch?`: ... \| ...; `desktop?`: ... \| ...; \}\>[]; `backend?`: `Readonly`\<\{ `bindings`: readonly `Readonly`\<...\>[]; `sync?`: `Readonly`\<...\>; \}\>; \}\>; `kind`: `"app"`; `ui`: \| \{ `mediaType`: `"text/html; charset=utf-8"`; `content`: \{ `kind`: `"html"`; `bytes`: `Uint8Array`\<`ArrayBufferLike`\>; \}; \} \| \{ `mediaType`: `"application/vnd.fungi.app-assets+json"`; `content`: \{ `kind`: `"assets"`; `base`: `string`; `assets`: readonly `object`[]; \}; \}; `backend`: `Uint8Array`\<`ArrayBufferLike`\>; \} |
319
+ | `input.provenance` | \{ `sourceRevision`: `SourceRevision`; `sourceTreeDigest`: `Sha256Digest`; `buildRecipeDigest`: `Sha256Digest`; \} |
320
+ | `input.provenance.sourceRevision` | `SourceRevision` |
321
+ | `input.provenance.sourceTreeDigest` | `Sha256Digest` |
322
+ | `input.provenance.buildRecipeDigest` | `Sha256Digest` |
323
+
324
+ #### Returns
325
+
326
+ `string`
327
+
328
+ ## References
329
+
330
+ ### pinnedRecipeSchema
331
+
332
+ Re-exports [pinnedRecipeSchema](build.md#pinnedrecipeschema)
333
+
334
+ ---
335
+
336
+ ### AppPublisherCoreConfigSchema
337
+
338
+ Re-exports [AppPublisherCoreConfigSchema](build.md#apppublishercoreconfigschema)
339
+
340
+ ---
341
+
342
+ ### AppPublisherCoreConfigInput
343
+
344
+ Re-exports [AppPublisherCoreConfigInput](build.md#apppublishercoreconfiginput)
345
+
346
+ ---
347
+
348
+ ### appBackendExportConditions
349
+
350
+ Re-exports [appBackendExportConditions](build.md#appbackendexportconditions)
351
+
352
+ ---
353
+
354
+ ### capturedPinnedRecipeSchema
355
+
356
+ Re-exports [capturedPinnedRecipeSchema](build.md#capturedpinnedrecipeschema)
357
+
358
+ ---
359
+
360
+ ### PinnedRecipe
361
+
362
+ Re-exports [PinnedRecipe](build.md#pinnedrecipe)
363
+
364
+ ---
365
+
366
+ ### CapturedSource
367
+
368
+ Re-exports [CapturedSource](build.md#capturedsource)
369
+
370
+ ---
371
+
372
+ ### RawBuildOutput
373
+
374
+ Re-exports [RawBuildOutput](build.md#rawbuildoutput)
375
+
376
+ ---
377
+
378
+ ### UiBuildOutput
379
+
380
+ Re-exports [UiBuildOutput](build.md#uibuildoutput)
381
+
382
+ ---
383
+
384
+ ### BuildExecutorOutput
385
+
386
+ Re-exports [BuildExecutorOutput](build.md#buildexecutoroutput)
387
+
388
+ ---
389
+
390
+ ### PreparedUiOutput
391
+
392
+ Re-exports [PreparedUiOutput](build.md#prepareduioutput)
393
+
394
+ ---
395
+
396
+ ### BuildOutput
397
+
398
+ Re-exports [BuildOutput](build.md#buildoutput)
399
+
400
+ ---
401
+
402
+ ### StoredArtifact
403
+
404
+ Re-exports [StoredArtifact](build.md#storedartifact)
405
+
406
+ ---
407
+
408
+ ### PreparedCandidate
409
+
410
+ Re-exports [PreparedCandidate](build.md#preparedcandidate)
411
+
412
+ ---
413
+
414
+ ### SourceCapture
415
+
416
+ Re-exports [SourceCapture](build.md#sourcecapture)
417
+
418
+ ---
419
+
420
+ ### BuildExecutor
421
+
422
+ Re-exports [BuildExecutor](build.md#buildexecutor)
423
+
424
+ ---
425
+
426
+ ### ArtifactWriter
427
+
428
+ Re-exports [ArtifactWriter](build.md#artifactwriter)
429
+
430
+ ---
431
+
432
+ ### ReleaseCreator
433
+
434
+ Re-exports [ReleaseCreator](build.md#releasecreator)
435
+
436
+ ---
437
+
438
+ ### AppPublisherOptions
439
+
440
+ Re-exports [AppPublisherOptions](build.md#apppublisheroptions)
441
+
442
+ ---
443
+
444
+ ### AppPublisher
445
+
446
+ Re-exports [AppPublisher](build.md#apppublisher)
447
+
448
+ ---
449
+
450
+ ### AppCandidatePreparer
451
+
452
+ Re-exports [AppCandidatePreparer](build.md#appcandidatepreparer)
453
+
454
+ ---
455
+
456
+ ### AppPublisherStage
457
+
458
+ Re-exports [AppPublisherStage](build.md#apppublisherstage)
459
+
460
+ ---
461
+
462
+ ### AppPublisherError
463
+
464
+ Re-exports [AppPublisherError](build.md#apppublishererror)
465
+
466
+ ---
467
+
468
+ ### CapturedConfig
469
+
470
+ Re-exports [CapturedConfig](build.md#capturedconfig)
471
+
472
+ ---
473
+
474
+ ### digestPinnedRecipe
475
+
476
+ Re-exports [digestPinnedRecipe](build.md#digestpinnedrecipe)
477
+
478
+ ---
479
+
480
+ ### normalizeAppPublisherRecipe
481
+
482
+ Re-exports [normalizeAppPublisherRecipe](build.md#normalizeapppublisherrecipe)
483
+
484
+ ---
485
+
486
+ ### createAppCandidatePreparer
487
+
488
+ Re-exports [createAppCandidatePreparer](build.md#createappcandidatepreparer)
489
+
490
+ ---
491
+
492
+ ### createCapturedCandidatePreparer
493
+
494
+ Re-exports
495
+ [createCapturedCandidatePreparer](build.md#createcapturedcandidatepreparer)
496
+
497
+ ---
498
+
499
+ ### commitPreparedCandidate
500
+
501
+ Re-exports [commitPreparedCandidate](build.md#commitpreparedcandidate)
502
+
503
+ ---
504
+
505
+ ### createAppPublisher
506
+
507
+ Re-exports [createAppPublisher](build.md#createapppublisher)