@fungi.computer/oyster 0.6.0 → 0.8.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 (163) hide show
  1. package/README.md +133 -78
  2. package/dist/agent-archive-projection.d.ts +8 -0
  3. package/dist/agent-archive-projection.js +49 -0
  4. package/dist/agent-schedules.d.ts +61 -0
  5. package/dist/agent-schedules.js +19 -0
  6. package/dist/agents.d.ts +35 -14
  7. package/dist/agents.js +93 -144
  8. package/dist/app-builds.d.ts +7 -2
  9. package/dist/app-builds.js +19 -2
  10. package/dist/approval-capability.d.ts +1 -1
  11. package/dist/approval-capability.js +11 -16
  12. package/dist/approval-home.d.ts +2 -1
  13. package/dist/approval-home.js +5 -3
  14. package/dist/apps/catalog.js +1 -1
  15. package/dist/apps/gate.d.ts +4 -7
  16. package/dist/apps/gate.js +14 -29
  17. package/dist/apps/index.d.ts +1 -1
  18. package/dist/apps/installation.d.ts +4 -42
  19. package/dist/apps/installation.js +7 -75
  20. package/dist/apps/operations.js +0 -10
  21. package/dist/apps/permissions.d.ts +18 -8
  22. package/dist/apps/permissions.js +7 -1
  23. package/dist/auth.d.ts +1 -24
  24. package/dist/auth.js +9 -39
  25. package/dist/authorization.d.ts +307 -0
  26. package/dist/authorization.js +542 -0
  27. package/dist/boot-host-script.js +1 -1
  28. package/dist/build/build-jobs.d.ts +2 -2
  29. package/dist/build/candidate-builder.d.ts +2 -0
  30. package/dist/build/candidate-builder.js +5 -1
  31. package/dist/build/candidate-cli.js +3 -0
  32. package/dist/build/candidate-cli.mjs +70 -22
  33. package/dist/build/job-log.d.ts +23 -0
  34. package/dist/build/job-log.js +88 -0
  35. package/dist/build/local-build.d.ts +9 -1
  36. package/dist/build/local-build.js +11 -9
  37. package/dist/cloudflare.d.ts +4 -1
  38. package/dist/cloudflare.js +1 -1
  39. package/dist/files.js +9 -8
  40. package/dist/git-admission.d.ts +3 -3
  41. package/dist/git-admission.js +4 -6
  42. package/dist/git-door.d.ts +8 -7
  43. package/dist/git-door.js +18 -17
  44. package/dist/git.d.ts +1 -1
  45. package/dist/host.d.ts +33 -40
  46. package/dist/host.js +156 -275
  47. package/dist/installation-execution.js +14 -5
  48. package/dist/installation-operations.d.ts +4 -180
  49. package/dist/installation-operations.js +1 -5
  50. package/dist/installation-store-generation.d.ts +4 -1
  51. package/dist/installation-store-generation.js +59 -6
  52. package/dist/internal/delivery.js +0 -1
  53. package/dist/internal/host-gate.d.ts +3 -2
  54. package/dist/internal/host-gate.js +5 -18
  55. package/dist/internal/invocation-timing.d.ts +16 -0
  56. package/dist/internal/invocation-timing.js +23 -0
  57. package/dist/internal/registry-installations.js +1 -0
  58. package/dist/invocation.d.ts +15 -14
  59. package/dist/invocation.js +58 -26
  60. package/dist/keys.d.ts +2 -19
  61. package/dist/keys.js +1 -37
  62. package/dist/mcp.d.ts +15 -27
  63. package/dist/mcp.js +105 -155
  64. package/dist/page/agent-browser.d.ts +15 -0
  65. package/dist/page/agent-browser.js +162 -0
  66. package/dist/page/app-permissions-port.d.ts +3 -0
  67. package/dist/page/app-permissions-port.js +43 -0
  68. package/dist/page/app-permissions.d.ts +11 -0
  69. package/dist/page/app-permissions.js +296 -0
  70. package/dist/page/isolated-page-theme.d.ts +2 -0
  71. package/dist/page/isolated-page-theme.js +11 -0
  72. package/dist/page/mount.d.ts +2 -13
  73. package/dist/page/mount.js +7 -93
  74. package/dist/page-script.d.ts +0 -3
  75. package/dist/page-script.js +3 -4
  76. package/dist/standalone/agent-archive-owner.d.ts +42 -0
  77. package/dist/standalone/agent-archive-owner.js +116 -0
  78. package/dist/standalone/agent-archive-schedules.d.ts +6 -0
  79. package/dist/standalone/agent-archive-schedules.js +76 -0
  80. package/dist/standalone/agent-archive.d.ts +31 -0
  81. package/dist/standalone/agent-archive.js +67 -0
  82. package/dist/standalone/agent-computers.d.ts +7 -6
  83. package/dist/standalone/agent-computers.js +4 -7
  84. package/dist/standalone/agent-mail.d.ts +2 -2
  85. package/dist/standalone/agents.d.ts +186 -20
  86. package/dist/standalone/agents.js +251 -30
  87. package/dist/standalone/app-builds-binding.js +1 -1
  88. package/dist/standalone/app-set.js +2 -54
  89. package/dist/standalone/app-source.d.ts +3 -4
  90. package/dist/standalone/app-source.js +12 -9
  91. package/dist/standalone/builds.d.ts +2 -14
  92. package/dist/standalone/builds.js +15 -13
  93. package/dist/standalone/computer-fleet.d.ts +4 -4
  94. package/dist/standalone/computer-fleet.js +13 -42
  95. package/dist/standalone/computer.d.ts +4 -3
  96. package/dist/standalone/computer.js +52 -53
  97. package/dist/standalone/dashboard-approval.d.ts +10 -0
  98. package/dist/standalone/dashboard-approval.js +66 -0
  99. package/dist/standalone/machine-link.d.ts +4 -221
  100. package/dist/standalone/machine-link.js +21 -15
  101. package/dist/standalone/media.d.ts +1 -0
  102. package/dist/standalone/media.js +20 -14
  103. package/dist/standalone/owner-routes.d.ts +16 -0
  104. package/dist/standalone/owner-routes.js +21 -0
  105. package/dist/standalone/permission-resources.d.ts +5 -0
  106. package/dist/standalone/permission-resources.js +31 -0
  107. package/dist/standalone/registry.d.ts +7 -0
  108. package/dist/standalone/registry.js +3 -0
  109. package/dist/standalone/tenancy.d.ts +0 -3
  110. package/dist/standalone/tenancy.js +2 -5
  111. package/dist/standalone/worker-routes.d.ts +19 -0
  112. package/dist/standalone/worker-routes.js +9 -0
  113. package/dist/standalone/worker.d.ts +1 -1
  114. package/dist/standalone/worker.js +27 -35
  115. package/dist/standalone/workflow-binding.d.ts +10 -3
  116. package/dist/standalone/workflow-binding.js +22 -5
  117. package/dist/standalone/workflow-git-capture.js +2 -1
  118. package/dist/standalone/workflow-host.d.ts +8 -103
  119. package/dist/standalone/workflow-host.js +1 -1
  120. package/dist/standalone/workflow-node-capture.js +2 -2
  121. package/dist/standalone/workflow-root-authority.d.ts +1 -1
  122. package/dist/standalone/workflow-root-authority.js +1 -1
  123. package/dist/standalone/workflow-schedules.d.ts +31 -4
  124. package/dist/standalone/workflow-schedules.js +18 -5
  125. package/dist/standalone/workflow-webhooks.d.ts +4 -18
  126. package/dist/standalone/workflow-webhooks.js +5 -5
  127. package/dist/standalone/workflows.d.ts +53 -27
  128. package/dist/standalone/workflows.js +9 -3
  129. package/dist/storage-frame.d.ts +6 -6
  130. package/dist/testing/capabilities.d.ts +7 -6
  131. package/dist/testing/capabilities.js +3 -6
  132. package/dist/testing/installation.d.ts +0 -1
  133. package/dist/testing/installation.js +2 -5
  134. package/dist/workers-git.d.ts +12 -4
  135. package/dist/workers-git.js +38 -35
  136. package/dist/workers.d.ts +9 -1
  137. package/dist/workers.js +44 -8
  138. package/dist/workflows.d.ts +4 -0
  139. package/dist/workflows.js +2 -0
  140. package/docs/api/README.md +7 -0
  141. package/docs/api/agent-schedules.md +176 -0
  142. package/docs/api/agents.md +34 -13
  143. package/docs/api/app-storage.md +1 -1
  144. package/docs/api/apps.md +323 -225
  145. package/docs/api/auth.md +0 -55
  146. package/docs/api/authorization.md +1300 -0
  147. package/docs/api/build.md +42 -38
  148. package/docs/api/cloudflare.md +3 -3
  149. package/docs/api/git.md +20 -11
  150. package/docs/api/host.md +64 -192
  151. package/docs/api/index.md +1 -1
  152. package/docs/api/invocation.md +14 -14
  153. package/docs/api/keys.md +1 -98
  154. package/docs/api/mcp.md +43 -40
  155. package/docs/api/modules.md +2 -0
  156. package/docs/api/page/mount.md +16 -19
  157. package/docs/api/workers-git.md +46 -12
  158. package/docs/api/workers.md +111 -222
  159. package/package.json +41 -22
  160. package/dist/page/computer-target.d.ts +0 -3
  161. package/dist/page/computer-target.js +0 -9
  162. package/dist/standalone/channel-session-door.d.ts +0 -4
  163. package/dist/standalone/channel-session-door.js +0 -72
