@fungi.computer/oyster 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1134 -2
  3. package/dist/agents.d.ts +114 -0
  4. package/dist/agents.js +322 -0
  5. package/dist/app-builds.d.ts +210 -0
  6. package/dist/app-builds.js +499 -0
  7. package/dist/app-sandbox.d.ts +2 -0
  8. package/dist/app-sandbox.js +2 -0
  9. package/dist/app-sources.d.ts +31 -0
  10. package/dist/app-sources.js +370 -0
  11. package/dist/app-storage.d.ts +141 -0
  12. package/dist/app-storage.js +281 -0
  13. package/dist/apps/gate.d.ts +105 -0
  14. package/dist/apps/gate.js +273 -0
  15. package/dist/apps/index.d.ts +5 -0
  16. package/dist/apps/index.js +5 -0
  17. package/dist/apps/installation.d.ts +248 -0
  18. package/dist/apps/installation.js +307 -0
  19. package/dist/apps/operations.d.ts +8 -0
  20. package/dist/apps/operations.js +98 -0
  21. package/dist/apps/tools.d.ts +33 -0
  22. package/dist/apps/tools.js +17 -0
  23. package/dist/auth.d.ts +11 -0
  24. package/dist/auth.js +93 -0
  25. package/dist/backend-request.d.ts +3 -0
  26. package/dist/backend-request.js +53 -0
  27. package/dist/build/artifact-writer.d.ts +40 -0
  28. package/dist/build/artifact-writer.js +181 -0
  29. package/dist/build/build-jobs.d.ts +128 -0
  30. package/dist/build/build-jobs.js +203 -0
  31. package/dist/build/build-policy.d.ts +10 -0
  32. package/dist/build/build-policy.js +10 -0
  33. package/dist/build/build-step.d.ts +37 -0
  34. package/dist/build/build-step.js +28 -0
  35. package/dist/build/bundled-html.d.ts +7 -0
  36. package/dist/build/bundled-html.js +64 -0
  37. package/dist/build/candidate-builder.d.ts +68 -0
  38. package/dist/build/candidate-builder.js +91 -0
  39. package/dist/build/candidate-cli.d.ts +1 -0
  40. package/dist/build/candidate-cli.js +119 -0
  41. package/dist/build/candidate-cli.mjs +28170 -0
  42. package/dist/build/content-objects.d.ts +37 -0
  43. package/dist/build/content-objects.js +53 -0
  44. package/dist/build/definition-emission.d.ts +34 -0
  45. package/dist/build/definition-emission.js +201 -0
  46. package/dist/build/effect.d.ts +249 -0
  47. package/dist/build/effect.js +436 -0
  48. package/dist/build/git-environment.d.ts +9 -0
  49. package/dist/build/git-environment.js +60 -0
  50. package/dist/build/html-recipe.d.ts +20 -0
  51. package/dist/build/html-recipe.js +51 -0
  52. package/dist/build/local-build.d.ts +67 -0
  53. package/dist/build/local-build.js +1128 -0
  54. package/dist/build/snapshot-package-store.d.ts +12 -0
  55. package/dist/build/snapshot-package-store.js +36 -0
  56. package/dist/build/snapshot-program-scripts.d.ts +6 -0
  57. package/dist/build/snapshot-program-scripts.js +2 -0
  58. package/dist/build/snapshot-programs/snapshot-path.d.ts +2 -0
  59. package/dist/build/snapshot-programs/snapshot-path.js +6 -0
  60. package/dist/build/submission-contract.d.ts +828 -0
  61. package/dist/build/submission-contract.js +180 -0
  62. package/dist/build/workspace-build.d.ts +55 -0
  63. package/dist/build/workspace-build.js +200 -0
  64. package/dist/build-contract.d.ts +7 -0
  65. package/dist/build-contract.js +7 -0
  66. package/dist/build-egress.d.ts +62 -0
  67. package/dist/build-egress.js +148 -0
  68. package/dist/build-jobs.d.ts +2 -0
  69. package/dist/build-jobs.js +2 -0
  70. package/dist/build.d.ts +12 -0
  71. package/dist/build.js +14 -0
  72. package/dist/capability-descriptor.d.ts +46 -0
  73. package/dist/capability-descriptor.js +51 -0
  74. package/dist/catalog-frame.d.ts +39 -0
  75. package/dist/catalog-frame.js +72 -0
  76. package/dist/cause-class.d.ts +19 -0
  77. package/dist/cause-class.js +54 -0
  78. package/dist/cloudflare.d.ts +123 -0
  79. package/dist/cloudflare.js +391 -0
  80. package/dist/computer-terminal.d.ts +38 -0
  81. package/dist/computer-terminal.js +410 -0
  82. package/dist/computer.d.ts +60 -0
  83. package/dist/computer.js +33 -0
  84. package/dist/event-recipients.d.ts +57 -0
  85. package/dist/event-recipients.js +144 -0
  86. package/dist/facet-invocation.d.ts +4 -0
  87. package/dist/facet-invocation.js +45 -0
  88. package/dist/files.d.ts +42 -0
  89. package/dist/files.js +123 -0
  90. package/dist/frame-binding-wire-script.d.ts +2 -0
  91. package/dist/frame-binding-wire-script.js +1 -0
  92. package/dist/frame-binding-wire.d.ts +28 -0
  93. package/dist/frame-binding-wire.js +54 -0
  94. package/dist/git-admission.d.ts +52 -0
  95. package/dist/git-admission.js +188 -0
  96. package/dist/git-auth.d.ts +11 -0
  97. package/dist/git-auth.js +27 -0
  98. package/dist/git-door.d.ts +35 -0
  99. package/dist/git-door.js +108 -0
  100. package/dist/git-journal.d.ts +31 -0
  101. package/dist/git-journal.js +188 -0
  102. package/dist/git.d.ts +31 -0
  103. package/dist/git.js +64 -0
  104. package/dist/guest-policy.d.ts +9 -0
  105. package/dist/guest-policy.js +13 -0
  106. package/dist/host.d.ts +244 -0
  107. package/dist/host.js +1043 -0
  108. package/dist/index.d.ts +166 -0
  109. package/dist/index.js +320 -0
  110. package/dist/installation-consent.d.ts +79 -0
  111. package/dist/installation-consent.js +82 -0
  112. package/dist/internal/background-origins.d.ts +3 -0
  113. package/dist/internal/background-origins.js +8 -0
  114. package/dist/internal/delivery.d.ts +12 -0
  115. package/dist/internal/delivery.js +167 -0
  116. package/dist/internal/host-gate.d.ts +14 -0
  117. package/dist/internal/host-gate.js +62 -0
  118. package/dist/internal/registry-installations.d.ts +6 -0
  119. package/dist/internal/registry-installations.js +12 -0
  120. package/dist/invocation.d.ts +251 -0
  121. package/dist/invocation.js +377 -0
  122. package/dist/keys.d.ts +48 -0
  123. package/dist/keys.js +52 -0
  124. package/dist/mcp-owner.d.ts +27 -0
  125. package/dist/mcp-owner.js +155 -0
  126. package/dist/mcp.d.ts +89 -0
  127. package/dist/mcp.js +429 -0
  128. package/dist/media.d.ts +23 -0
  129. package/dist/media.js +12 -0
  130. package/dist/pack.d.ts +79 -0
  131. package/dist/pack.js +151 -0
  132. package/dist/page/capabilities.d.ts +23 -0
  133. package/dist/page/capabilities.js +256 -0
  134. package/dist/page/computer-handles.d.ts +79 -0
  135. package/dist/page/computer-handles.js +44 -0
  136. package/dist/page/gill-observation.d.ts +4 -0
  137. package/dist/page/gill-observation.js +31 -0
  138. package/dist/page/lifetime.d.ts +6 -0
  139. package/dist/page/lifetime.js +19 -0
  140. package/dist/page/mount.d.ts +163 -0
  141. package/dist/page/mount.js +390 -0
  142. package/dist/page/storage.d.ts +3 -0
  143. package/dist/page/storage.js +82 -0
  144. package/dist/page/terminal.d.ts +5 -0
  145. package/dist/page/terminal.js +7 -0
  146. package/dist/page/window-launch.d.ts +18 -0
  147. package/dist/page/window-launch.js +11 -0
  148. package/dist/page-script.d.ts +14 -0
  149. package/dist/page-script.js +5 -0
  150. package/dist/r2-files.d.ts +3 -0
  151. package/dist/r2-files.js +79 -0
  152. package/dist/release.d.ts +83 -0
  153. package/dist/release.js +167 -0
  154. package/dist/root-data.d.ts +86 -0
  155. package/dist/root-data.js +69 -0
  156. package/dist/shell/app-directory.d.ts +542 -0
  157. package/dist/shell/app-directory.js +199 -0
  158. package/dist/shell/browser-actions.d.ts +7 -0
  159. package/dist/shell/browser-actions.js +56 -0
  160. package/dist/shell/command-host.d.ts +112 -0
  161. package/dist/shell/command-host.js +502 -0
  162. package/dist/shell/commands.d.ts +25 -0
  163. package/dist/shell/commands.js +78 -0
  164. package/dist/shell/index.d.ts +8 -0
  165. package/dist/shell/index.js +8 -0
  166. package/dist/shell/keys.d.ts +41 -0
  167. package/dist/shell/keys.js +134 -0
  168. package/dist/shell/shell-module.d.ts +55 -0
  169. package/dist/shell/shell-module.js +86 -0
  170. package/dist/shell/window-manager.d.ts +124 -0
  171. package/dist/shell/window-manager.js +711 -0
  172. package/dist/shell/workbench-contract.d.ts +68 -0
  173. package/dist/shell/workbench-contract.js +1 -0
  174. package/dist/shell/workbench-directory.d.ts +332 -0
  175. package/dist/shell/workbench-directory.js +35 -0
  176. package/dist/shell/workbench-host-types.d.ts +96 -0
  177. package/dist/shell/workbench-host-types.js +1 -0
  178. package/dist/shell/workbench-host.d.ts +34 -0
  179. package/dist/shell/workbench-host.js +347 -0
  180. package/dist/shell/workbench-model.d.ts +192 -0
  181. package/dist/shell/workbench-model.js +53 -0
  182. package/dist/shell/workbench.d.ts +4 -0
  183. package/dist/shell/workbench.js +2 -0
  184. package/dist/source/fork.d.ts +27 -0
  185. package/dist/source/fork.js +46 -0
  186. package/dist/source/index.d.ts +10 -0
  187. package/dist/source/index.js +10 -0
  188. package/dist/source/seed-receipt.d.ts +53 -0
  189. package/dist/source/seed-receipt.js +18 -0
  190. package/dist/source/team-source.d.ts +32 -0
  191. package/dist/source/team-source.js +42 -0
  192. package/dist/source/template-push.d.ts +33 -0
  193. package/dist/source/template-push.js +223 -0
  194. package/dist/source/template-repository.d.ts +4 -0
  195. package/dist/source/template-repository.js +21 -0
  196. package/dist/source/template-seed.d.ts +68 -0
  197. package/dist/source/template-seed.js +80 -0
  198. package/dist/standalone/agent-directory.d.ts +4 -0
  199. package/dist/standalone/agent-directory.js +4 -0
  200. package/dist/standalone/agents.d.ts +220 -0
  201. package/dist/standalone/agents.js +795 -0
  202. package/dist/standalone/app-builds-binding.d.ts +36 -0
  203. package/dist/standalone/app-builds-binding.js +119 -0
  204. package/dist/standalone/app-set.d.ts +91 -0
  205. package/dist/standalone/app-set.js +395 -0
  206. package/dist/standalone/app-source.d.ts +41 -0
  207. package/dist/standalone/app-source.js +59 -0
  208. package/dist/standalone/builds.d.ts +18 -0
  209. package/dist/standalone/builds.js +101 -0
  210. package/dist/standalone/computer-egress.d.ts +37 -0
  211. package/dist/standalone/computer-egress.js +111 -0
  212. package/dist/standalone/computer.d.ts +122 -0
  213. package/dist/standalone/computer.js +714 -0
  214. package/dist/standalone/install-apps-cli.d.ts +2 -0
  215. package/dist/standalone/install-apps-cli.js +126 -0
  216. package/dist/standalone/instance.d.ts +35 -0
  217. package/dist/standalone/instance.js +74 -0
  218. package/dist/standalone/media.d.ts +76 -0
  219. package/dist/standalone/media.js +227 -0
  220. package/dist/standalone/preview.d.ts +51 -0
  221. package/dist/standalone/preview.js +167 -0
  222. package/dist/standalone/registry.d.ts +102 -0
  223. package/dist/standalone/registry.js +193 -0
  224. package/dist/standalone/tenancy.d.ts +42 -0
  225. package/dist/standalone/tenancy.js +241 -0
  226. package/dist/standalone/worker.d.ts +55 -0
  227. package/dist/standalone/worker.js +147 -0
  228. package/dist/standalone/workflow-authority-readers.d.ts +16 -0
  229. package/dist/standalone/workflow-authority-readers.js +35 -0
  230. package/dist/standalone/workflow-binding.d.ts +216 -0
  231. package/dist/standalone/workflow-binding.js +217 -0
  232. package/dist/standalone/workflow-events.d.ts +46 -0
  233. package/dist/standalone/workflow-events.js +39 -0
  234. package/dist/standalone/workflow-git-capture.d.ts +7 -0
  235. package/dist/standalone/workflow-git-capture.js +62 -0
  236. package/dist/standalone/workflow-host.d.ts +931 -0
  237. package/dist/standalone/workflow-host.js +751 -0
  238. package/dist/standalone/workflow-node-capture.d.ts +13 -0
  239. package/dist/standalone/workflow-node-capture.js +72 -0
  240. package/dist/standalone/workflow-root-authority.d.ts +27 -0
  241. package/dist/standalone/workflow-root-authority.js +87 -0
  242. package/dist/standalone/workflow-schedules.d.ts +52 -0
  243. package/dist/standalone/workflow-schedules.js +40 -0
  244. package/dist/standalone/workflow-trigger-host.d.ts +1694 -0
  245. package/dist/standalone/workflow-trigger-host.js +52 -0
  246. package/dist/standalone/workflows.d.ts +657 -0
  247. package/dist/standalone/workflows.js +554 -0
  248. package/dist/storage-frame.d.ts +64 -0
  249. package/dist/storage-frame.js +28 -0
  250. package/dist/tenancy/auth0.d.ts +64 -0
  251. package/dist/tenancy/auth0.js +198 -0
  252. package/dist/tenancy/cloudflare/rate-limit.d.ts +8 -0
  253. package/dist/tenancy/cloudflare/rate-limit.js +19 -0
  254. package/dist/tenancy/cloudflare/registry.d.ts +50 -0
  255. package/dist/tenancy/cloudflare/registry.js +301 -0
  256. package/dist/tenancy/cloudflare.d.ts +2 -0
  257. package/dist/tenancy/cloudflare.js +2 -0
  258. package/dist/tenancy/cold-directory.d.ts +13 -0
  259. package/dist/tenancy/cold-directory.js +43 -0
  260. package/dist/tenancy/contracts.d.ts +195 -0
  261. package/dist/tenancy/contracts.js +1 -0
  262. package/dist/tenancy/index.d.ts +19 -0
  263. package/dist/tenancy/index.js +156 -0
  264. package/dist/tenancy/owner-key.d.ts +26 -0
  265. package/dist/tenancy/owner-key.js +63 -0
  266. package/dist/tenancy/oyster.d.ts +4 -0
  267. package/dist/tenancy/oyster.js +25 -0
  268. package/dist/tenancy/registry-record.d.ts +7 -0
  269. package/dist/tenancy/registry-record.js +44 -0
  270. package/dist/tenancy/registry.d.ts +27 -0
  271. package/dist/tenancy/registry.js +138 -0
  272. package/dist/tenancy/resolve.d.ts +7 -0
  273. package/dist/tenancy/resolve.js +64 -0
  274. package/dist/tenant.d.ts +81 -0
  275. package/dist/tenant.js +71 -0
  276. package/dist/testing/capabilities.d.ts +29 -0
  277. package/dist/testing/capabilities.js +130 -0
  278. package/dist/testing/catalog.d.ts +3 -0
  279. package/dist/testing/catalog.js +53 -0
  280. package/dist/testing/index.d.ts +10 -0
  281. package/dist/testing/index.js +10 -0
  282. package/dist/testing/installation.d.ts +11 -0
  283. package/dist/testing/installation.js +25 -0
  284. package/dist/testing/native-worker.d.ts +21 -0
  285. package/dist/testing/native-worker.js +106 -0
  286. package/dist/testing/worker.d.ts +18 -0
  287. package/dist/testing/worker.js +67 -0
  288. package/dist/testing/workers-runtime.d.ts +24 -0
  289. package/dist/testing/workers-runtime.js +33 -0
  290. package/dist/webhook-delivery.d.ts +14 -0
  291. package/dist/webhook-delivery.js +17 -0
  292. package/dist/workers-git.d.ts +285 -0
  293. package/dist/workers-git.js +1174 -0
  294. package/dist/workers.d.ts +352 -0
  295. package/dist/workers.js +868 -0
  296. package/docs/api/README.md +82 -0
  297. package/docs/api/agents.md +332 -0
  298. package/docs/api/app-storage.md +209 -0
  299. package/docs/api/apps.md +1375 -0
  300. package/docs/api/auth.md +63 -0
  301. package/docs/api/build-contract.md +1304 -0
  302. package/docs/api/build.md +1712 -0
  303. package/docs/api/cloudflare.md +421 -0
  304. package/docs/api/computer.md +203 -0
  305. package/docs/api/files.md +117 -0
  306. package/docs/api/git.md +470 -0
  307. package/docs/api/host.md +1328 -0
  308. package/docs/api/index.md +430 -0
  309. package/docs/api/invocation.md +738 -0
  310. package/docs/api/keys.md +175 -0
  311. package/docs/api/mcp.md +301 -0
  312. package/docs/api/media.md +40 -0
  313. package/docs/api/modules.md +50 -0
  314. package/docs/api/pack.md +141 -0
  315. package/docs/api/page/mount.md +298 -0
  316. package/docs/api/root-data.md +111 -0
  317. package/docs/api/shell/app-directory.md +599 -0
  318. package/docs/api/shell/command-host.md +224 -0
  319. package/docs/api/shell/commands.md +197 -0
  320. package/docs/api/shell/keys.md +183 -0
  321. package/docs/api/shell/shell-module.md +204 -0
  322. package/docs/api/shell/window-manager.md +267 -0
  323. package/docs/api/shell/workbench-directory.md +119 -0
  324. package/docs/api/shell/workbench.md +205 -0
  325. package/docs/api/shell.md +1915 -0
  326. package/docs/api/tenancy/auth0.md +110 -0
  327. package/docs/api/tenancy/cloudflare.md +221 -0
  328. package/docs/api/tenancy/cold-directory.md +46 -0
  329. package/docs/api/tenancy/owner-key.md +63 -0
  330. package/docs/api/tenancy/registry.md +77 -0
  331. package/docs/api/tenancy/resolve.md +69 -0
  332. package/docs/api/tenancy.md +430 -0
  333. package/docs/api/tenant.md +194 -0
  334. package/docs/api/workers-git.md +1646 -0
  335. package/docs/api/workers.md +1691 -0
  336. package/docs/site/agent-quickstart.mdx +346 -0
  337. package/examples/standalone/worker.ts +7 -0
  338. package/examples/standalone/wrangler.jsonc +82 -0
  339. package/package.json +300 -3
