agents 0.22.0 → 0.24.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 (215) hide show
  1. package/README.md +20 -1
  2. package/dist/{agent-routing-CnkaHb-v.d.ts → agent-routing-B2XLNMxq.d.ts} +1094 -443
  3. package/dist/agent-routing.d.ts +1 -1
  4. package/dist/agent-tool-types.d.ts +26 -26
  5. package/dist/{agent-tools-C0XJqWzB.d.ts → agent-tools-Dj5Mzlw7.d.ts} +7 -7
  6. package/dist/agent-tools.d.ts +21 -21
  7. package/dist/browser/ai.js +4 -1
  8. package/dist/browser/ai.js.map +1 -1
  9. package/dist/browser/tanstack-ai.js.map +1 -1
  10. package/dist/callable-decorator-DP__HhBA.d.ts +72 -0
  11. package/dist/callable-decorator.d.ts +18 -0
  12. package/dist/callable-decorator.js +71 -0
  13. package/dist/callable-decorator.js.map +1 -0
  14. package/dist/{capability-BjSKYpzg.js → capability-B4WbF81e.js} +2 -1
  15. package/dist/capability-B4WbF81e.js.map +1 -0
  16. package/dist/capability-runner-BUBa6Ake.d.ts +484 -0
  17. package/dist/channel-Bnm4S7T2.d.ts +491 -0
  18. package/dist/channels/ai-sdk.d.ts +46 -0
  19. package/dist/channels/ai-sdk.js +120 -0
  20. package/dist/channels/ai-sdk.js.map +1 -0
  21. package/dist/channels/email.d.ts +95 -0
  22. package/dist/channels/email.js +323 -0
  23. package/dist/channels/email.js.map +1 -0
  24. package/dist/channels/index.d.ts +233 -0
  25. package/dist/channels/index.js +608 -0
  26. package/dist/channels/index.js.map +1 -0
  27. package/dist/channels/slack.d.ts +140 -0
  28. package/dist/channels/slack.js +614 -0
  29. package/dist/channels/slack.js.map +1 -0
  30. package/dist/channels/tanstack-ai.d.ts +39 -0
  31. package/dist/channels/tanstack-ai.js +17 -0
  32. package/dist/channels/tanstack-ai.js.map +1 -0
  33. package/dist/channels/telegram.d.ts +106 -0
  34. package/dist/channels/telegram.js +427 -0
  35. package/dist/channels/telegram.js.map +1 -0
  36. package/dist/channels/voice.d.ts +45 -0
  37. package/dist/channels/voice.js +122 -0
  38. package/dist/channels/voice.js.map +1 -0
  39. package/dist/chat/index.d.ts +2319 -2010
  40. package/dist/chat/index.js +892 -518
  41. package/dist/chat/index.js.map +1 -1
  42. package/dist/chat-sdk/index.d.ts +7 -7
  43. package/dist/chat-sdk/index.js +1 -1
  44. package/dist/client-BxdkCuVy.d.ts +411 -0
  45. package/dist/client-C9DAjZIY.js +518 -0
  46. package/dist/client-C9DAjZIY.js.map +1 -0
  47. package/dist/{client-jagG8a9_.js → client-fyQrLGkD.js} +2 -2
  48. package/dist/{client-jagG8a9_.js.map → client-fyQrLGkD.js.map} +1 -1
  49. package/dist/client.d.ts +27 -283
  50. package/dist/client.js +2 -274
  51. package/dist/context/index.d.ts +216 -0
  52. package/dist/context/index.js +454 -0
  53. package/dist/context/index.js.map +1 -0
  54. package/dist/current-agent-C4w86kcN.d.ts +93 -0
  55. package/dist/current-agent-DhoDkSnH.js.map +1 -1
  56. package/dist/{diagnostics-CaBjfz4J.js → diagnostics-BzvaX2UT.js} +5 -1
  57. package/dist/diagnostics-BzvaX2UT.js.map +1 -0
  58. package/dist/diagnostics-C4jcz3VK.js +360 -0
  59. package/dist/diagnostics-C4jcz3VK.js.map +1 -0
  60. package/dist/durable-object-lifecycle-ei7M7lqB.d.ts +157 -0
  61. package/dist/index-BB0kqhIz.d.ts +101 -0
  62. package/dist/index-BVVgDSdq.d.ts +1 -0
  63. package/dist/index-Dlgtd3Mj.d.ts +78 -0
  64. package/dist/index-XDkuQ7zm.d.ts +89 -0
  65. package/dist/{index-DcSAZKsB.d.ts → index-YSKgfgg9.d.ts} +3 -1
  66. package/dist/index.d.ts +92 -83
  67. package/dist/index.js +4 -3
  68. package/dist/ingress-BfetZbMO.js +83 -0
  69. package/dist/ingress-BfetZbMO.js.map +1 -0
  70. package/dist/internal-CYlgHl1l.js +59 -0
  71. package/dist/internal-CYlgHl1l.js.map +1 -0
  72. package/dist/internal_context.d.ts +1 -1
  73. package/dist/lifecycle/index.d.ts +39 -19
  74. package/dist/lifecycle/index.js +2 -2
  75. package/dist/lifecycle-Mm_jQh7r.js +1314 -0
  76. package/dist/lifecycle-Mm_jQh7r.js.map +1 -0
  77. package/dist/mcp/client/index.d.ts +20 -20
  78. package/dist/mcp/client/index.js +1 -1
  79. package/dist/mcp/index.d.ts +35 -35
  80. package/dist/mcp/index.js +2 -2
  81. package/dist/observability/index.d.ts +1 -1
  82. package/dist/observability/index.js +1 -1
  83. package/dist/queue/index.d.ts +123 -0
  84. package/dist/queue/index.js +2 -0
  85. package/dist/queue-BC9F5cUo.js +406 -0
  86. package/dist/queue-BC9F5cUo.js.map +1 -0
  87. package/dist/react.d.ts +34 -16
  88. package/dist/react.js +31 -8
  89. package/dist/react.js.map +1 -1
  90. package/dist/{retries-CAvxtG9d.d.ts → retries-D9B2UCq3.d.ts} +23 -6
  91. package/dist/retries.d.ts +10 -6
  92. package/dist/retries.js +21 -1
  93. package/dist/retries.js.map +1 -1
  94. package/dist/routing/index.d.ts +137 -0
  95. package/dist/routing/index.js +244 -0
  96. package/dist/routing/index.js.map +1 -0
  97. package/dist/sanitize-D9TujEK8.js +79 -0
  98. package/dist/sanitize-D9TujEK8.js.map +1 -0
  99. package/dist/{scheduler-DQoTGoAW.d.ts → scheduler-BGq6M5Kd.d.ts} +20 -21
  100. package/dist/scheduler-D_KHqxBa.js +658 -0
  101. package/dist/scheduler-D_KHqxBa.js.map +1 -0
  102. package/dist/schedules/index.d.ts +1 -1
  103. package/dist/schedules/index.js +1 -1
  104. package/dist/sentence-chunker-BAidJ4DA.d.ts +68 -0
  105. package/dist/serializable.d.ts +1 -1
  106. package/dist/sessions/index.d.ts +441 -0
  107. package/dist/sessions/index.js +2063 -0
  108. package/dist/sessions/index.js.map +1 -0
  109. package/dist/skills/index.d.ts +99 -0
  110. package/dist/skills/index.js +254 -5
  111. package/dist/skills/index.js.map +1 -1
  112. package/dist/{src-5W6JNKVb.js → src-BNU3ZiJM.js} +1524 -1441
  113. package/dist/src-BNU3ZiJM.js.map +1 -0
  114. package/dist/state/index.d.ts +6 -0
  115. package/dist/state/index.js +137 -0
  116. package/dist/state/index.js.map +1 -0
  117. package/dist/streams/index.d.ts +120 -0
  118. package/dist/streams/index.js +107 -0
  119. package/dist/streams/index.js.map +1 -0
  120. package/dist/streams-BcE8JP2X.d.ts +370 -0
  121. package/dist/streams-CCPRV6dt.js +709 -0
  122. package/dist/streams-CCPRV6dt.js.map +1 -0
  123. package/dist/sub-routing.d.ts +12 -12
  124. package/dist/surface-bZZJqBka.js +17 -0
  125. package/dist/surface-bZZJqBka.js.map +1 -0
  126. package/dist/tasks/index.d.ts +64 -0
  127. package/dist/tasks/index.js +2 -0
  128. package/dist/tasks-D4nLqVSI.js +1656 -0
  129. package/dist/tasks-D4nLqVSI.js.map +1 -0
  130. package/dist/tasks-V2lCT8ZV.d.ts +517 -0
  131. package/dist/text-segment-joiner-BtAFQSA_.js +57 -0
  132. package/dist/text-segment-joiner-BtAFQSA_.js.map +1 -0
  133. package/dist/text-stream-CpdiKrJB.js +272 -0
  134. package/dist/text-stream-CpdiKrJB.js.map +1 -0
  135. package/dist/tokens-nHAKcN6M.js +52 -0
  136. package/dist/tokens-nHAKcN6M.js.map +1 -0
  137. package/dist/tool-schema-CBjGPrsQ.js +31 -0
  138. package/dist/tool-schema-CBjGPrsQ.js.map +1 -0
  139. package/dist/transport-protocol-BxyngQ_R.js +25 -0
  140. package/dist/transport-protocol-BxyngQ_R.js.map +1 -0
  141. package/dist/transport-protocol-ZTew5Wso.d.ts +27 -0
  142. package/dist/types-B7LojTe4.d.ts +202 -0
  143. package/dist/types-DCD6BNZH.d.ts +70 -0
  144. package/dist/types-_Faxb570.d.ts +439 -0
  145. package/dist/voice/client.d.ts +226 -0
  146. package/dist/voice/client.js +932 -0
  147. package/dist/voice/client.js.map +1 -0
  148. package/dist/voice/errors.d.ts +43 -0
  149. package/dist/voice/errors.js +41 -0
  150. package/dist/voice/errors.js.map +1 -0
  151. package/dist/voice/index.d.ts +271 -0
  152. package/dist/voice/index.js +1812 -0
  153. package/dist/voice/index.js.map +1 -0
  154. package/dist/voice/react.d.ts +167 -0
  155. package/dist/voice/react.js +234 -0
  156. package/dist/voice/react.js.map +1 -0
  157. package/dist/voice/sfu.d.ts +71 -0
  158. package/dist/voice/sfu.js +157 -0
  159. package/dist/voice/sfu.js.map +1 -0
  160. package/dist/voice/text.d.ts +6 -0
  161. package/dist/voice/text.js +2 -0
  162. package/dist/voice/types.d.ts +58 -0
  163. package/dist/voice/types.js +18 -0
  164. package/dist/voice/types.js.map +1 -0
  165. package/dist/voice/workers-ai.d.ts +136 -0
  166. package/dist/voice/workers-ai.js +568 -0
  167. package/dist/voice/workers-ai.js.map +1 -0
  168. package/dist/websockets/index.d.ts +301 -0
  169. package/dist/websockets/index.js +3 -0
  170. package/dist/websockets-D7IzWbZb.js +1005 -0
  171. package/dist/websockets-D7IzWbZb.js.map +1 -0
  172. package/dist/workflow-types.d.ts +25 -25
  173. package/dist/workflows.d.ts +21 -21
  174. package/dist/workflows.js +1 -1
  175. package/docs/agent-class.md +4 -4
  176. package/docs/agent-tools.md +2 -1
  177. package/docs/channels.md +323 -0
  178. package/docs/chat-agents.md +6 -13
  179. package/docs/client-sdk.md +30 -0
  180. package/docs/context.md +131 -0
  181. package/docs/index.md +16 -13
  182. package/docs/lifecycle.md +179 -57
  183. package/docs/long-running-agents.md +2 -2
  184. package/docs/mcp-servers.md +5 -1
  185. package/docs/queue.md +135 -241
  186. package/docs/resumable-streaming.md +1 -1
  187. package/docs/retries.md +1 -1
  188. package/docs/routing.md +105 -0
  189. package/docs/sessions.md +237 -871
  190. package/docs/streams.md +213 -0
  191. package/docs/sub-agents.md +184 -124
  192. package/docs/tasks.md +246 -0
  193. package/docs/voice.md +745 -0
  194. package/package.json +126 -14
  195. package/dist/capability-BjSKYpzg.js.map +0 -1
  196. package/dist/capability-runner-CvHGZqUu.d.ts +0 -150
  197. package/dist/client.js.map +0 -1
  198. package/dist/compaction-helpers-iiKMr2TQ.js +0 -340
  199. package/dist/compaction-helpers-iiKMr2TQ.js.map +0 -1
  200. package/dist/compaction-helpers-wUz6M3us.d.ts +0 -621
  201. package/dist/current-agent-CuMErtly.d.ts +0 -283
  202. package/dist/diagnostics-CaBjfz4J.js.map +0 -1
  203. package/dist/durable-object-lifecycle-D6nNQJJd.js +0 -862
  204. package/dist/durable-object-lifecycle-D6nNQJJd.js.map +0 -1
  205. package/dist/experimental/memory/session/index.d.ts +0 -671
  206. package/dist/experimental/memory/session/index.js +0 -2379
  207. package/dist/experimental/memory/session/index.js.map +0 -1
  208. package/dist/experimental/memory/utils/index.d.ts +0 -96
  209. package/dist/experimental/memory/utils/index.js +0 -79
  210. package/dist/experimental/memory/utils/index.js.map +0 -1
  211. package/dist/scheduler-CR9RHGos.js +0 -857
  212. package/dist/scheduler-CR9RHGos.js.map +0 -1
  213. package/dist/src-5W6JNKVb.js.map +0 -1
  214. package/dist/tool-output-truncation-CNnnGZQ3.js +0 -98
  215. package/dist/tool-output-truncation-CNnnGZQ3.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import {
2
- M as SubAgentClass,
3
- N as SubAgentStub,
4
- c as Agent
5
- } from "../agent-routing-CnkaHb-v.js";
2
+ _n as DynamicAgentClass,
3
+ c as Agent,
4
+ vn as DynamicAgentStub
5
+ } from "../agent-routing-B2XLNMxq.js";
6
6
  import { Lock, QueueEntry, StateAdapter } from "chat";
