@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,110 @@
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) / tenancy/auth0
8
+
9
+ # tenancy/auth0
10
+
11
+ ## Type Aliases
12
+
13
+ ### Auth0Transaction
14
+
15
+ ```ts
16
+ type Auth0Transaction = Readonly<{
17
+ tenantId: TenantId;
18
+ redirectUri: string;
19
+ state: string;
20
+ codeVerifier: string;
21
+ expiresAt: number;
22
+ }>;
23
+ ```
24
+
25
+ One short-lived, single-use browser authorization transaction.
26
+
27
+ ---
28
+
29
+ ### Auth0Session
30
+
31
+ ```ts
32
+ type Auth0Session = Readonly<{
33
+ tenantId: TenantId;
34
+ identity: Identity;
35
+ expiresAt: number;
36
+ }>;
37
+ ```
38
+
39
+ Server-owned verified identity session; browsers receive only its random handle.
40
+
41
+ ---
42
+
43
+ ### Auth0BrowserOptions
44
+
45
+ ```ts
46
+ type Auth0BrowserOptions = Readonly<{
47
+ callbackPath: string;
48
+ resolveTenant: ReadonlyTenancy["resolve"];
49
+ registry: Pick<ReadonlyTenantRegistry, "get" | "membershipOf">;
50
+ transactions: Readonly<{
51
+ put: Promise<void>;
52
+ take: Promise<Readonly<{
53
+ tenantId: TenantId;
54
+ redirectUri: string;
55
+ state: string;
56
+ codeVerifier: string;
57
+ expiresAt: number;
58
+ }> | null>;
59
+ }>;
60
+ sessions: Readonly<{
61
+ put: Promise<void>;
62
+ get: Promise<Readonly<{
63
+ tenantId: TenantId;
64
+ identity: Identity;
65
+ expiresAt: number;
66
+ }> | null>;
67
+ }>;
68
+ }>;
69
+ ```
70
+
71
+ Host ports for optional browser login; stored state must be shared across host
72
+ instances.
73
+
74
+ ---
75
+
76
+ ### Auth0Options
77
+
78
+ ```ts
79
+ type Auth0Options = Readonly<{
80
+ domain: string;
81
+ clientId: string;
82
+ audience: string;
83
+ clientSecret?: string;
84
+ fetch?: typeof globalThis.fetch;
85
+ browser?: Auth0BrowserOptions;
86
+ }>;
87
+ ```
88
+
89
+ Auth0 issuer and audience configuration; browser login is opt-in.
90
+
91
+ ## Functions
92
+
93
+ ### auth0()
94
+
95
+ ```ts
96
+ function auth0(options): AuthAdapter;
97
+ ```
98
+
99
+ Verify Auth0 identities; the registry alone supplies canonical membership and
100
+ role.
101
+
102
+ #### Parameters
103
+
104
+ | Parameter | Type |
105
+ | --------- | ------------------------------- |
106
+ | `options` | [`Auth0Options`](#auth0options) |
107
+
108
+ #### Returns
109
+
110
+ [`AuthAdapter`](../tenancy.md#authadapter)
@@ -0,0 +1,221 @@
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) / tenancy/cloudflare
8
+
9
+ # tenancy/cloudflare
10
+
11
+ ## Type Aliases
12
+
13
+ ### RateLimitOptions
14
+
15
+ ```ts
16
+ type RateLimitOptions = Readonly<{
17
+ retryAfterSeconds: number;
18
+ }>;
19
+ ```
20
+
21
+ Retry-After is an advisory response delay, not a configured quota or reset time.
22
+
23
+ ---
24
+
25
+ ### RegistryAdmission
26
+
27
+ ```ts
28
+ type RegistryAdmission = Readonly<{
29
+ tenant: Tenant;
30
+ membership: Membership | null;
31
+ }>;
32
+ ```
33
+
34
+ The registry owner's atomic read of one host and one identity.
35
+
36
+ ---
37
+
38
+ ### AdmissionRecord
39
+
40
+ ```ts
41
+ type AdmissionRecord = RegistryAdmission &
42
+ Readonly<{
43
+ host: string;
44
+ identity: Identity;
45
+ }>;
46
+ ```
47
+
48
+ One request's atomic registry read, with the host and identity it named.
49
+
50
+ ---
51
+
52
+ ### TenantAdmission
53
+
54
+ ```ts
55
+ type TenantAdmission = AdmissionRecord & Brand<"TenantAdmission">;
56
+ ```
57
+
58
+ One atomic registry read for one request. Only
59
+ [durableObjectRegistry](#durableobjectregistry) constructs it, so lower layers
60
+ cannot mint authority.
61
+
62
+ ---
63
+
64
+ ### TenancyRegistryDO
65
+
66
+ ```ts
67
+ type TenancyRegistryDO = ManagedTenantRegistry &
68
+ Required<Pick<ReadonlyTenantRegistry, "byDomain">> &
69
+ Readonly<{
70
+ admission: Promise<Readonly<{
71
+ tenant: Tenant;
72
+ membership: Membership | null;
73
+ }> | null>;
74
+ }> &
75
+ Rpc.DurableObjectBranded;
76
+ ```
77
+
78
+ Native registry instance; its public shape exposes no runtime-private state.
79
+
80
+ ---
81
+
82
+ ### DomainRegistry
83
+
84
+ ```ts
85
+ type DomainRegistry = ReadonlyTenantRegistry &
86
+ Required<Pick<ReadonlyTenantRegistry, "byDomain">>;
87
+ ```
88
+
89
+ A read-only registry that includes the provisioned-domain index.
90
+
91
+ ---
92
+
93
+ ### DurableReadonlyRegistry
94
+
95
+ ```ts
96
+ type DurableReadonlyRegistry = DomainRegistry &
97
+ Readonly<{
98
+ admission: Promise<TenantAdmission | null>;
99
+ }>;
100
+ ```
101
+
102
+ Read-only native registry, with one-read request admission.
103
+
104
+ ---
105
+
106
+ ### DurableRegistry
107
+
108
+ ```ts
109
+ type DurableRegistry = ManagedTenantRegistry & DurableReadonlyRegistry;
110
+ ```
111
+
112
+ Managed native registry includes the provisioned-domain index.
113
+
114
+ ## Variables
115
+
116
+ ### TenancyRegistryDO
117
+
118
+ ```ts
119
+ TenancyRegistryDO: (ctx) => TenancyRegistryDO;
120
+ ```
121
+
122
+ Re-export from a host Worker and bind a SQLite-backed Durable Object namespace.
123
+
124
+ Re-export from a host Worker and bind a SQLite-backed Durable Object namespace.
125
+
126
+ #### Parameters
127
+
128
+ | Parameter | Type |
129
+ | --------- | -------------------- |
130
+ | `ctx` | `DurableObjectState` |
131
+
132
+ #### Returns
133
+
134
+ [`TenancyRegistryDO`](#tenancyregistrydo-1)
135
+
136
+ ## Functions
137
+
138
+ ### rateLimit()
139
+
140
+ ```ts
141
+ function rateLimit(binding, options): TenancyPolicy;
142
+ ```
143
+
144
+ Delegate abuse admission to the configured native binding, using only its key
145
+ API.
146
+
147
+ #### Parameters
148
+
149
+ | Parameter | Type |
150
+ | --------- | --------------------------------------- |
151
+ | `binding` | `Pick`\<`RateLimit`, `"limit"`\> |
152
+ | `options` | [`RateLimitOptions`](#ratelimitoptions) |
153
+
154
+ #### Returns
155
+
156
+ [`TenancyPolicy`](../tenancy.md#tenancypolicy)
157
+
158
+ ---
159
+
160
+ ### durableObjectRegistry()
161
+
162
+ #### Call Signature
163
+
164
+ ```ts
165
+ function durableObjectRegistry(binding, options): DurableReadonlyRegistry;
166
+ ```
167
+
168
+ Explicitly expose only read methods when the host requests a read-only facade.
169
+
170
+ ##### Parameters
171
+
172
+ | Parameter | Type |
173
+ | ------------------ | ------------------------------------------------------------------------------------------------ |
174
+ | `binding` | `Pick`\<`DurableObjectNamespace`\<[`TenancyRegistryDO`](#tenancyregistrydo-1)\>, `"getByName"`\> |
175
+ | `options` | \{ `readonly`: `true`; \} |
176
+ | `options.readonly` | `true` |
177
+
178
+ ##### Returns
179
+
180
+ [`DurableReadonlyRegistry`](#durablereadonlyregistry)
181
+
182
+ #### Call Signature
183
+
184
+ ```ts
185
+ function durableObjectRegistry(binding, options?): DurableRegistry;
186
+ ```
187
+
188
+ Use one namespace's registry object as the tenant and owner mapping authority.
189
+
190
+ ##### Parameters
191
+
192
+ | Parameter | Type |
193
+ | ------------------- | ------------------------------------------------------------------------------------------------ |
194
+ | `binding` | `Pick`\<`DurableObjectNamespace`\<[`TenancyRegistryDO`](#tenancyregistrydo-1)\>, `"getByName"`\> |
195
+ | `options?` | \{ `readonly?`: `false`; \} |
196
+ | `options.readonly?` | `false` |
197
+
198
+ ##### Returns
199
+
200
+ [`DurableRegistry`](#durableregistry)
201
+
202
+ ---
203
+
204
+ ### admittedRegistry()
205
+
206
+ ```ts
207
+ function admittedRegistry(admission): DomainRegistry;
208
+ ```
209
+
210
+ Answer registry reads only from one request's admission. Any other tenant, host,
211
+ identity or member reads as absent, so every refusal stays closed.
212
+
213
+ #### Parameters
214
+
215
+ | Parameter | Type |
216
+ | ----------- | ------------------------------------- |
217
+ | `admission` | [`TenantAdmission`](#tenantadmission) |
218
+
219
+ #### Returns
220
+
221
+ [`DomainRegistry`](#domainregistry)
@@ -0,0 +1,46 @@
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) / tenancy/cold-directory
8
+
9
+ # tenancy/cold-directory
10
+
11
+ ## Type Aliases
12
+
13
+ ### ColdTenantDirectory
14
+
15
+ ```ts
16
+ type ColdTenantDirectory = Readonly<{
17
+ resolve: Promise<Readonly<{
18
+ scope: TenantScope;
19
+ auth: OysterAuth;
20
+ }> | null>;
21
+ }>;
22
+ ```
23
+
24
+ Live directory admission for a host-persisted tenant during background work.
25
+
26
+ ## Functions
27
+
28
+ ### coldTenantDirectory()
29
+
30
+ ```ts
31
+ function coldTenantDirectory(registry): ColdTenantDirectory;
32
+ ```
33
+
34
+ Reconstruct background admission from the same host-owned tenant registry. Every
35
+ selection and member lookup reads current authority. This adapter has no
36
+ credential authority: its authenticate method always refuses requests.
37
+
38
+ #### Parameters
39
+
40
+ | Parameter | Type |
41
+ | ---------- | ------------------------------------------------------------------------------------------------------------------- |
42
+ | `registry` | `Pick`\<[`ReadonlyTenantRegistry`](../tenancy.md#readonlytenantregistry), `"get"` \| `"status"` \| `"memberById"`\> |
43
+
44
+ #### Returns
45
+
46
+ [`ColdTenantDirectory`](#coldtenantdirectory)
@@ -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) / tenancy/owner-key
8
+
9
+ # tenancy/owner-key
10
+
11
+ ## Type Aliases
12
+
13
+ ### OwnerKeyRecord
14
+
15
+ ```ts
16
+ type OwnerKeyRecord = Readonly<{
17
+ key: string;
18
+ memberId: string;
19
+ }>;
20
+ ```
21
+
22
+ Stored owner verification material for one selected tenant.
23
+
24
+ ---
25
+
26
+ ### OwnerKeyOptions
27
+
28
+ ```ts
29
+ type OwnerKeyOptions = Readonly<{
30
+ registry: Pick<ReadonlyTenantRegistry, "get">;
31
+ keys: Readonly<{
32
+ get: Promise<Readonly<{
33
+ key: string;
34
+ memberId: string;
35
+ }> | null>;
36
+ }>;
37
+ login?: Readonly<{
38
+ resolveTenant: ReadonlyTenancy["resolve"];
39
+ }>;
40
+ }>;
41
+ ```
42
+
43
+ Live owner authority and host-held verification material.
44
+
45
+ ## Functions
46
+
47
+ ### ownerKey()
48
+
49
+ ```ts
50
+ function ownerKey(options): AuthAdapter;
51
+ ```
52
+
53
+ Reuse Oyster verification and admit only a current, explicitly stored owner.
54
+
55
+ #### Parameters
56
+
57
+ | Parameter | Type |
58
+ | --------- | ------------------------------------- |
59
+ | `options` | [`OwnerKeyOptions`](#ownerkeyoptions) |
60
+
61
+ #### Returns
62
+
63
+ [`AuthAdapter`](../tenancy.md#authadapter)
@@ -0,0 +1,77 @@
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) / tenancy/registry
8
+
9
+ # tenancy/registry
10
+
11
+ ## Type Aliases
12
+
13
+ ### MemoryMembership
14
+
15
+ ```ts
16
+ type MemoryMembership = Readonly<{
17
+ tenantId: TenantId;
18
+ identity: Identity;
19
+ memberId: string;
20
+ role: Membership["role"];
21
+ }>;
22
+ ```
23
+
24
+ Initial live membership records for a disposable in-memory registry.
25
+
26
+ ---
27
+
28
+ ### MemoryRegistryOptions
29
+
30
+ ```ts
31
+ type MemoryRegistryOptions = Readonly<{
32
+ tenants?: readonly Tenant[];
33
+ memberships?: readonly MemoryMembership[];
34
+ }>;
35
+ ```
36
+
37
+ Provisioned records and canonical member mappings owned by the host.
38
+
39
+ ---
40
+
41
+ ### MemoryRegistry
42
+
43
+ ```ts
44
+ type MemoryRegistry = ManagedTenantRegistry &
45
+ Readonly<{
46
+ byDomain: Promise<Readonly<{
47
+ id: TenantId;
48
+ handle: string;
49
+ origin: string;
50
+ status: "active" | "suspended" | "deleting";
51
+ owners: readonly string[];
52
+ domains: readonly string[];
53
+ }> | null>;
54
+ }>;
55
+ ```
56
+
57
+ The memory adapter always supplies the optional custom-domain index.
58
+
59
+ ## Functions
60
+
61
+ ### memoryRegistry()
62
+
63
+ ```ts
64
+ function memoryRegistry(options?): MemoryRegistry;
65
+ ```
66
+
67
+ In-memory tenant and member owner; create updates both atomically.
68
+
69
+ #### Parameters
70
+
71
+ | Parameter | Type |
72
+ | --------- | ------------------------------------------------- |
73
+ | `options` | [`MemoryRegistryOptions`](#memoryregistryoptions) |
74
+
75
+ #### Returns
76
+
77
+ [`MemoryRegistry`](#memoryregistry)
@@ -0,0 +1,69 @@
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) / tenancy/resolve
8
+
9
+ # tenancy/resolve
10
+
11
+ ## Functions
12
+
13
+ ### subdomain()
14
+
15
+ ```ts
16
+ function subdomain(baseDomain): TenantResolverAdapter<"origin">;
17
+ ```
18
+
19
+ Resolve a provisioned label immediately below a configured base hostname.
20
+
21
+ #### Parameters
22
+
23
+ | Parameter | Type |
24
+ | ------------ | -------- |
25
+ | `baseDomain` | `string` |
26
+
27
+ #### Returns
28
+
29
+ [`TenantResolverAdapter`](../tenancy.md#tenantresolveradapter)\<`"origin"`\>
30
+
31
+ ---
32
+
33
+ ### hosts()
34
+
35
+ ```ts
36
+ function hosts(registry): TenantResolverAdapter<"origin">;
37
+ ```
38
+
39
+ Resolve a provisioned custom domain through the registry's domain index.
40
+
41
+ #### Parameters
42
+
43
+ | Parameter | Type |
44
+ | ---------- | ---------------------------------------------------------------- |
45
+ | `registry` | [`ReadonlyTenantRegistry`](../tenancy.md#readonlytenantregistry) |
46
+
47
+ #### Returns
48
+
49
+ [`TenantResolverAdapter`](../tenancy.md#tenantresolveradapter)\<`"origin"`\>
50
+
51
+ ---
52
+
53
+ ### path()
54
+
55
+ ```ts
56
+ function path(pattern): TenantResolverAdapter<"path">;
57
+ ```
58
+
59
+ Resolve provisioned path tenants for APIs; this resolver cannot host Oyster.
60
+
61
+ #### Parameters
62
+
63
+ | Parameter | Type |
64
+ | --------- | -------- |
65
+ | `pattern` | `string` |
66
+
67
+ #### Returns
68
+
69
+ [`TenantResolverAdapter`](../tenancy.md#tenantresolveradapter)\<`"path"`\>