@@ -1,7 +1,5 @@
1
1
  import { type StandaloneTenancyEnv } from "./tenancy.js";
2
2
  import type { PostEnvelope } from "@fungi.computer/carrier/post";
3
- import { type ChannelConversations } from "../channels/conversations.js";
4
- import type { ConversationBinding } from "../channels/binding.js";
5
3
  import { type StandaloneMachineLinkBindings, type StandaloneMachineJoinResult } from "./machine-link.js";
6
4
  import { type MachineAgentSettlementPrincipal, type MachineAgentHome, type MachineEnrollment, type MachineLinkCaller, type MachineLinkIdentity } from "../machine-link/index.js";
7
5
  /** Workers AI binding surface used by the standalone provider adapter. */
@@ -21,13 +19,14 @@ import type { CloudflareShiitakeOptions } from "@fungi.computer/shiitake/cloudfl
21
19
  import { type AgentModelChoice, type AgentModelRefusal } from "./agent-model-choice.js";
22
20
  import * as Schema from "effect/Schema";
23
21
  import { type FrameBindingProps } from "../cloudflare.js";
22
+ import { type AppAgentScheduleListInput, type AgentSchedulePage, type AgentScheduleTarget, type AgentScheduleControlReceipt } from "../agent-schedules.js";
24
23
  import type { Avatar } from "@fungi.computer/sprite/avatar";
