@fungi.computer/oyster 0.0.0-stage → 0.1.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 (339) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1134 -2
  3. package/dist/agents.d.ts +114 -0
  4. package/dist/agents.js +322 -0
  5. package/dist/app-builds.d.ts +210 -0
  6. package/dist/app-builds.js +499 -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 +31 -0
  10. package/dist/app-sources.js +370 -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/artifact-writer.d.ts +40 -0
  28. package/dist/build/artifact-writer.js +181 -0
  29. package/dist/build/build-jobs.d.ts +128 -0
  30. package/dist/build/build-jobs.js +203 -0
  31. package/dist/build/build-policy.d.ts +10 -0
  32. package/dist/build/build-policy.js +10 -0
  33. package/dist/build/build-step.d.ts +37 -0
  34. package/dist/build/build-step.js +28 -0
  35. package/dist/build/bundled-html.d.ts +7 -0
  36. package/dist/build/bundled-html.js +64 -0
  37. package/dist/build/candidate-builder.d.ts +68 -0
  38. package/dist/build/candidate-builder.js +91 -0
  39. package/dist/build/candidate-cli.d.ts +1 -0
  40. package/dist/build/candidate-cli.js +119 -0
  41. package/dist/build/candidate-cli.mjs +28170 -0
  42. package/dist/build/content-objects.d.ts +37 -0
  43. package/dist/build/content-objects.js +53 -0
  44. package/dist/build/definition-emission.d.ts +34 -0
  45. package/dist/build/definition-emission.js +201 -0
  46. package/dist/build/effect.d.ts +249 -0
  47. package/dist/build/effect.js +436 -0
  48. package/dist/build/git-environment.d.ts +9 -0
  49. package/dist/build/git-environment.js +60 -0
  50. package/dist/build/html-recipe.d.ts +20 -0
  51. package/dist/build/html-recipe.js +51 -0
  52. package/dist/build/local-build.d.ts +67 -0
  53. package/dist/build/local-build.js +1128 -0
  54. package/dist/build/snapshot-package-store.d.ts +12 -0
  55. package/dist/build/snapshot-package-store.js +36 -0
  56. package/dist/build/snapshot-program-scripts.d.ts +6 -0
  57. package/dist/build/snapshot-program-scripts.js +2 -0
  58. package/dist/build/snapshot-programs/snapshot-path.d.ts +2 -0
  59. package/dist/build/snapshot-programs/snapshot-path.js +6 -0
  60. package/dist/build/submission-contract.d.ts +828 -0
  61. package/dist/build/submission-contract.js +180 -0
  62. package/dist/build/workspace-build.d.ts +55 -0
  63. package/dist/build/workspace-build.js +200 -0
  64. package/dist/build-contract.d.ts +7 -0
  65. package/dist/build-contract.js +7 -0
  66. package/dist/build-egress.d.ts +62 -0
  67. package/dist/build-egress.js +148 -0
  68. package/dist/build-jobs.d.ts +2 -0
  69. package/dist/build-jobs.js +2 -0
  70. package/dist/build.d.ts +12 -0
  71. package/dist/build.js +14 -0
  72. package/dist/capability-descriptor.d.ts +46 -0
  73. package/dist/capability-descriptor.js +51 -0
  74. package/dist/catalog-frame.d.ts +39 -0
  75. package/dist/catalog-frame.js +72 -0
  76. package/dist/cause-class.d.ts +19 -0
  77. package/dist/cause-class.js +54 -0
  78. package/dist/cloudflare.d.ts +123 -0
  79. package/dist/cloudflare.js +391 -0
  80. package/dist/computer-terminal.d.ts +38 -0
  81. package/dist/computer-terminal.js +410 -0
  82. package/dist/computer.d.ts +60 -0
  83. package/dist/computer.js +33 -0
  84. package/dist/event-recipients.d.ts +57 -0
  85. package/dist/event-recipients.js +144 -0
  86. package/dist/facet-invocation.d.ts +4 -0
  87. package/dist/facet-invocation.js +45 -0
  88. package/dist/files.d.ts +42 -0
  89. package/dist/files.js +123 -0
  90. package/dist/frame-binding-wire-script.d.ts +2 -0
  91. package/dist/frame-binding-wire-script.js +1 -0
  92. package/dist/frame-binding-wire.d.ts +28 -0
  93. package/dist/frame-binding-wire.js +54 -0
  94. package/dist/git-admission.d.ts +52 -0
  95. package/dist/git-admission.js +188 -0
  96. package/dist/git-auth.d.ts +11 -0
  97. package/dist/git-auth.js +27 -0
  98. package/dist/git-door.d.ts +35 -0
  99. package/dist/git-door.js +108 -0
  100. package/dist/git-journal.d.ts +31 -0
  101. package/dist/git-journal.js +188 -0
  102. package/dist/git.d.ts +31 -0
  103. package/dist/git.js +64 -0
  104. package/dist/guest-policy.d.ts +9 -0
  105. package/dist/guest-policy.js +13 -0
  106. package/dist/host.d.ts +244 -0
  107. package/dist/host.js +1043 -0
  108. package/dist/index.d.ts +166 -0
  109. package/dist/index.js +320 -0
  110. package/dist/installation-consent.d.ts +79 -0
  111. package/dist/installation-consent.js +82 -0
  112. package/dist/internal/background-origins.d.ts +3 -0
  113. package/dist/internal/background-origins.js +8 -0
  114. package/dist/internal/delivery.d.ts +12 -0
  115. package/dist/internal/delivery.js +167 -0
  116. package/dist/internal/host-gate.d.ts +14 -0
  117. package/dist/internal/host-gate.js +62 -0
  118. package/dist/internal/registry-installations.d.ts +6 -0
  119. package/dist/internal/registry-installations.js +12 -0
  120. package/dist/invocation.d.ts +251 -0
  121. package/dist/invocation.js +377 -0
  122. package/dist/keys.d.ts +48 -0
  123. package/dist/keys.js +52 -0
  124. package/dist/mcp-owner.d.ts +27 -0
  125. package/dist/mcp-owner.js +155 -0
  126. package/dist/mcp.d.ts +89 -0
  127. package/dist/mcp.js +429 -0
  128. package/dist/media.d.ts +23 -0
  129. package/dist/media.js +12 -0
  130. package/dist/pack.d.ts +79 -0
  131. package/dist/pack.js +151 -0
  132. package/dist/page/capabilities.d.ts +23 -0
  133. package/dist/page/capabilities.js +256 -0
  134. package/dist/page/computer-handles.d.ts +79 -0
  135. package/dist/page/computer-handles.js +44 -0
  136. package/dist/page/gill-observation.d.ts +4 -0
  137. package/dist/page/gill-observation.js +31 -0
  138. package/dist/page/lifetime.d.ts +6 -0
  139. package/dist/page/lifetime.js +19 -0
  140. package/dist/page/mount.d.ts +163 -0
  141. package/dist/page/mount.js +390 -0
  142. package/dist/page/storage.d.ts +3 -0
  143. package/dist/page/storage.js +82 -0
  144. package/dist/page/terminal.d.ts +5 -0
  145. package/dist/page/terminal.js +7 -0
  146. package/dist/page/window-launch.d.ts +18 -0
  147. package/dist/page/window-launch.js +11 -0
  148. package/dist/page-script.d.ts +14 -0
  149. package/dist/page-script.js +5 -0
  150. package/dist/r2-files.d.ts +3 -0
  151. package/dist/r2-files.js +79 -0
  152. package/dist/release.d.ts +83 -0
  153. package/dist/release.js +167 -0
  154. package/dist/root-data.d.ts +86 -0
  155. package/dist/root-data.js +69 -0
  156. package/dist/shell/app-directory.d.ts +542 -0
  157. package/dist/shell/app-directory.js +199 -0
  158. package/dist/shell/browser-actions.d.ts +7 -0
  159. package/dist/shell/browser-actions.js +56 -0
  160. package/dist/shell/command-host.d.ts +112 -0
  161. package/dist/shell/command-host.js +502 -0
  162. package/dist/shell/commands.d.ts +25 -0
  163. package/dist/shell/commands.js +78 -0
  164. package/dist/shell/index.d.ts +8 -0
  165. package/dist/shell/index.js +8 -0
  166. package/dist/shell/keys.d.ts +41 -0
  167. package/dist/shell/keys.js +134 -0
  168. package/dist/shell/shell-module.d.ts +55 -0
  169. package/dist/shell/shell-module.js +86 -0
  170. package/dist/shell/window-manager.d.ts +124 -0
  171. package/dist/shell/window-manager.js +711 -0
  172. package/dist/shell/workbench-contract.d.ts +68 -0
  173. package/dist/shell/workbench-contract.js +1 -0
  174. package/dist/shell/workbench-directory.d.ts +332 -0
  175. package/dist/shell/workbench-directory.js +35 -0
  176. package/dist/shell/workbench-host-types.d.ts +96 -0
  177. package/dist/shell/workbench-host-types.js +1 -0
  178. package/dist/shell/workbench-host.d.ts +34 -0
  179. package/dist/shell/workbench-host.js +347 -0
  180. package/dist/shell/workbench-model.d.ts +192 -0
  181. package/dist/shell/workbench-model.js +53 -0
  182. package/dist/shell/workbench.d.ts +4 -0
  183. package/dist/shell/workbench.js +2 -0
  184. package/dist/source/fork.d.ts +27 -0
  185. package/dist/source/fork.js +46 -0
  186. package/dist/source/index.d.ts +10 -0
  187. package/dist/source/index.js +10 -0
  188. package/dist/source/seed-receipt.d.ts +53 -0
  189. package/dist/source/seed-receipt.js +18 -0
  190. package/dist/source/team-source.d.ts +32 -0
  191. package/dist/source/team-source.js +42 -0
  192. package/dist/source/template-push.d.ts +33 -0
  193. package/dist/source/template-push.js +223 -0
  194. package/dist/source/template-repository.d.ts +4 -0
  195. package/dist/source/template-repository.js +21 -0
  196. package/dist/source/template-seed.d.ts +68 -0
  197. package/dist/source/template-seed.js +80 -0
  198. package/dist/standalone/agent-directory.d.ts +4 -0
  199. package/dist/standalone/agent-directory.js +4 -0
  200. package/dist/standalone/agents.d.ts +220 -0
  201. package/dist/standalone/agents.js +795 -0
  202. package/dist/standalone/app-builds-binding.d.ts +36 -0
  203. package/dist/standalone/app-builds-binding.js +119 -0
  204. package/dist/standalone/app-set.d.ts +91 -0
  205. package/dist/standalone/app-set.js +395 -0
  206. package/dist/standalone/app-source.d.ts +41 -0
  207. package/dist/standalone/app-source.js +59 -0
  208. package/dist/standalone/builds.d.ts +18 -0
  209. package/dist/standalone/builds.js +101 -0
  210. package/dist/standalone/computer-egress.d.ts +37 -0
  211. package/dist/standalone/computer-egress.js +111 -0
  212. package/dist/standalone/computer.d.ts +122 -0
  213. package/dist/standalone/computer.js +714 -0
  214. package/dist/standalone/install-apps-cli.d.ts +2 -0
  215. package/dist/standalone/install-apps-cli.js +126 -0
  216. package/dist/standalone/instance.d.ts +35 -0
  217. package/dist/standalone/instance.js +74 -0
  218. package/dist/standalone/media.d.ts +76 -0
  219. package/dist/standalone/media.js +227 -0
  220. package/dist/standalone/preview.d.ts +51 -0
  221. package/dist/standalone/preview.js +167 -0
  222. package/dist/standalone/registry.d.ts +102 -0
  223. package/dist/standalone/registry.js +193 -0
  224. package/dist/standalone/tenancy.d.ts +42 -0
  225. package/dist/standalone/tenancy.js +241 -0
  226. package/dist/standalone/worker.d.ts +55 -0
  227. package/dist/standalone/worker.js +147 -0
  228. package/dist/standalone/workflow-authority-readers.d.ts +16 -0
  229. package/dist/standalone/workflow-authority-readers.js +35 -0
  230. package/dist/standalone/workflow-binding.d.ts +216 -0
  231. package/dist/standalone/workflow-binding.js +217 -0
  232. package/dist/standalone/workflow-events.d.ts +46 -0
  233. package/dist/standalone/workflow-events.js +39 -0
  234. package/dist/standalone/workflow-git-capture.d.ts +7 -0
  235. package/dist/standalone/workflow-git-capture.js +62 -0
  236. package/dist/standalone/workflow-host.d.ts +931 -0
  237. package/dist/standalone/workflow-host.js +751 -0
  238. package/dist/standalone/workflow-node-capture.d.ts +13 -0
  239. package/dist/standalone/workflow-node-capture.js +72 -0
  240. package/dist/standalone/workflow-root-authority.d.ts +27 -0
  241. package/dist/standalone/workflow-root-authority.js +87 -0
  242. package/dist/standalone/workflow-schedules.d.ts +52 -0
  243. package/dist/standalone/workflow-schedules.js +40 -0
  244. package/dist/standalone/workflow-trigger-host.d.ts +1694 -0
  245. package/dist/standalone/workflow-trigger-host.js +52 -0
  246. package/dist/standalone/workflows.d.ts +657 -0
  247. package/dist/standalone/workflows.js +554 -0
  248. package/dist/storage-frame.d.ts +64 -0
  249. package/dist/storage-frame.js +28 -0
  250. package/dist/tenancy/auth0.d.ts +64 -0
  251. package/dist/tenancy/auth0.js +198 -0
  252. package/dist/tenancy/cloudflare/rate-limit.d.ts +8 -0
  253. package/dist/tenancy/cloudflare/rate-limit.js +19 -0
  254. package/dist/tenancy/cloudflare/registry.d.ts +50 -0
  255. package/dist/tenancy/cloudflare/registry.js +301 -0
  256. package/dist/tenancy/cloudflare.d.ts +2 -0
  257. package/dist/tenancy/cloudflare.js +2 -0
  258. package/dist/tenancy/cold-directory.d.ts +13 -0
  259. package/dist/tenancy/cold-directory.js +43 -0
  260. package/dist/tenancy/contracts.d.ts +195 -0
  261. package/dist/tenancy/contracts.js +1 -0
  262. package/dist/tenancy/index.d.ts +19 -0
  263. package/dist/tenancy/index.js +156 -0
  264. package/dist/tenancy/owner-key.d.ts +26 -0
  265. package/dist/tenancy/owner-key.js +63 -0
  266. package/dist/tenancy/oyster.d.ts +4 -0
  267. package/dist/tenancy/oyster.js +25 -0
  268. package/dist/tenancy/registry-record.d.ts +7 -0
  269. package/dist/tenancy/registry-record.js +44 -0
  270. package/dist/tenancy/registry.d.ts +27 -0
  271. package/dist/tenancy/registry.js +138 -0
  272. package/dist/tenancy/resolve.d.ts +7 -0
  273. package/dist/tenancy/resolve.js +64 -0
  274. package/dist/tenant.d.ts +81 -0
  275. package/dist/tenant.js +71 -0
  276. package/dist/testing/capabilities.d.ts +29 -0
  277. package/dist/testing/capabilities.js +130 -0
  278. package/dist/testing/catalog.d.ts +3 -0
  279. package/dist/testing/catalog.js +53 -0
  280. package/dist/testing/index.d.ts +10 -0
  281. package/dist/testing/index.js +10 -0
  282. package/dist/testing/installation.d.ts +11 -0
  283. package/dist/testing/installation.js +25 -0
  284. package/dist/testing/native-worker.d.ts +21 -0
  285. package/dist/testing/native-worker.js +106 -0
  286. package/dist/testing/worker.d.ts +18 -0
  287. package/dist/testing/worker.js +67 -0
  288. package/dist/testing/workers-runtime.d.ts +24 -0
  289. package/dist/testing/workers-runtime.js +33 -0
  290. package/dist/webhook-delivery.d.ts +14 -0
  291. package/dist/webhook-delivery.js +17 -0
  292. package/dist/workers-git.d.ts +285 -0
  293. package/dist/workers-git.js +1174 -0
  294. package/dist/workers.d.ts +352 -0
  295. package/dist/workers.js +868 -0
  296. package/docs/api/README.md +82 -0
  297. package/docs/api/agents.md +332 -0
  298. package/docs/api/app-storage.md +209 -0
  299. package/docs/api/apps.md +1375 -0
  300. package/docs/api/auth.md +63 -0
  301. package/docs/api/build-contract.md +1304 -0
  302. package/docs/api/build.md +1712 -0
  303. package/docs/api/cloudflare.md +421 -0
  304. package/docs/api/computer.md +203 -0
  305. package/docs/api/files.md +117 -0
  306. package/docs/api/git.md +470 -0
  307. package/docs/api/host.md +1328 -0
  308. package/docs/api/index.md +430 -0
  309. package/docs/api/invocation.md +738 -0
  310. package/docs/api/keys.md +175 -0
  311. package/docs/api/mcp.md +301 -0
  312. package/docs/api/media.md +40 -0
  313. package/docs/api/modules.md +50 -0
  314. package/docs/api/pack.md +141 -0
  315. package/docs/api/page/mount.md +298 -0
  316. package/docs/api/root-data.md +111 -0
  317. package/docs/api/shell/app-directory.md +599 -0
  318. package/docs/api/shell/command-host.md +224 -0
  319. package/docs/api/shell/commands.md +197 -0
  320. package/docs/api/shell/keys.md +183 -0
  321. package/docs/api/shell/shell-module.md +204 -0
  322. package/docs/api/shell/window-manager.md +267 -0
  323. package/docs/api/shell/workbench-directory.md +119 -0
  324. package/docs/api/shell/workbench.md +205 -0
  325. package/docs/api/shell.md +1915 -0
  326. package/docs/api/tenancy/auth0.md +110 -0
  327. package/docs/api/tenancy/cloudflare.md +221 -0
  328. package/docs/api/tenancy/cold-directory.md +46 -0
  329. package/docs/api/tenancy/owner-key.md +63 -0
  330. package/docs/api/tenancy/registry.md +77 -0
  331. package/docs/api/tenancy/resolve.md +69 -0
  332. package/docs/api/tenancy.md +430 -0
  333. package/docs/api/tenant.md +194 -0
  334. package/docs/api/workers-git.md +1646 -0
  335. package/docs/api/workers.md +1691 -0
  336. package/docs/site/agent-quickstart.mdx +346 -0
  337. package/examples/standalone/worker.ts +7 -0
  338. package/examples/standalone/wrangler.jsonc +82 -0
  339. package/package.json +300 -3
