experimental-a2 0.0.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 (68) hide show
  1. package/CHANGELOG.md +128 -0
  2. package/dist/ai-server.browser.d.ts +1 -0
  3. package/dist/ai-server.browser.js +4 -0
  4. package/dist/ai-server.d.ts +65 -0
  5. package/dist/ai-server.js +494 -0
  6. package/dist/ai.d.ts +282 -0
  7. package/dist/ai.js +922 -0
  8. package/dist/cache-indexeddb.d.ts +1 -0
  9. package/dist/cache-indexeddb.js +0 -0
  10. package/dist/client.d.ts +90 -0
  11. package/dist/client.js +410 -0
  12. package/dist/contract-B0kAXoaL.js +60 -0
  13. package/dist/contract-DL8btVd9.d.ts +161 -0
  14. package/dist/devtools-server.browser.d.ts +1 -0
  15. package/dist/devtools-server.browser.js +4 -0
  16. package/dist/devtools-server.d.ts +22 -0
  17. package/dist/devtools-server.js +1087 -0
  18. package/dist/errors-BJRMd-h6.js +23 -0
  19. package/dist/errors-xL_JTXsY.d.ts +20 -0
  20. package/dist/http.d.ts +44 -0
  21. package/dist/http.js +119 -0
  22. package/dist/index.d.ts +5 -0
  23. package/dist/index.js +3 -0
  24. package/dist/inspection-E7qbD0Xj.js +10 -0
  25. package/dist/internal-Dm8Ejnud.js +36 -0
  26. package/dist/log-Dg1I8NRr.d.ts +245 -0
  27. package/dist/log-memory.d.ts +11 -0
  28. package/dist/log-memory.js +345 -0
  29. package/dist/log-polling-RO7kclzR.js +83 -0
  30. package/dist/log-postgres.d.ts +40 -0
  31. package/dist/log-postgres.js +628 -0
  32. package/dist/log-redis.d.ts +31 -0
  33. package/dist/log-redis.js +711 -0
  34. package/dist/log-sqlite.d.ts +17 -0
  35. package/dist/log-sqlite.js +450 -0
  36. package/dist/log-yJbXUf72.js +5 -0
  37. package/dist/otel.d.ts +12 -0
  38. package/dist/otel.js +41 -0
  39. package/dist/react.d.ts +54 -0
  40. package/dist/react.js +85 -0
  41. package/dist/recovery-vercel.d.ts +60 -0
  42. package/dist/recovery-vercel.js +120 -0
  43. package/dist/retryable-lazy-DZWmHpii.js +19 -0
  44. package/dist/server-DYsnKTTy.js +780 -0
  45. package/dist/server.browser.d.ts +1 -0
  46. package/dist/server.browser.js +11 -0
  47. package/dist/server.d.ts +136 -0
  48. package/dist/server.js +2 -0
  49. package/dist/telemetry-C78al20p.d.ts +32 -0
  50. package/dist/validate-XKT4FSNn.js +28 -0
  51. package/dist/wire-2QpU1EtJ.js +62 -0
  52. package/docs/01-quickstart.mdx +214 -0
  53. package/docs/concepts/01-contracts.mdx +138 -0
  54. package/docs/concepts/02-handlers.mdx +146 -0
  55. package/docs/concepts/03-durability.mdx +230 -0
  56. package/docs/concepts/04-state.mdx +133 -0
  57. package/docs/guides/01-timers.mdx +85 -0
  58. package/docs/guides/02-cancellation.mdx +107 -0
  59. package/docs/guides/03-react.mdx +234 -0
  60. package/docs/guides/04-local-first.mdx +88 -0
  61. package/docs/guides/05-production.mdx +179 -0
  62. package/docs/guides/06-ai-agents.mdx +659 -0
  63. package/docs/guides/07-devtools.mdx +101 -0
  64. package/docs/guides/08-application-data.mdx +114 -0
  65. package/docs/index.mdx +282 -0
  66. package/docs/reference/01-api.mdx +637 -0
  67. package/docs/reference/02-errors.mdx +77 -0
  68. package/package.json +111 -0
