@fungi.computer/oyster 0.5.0 → 0.7.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 +155 -63
- package/dist/agent-archive-projection.d.ts +8 -0
- package/dist/agent-archive-projection.js +49 -0
- package/dist/agent-schedules.d.ts +50 -0
- package/dist/agent-schedules.js +17 -0
- package/dist/agents.d.ts +35 -14
- package/dist/agents.js +97 -144
- package/dist/app-builds.d.ts +7 -2
- package/dist/app-builds.js +19 -2
- package/dist/approval-capability.d.ts +1 -1
- package/dist/approval-capability.js +11 -16
- package/dist/approval-home.d.ts +2 -1
- package/dist/approval-home.js +5 -3
- package/dist/apps/catalog.js +1 -1
- package/dist/apps/gate.d.ts +4 -7
- package/dist/apps/gate.js +14 -29
- package/dist/apps/index.d.ts +1 -1
- package/dist/apps/installation.d.ts +4 -42
- package/dist/apps/installation.js +7 -75
- package/dist/apps/operations.js +0 -10
- package/dist/apps/permissions.d.ts +18 -8
- package/dist/apps/permissions.js +7 -1
- package/dist/auth.js +9 -1
- package/dist/authorization.d.ts +307 -0
- package/dist/authorization.js +542 -0
- package/dist/boot-host-script.js +1 -1
- package/dist/build/build-jobs.d.ts +2 -2
- package/dist/build/candidate-builder.d.ts +2 -0
- package/dist/build/candidate-builder.js +5 -1
- package/dist/build/candidate-cli.js +3 -0
- package/dist/build/candidate-cli.mjs +67 -22
- package/dist/build/job-log.d.ts +23 -0
- package/dist/build/job-log.js +88 -0
- package/dist/build/local-build.d.ts +2 -0
- package/dist/build/local-build.js +11 -9
- 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 +11 -2
- package/dist/cloudflare.js +27 -1
- package/dist/{page/computer-target.d.ts → computer-target.d.ts} +2 -0
- package/dist/{page/computer-target.js → computer-target.js} +3 -1
- package/dist/files.js +9 -8
- package/dist/git-admission.d.ts +3 -3
- package/dist/git-admission.js +4 -6
- package/dist/git-door.d.ts +8 -7
- package/dist/git-door.js +18 -17
- package/dist/git.d.ts +1 -1
- package/dist/host.d.ts +38 -42
- package/dist/host.js +182 -239
- package/dist/installation-execution.js +10 -5
- package/dist/installation-operations.d.ts +4 -180
- package/dist/installation-operations.js +1 -5
- package/dist/installation-store-generation.d.ts +4 -1
- package/dist/installation-store-generation.js +59 -6
- package/dist/internal/delivery.js +0 -1
- package/dist/internal/host-gate.d.ts +9 -6
- package/dist/internal/host-gate.js +19 -25
- package/dist/internal/invocation-timing.d.ts +16 -0
- package/dist/internal/invocation-timing.js +23 -0
- package/dist/internal/registry-installations.js +1 -0
- package/dist/invocation.d.ts +19 -11
- package/dist/invocation.js +171 -96
- package/dist/keys.d.ts +2 -19
- package/dist/keys.js +1 -37
- package/dist/mcp.d.ts +15 -27
- package/dist/mcp.js +105 -155
- package/dist/page/agent-browser.d.ts +15 -0
- package/dist/page/agent-browser.js +162 -0
- package/dist/page/app-permissions-port.d.ts +3 -0
- package/dist/page/app-permissions-port.js +43 -0
- package/dist/page/app-permissions.d.ts +11 -0
- package/dist/page/app-permissions.js +296 -0
- 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/isolated-page-theme.d.ts +2 -0
- package/dist/page/isolated-page-theme.js +11 -0
- package/dist/page/mount.d.ts +2 -13
- package/dist/page/mount.js +8 -94
- package/dist/page-script.d.ts +0 -3
- package/dist/page-script.js +3 -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/agent-archive-owner.d.ts +42 -0
- package/dist/standalone/agent-archive-owner.js +116 -0
- package/dist/standalone/agent-archive-schedules.d.ts +6 -0
- package/dist/standalone/agent-archive-schedules.js +76 -0
- package/dist/standalone/agent-archive.d.ts +31 -0
- package/dist/standalone/agent-archive.js +67 -0
- package/dist/standalone/agent-computers.d.ts +7 -6
- package/dist/standalone/agent-computers.js +4 -7
- package/dist/standalone/agent-mail.d.ts +2 -2
- package/dist/standalone/agents.d.ts +157 -20
- package/dist/standalone/agents.js +242 -38
- package/dist/standalone/app-builds-binding.js +1 -1
- package/dist/standalone/app-set.js +2 -54
- package/dist/standalone/app-source.d.ts +3 -4
- package/dist/standalone/app-source.js +12 -9
- package/dist/standalone/builds.d.ts +2 -14
- package/dist/standalone/builds.js +15 -13
- package/dist/standalone/computer-fleet.d.ts +4 -4
- package/dist/standalone/computer-fleet.js +20 -43
- package/dist/standalone/computer.d.ts +4 -3
- package/dist/standalone/computer.js +52 -53
- package/dist/standalone/dashboard-approval.d.ts +10 -0
- package/dist/standalone/dashboard-approval.js +66 -0
- package/dist/standalone/machine-link.d.ts +4 -221
- package/dist/standalone/machine-link.js +21 -15
- package/dist/standalone/media.d.ts +1 -0
- package/dist/standalone/media.js +20 -14
- package/dist/standalone/owner-routes.d.ts +16 -0
- package/dist/standalone/owner-routes.js +21 -0
- package/dist/standalone/permission-resources.d.ts +5 -0
- package/dist/standalone/permission-resources.js +31 -0
- package/dist/standalone/registry.d.ts +7 -0
- package/dist/standalone/registry.js +3 -0
- package/dist/standalone/tenancy.js +3 -1
- package/dist/standalone/worker-routes.d.ts +19 -0
- package/dist/standalone/worker-routes.js +9 -0
- package/dist/standalone/worker.d.ts +1 -1
- package/dist/standalone/worker.js +27 -35
- package/dist/standalone/workflow-binding.d.ts +8 -3
- package/dist/standalone/workflow-binding.js +14 -5
- package/dist/standalone/workflow-git-capture.js +2 -1
- package/dist/standalone/workflow-host.d.ts +8 -103
- package/dist/standalone/workflow-host.js +1 -1
- package/dist/standalone/workflow-node-capture.js +2 -2
- package/dist/standalone/workflow-root-authority.d.ts +1 -1
- package/dist/standalone/workflow-root-authority.js +1 -1
- package/dist/standalone/workflow-schedules.d.ts +14 -5
- package/dist/standalone/workflow-schedules.js +11 -5
- package/dist/standalone/workflow-webhooks.d.ts +4 -18
- package/dist/standalone/workflow-webhooks.js +5 -5
- package/dist/standalone/workflows.d.ts +36 -28
- package/dist/standalone/workflows.js +6 -3
- package/dist/storage-frame.d.ts +6 -6
- package/dist/testing/capabilities.d.ts +7 -6
- package/dist/testing/capabilities.js +3 -6
- package/dist/testing/installation.d.ts +0 -1
- package/dist/testing/installation.js +2 -5
- package/dist/turnstile.d.ts +27 -0
- package/dist/turnstile.js +51 -0
- package/dist/workers-git.d.ts +12 -4
- package/dist/workers-git.js +58 -36
- package/dist/workers.d.ts +9 -1
- package/dist/workers.js +59 -20
- package/dist/workflows.d.ts +2 -0
- package/dist/workflows.js +1 -0
- package/docs/api/README.md +7 -0
- package/docs/api/agent-schedules.md +175 -0
- package/docs/api/agents.md +34 -13
- package/docs/api/app-storage.md +1 -1
- package/docs/api/apps.md +323 -225
- package/docs/api/authorization.md +1300 -0
- package/docs/api/build-contract.md +2 -2
- package/docs/api/build.md +40 -37
- package/docs/api/cloudflare.md +27 -2
- package/docs/api/git.md +20 -11
- package/docs/api/host.md +80 -199
- package/docs/api/index.md +1 -1
- package/docs/api/invocation.md +15 -11
- package/docs/api/keys.md +1 -98
- package/docs/api/mcp.md +43 -40
- package/docs/api/modules.md +2 -0
- package/docs/api/page/mount.md +16 -19
- package/docs/api/workers-git.md +46 -12
- package/docs/api/workers.md +125 -235
- package/docs/site/agent-quickstart.mdx +6 -2
- package/examples/standalone/wrangler.celld.jsonc +66 -0
- package/package.json +64 -21
- package/dist/standalone/channel-session-door.d.ts +0 -4
- package/dist/standalone/channel-session-door.js +0 -42
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?`: `
|
|
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`; `permissionResources?`: (`principal`) => `Promise`\<readonly [`ResourceOption`](apps.md#resourceoption)[]\>; `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?`: [`Routes`](authorization.md#routes)\<[`OysterEnv`](host.md#oysterenv)\>; `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`; `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`; `permissionResources?`: (`principal`) => `Promise`\<readonly [`ResourceOption`](apps.md#resourceoption)[]\>; `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?`: [`Routes`](authorization.md#routes)\<[`OysterEnv`](host.md#oysterenv)\>; `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`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>\> |
|
|
53
53
|
|
|
54
54
|
###### Returns
|
|
55
55
|
|
|
@@ -241,13 +241,13 @@ approvalGet(
|
|
|
241
241
|
| null;
|
|
242
242
|
reason: | "pending"
|
|
243
243
|
| "expired"
|
|
244
|
+
| "not-granted"
|
|
244
245
|
| "not-found"
|
|
245
246
|
| "not-eligible"
|
|
246
247
|
| "already-answered"
|
|
247
248
|
| "stale-revision"
|
|
248
249
|
| "declined"
|
|
249
250
|
| "fenced"
|
|
250
|
-
| "not-granted"
|
|
251
251
|
| "read-only"
|
|
252
252
|
| "in-flight"
|
|
253
253
|
| "outcome-unknown"
|
|
@@ -287,8 +287,8 @@ Read one member-scoped view; the native home resolves membership again.
|
|
|
287
287
|
\| `"applied"` \| `"requested"` \| `"approved"` \| `"claimed"` \|
|
|
288
288
|
`"outcome_unknown"`; `by`: \| \{ `kind`: `"human"`; `memberId`: `string`; \} \|
|
|
289
289
|
\{ `kind`: `"policy"`; \} \| `null`; `reason`: \| `"pending"` \| `"expired"` \|
|
|
290
|
-
`"not-
|
|
291
|
-
|
|
290
|
+
`"not-granted"` \| `"not-found"` \| `"not-eligible"` \| `"already-answered"` \|
|
|
291
|
+
`"stale-revision"` \| `"declined"` \| `"fenced"` \| `"read-only"` \|
|
|
292
292
|
`"in-flight"` \| `"outcome-unknown"` \| `"identity-conflict"` \| `null`;
|
|
293
293
|
`denialNote?`: `string`; `requestedAt`: `number`; `expiresAt`: `number`;
|
|
294
294
|
`updatedAt`: `number`; `revision`: `number`; \}; `canAnswer`: `boolean`;
|
|
@@ -342,13 +342,13 @@ approvalAnswer(
|
|
|
342
342
|
| null;
|
|
343
343
|
reason: | "pending"
|
|
344
344
|
| "expired"
|
|
345
|
+
| "not-granted"
|
|
345
346
|
| "not-found"
|
|
346
347
|
| "not-eligible"
|
|
347
348
|
| "already-answered"
|
|
348
349
|
| "stale-revision"
|
|
349
350
|
| "declined"
|
|
350
351
|
| "fenced"
|
|
351
|
-
| "not-granted"
|
|
352
352
|
| "read-only"
|
|
353
353
|
| "in-flight"
|
|
354
354
|
| "outcome-unknown"
|
|
@@ -368,13 +368,13 @@ approvalAnswer(
|
|
|
368
368
|
kind: "refused";
|
|
369
369
|
reason: | "pending"
|
|
370
370
|
| "expired"
|
|
371
|
+
| "not-granted"
|
|
371
372
|
| "not-found"
|
|
372
373
|
| "not-eligible"
|
|
373
374
|
| "already-answered"
|
|
374
375
|
| "stale-revision"
|
|
375
376
|
| "declined"
|
|
376
377
|
| "fenced"
|
|
377
|
-
| "not-granted"
|
|
378
378
|
| "read-only"
|
|
379
379
|
| "in-flight"
|
|
380
380
|
| "outcome-unknown"
|
|
@@ -409,15 +409,15 @@ Persist an eligible answer and attempt its native decision work once.
|
|
|
409
409
|
\| `"pending"` \| `"expired"` \| `"denied"` \| `"applied"` \| `"requested"` \|
|
|
410
410
|
`"approved"` \| `"claimed"` \| `"outcome_unknown"`; `by`: \| \{ `kind`:
|
|
411
411
|
`"human"`; `memberId`: `string`; \} \| \{ `kind`: `"policy"`; \} \| `null`;
|
|
412
|
-
`reason`: \| `"pending"` \| `"expired"` \| `"not-
|
|
413
|
-
`"
|
|
414
|
-
`"
|
|
412
|
+
`reason`: \| `"pending"` \| `"expired"` \| `"not-granted"` \| `"not-found"` \|
|
|
413
|
+
`"not-eligible"` \| `"already-answered"` \| `"stale-revision"` \| `"declined"`
|
|
414
|
+
\| `"fenced"` \| `"read-only"` \| `"in-flight"` \| `"outcome-unknown"` \|
|
|
415
415
|
`"identity-conflict"` \| `null`; `denialNote?`: `string`; `requestedAt`:
|
|
416
416
|
`number`; `expiresAt`: `number`; `updatedAt`: `number`; `revision`: `number`;
|
|
417
417
|
\}; `canAnswer`: `boolean`; `canSetAutoApprove`: `boolean`; \}; \}\> \|
|
|
418
418
|
`Readonly`\<\{ `kind`: `"refused"`; `reason`: \| `"pending"` \| `"expired"` \|
|
|
419
|
-
`"not-
|
|
420
|
-
|
|
419
|
+
`"not-granted"` \| `"not-found"` \| `"not-eligible"` \| `"already-answered"` \|
|
|
420
|
+
`"stale-revision"` \| `"declined"` \| `"fenced"` \| `"read-only"` \|
|
|
421
421
|
`"in-flight"` \| `"outcome-unknown"` \| `"identity-conflict"`; `denialNote?`:
|
|
422
422
|
`string`; \}\>\>
|
|
423
423
|
|
|
@@ -433,13 +433,13 @@ approvalSetAutoApprove(
|
|
|
433
433
|
kind: "refused";
|
|
434
434
|
reason: | "pending"
|
|
435
435
|
| "expired"
|
|
436
|
+
| "not-granted"
|
|
436
437
|
| "not-found"
|
|
437
438
|
| "not-eligible"
|
|
438
439
|
| "already-answered"
|
|
439
440
|
| "stale-revision"
|
|
440
441
|
| "declined"
|
|
441
442
|
| "fenced"
|
|
442
|
-
| "not-granted"
|
|
443
443
|
| "read-only"
|
|
444
444
|
| "in-flight"
|
|
445
445
|
| "outcome-unknown"
|
|
@@ -481,8 +481,8 @@ it.
|
|
|
481
481
|
###### Returns
|
|
482
482
|
|
|
483
483
|
`Promise`\< \| `Readonly`\<\{ `kind`: `"refused"`; `reason`: \| `"pending"` \|
|
|
484
|
-
`"expired"` \| `"not-
|
|
485
|
-
`"
|
|
484
|
+
`"expired"` \| `"not-granted"` \| `"not-found"` \| `"not-eligible"` \|
|
|
485
|
+
`"already-answered"` \| `"stale-revision"` \| `"declined"` \| `"fenced"` \|
|
|
486
486
|
`"read-only"` \| `"in-flight"` \| `"outcome-unknown"` \| `"identity-conflict"`;
|
|
487
487
|
`denialNote?`: `string`; \}\> \| `Readonly`\<\{ `kind`: `"updated"`; `rule`: \{
|
|
488
488
|
`scope`: \{ `agentId`: `string` \| `null`; \}; `family`: \{ `module`: `string`
|
|
@@ -581,13 +581,13 @@ installationOperation(input): Promise<
|
|
|
581
581
|
| "request_failed"
|
|
582
582
|
| "page_error"
|
|
583
583
|
| "candidate_not_mounted";
|
|
584
|
-
errorName?: | "
|
|
584
|
+
errorName?: | "Error"
|
|
585
|
+
| "TypeError"
|
|
585
586
|
| "RangeError"
|
|
586
587
|
| "SyntaxError"
|
|
587
588
|
| "AbortError"
|
|
588
589
|
| "TimeoutError"
|
|
589
|
-
| "Other"
|
|
590
|
-
| "Error";
|
|
590
|
+
| "Other";
|
|
591
591
|
finalUrlPath: string;
|
|
592
592
|
consoleErrors: string[];
|
|
593
593
|
pageErrors: string[];
|
|
@@ -640,17 +640,6 @@ installationOperation(input): Promise<
|
|
|
640
640
|
| null;
|
|
641
641
|
};
|
|
642
642
|
status: "enabled" | "disabled" | "deleted";
|
|
643
|
-
visibility: "private" | "public";
|
|
644
|
-
approvedAnonymousMethods: readonly Readonly<{
|
|
645
|
-
name: string;
|
|
646
|
-
digest: Sha256Digest;
|
|
647
|
-
}>[];
|
|
648
|
-
anonymousApproval: | Readonly<{
|
|
649
|
-
by: ... | ... | ...;
|
|
650
|
-
at: number;
|
|
651
|
-
authorityVersion: number;
|
|
652
|
-
}>
|
|
653
|
-
| null;
|
|
654
643
|
}
|
|
655
644
|
| null;
|
|
656
645
|
}
|
|
@@ -751,17 +740,6 @@ installationOperation(input): Promise<
|
|
|
751
740
|
| null;
|
|
752
741
|
};
|
|
753
742
|
status: "enabled" | "disabled" | "deleted";
|
|
754
|
-
visibility: "private" | "public";
|
|
755
|
-
approvedAnonymousMethods: readonly Readonly<{
|
|
756
|
-
name: string;
|
|
757
|
-
digest: Sha256Digest;
|
|
758
|
-
}>[];
|
|
759
|
-
anonymousApproval: | Readonly<{
|
|
760
|
-
by: ... | ... | ...;
|
|
761
|
-
at: number;
|
|
762
|
-
authorityVersion: number;
|
|
763
|
-
}>
|
|
764
|
-
| null;
|
|
765
743
|
}
|
|
766
744
|
| null;
|
|
767
745
|
acceptedAt: number;
|
|
@@ -792,17 +770,6 @@ installationOperation(input): Promise<
|
|
|
792
770
|
approval: Readonly<...> | null;
|
|
793
771
|
};
|
|
794
772
|
status: "enabled" | "disabled" | "deleted";
|
|
795
|
-
visibility: "private" | "public";
|
|
796
|
-
approvedAnonymousMethods: readonly Readonly<{
|
|
797
|
-
name: ...;
|
|
798
|
-
digest: ...;
|
|
799
|
-
}>[];
|
|
800
|
-
anonymousApproval: | Readonly<{
|
|
801
|
-
by: ...;
|
|
802
|
-
at: ...;
|
|
803
|
-
authorityVersion: ...;
|
|
804
|
-
}>
|
|
805
|
-
| null;
|
|
806
773
|
};
|
|
807
774
|
hasBackend: boolean;
|
|
808
775
|
prepared: boolean;
|
|
@@ -873,9 +840,9 @@ command for the caller's tenant scope.
|
|
|
873
840
|
|
|
874
841
|
###### Parameters
|
|
875
842
|
|
|
876
|
-
| Parameter | Type
|
|
877
|
-
| --------- |
|
|
878
|
-
| `input` | \| \{ `action`: `"admit"`; `scope`: \{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `input`: \{ `requestId`: `string`; `installationId`: `string`; `release`: \{ `releaseId`: `ReleaseId`; `appId`: `AppId`; `artifact`: \{ `artifactRef`: `ArtifactRef`; `artifactDigest`: `Sha256Digest`; `provenance`: \{ `sourceRevision`: `SourceRevision`; `sourceTreeDigest`: `Sha256Digest`; `buildRecipeDigest`: `Sha256Digest`; \}; \}; \}; `actor`: \| \{ `kind`: `"member"`; `memberId`: `string`; \} \| \{ `kind`: `"agent"`; `agentId`: `string`; \} \| \{ `kind`: `"team-key"`; `keyId`: `string`; \}; `intent`: `"install-or-select"` \| `"install-or-remint"` \| `"create-only"`; `origin`: `"workflow"` \| `"owner-direct"`; \}; \} \| \{ `action`: `"read"`; `scope`: \{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `requestId`: `string`; `installationId`: `string`; \} \| \{ `action`: `"load"`; `scope`: \{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `requestId`: `string`; \} \| \{ `action`: `"plan"`; `scope`: \{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `requestId`: `string`; `installation`: \{ `installationId`: `string`; `instanceId`: [`InstanceId`](index.md#instanceid) \| `null`; `appId`: `AppId`; `release`: \{ `releaseId`: `ReleaseId`; `appId`: `AppId`; `artifact`: \{ `artifactRef`: `ArtifactRef`; `artifactDigest`: `Sha256Digest`; `provenance`: \{ `sourceRevision`: `SourceRevision`; `sourceTreeDigest`: `Sha256Digest`; `buildRecipeDigest`: `Sha256Digest`; \}; \}; \}; `releasePin`: `"pinned"` \| `"floating"`; `authority`: \{ `authorityVersion`: `number`; `declaredOperationsDigest`: `Sha256Digest`; `approvedGrants`: readonly `Readonly`\<\{ `capability`: \| `"computer.list"` \| `"computer.readFile"` \| `"computer.writeFile"` \| `"computer.execute"` \| `"approvals"` \| `"agent.list"` \| `"agent.manage"` \| `"agent.rename"` \| `"agent.avatar"` \| `"agent.toolPolicy"` \| `"agent.read"` \| `"agent.send"` \| `"llm.generation"` \| `"media.generation"` \| `"games:servers"` \| `"git.repository"` \| `"apps.open"` \| `"apps.call"` \| `"app.storage"` \| `"app.events.emit"` \| `"team.workbenchHost"` \| `"marketplace.browse"` \| `"marketplace.purchase"` \| `"workflow.run"` \| `"workflow.publish"` \| `"workflow.arm"` \| `"world"` \| `"channels.read"` \| `"channels.personal.manage"`; `capabilityApproved`: `true`; `operations`: readonly `string`[]; `resources`: \| `"tenant-scope"` \| readonly `Readonly`\<\{ `kind`: ...; `id`: ...; \}\>[]; \}\>[]; `approval`: \| `Readonly`\<\{ `by`: \| \{ `kind`: `"member"`; `memberId`: `string`; \} \| \{ `kind`: `"agent"`; `agentId`: `string`; \} \| \{ `kind`: `"team-key"`; `keyId`: `string`; \}; `at`: `number`; `authorityVersion`: `number`; \}\> \| `null`; \}; `status`: `"enabled"` \| `"disabled"` \| `"deleted"`;
|
|
843
|
+
| Parameter | Type |
|
|
844
|
+
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
845
|
+
| `input` | \| \{ `action`: `"admit"`; `scope`: \{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `input`: \{ `requestId`: `string`; `installationId`: `string`; `release`: \{ `releaseId`: `ReleaseId`; `appId`: `AppId`; `artifact`: \{ `artifactRef`: `ArtifactRef`; `artifactDigest`: `Sha256Digest`; `provenance`: \{ `sourceRevision`: `SourceRevision`; `sourceTreeDigest`: `Sha256Digest`; `buildRecipeDigest`: `Sha256Digest`; \}; \}; \}; `actor`: \| \{ `kind`: `"member"`; `memberId`: `string`; \} \| \{ `kind`: `"agent"`; `agentId`: `string`; \} \| \{ `kind`: `"team-key"`; `keyId`: `string`; \}; `intent`: `"install-or-select"` \| `"install-or-remint"` \| `"create-only"`; `origin`: `"workflow"` \| `"owner-direct"`; \}; \} \| \{ `action`: `"read"`; `scope`: \{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `requestId`: `string`; `installationId`: `string`; \} \| \{ `action`: `"load"`; `scope`: \{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `requestId`: `string`; \} \| \{ `action`: `"plan"`; `scope`: \{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `requestId`: `string`; `installation`: \{ `installationId`: `string`; `instanceId`: [`InstanceId`](index.md#instanceid) \| `null`; `appId`: `AppId`; `release`: \{ `releaseId`: `ReleaseId`; `appId`: `AppId`; `artifact`: \{ `artifactRef`: `ArtifactRef`; `artifactDigest`: `Sha256Digest`; `provenance`: \{ `sourceRevision`: `SourceRevision`; `sourceTreeDigest`: `Sha256Digest`; `buildRecipeDigest`: `Sha256Digest`; \}; \}; \}; `releasePin`: `"pinned"` \| `"floating"`; `authority`: \{ `authorityVersion`: `number`; `declaredOperationsDigest`: `Sha256Digest`; `approvedGrants`: readonly `Readonly`\<\{ `capability`: \| `"computer.list"` \| `"computer.readFile"` \| `"computer.writeFile"` \| `"computer.execute"` \| `"approvals"` \| `"agent.list"` \| `"agent.manage"` \| `"agent.rename"` \| `"agent.avatar"` \| `"agent.toolPolicy"` \| `"agent.read"` \| `"agent.send"` \| `"llm.generation"` \| `"media.generation"` \| `"games:servers"` \| `"git.repository"` \| `"apps.open"` \| `"apps.call"` \| `"app.storage"` \| `"app.events.emit"` \| `"team.workbenchHost"` \| `"marketplace.browse"` \| `"marketplace.purchase"` \| `"workflow.run"` \| `"workflow.publish"` \| `"workflow.arm"` \| `"world"` \| `"channels.read"` \| `"channels.personal.manage"`; `capabilityApproved`: `true`; `operations`: readonly `string`[]; `resources`: \| `"tenant-scope"` \| readonly `Readonly`\<\{ `kind`: ...; `id`: ...; \}\>[]; \}\>[]; `approval`: \| `Readonly`\<\{ `by`: \| \{ `kind`: `"member"`; `memberId`: `string`; \} \| \{ `kind`: `"agent"`; `agentId`: `string`; \} \| \{ `kind`: `"team-key"`; `keyId`: `string`; \}; `at`: `number`; `authorityVersion`: `number`; \}\> \| `null`; \}; `status`: `"enabled"` \| `"disabled"` \| `"deleted"`; \}; `hasBackend`: `boolean`; \} \| \{ `action`: `"commit"`; `scope`: \{ `tenantId`: `string` & `Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `requestId`: `string`; `uiCheck`: \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: \| `"unexpected_candidate_request"` \| `"response_status"` \| `"request_failed"` \| `"page_error"` \| `"candidate_not_mounted"`; `errorName?`: \| `"Error"` \| `"TypeError"` \| `"RangeError"` \| `"SyntaxError"` \| `"AbortError"` \| `"TimeoutError"` \| `"Other"`; `finalUrlPath`: `string`; `consoleErrors`: `string`[]; `pageErrors`: `string`[]; `failedRequests`: `object`[]; `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"`; \} \| `null`; \} |
|
|
879
846
|
|
|
880
847
|
###### Returns
|
|
881
848
|
|
|
@@ -906,8 +873,8 @@ command for the caller's tenant scope.
|
|
|
906
873
|
`kind`: `"failed"`; `code`: `"ui_mount_failed"`; `diagnostics?`: \{
|
|
907
874
|
`failedPredicate`: \| `"unexpected_candidate_request"` \| `"response_status"` \|
|
|
908
875
|
`"request_failed"` \| `"page_error"` \| `"candidate_not_mounted"`; `errorName?`:
|
|
909
|
-
\| `"
|
|
910
|
-
`"
|
|
876
|
+
\| `"Error"` \| `"TypeError"` \| `"RangeError"` \| `"SyntaxError"` \|
|
|
877
|
+
`"AbortError"` \| `"TimeoutError"` \| `"Other"`; `finalUrlPath`: `string`;
|
|
911
878
|
`consoleErrors`: `string`[]; `pageErrors`: `string`[]; `failedRequests`:
|
|
912
879
|
`object`[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`;
|
|
913
880
|
`code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \|
|
|
@@ -923,26 +890,22 @@ command for the caller's tenant scope.
|
|
|
923
890
|
`approvedGrants`: readonly `Readonly`\<\{ `capability`: ...;
|
|
924
891
|
`capabilityApproved`: ...; `operations`: ...; `resources`: ...; \}\>[];
|
|
925
892
|
`approval`: \| `Readonly`\<\{ `by`: ...; `at`: ...; `authorityVersion`: ...;
|
|
926
|
-
\}\> \| `null`; \}; `status`: `"enabled"` \| `"disabled"` \| `"deleted"`;
|
|
927
|
-
`
|
|
928
|
-
`
|
|
929
|
-
`
|
|
930
|
-
`
|
|
931
|
-
`
|
|
932
|
-
|
|
933
|
-
\{ `
|
|
934
|
-
\{ `
|
|
935
|
-
`
|
|
936
|
-
`
|
|
937
|
-
`
|
|
938
|
-
`
|
|
939
|
-
`
|
|
940
|
-
`
|
|
941
|
-
`
|
|
942
|
-
`string`; \} \| \{ `kind`: `"agent"`; `agentId`: `string`; \} \| \{ `kind`:
|
|
943
|
-
`"team-key"`; `keyId`: `string`; \}; `intent`: `"install-or-select"` \|
|
|
944
|
-
`"install-or-remint"` \| `"create-only"`; `origin`: `"workflow"` \|
|
|
945
|
-
`"owner-direct"`; \}; `scope`: \{ `tenantId`: `string` &
|
|
893
|
+
\}\> \| `null`; \}; `status`: `"enabled"` \| `"disabled"` \| `"deleted"`; \} \|
|
|
894
|
+
`null`; \} \| \{ `requestId`: `string`; `requestedInstallationId`: `string`;
|
|
895
|
+
`installationId`: `string`; `release`: \{ `releaseId`: `ReleaseId`; `appId`:
|
|
896
|
+
`AppId`; `artifact`: \{ `artifactRef`: `ArtifactRef`; `artifactDigest`:
|
|
897
|
+
`Sha256Digest`; `provenance`: \{ `sourceRevision`: `SourceRevision`;
|
|
898
|
+
`sourceTreeDigest`: `Sha256Digest`; `buildRecipeDigest`: `Sha256Digest`; \}; \};
|
|
899
|
+
\}; `state`: `"pending"`; \} \| `null`; \} \| \{ `kind`: `"command"`; `command`:
|
|
900
|
+
\| \{ `admission`: \{ `requestId`: `string`; `installationId`: `string`;
|
|
901
|
+
`release`: \{ `releaseId`: `ReleaseId`; `appId`: `AppId`; `artifact`: \{
|
|
902
|
+
`artifactRef`: `ArtifactRef`; `artifactDigest`: `Sha256Digest`; `provenance`: \{
|
|
903
|
+
`sourceRevision`: `SourceRevision`; `sourceTreeDigest`: `Sha256Digest`;
|
|
904
|
+
`buildRecipeDigest`: `Sha256Digest`; \}; \}; \}; `actor`: \| \{ `kind`:
|
|
905
|
+
`"member"`; `memberId`: `string`; \} \| \{ `kind`: `"agent"`; `agentId`:
|
|
906
|
+
`string`; \} \| \{ `kind`: `"team-key"`; `keyId`: `string`; \}; `intent`:
|
|
907
|
+
`"install-or-select"` \| `"install-or-remint"` \| `"create-only"`; `origin`:
|
|
908
|
+
`"workflow"` \| `"owner-direct"`; \}; `scope`: \{ `tenantId`: `string` &
|
|
946
909
|
`Brand`\<`"OysterTenantId"`\>; `origin`: `string`; \}; `installationId`:
|
|
947
910
|
`string`; `instanceId`: [`InstanceId`](index.md#instanceid); `generation`:
|
|
948
911
|
`string`; `baseline`: \| \{ `installationId`: `string`; `instanceId`:
|
|
@@ -956,35 +919,28 @@ command for the caller's tenant scope.
|
|
|
956
919
|
`Readonly`\<\{ `capability`: ...; `capabilityApproved`: ...; `operations`: ...;
|
|
957
920
|
`resources`: ...; \}\>[]; `approval`: \| `Readonly`\<\{ `by`: ...; `at`: ...;
|
|
958
921
|
`authorityVersion`: ...; \}\> \| `null`; \}; `status`: `"enabled"` \|
|
|
959
|
-
`"disabled"` \| `"deleted"`; `
|
|
960
|
-
`
|
|
961
|
-
`
|
|
962
|
-
|
|
963
|
-
`
|
|
964
|
-
`
|
|
965
|
-
`
|
|
966
|
-
`
|
|
967
|
-
`
|
|
968
|
-
`
|
|
969
|
-
|
|
970
|
-
`
|
|
971
|
-
`
|
|
972
|
-
|
|
973
|
-
`
|
|
974
|
-
`
|
|
975
|
-
|
|
976
|
-
`
|
|
977
|
-
`
|
|
978
|
-
`
|
|
979
|
-
|
|
980
|
-
`
|
|
981
|
-
`"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \|
|
|
982
|
-
`"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}
|
|
983
|
-
\| `null`; \} \| `null`; `operation`: \{ `requestId`: `string`;
|
|
984
|
-
`requestedInstallationId`: `string`; `installationId`: `string`; `release`: \{
|
|
985
|
-
`releaseId`: `ReleaseId`; `appId`: `AppId`; `artifact`: \{ `artifactRef`:
|
|
986
|
-
`ArtifactRef`; `artifactDigest`: `Sha256Digest`; `provenance`: \{
|
|
987
|
-
`sourceRevision`: `SourceRevision`; `sourceTreeDigest`: `Sha256Digest`;
|
|
922
|
+
`"disabled"` \| `"deleted"`; \} \| `null`; `acceptedAt`: `number`; `creation`:
|
|
923
|
+
`"fresh"` \| `"replacement"` \| `"reminted"`; `plan`: \| \{ `installation`: \{
|
|
924
|
+
`installationId`: `string`; `instanceId`: [`InstanceId`](index.md#instanceid) \|
|
|
925
|
+
`null`; `appId`: `AppId`; `release`: \{ `releaseId`: `ReleaseId`; `appId`:
|
|
926
|
+
`AppId`; `artifact`: \{ `artifactRef`: `ArtifactRef`; `artifactDigest`:
|
|
927
|
+
`Sha256Digest`; `provenance`: \{ `sourceRevision`: ...; `sourceTreeDigest`: ...;
|
|
928
|
+
`buildRecipeDigest`: ...; \}; \}; \}; `releasePin`: `"pinned"` \| `"floating"`;
|
|
929
|
+
`authority`: \{ `authorityVersion`: `number`; `declaredOperationsDigest`:
|
|
930
|
+
`Sha256Digest`; `approvedGrants`: readonly `Readonly`\<...\>[]; `approval`:
|
|
931
|
+
`Readonly`\<...\> \| `null`; \}; `status`: `"enabled"` \| `"disabled"` \|
|
|
932
|
+
`"deleted"`; \}; `hasBackend`: `boolean`; `prepared`: `boolean`; `uiCheck?`: \|
|
|
933
|
+
\{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`;
|
|
934
|
+
`diagnostics?`: \{ `failedPredicate`: ...; `errorName?`: ...; `finalUrlPath`:
|
|
935
|
+
...; `consoleErrors`: ...; `pageErrors`: ...; `failedRequests`: ...;
|
|
936
|
+
`droppedCount`: ...; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \|
|
|
937
|
+
`"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \|
|
|
938
|
+
`"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \|
|
|
939
|
+
`"ui_check_not_run_on_host"`; \} \| `null`; \} \| `null`; `operation`: \{
|
|
940
|
+
`requestId`: `string`; `requestedInstallationId`: `string`; `installationId`:
|
|
941
|
+
`string`; `release`: \{ `releaseId`: `ReleaseId`; `appId`: `AppId`; `artifact`:
|
|
942
|
+
\{ `artifactRef`: `ArtifactRef`; `artifactDigest`: `Sha256Digest`; `provenance`:
|
|
943
|
+
\{ `sourceRevision`: `SourceRevision`; `sourceTreeDigest`: `Sha256Digest`;
|
|
988
944
|
`buildRecipeDigest`: `Sha256Digest`; \}; \}; \}; `state`: `"pending"`; \}; \} \|
|
|
989
945
|
`null`; \} \| \{ `kind`: `"commit"`; `commit`: \| \{ `ok`: `true`; \} \| \{
|
|
990
946
|
`ok`: `false`; `code`: `"stale_authority"`; \}; \}\>
|
|
@@ -1040,7 +996,7 @@ storageRead(
|
|
|
1040
996
|
key
|
|
1041
997
|
): Promise<AppStorageResult<{
|
|
1042
998
|
value: Json;
|
|
1043
|
-
source: "
|
|
999
|
+
source: "team" | "member" | "none";
|
|
1044
1000
|
team: | {
|
|
1045
1001
|
value: Json;
|
|
1046
1002
|
revision: number;
|
|
@@ -1067,9 +1023,9 @@ Read one key for the authenticated root owner, under fresh App admission.
|
|
|
1067
1023
|
|
|
1068
1024
|
###### Returns
|
|
1069
1025
|
|
|
1070
|
-
`Promise`\<`AppStorageResult`\<\{ `value`: `Json`; `source`: `"
|
|
1071
|
-
`"
|
|
1072
|
-
`null`; `member`: \| \{ `value`: `Json`; `revision`: `number`; \} \| `null`;
|
|
1026
|
+
`Promise`\<`AppStorageResult`\<\{ `value`: `Json`; `source`: `"team"` \|
|
|
1027
|
+
`"member"` \| `"none"`; `team`: \| \{ `value`: `Json`; `revision`: `number`; \}
|
|
1028
|
+
\| `null`; `member`: \| \{ `value`: `Json`; `revision`: `number`; \} \| `null`;
|
|
1073
1029
|
`canWriteTeam`: `boolean`; \}\>\>
|
|
1074
1030
|
|
|
1075
1031
|
##### storageWrite()
|
|
@@ -1092,10 +1048,10 @@ Write one declared key for the authenticated root owner.
|
|
|
1092
1048
|
| ---------------- | ------------------------------------------------------------------------------------------------------- |
|
|
1093
1049
|
| `installationId` | `string` |
|
|
1094
1050
|
| `ownerId` | `string` |
|
|
1095
|
-
| `input` | \{ `value`: `Json`; `key`: `string`; `scope`: `"
|
|
1051
|
+
| `input` | \{ `value`: `Json`; `key`: `string`; `scope`: `"team"` \| `"member"`; `basedOn`: `number` \| `null`; \} |
|
|
1096
1052
|
| `input.value` | `Json` |
|
|
1097
1053
|
| `input.key` | `string` |
|
|
1098
|
-
| `input.scope` | `"
|
|
1054
|
+
| `input.scope` | `"team"` \| `"member"` |
|
|
1099
1055
|
| `input.basedOn` | `number` \| `null` |
|
|
1100
1056
|
|
|
1101
1057
|
###### Returns
|
|
@@ -1122,9 +1078,9 @@ Reset one declared layer for the authenticated root owner.
|
|
|
1122
1078
|
| ---------------- | -------------------------------------------------------------------------------------- |
|
|
1123
1079
|
| `installationId` | `string` |
|
|
1124
1080
|
| `ownerId` | `string` |
|
|
1125
|
-
| `input` | \{ `key`: `string`; `scope`: `"
|
|
1081
|
+
| `input` | \{ `key`: `string`; `scope`: `"team"` \| `"member"`; `basedOn`: `number` \| `null`; \} |
|
|
1126
1082
|
| `input.key` | `string` |
|
|
1127
|
-
| `input.scope` | `"
|
|
1083
|
+
| `input.scope` | `"team"` \| `"member"` |
|
|
1128
1084
|
| `input.basedOn` | `number` \| `null` |
|
|
1129
1085
|
|
|
1130
1086
|
###### Returns
|
|
@@ -1289,28 +1245,6 @@ list(): Readonly<{
|
|
|
1289
1245
|
| null;
|
|
1290
1246
|
};
|
|
1291
1247
|
status: "enabled" | "disabled" | "deleted";
|
|
1292
|
-
visibility: "private" | "public";
|
|
1293
|
-
approvedAnonymousMethods: readonly Readonly<{
|
|
1294
|
-
name: string;
|
|
1295
|
-
digest: Sha256Digest;
|
|
1296
|
-
}>[];
|
|
1297
|
-
anonymousApproval: | Readonly<{
|
|
1298
|
-
by: | {
|
|
1299
|
-
kind: "member";
|
|
1300
|
-
memberId: string;
|
|
1301
|
-
}
|
|
1302
|
-
| {
|
|
1303
|
-
kind: "agent";
|
|
1304
|
-
agentId: string;
|
|
1305
|
-
}
|
|
1306
|
-
| {
|
|
1307
|
-
kind: "team-key";
|
|
1308
|
-
keyId: string;
|
|
1309
|
-
};
|
|
1310
|
-
at: number;
|
|
1311
|
-
authorityVersion: number;
|
|
1312
|
-
}>
|
|
1313
|
-
| null;
|
|
1314
1248
|
}>[];
|
|
1315
1249
|
```
|
|
1316
1250
|
|
|
@@ -1340,13 +1274,7 @@ Every installation record.
|
|
|
1340
1274
|
`Readonly`\<\{ `by`: \| \{ `kind`: `"member"`; `memberId`: `string`; \} \| \{
|
|
1341
1275
|
`kind`: `"agent"`; `agentId`: `string`; \} \| \{ `kind`: `"team-key"`; `keyId`:
|
|
1342
1276
|
`string`; \}; `at`: `number`; `authorityVersion`: `number`; \}\> \| `null`; \};
|
|
1343
|
-
`status`: `"enabled"` \| `"disabled"` \| `"deleted"`;
|
|
1344
|
-
\| `"public"`; `approvedAnonymousMethods`: readonly `Readonly`\<\{ `name`:
|
|
1345
|
-
`string`; `digest`: `Sha256Digest`; \}\>[]; `anonymousApproval`: \|
|
|
1346
|
-
`Readonly`\<\{ `by`: \| \{ `kind`: `"member"`; `memberId`: `string`; \} \| \{
|
|
1347
|
-
`kind`: `"agent"`; `agentId`: `string`; \} \| \{ `kind`: `"team-key"`; `keyId`:
|
|
1348
|
-
`string`; \}; `at`: `number`; `authorityVersion`: `number`; \}\> \| `null`;
|
|
1349
|
-
\}\>[]
|
|
1277
|
+
`status`: `"enabled"` \| `"disabled"` \| `"deleted"`; \}\>[]
|
|
1350
1278
|
|
|
1351
1279
|
##### get()
|
|
1352
1280
|
|
|
@@ -1430,28 +1358,6 @@ get(installationId):
|
|
|
1430
1358
|
| null;
|
|
1431
1359
|
};
|
|
1432
1360
|
status: "enabled" | "disabled" | "deleted";
|
|
1433
|
-
visibility: "private" | "public";
|
|
1434
|
-
approvedAnonymousMethods: readonly Readonly<{
|
|
1435
|
-
name: string;
|
|
1436
|
-
digest: Sha256Digest;
|
|
1437
|
-
}>[];
|
|
1438
|
-
anonymousApproval: | Readonly<{
|
|
1439
|
-
by: | {
|
|
1440
|
-
kind: "member";
|
|
1441
|
-
memberId: string;
|
|
1442
|
-
}
|
|
1443
|
-
| {
|
|
1444
|
-
kind: "agent";
|
|
1445
|
-
agentId: string;
|
|
1446
|
-
}
|
|
1447
|
-
| {
|
|
1448
|
-
kind: "team-key";
|
|
1449
|
-
keyId: string;
|
|
1450
|
-
};
|
|
1451
|
-
at: number;
|
|
1452
|
-
authorityVersion: number;
|
|
1453
|
-
}>
|
|
1454
|
-
| null;
|
|
1455
1361
|
}>
|
|
1456
1362
|
| null;
|
|
1457
1363
|
```
|
|
@@ -1488,13 +1394,7 @@ One installation record, or `null`.
|
|
|
1488
1394
|
`Readonly`\<\{ `by`: \| \{ `kind`: `"member"`; `memberId`: `string`; \} \| \{
|
|
1489
1395
|
`kind`: `"agent"`; `agentId`: `string`; \} \| \{ `kind`: `"team-key"`; `keyId`:
|
|
1490
1396
|
`string`; \}; `at`: `number`; `authorityVersion`: `number`; \}\> \| `null`; \};
|
|
1491
|
-
`status`: `"enabled"` \| `"disabled"` \| `"deleted"`;
|
|
1492
|
-
\| `"public"`; `approvedAnonymousMethods`: readonly `Readonly`\<\{ `name`:
|
|
1493
|
-
`string`; `digest`: `Sha256Digest`; \}\>[]; `anonymousApproval`: \|
|
|
1494
|
-
`Readonly`\<\{ `by`: \| \{ `kind`: `"member"`; `memberId`: `string`; \} \| \{
|
|
1495
|
-
`kind`: `"agent"`; `agentId`: `string`; \} \| \{ `kind`: `"team-key"`; `keyId`:
|
|
1496
|
-
`string`; \}; `at`: `number`; `authorityVersion`: `number`; \}\> \| `null`; \}\>
|
|
1497
|
-
\| `null`
|
|
1397
|
+
`status`: `"enabled"` \| `"disabled"` \| `"deleted"`; \}\> \| `null`
|
|
1498
1398
|
|
|
1499
1399
|
##### generation()
|
|
1500
1400
|
|
|
@@ -1508,6 +1408,18 @@ Durable store identity, regenerated only when the store itself is replaced.
|
|
|
1508
1408
|
|
|
1509
1409
|
`string`
|
|
1510
1410
|
|
|
1411
|
+
##### installationResetAt()
|
|
1412
|
+
|
|
1413
|
+
```ts
|
|
1414
|
+
installationResetAt(): number | null;
|
|
1415
|
+
```
|
|
1416
|
+
|
|
1417
|
+
Permanent audit fact for the owner Home's empty installation notice.
|
|
1418
|
+
|
|
1419
|
+
###### Returns
|
|
1420
|
+
|
|
1421
|
+
`number` \| `null`
|
|
1422
|
+
|
|
1511
1423
|
##### compareAndPut()
|
|
1512
1424
|
|
|
1513
1425
|
```ts
|
|
@@ -1812,13 +1724,13 @@ prepare(
|
|
|
1812
1724
|
| "request_failed"
|
|
1813
1725
|
| "page_error"
|
|
1814
1726
|
| "candidate_not_mounted";
|
|
1815
|
-
errorName?: | "
|
|
1727
|
+
errorName?: | "Error"
|
|
1728
|
+
| "TypeError"
|
|
1816
1729
|
| "RangeError"
|
|
1817
1730
|
| "SyntaxError"
|
|
1818
1731
|
| "AbortError"
|
|
1819
1732
|
| "TimeoutError"
|
|
1820
|
-
| "Other"
|
|
1821
|
-
| "Error";
|
|
1733
|
+
| "Other";
|
|
1822
1734
|
finalUrlPath: string;
|
|
1823
1735
|
consoleErrors: string[];
|
|
1824
1736
|
pageErrors: string[];
|
|
@@ -1863,11 +1775,11 @@ Reuse lifecycle preflight without changing the active runtime or its budgets.
|
|
|
1863
1775
|
`"passed"`; \} \| \{ `kind`: `"failed"`; `code`: `"ui_mount_failed"`;
|
|
1864
1776
|
`diagnostics?`: \{ `failedPredicate`: \| `"unexpected_candidate_request"` \|
|
|
1865
1777
|
`"response_status"` \| `"request_failed"` \| `"page_error"` \|
|
|
1866
|
-
`"candidate_not_mounted"`; `errorName?`: \| `"
|
|
1867
|
-
`"
|
|
1868
|
-
`finalUrlPath`: `string`; `consoleErrors`: `string`[]; `pageErrors`:
|
|
1869
|
-
`failedRequests`: `object`[]; `droppedCount`: `number`; \}; \} \| \{
|
|
1870
|
-
`"not_checked"`; `code`: \| `"boot_runner_unavailable"` \|
|
|
1778
|
+
`"candidate_not_mounted"`; `errorName?`: \| `"Error"` \| `"TypeError"` \|
|
|
1779
|
+
`"RangeError"` \| `"SyntaxError"` \| `"AbortError"` \| `"TimeoutError"` \|
|
|
1780
|
+
`"Other"`; `finalUrlPath`: `string`; `consoleErrors`: `string`[]; `pageErrors`:
|
|
1781
|
+
`string`[]; `failedRequests`: `object`[]; `droppedCount`: `number`; \}; \} \| \{
|
|
1782
|
+
`kind`: `"not_checked"`; `code`: \| `"boot_runner_unavailable"` \|
|
|
1871
1783
|
`"boot_browser_binding_missing"` \| `"boot_clone_unavailable"` \|
|
|
1872
1784
|
`"boot_timeout"` \| `"boot_cleanup_failed"` \| `"ui_check_not_run_on_host"`; \}
|
|
1873
1785
|
\| `null`\>\>
|
|
@@ -2456,28 +2368,6 @@ run(): Promise<
|
|
|
2456
2368
|
| null;
|
|
2457
2369
|
};
|
|
2458
2370
|
status: "enabled" | "disabled" | "deleted";
|
|
2459
|
-
visibility: "private" | "public";
|
|
2460
|
-
approvedAnonymousMethods: readonly Readonly<{
|
|
2461
|
-
name: string;
|
|
2462
|
-
digest: Sha256Digest;
|
|
2463
|
-
}>[];
|
|
2464
|
-
anonymousApproval: | Readonly<{
|
|
2465
|
-
by: | {
|
|
2466
|
-
kind: "member";
|
|
2467
|
-
memberId: string;
|
|
2468
|
-
}
|
|
2469
|
-
| {
|
|
2470
|
-
kind: "agent";
|
|
2471
|
-
agentId: string;
|
|
2472
|
-
}
|
|
2473
|
-
| {
|
|
2474
|
-
kind: "team-key";
|
|
2475
|
-
keyId: string;
|
|
2476
|
-
};
|
|
2477
|
-
at: number;
|
|
2478
|
-
authorityVersion: number;
|
|
2479
|
-
}>
|
|
2480
|
-
| null;
|
|
2481
2371
|
};
|
|
2482
2372
|
creation: "fresh" | "replacement" | "reminted";
|
|
2483
2373
|
uiCheck: | {
|
|
@@ -2492,13 +2382,13 @@ run(): Promise<
|
|
|
2492
2382
|
| "request_failed"
|
|
2493
2383
|
| "page_error"
|
|
2494
2384
|
| "candidate_not_mounted";
|
|
2495
|
-
errorName?: | "
|
|
2385
|
+
errorName?: | "Error"
|
|
2386
|
+
| "TypeError"
|
|
2496
2387
|
| "RangeError"
|
|
2497
2388
|
| "SyntaxError"
|
|
2498
2389
|
| "AbortError"
|
|
2499
2390
|
| "TimeoutError"
|
|
2500
|
-
| "Other"
|
|
2501
|
-
| "Error";
|
|
2391
|
+
| "Other";
|
|
2502
2392
|
finalUrlPath: string;
|
|
2503
2393
|
consoleErrors: string[];
|
|
2504
2394
|
pageErrors: string[];
|
|
@@ -2554,21 +2444,16 @@ Execute the retained command these props name, in its tenant scope.
|
|
|
2554
2444
|
`"member"`; `memberId`: `string`; \} \| \{ `kind`: `"agent"`; `agentId`:
|
|
2555
2445
|
`string`; \} \| \{ `kind`: `"team-key"`; `keyId`: `string`; \}; `at`: `number`;
|
|
2556
2446
|
`authorityVersion`: `number`; \}\> \| `null`; \}; `status`: `"enabled"` \|
|
|
2557
|
-
`"disabled"` \| `"deleted"`; `
|
|
2558
|
-
`
|
|
2559
|
-
`
|
|
2560
|
-
`
|
|
2561
|
-
`
|
|
2562
|
-
`
|
|
2563
|
-
`"
|
|
2564
|
-
`
|
|
2565
|
-
`
|
|
2566
|
-
`"
|
|
2567
|
-
\| `"TypeError"` \| `"RangeError"` \| `"SyntaxError"` \| `"AbortError"` \|
|
|
2568
|
-
`"TimeoutError"` \| `"Other"` \| `"Error"`; `finalUrlPath`: `string`;
|
|
2569
|
-
`consoleErrors`: `string`[]; `pageErrors`: `string`[]; `failedRequests`:
|
|
2570
|
-
`object`[]; `droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`;
|
|
2571
|
-
`code`: \| `"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \|
|
|
2447
|
+
`"disabled"` \| `"deleted"`; \}; `creation`: `"fresh"` \| `"replacement"` \|
|
|
2448
|
+
`"reminted"`; `uiCheck`: \| \{ `kind`: `"passed"`; \} \| \{ `kind`: `"failed"`;
|
|
2449
|
+
`code`: `"ui_mount_failed"`; `diagnostics?`: \{ `failedPredicate`: \|
|
|
2450
|
+
`"unexpected_candidate_request"` \| `"response_status"` \| `"request_failed"` \|
|
|
2451
|
+
`"page_error"` \| `"candidate_not_mounted"`; `errorName?`: \| `"Error"` \|
|
|
2452
|
+
`"TypeError"` \| `"RangeError"` \| `"SyntaxError"` \| `"AbortError"` \|
|
|
2453
|
+
`"TimeoutError"` \| `"Other"`; `finalUrlPath`: `string`; `consoleErrors`:
|
|
2454
|
+
`string`[]; `pageErrors`: `string`[]; `failedRequests`: `object`[];
|
|
2455
|
+
`droppedCount`: `number`; \}; \} \| \{ `kind`: `"not_checked"`; `code`: \|
|
|
2456
|
+
`"boot_runner_unavailable"` \| `"boot_browser_binding_missing"` \|
|
|
2572
2457
|
`"boot_clone_unavailable"` \| `"boot_timeout"` \| `"boot_cleanup_failed"` \|
|
|
2573
2458
|
`"ui_check_not_run_on_host"`; \} \| `null`; \} \| \{ `state`: `"refused"`;
|
|
2574
2459
|
`status`: `number`; `code`: `string`; \} \| \{ `state`: `"unconfirmed"`;
|
|
@@ -2625,6 +2510,10 @@ Native values returned by the standalone Git, event and JSON binding owners.
|
|
|
2625
2510
|
```ts
|
|
2626
2511
|
type OysterInvocationHost = BackgroundFrameState &
|
|
2627
2512
|
Readonly<{
|
|
2513
|
+
bindingWaits: {
|
|
2514
|
+
count: number;
|
|
2515
|
+
ms: number;
|
|
2516
|
+
};
|
|
2628
2517
|
artifact: Backend;
|
|
2629
2518
|
declaration: AppDeclaration | null;
|
|
2630
2519
|
method?: Readonly<{
|
|
@@ -2698,9 +2587,11 @@ type OysterBindingContext<Env> = Readonly<{
|
|
|
2698
2587
|
}
|
|
2699
2588
|
| null>;
|
|
2700
2589
|
computerControl?: (principal) => ComputerControlPort | null;
|
|
2590
|
+
permissionResources?: (principal) => Promise<readonly ResourceOption[]>;
|
|
2701
2591
|
auth: OysterAuth;
|
|
2702
2592
|
backgroundOriginKey?: () => Promise<CryptoKey>;
|
|
2703
2593
|
artifacts: ArtifactStore;
|
|
2594
|
+
uiCache?: VerifiedObjectCache;
|
|
2704
2595
|
installations: InstallationStore;
|
|
2705
2596
|
instances: InstanceDirectory;
|
|
2706
2597
|
bootUi: (release) => Promise<UiBootCheckOutcome>;
|
|
@@ -2716,7 +2607,7 @@ type OysterBindingContext<Env> = Readonly<{
|
|
|
2716
2607
|
guestLimits?: Partial<GuestLimits>;
|
|
2717
2608
|
mcp?: OysterMcp;
|
|
2718
2609
|
git?: OysterGitHost;
|
|
2719
|
-
ownerRoutes?:
|
|
2610
|
+
ownerRoutes?: Routes<OysterEnv>;
|
|
2720
2611
|
capabilities?: readonly OysterCapability[];
|
|
2721
2612
|
workbench?: Readonly<{
|
|
2722
2613
|
directory: Promise<Readonly<{
|
|
@@ -2732,7 +2623,6 @@ type OysterBindingContext<Env> = Readonly<{
|
|
|
2732
2623
|
pageScript?: string;
|
|
2733
2624
|
pageAssets?: () => Promise<{
|
|
2734
2625
|
pageScript: string;
|
|
2735
|
-
publicHomeScript: string;
|
|
2736
2626
|
fontStyles: string;
|
|
2737
2627
|
loginFontStyles: string;
|
|
2738
2628
|
shellStyles: string;
|
|
@@ -2845,9 +2735,9 @@ A loopback export with ordinary Worker I/O, not another resource or HTTP API.
|
|
|
2845
2735
|
|
|
2846
2736
|
#### Parameters
|
|
2847
2737
|
|
|
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?`: `
|
|
2738
|
+
| Parameter | Type |
|
|
2739
|
+
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2740
|
+
| `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`; `permissionResources?`: (`principal`) => `Promise`\<readonly [`ResourceOption`](apps.md#resourceoption)[]\>; `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?`: [`Routes`](authorization.md#routes)\<[`OysterEnv`](host.md#oysterenv)\>; `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`; `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`; `permissionResources?`: (`principal`) => `Promise`\<readonly [`ResourceOption`](apps.md#resourceoption)[]\>; `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?`: [`Routes`](authorization.md#routes)\<[`OysterEnv`](host.md#oysterenv)\>; `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`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>\> |
|
|
2851
2741
|
|
|
2852
2742
|
#### Returns
|
|
2853
2743
|
|
|
@@ -2871,9 +2761,9 @@ Bind the owner to the deployment's existing host factory and options.
|
|
|
2871
2761
|
|
|
2872
2762
|
#### Parameters
|
|
2873
2763
|
|
|
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?`: `
|
|
2764
|
+
| Parameter | Type |
|
|
2765
|
+
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2766
|
+
| `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`; `permissionResources?`: (`principal`) => `Promise`\<readonly [`ResourceOption`](apps.md#resourceoption)[]\>; `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?`: [`Routes`](authorization.md#routes)\<[`OysterEnv`](host.md#oysterenv)\>; `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`; `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`; `permissionResources?`: (`principal`) => `Promise`\<readonly [`ResourceOption`](apps.md#resourceoption)[]\>; `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?`: [`Routes`](authorization.md#routes)\<[`OysterEnv`](host.md#oysterenv)\>; `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`; `fontStyles`: `string`; `loginFontStyles`: `string`; `shellStyles`: `string`; `grantConsentScript`: `string`; \}\>; `title?`: `string`; \}\>\> |
|
|
2877
2767
|
|
|
2878
2768
|
#### Returns
|
|
2879
2769
|
|
|
@@ -2967,11 +2857,11 @@ Instances, and boot-check service.
|
|
|
2967
2857
|
|
|
2968
2858
|
#### Parameters
|
|
2969
2859
|
|
|
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?`: `
|
|
2860
|
+
| Parameter | Type |
|
|
2861
|
+
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2862
|
+
| `env` | [`OysterWorkerEnv`](#oysterworkerenv) |
|
|
2863
|
+
| `auth` | [`OysterAuth`](host.md#oysterauth) |
|
|
2864
|
+
| `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`; `permissionResources?`: (`principal`) => `Promise`\<readonly [`ResourceOption`](apps.md#resourceoption)[]\>; `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?`: [`Routes`](authorization.md#routes)\<[`OysterEnv`](host.md#oysterenv)\>; `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`; `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
2865
|
|
|
2976
2866
|
#### Returns
|
|
2977
2867
|
|