veryfront 0.1.223 → 0.1.224

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.223",
3
+ "version": "0.1.224",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "workspace": [
@@ -55,6 +55,12 @@ export declare const AgUiDetachedStartAcceptedSchema: z.ZodObject<{
55
55
  }, z.core.$strip>;
56
56
  export type AgUiDetachedStartRequest = z.infer<typeof AgUiDetachedStartRequestSchema>;
57
57
  export type AgUiDetachedStartAccepted = z.infer<typeof AgUiDetachedStartAcceptedSchema>;
58
+ export interface ExecuteAgUiDetachedStartInput {
59
+ request: AgUiDetachedStartRequest;
60
+ rawRequest?: Request;
61
+ requestOrCtx?: unknown;
62
+ context?: Record<string, unknown>;
63
+ }
58
64
  interface AgUiDetachedStartExecutionInput {
59
65
  request: AgUiDetachedStartRequest;
60
66
  requestOrCtx: unknown;
@@ -93,6 +99,7 @@ export type AgUiDetachedStartHandlerOptions = (AgUiDetachedStartHandlerOptionsBa
93
99
  agent?: undefined;
94
100
  startDetachedExecution: AgUiDetachedExecutionStarter;
95
101
  });
102
+ export declare function executeAgUiDetachedStart(options: AgUiDetachedStartHandlerOptions, input: ExecuteAgUiDetachedStartInput): Promise<Response>;
96
103
  export declare function createAgUiDetachedStartHandler(options: AgUiDetachedStartHandlerOptions): (requestOrCtx: unknown) => Promise<Response>;
97
104
  export {};
98
105
  //# sourceMappingURL=ag-ui-detached-start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ag-ui-detached-start.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-detached-start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIxC,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,gBAAgB,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AA8IvF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;iBAK1C,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,UAAU,+BAA+B;IACvC,OAAO,EAAE,wBAAwB,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,KAAK,4BAA4B,GAAG,CAClC,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,UAAU,mCAAmC;IAC3C,cAAc,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACzD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;IACtD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QACnB,OAAO,EAAE,wBAAwB,CAAC;QAClC,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QACpB,OAAO,EAAE,wBAAwB,CAAC;QAClC,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChG;AAED,MAAM,MAAM,+BAA+B,GACvC,CAAC,mCAAmC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,GACxD,CAAC,mCAAmC,GAAG;IACvC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sBAAsB,EAAE,4BAA4B,CAAC;CACtD,CAAC,CAAC;AA0BL,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,+BAA+B,GACvC,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAwH9C"}
1
+ {"version":3,"file":"ag-ui-detached-start.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-detached-start.ts"],"names":[],"mappings":"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"}
@@ -84,12 +84,6 @@ function buildMergedTools(agent, request, sessionManager) {
84
84
  }
85
85
  return { ...agent.config.tools, ...injectedTools };
86
86
  }