@@ -0,0 +1,931 @@
1
+ import * as S from "effect/Schema";
2
+ import { type Catalog, type DispatchResult, type NodeAdmissionResult, type NodeCall, type NodeEvent } from "@fungi.computer/braid";
3
+ import { type OysterHost } from "../host.js";
4
+ import { type InvocationFacts } from "../invocation.js";
5
+ import type { AppMethodCallContext } from "@fungi.computer/puffball/app-method-runtime";
6
+ import type { WatchdogSqliteOwner } from "@fungi.computer/watchdog";
7
+ import { type GraphStartRequest, type WorkflowCatalogEntry, type WorkflowRunAuthority, type WorkflowGitPassNode, type WorkflowRunDelivery } from "@fungi.computer/braid/runtime";
8
+ import { type AppEventFact } from "@fungi.computer/puffball/app-event-facts";
9
+ export type StandaloneWorkflowHost = Pick<OysterHost, "installations" | "artifacts" | "instances" | "computerId" | "git" | "capabilities" | "keys">;
10
+ type CatalogMethodSummary = Readonly<{
11
+ pending?: true;
12
+ description: string;
13
+ effect: Catalog[string]["methods"][string]["effect"];
14
+ approval: Catalog[string]["methods"][string]["approval"];
15
+ requires: Catalog[string]["methods"][string]["requires"];
16
+ digest: string;
17
+ }>;
18
+ type CatalogEventSummary = Readonly<{
19
+ description: string;
20
+ digest: string;
21
+ }>;
22
+ /** The standalone host's installation admission, above the portable engine. */
23
+ export declare function createStandaloneWorkflowHost(owner: WatchdogSqliteOwner, host: StandaloneWorkflowHost, options: Readonly<{
24
+ authority(libraryInstallationId: string): WorkflowRunAuthority;
25
+ /** Whether this member may have run endings reported to the Agent Session. */
26
+ admitDelivery(memberId: string, delivery: WorkflowRunDelivery): Promise<boolean>;
27
+ }>): {
28
+ store: {
29
+ read: (runId: string) => import("@fungi.computer/braid/runtime").GraphRun | null;
30
+ list(filter: {
31
+ installationId: string;
32
+ actorId?: string;
33
+ workflowId?: string;
34
+ }): readonly (import("@fungi.computer/braid/runtime").GraphRun & {
35
+ startedAt: number;
36
+ })[];
37
+ active(): readonly import("@fungi.computer/braid/runtime").GraphRun[];
38
+ outcome(runId: string): "active" | "terminal" | "cancelled" | null;
39
+ markTerminal(runId: string, outcome?: "terminal" | "cancelled"): void;
40
+ startCompiled: (input: import("@fungi.computer/braid/runtime").GraphRun) => "started" | "replay" | "conflict";
41
+ start(input: import("@fungi.computer/braid/runtime").GraphRun): Promise<"started" | "replay" | "conflict">;
42
+ recordEvent(input: NodeEvent): void;
43
+ events(runId: string): readonly NodeEvent[];
44
+ openReview(input: import("@fungi.computer/braid").GraphReview): number;
45
+ reviews(runId: string): {
46
+ review: {
47
+ readonly show: readonly S.Json[];
48
+ readonly title: string;
49
+ readonly timeout: number;
50
+ readonly runId: string;
51
+ readonly nodeId: string;
52
+ readonly reviewers: "runner" | "owners";
53
+ readonly iteration: string;
54
+ readonly instanceId: string;
55
+ readonly eventType: string;
56
+ readonly choices?: readonly string[];
57
+ };
58
+ status: "closed" | "pending" | "answered" | "delivered" | "timed_out";
59
+ openedAt: number;
60
+ expiresAt: number;
61
+ }[];
62
+ answerReview(key: Pick<import("@fungi.computer/braid").GraphReview, "runId" | "nodeId" | "iteration">, answer: {
63
+ readonly approved: boolean;
64
+ } | {
65
+ readonly choice: string;
66
+ readonly note?: string | undefined;
67
+ }, reviewer: import("@fungi.computer/braid/runtime").GraphReviewer): "accepted" | "denied" | "not_waiting" | "invalid";
68
+ pendingReviewDeliveries(runId: string): readonly import("@fungi.computer/braid/runtime").ReviewDelivery[];
69
+ markReviewDelivered(delivery: import("@fungi.computer/braid/runtime").ReviewDelivery): void;
70
+ };
71
+ caller: (runId: string) => AppMethodCallContext;
72
+ admitLibrary: (installationId: string, operation: string) => Promise<{
73
+ installation: Readonly<{
74
+ installationId: string;
75
+ instanceId: import("../index.js").InstanceId | null;
76
+ appId: import("@fungi.computer/puffball").AppId;
77
+ release: {
78
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
79
+ readonly appId: import("@fungi.computer/puffball").AppId;
80
+ readonly artifact: {
81
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
82
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
83
+ readonly provenance: {
84
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
85
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
86
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
87
+ };
88
+ };
89
+ };
90
+ releasePin: "pinned" | "floating";
91
+ authorityVersion: number;
92
+ status: "enabled" | "disabled" | "deleted";
93
+ visibility: "private" | "public";
94
+ declaredOperationsDigest: import("@fungi.computer/puffball").Sha256Digest;
95
+ approvedGrants: readonly Readonly<{
96
+ capability: "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";
97
+ capabilityApproved: true;
98
+ operations: readonly string[];
99
+ resources: "tenant-scope" | readonly Readonly<{
100
+ kind: string;
101
+ id: string;
102
+ }>[];
103
+ }>[];
104
+ approval: Readonly<{
105
+ by: {
106
+ kind: "member";
107
+ memberId: string;
108
+ } | {
109
+ kind: "agent";
110
+ agentId: string;
111
+ } | {
112
+ kind: "team-key";
113
+ keyId: string;
114
+ };
115
+ at: number;
116
+ authorityVersion: number;
117
+ }> | null;
118
+ approvedAnonymousMethods: readonly Readonly<{
119
+ name: string;
120
+ digest: import("@fungi.computer/puffball").Sha256Digest;
121
+ }>[];
122
+ anonymousApproval: Readonly<{
123
+ by: {
124
+ kind: "member";
125
+ memberId: string;
126
+ } | {
127
+ kind: "agent";
128
+ agentId: string;
129
+ } | {
130
+ kind: "team-key";
131
+ keyId: string;
132
+ };
133
+ at: number;
134
+ authorityVersion: number;
135
+ }> | null;
136
+ }>;
137
+ verified: Readonly<{
138
+ release: import("@fungi.computer/puffball").Release;
139
+ build: import("@fungi.computer/puffball/app").AppBuild;
140
+ api: import("@fungi.computer/puffball").AppApi | null;
141
+ declaration: import("@fungi.computer/puffball").AppDeclaration | null;
142
+ ui: Readonly<{
143
+ kind: "html";
144
+ artifactRef: import("@fungi.computer/puffball").ArtifactRef;
145
+ digest: import("@fungi.computer/puffball").Sha256Digest;
146
+ }> | Readonly<{
147
+ kind: "assets";
148
+ build: import("@fungi.computer/puffball/assets").AssetBuild;
149
+ }> | null;
150
+ backend: Readonly<{
151
+ artifactRef: import("@fungi.computer/puffball").ArtifactRef;
152
+ digest: import("@fungi.computer/puffball").Sha256Digest;
153
+ }> | null;
154
+ }>;
155
+ }>;
156
+ admitInvocation: (raw: InvocationFacts, operation: string) => Promise<{
157
+ libraryId: string;
158
+ context: {
159
+ computerId: string | null;
160
+ actor: {
161
+ kind: "member";
162
+ memberId: string;
163
+ } | {
164
+ kind: "agent";
165
+ agentId: string;
166
+ } | {
167
+ kind: "team-key";
168
+ keyId: string;
169
+ };
170
+ backgroundLane?: string | undefined;
171
+ backgroundOrigin?: {
172
+ method: string;
173
+ seal: string;
174
+ } | undefined;
175
+ role?: "member" | "owner" | undefined;
176
+ soleMember?: true | undefined;
177
+ workflow?: {
178
+ workflowId: string;
179
+ runId: string;
180
+ nodeId: string;
181
+ armedBy: {
182
+ kind: "member";
183
+ memberId: string;
184
+ } | {
185
+ kind: "agent";
186
+ agentId: string;
187
+ } | {
188
+ kind: "team-key";
189
+ keyId: string;
190
+ };
191
+ } | undefined;
192
+ idempotencyKey?: string | undefined;
193
+ };
194
+ installationAuthority: {
195
+ selection: {
196
+ readonly instanceId: import("../index.js").InstanceId;
197
+ readonly owner: {
198
+ readonly kind: "installation" | "deployment";
199
+ readonly id: string;
200
+ };
201
+ readonly appId: import("@fungi.computer/puffball").AppId;
202
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
203
+ readonly authorityVersion: number;
204
+ };
205
+ artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
206
+ };
207
+ installation: Readonly<{
208
+ installationId: string;
209
+ instanceId: import("../index.js").InstanceId | null;
210
+ appId: import("@fungi.computer/puffball").AppId;
211
+ release: {
212
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
213
+ readonly appId: import("@fungi.computer/puffball").AppId;
214
+ readonly artifact: {
215
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
216
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
217
+ readonly provenance: {
218
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
219
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
220
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
221
+ };
222
+ };
223
+ };
224
+ releasePin: "pinned" | "floating";
225
+ authorityVersion: number;
226
+ status: "enabled" | "disabled" | "deleted";
227
+ visibility: "private" | "public";
228
+ declaredOperationsDigest: import("@fungi.computer/puffball").Sha256Digest;
229
+ approvedGrants: readonly Readonly<{
230
+ capability: "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";
231
+ capabilityApproved: true;
232
+ operations: readonly string[];
233
+ resources: "tenant-scope" | readonly Readonly<{
234
+ kind: string;
235
+ id: string;
236
+ }>[];
237
+ }>[];
238
+ approval: Readonly<{
239
+ by: {
240
+ kind: "member";
241
+ memberId: string;
242
+ } | {
243
+ kind: "agent";
244
+ agentId: string;
245
+ } | {
246
+ kind: "team-key";
247
+ keyId: string;
248
+ };
249
+ at: number;
250
+ authorityVersion: number;
251
+ }> | null;
252
+ approvedAnonymousMethods: readonly Readonly<{
253
+ name: string;
254
+ digest: import("@fungi.computer/puffball").Sha256Digest;
255
+ }>[];
256
+ anonymousApproval: Readonly<{
257
+ by: {
258
+ kind: "member";
259
+ memberId: string;
260
+ } | {
261
+ kind: "agent";
262
+ agentId: string;
263
+ } | {
264
+ kind: "team-key";
265
+ keyId: string;
266
+ };
267
+ at: number;
268
+ authorityVersion: number;
269
+ }> | null;
270
+ }>;
271
+ verified: Readonly<{
272
+ release: import("@fungi.computer/puffball").Release;
273
+ build: import("@fungi.computer/puffball/app").AppBuild;
274
+ api: import("@fungi.computer/puffball").AppApi | null;
275
+ declaration: import("@fungi.computer/puffball").AppDeclaration | null;
276
+ ui: Readonly<{
277
+ kind: "html";
278
+ artifactRef: import("@fungi.computer/puffball").ArtifactRef;
279
+ digest: import("@fungi.computer/puffball").Sha256Digest;
280
+ }> | Readonly<{
281
+ kind: "assets";
282
+ build: import("@fungi.computer/puffball/assets").AssetBuild;
283
+ }> | null;
284
+ backend: Readonly<{
285
+ artifactRef: import("@fungi.computer/puffball").ArtifactRef;
286
+ digest: import("@fungi.computer/puffball").Sha256Digest;
287
+ }> | null;
288
+ }>;
289
+ }>;
290
+ triggerAuthority: (installationId: string) => Promise<{
291
+ installation: Readonly<{
292
+ installationId: string;
293
+ instanceId: import("../index.js").InstanceId | null;
294
+ appId: import("@fungi.computer/puffball").AppId;
295
+ release: {
296
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
297
+ readonly appId: import("@fungi.computer/puffball").AppId;
298
+ readonly artifact: {
299
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
300
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
301
+ readonly provenance: {
302
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
303
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
304
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
305
+ };
306
+ };
307
+ };
308
+ releasePin: "pinned" | "floating";
309
+ authorityVersion: number;
310
+ status: "enabled" | "disabled" | "deleted";
311
+ visibility: "private" | "public";
312
+ declaredOperationsDigest: import("@fungi.computer/puffball").Sha256Digest;
313
+ approvedGrants: readonly Readonly<{
314
+ capability: "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";
315
+ capabilityApproved: true;
316
+ operations: readonly string[];
317
+ resources: "tenant-scope" | readonly Readonly<{
318
+ kind: string;
319
+ id: string;
320
+ }>[];
321
+ }>[];
322
+ approval: Readonly<{
323
+ by: {
324
+ kind: "member";
325
+ memberId: string;
326
+ } | {
327
+ kind: "agent";
328
+ agentId: string;
329
+ } | {
330
+ kind: "team-key";
331
+ keyId: string;
332
+ };
333
+ at: number;
334
+ authorityVersion: number;
335
+ }> | null;
336
+ approvedAnonymousMethods: readonly Readonly<{
337
+ name: string;
338
+ digest: import("@fungi.computer/puffball").Sha256Digest;
339
+ }>[];
340
+ anonymousApproval: Readonly<{
341
+ by: {
342
+ kind: "member";
343
+ memberId: string;
344
+ } | {
345
+ kind: "agent";
346
+ agentId: string;
347
+ } | {
348
+ kind: "team-key";
349
+ keyId: string;
350
+ };
351
+ at: number;
352
+ authorityVersion: number;
353
+ }> | null;
354
+ }>;
355
+ pin: {
356
+ selection: {
357
+ readonly instanceId: import("../index.js").InstanceId;
358
+ readonly owner: {
359
+ readonly kind: "installation" | "deployment";
360
+ readonly id: string;
361
+ };
362
+ readonly appId: import("@fungi.computer/puffball").AppId;
363
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
364
+ readonly authorityVersion: number;
365
+ };
366
+ artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
367
+ };
368
+ }>;
369
+ admitEventFact: (raw: AppEventFact) => Promise<AppEventFact>;
370
+ gitNode: (idempotencyKey: string) => WorkflowGitPassNode | null;
371
+ /** A finished run's Git steps can no longer be named by a pass mint. */
372
+ forgetGitNodes(runId: string): void;
373
+ /** Trigger runs act as the owner who armed them on their pinned Computer. */
374
+ recordTriggerCaller(runId: string, memberId: string, computerId: string | null): void;
375
+ catalog: (facts: InvocationFacts, input?: Readonly<{
376
+ installationId?: string | undefined;
377
+ }>) => Promise<Readonly<{
378
+ error: "too_large";
379
+ }> | Readonly<{
380
+ apps: readonly Readonly<{
381
+ installationId: string;
382
+ appId: string;
383
+ displayName: string;
384
+ icon?: string;
385
+ capabilities?: WorkflowCatalogEntry["capabilities"];
386
+ workflowPublishGranted: boolean;
387
+ workflowRunGranted: boolean;
388
+ methods: Readonly<Record<string, CatalogMethodSummary>>;
389
+ events?: Readonly<Record<string, CatalogEventSummary>>;
390
+ }>[];
391
+ }> | {
392
+ app: Readonly<{
393
+ installationId: string;
394
+ appId: string;
395
+ displayName: string;
396
+ icon?: string;
397
+ capabilities?: import("@fungi.computer/braid/runtime").RunCeiling["nodes"][number]["capabilities"];
398
+ workflowPublishGranted?: boolean;
399
+ workflowRunGranted?: boolean;
400
+ methods: Catalog[string]["methods"];
401
+ events?: NonNullable<Catalog[string]["events"]>;
402
+ }>;
403
+ } | {
404
+ error: "not_found";
405
+ }>;
406
+ catalogForLibrary: {
407
+ (library: Awaited<ReturnType<(installationId: string) => Promise<{
408
+ installation: Readonly<{
409
+ installationId: string;
410
+ instanceId: import("../index.js").InstanceId | null;
411
+ appId: import("@fungi.computer/puffball").AppId;
412
+ release: {
413
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
414
+ readonly appId: import("@fungi.computer/puffball").AppId;
415
+ readonly artifact: {
416
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
417
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
418
+ readonly provenance: {
419
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
420
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
421
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
422
+ };
423
+ };
424
+ };
425
+ releasePin: "pinned" | "floating";
426
+ authorityVersion: number;
427
+ status: "enabled" | "disabled" | "deleted";
428
+ visibility: "private" | "public";
429
+ declaredOperationsDigest: import("@fungi.computer/puffball").Sha256Digest;
430
+ approvedGrants: readonly Readonly<{
431
+ capability: "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";
432
+ capabilityApproved: true;
433
+ operations: readonly string[];
434
+ resources: "tenant-scope" | readonly Readonly<{
435
+ kind: string;
436
+ id: string;
437
+ }>[];
438
+ }>[];
439
+ approval: Readonly<{
440
+ by: {
441
+ kind: "member";
442
+ memberId: string;
443
+ } | {
444
+ kind: "agent";
445
+ agentId: string;
446
+ } | {
447
+ kind: "team-key";
448
+ keyId: string;
449
+ };
450
+ at: number;
451
+ authorityVersion: number;
452
+ }> | null;
453
+ approvedAnonymousMethods: readonly Readonly<{
454
+ name: string;
455
+ digest: import("@fungi.computer/puffball").Sha256Digest;
456
+ }>[];
457
+ anonymousApproval: Readonly<{
458
+ by: {
459
+ kind: "member";
460
+ memberId: string;
461
+ } | {
462
+ kind: "agent";
463
+ agentId: string;
464
+ } | {
465
+ kind: "team-key";
466
+ keyId: string;
467
+ };
468
+ at: number;
469
+ authorityVersion: number;
470
+ }> | null;
471
+ }>;
472
+ verified: Readonly<{
473
+ release: import("@fungi.computer/puffball").Release;
474
+ build: import("@fungi.computer/puffball/app").AppBuild;
475
+ api: import("@fungi.computer/puffball").AppApi | null;
476
+ declaration: import("@fungi.computer/puffball").AppDeclaration | null;
477
+ ui: Readonly<{
478
+ kind: "html";
479
+ artifactRef: import("@fungi.computer/puffball").ArtifactRef;
480
+ digest: import("@fungi.computer/puffball").Sha256Digest;
481
+ }> | Readonly<{
482
+ kind: "assets";
483
+ build: import("@fungi.computer/puffball/assets").AssetBuild;
484
+ }> | null;
485
+ backend: Readonly<{
486
+ artifactRef: import("@fungi.computer/puffball").ArtifactRef;
487
+ digest: import("@fungi.computer/puffball").Sha256Digest;
488
+ }> | null;
489
+ }>;
490
+ }>>>): Promise<Readonly<{
491
+ error: "too_large";
492
+ }> | Readonly<{
493
+ apps: readonly Readonly<{
494
+ installationId: string;
495
+ appId: string;
496
+ displayName: string;
497
+ icon?: string;
498
+ capabilities?: WorkflowCatalogEntry["capabilities"];
499
+ workflowPublishGranted: boolean;
500
+ workflowRunGranted: boolean;
501
+ methods: Readonly<Record<string, CatalogMethodSummary>>;
502
+ events?: Readonly<Record<string, CatalogEventSummary>>;
503
+ }>[];
504
+ }>>;
505
+ (library: Awaited<ReturnType<(installationId: string) => Promise<{
506
+ installation: Readonly<{
507
+ installationId: string;
508
+ instanceId: import("../index.js").InstanceId | null;
509
+ appId: import("@fungi.computer/puffball").AppId;
510
+ release: {
511
+ readonly releaseId: import("@fungi.computer/puffball").ReleaseId;
512
+ readonly appId: import("@fungi.computer/puffball").AppId;
513
+ readonly artifact: {
514
+ readonly artifactRef: import("@fungi.computer/puffball").ArtifactRef;
515
+ readonly artifactDigest: import("@fungi.computer/puffball").Sha256Digest;
516
+ readonly provenance: {
517
+ readonly sourceRevision: import("@fungi.computer/puffball").SourceRevision;
518
+ readonly sourceTreeDigest: import("@fungi.computer/puffball").Sha256Digest;
519
+ readonly buildRecipeDigest: import("@fungi.computer/puffball").Sha256Digest;
520
+ };
521
+ };
522
+ };
523
+ releasePin: "pinned" | "floating";
524
+ authorityVersion: number;
525
+ status: "enabled" | "disabled" | "deleted";
526
+ visibility: "private" | "public";
527
+ declaredOperationsDigest: import("@fungi.computer/puffball").Sha256Digest;
528
+ approvedGrants: readonly Readonly<{
529
+ capability: "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";
530
+ capabilityApproved: true;
531
+ operations: readonly string[];
532
+ resources: "tenant-scope" | readonly Readonly<{
533
+ kind: string;
534
+ id: string;
535
+ }>[];
536
+ }>[];
537
+ approval: Readonly<{
538
+ by: {
539
+ kind: "member";
540
+ memberId: string;
541
+ } | {
542
+ kind: "agent";
543
+ agentId: string;
544
+ } | {
545
+ kind: "team-key";
546
+ keyId: string;
547
+ };
548
+ at: number;
549
+ authorityVersion: number;
550
+ }> | null;
551
+ approvedAnonymousMethods: readonly Readonly<{
552
+ name: string;
553
+ digest: import("@fungi.computer/puffball").Sha256Digest;
554
+ }>[];
555
+ anonymousApproval: Readonly<{
556
+ by: {
557
+ kind: "member";
558
+ memberId: string;
559
+ } | {
560
+ kind: "agent";
561
+ agentId: string;
562
+ } | {
563
+ kind: "team-key";
564
+ keyId: string;
565
+ };
566
+ at: number;
567
+ authorityVersion: number;
568
+ }> | null;
569
+ }>;
570
+ verified: Readonly<{
571
+ release: import("@fungi.computer/puffball").Release;
572
+ build: import("@fungi.computer/puffball/app").AppBuild;
573
+ api: import("@fungi.computer/puffball").AppApi | null;
574
+ declaration: import("@fungi.computer/puffball").AppDeclaration | null;
575
+ ui: Readonly<{
576
+ kind: "html";
577
+ artifactRef: import("@fungi.computer/puffball").ArtifactRef;
578
+ digest: import("@fungi.computer/puffball").Sha256Digest;
579
+ }> | Readonly<{
580
+ kind: "assets";
581
+ build: import("@fungi.computer/puffball/assets").AssetBuild;
582
+ }> | null;
583
+ backend: Readonly<{
584
+ artifactRef: import("@fungi.computer/puffball").ArtifactRef;
585
+ digest: import("@fungi.computer/puffball").Sha256Digest;
586
+ }> | null;
587
+ }>;
588
+ }>>>, scope: Readonly<{
589
+ installationIds: readonly string[];
590
+ }> | Readonly<{
591
+ full: true;
592
+ }>): Promise<Readonly<{
593
+ apps: readonly WorkflowCatalogEntry[];
594
+ }>>;
595
+ };
596
+ prepare(facts: InvocationFacts, raw: GraphStartRequest): Promise<(Readonly<{
597
+ apps: readonly WorkflowCatalogEntry[];
598
+ }> & Record<"error", unknown>) | Readonly<{
599
+ kind: "invalid";
600
+ issues: readonly import("@fungi.computer/braid").Issue[];
601
+ }> | {
602
+ error: "not_granted";
603
+ kind?: undefined;
604
+ runId?: undefined;
605
+ planDigest?: undefined;
606
+ } | {
607
+ error: "invalid_publication";
608
+ kind?: undefined;
609
+ runId?: undefined;
610
+ planDigest?: undefined;
611
+ } | {
612
+ error: "invalid_input";
613
+ kind?: undefined;
614
+ runId?: undefined;
615
+ planDigest?: undefined;
616
+ } | {
617
+ kind: "conflict" | "replay" | "started";
618
+ runId: string;
619
+ planDigest: string;
620
+ readonly error?: undefined;
621
+ }>;
622
+ loadRun(libraryId: string, runId: string): Promise<{
623
+ plan: {
624
+ readonly planDigest: string;
625
+ readonly definition: {
626
+ readonly format: "fungi.workflow/v1";
627
+ readonly output: {
628
+ readonly [x: string]: {
629
+ readonly node: string;
630
+ readonly port: string;
631
+ };
632
+ };
633
+ readonly input: {
634
+ readonly [x: string]: S.Json;
635
+ };
636
+ readonly title: string;
637
+ readonly apps: {
638
+ readonly [x: string]: {
639
+ readonly appId: string;
640
+ readonly role?: string | undefined;
641
+ };
642
+ };
643
+ readonly nodes: readonly ({
644
+ readonly id: string;
645
+ readonly kind: "code";
646
+ readonly source: string;
647
+ readonly input: {
648
+ readonly [x: string]: S.Json;
649
+ };
650
+ readonly output: {
651
+ readonly [x: string]: S.Json;
652
+ };
653
+ readonly values: {
654
+ readonly [x: string]: import("@fungi.computer/braid").Mapping;
655
+ };
656
+ } | {
657
+ readonly values: {
658
+ readonly [x: string]: import("@fungi.computer/braid").Mapping;
659
+ };
660
+ readonly method: string;
661
+ readonly kind: "app";
662
+ readonly id: string;
663
+ readonly app: string;
664
+ readonly methodDigest: string;
665
+ readonly retry?: {
666
+ readonly attempts: number;
667
+ } | undefined;
668
+ readonly gitAccess?: {
669
+ binding: string;
670
+ repository: string;
671
+ branches: string[];
672
+ } | {
673
+ binding: string;
674
+ repository: string;
675
+ access: "read";
676
+ } | undefined;
677
+ } | {
678
+ readonly kind: "review";
679
+ readonly id: string;
680
+ readonly title: string;
681
+ readonly reviewers: "runner" | "owners";
682
+ readonly show: readonly {
683
+ readonly node: string;
684
+ readonly port: string;
685
+ }[];
686
+ readonly timeout: number;
687
+ readonly choices?: readonly {
688
+ readonly id: string;
689
+ readonly label: string;
690
+ }[] | undefined;
691
+ } | {
692
+ readonly id: string;
693
+ readonly kind: "condition";
694
+ readonly test: import("@fungi.computer/braid").Predicate;
695
+ } | {
696
+ readonly id: string;
697
+ readonly kind: "map";
698
+ readonly over: {
699
+ readonly node: string;
700
+ readonly port: string;
701
+ };
702
+ readonly body: string;
703
+ readonly concurrency: number;
704
+ readonly maxItems: number;
705
+ } | {
706
+ readonly id: string;
707
+ readonly kind: "repeat";
708
+ readonly body: string;
709
+ readonly maxRounds: number;
710
+ readonly until: import("@fungi.computer/braid").Predicate;
711
+ } | {
712
+ readonly id: string;
713
+ readonly kind: "wait";
714
+ readonly for: number;
715
+ } | {
716
+ readonly id: string;
717
+ readonly kind: "transform";
718
+ readonly fields: {
719
+ readonly [x: string]: import("@fungi.computer/braid").Mapping;
720
+ };
721
+ })[];
722
+ readonly edges: readonly {
723
+ readonly from: {
724
+ readonly node: string;
725
+ readonly port: string;
726
+ };
727
+ readonly to: {
728
+ readonly node: string;
729
+ readonly port: string;
730
+ };
731
+ }[];
732
+ readonly description?: string | undefined;
733
+ readonly subgraphs?: {
734
+ readonly [x: string]: {
735
+ readonly input: {
736
+ readonly [x: string]: S.Json;
737
+ };
738
+ readonly nodes: readonly ({
739
+ readonly id: string;
740
+ readonly kind: "code";
741
+ readonly source: string;
742
+ readonly input: {
743
+ readonly [x: string]: S.Json;
744
+ };
745
+ readonly output: {
746
+ readonly [x: string]: S.Json;
747
+ };
748
+ readonly values: {
749
+ readonly [x: string]: import("@fungi.computer/braid").Mapping;
750
+ };
751
+ } | {
752
+ readonly values: {
753
+ readonly [x: string]: import("@fungi.computer/braid").Mapping;
754
+ };
755
+ readonly method: string;
756
+ readonly kind: "app";
757
+ readonly id: string;
758
+ readonly app: string;
759
+ readonly methodDigest: string;
760
+ readonly retry?: {
761
+ readonly attempts: number;
762
+ } | undefined;
763
+ readonly gitAccess?: {
764
+ binding: string;
765
+ repository: string;
766
+ branches: string[];
767
+ } | {
768
+ binding: string;
769
+ repository: string;
770
+ access: "read";
771
+ } | undefined;
772
+ } | {
773
+ readonly kind: "review";
774
+ readonly id: string;
775
+ readonly title: string;
776
+ readonly reviewers: "runner" | "owners";
777
+ readonly show: readonly {
778
+ readonly node: string;
779
+ readonly port: string;
780
+ }[];
781
+ readonly timeout: number;
782
+ readonly choices?: readonly {
783
+ readonly id: string;
784
+ readonly label: string;
785
+ }[] | undefined;
786
+ } | {
787
+ readonly id: string;
788
+ readonly kind: "condition";
789
+ readonly test: import("@fungi.computer/braid").Predicate;
790
+ } | {
791
+ readonly id: string;
792
+ readonly kind: "map";
793
+ readonly over: {
794
+ readonly node: string;
795
+ readonly port: string;
796
+ };
797
+ readonly body: string;
798
+ readonly concurrency: number;
799
+ readonly maxItems: number;
800
+ } | {
801
+ readonly id: string;
802
+ readonly kind: "repeat";
803
+ readonly body: string;
804
+ readonly maxRounds: number;
805
+ readonly until: import("@fungi.computer/braid").Predicate;
806
+ } | {
807
+ readonly id: string;
808
+ readonly kind: "wait";
809
+ readonly for: number;
810
+ } | {
811
+ readonly id: string;
812
+ readonly kind: "transform";
813
+ readonly fields: {
814
+ readonly [x: string]: import("@fungi.computer/braid").Mapping;
815
+ };
816
+ })[];
817
+ readonly edges: readonly {
818
+ readonly from: {
819
+ readonly node: string;
820
+ readonly port: string;
821
+ };
822
+ readonly to: {
823
+ readonly node: string;
824
+ readonly port: string;
825
+ };
826
+ }[];
827
+ readonly output: {
828
+ readonly [x: string]: {
829
+ readonly node: string;
830
+ readonly port: string;
831
+ };
832
+ };
833
+ };
834
+ } | undefined;
835
+ readonly triggers?: readonly ({
836
+ readonly id: string;
837
+ readonly on: "webhook";
838
+ readonly when?: import("@fungi.computer/braid").Predicate | undefined;
839
+ readonly input?: {
840
+ readonly [x: string]: import("@fungi.computer/braid").Mapping;
841
+ } | undefined;
842
+ readonly title?: string | undefined;
843
+ } | {
844
+ readonly id: string;
845
+ readonly on: "schedule";
846
+ readonly cron: {
847
+ readonly expression: string;
848
+ readonly timeZone: string;
849
+ };
850
+ readonly input?: {
851
+ readonly [x: string]: import("@fungi.computer/braid").Mapping;
852
+ } | undefined;
853
+ readonly title?: string | undefined;
854
+ } | {
855
+ readonly id: string;
856
+ readonly event: string;
857
+ readonly on: "event";
858
+ readonly app: string;
859
+ readonly eventDigest: string;
860
+ readonly repository?: import("@fungi.computer/braid").Mapping | undefined;
861
+ readonly when?: import("@fungi.computer/braid").Predicate | undefined;
862
+ readonly input?: {
863
+ readonly [x: string]: import("@fungi.computer/braid").Mapping;
864
+ } | undefined;
865
+ readonly title?: string | undefined;
866
+ })[] | undefined;
867
+ };
868
+ readonly catalog: {
869
+ readonly [x: string]: {
870
+ readonly methods: {
871
+ readonly [x: string]: {
872
+ readonly digest: string;
873
+ readonly output: {
874
+ readonly [x: string]: S.Json;
875
+ };
876
+ readonly input: {
877
+ readonly [x: string]: S.Json;
878
+ };
879
+ readonly approval: "none" | "queue" | "simulate";
880
+ readonly description: string;
881
+ readonly effect: "read" | "write" | "external";
882
+ readonly requires: readonly string[];
883
+ readonly pending?: true | undefined;
884
+ };
885
+ };
886
+ readonly events?: {
887
+ readonly [x: string]: {
888
+ readonly digest: string;
889
+ readonly description: string;
890
+ readonly payload: {
891
+ readonly [x: string]: S.Json;
892
+ };
893
+ };
894
+ } | undefined;
895
+ };
896
+ };
897
+ readonly bindings: {
898
+ readonly [x: string]: {
899
+ kind: "team-source";
900
+ } | {
901
+ appId: string;
902
+ installationId: string;
903
+ };
904
+ };
905
+ readonly estimatedSteps: number;
906
+ readonly requiredBindings: readonly {
907
+ readonly method: string;
908
+ readonly installationId: string;
909
+ readonly output: {
910
+ readonly [x: string]: S.Json;
911
+ };
912
+ readonly input: {
913
+ readonly [x: string]: S.Json;
914
+ };
915
+ readonly approval: "none" | "queue" | "simulate";
916
+ readonly description: string;
917
+ readonly effect: "read" | "write" | "external";
918
+ readonly requires: readonly string[];
919
+ readonly app: string;
920
+ readonly pending?: true | undefined;
921
+ }[];
922
+ };
923
+ input: {
924
+ readonly [x: string]: S.Json;
925
+ };
926
+ }>;
927
+ /** Live member, Computer and library run grant, before every node kind. */
928
+ beforeNode(raw: NodeEvent): Promise<NodeAdmissionResult>;
929
+ dispatch(call: NodeCall): Promise<DispatchResult>;
930
+ };
931
+ export {};