25
24
  import type { InvocationFrame } from "../invocation.js";
26
25
  import type { OysterJson } from "../host.js";
27
26
  import { type FleetMessage } from "@fungi.computer/shiitake/fleet";
28
27
  import { type AppToolPolicy } from "../apps/index.js";
29
- import { type OysterPrincipal, type OysterHost } from "../host.js";
30
- import { type TenantScope, type TenantId } from "../tenant.js";
28
+ import { type OysterHost } from "../host.js";
29
+ import { type TenantScope, type TenantId, type TenantPrincipal } from "../tenant.js";
31
30
  import type { ReadonlyTenancy } from "../tenancy/index.js";
32
31
  import type { HostActor } from "@fungi.computer/puffball/app";
33
32
  import type { OysterWorkerEnv } from "../workers.js";
@@ -78,14 +77,12 @@ export type AgentInboxRows = Readonly<{
78
77
  /** One agent: Shiitake's Cloudflare host over this Durable Object; its root supplies `hostFor`. */
79
78
  export declare abstract class StandaloneAgentBase<Env extends StandaloneAgentEnv = StandaloneAgentEnv> extends ShiitakeDO<Env> {
80
79
  #private;
80
+ private archiveControlOwner;
81
+ private archiveControl;
82
+ /** Owner-local atomic transition. The caller checks human/creator authority. */
83
+ setArchived(archived: boolean): Promise<import("./agent-archive-owner.js").AgentArchiveTransitionResult>;
81
84
  /** The deployable root's host for this Agent's pinned tenant. */
82
85
  protected abstract hostFor(scope: TenantScope): Promise<OysterHost>;
83
- /**
84
- * Compose Oyster's channel owner on this Agent's real store and Shiitake.
85
- * A host must supply its own binding lookup after authenticating its edge;
86
- * this does not install an inbound route or mint provider credentials.
87
- */
88
- protected channelConversations(binding: (bindingId: string) => ConversationBinding | null): ChannelConversations;
89
86
  private uiOwner;
90
87
  private machineClient;
91
88
  private computerSnapshot;
@@ -133,6 +130,12 @@ export declare abstract class StandaloneAgentBase<Env extends StandaloneAgentEnv
133
130
  }): Promise<void>;