7
7
 
8
8
  //#region src/chat-sdk/agent.d.ts
@@ -54,12 +54,12 @@ declare class ChatSdkStateAgent extends Agent {
54
54
  //#region src/chat-sdk/types.d.ts
55
55
  interface ChatSdkStateParent {
56
56
  subAgent<T extends ChatSdkStateAgent>(
57
- agentClass: SubAgentClass<T>,
57
+ agentClass: DynamicAgentClass<T>,
58
58
  name: string
59
- ): Promise<SubAgentStub<T>>;
59
+ ): Promise<DynamicAgentStub<T>>;
60
60
  }
61
61
  interface ChatSdkStateAdapterOptions {
62
- agent?: SubAgentClass<ChatSdkStateAgent>;
62
+ agent?: DynamicAgentClass<ChatSdkStateAgent>;
63
63
  parent?: ChatSdkStateParent;
64
64
  name?: string;
65
65
  keyShard?: (key: string) => string | undefined;
@@ -1,4 +1,4 @@
1
- import { a as getCurrentAgent, t as Agent } from "../src-5W6JNKVb.js";
1
+ import { i as getCurrentAgent, t as Agent } from "../src-BNU3ZiJM.js";
2
2
  //#region src/chat-sdk/agent.ts
3
3
  const NEXT_CLEANUP_AT_KEY = "next_cleanup_at";
4
4
  const CLEANUP_SCHEDULE_ID_KEY = "cleanup_schedule_id";
@@ -0,0 +1,411 @@
1
+ import { c as Agent } from "./agent-routing-B2XLNMxq.js";
2
+ import {
3
+ ClientParameters,
4
+ Method,
5
+ RPCMethod,
6
+ SerializableReturnValue,
7
+ SerializableValue
8
+ } from "./serializable.js";
9
+ import {
10
+ i as TransportMessage,
11
+ t as AgentTransport
12
+ } from "./transport-protocol-ZTew5Wso.js";
13
+ import {
14
+ PartyFetchOptions,
15
+ PartySocket,
16
+ PartySocketOptions
17
+ } from "partysocket";
18
+
19
+ //#region src/websockets/capnweb-socket.d.ts
20
+ /**
21
+ * A WebSocket-shaped client for the Cap'n Web connection transport.
22
+ *
23
+ * It has the constructor, `readyState`, `send()`, `close()`, and events of
24
+ * a `WebSocket`, so PartySocket (and therefore `useAgent` and
25
+ * `AgentClient`) can drive it as a drop-in socket implementation and keep
26
+ * owning reconnection, buffering, and backoff. Frames sent here travel
27
+ * through the host's pipe method; frames from the host arrive as
28
+ * `message` events.
29
+ *
30
+ * @experimental The transport is experimental.
31
+ */
32
+ declare class CapnWebSocket extends EventTarget {
33
+ #private;
34
+ static readonly CONNECTING = 0;
35
+ static readonly OPEN = 1;
36
+ static readonly CLOSING = 2;
37
+ static readonly CLOSED = 3;
38
+ readonly CONNECTING = 0;
39
+ readonly OPEN = 1;
40
+ readonly CLOSING = 2;
41
+ readonly CLOSED = 3;
42
+ readonly url: string;
43
+ readyState: number;
44
+ binaryType: BinaryType;
45
+ bufferedAmount: number;
46
+ extensions: string;
47
+ protocol: string;
48
+ onopen: ((event: Event) => void) | null;
49
+ onmessage: ((event: MessageEvent) => void) | null;
50
+ onclose: ((event: CloseEvent) => void) | null;
51
+ onerror: ((event: Event) => void) | null;
52
+ constructor(url: string | URL, protocols?: string | string[]);
53
+ dispatchEvent(event: Event): boolean;
54
+ /**
55
+ * Invoke one of the host's native callables on the session root. The
56
+ * result keeps Cap'n Web semantics: an `RpcTarget` arrives as a live
57
+ * stub, a `ReadableStream` streams, and chained calls pipeline.
58
+ */
59
+ invoke(method: string, args: unknown[]): Promise<unknown>;
60
+ send(data: TransportMessage): void;
61
+ close(code?: number, reason?: string): void;
62
+ }
63
+ //#endregion
64
+ //#region src/client.d.ts
65
+ declare class AgentConnectionError extends Error {
66
+ code: number;
67
+ reason: string;
68
+ wasClean: boolean;
69
+ constructor(event: CloseEvent);
70
+ }
71
+ declare function isTerminalCloseEvent(event: CloseEvent): boolean;
72
+ type TerminalReconnectOptions = {
73
+ shouldReconnectOnClose?: (event: CloseEvent) => boolean;
74
+ };
75
+ /**
76
+ * Options for creating an AgentClient
77
+ */
78
+ type AgentClientOptions<State = unknown> = Omit<
79
+ PartySocketOptions,
80
+ "party" | "room"
81
+ > &
82
+ TerminalReconnectOptions & {
83
+ /**
84
+ * Wire the connection travels on. `"cf-websocket"` (default) is a
85
+ * hibernating WebSocket where `call()` sends JSON `rpc` frames.
86
+ * `"capnweb"` carries protocol frames over a Cap'n Web session whose
87
+ * root also serves the host's `callables` natively, so `call()` and
88
+ * `stub` invoke them directly and an `RpcTarget` result is a live stub.
89
+ * The Durable Object stays in memory while a capnweb connection is open.
90
+ * @experimental The `"capnweb"` transport is experimental.
91
+ */
92
+ transport?: AgentTransport /** Name of the agent to connect to (ignored if basePath is set) */;
93
+ agent: string /** Name of the specific Agent instance (ignored if basePath is set) */;
94
+ name?: string;
95
+ /**
96
+ * Full URL path - bypasses agent/name URL construction.
97
+ * When set, the client connects to this path directly.
98
+ * Server must handle routing manually (e.g., with getAgentByName + fetch).
99
+ * @example
100
+ * // Client connects to /user, server routes based on session
101
+ * useAgent({ agent: "UserAgent", basePath: "user" })
102
+ */
103
+ basePath?: string /** Called when the Agent's state is updated */;
104
+ onStateUpdate?: (
105
+ state: State,
106
+ source: "server" | "client"
107
+ ) => void /** Called when a state update fails (e.g., connection is readonly) */;
108
+ onStateUpdateError?: (error: string) => void;
109
+ /**
110
+ * Called when the server sends the agent's identity on connect.
111
+ * Useful when using basePath, as the actual instance name is determined server-side.
112
+ * @param name The actual agent instance name
113
+ * @param agent The agent class name (kebab-case)
114
+ */
115
+ onIdentity?: (name: string, agent: string) => void;
116
+ /**
117
+ * Called when identity changes on reconnect (different instance than before).
118
+ * If not provided and identity changes, a warning will be logged.
119
+ * @param oldName Previous instance name
120
+ * @param newName New instance name
121
+ * @param oldAgent Previous agent class name
122
+ * @param newAgent New agent class name
123
+ */
124
+ onIdentityChange?: (
125
+ oldName: string,
126
+ newName: string,
127
+ oldAgent: string,
128
+ newAgent: string
129
+ ) => void;
130
+ /**
131
+ * Additional path to append to the URL.
132
+ * Works with both standard routing and basePath.
133
+ * @example
134
+ * // With basePath: /user/settings
135
+ * { basePath: "user", path: "settings" }
136
+ * // Standard: /agents/my-agent/room/settings
137
+ * { agent: "MyAgent", name: "room", path: "settings" }
138
+ */
139
+ path?: string;
140
+ /**
141
+ * Default timeout (in milliseconds) applied to non-streaming `call()`s
142
+ * that don't pass an explicit `timeout`. Defaults to 30 000 ms.
143
+ * Set to `0` to disable. Streaming calls never get a default timeout.
144
+ */
145
+ defaultCallTimeout?: number /** Called when the connection closes with a terminal code and will not reconnect. */;
146
+ onConnectionError?: (error: AgentConnectionError) => void;
147
+ };
148
+ /**
149
+ * Default timeout (in milliseconds) applied to non-streaming RPC calls
150
+ * that don't pass an explicit `timeout`. Acts as a backstop so calls
151
+ * whose response is lost (e.g. the connection drops mid-flight) reject
152
+ * instead of hanging forever. Override per client via
153
+ * `defaultCallTimeout`, or per call via `timeout` (0 disables).
154
+ */
155
+ declare const DEFAULT_CALL_TIMEOUT_MS = 30000;
156
+ /**
157
+ * Options for streaming RPC calls
158
+ */
159
+ type StreamOptions = {
160
+ /** Called when a chunk of data is received */ onChunk?: (
161
+ chunk: unknown
162
+ ) => void /** Called when the stream ends */;
163
+ onDone?: (finalChunk: unknown) => void /** Called when an error occurs */;
164
+ onError?: (error: string) => void;
165
+ };
166
+ /**
167
+ * Options for RPC calls
168
+ */
169
+ type CallOptions = {
170
+ /** Timeout in milliseconds. If the call doesn't complete within this time, it will be rejected. */ timeout?: number /** Streaming options for handling streaming responses */;
171
+ stream?: StreamOptions;
172
+ };
173
+ /**
174
+ * Normalize `call()` options. The legacy shape is the stream callbacks
175
+ * themselves (`{ onChunk, onDone, onError }`); the current shape nests
176
+ * them under `stream` beside `timeout`.
177
+ */
178
+ declare function splitCallOptions(
179
+ options: CallOptions | StreamOptions | undefined
180
+ ): {
181
+ stream: StreamOptions | undefined;
182
+ timeout: number | undefined;
183
+ };
184
+ /**
185
+ * One native call on the Cap'n Web transport, with the timeout and
186
+ * stream-callback contract `call()` has on the JSON wire. The timeout
187
+ * covers the whole call, draining included: on expiry the stream reader is
188
+ * cancelled and the promise rejects once. A `ReadableStream` result is
189
+ * drained into the stream callbacks when they are given; any other value,
190
+ * live stubs included, passes straight through.
191
+ */
192
+ declare function nativeCall<T>(
193
+ socket: CapnWebSocket,
194
+ method: string,
195
+ args: unknown[],
196
+ options: CallOptions | StreamOptions | undefined,
197
+ defaultTimeout: number
198
+ ): Promise<T>;
199
+ /**
200
+ * Native calls issued while the Cap'n Web socket is still connecting or
201
+ * between reconnects. They must not fall back to JSON frames — that would
202
+ * change which methods are reachable and lose return-by-reference — so
203
+ * they wait here and run on the next open socket, or reject when the
204
+ * connection ends for good. Their timeout starts when they are issued.
205
+ */
206
+ declare class NativeCallQueue {
207
+ #private;
208
+ enqueue<T>(
209
+ method: string,
210
+ args: unknown[],
211
+ options: CallOptions | StreamOptions | undefined,
212
+ defaultTimeout: number
213
+ ): Promise<T>;
214
+ /** Run everything queued on a socket that just opened. */
215
+ flush(socket: CapnWebSocket): void;
216
+ /** Reject everything queued; the connection will not come back. */
217
+ rejectAll(reason: string): void;
218
+ }
219
+ /**
220
+ * Options for the agentFetch function
221
+ */
222
+ type AgentClientFetchOptions = Omit<PartyFetchOptions, "party" | "room"> & {
223
+ /** Name of the agent to connect to (ignored if basePath is set) */ agent: string /** Name of the specific Agent instance (ignored if basePath is set) */;
224
+ name?: string;
225
+ /**
226
+ * Full URL path - bypasses agent/name URL construction.
227
+ * When set, the request is made to this path directly.
228
+ */
229
+ basePath?: string;
230
+ };
231
+ type AllOptional<T> = T extends [infer A, ...infer R]
232
+ ? undefined extends A
233
+ ? AllOptional<R>
234
+ : false
235
+ : true;
236
+ type RPCMethods<T> = {
237
+ [K in keyof T as T[K] extends RPCMethod<T[K]> ? K : never]: RPCMethod<T[K]>;
238
+ };
239
+ type OptionalParametersMethod<T extends RPCMethod> =
240
+ AllOptional<ClientParameters<T>> extends true ? T : never;
241
+ type AgentMethods<T> = Omit<RPCMethods<T>, keyof Agent<any, any>>;
242
+ type OptionalAgentMethods<T> = {
243
+ [K in keyof AgentMethods<T> as AgentMethods<T>[K] extends OptionalParametersMethod<
244
+ AgentMethods<T>[K]
245
+ >
246
+ ? K
247
+ : never]: OptionalParametersMethod<AgentMethods<T>[K]>;
248
+ };
249
+ type RequiredAgentMethods<T> = Omit<
250
+ AgentMethods<T>,
251
+ keyof OptionalAgentMethods<T>
252
+ >;
253
+ type AgentPromiseReturnType<T, K extends keyof AgentMethods<T>> =
254
+ ReturnType<AgentMethods<T>[K]> extends Promise<any>
255
+ ? ReturnType<AgentMethods<T>[K]>
256
+ : Promise<ReturnType<AgentMethods<T>[K]>>;
257
+ type AgentStub<T> = {
258
+ [K in keyof AgentMethods<T>]: (
259
+ ...args: ClientParameters<AgentMethods<T>[K]>
260
+ ) => AgentPromiseReturnType<AgentMethods<T>, K>;
261
+ };
262
+ type UntypedAgentStub = Record<string, Method>;
263
+ type AgentClientStub<AgentT> = keyof AgentMethods<AgentT> extends never
264
+ ? UntypedAgentStub
265
+ : AgentStub<AgentT>;
266
+ type OptionalArgsAgentClientCall<AgentT> = <
267
+ K extends keyof OptionalAgentMethods<AgentT>
268
+ >(
269
+ method: K,
270
+ args?: ClientParameters<OptionalAgentMethods<AgentT>[K]>,
271
+ options?: CallOptions | StreamOptions
272
+ ) => AgentPromiseReturnType<AgentT, K>;
273
+ type RequiredArgsAgentClientCall<AgentT> = <
274
+ K extends keyof RequiredAgentMethods<AgentT>
275
+ >(
276
+ method: K,
277
+ args: ClientParameters<RequiredAgentMethods<AgentT>[K]>,
278
+ options?: CallOptions | StreamOptions
279
+ ) => AgentPromiseReturnType<AgentT, K>;
280
+ type TypedAgentClientCall<AgentT> = OptionalArgsAgentClientCall<AgentT> &
281
+ RequiredArgsAgentClientCall<AgentT>;
282
+ type UntypedAgentClientCall = {
283
+ <T extends SerializableReturnValue>(
284
+ method: string,
285
+ args?: SerializableValue[],
286
+ options?: CallOptions | StreamOptions
287
+ ): Promise<T>;
288
+ <T = unknown>(
289
+ method: string,
290
+ args?: unknown[],
291
+ options?: CallOptions | StreamOptions
292
+ ): Promise<T>;
293
+ };
294
+ type AgentClientCall<AgentT> = keyof AgentMethods<AgentT> extends never
295
+ ? UntypedAgentClientCall
296
+ : TypedAgentClientCall<AgentT>;
297
+ /**
298
+ * Creates a proxy that wraps RPC method calls.
299
+ * Internal JS methods (toJSON, then, etc.) return undefined to avoid
300
+ * triggering RPC calls during serialization (e.g., console.log)
301
+ */
302
+ declare function createStubProxy<T = Record<string, Method>>(
303
+ call: (method: string, args: unknown[]) => unknown
304
+ ): T;
305
+ /**
306
+ * WebSocket client for connecting to an Agent
307
+ */
308
+ declare class AgentClient<
309
+ AgentT = unknown,
310
+ State = AgentT extends {
311
+ get state(): infer S;
312
+ }
313
+ ? S
314
+ : AgentT
315
+ > extends PartySocket {
316
+ #private;
317
+ /**
318
+ * @deprecated Use agentFetch instead
319
+ */
320
+ static fetch(_opts: PartyFetchOptions): Promise<Response>;
321
+ agent: string;
322
+ name: string;
323
+ call: AgentClientCall<AgentT>;
324
+ stub: AgentClientStub<AgentT>;
325
+ /**
326
+ * The current agent state, updated on server broadcasts and client setState calls.
327
+ * Starts as undefined until the first state message is received from the server.
328
+ */
329
+ state: State | undefined;
330
+ /**
331
+ * Whether the client has received identity from the server.
332
+ * Becomes true after the first identity message is received.
333
+ * Resets to false on connection close.
334
+ */
335
+ identified: boolean;
336
+ /**
337
+ * Terminal connection error, if the server closed the socket with a code
338
+ * that should not be retried automatically.
339
+ */
340
+ connectionError: AgentConnectionError | null;
341
+ /**
342
+ * Promise that resolves when identity has been received from the server.
343
+ * Useful for waiting before making calls that depend on knowing the instance.
344
+ * Resets on connection close so it can be awaited again after reconnect.
345
+ */
346
+ get ready(): Promise<void>;
347
+ private options;
348
+ private _pendingCalls;
349
+ private _readyPromise;
350
+ private _resolveReady;
351
+ private _previousName;
352
+ private _previousAgent;
353
+ private _resetReady;
354
+ constructor(options: AgentClientOptions<State>);
355
+ /**
356
+ * Reject pending RPC calls with the given reason.
357
+ * With `onlyTransmitted`, calls still sitting in the send buffer are
358
+ * kept pending (they'll be flushed on reconnect).
359
+ */
360
+ private _rejectPendingCalls;
361
+ setState(state: State): void;
362
+ /**
363
+ * Close the connection and immediately reject all pending RPC calls.
364
+ * This provides immediate feedback on intentional close rather than
365
+ * waiting for the WebSocket close handshake to complete.
366
+ *
367
+ * Note: Any calls made after `close()` will be rejected when the
368
+ * underlying WebSocket close event fires.
369
+ */
370
+ close(code?: number, reason?: string): void;
371
+ /**
372
+ * Call a method on the Agent.
373
+ * When AgentT is provided, method names are inferred from the agent's methods.
374
+ * Falls back to untyped string-based calls when AgentT is not provided.
375
+ */
376
+ private _callImpl;
377
+ }
378
+ /**
379
+ * Make an HTTP request to an Agent
380
+ * @param opts Connection options
381
+ * @param init Request initialization options
382
+ * @returns Promise resolving to a Response
383
+ */
384
+ declare function agentFetch(
385
+ opts: AgentClientFetchOptions,
386
+ init?: RequestInit
387
+ ): Promise<Response>;
388
+ //#endregion
389
+ export {
390
+ createStubProxy as _,
391
+ AgentMethods as a,
392
+ splitCallOptions as b,
393
+ CallOptions as c,
394
+ OptionalAgentMethods as d,
395
+ RPCMethods as f,
396
+ agentFetch as g,
397
+ UntypedAgentStub as h,
398
+ AgentConnectionError as i,
399
+ DEFAULT_CALL_TIMEOUT_MS as l,
400
+ StreamOptions as m,
401
+ AgentClientFetchOptions as n,
402
+ AgentPromiseReturnType as o,
403
+ RequiredAgentMethods as p,
404
+ AgentClientOptions as r,
405
+ AgentStub as s,
406
+ AgentClient as t,
407
+ NativeCallQueue as u,
408
+ isTerminalCloseEvent as v,
409
+ nativeCall as y
410
+ };
411
+ //# sourceMappingURL=client-BxdkCuVy.d.ts.map