@upstash/workflow 0.2.11 → 0.2.12
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/astro.d.mts +2 -2
- package/astro.d.ts +2 -2
- package/astro.js +69 -45
- package/astro.mjs +1 -1
- package/{chunk-WQAJ2RSZ.mjs → chunk-4GTHIL7S.mjs} +69 -45
- package/cloudflare.d.mts +2 -2
- package/cloudflare.d.ts +2 -2
- package/cloudflare.js +69 -45
- package/cloudflare.mjs +1 -1
- package/express.d.mts +2 -2
- package/express.d.ts +2 -2
- package/express.js +69 -45
- package/express.mjs +1 -1
- package/h3.d.mts +2 -2
- package/h3.d.ts +2 -2
- package/h3.js +69 -45
- package/h3.mjs +1 -1
- package/hono.d.mts +2 -2
- package/hono.d.ts +2 -2
- package/hono.js +69 -45
- package/hono.mjs +1 -1
- package/index.d.mts +8 -4
- package/index.d.ts +8 -4
- package/index.js +69 -45
- package/index.mjs +1 -1
- package/nextjs.d.mts +2 -2
- package/nextjs.d.ts +2 -2
- package/nextjs.js +69 -45
- package/nextjs.mjs +1 -1
- package/package.json +1 -1
- package/{serve-many-DNnLsDIp.d.ts → serve-many-BdMq5rFX.d.ts} +1 -1
- package/{serve-many-Fuovl7gl.d.mts → serve-many-DLguU9iR.d.mts} +1 -1
- package/solidjs.d.mts +1 -1
- package/solidjs.d.ts +1 -1
- package/solidjs.js +69 -45
- package/solidjs.mjs +1 -1
- package/svelte.d.mts +2 -2
- package/svelte.d.ts +2 -2
- package/svelte.js +69 -45
- package/svelte.mjs +1 -1
- package/{types-DS9q8FyV.d.ts → types-D1W0VOpy.d.mts} +56 -41
- package/{types-DS9q8FyV.d.mts → types-D1W0VOpy.d.ts} +56 -41
package/express.js
CHANGED
|
@@ -23806,7 +23806,7 @@ var formatWorkflowError = (error) => {
|
|
|
23806
23806
|
message: error.message
|
|
23807
23807
|
} : {
|
|
23808
23808
|
error: "Error",
|
|
23809
|
-
message:
|
|
23809
|
+
message: `An error occured while executing workflow: '${typeof error === "string" ? error : JSON.stringify(error)}'`
|
|
23810
23810
|
};
|
|
23811
23811
|
};
|
|
23812
23812
|
|
|
@@ -25706,6 +25706,9 @@ var WorkflowApi = class extends BaseWorkflowApi {
|
|
|
25706
25706
|
}
|
|
25707
25707
|
};
|
|
25708
25708
|
|
|
25709
|
+
// src/agents/index.ts
|
|
25710
|
+
var import_openai3 = require("@ai-sdk/openai");
|
|
25711
|
+
|
|
25709
25712
|
// src/agents/adapters.ts
|
|
25710
25713
|
var import_openai2 = require("@ai-sdk/openai");
|
|
25711
25714
|
var import_ai = require("ai");
|
|
@@ -25725,46 +25728,49 @@ you need from that agent.
|
|
|
25725
25728
|
`;
|
|
25726
25729
|
|
|
25727
25730
|
// src/agents/adapters.ts
|
|
25728
|
-
var
|
|
25729
|
-
const
|
|
25730
|
-
|
|
25731
|
-
|
|
25732
|
-
|
|
25733
|
-
|
|
25734
|
-
|
|
25735
|
-
|
|
25736
|
-
|
|
25737
|
-
|
|
25738
|
-
|
|
25739
|
-
|
|
25740
|
-
|
|
25741
|
-
|
|
25742
|
-
|
|
25743
|
-
|
|
25744
|
-
|
|
25745
|
-
|
|
25746
|
-
|
|
25747
|
-
|
|
25748
|
-
|
|
25749
|
-
|
|
25750
|
-
|
|
25751
|
-
|
|
25752
|
-
|
|
25753
|
-
|
|
25754
|
-
|
|
25755
|
-
|
|
25756
|
-
|
|
25757
|
-
|
|
25758
|
-
|
|
25759
|
-
|
|
25760
|
-
if (error instanceof Error && error.name === "WorkflowAbort") {
|
|
25761
|
-
throw error;
|
|
25762
|
-
} else {
|
|
25763
|
-
console.error("Error in fetch implementation:", error);
|
|
25764
|
-
throw error;
|
|
25765
|
-
}
|
|
25766
|
-
}
|
|
25731
|
+
var fetchWithContextCall = async (context, ...params) => {
|
|
25732
|
+
const [input, init] = params;
|
|
25733
|
+
try {
|
|
25734
|
+
const headers = init?.headers ? Object.fromEntries(new Headers(init.headers).entries()) : {};
|
|
25735
|
+
const body = init?.body ? JSON.parse(init.body) : void 0;
|
|
25736
|
+
const agentName = headers[AGENT_NAME_HEADER];
|
|
25737
|
+
const stepName = agentName ? `Call Agent ${agentName}` : "Call Agent";
|
|
25738
|
+
const responseInfo = await context.call(stepName, {
|
|
25739
|
+
url: input.toString(),
|
|
25740
|
+
method: init?.method,
|
|
25741
|
+
headers,
|
|
25742
|
+
body
|
|
25743
|
+
});
|
|
25744
|
+
const responseHeaders = new Headers(
|
|
25745
|
+
Object.entries(responseInfo.header).reduce(
|
|
25746
|
+
(acc, [key, values]) => {
|
|
25747
|
+
acc[key] = values.join(", ");
|
|
25748
|
+
return acc;
|
|
25749
|
+
},
|
|
25750
|
+
{}
|
|
25751
|
+
)
|
|
25752
|
+
);
|
|
25753
|
+
return new Response(JSON.stringify(responseInfo.body), {
|
|
25754
|
+
status: responseInfo.status,
|
|
25755
|
+
headers: responseHeaders
|
|
25756
|
+
});
|
|
25757
|
+
} catch (error) {
|
|
25758
|
+
if (error instanceof Error && error.name === "WorkflowAbort") {
|
|
25759
|
+
throw error;
|
|
25760
|
+
} else {
|
|
25761
|
+
console.error("Error in fetch implementation:", error);
|
|
25762
|
+
throw error;
|
|
25767
25763
|
}
|
|
25764
|
+
}
|
|
25765
|
+
};
|
|
25766
|
+
var createWorkflowModel = ({
|
|
25767
|
+
context,
|
|
25768
|
+
provider,
|
|
25769
|
+
providerParams
|
|
25770
|
+
}) => {
|
|
25771
|
+
return provider({
|
|
25772
|
+
fetch: (...params) => fetchWithContextCall(context, ...params),
|
|
25773
|
+
...providerParams
|
|
25768
25774
|
});
|
|
25769
25775
|
};
|
|
25770
25776
|
var wrapTools = ({
|
|
@@ -26004,9 +26010,14 @@ var WorkflowAgents = class {
|
|
|
26004
26010
|
openai(...params) {
|
|
26005
26011
|
const [model, settings] = params;
|
|
26006
26012
|
const { baseURL, apiKey, ...otherSettings } = settings ?? {};
|
|
26007
|
-
const
|
|
26008
|
-
|
|
26013
|
+
const openaiModel = this.AISDKModel({
|
|
26014
|
+
context: this.context,
|
|
26015
|
+
provider: import_openai3.createOpenAI,
|
|
26016
|
+
providerParams: { baseURL, apiKey, compatibility: "strict" }
|
|
26017
|
+
});
|
|
26018
|
+
return openaiModel(model, otherSettings);
|
|
26009
26019
|
}
|
|
26020
|
+
AISDKModel = createWorkflowModel;
|
|
26010
26021
|
};
|
|
26011
26022
|
|
|
26012
26023
|
// src/context/context.ts
|
|
@@ -26729,6 +26740,7 @@ var processOptions = (options) => {
|
|
|
26729
26740
|
retries: DEFAULT_RETRIES,
|
|
26730
26741
|
useJSONContent: false,
|
|
26731
26742
|
disableTelemetry: false,
|
|
26743
|
+
onError: console.error,
|
|
26732
26744
|
...options
|
|
26733
26745
|
};
|
|
26734
26746
|
};
|
|
@@ -26778,7 +26790,8 @@ var serveBase = (routeFunction, telemetry2, options) => {
|
|
|
26778
26790
|
retries,
|
|
26779
26791
|
useJSONContent,
|
|
26780
26792
|
disableTelemetry,
|
|
26781
|
-
flowControl
|
|
26793
|
+
flowControl,
|
|
26794
|
+
onError
|
|
26782
26795
|
} = processOptions(options);
|
|
26783
26796
|
telemetry2 = disableTelemetry ? void 0 : telemetry2;
|
|
26784
26797
|
const debug = WorkflowLogger.getLogger(verbose);
|
|
@@ -26907,8 +26920,19 @@ var serveBase = (routeFunction, telemetry2, options) => {
|
|
|
26907
26920
|
try {
|
|
26908
26921
|
return await handler(request);
|
|
26909
26922
|
} catch (error) {
|
|
26910
|
-
|
|
26911
|
-
|
|
26923
|
+
const formattedError = formatWorkflowError(error);
|
|
26924
|
+
try {
|
|
26925
|
+
onError?.(error);
|
|
26926
|
+
} catch (onErrorError) {
|
|
26927
|
+
const formattedOnErrorError = formatWorkflowError(onErrorError);
|
|
26928
|
+
const errorMessage = `Error while running onError callback: '${formattedOnErrorError.message}'.
|
|
26929
|
+
Original error: '${formattedError.message}'`;
|
|
26930
|
+
console.error(errorMessage);
|
|
26931
|
+
return new Response(errorMessage, {
|
|
26932
|
+
status: 500
|
|
26933
|
+
});
|
|
26934
|
+
}
|
|
26935
|
+
return new Response(JSON.stringify(formattedError), {
|
|
26912
26936
|
status: 500
|
|
26913
26937
|
});
|
|
26914
26938
|
}
|
package/express.mjs
CHANGED
package/h3.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as h3 from 'h3';
|
|
2
|
-
import { R as RouteFunction, k as PublicServeOptions, t as InvokableWorkflow } from './types-
|
|
3
|
-
import { s as serveManyBase } from './serve-many-
|
|
2
|
+
import { R as RouteFunction, k as PublicServeOptions, t as InvokableWorkflow } from './types-D1W0VOpy.mjs';
|
|
3
|
+
import { s as serveManyBase } from './serve-many-DLguU9iR.mjs';
|
|
4
4
|
import '@upstash/qstash';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import 'ai';
|
package/h3.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as h3 from 'h3';
|
|
2
|
-
import { R as RouteFunction, k as PublicServeOptions, t as InvokableWorkflow } from './types-
|
|
3
|
-
import { s as serveManyBase } from './serve-many-
|
|
2
|
+
import { R as RouteFunction, k as PublicServeOptions, t as InvokableWorkflow } from './types-D1W0VOpy.js';
|
|
3
|
+
import { s as serveManyBase } from './serve-many-BdMq5rFX.js';
|
|
4
4
|
import '@upstash/qstash';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import 'ai';
|
package/h3.js
CHANGED
|
@@ -446,7 +446,7 @@ var formatWorkflowError = (error) => {
|
|
|
446
446
|
message: error.message
|
|
447
447
|
} : {
|
|
448
448
|
error: "Error",
|
|
449
|
-
message:
|
|
449
|
+
message: `An error occured while executing workflow: '${typeof error === "string" ? error : JSON.stringify(error)}'`
|
|
450
450
|
};
|
|
451
451
|
};
|
|
452
452
|
|
|
@@ -2346,6 +2346,9 @@ var WorkflowApi = class extends BaseWorkflowApi {
|
|
|
2346
2346
|
}
|
|
2347
2347
|
};
|
|
2348
2348
|
|
|
2349
|
+
// src/agents/index.ts
|
|
2350
|
+
var import_openai3 = require("@ai-sdk/openai");
|
|
2351
|
+
|
|
2349
2352
|
// src/agents/adapters.ts
|
|
2350
2353
|
var import_openai2 = require("@ai-sdk/openai");
|
|
2351
2354
|
var import_ai = require("ai");
|
|
@@ -2365,46 +2368,49 @@ you need from that agent.
|
|
|
2365
2368
|
`;
|
|
2366
2369
|
|
|
2367
2370
|
// src/agents/adapters.ts
|
|
2368
|
-
var
|
|
2369
|
-
const
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
if (error instanceof Error && error.name === "WorkflowAbort") {
|
|
2401
|
-
throw error;
|
|
2402
|
-
} else {
|
|
2403
|
-
console.error("Error in fetch implementation:", error);
|
|
2404
|
-
throw error;
|
|
2405
|
-
}
|
|
2406
|
-
}
|
|
2371
|
+
var fetchWithContextCall = async (context, ...params) => {
|
|
2372
|
+
const [input, init] = params;
|
|
2373
|
+
try {
|
|
2374
|
+
const headers = init?.headers ? Object.fromEntries(new Headers(init.headers).entries()) : {};
|
|
2375
|
+
const body = init?.body ? JSON.parse(init.body) : void 0;
|
|
2376
|
+
const agentName = headers[AGENT_NAME_HEADER];
|
|
2377
|
+
const stepName = agentName ? `Call Agent ${agentName}` : "Call Agent";
|
|
2378
|
+
const responseInfo = await context.call(stepName, {
|
|
2379
|
+
url: input.toString(),
|
|
2380
|
+
method: init?.method,
|
|
2381
|
+
headers,
|
|
2382
|
+
body
|
|
2383
|
+
});
|
|
2384
|
+
const responseHeaders = new Headers(
|
|
2385
|
+
Object.entries(responseInfo.header).reduce(
|
|
2386
|
+
(acc, [key, values]) => {
|
|
2387
|
+
acc[key] = values.join(", ");
|
|
2388
|
+
return acc;
|
|
2389
|
+
},
|
|
2390
|
+
{}
|
|
2391
|
+
)
|
|
2392
|
+
);
|
|
2393
|
+
return new Response(JSON.stringify(responseInfo.body), {
|
|
2394
|
+
status: responseInfo.status,
|
|
2395
|
+
headers: responseHeaders
|
|
2396
|
+
});
|
|
2397
|
+
} catch (error) {
|
|
2398
|
+
if (error instanceof Error && error.name === "WorkflowAbort") {
|
|
2399
|
+
throw error;
|
|
2400
|
+
} else {
|
|
2401
|
+
console.error("Error in fetch implementation:", error);
|
|
2402
|
+
throw error;
|
|
2407
2403
|
}
|
|
2404
|
+
}
|
|
2405
|
+
};
|
|
2406
|
+
var createWorkflowModel = ({
|
|
2407
|
+
context,
|
|
2408
|
+
provider,
|
|
2409
|
+
providerParams
|
|
2410
|
+
}) => {
|
|
2411
|
+
return provider({
|
|
2412
|
+
fetch: (...params) => fetchWithContextCall(context, ...params),
|
|
2413
|
+
...providerParams
|
|
2408
2414
|
});
|
|
2409
2415
|
};
|
|
2410
2416
|
var wrapTools = ({
|
|
@@ -2644,9 +2650,14 @@ var WorkflowAgents = class {
|
|
|
2644
2650
|
openai(...params) {
|
|
2645
2651
|
const [model, settings] = params;
|
|
2646
2652
|
const { baseURL, apiKey, ...otherSettings } = settings ?? {};
|
|
2647
|
-
const
|
|
2648
|
-
|
|
2653
|
+
const openaiModel = this.AISDKModel({
|
|
2654
|
+
context: this.context,
|
|
2655
|
+
provider: import_openai3.createOpenAI,
|
|
2656
|
+
providerParams: { baseURL, apiKey, compatibility: "strict" }
|
|
2657
|
+
});
|
|
2658
|
+
return openaiModel(model, otherSettings);
|
|
2649
2659
|
}
|
|
2660
|
+
AISDKModel = createWorkflowModel;
|
|
2650
2661
|
};
|
|
2651
2662
|
|
|
2652
2663
|
// src/context/context.ts
|
|
@@ -3369,6 +3380,7 @@ var processOptions = (options) => {
|
|
|
3369
3380
|
retries: DEFAULT_RETRIES,
|
|
3370
3381
|
useJSONContent: false,
|
|
3371
3382
|
disableTelemetry: false,
|
|
3383
|
+
onError: console.error,
|
|
3372
3384
|
...options
|
|
3373
3385
|
};
|
|
3374
3386
|
};
|
|
@@ -3418,7 +3430,8 @@ var serveBase = (routeFunction, telemetry2, options) => {
|
|
|
3418
3430
|
retries,
|
|
3419
3431
|
useJSONContent,
|
|
3420
3432
|
disableTelemetry,
|
|
3421
|
-
flowControl
|
|
3433
|
+
flowControl,
|
|
3434
|
+
onError
|
|
3422
3435
|
} = processOptions(options);
|
|
3423
3436
|
telemetry2 = disableTelemetry ? void 0 : telemetry2;
|
|
3424
3437
|
const debug = WorkflowLogger.getLogger(verbose);
|
|
@@ -3547,8 +3560,19 @@ var serveBase = (routeFunction, telemetry2, options) => {
|
|
|
3547
3560
|
try {
|
|
3548
3561
|
return await handler(request);
|
|
3549
3562
|
} catch (error) {
|
|
3550
|
-
|
|
3551
|
-
|
|
3563
|
+
const formattedError = formatWorkflowError(error);
|
|
3564
|
+
try {
|
|
3565
|
+
onError?.(error);
|
|
3566
|
+
} catch (onErrorError) {
|
|
3567
|
+
const formattedOnErrorError = formatWorkflowError(onErrorError);
|
|
3568
|
+
const errorMessage = `Error while running onError callback: '${formattedOnErrorError.message}'.
|
|
3569
|
+
Original error: '${formattedError.message}'`;
|
|
3570
|
+
console.error(errorMessage);
|
|
3571
|
+
return new Response(errorMessage, {
|
|
3572
|
+
status: 500
|
|
3573
|
+
});
|
|
3574
|
+
}
|
|
3575
|
+
return new Response(JSON.stringify(formattedError), {
|
|
3552
3576
|
status: 500
|
|
3553
3577
|
});
|
|
3554
3578
|
}
|
package/h3.mjs
CHANGED
package/hono.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Context } from 'hono';
|
|
2
|
-
import { R as RouteFunction, k as PublicServeOptions, t as InvokableWorkflow } from './types-
|
|
2
|
+
import { R as RouteFunction, k as PublicServeOptions, t as InvokableWorkflow } from './types-D1W0VOpy.mjs';
|
|
3
3
|
import { Variables } from 'hono/types';
|
|
4
|
-
import { s as serveManyBase } from './serve-many-
|
|
4
|
+
import { s as serveManyBase } from './serve-many-DLguU9iR.mjs';
|
|
5
5
|
import '@upstash/qstash';
|
|
6
6
|
import 'zod';
|
|
7
7
|
import 'ai';
|
package/hono.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Context } from 'hono';
|
|
2
|
-
import { R as RouteFunction, k as PublicServeOptions, t as InvokableWorkflow } from './types-
|
|
2
|
+
import { R as RouteFunction, k as PublicServeOptions, t as InvokableWorkflow } from './types-D1W0VOpy.js';
|
|
3
3
|
import { Variables } from 'hono/types';
|
|
4
|
-
import { s as serveManyBase } from './serve-many-
|
|
4
|
+
import { s as serveManyBase } from './serve-many-BdMq5rFX.js';
|
|
5
5
|
import '@upstash/qstash';
|
|
6
6
|
import 'zod';
|
|
7
7
|
import 'ai';
|
package/hono.js
CHANGED
|
@@ -134,7 +134,7 @@ var formatWorkflowError = (error) => {
|
|
|
134
134
|
message: error.message
|
|
135
135
|
} : {
|
|
136
136
|
error: "Error",
|
|
137
|
-
message:
|
|
137
|
+
message: `An error occured while executing workflow: '${typeof error === "string" ? error : JSON.stringify(error)}'`
|
|
138
138
|
};
|
|
139
139
|
};
|
|
140
140
|
|
|
@@ -2034,6 +2034,9 @@ var WorkflowApi = class extends BaseWorkflowApi {
|
|
|
2034
2034
|
}
|
|
2035
2035
|
};
|
|
2036
2036
|
|
|
2037
|
+
// src/agents/index.ts
|
|
2038
|
+
var import_openai3 = require("@ai-sdk/openai");
|
|
2039
|
+
|
|
2037
2040
|
// src/agents/adapters.ts
|
|
2038
2041
|
var import_openai2 = require("@ai-sdk/openai");
|
|
2039
2042
|
var import_ai = require("ai");
|
|
@@ -2053,46 +2056,49 @@ you need from that agent.
|
|
|
2053
2056
|
`;
|
|
2054
2057
|
|
|
2055
2058
|
// src/agents/adapters.ts
|
|
2056
|
-
var
|
|
2057
|
-
const
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
if (error instanceof Error && error.name === "WorkflowAbort") {
|
|
2089
|
-
throw error;
|
|
2090
|
-
} else {
|
|
2091
|
-
console.error("Error in fetch implementation:", error);
|
|
2092
|
-
throw error;
|
|
2093
|
-
}
|
|
2094
|
-
}
|
|
2059
|
+
var fetchWithContextCall = async (context, ...params) => {
|
|
2060
|
+
const [input, init] = params;
|
|
2061
|
+
try {
|
|
2062
|
+
const headers = init?.headers ? Object.fromEntries(new Headers(init.headers).entries()) : {};
|
|
2063
|
+
const body = init?.body ? JSON.parse(init.body) : void 0;
|
|
2064
|
+
const agentName = headers[AGENT_NAME_HEADER];
|
|
2065
|
+
const stepName = agentName ? `Call Agent ${agentName}` : "Call Agent";
|
|
2066
|
+
const responseInfo = await context.call(stepName, {
|
|
2067
|
+
url: input.toString(),
|
|
2068
|
+
method: init?.method,
|
|
2069
|
+
headers,
|
|
2070
|
+
body
|
|
2071
|
+
});
|
|
2072
|
+
const responseHeaders = new Headers(
|
|
2073
|
+
Object.entries(responseInfo.header).reduce(
|
|
2074
|
+
(acc, [key, values]) => {
|
|
2075
|
+
acc[key] = values.join(", ");
|
|
2076
|
+
return acc;
|
|
2077
|
+
},
|
|
2078
|
+
{}
|
|
2079
|
+
)
|
|
2080
|
+
);
|
|
2081
|
+
return new Response(JSON.stringify(responseInfo.body), {
|
|
2082
|
+
status: responseInfo.status,
|
|
2083
|
+
headers: responseHeaders
|
|
2084
|
+
});
|
|
2085
|
+
} catch (error) {
|
|
2086
|
+
if (error instanceof Error && error.name === "WorkflowAbort") {
|
|
2087
|
+
throw error;
|
|
2088
|
+
} else {
|
|
2089
|
+
console.error("Error in fetch implementation:", error);
|
|
2090
|
+
throw error;
|
|
2095
2091
|
}
|
|
2092
|
+
}
|
|
2093
|
+
};
|
|
2094
|
+
var createWorkflowModel = ({
|
|
2095
|
+
context,
|
|
2096
|
+
provider,
|
|
2097
|
+
providerParams
|
|
2098
|
+
}) => {
|
|
2099
|
+
return provider({
|
|
2100
|
+
fetch: (...params) => fetchWithContextCall(context, ...params),
|
|
2101
|
+
...providerParams
|
|
2096
2102
|
});
|
|
2097
2103
|
};
|
|
2098
2104
|
var wrapTools = ({
|
|
@@ -2332,9 +2338,14 @@ var WorkflowAgents = class {
|
|
|
2332
2338
|
openai(...params) {
|
|
2333
2339
|
const [model, settings] = params;
|
|
2334
2340
|
const { baseURL, apiKey, ...otherSettings } = settings ?? {};
|
|
2335
|
-
const
|
|
2336
|
-
|
|
2341
|
+
const openaiModel = this.AISDKModel({
|
|
2342
|
+
context: this.context,
|
|
2343
|
+
provider: import_openai3.createOpenAI,
|
|
2344
|
+
providerParams: { baseURL, apiKey, compatibility: "strict" }
|
|
2345
|
+
});
|
|
2346
|
+
return openaiModel(model, otherSettings);
|
|
2337
2347
|
}
|
|
2348
|
+
AISDKModel = createWorkflowModel;
|
|
2338
2349
|
};
|
|
2339
2350
|
|
|
2340
2351
|
// src/context/context.ts
|
|
@@ -3057,6 +3068,7 @@ var processOptions = (options) => {
|
|
|
3057
3068
|
retries: DEFAULT_RETRIES,
|
|
3058
3069
|
useJSONContent: false,
|
|
3059
3070
|
disableTelemetry: false,
|
|
3071
|
+
onError: console.error,
|
|
3060
3072
|
...options
|
|
3061
3073
|
};
|
|
3062
3074
|
};
|
|
@@ -3106,7 +3118,8 @@ var serveBase = (routeFunction, telemetry2, options) => {
|
|
|
3106
3118
|
retries,
|
|
3107
3119
|
useJSONContent,
|
|
3108
3120
|
disableTelemetry,
|
|
3109
|
-
flowControl
|
|
3121
|
+
flowControl,
|
|
3122
|
+
onError
|
|
3110
3123
|
} = processOptions(options);
|
|
3111
3124
|
telemetry2 = disableTelemetry ? void 0 : telemetry2;
|
|
3112
3125
|
const debug = WorkflowLogger.getLogger(verbose);
|
|
@@ -3235,8 +3248,19 @@ var serveBase = (routeFunction, telemetry2, options) => {
|
|
|
3235
3248
|
try {
|
|
3236
3249
|
return await handler(request);
|
|
3237
3250
|
} catch (error) {
|
|
3238
|
-
|
|
3239
|
-
|
|
3251
|
+
const formattedError = formatWorkflowError(error);
|
|
3252
|
+
try {
|
|
3253
|
+
onError?.(error);
|
|
3254
|
+
} catch (onErrorError) {
|
|
3255
|
+
const formattedOnErrorError = formatWorkflowError(onErrorError);
|
|
3256
|
+
const errorMessage = `Error while running onError callback: '${formattedOnErrorError.message}'.
|
|
3257
|
+
Original error: '${formattedError.message}'`;
|
|
3258
|
+
console.error(errorMessage);
|
|
3259
|
+
return new Response(errorMessage, {
|
|
3260
|
+
status: 500
|
|
3261
|
+
});
|
|
3262
|
+
}
|
|
3263
|
+
return new Response(JSON.stringify(formattedError), {
|
|
3240
3264
|
status: 500
|
|
3241
3265
|
});
|
|
3242
3266
|
}
|
package/hono.mjs
CHANGED
package/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RouteFunction, W as WorkflowServeOptions, E as ExclusiveValidationOptions, T as Telemetry, S as StepType, a as RawStep, N as NotifyResponse, b as Waiter, c as Step } from './types-
|
|
2
|
-
export { A as AsyncStepFunction, C as CallResponse, r as CallSettings, D as Duration, l as FailureFunctionPayload, F as FinishCondition, H as HeaderParams, t as InvokableWorkflow, s as InvokeStepResponse, I as InvokeWorkflowRequest, L as LazyInvokeStepParams, u as LogLevel, p as NotifyStepResponse, P as ParallelCallState, k as PublicServeOptions, m as RequiredExceptFields, j as StepFunction, h as StepTypes, i as SyncStepFunction, q as WaitEventOptions, n as WaitRequest, o as WaitStepResponse, f as WorkflowClient, e as WorkflowContext, w as WorkflowLogger, v as WorkflowLoggerOptions, g as WorkflowReceiver, d as WorkflowTool } from './types-
|
|
1
|
+
import { R as RouteFunction, W as WorkflowServeOptions, E as ExclusiveValidationOptions, T as Telemetry, S as StepType, a as RawStep, N as NotifyResponse, b as Waiter, c as Step } from './types-D1W0VOpy.mjs';
|
|
2
|
+
export { A as AsyncStepFunction, C as CallResponse, r as CallSettings, D as Duration, l as FailureFunctionPayload, F as FinishCondition, H as HeaderParams, t as InvokableWorkflow, s as InvokeStepResponse, I as InvokeWorkflowRequest, L as LazyInvokeStepParams, u as LogLevel, p as NotifyStepResponse, P as ParallelCallState, k as PublicServeOptions, m as RequiredExceptFields, j as StepFunction, h as StepTypes, i as SyncStepFunction, q as WaitEventOptions, n as WaitRequest, o as WaitStepResponse, f as WorkflowClient, e as WorkflowContext, w as WorkflowLogger, v as WorkflowLoggerOptions, g as WorkflowReceiver, d as WorkflowTool } from './types-D1W0VOpy.mjs';
|
|
3
3
|
import { HTTPMethods, State, FlowControl, Client as Client$1, QstashError } from '@upstash/qstash';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import 'ai';
|
|
@@ -154,7 +154,11 @@ type WaitEventGroup = {
|
|
|
154
154
|
type AsOptional<TType> = TType | {
|
|
155
155
|
[P in keyof TType]?: never;
|
|
156
156
|
};
|
|
157
|
-
type StepLog = BaseStepLog & AsOptional<CallUrlGroup> & AsOptional<CallResponseStatusGroup> & AsOptional<InvokedWorkflowGroup> & AsOptional<
|
|
157
|
+
type StepLog = BaseStepLog & AsOptional<CallUrlGroup> & AsOptional<CallResponseStatusGroup> & AsOptional<InvokedWorkflowGroup> & AsOptional<{
|
|
158
|
+
sleepFor: number;
|
|
159
|
+
}> & AsOptional<{
|
|
160
|
+
sleepUntil: number;
|
|
161
|
+
}> & AsOptional<WaitEventGroup>;
|
|
158
162
|
type StepLogGroup = {
|
|
159
163
|
/**
|
|
160
164
|
* Log which belongs to a single step
|
|
@@ -179,7 +183,7 @@ type StepLogGroup = {
|
|
|
179
183
|
*/
|
|
180
184
|
steps: {
|
|
181
185
|
messageId: string;
|
|
182
|
-
state: "STEP_PROGRESS" | "STEP_RETRY" | "STEP_FAILED";
|
|
186
|
+
state: "STEP_PROGRESS" | "STEP_RETRY" | "STEP_FAILED" | "STEP_CANCELED";
|
|
183
187
|
}[];
|
|
184
188
|
/**
|
|
185
189
|
* Log which belongs to the next step
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RouteFunction, W as WorkflowServeOptions, E as ExclusiveValidationOptions, T as Telemetry, S as StepType, a as RawStep, N as NotifyResponse, b as Waiter, c as Step } from './types-
|
|
2
|
-
export { A as AsyncStepFunction, C as CallResponse, r as CallSettings, D as Duration, l as FailureFunctionPayload, F as FinishCondition, H as HeaderParams, t as InvokableWorkflow, s as InvokeStepResponse, I as InvokeWorkflowRequest, L as LazyInvokeStepParams, u as LogLevel, p as NotifyStepResponse, P as ParallelCallState, k as PublicServeOptions, m as RequiredExceptFields, j as StepFunction, h as StepTypes, i as SyncStepFunction, q as WaitEventOptions, n as WaitRequest, o as WaitStepResponse, f as WorkflowClient, e as WorkflowContext, w as WorkflowLogger, v as WorkflowLoggerOptions, g as WorkflowReceiver, d as WorkflowTool } from './types-
|
|
1
|
+
import { R as RouteFunction, W as WorkflowServeOptions, E as ExclusiveValidationOptions, T as Telemetry, S as StepType, a as RawStep, N as NotifyResponse, b as Waiter, c as Step } from './types-D1W0VOpy.js';
|
|
2
|
+
export { A as AsyncStepFunction, C as CallResponse, r as CallSettings, D as Duration, l as FailureFunctionPayload, F as FinishCondition, H as HeaderParams, t as InvokableWorkflow, s as InvokeStepResponse, I as InvokeWorkflowRequest, L as LazyInvokeStepParams, u as LogLevel, p as NotifyStepResponse, P as ParallelCallState, k as PublicServeOptions, m as RequiredExceptFields, j as StepFunction, h as StepTypes, i as SyncStepFunction, q as WaitEventOptions, n as WaitRequest, o as WaitStepResponse, f as WorkflowClient, e as WorkflowContext, w as WorkflowLogger, v as WorkflowLoggerOptions, g as WorkflowReceiver, d as WorkflowTool } from './types-D1W0VOpy.js';
|
|
3
3
|
import { HTTPMethods, State, FlowControl, Client as Client$1, QstashError } from '@upstash/qstash';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import 'ai';
|
|
@@ -154,7 +154,11 @@ type WaitEventGroup = {
|
|
|
154
154
|
type AsOptional<TType> = TType | {
|
|
155
155
|
[P in keyof TType]?: never;
|
|
156
156
|
};
|
|
157
|
-
type StepLog = BaseStepLog & AsOptional<CallUrlGroup> & AsOptional<CallResponseStatusGroup> & AsOptional<InvokedWorkflowGroup> & AsOptional<
|
|
157
|
+
type StepLog = BaseStepLog & AsOptional<CallUrlGroup> & AsOptional<CallResponseStatusGroup> & AsOptional<InvokedWorkflowGroup> & AsOptional<{
|
|
158
|
+
sleepFor: number;
|
|
159
|
+
}> & AsOptional<{
|
|
160
|
+
sleepUntil: number;
|
|
161
|
+
}> & AsOptional<WaitEventGroup>;
|
|
158
162
|
type StepLogGroup = {
|
|
159
163
|
/**
|
|
160
164
|
* Log which belongs to a single step
|
|
@@ -179,7 +183,7 @@ type StepLogGroup = {
|
|
|
179
183
|
*/
|
|
180
184
|
steps: {
|
|
181
185
|
messageId: string;
|
|
182
|
-
state: "STEP_PROGRESS" | "STEP_RETRY" | "STEP_FAILED";
|
|
186
|
+
state: "STEP_PROGRESS" | "STEP_RETRY" | "STEP_FAILED" | "STEP_CANCELED";
|
|
183
187
|
}[];
|
|
184
188
|
/**
|
|
185
189
|
* Log which belongs to the next step
|