package/dist/ai.d.ts ADDED
@@ -0,0 +1,282 @@
1
+ import { i as EventDefs, l as StandardSchemaV1, n as Contract, s as Reducer, t as AppendInput } from "./contract-DL8btVd9.js";
2
+ import { FinishReason, JSONValue, LanguageModelUsage, UIMessage, UIMessageChunk } from "ai";
3
+ //#region src/ai.d.ts
4
+ type AgentStatus = "idle" | "generating" | "waiting" | "failed" | "closed";
5
+ type GenerationReason = "message" | "approval" | "input" | "retry";
6
+ type SessionCreatedPayload = {
7
+ metadata?: JSONValue;
8
+ };
9
+ type SessionClosedPayload = {
10
+ reason?: string;
11
+ };
12
+ type MessageCreatedPayload<M extends UIMessage> = {
13
+ message: M;
14
+ };
15
+ type MessageCompletedPayload = {
16
+ messageId: string;
17
+ };
18
+ type MessageInterruptedPayload = {
19
+ messageId: string;
20
+ generationId?: string;
21
+ reason?: string;
22
+ /** Last confirmed log index visible to the interrupter. */
23
+ lastSeenIndex?: number;
24
+ };
25
+ type GenerationRequestedPayload = {
26
+ messageId: string;
27
+ reason: GenerationReason;
28
+ responseMessageId?: string;
29
+ };
30
+ type RetryGenerationOptions = {
31
+ messageId: string;
32
+ responseMessageId: string;
33
+ retryId: string;
34
+ };
35
+ type GenerationStartedPayload = {
36
+ requestId: string;
37
+ messageId: string;
38
+ generationId: string;
39
+ responseMessageId: string;
40
+ attempt: number;
41
+ model: string;
42
+ };
43
+ type GenerationProgressPayload = {
44
+ requestId: string;
45
+ messageId: string;
46
+ generationId: string;
47
+ responseMessageId: string;
48
+ sequence: number;
49
+ chunks: UIMessageChunk[];
50
+ };
51
+ type GenerationCompletedPayload = {
52
+ requestId: string;
53
+ messageId: string;
54
+ generationId: string;
55
+ responseMessageId: string;
56
+ finishReason?: FinishReason;
57
+ usage?: LanguageModelUsage;
58
+ };
59
+ type GenerationFailedPayload = {
60
+ requestId: string;
61
+ messageId: string;
62
+ generationId: string;
63
+ responseMessageId: string;
64
+ error: string;
65
+ /** True when a later attempt replaced an incomplete attempt. */
66
+ superseded?: boolean;
67
+ };
68
+ type ToolCalledPayload = {
69
+ requestId: string;
70
+ messageId: string;
71
+ generationId: string;
72
+ toolCallId: string;
73
+ toolName: string;
74
+ input: unknown;
75
+ dynamic?: boolean;
76
+ providerExecuted?: boolean;
77
+ providerMetadata?: unknown;
78
+ toolMetadata?: unknown;
79
+ title?: string;
80
+ };
81
+ type ToolResultPayload = {
82
+ requestId: string;
83
+ messageId: string;
84
+ generationId: string;
85
+ toolCallId: string;
86
+ toolName?: string;
87
+ input?: unknown;
88
+ rawInput?: unknown;
89
+ output?: unknown;
90
+ error?: string;
91
+ denied?: boolean;
92
+ preliminary?: boolean;
93
+ phase?: "input" | "execution";
94
+ dynamic?: boolean;
95
+ providerExecuted?: boolean;
96
+ providerMetadata?: unknown;
97
+ toolMetadata?: unknown;
98
+ };
99
+ type ApprovalRequestedPayload = {
100
+ messageId: string;
101
+ generationId: string;
102
+ approvalId: string;
103
+ toolCallId: string;
104
+ isAutomatic?: boolean;
105
+ signature?: string;
106
+ };
107
+ type ApprovalRespondedPayload = {
108
+ messageId: string;
109
+ approvalId: string;
110
+ approved: boolean;
111
+ reason?: string;
112
+ };
113
+ type InputRequestedPayload = {
114
+ messageId: string;
115
+ generationId?: string;
116
+ inputId: string;
117
+ name: string;
118
+ question?: JSONValue;
119
+ };
120
+ type InputRespondedPayload = {
121
+ messageId: string;
122
+ inputId: string;
123
+ name: string;
124
+ value: JSONValue;
125
+ };
126
+ type CompactionRequestedPayload = {
127
+ generationId: string;
128
+ throughMessageId: string;
129
+ };
130
+ type CompactionCompletedPayload<M extends UIMessage> = {
131
+ generationId: string;
132
+ throughMessageId: string;
133
+ messages: M[];
134
+ };
135
+ type AIEventDefs<M extends UIMessage = UIMessage> = {
136
+ "ai.session.created": StandardSchemaV1<SessionCreatedPayload>;
137
+ "ai.session.closed": StandardSchemaV1<SessionClosedPayload>;
138
+ "ai.message.created": StandardSchemaV1<MessageCreatedPayload<M>>;
139
+ "ai.message.completed": StandardSchemaV1<MessageCompletedPayload>;
140
+ "ai.message.interrupted": StandardSchemaV1<MessageInterruptedPayload>;
141
+ "ai.generation.requested": StandardSchemaV1<GenerationRequestedPayload>;
142
+ "ai.generation.started": StandardSchemaV1<GenerationStartedPayload>;
143
+ "ai.generation.progress": StandardSchemaV1<GenerationProgressPayload>;
144
+ "ai.generation.completed": StandardSchemaV1<GenerationCompletedPayload>;
145
+ "ai.generation.failed": StandardSchemaV1<GenerationFailedPayload>;
146
+ "ai.tool.called": StandardSchemaV1<ToolCalledPayload>;
147
+ "ai.tool.result": StandardSchemaV1<ToolResultPayload>;
148
+ "ai.approval.requested": StandardSchemaV1<ApprovalRequestedPayload>;
149
+ "ai.approval.responded": StandardSchemaV1<ApprovalRespondedPayload>;
150
+ "ai.input.requested": StandardSchemaV1<InputRequestedPayload>;
151
+ "ai.input.responded": StandardSchemaV1<InputRespondedPayload>;
152
+ "ai.compaction.requested": StandardSchemaV1<CompactionRequestedPayload>;
153
+ "ai.compaction.completed": StandardSchemaV1<CompactionCompletedPayload<M>>;
154
+ };
155
+ type ActiveGeneration = GenerationStartedPayload;
156
+ type ActiveGenerationProjection<M extends UIMessage = UIMessage> = {
157
+ generationId: string;
158
+ responseMessageId: string;
159
+ baseMessage?: M;
160
+ batches: Array<{
161
+ index: number;
162
+ chunks: UIMessageChunk[];
163
+ }>;
164
+ baseTools: ToolActivity[];
165
+ toolEvents: Array<{
166
+ index: number;
167
+ type: "ai.tool.called";
168
+ payload: ToolCalledPayload;
169
+ } | {
170
+ index: number;
171
+ type: "ai.tool.result";
172
+ payload: ToolResultPayload;
173
+ }>;
174
+ };
175
+ type PendingApproval = ApprovalRequestedPayload;
176
+ type PendingInput = InputRequestedPayload;
177
+ type ToolActivity = {
178
+ requestId: string;
179
+ messageId: string;
180
+ generationId: string;
181
+ toolCallId: string;
182
+ toolName?: string;
183
+ input?: unknown;
184
+ rawInput?: unknown;
185
+ output?: unknown;
186
+ error?: string;
187
+ preliminary?: boolean;
188
+ phase?: "input" | "execution";
189
+ dynamic?: boolean;
190
+ providerExecuted?: boolean;
191
+ callProviderMetadata?: unknown;
192
+ resultProviderMetadata?: unknown;
193
+ toolMetadata?: unknown;
194
+ title?: string;
195
+ status: "running" | "completed" | "failed" | "denied";
196
+ };
197
+ type CompactionState<M extends UIMessage> = {
198
+ status: "running" | "completed";
199
+ generationId: string;
200
+ throughMessageId: string;
201
+ messages?: M[];
202
+ };
203
+ type GenerationUsage = {
204
+ generationId: string;
205
+ usage: LanguageModelUsage;
206
+ };
207
+ type AIState<M extends UIMessage = UIMessage> = {
208
+ session: {
209
+ created: boolean;
210
+ metadata?: JSONValue;
211
+ };
212
+ messages: M[];
213
+ status: AgentStatus;
214
+ activeGeneration: ActiveGeneration | null;
215
+ activeProjection: ActiveGenerationProjection<M> | null;
216
+ pendingApprovals: PendingApproval[];
217
+ pendingInputs: PendingInput[];
218
+ tools: ToolActivity[];
219
+ compaction: CompactionState<M> | null;
220
+ usage: GenerationUsage[];
221
+ error: string | null;
222
+ };
223
+ type AgentDefinition<M extends UIMessage = UIMessage, D extends EventDefs = AIEventDefs<M>> = {
224
+ readonly contract: Contract<D>;
225
+ readonly reducer: Reducer<D, AIState<M>>;
226
+ };
227
+ type AgentOptions<M extends UIMessage, E extends EventDefs> = {
228
+ name: string;
229
+ events?: E;
230
+ /** Optional stricter schema for custom UIMessage metadata/data/tool types. */
231
+ messageSchema?: StandardSchemaV1<M>;
232
+ /** Snapshot identity. Bump when application-level projection semantics change. */
233
+ reducerName?: string;
234
+ };
235
+ type AIMessageFrom<D extends EventDefs> = D extends Record<"ai.message.created", infer S extends StandardSchemaV1> ? StandardSchemaV1.InferOutput<S> extends MessageCreatedPayload<infer M extends UIMessage> ? M : UIMessage : UIMessage;
236
+ declare function createEvents<M extends UIMessage = UIMessage>(options?: {
237
+ messageSchema?: StandardSchemaV1<M>;
238
+ }): AIEventDefs<M>;
239
+ declare const events: AIEventDefs<UIMessage>;
240
+ /** Pure projection of the built-in AI protocol. Unknown extension events are ignored. */
241
+ declare function reduceAIState<M extends UIMessage>(state: AIState<M>, event: {
242
+ type: string;
243
+ payload: unknown;
244
+ index: number;
245
+ }): AIState<M>;
246
+ /** Derive AI SDK UI messages directly from an A2 event history. */
247
+ declare function deriveUIMessages<M extends UIMessage = UIMessage>(history: readonly {
248
+ type: string;
249
+ payload: unknown;
250
+ index: number;
251
+ }[]): M[];
252
+ /** Build the standard AI state projection for any contract containing the protocol. */
253
+ declare function createReducer<D extends EventDefs>(options: {
254
+ contract: Contract<D>;
255
+ name?: string;
256
+ }): Reducer<D, AIState<AIMessageFrom<D>>>;
257
+ type ProtocolInput<M extends UIMessage, K extends keyof AIEventDefs<M> & string> = AppendInput<Pick<AIEventDefs<M>, K>>;
258
+ type AIInputs = {
259
+ /** Record a message; user messages request an assistant generation. */
260
+ message<M extends UIMessage>(message: M): ProtocolInput<M, "ai.message.created" | "ai.generation.requested">[];
261
+ /** Record a message without requesting a generation. */
262
+ seed<M extends UIMessage>(message: M): ProtocolInput<M, "ai.message.created">[];
263
+ /** Answer an AI SDK tool approval and request continuation. */
264
+ approval(response: ApprovalRespondedPayload): ProtocolInput<UIMessage, "ai.approval.responded" | "ai.generation.requested">[];
265
+ /** Answer an application-defined input request and request continuation. */
266
+ input(response: InputRespondedPayload): ProtocolInput<UIMessage, "ai.input.responded" | "ai.generation.requested">[];
267
+ /** Record an application-defined request for input. */
268
+ requestInput(request: InputRequestedPayload): ProtocolInput<UIMessage, "ai.input.requested">[];
269
+ /** Request a fresh attempt for a failed response. */
270
+ retry(options: RetryGenerationOptions): ProtocolInput<UIMessage, "ai.generation.requested">[];
271
+ /** Interrupt the active response for a message. */
272
+ interrupt(interruption: MessageInterruptedPayload): ProtocolInput<UIMessage, "ai.message.interrupted">[];
273
+ };
274
+ /** Pure append inputs for the built-in AI protocol. */
275
+ declare const inputs: AIInputs;
276
+ /**
277
+ * Define an agent: built-in AI protocol + application events and one state
278
+ * reducer. The result is isomorphic.
279
+ */
280
+ declare function agent<M extends UIMessage = UIMessage, E extends EventDefs = Record<never, never>>(options: AgentOptions<M, E>): AgentDefinition<M, AIEventDefs<M> & E>;
281
+ //#endregion
282
+ export { AIEventDefs, AIInputs, AIState, ActiveGeneration, ActiveGenerationProjection, AgentDefinition, AgentOptions, AgentStatus, ApprovalRequestedPayload, ApprovalRespondedPayload, CompactionCompletedPayload, CompactionRequestedPayload, CompactionState, type FinishReason, GenerationCompletedPayload, GenerationFailedPayload, GenerationProgressPayload, GenerationReason, GenerationRequestedPayload, GenerationStartedPayload, GenerationUsage, InputRequestedPayload, InputRespondedPayload, type JSONValue, type LanguageModelUsage, MessageCompletedPayload, MessageCreatedPayload, MessageInterruptedPayload, PendingApproval, PendingInput, RetryGenerationOptions, SessionClosedPayload, SessionCreatedPayload, ToolActivity, ToolCalledPayload, ToolResultPayload, type UIMessage, type UIMessageChunk, agent, createEvents, createReducer, deriveUIMessages, events, inputs, reduceAIState };