@fungi.computer/oyster 0.5.0 → 0.6.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.
- package/README.md +46 -8
- package/dist/agents.js +4 -0
- package/dist/auth.d.ts +24 -1
- package/dist/auth.js +38 -0
- package/dist/boot-host-script.js +1 -1
- package/dist/build/candidate-cli.mjs +8 -1
- package/dist/channels/binding.d.ts +8 -1
- package/dist/channels/binding.js +12 -0
- package/dist/channels/conversations.d.ts +16 -5
- package/dist/channels/visitor-channel.d.ts +53 -0
- package/dist/channels/visitor-channel.js +124 -0
- package/dist/channels/visitor-edge.d.ts +115 -0
- package/dist/channels/visitor-edge.js +582 -0
- package/dist/channels/visitor-request.d.ts +7 -0
- package/dist/channels/visitor-request.js +17 -0
- package/dist/channels/visitor-stream-slots.d.ts +2 -0
- package/dist/channels/visitor-stream-slots.js +33 -0
- package/dist/channels/visitors.d.ts +47 -0
- package/dist/channels/visitors.js +181 -0
- package/dist/cloudflare.d.ts +8 -2
- package/dist/cloudflare.js +27 -1
- package/dist/computer-target.d.ts +5 -0
- package/dist/computer-target.js +11 -0
- package/dist/host.d.ts +6 -3
- package/dist/host.js +75 -13
- package/dist/internal/host-gate.d.ts +6 -4
- package/dist/internal/host-gate.js +14 -7
- package/dist/invocation.d.ts +11 -4
- package/dist/invocation.js +134 -91
- package/dist/page/capabilities.js +1 -1
- package/dist/page/child-selection.d.ts +27 -0
- package/dist/page/child-selection.js +38 -0
- package/dist/page/mount.js +1 -1
- package/dist/page-script.js +4 -4
- package/dist/release.d.ts +13 -0
- package/dist/release.js +10 -0
- package/dist/request-origin.d.ts +4 -0
- package/dist/request-origin.js +10 -0
- package/dist/standalone/agents.js +11 -11
- package/dist/standalone/channel-session-door.d.ts +2 -2
- package/dist/standalone/channel-session-door.js +35 -5
- package/dist/standalone/computer-fleet.js +7 -1
- package/dist/standalone/tenancy.d.ts +3 -0
- package/dist/standalone/tenancy.js +7 -2
- package/dist/turnstile.d.ts +27 -0
- package/dist/turnstile.js +51 -0
- package/dist/workers-git.js +20 -1
- package/dist/workers.js +15 -12
- package/docs/api/auth.md +55 -0
- package/docs/api/build-contract.md +2 -2
- package/docs/api/cloudflare.md +26 -1
- package/docs/api/host.md +22 -13
- package/docs/api/invocation.md +7 -3
- package/docs/api/workers.md +17 -16
- package/docs/site/agent-quickstart.mdx +6 -2
- package/examples/standalone/wrangler.celld.jsonc +66 -0
- package/package.json +40 -16
package/docs/api/host.md
CHANGED
|
@@ -375,24 +375,17 @@ A capability adapter whose routes require live installation admission.
|
|
|
375
375
|
### OysterVariables
|
|
376
376
|
|
|
377
377
|
```ts
|
|
378
|
-
type OysterVariables = object;
|
|
378
|
+
type OysterVariables = TimingVariables & object;
|
|
379
379
|
```
|
|
380
380
|
|
|
381
381
|
What the host stamps once per request; inner routes read it with `c.get`.
|
|
382
382
|
|
|
383
|
-
####
|
|
384
|
-
|
|
385
|
-
##### principal
|
|
386
|
-
|
|
387
|
-
```ts
|
|
388
|
-
principal: OysterPrincipal;
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
##### installation?
|
|
383
|
+
#### Type Declaration
|
|
392
384
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
385
|
+
| Name | Type |
|
|
386
|
+
| --------------- | -------------------------------------- |
|
|
387
|
+
| `principal` | [`OysterPrincipal`](#oysterprincipal) |
|
|
388
|
+
| `installation?` | [`Installation`](apps.md#installation) |
|
|
396
389
|
|
|
397
390
|
---
|
|
398
391
|
|
|
@@ -473,6 +466,7 @@ type OysterHost = Readonly<{
|
|
|
473
466
|
auth: OysterAuth;
|
|
474
467
|
backgroundOriginKey?: () => Promise<CryptoKey>;
|
|
475
468
|
artifacts: ArtifactStore;
|
|
469
|
+
uiCache?: VerifiedObjectCache;
|
|
476
470
|
installations: InstallationStore;
|
|
477
471
|
instances: InstanceDirectory;
|
|
478
472
|
bootUi: (release) => Promise<UiBootCheckOutcome>;
|
|
@@ -1309,6 +1303,21 @@ type VerifiedRelease = Readonly<{
|
|
|
1309
1303
|
|
|
1310
1304
|
A Release whose root, UI and backend artifacts were read and verified.
|
|
1311
1305
|
|
|
1306
|
+
---
|
|
1307
|
+
|
|
1308
|
+
### VerifiedObjectCache
|
|
1309
|
+
|
|
1310
|
+
```ts
|
|
1311
|
+
type VerifiedObjectCache = Readonly<{
|
|
1312
|
+
match: (digest) => Promise<ReadableStream<Uint8Array> | null>;
|
|
1313
|
+
put: (digest, bytes) => Promise<"stored" | "unstored">;
|
|
1314
|
+
}>;
|
|
1315
|
+
```
|
|
1316
|
+
|
|
1317
|
+
Copies of verified artifacts near the reader, keyed by content digest. An entry
|
|
1318
|
+
holds only bytes that already matched its digest, so a hit is served without
|
|
1319
|
+
another store read or hash.
|
|
1320
|
+
|
|
1312
1321
|
## Variables
|
|
1313
1322
|
|
|
1314
1323
|
### capabilityMethodKindSchema
|
package/docs/api/invocation.md
CHANGED
|
@@ -122,7 +122,7 @@ The host's native guest-abort and authority-close hooks.
|
|
|
122
122
|
```ts
|
|
123
123
|
type InvocationGate<Host> = Readonly<{
|
|
124
124
|
run: <A>(facts, host, work) => Promise<A>;
|
|
125
|
-
active: () => InvocationFrame<Host>;
|
|
125
|
+
active: (frameId) => InvocationFrame<Host>;
|
|
126
126
|
revoke: (reason?, target?) => Promise<void>;
|
|
127
127
|
exclusive: <A>(work) => Promise<A>;
|
|
128
128
|
}>;
|
|
@@ -412,8 +412,12 @@ only its decision.
|
|
|
412
412
|
function createInvocationGate<Host>(ports): InvocationGate<Host>;
|
|
413
413
|
```
|
|
414
414
|
|
|
415
|
-
|
|
416
|
-
|
|
415
|
+
Admit frames against one guest. Verified foreground reads share it, up to eight
|
|
416
|
+
at once; writes, raw backend requests, Gills and replay run alone. Every guest
|
|
417
|
+
binding packet names its frame, so a finished frame's leftover timers cannot
|
|
418
|
+
borrow a later frame's authority and a normal finish keeps the guest warm.
|
|
419
|
+
Closing authority early (revocation, expiry, a write preempting replay) aborts
|
|
420
|
+
the guest and so every frame sharing it; replay only yields to a verified write.
|
|
417
421
|
|
|
418
422
|
#### Type Parameters
|
|
419
423
|
|
package/docs/api/workers.md
CHANGED
|
@@ -45,11 +45,11 @@ new OysterMcpOwner<Env>(
|
|
|
45
45
|
|
|
46
46
|
###### Parameters
|
|
47
47
|
|
|
48
|
-
| Parameter | Type
|
|
49
|
-
| ------------ |
|
|
50
|
-
| `ctx` | `DurableObjectState`
|
|
51
|
-
| `env` | `Env`
|
|
52
|
-
| `createHost` | (`env`, `scope`) => \| `Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: `"pending_approval"`; `recordId`: `string`; `description`: \{ `title`: ...; `inputBytes`: ...; `inputSha256`: ...; \}; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: `Promise`\<...\>; `cancel`: `Promise`\<...\>; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<\{ `computers`: ...; `nextOffset`: ...; \}\>; `state`: `Promise`\<... \| ...\>; `start`: `Promise`\<... \| ...\>; `create`: `Promise`\<... \| ...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ... \| ... \| ... \| ... \| ...; `errorName?`: ... \| ... \| ... \| ... \| ... \| ... \| ... \| ...; `finalUrlPath`: `string`; `consoleErrors`: ...[]; `pageErrors`: ...[]; `failedRequests`: ...[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => `Promise`\<...\>; `call`: (`capabilityId`, `input`, `context`) => `Promise`\<...\>; \}\> \| `Promise`\< \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ... \| ...; `revision`: `string`; `grantedBy`: `string`; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\< \| `Readonly`\<\{ `keyId`: ...; `owner`: ...; `grantVersion`: ...; `grants`: ...; \}\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<`void`\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `buildPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: `Promise`\<...\>; `read`: `Promise`\<...\>; `binding`: `GitBinding`; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: readonly ...[]; `roles`: [`OysterRootRoles`](root-data.md#oysterrootroles); `computer?`: ... \| ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, `"read"` \| `"write"` \| `"reset"`\> & `Readonly`\<\{ `events`: `Promise`\<...\>; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\> \| `Promise`\<`Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: ...; `recordId`: ...; `description`: ...; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: ...; `cancel`: ...; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<...\>; `state`: `Promise`\<...\>; `start`: `Promise`\<...\>; `create`: `Promise`\<...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ...; `errorName?`: ...; `finalUrlPath`: ...; `consoleErrors`: ...; `pageErrors`: ...; `failedRequests`: ...; `droppedCount`: ...; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => ...; `call`: (`capabilityId`, `input`, `context`) => ...; \}\> \| `Promise`\<`Readonly`\<...\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ...; `revision`: ...; `grantedBy`: ...; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\<`Readonly`\<...\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<...\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `buildPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: ...; `read`: ...; `binding`: ...; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: ...; `roles`: ...; `computer?`: ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, ... \| ... \| ...\> & `Readonly`\<\{ `events`: ...; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>\> |
|
|
48
|
+
| Parameter | Type |
|
|
49
|
+
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
50
|
+
| `ctx` | `DurableObjectState` |
|
|
51
|
+
| `env` | `Env` |
|
|
52
|
+
| `createHost` | (`env`, `scope`) => \| `Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: `"pending_approval"`; `recordId`: `string`; `description`: \{ `title`: ...; `inputBytes`: ...; `inputSha256`: ...; \}; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: `Promise`\<...\>; `cancel`: `Promise`\<...\>; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<\{ `computers`: ...; `nextOffset`: ...; \}\>; `state`: `Promise`\<... \| ...\>; `start`: `Promise`\<... \| ...\>; `create`: `Promise`\<... \| ...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `uiCache?`: `Readonly`\<\{ `match`: (`digest`) => `Promise`\<`ReadableStream`\<...\> \| `null`\>; `put`: (`digest`, `bytes`) => `Promise`\<`"stored"` \| `"unstored"`\>; \}\>; `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ... \| ... \| ... \| ... \| ...; `errorName?`: ... \| ... \| ... \| ... \| ... \| ... \| ... \| ...; `finalUrlPath`: `string`; `consoleErrors`: ...[]; `pageErrors`: ...[]; `failedRequests`: ...[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => `Promise`\<...\>; `call`: (`capabilityId`, `input`, `context`) => `Promise`\<...\>; \}\> \| `Promise`\< \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ... \| ...; `revision`: `string`; `grantedBy`: `string`; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\< \| `Readonly`\<\{ `keyId`: ...; `owner`: ...; `grantVersion`: ...; `grants`: ...; \}\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<`void`\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `buildPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: `Promise`\<...\>; `read`: `Promise`\<...\>; `binding`: `GitBinding`; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: readonly ...[]; `roles`: [`OysterRootRoles`](root-data.md#oysterrootroles); `computer?`: ... \| ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, `"read"` \| `"write"` \| `"reset"`\> & `Readonly`\<\{ `events`: `Promise`\<...\>; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\> \| `Promise`\<`Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: ...; `recordId`: ...; `description`: ...; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: ...; `cancel`: ...; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<...\>; `state`: `Promise`\<...\>; `start`: `Promise`\<...\>; `create`: `Promise`\<...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `uiCache?`: `Readonly`\<\{ `match`: (`digest`) => `Promise`\<... \| ...\>; `put`: (`digest`, `bytes`) => `Promise`\<... \| ...\>; \}\>; `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ...; `errorName?`: ...; `finalUrlPath`: ...; `consoleErrors`: ...; `pageErrors`: ...; `failedRequests`: ...; `droppedCount`: ...; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => ...; `call`: (`capabilityId`, `input`, `context`) => ...; \}\> \| `Promise`\<`Readonly`\<...\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ...; `revision`: ...; `grantedBy`: ...; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\<`Readonly`\<...\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<...\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `buildPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: ...; `read`: ...; `binding`: ...; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: ...; `roles`: ...; `computer?`: ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, ... \| ... \| ...\> & `Readonly`\<\{ `events`: ...; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>\> |
|
|
53
53
|
|
|
54
54
|
###### Returns
|
|
55
55
|
|
|
@@ -2701,6 +2701,7 @@ type OysterBindingContext<Env> = Readonly<{
|
|
|
2701
2701
|
auth: OysterAuth;
|
|
2702
2702
|
backgroundOriginKey?: () => Promise<CryptoKey>;
|
|
2703
2703
|
artifacts: ArtifactStore;
|
|
2704
|
+
uiCache?: VerifiedObjectCache;
|
|
2704
2705
|
installations: InstallationStore;
|
|
2705
2706
|
instances: InstanceDirectory;
|
|
2706
2707
|
bootUi: (release) => Promise<UiBootCheckOutcome>;
|
|
@@ -2845,9 +2846,9 @@ A loopback export with ordinary Worker I/O, not another resource or HTTP API.
|
|
|
2845
2846
|
|
|
2846
2847
|
#### Parameters
|
|
2847
2848
|
|
|
2848
|
-
| Parameter | Type
|
|
2849
|
-
| --------- |
|
|
2850
|
-
| `hostFor` | (`env`, `scope`) => \| `Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: `"pending_approval"`; `recordId`: `string`; `description`: \{ `title`: ...; `inputBytes`: ...; `inputSha256`: ...; \}; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: `Promise`\<...\>; `cancel`: `Promise`\<...\>; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<\{ `computers`: ...; `nextOffset`: ...; \}\>; `state`: `Promise`\<... \| ...\>; `start`: `Promise`\<... \| ...\>; `create`: `Promise`\<... \| ...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ... \| ... \| ... \| ... \| ...; `errorName?`: ... \| ... \| ... \| ... \| ... \| ... \| ... \| ...; `finalUrlPath`: `string`; `consoleErrors`: ...[]; `pageErrors`: ...[]; `failedRequests`: ...[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => `Promise`\<...\>; `call`: (`capabilityId`, `input`, `context`) => `Promise`\<...\>; \}\> \| `Promise`\< \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ... \| ...; `revision`: `string`; `grantedBy`: `string`; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\< \| `Readonly`\<\{ `keyId`: ...; `owner`: ...; `grantVersion`: ...; `grants`: ...; \}\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<`void`\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `buildPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: `Promise`\<...\>; `read`: `Promise`\<...\>; `binding`: `GitBinding`; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: readonly ...[]; `roles`: [`OysterRootRoles`](root-data.md#oysterrootroles); `computer?`: ... \| ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, `"read"` \| `"write"` \| `"reset"`\> & `Readonly`\<\{ `events`: `Promise`\<...\>; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\> \| `Promise`\<`Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: ...; `recordId`: ...; `description`: ...; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: ...; `cancel`: ...; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<...\>; `state`: `Promise`\<...\>; `start`: `Promise`\<...\>; `create`: `Promise`\<...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ...; `errorName?`: ...; `finalUrlPath`: ...; `consoleErrors`: ...; `pageErrors`: ...; `failedRequests`: ...; `droppedCount`: ...; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => ...; `call`: (`capabilityId`, `input`, `context`) => ...; \}\> \| `Promise`\<`Readonly`\<...\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ...; `revision`: ...; `grantedBy`: ...; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\<`Readonly`\<...\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<...\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `buildPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: ...; `read`: ...; `binding`: ...; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: ...; `roles`: ...; `computer?`: ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, ... \| ... \| ...\> & `Readonly`\<\{ `events`: ...; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>\> |
|
|
2849
|
+
| Parameter | Type |
|
|
2850
|
+
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2851
|
+
| `hostFor` | (`env`, `scope`) => \| `Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: `"pending_approval"`; `recordId`: `string`; `description`: \{ `title`: ...; `inputBytes`: ...; `inputSha256`: ...; \}; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: `Promise`\<...\>; `cancel`: `Promise`\<...\>; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<\{ `computers`: ...; `nextOffset`: ...; \}\>; `state`: `Promise`\<... \| ...\>; `start`: `Promise`\<... \| ...\>; `create`: `Promise`\<... \| ...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `uiCache?`: `Readonly`\<\{ `match`: (`digest`) => `Promise`\<`ReadableStream`\<...\> \| `null`\>; `put`: (`digest`, `bytes`) => `Promise`\<`"stored"` \| `"unstored"`\>; \}\>; `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ... \| ... \| ... \| ... \| ...; `errorName?`: ... \| ... \| ... \| ... \| ... \| ... \| ... \| ...; `finalUrlPath`: `string`; `consoleErrors`: ...[]; `pageErrors`: ...[]; `failedRequests`: ...[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => `Promise`\<...\>; `call`: (`capabilityId`, `input`, `context`) => `Promise`\<...\>; \}\> \| `Promise`\< \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ... \| ...; `revision`: `string`; `grantedBy`: `string`; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\< \| `Readonly`\<\{ `keyId`: ...; `owner`: ...; `grantVersion`: ...; `grants`: ...; \}\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<`void`\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `buildPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: `Promise`\<...\>; `read`: `Promise`\<...\>; `binding`: `GitBinding`; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: readonly ...[]; `roles`: [`OysterRootRoles`](root-data.md#oysterrootroles); `computer?`: ... \| ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, `"read"` \| `"write"` \| `"reset"`\> & `Readonly`\<\{ `events`: `Promise`\<...\>; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\> \| `Promise`\<`Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: ...; `recordId`: ...; `description`: ...; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: ...; `cancel`: ...; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<...\>; `state`: `Promise`\<...\>; `start`: `Promise`\<...\>; `create`: `Promise`\<...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `uiCache?`: `Readonly`\<\{ `match`: (`digest`) => `Promise`\<... \| ...\>; `put`: (`digest`, `bytes`) => `Promise`\<... \| ...\>; \}\>; `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ...; `errorName?`: ...; `finalUrlPath`: ...; `consoleErrors`: ...; `pageErrors`: ...; `failedRequests`: ...; `droppedCount`: ...; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => ...; `call`: (`capabilityId`, `input`, `context`) => ...; \}\> \| `Promise`\<`Readonly`\<...\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ...; `revision`: ...; `grantedBy`: ...; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\<`Readonly`\<...\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<...\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `buildPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: ...; `read`: ...; `binding`: ...; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: ...; `roles`: ...; `computer?`: ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, ... \| ... \| ...\> & `Readonly`\<\{ `events`: ...; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>\> |
|
|
2851
2852
|
|
|
2852
2853
|
#### Returns
|
|
2853
2854
|
|
|
@@ -2871,9 +2872,9 @@ Bind the owner to the deployment's existing host factory and options.
|
|
|
2871
2872
|
|
|
2872
2873
|
#### Parameters
|
|
2873
2874
|
|
|
2874
|
-
| Parameter | Type
|
|
2875
|
-
| --------- |
|
|
2876
|
-
| `host` | (`env`, `scope`) => \| `Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: `"pending_approval"`; `recordId`: `string`; `description`: \{ `title`: ...; `inputBytes`: ...; `inputSha256`: ...; \}; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: `Promise`\<...\>; `cancel`: `Promise`\<...\>; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<\{ `computers`: ...; `nextOffset`: ...; \}\>; `state`: `Promise`\<... \| ...\>; `start`: `Promise`\<... \| ...\>; `create`: `Promise`\<... \| ...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ... \| ... \| ... \| ... \| ...; `errorName?`: ... \| ... \| ... \| ... \| ... \| ... \| ... \| ...; `finalUrlPath`: `string`; `consoleErrors`: ...[]; `pageErrors`: ...[]; `failedRequests`: ...[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => `Promise`\<...\>; `call`: (`capabilityId`, `input`, `context`) => `Promise`\<...\>; \}\> \| `Promise`\< \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ... \| ...; `revision`: `string`; `grantedBy`: `string`; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\< \| `Readonly`\<\{ `keyId`: ...; `owner`: ...; `grantVersion`: ...; `grants`: ...; \}\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<`void`\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `buildPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: `Promise`\<...\>; `read`: `Promise`\<...\>; `binding`: `GitBinding`; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: readonly ...[]; `roles`: [`OysterRootRoles`](root-data.md#oysterrootroles); `computer?`: ... \| ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, `"read"` \| `"write"` \| `"reset"`\> & `Readonly`\<\{ `events`: `Promise`\<...\>; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\> \| `Promise`\<`Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: ...; `recordId`: ...; `description`: ...; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: ...; `cancel`: ...; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<...\>; `state`: `Promise`\<...\>; `start`: `Promise`\<...\>; `create`: `Promise`\<...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ...; `errorName?`: ...; `finalUrlPath`: ...; `consoleErrors`: ...; `pageErrors`: ...; `failedRequests`: ...; `droppedCount`: ...; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => ...; `call`: (`capabilityId`, `input`, `context`) => ...; \}\> \| `Promise`\<`Readonly`\<...\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ...; `revision`: ...; `grantedBy`: ...; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\<`Readonly`\<...\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<...\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `buildPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: ...; `read`: ...; `binding`: ...; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: ...; `roles`: ...; `computer?`: ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, ... \| ... \| ...\> & `Readonly`\<\{ `events`: ...; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>\> |
|
|
2875
|
+
| Parameter | Type |
|
|
2876
|
+
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2877
|
+
| `host` | (`env`, `scope`) => \| `Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: `"pending_approval"`; `recordId`: `string`; `description`: \{ `title`: ...; `inputBytes`: ...; `inputSha256`: ...; \}; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: `Promise`\<...\>; `cancel`: `Promise`\<...\>; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<\{ `computers`: ...; `nextOffset`: ...; \}\>; `state`: `Promise`\<... \| ...\>; `start`: `Promise`\<... \| ...\>; `create`: `Promise`\<... \| ...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `uiCache?`: `Readonly`\<\{ `match`: (`digest`) => `Promise`\<`ReadableStream`\<...\> \| `null`\>; `put`: (`digest`, `bytes`) => `Promise`\<`"stored"` \| `"unstored"`\>; \}\>; `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ... \| ... \| ... \| ... \| ...; `errorName?`: ... \| ... \| ... \| ... \| ... \| ... \| ... \| ...; `finalUrlPath`: `string`; `consoleErrors`: ...[]; `pageErrors`: ...[]; `failedRequests`: ...[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => `Promise`\<...\>; `call`: (`capabilityId`, `input`, `context`) => `Promise`\<...\>; \}\> \| `Promise`\< \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ... \| ...; `revision`: `string`; `grantedBy`: `string`; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\< \| `Readonly`\<\{ `keyId`: ...; `owner`: ...; `grantVersion`: ...; `grants`: ...; \}\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<`void`\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `buildPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: `Promise`\<...\>; `read`: `Promise`\<...\>; `binding`: `GitBinding`; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: readonly ...[]; `roles`: [`OysterRootRoles`](root-data.md#oysterrootroles); `computer?`: ... \| ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, `"read"` \| `"write"` \| `"reset"`\> & `Readonly`\<\{ `events`: `Promise`\<...\>; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\> \| `Promise`\<`Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: ...; `recordId`: ...; `description`: ...; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: ...; `cancel`: ...; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<...\>; `state`: `Promise`\<...\>; `start`: `Promise`\<...\>; `create`: `Promise`\<...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `uiCache?`: `Readonly`\<\{ `match`: (`digest`) => `Promise`\<... \| ...\>; `put`: (`digest`, `bytes`) => `Promise`\<... \| ...\>; \}\>; `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ...; `errorName?`: ...; `finalUrlPath`: ...; `consoleErrors`: ...; `pageErrors`: ...; `failedRequests`: ...; `droppedCount`: ...; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => ...; `call`: (`capabilityId`, `input`, `context`) => ...; \}\> \| `Promise`\<`Readonly`\<...\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ...; `revision`: ...; `grantedBy`: ...; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\<`Readonly`\<...\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<...\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `buildPass?`: `Promise`\<`Readonly`\<...\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: ...; `read`: ...; `binding`: ...; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: ...; `roles`: ...; `computer?`: ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, ... \| ... \| ...\> & `Readonly`\<\{ `events`: ...; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>\> |
|
|
2877
2878
|
|
|
2878
2879
|
#### Returns
|
|
2879
2880
|
|
|
@@ -2967,11 +2968,11 @@ Instances, and boot-check service.
|
|
|
2967
2968
|
|
|
2968
2969
|
#### Parameters
|
|
2969
2970
|
|
|
2970
|
-
| Parameter | Type
|
|
2971
|
-
| --------- |
|
|
2972
|
-
| `env` | [`OysterWorkerEnv`](#oysterworkerenv)
|
|
2973
|
-
| `auth` | [`OysterAuth`](host.md#oysterauth)
|
|
2974
|
-
| `options` | `Pick`\<`Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: `"pending_approval"`; `recordId`: `string`; `description`: \{ `title`: ...; `inputBytes`: ...; `inputSha256`: ...; \}; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: `Promise`\<...\>; `cancel`: `Promise`\<...\>; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<\{ `computers`: ...; `nextOffset`: ...; \}\>; `state`: `Promise`\<... \| ...\>; `start`: `Promise`\<... \| ...\>; `create`: `Promise`\<... \| ...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ... \| ... \| ... \| ... \| ...; `errorName?`: ... \| ... \| ... \| ... \| ... \| ... \| ... \| ...; `finalUrlPath`: `string`; `consoleErrors`: ...[]; `pageErrors`: ...[]; `failedRequests`: ...[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => `Promise`\<...\>; `call`: (`capabilityId`, `input`, `context`) => `Promise`\<...\>; \}\> \| `Promise`\< \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ... \| ...; `revision`: `string`; `grantedBy`: `string`; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\< \| `Readonly`\<\{ `keyId`: ...; `owner`: ...; `grantVersion`: ...; `grants`: ...; \}\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<`void`\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `buildPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: `Promise`\<...\>; `read`: `Promise`\<...\>; `binding`: `GitBinding`; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: readonly ...[]; `roles`: [`OysterRootRoles`](root-data.md#oysterrootroles); `computer?`: ... \| ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, `"read"` \| `"write"` \| `"reset"`\> & `Readonly`\<\{ `events`: `Promise`\<...\>; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>, `"appToolPolicy"` \| `"guestLimits"`\> & `Readonly`\<\{ `workspace?`: `Readonly`\<\{ `computerId`: `string`; `files`: [`FileSource`](files.md#filesource); `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `Promise`\<... \| ...\> \| `null`; \}\>; `scope?`: `Readonly`\<\{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; `durableName`: `string`; `computerName`: `string`; `workspacePrefix`: `string`; `repositoryPrefix`: `string`; \}\>; \}\> |
|
|
2971
|
+
| Parameter | Type |
|
|
2972
|
+
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2973
|
+
| `env` | [`OysterWorkerEnv`](#oysterworkerenv) |
|
|
2974
|
+
| `auth` | [`OysterAuth`](host.md#oysterauth) |
|
|
2975
|
+
| `options` | `Pick`\<`Readonly`\<\{ `approvals?`: `Readonly`\<\{ `submit`: `Promise`\< \| \{ `kind`: `"pending_approval"`; `recordId`: `string`; `description`: \{ `title`: ...; `inputBytes`: ...; `inputSha256`: ...; \}; \} \| `ApprovalApplyResult`\>; \}\>; `workflows?`: (`principal`) => `Promise`\< \| `Readonly`\<\{ `status`: `Promise`\<...\>; `cancel`: `Promise`\<...\>; \}\> \| `null`\>; `computerControl?`: (`principal`) => \| `Readonly`\<\{ `list`: `Promise`\<\{ `computers`: ...; `nextOffset`: ...; \}\>; `state`: `Promise`\<... \| ...\>; `start`: `Promise`\<... \| ...\>; `create`: `Promise`\<... \| ...\>; \}\> \| `null`; `auth`: [`OysterAuth`](host.md#oysterauth); `backgroundOriginKey?`: () => `Promise`\<`CryptoKey`\>; `artifacts`: [`ArtifactStore`](host.md#artifactstore); `uiCache?`: `Readonly`\<\{ `match`: (`digest`) => `Promise`\<`ReadableStream`\<...\> \| `null`\>; `put`: (`digest`, `bytes`) => `Promise`\<`"stored"` \| `"unstored"`\>; \}\>; `installations`: [`InstallationStore`](host.md#installationstore); `instances`: [`InstanceDirectory`](host.md#instancedirectory); `bootUi`: (`release`) => `Promise`\< \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: ... \| ... \| ... \| ... \| ...; `errorName?`: ... \| ... \| ... \| ... \| ... \| ... \| ... \| ...; `finalUrlPath`: `string`; `consoleErrors`: ...[]; `pageErrors`: ...[]; `failedRequests`: ...[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}\>; `computerId?`: `string`; `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: (`signal`) => `Promise`\<...\>; `call`: (`capabilityId`, `input`, `context`) => `Promise`\<...\>; \}\> \| `Promise`\< \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `null`\> \| `null`; `appToolPolicy?`: (`actor`) => \| \{ `level`: `"read"` \| `"write"`; `revision`: `string`; `grantedBy`: `string`; \} \| `Promise`\< \| \{ `level`: ... \| ...; `revision`: `string`; `grantedBy`: `string`; \} \| `null`\> \| `null`; `keys?`: `Readonly`\<\{ `live`: `Promise`\< \| `Readonly`\<\{ `keyId`: ...; `owner`: ...; `grantVersion`: ...; `grants`: ...; \}\> \| `null`\>; \}\>; `guestLimits?`: `Partial`\<`Readonly`\<\{ `cpuMs`: `number`; `subRequests`: `number`; \}\>\>; `mcp?`: `Readonly`\<\{ `handleRequest`: (`request`) => `Promise`\<`Response`\>; `close?`: () => `Promise`\<`void`\>; \}\>; `git?`: `Readonly`\<\{ `writerOf`: `Extract`\<`GitWriter`, \{ `kind`: `"actor"`; \}\>; `workflowPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `buildPass?`: `Promise`\< \| `Readonly`\<\{ `kind`: ...; `actor`: ...; `role?`: ...; `workflow?`: ...; \}\> \| `null`\>; `git`: `Promise`\<`Readonly`\<\{ `push`: `Promise`\<...\>; `read`: `Promise`\<...\>; `binding`: `GitBinding`; \}\>\>; \}\>; `ownerRoutes?`: `Hono`\<[`OysterEnv`](host.md#oysterenv), `BlankSchema`, `"/"`\>; `capabilities?`: readonly `Readonly`\<`object` & `object`\>[]; `workbench?`: `Readonly`\<\{ `directory`: `Promise`\<`Readonly`\<\{ `apps`: readonly ...[]; `roles`: [`OysterRootRoles`](root-data.md#oysterrootroles); `computer?`: ... \| ...; \}\>\>; `storage`: `Pick`\<`AppStorageWire`, `"read"` \| `"write"` \| `"reset"`\> & `Readonly`\<\{ `events`: `Promise`\<...\>; \}\>; \}\>; `homeInstallationId?`: `string`; `pageScript?`: `string`; `pageAssets?`: () => `Promise`\<\{ `pageScript`: `string`; `publicHomeScript`: `string`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>, `"appToolPolicy"` \| `"guestLimits"`\> & `Readonly`\<\{ `workspace?`: `Readonly`\<\{ `computerId`: `string`; `files`: [`FileSource`](files.md#filesource); `computer?`: (`principal`) => \| `Readonly`\<\{ `getCapabilities`: ...; `call`: ...; \}\> \| `Promise`\<... \| ...\> \| `null`; \}\>; `scope?`: `Readonly`\<\{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; `durableName`: `string`; `computerName`: `string`; `workspacePrefix`: `string`; `repositoryPrefix`: `string`; \}\>; \}\> |
|
|
2975
2976
|
|
|
2976
2977
|
#### Returns
|
|
2977
2978
|
|