@@ -0,0 +1,220 @@
1
+ import { type StandaloneTenancyEnv } from "./tenancy.js";
2
+ import { DurableObject } from "cloudflare:workers";
3
+ import type { StandaloneComputerEnv } from "./computer.js";
4
+ import { ShiitakeDO } from "@fungi.computer/shiitake/cloudflare";
5
+ import type { CloudflareShiitakeOptions } from "@fungi.computer/shiitake/cloudflare";
6
+ import { type AiBinding } from "@earendil-works/pi-ai/api/cloudflare-ai-binding";
7
+ import * as Schema from "effect/Schema";
8
+ import { type FrameBindingProps } from "../cloudflare.js";
9
+ import type { InvocationFrame } from "../invocation.js";
10
+ import type { OysterJson } from "../host.js";
11
+ import { type FleetMessage } from "@fungi.computer/shiitake/fleet";
12
+ import { type AppToolPolicy } from "../apps/index.js";
13
+ import { type OysterPrincipal, type OysterHost } from "../host.js";
14
+ import { type TenantScope, type TenantId } from "../tenant.js";
15
+ import type { ReadonlyTenancy } from "../tenancy/index.js";
16
+ import type { HostActor } from "@fungi.computer/puffball/app";
17
+ import type { OysterWorkerEnv } from "../workers.js";
18
+ import { type AgentMcpServer, type AgentMcpServerInput, type AgentMcpServerRefusal } from "../agents.js";
19
+ import type { AgentPolicyActor, OysterAgents, OysterSessionRow } from "../agents.js";
20
+ /** The model door an agent runs on; Shiitake's own contract. */
21
+ export type StandaloneModelSource = CloudflareShiitakeOptions["model"];
22
+ /** One directory entry: an agent's id and display name. */
23
+ export type AgentEntry = Readonly<{
24
+ agentId: string;
25
+ name: string;
26
+ }>;
27
+ /** Bindings the agent host reads. */
28
+ export type StandaloneAgentsEnv = Readonly<{
29
+ /** Configured standalone-owner identity subject; never a stored member ID. */
30
+ OYSTER_OWNER_NAME?: string;
31
+ /** Gateway custody remains in Veil; only the host receives these bindings. */
32
+ AI_GATEWAY_AUTH_TOKEN?: string;
33
+ AI_GATEWAY_ACCOUNT_ID?: string;
34
+ AI_GATEWAY_ID?: string;
35
+ /** Workers AI, the default model door. */
36
+ AI?: AiBinding;
37
+ /** The model: `@fungi/luna` via AI Gateway, or a Workers AI id (default {@link defaultAgentModel}). */
38
+ OYSTER_AGENT_MODEL?: string;
39
+ /** The AI Gateway the binding routes through (default `default`). */
40
+ OYSTER_AI_GATEWAY?: string;
41
+ /** Maintained current-member authority; absent means no nondefault-tenant policy admission. */
42
+ TENANCY?: Pick<ReadonlyTenancy, "memberById">;
43
+ TENANTS?: StandaloneTenancyEnv["TENANTS"];
44
+ KEYS?: StandaloneTenancyEnv["KEYS"];
45
+ OYSTER_ORIGIN: string;
46
+ OYSTER_OWNER_KEY?: string;
47
+ AGENTS: DurableObjectNamespace<StandaloneAgentBase>;
48
+ /** Host-only directory custody. Guest entrypoints expose operations, not this binding; Codemode receives only Mycelium modules. */
49
+ AGENT_DIRECTORY: DurableObjectNamespace<AgentDirectory>;
50
+ }>;
51
+ /** An agent host's whole env: its own bindings and the Oyster's. */
52
+ export type StandaloneAgentEnv = StandaloneAgentsEnv & OysterWorkerEnv & StandaloneComputerEnv;
53
+ declare const policyDirectorySchema: Schema.Struct<{
54
+ readonly directoryName: Schema.NonEmptyString;
55
+ readonly tenantId: Schema.brand<Schema.String, "OysterTenantId">;
56
+ }>;
57
+ /** A row of this agent's own inbox, before the directory names the agent. */
58
+ export type AgentInboxRows = Readonly<{
59
+ rows: readonly OysterSessionRow[];
60
+ revision: number;
61
+ }>;
62
+ /** One agent: Shiitake's Cloudflare host over this Durable Object; its root supplies `hostFor`. */
63
+ export declare abstract class StandaloneAgentBase<Env extends StandaloneAgentEnv = StandaloneAgentEnv> extends ShiitakeDO<Env> {
64
+ #private;
65
+ /** The deployable root's host for this Agent's pinned tenant. */
66
+ protected abstract hostFor(scope: TenantScope): OysterHost;
67
+ /** The root host for this Agent's pinned policy directory; unpinned Agents have no App tools. */
68
+ private appHost;
69
+ /** Choose this agent's model door; override to plug in another. */
70
+ protected modelSource(): StandaloneModelSource;
71
+ /** Host-only initialization; Agent/App transports never receive this directory binding. */
72
+ usePolicyDirectory(input: {
73
+ directoryName: string;
74
+ tenantId: TenantId;
75
+ }): Promise<void>;
76
+ /** Host-only policy pin read, used before an owner can approve tools. */
77
+ policyDirectory(): Promise<typeof policyDirectorySchema.Type | null>;
78
+ /** Listeners from live codemode acquisitions, told when the server list changes. */
79
+ private readonly mcpInvalidations;
80
+ private storedMcpServers;
81
+ private writeMcpServers;
82
+ /** Host-only: this Agent's MCP servers, without their bearer tokens. */
83
+ mcpServers(): Promise<readonly AgentMcpServer[]>;
84
+ /** Host-only: connect one remote MCP server, admitted by the owner route. */
85
+ addMcpServer(input: AgentMcpServerInput): Promise<AgentMcpServer | AgentMcpServerRefusal>;
86
+ /** Host-only: disconnect one MCP server. */
87
+ removeMcpServer(serverId: string): Promise<boolean>;
88
+ protected shiitakeOptions(): CloudflareShiitakeOptions;
89
+ /** Send an installation-admitted message through fleet Session operations. */
90
+ sendFromApp(installationId: string, sessionId: string, message: FleetMessage): Promise<{
91
+ sessionId: string;
92
+ status: "accepted";
93
+ commandId: string;
94
+ }>;
95
+ /** Latest inbox clock from the same Shiitake owner, without reading Session rows. */
96
+ revision(): Promise<number>;
97
+ /** Every live Session of this agent, as inbox rows. */
98
+ inboxRows(): Promise<AgentInboxRows>;
99
+ }
100
+ /** Names this Oyster's agents and remembers which Sessions the member opened. */
101
+ export declare class AgentDirectory extends DurableObject<StandaloneAgentEnv> {
102
+ private readonly directory;
103
+ private composedTenancy;
104
+ private grant;
105
+ constructor(ctx: DurableObjectState, env: StandaloneAgentEnv);
106
+ list(): readonly AgentEntry[];
107
+ has(agentId: string): boolean;
108
+ /** Resolve the existing recorded creator for host-side owner admission. */
109
+ readCreator(agentId: string): string | null;
110
+ /** Owner-only rename; refuses a name already held by another Agent. */
111
+ rename(agentId: string, name: string, principal: OysterPrincipal): AgentEntry | Readonly<{
112
+ error: "not_found" | "name_taken" | "not_granted";
113
+ }>;
114
+ create(name: string, requestId: string, principal: OysterPrincipal, actor: AgentPolicyActor): AgentEntry & {
115
+ policyRevision: string | null;
116
+ };
117
+ private writePolicy;
118
+ private storedPolicy;
119
+ private readPolicy;
120
+ /** Current revision for the direct owner's compare-and-swap request. */
121
+ policyRevision(agentId: string): string | null;
122
+ /** Whether this Agent's App-tool policy still awaits the owner's approval. */
123
+ policyStatus(agentId: string): Readonly<{
124
+ status: "pending" | "approved";
125
+ revision: string;
126
+ }> | null;
127
+ private currentMember;
128
+ /** Approval stays revoked after any membership authority revision. */
129
+ appToolPolicy(actor: Extract<HostActor, {
130
+ kind: "agent";
131
+ }>, tenantId?: TenantId): Promise<AppToolPolicy | null>;
132
+ /** Only direct human approval records an authenticated canonical grantor. */
133
+ approveAppToolPolicy(agentId: string, principal: OysterPrincipal, level: AppToolPolicy["level"], expectedRevision: string | null, actor: AgentPolicyActor, tenantId: TenantId): Promise<Awaited<ReturnType<OysterAgents["approveAppToolPolicy"]>>>;
134
+ visit(agentId: string, sessionId: string): void;
135
+ visits(): readonly Readonly<{
136
+ agentId: string;
137
+ sessionId: string;
138
+ visitedAt: number;
139
+ }>[];
140
+ /** Grows on every directory change (a new agent, a visit). */
141
+ revision(): number;
142
+ private bump;
143
+ }
144
+ /** The `agents` adapter over a Worker's agent bindings. */
145
+ export declare function standaloneAgents(env: StandaloneAgentsEnv, scope?: TenantScope): OysterAgents;
146
+ /** Shared packet codecs; the Instance alone admits the current frame's operations. */
147
+ export declare const agentFrameMethods: {
148
+ INBOX: {
149
+ page: {
150
+ decodeArgs: (raw: readonly unknown[]) => [({
151
+ after?: string | null | undefined;
152
+ } | undefined)?];
153
+ decodeResult: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => {
154
+ readonly items: readonly ({
155
+ readonly agentId: string;
156
+ readonly title: string;
157
+ readonly state: "done" | "running" | "needs_you" | "errored";
158
+ readonly createdAt: number;
159
+ readonly sessionId: string;
160
+ readonly lastActivityAt: number;
161
+ readonly triggerId?: string | undefined;
162
+ readonly settledAt?: number | undefined;
163
+ readonly visitedAt?: number | undefined;
164
+ } | {
165
+ readonly agentId: string;
166
+ readonly sessionId: string;
167
+ readonly state: "unavailable";
168
+ } | {
169
+ readonly kind: "workflow-review";
170
+ readonly installationId: string;
171
+ readonly key: {
172
+ readonly runId: string;
173
+ readonly nodeId: string;
174
+ readonly iteration: string;
175
+ };
176
+ readonly state: "pending" | "delivered" | "answered" | "timed_out" | "closed";
177
+ readonly workflowId: string | null;
178
+ readonly workflowTitle: string;
179
+ readonly reviewTitle: string;
180
+ readonly reviewers: "runner" | "owners";
181
+ readonly show: readonly Schema.Json[];
182
+ readonly openedAt: number;
183
+ readonly expiresAt: number;
184
+ readonly choices?: readonly string[] | undefined;
185
+ })[];
186
+ readonly next: null;
187
+ readonly cursor: number;
188
+ };
189
+ requiredOperations: () => string[];
190
+ };
191
+ visit: {
192
+ decodeArgs: (raw: readonly unknown[]) => [{
193
+ agentId: string;
194
+ sessionId: string;
195
+ }];
196
+ decodeResult: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => {
197
+ readonly visited: true;
198
+ };
199
+ requiredOperations: () => string[];
200
+ };
201
+ };
202
+ AGENTS: {
203
+ send: {
204
+ decodeArgs: (raw: readonly unknown[]) => [{
205
+ agentId: string;
206
+ sessionId: string;
207
+ text: string;
208
+ delivery: "followUp";
209
+ }];
210
+ decodeResult: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => Readonly<{
211
+ status: "accepted";
212
+ commandId: string;
213
+ }>;
214
+ requiredOperations: () => string[];
215
+ };
216
+ };
217
+ };
218
+ /** Provider effects are admitted by the originating Instance's live frame. */
219
+ export declare function dispatchAgentBinding(env: StandaloneAgentsEnv, scope: TenantScope, frame: InvocationFrame, props: FrameBindingProps, method: string, args: readonly unknown[]): Promise<OysterJson>;
220
+ export {};