134
131
  /** Host-only policy pin read, used before an owner can approve tools. */
135
132
  policyDirectory(): Promise<typeof policyDirectorySchema.Type | null>;
133
+ /** Borrow the native owner only after matching its real initialization pin. */
134
+ private scheduleOwner;
135
+ /** One admitted Agent's bounded native schedule page; this is not a directory scan. */
136
+ readSchedules(directory: typeof policyDirectorySchema.Type, input: AppAgentScheduleListInput): Promise<AgentSchedulePage>;
137
+ /** Manage authority returns native identity/state only, never schedule content. */
138
+ controlSchedule(directory: typeof policyDirectorySchema.Type, input: AgentScheduleTarget, action: "pause" | "resume" | "delete"): Promise<AgentScheduleControlReceipt>;
136
139
  /** Listeners from live codemode acquisitions, told when the server list changes. */
137
140
  private readonly mcpInvalidations;
138
141
  private storedMcpServers;
@@ -157,6 +160,12 @@ export declare abstract class StandaloneAgentBase<Env extends StandaloneAgentEnv
157
160
  }
158
161
  /** Names this Oyster's agents and remembers which Sessions the member opened. */
159
162
  export declare class AgentDirectory extends DurableObject<StandaloneAgentEnv> {
163
+ private archiveProjectionOwner;
164
+ private archiveProjection;
165
+ /** Apply the Agent DO's revisioned fact; an older repair cannot undo a newer one. */
166
+ recordArchive(agentId: string, archived: boolean, revision: number): boolean;
167
+ /** Directory's bounded-stale projection, never the Agent's flag authority. */
168
+ archived(agentId: string): boolean;
160
169
  private readonly computers;
161
170
  private readonly computerNames;
162
171
  private readonly directory;
@@ -209,26 +218,30 @@ export declare class AgentDirectory extends DurableObject<StandaloneAgentEnv> {
209
218
  agentComputerSnapshot(agentId: string, tenantId?: TenantId): Promise<AgentComputerSnapshot | null>;
210
219
  private computerCommand;
211
220
  /** Owner attachment commands retain the shared owner's receipts and versions. */
212
- attachComputer(command: ComputerAttachmentInput, principal: OysterPrincipal, tenantId?: TenantId): Promise<StandaloneAgentComputerReply>;
221
+ attachComputer(command: ComputerAttachmentInput, principal: TenantPrincipal, tenantId?: TenantId): Promise<StandaloneAgentComputerReply>;
213
222
  /** Detach advances the owner version and invalidates the Agent's held discovery. */
214
- detachComputer(command: ComputerAttachmentInput, principal: OysterPrincipal, tenantId?: TenantId): Promise<StandaloneAgentComputerReply>;
223
+ detachComputer(command: ComputerAttachmentInput, principal: TenantPrincipal, tenantId?: TenantId): Promise<StandaloneAgentComputerReply>;
215
224
  /** The owner HTTP read uses the same projection as direct discovery. */
216
- readAgentComputers(agentId: string, principal: OysterPrincipal, tenantId?: TenantId): Promise<StandaloneAgentComputerReply>;
225
+ readAgentComputers(agentId: string, principal: TenantPrincipal, tenantId?: TenantId): Promise<StandaloneAgentComputerReply>;
217
226
  /** Every captured native call rechecks the exact live attachment and credential owner. */
218
227
  admitAgentComputer(captured: Pick<AgentComputerConnection, "scopeId" | "agentId" | "attachment">, tenantId: TenantId): Promise<Omit<ComputerGrant, "egress">>;
219
- list(): readonly AgentEntry[];
228
+ list(options?: Readonly<{
229
+ archived?: boolean;
230
+ }>): readonly AgentEntry[];
220
231
  has(agentId: string): boolean;
221
232
  /** Resolve the existing recorded creator for host-side owner admission. */
222
233
  readCreator(agentId: string): string | null;
234
+ /** Immutable creating Agent, distinct from the human credential owner. */
235
+ createdBy(agentId: string): string | null;
223
236
  /** Owner-only rename; refuses a name already held by another Agent. */
224
- rename(agentId: string, name: string, principal: OysterPrincipal): AgentEntry | Readonly<{
237
+ rename(agentId: string, name: string, principal: TenantPrincipal): AgentEntry | Readonly<{
225
238
  error: "not_found" | "name_taken" | "not_granted";
226
239
  }>;
227
240
  /** Owner-only avatar change; the Agent wears it in every App and list. */
228
- setAvatar(agentId: string, avatar: Avatar, principal: OysterPrincipal): AgentEntry | Readonly<{
241
+ setAvatar(agentId: string, avatar: Avatar, principal: TenantPrincipal): AgentEntry | Readonly<{
229
242
  error: "not_found" | "not_granted";
230
243
  }>;
231
- create(name: string, requestId: string, principal: OysterPrincipal, actor: AgentPolicyActor, avatar?: Avatar, createdBy?: string | null): AgentEntry & {
244
+ create(name: string, requestId: string, principal: TenantPrincipal, actor: AgentPolicyActor, avatar?: Avatar, createdBy?: string | null): AgentEntry & {
232
245
  policyRevision: string | null;
233
246
  };
234
247
  private writePolicy;
@@ -247,7 +260,7 @@ export declare class AgentDirectory extends DurableObject<StandaloneAgentEnv> {
247
260
  kind: "agent";
248
261
  }>, tenantId?: TenantId): Promise<AppToolPolicy | null>;
249
262
  /** Only direct human approval records an authenticated canonical grantor. */
250
- approveAppToolPolicy(agentId: string, principal: OysterPrincipal, level: AppToolPolicy["level"], expectedRevision: string | null, actor: AgentPolicyActor, tenantId: TenantId): Promise<Awaited<ReturnType<OysterAgents["approveAppToolPolicy"]>>>;
263
+ approveAppToolPolicy(agentId: string, principal: TenantPrincipal, level: AppToolPolicy["level"], expectedRevision: string | null, actor: AgentPolicyActor, tenantId: TenantId): Promise<Awaited<ReturnType<OysterAgents["approveAppToolPolicy"]>>>;
251
264
  visit(agentId: string, sessionId: string): void;
252
265
  visits(): readonly Readonly<{
253
266
  agentId: string;
@@ -271,9 +284,9 @@ export declare const agentFrameMethods: {
271
284
  readonly items: readonly ({
272
285
  readonly agentId: string;
273
286
  readonly sessionId: string;
274
- readonly createdAt: number;
275
287
  readonly title: string;
276
- readonly state: "done" | "running" | "errored" | "needs_you";
288
+ readonly state: "running" | "done" | "errored" | "needs_you";
289
+ readonly createdAt: number;
277
290
  readonly lastActivityAt: number;
278
291
  readonly triggerId?: string | undefined;
279
292
  readonly settledAt?: number | undefined;
@@ -317,6 +330,155 @@ export declare const agentFrameMethods: {
317
330
  };
318
331
  };
319
332
  AGENTS: {
333
+ schedules: {
334
+ decodeArgs: (raw: readonly unknown[]) => [{
335
+ limit: number;
336
+ agentId: string;
337
+ after?: {
338
+ agentId: string;
339
+ kind: "almanac" | "loop";
340
+ after?: string | undefined;
341
+ } | undefined;
342
+ }];
343
+ decodeResult: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => {
344
+ readonly items: readonly ({
345
+ readonly agentId: string;
346
+ readonly kind: "almanac";
347
+ readonly schedule: {
348
+ readonly id: string;
349
+ readonly sessionId: string;
350
+ readonly prompt: string;
351
+ readonly cron: {
352
+ readonly expression: string;
353
+ readonly timeZone: string;
354
+ } | null;
355
+ readonly nextDueAt: number;
356
+ readonly state: "active" | "paused" | "cancelled" | "finished";
357
+ readonly lastCommandId: string | null;
358
+ readonly lastError: string | null;
359
+ readonly attempt: number;
360
+ };
361
+ } | {
362
+ readonly agentId: string;
363
+ readonly kind: "loop";
364
+ readonly schedule: {
365
+ readonly sessionId: string;
366
+ readonly loopId: string;
367
+ readonly origin: "model" | "human";
368
+ readonly expiresAt: number | null;
369
+ readonly prompt: string;
370
+ readonly mode: "self_paced" | "fixed_interval";
371
+ readonly cron: {
372
+ readonly expression: string;
373
+ readonly timeZone: string;
374
+ } | null;
375
+ readonly state: "active" | "failed" | "paused" | "cancelled" | "finished";
376
+ readonly commandId: string;
377
+ readonly reason: string | null;
378
+ readonly nextDueAt: number | null;
379
+ readonly lastError: string | null;
380
+ readonly consecutiveFailures: number;
381
+ };
382
+ })[];
383
+ readonly next: {
384
+ readonly agentId: string;
385
+ readonly kind: "almanac" | "loop";
386
+ readonly after?: string | undefined;
387
+ } | null;
388
+ };
389
+ requiredOperations: () => string[];
390
+ requestedResource: (raw: readonly unknown[]) => {
391
+ kind: string;
392
+ id: string;
393
+ };
394
+ };
395
+ pauseSchedule: {
396
+ decodeArgs: (raw: readonly unknown[]) => [{
397
+ kind: "almanac";
398
+ agentId: string;
399
+ scheduleId: string;
400
+ } | {
401
+ kind: "loop";
402
+ agentId: string;
403
+ sessionId: string;
404
+ loopId: string;
405
+ }];
406
+ decodeResult: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => {
407
+ readonly agentId: string;
408
+ readonly kind: "almanac";
409
+ readonly scheduleId: string;
410
+ readonly state: "active" | "paused" | "cancelled" | "finished";
411
+ } | {
412
+ readonly agentId: string;
413
+ readonly kind: "loop";
414
+ readonly sessionId: string;
415
+ readonly loopId: string;
416
+ readonly state: "active" | "failed" | "paused" | "cancelled" | "finished";
417
+ };
418
+ requiredOperations: () => string[];
419
+ requestedResource: (raw: readonly unknown[]) => {
420
+ kind: string;
421
+ id: string;
422
+ };
423
+ };
424
+ resumeSchedule: {
425
+ decodeArgs: (raw: readonly unknown[]) => [{
426
+ kind: "almanac";
427
+ agentId: string;
428
+ scheduleId: string;
429
+ } | {
430
+ kind: "loop";
431
+ agentId: string;
432
+ sessionId: string;
433
+ loopId: string;
434
+ }];
435
+ decodeResult: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => {
436
+ readonly agentId: string;
437
+ readonly kind: "almanac";
438
+ readonly scheduleId: string;
439
+ readonly state: "active" | "paused" | "cancelled" | "finished";
440
+ } | {
441
+ readonly agentId: string;
442
+ readonly kind: "loop";
443
+ readonly sessionId: string;
444
+ readonly loopId: string;
445
+ readonly state: "active" | "failed" | "paused" | "cancelled" | "finished";
446
+ };
447
+ requiredOperations: () => string[];
448
+ requestedResource: (raw: readonly unknown[]) => {
449
+ kind: string;
450
+ id: string;
451
+ };
452
+ };
453
+ deleteSchedule: {
454
+ decodeArgs: (raw: readonly unknown[]) => [{
455
+ kind: "almanac";
456
+ agentId: string;
457
+ scheduleId: string;
458
+ } | {
459
+ kind: "loop";
460
+ agentId: string;
461
+ sessionId: string;
462
+ loopId: string;
463
+ }];
464
+ decodeResult: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => {
465
+ readonly agentId: string;
466
+ readonly kind: "almanac";
467
+ readonly scheduleId: string;
468
+ readonly state: "active" | "paused" | "cancelled" | "finished";
469
+ } | {
470
+ readonly agentId: string;
471
+ readonly kind: "loop";
472
+ readonly sessionId: string;
473
+ readonly loopId: string;
474
+ readonly state: "active" | "failed" | "paused" | "cancelled" | "finished";
475
+ };
476
+ requiredOperations: () => string[];
477
+ requestedResource: (raw: readonly unknown[]) => {
478
+ kind: string;
479
+ id: string;
480
+ };
481
+ };
320
482
  send: {
321
483
  decodeArgs: (raw: readonly unknown[]) => [{
322
484
  agentId: string;
@@ -331,6 +493,10 @@ export declare const agentFrameMethods: {
331
493
  sessionId?: string;
332
494
  }>;
333
495
  requiredOperations: () => string[];
496
+ requestedResource: (raw: readonly unknown[]) => {
497
+ kind: string;
498
+ id: string;
499
+ };
334
500
  };
335
501
  };
336
502
  };