87
- async function resolveContextValue(value, request) {
88
- if (typeof value === "function") {
89
- return await value(request);
90
- }
91
- return value ?? {};
92
- }
93
87
  function scheduleDetachedTask(requestOrCtx, task) {
94
88
  if (typeof requestOrCtx === "object" &&
95
89
  requestOrCtx !== null &&
@@ -123,6 +117,111 @@ async function startDefaultDetachedExecution(input) {
123
117
  const runtimeStream = await runtime.stream(normalizeAgUiMessages(input.request.messages), buildStreamContext(input.request, input.context, input.request.threadId, input.request.runId), undefined, input.request.model, input.request.maxOutputTokens, input.abortSignal);
124
118
  await drainRuntimeStream(runtimeStream);
125
119
  }
120
+ async function resolveDetachedStartContext(options, input) {
121
+ if (input.context) {
122
+ return input.context;
123
+ }
124
+ if (!options.context) {
125
+ return {};
126
+ }
127
+ if (typeof options.context === "function") {
128
+ if (!input.rawRequest) {
129
+ throw INVALID_ARGUMENT.create({
130
+ detail: "executeAgUiDetachedStart requires rawRequest when options.context is a function.",
131
+ });
132
+ }
133
+ return await options.context(input.rawRequest);
134
+ }
135
+ return options.context;
136
+ }
137
+ function assertDetachedStartRawRequest(options, input) {
138
+ if (!options.startDetachedExecution) {
139
+ return input.rawRequest;
140
+ }
141
+ if (input.rawRequest) {
142
+ return input.rawRequest;
143
+ }
144
+ throw INVALID_ARGUMENT.create({
145
+ detail: "executeAgUiDetachedStart requires rawRequest when options.startDetachedExecution is used.",
146
+ });
147
+ }
148
+ export async function executeAgUiDetachedStart(options, input) {
149
+ const rawRequest = assertDetachedStartRawRequest(options, input);
150
+ const context = await resolveDetachedStartContext(options, input);
151
+ try {
152
+ const abortSignal = options.sessionManager.startRun({
153
+ runId: input.request.runId,
154
+ threadId: input.request.threadId,
155
+ });
156
+ await options.onAccepted?.({
157
+ request: input.request,
158
+ runId: input.request.runId,
159
+ threadId: input.request.threadId,
160
+ });
161
+ const detachedTask = (async () => {
162
+ try {
163
+ if (options.startDetachedExecution) {
164
+ await options.startDetachedExecution({
165
+ request: input.request,
166
+ requestOrCtx: input.requestOrCtx,
167
+ rawRequest: rawRequest,
168
+ context,
169
+ abortSignal,
170
+ });
171
+ }
172
+ else if (options.agent) {
173
+ await startDefaultDetachedExecution({
174
+ agent: options.agent,
175
+ request: input.request,
176
+ context,
177
+ abortSignal,
178
+ sessionManager: options.sessionManager,
179
+ });
180
+ }
181
+ else {
182
+ throw new Error("Detached AG-UI start configuration became invalid during execution.");
183
+ }
184
+ options.sessionManager.completeRun(input.request.runId);
185
+ await options.onFinish?.({
186
+ runId: input.request.runId,
187
+ threadId: input.request.threadId,
188
+ });
189
+ }
190
+ catch (error) {
191
+ options.sessionManager.failRun(input.request.runId);
192
+ await options.onError?.({
193
+ runId: input.request.runId,
194
+ threadId: input.request.threadId,
195
+ error,
196
+ });
197
+ }
198
+ })().catch(() => undefined);
199
+ scheduleDetachedTask(input.requestOrCtx, detachedTask);
200
+ return Response.json({
201
+ accepted: true,
202
+ duplicate: false,
203
+ runId: input.request.runId,
204
+ threadId: input.request.threadId,
205
+ }, { status: 202 });
206
+ }
207
+ catch (error) {
208
+ if (error instanceof RunAlreadyExistsError) {
209
+ await options.onDuplicate?.({
210
+ request: input.request,
211
+ runId: input.request.runId,
212
+ threadId: input.request.threadId,
213
+ });
214
+ return Response.json({
215
+ accepted: true,
216
+ duplicate: true,
217
+ runId: input.request.runId,
218
+ threadId: input.request.threadId,
219
+ }, { status: 202 });
220
+ }
221
+ options.sessionManager.failRun(input.request.runId);
222
+ throw error;
223
+ }
224
+ }
126
225
  export function createAgUiDetachedStartHandler(options) {
127
226
  if (!options.agent && !options.startDetachedExecution) {
128
227
  throw new Error("Detached AG-UI start requires either an agent or startDetachedExecution handler.");
@@ -131,80 +230,11 @@ export function createAgUiDetachedStartHandler(options) {
131
230
  const request = extractRequest(requestOrCtx);
132
231
  try {
133
232
  const parsed = AgUiDetachedStartRequestSchema.parse(await request.json());
134
- const context = await resolveContextValue(options.context, request);
135
- try {
136
- const abortSignal = options.sessionManager.startRun({
137
- runId: parsed.runId,
138
- threadId: parsed.threadId,
139
- });
140
- await options.onAccepted?.({
141
- request: parsed,
142
- runId: parsed.runId,
143
- threadId: parsed.threadId,
144
- });
145
- const detachedTask = (async () => {
146
- try {
147
- if (options.startDetachedExecution) {
148
- await options.startDetachedExecution({
149
- request: parsed,
150
- requestOrCtx,
151
- rawRequest: request,
152
- context,
153
- abortSignal,
154
- });
155
- }
156
- else if (options.agent) {
157
- await startDefaultDetachedExecution({
158
- agent: options.agent,
159
- request: parsed,
160
- context,
161
- abortSignal,
162
- sessionManager: options.sessionManager,
163
- });
164
- }
165
- else {
166
- throw new Error("Detached AG-UI start configuration became invalid during execution.");
167
- }
168
- options.sessionManager.completeRun(parsed.runId);
169
- await options.onFinish?.({
170
- runId: parsed.runId,
171
- threadId: parsed.threadId,
172
- });
173
- }
174
- catch (error) {
175
- options.sessionManager.failRun(parsed.runId);
176
- await options.onError?.({
177
- runId: parsed.runId,
178
- threadId: parsed.threadId,
179
- error,
180
- });
181
- }
182
- })().catch(() => undefined);
183
- scheduleDetachedTask(requestOrCtx, detachedTask);
184
- return Response.json({
185
- accepted: true,
186
- duplicate: false,
187
- runId: parsed.runId,
188
- threadId: parsed.threadId,
189
- }, { status: 202 });
190
- }
191
- catch (error) {
192
- if (error instanceof RunAlreadyExistsError) {
193
- await options.onDuplicate?.({
194
- request: parsed,
195
- runId: parsed.runId,
196
- threadId: parsed.threadId,
197
- });
198
- return Response.json({
199
- accepted: true,
200
- duplicate: true,
201
- runId: parsed.runId,
202
- threadId: parsed.threadId,
203
- }, { status: 202 });
204
- }
205
- options.sessionManager.failRun(parsed.runId);
206
- throw error;
207
- }
233
+ return await executeAgUiDetachedStart(options, {
234
+ request: parsed,
235
+ rawRequest: request,
236
+ requestOrCtx,
237
+ });
208
238
  }
209
239
  catch (error) {
210
240
  if (error instanceof z.ZodError) {
@@ -90,7 +90,7 @@ export { normalizeAgUiRuntimeMessages } from "./ag-ui-runtime-support.js";
90
90
  export { type AgUiBrowserEncodedEvent, type AgUiBrowserEncoderState, type AgUiBrowserRunFinishedMetadata, type AgUiRuntimeStreamEvent, createAgUiBrowserEncoderState, finalizeAgUiBrowserEvents, mapRuntimeStreamEventToAgUiBrowserEvents, } from "./ag-ui-browser-encoder.js";
91
91
  export { mergeToolCallInput, mergeToolInputDelta, parseDataStreamSseEvents, parseToolInputObject, streamDataStreamEvents, stripLeadingEmptyObjectPlaceholder, } from "./data-stream.js";
92
92
  export { expandAllowedRemoteToolNames, getProviderNativeToolNames, type ProviderNativeToolInventoryOptions, } from "./provider-native-tool-inventory.js";
93
- export { type AgUiDetachedStartAccepted, AgUiDetachedStartAcceptedSchema, type AgUiDetachedStartHandlerOptions, type AgUiDetachedStartRequest, AgUiDetachedStartRequestSchema, createAgUiDetachedStartHandler, } from "./ag-ui-detached-start.js";
93
+ export { type AgUiDetachedStartAccepted, AgUiDetachedStartAcceptedSchema, type AgUiDetachedStartHandlerOptions, type AgUiDetachedStartRequest, AgUiDetachedStartRequestSchema, createAgUiDetachedStartHandler, executeAgUiDetachedStart, type ExecuteAgUiDetachedStartInput, } from "./ag-ui-detached-start.js";
94
94
  export { type AgUiCancelHandlerOptions, type AgUiResumeHandlerOptions, type AgUiResumeSignal, AgUiResumeSignalSchema, createAgUiCancelHandler, createAgUiResumeHandler, } from "./ag-ui-run-control.js";
95
95
  export { type AgUiSseEvent, createAgUiRunErrorEvent, createAgUiSseErrorResponse, normalizeAgUiMessages, parseAgUiRequest, parseAgUiRequestOrError, } from "./ag-ui-host-support.js";
96
96
  export { type AgUiContextItem, type AgUiHandlerConfigWithAgent, type AgUiHandlerOptions, type AgUiInjectedTool, type AgUiRequest, AgUiRequestSchema, createAgUiHandler, } from "./ag-ui-handler.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/agent/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/agent/index.ts"],"names":[],"mappings":"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"}
@@ -89,7 +89,7 @@ export { normalizeAgUiRuntimeMessages } from "./ag-ui-runtime-support.js";
89
89
  export { createAgUiBrowserEncoderState, finalizeAgUiBrowserEvents, mapRuntimeStreamEventToAgUiBrowserEvents, } from "./ag-ui-browser-encoder.js";
90
90
  export { mergeToolCallInput, mergeToolInputDelta, parseDataStreamSseEvents, parseToolInputObject, streamDataStreamEvents, stripLeadingEmptyObjectPlaceholder, } from "./data-stream.js";
91
91
  export { expandAllowedRemoteToolNames, getProviderNativeToolNames, } from "./provider-native-tool-inventory.js";
92
- export { AgUiDetachedStartAcceptedSchema, AgUiDetachedStartRequestSchema, createAgUiDetachedStartHandler, } from "./ag-ui-detached-start.js";
92
+ export { AgUiDetachedStartAcceptedSchema, AgUiDetachedStartRequestSchema, createAgUiDetachedStartHandler, executeAgUiDetachedStart, } from "./ag-ui-detached-start.js";
93
93
  export { AgUiResumeSignalSchema, createAgUiCancelHandler, createAgUiResumeHandler, } from "./ag-ui-run-control.js";
94
94
  export { createAgUiRunErrorEvent, createAgUiSseErrorResponse, normalizeAgUiMessages, parseAgUiRequest, parseAgUiRequestOrError, } from "./ag-ui-host-support.js";
95
95
  export { AgUiRequestSchema, createAgUiHandler, } from "./ag-ui-handler.js";
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.223";
1
+ export declare const VERSION = "0.1.224";
2
2
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
- export const VERSION = "0.1.223";
3
+ export const VERSION = "0.1.224";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.223",
3
+ "version": "0.1.224",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",
package/src/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.223",
3
+ "version": "0.1.224",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "workspace": [
@@ -133,17 +133,6 @@ function buildMergedTools(
133
133
  return { ...agent.config.tools, ...injectedTools };
134
134
  }
135
135
 
136
- async function resolveContextValue(
137
- value: AgUiContextValue | undefined,
138
- request: Request,
139
- ): Promise<Record<string, unknown>> {
140
- if (typeof value === "function") {
141
- return await value(request);
142
- }
143
-
144
- return value ?? {};
145
- }
146
-
147
136
  function scheduleDetachedTask(requestOrCtx: unknown, task: Promise<void>): void {
148
137
  if (
149
138
  typeof requestOrCtx === "object" &&
@@ -181,6 +170,13 @@ export const AgUiDetachedStartAcceptedSchema = z.object({
181
170
  export type AgUiDetachedStartRequest = z.infer<typeof AgUiDetachedStartRequestSchema>;
182
171
  export type AgUiDetachedStartAccepted = z.infer<typeof AgUiDetachedStartAcceptedSchema>;
183
172
 
173
+ export interface ExecuteAgUiDetachedStartInput {
174
+ request: AgUiDetachedStartRequest;
175
+ rawRequest?: Request;
176
+ requestOrCtx?: unknown;
177
+ context?: Record<string, unknown>;
178
+ }
179
+
184
180
  interface AgUiDetachedStartExecutionInput {
185
181
  request: AgUiDetachedStartRequest;
186
182
  requestOrCtx: unknown;
@@ -242,6 +238,142 @@ async function startDefaultDetachedExecution(input: {
242
238
  await drainRuntimeStream(runtimeStream);
243
239
  }
244
240
 
241
+ async function resolveDetachedStartContext(
242
+ options: AgUiDetachedStartHandlerOptions,
243
+ input: ExecuteAgUiDetachedStartInput,
244
+ ): Promise<Record<string, unknown>> {
245
+ if (input.context) {
246
+ return input.context;
247
+ }
248
+
249
+ if (!options.context) {
250
+ return {};
251
+ }
252
+
253
+ if (typeof options.context === "function") {
254
+ if (!input.rawRequest) {
255
+ throw INVALID_ARGUMENT.create({
256
+ detail: "executeAgUiDetachedStart requires rawRequest when options.context is a function.",
257
+ });
258
+ }
259
+
260
+ return await options.context(input.rawRequest);
261
+ }
262
+
263
+ return options.context;
264
+ }
265
+
266
+ function assertDetachedStartRawRequest(
267
+ options: AgUiDetachedStartHandlerOptions,
268
+ input: ExecuteAgUiDetachedStartInput,
269
+ ): Request | undefined {
270
+ if (!options.startDetachedExecution) {
271
+ return input.rawRequest;
272
+ }
273
+
274
+ if (input.rawRequest) {
275
+ return input.rawRequest;
276
+ }
277
+
278
+ throw INVALID_ARGUMENT.create({
279
+ detail:
280
+ "executeAgUiDetachedStart requires rawRequest when options.startDetachedExecution is used.",
281
+ });
282
+ }
283
+
284
+ export async function executeAgUiDetachedStart(
285
+ options: AgUiDetachedStartHandlerOptions,
286
+ input: ExecuteAgUiDetachedStartInput,
287
+ ): Promise<Response> {
288
+ const rawRequest = assertDetachedStartRawRequest(options, input);
289
+ const context = await resolveDetachedStartContext(options, input);
290
+
291
+ try {
292
+ const abortSignal = options.sessionManager.startRun({
293
+ runId: input.request.runId,
294
+ threadId: input.request.threadId,
295
+ });
296
+
297
+ await options.onAccepted?.({
298
+ request: input.request,
299
+ runId: input.request.runId,
300
+ threadId: input.request.threadId,
301
+ });
302
+
303
+ const detachedTask = (async () => {
304
+ try {
305
+ if (options.startDetachedExecution) {
306
+ await options.startDetachedExecution({
307
+ request: input.request,
308
+ requestOrCtx: input.requestOrCtx,
309
+ rawRequest: rawRequest!,
310
+ context,
311
+ abortSignal,
312
+ });
313
+ } else if (options.agent) {
314
+ await startDefaultDetachedExecution({
315
+ agent: options.agent,
316
+ request: input.request,
317
+ context,
318
+ abortSignal,
319
+ sessionManager: options.sessionManager,
320
+ });
321
+ } else {
322
+ throw new Error(
323
+ "Detached AG-UI start configuration became invalid during execution.",
324
+ );
325
+ }
326
+
327
+ options.sessionManager.completeRun(input.request.runId);
328
+ await options.onFinish?.({
329
+ runId: input.request.runId,
330
+ threadId: input.request.threadId,
331
+ });
332
+ } catch (error) {
333
+ options.sessionManager.failRun(input.request.runId);
334
+ await options.onError?.({
335
+ runId: input.request.runId,
336
+ threadId: input.request.threadId,
337
+ error,
338
+ });
339
+ }
340
+ })().catch(() => undefined);
341
+
342
+ scheduleDetachedTask(input.requestOrCtx, detachedTask);
343
+
344
+ return Response.json(
345
+ {
346
+ accepted: true,
347
+ duplicate: false,
348
+ runId: input.request.runId,
349
+ threadId: input.request.threadId,
350
+ } satisfies AgUiDetachedStartAccepted,
351
+ { status: 202 },
352
+ );
353
+ } catch (error) {
354
+ if (error instanceof RunAlreadyExistsError) {
355
+ await options.onDuplicate?.({
356
+ request: input.request,
357
+ runId: input.request.runId,
358
+ threadId: input.request.threadId,
359
+ });
360
+
361
+ return Response.json(
362
+ {
363
+ accepted: true,
364
+ duplicate: true,
365
+ runId: input.request.runId,
366
+ threadId: input.request.threadId,
367
+ } satisfies AgUiDetachedStartAccepted,
368
+ { status: 202 },
369
+ );
370
+ }
371
+
372
+ options.sessionManager.failRun(input.request.runId);
373
+ throw error;
374
+ }
375
+ }
376
+
245
377
  export function createAgUiDetachedStartHandler(
246
378
  options: AgUiDetachedStartHandlerOptions,
247
379
  ): (requestOrCtx: unknown) => Promise<Response> {
@@ -256,92 +388,11 @@ export function createAgUiDetachedStartHandler(
256
388
 
257
389
  try {
258
390
  const parsed = AgUiDetachedStartRequestSchema.parse(await request.json());
259
- const context = await resolveContextValue(options.context, request);
260
-
261
- try {
262
- const abortSignal = options.sessionManager.startRun({
263
- runId: parsed.runId,
264
- threadId: parsed.threadId,
265
- });
266
-
267
- await options.onAccepted?.({
268
- request: parsed,
269
- runId: parsed.runId,
270
- threadId: parsed.threadId,
271
- });
272
-
273
- const detachedTask = (async () => {
274
- try {
275
- if (options.startDetachedExecution) {
276
- await options.startDetachedExecution({
277
- request: parsed,
278
- requestOrCtx,
279
- rawRequest: request,
280
- context,
281
- abortSignal,
282
- });
283
- } else if (options.agent) {
284
- await startDefaultDetachedExecution({
285
- agent: options.agent,
286
- request: parsed,
287
- context,
288
- abortSignal,
289
- sessionManager: options.sessionManager,
290
- });
291
- } else {
292
- throw new Error(
293
- "Detached AG-UI start configuration became invalid during execution.",
294
- );
295
- }
296
-
297
- options.sessionManager.completeRun(parsed.runId);
298
- await options.onFinish?.({
299
- runId: parsed.runId,
300
- threadId: parsed.threadId,
301
- });
302
- } catch (error) {
303
- options.sessionManager.failRun(parsed.runId);
304
- await options.onError?.({
305
- runId: parsed.runId,
306
- threadId: parsed.threadId,
307
- error,
308
- });
309
- }
310
- })().catch(() => undefined);
311
-
312
- scheduleDetachedTask(requestOrCtx, detachedTask);
313
-
314
- return Response.json(
315
- {
316
- accepted: true,
317
- duplicate: false,
318
- runId: parsed.runId,
319
- threadId: parsed.threadId,
320
- } satisfies AgUiDetachedStartAccepted,
321
- { status: 202 },
322
- );
323
- } catch (error) {
324
- if (error instanceof RunAlreadyExistsError) {
325
- await options.onDuplicate?.({
326
- request: parsed,
327
- runId: parsed.runId,
328
- threadId: parsed.threadId,
329
- });
330
-
331
- return Response.json(
332
- {
333
- accepted: true,
334
- duplicate: true,
335
- runId: parsed.runId,
336
- threadId: parsed.threadId,
337
- } satisfies AgUiDetachedStartAccepted,
338
- { status: 202 },
339
- );
340
- }
341
-
342
- options.sessionManager.failRun(parsed.runId);
343
- throw error;
344
- }
391
+ return await executeAgUiDetachedStart(options, {
392
+ request: parsed,
393
+ rawRequest: request,
394
+ requestOrCtx,
395
+ });
345
396
  } catch (error) {
346
397
  if (error instanceof z.ZodError) {
347
398
  return Response.json(
@@ -191,6 +191,8 @@ export {
191
191
  type AgUiDetachedStartRequest,
192
192
  AgUiDetachedStartRequestSchema,
193
193
  createAgUiDetachedStartHandler,
194
+ executeAgUiDetachedStart,
195
+ type ExecuteAgUiDetachedStartInput,
194
196
  } from "./ag-ui-detached-start.js";
195
197
  export {
196
198
  type AgUiCancelHandlerOptions,
@@ -1,3 +1,3 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
- export const VERSION = "0.1.223";
3
+ export const VERSION = "0.1.224";