@agentica/core 0.32.2 → 0.32.3-dev.2
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/lib/index.mjs +320 -342
- package/lib/index.mjs.map +1 -1
- package/lib/orchestrate/call.js +87 -107
- package/lib/orchestrate/call.js.map +1 -1
- package/lib/orchestrate/describe.js +5 -50
- package/lib/orchestrate/describe.js.map +1 -1
- package/lib/orchestrate/initialize.js +5 -50
- package/lib/orchestrate/initialize.js.map +1 -1
- package/lib/orchestrate/select.js +107 -126
- package/lib/orchestrate/select.js.map +1 -1
- package/lib/utils/AssistantMessageEmptyError.d.ts +7 -0
- package/lib/utils/AssistantMessageEmptyError.js +17 -0
- package/lib/utils/AssistantMessageEmptyError.js.map +1 -0
- package/lib/utils/ChatGptCompletionStreamingUtil.d.ts +8 -0
- package/lib/utils/ChatGptCompletionStreamingUtil.js +86 -0
- package/lib/utils/ChatGptCompletionStreamingUtil.js.map +1 -0
- package/lib/utils/ChatGptCompletionStreamingUtil.spec.d.ts +1 -0
- package/lib/utils/ChatGptCompletionStreamingUtil.spec.js +855 -0
- package/lib/utils/ChatGptCompletionStreamingUtil.spec.js.map +1 -0
- package/lib/utils/MPSC.js +8 -6
- package/lib/utils/MPSC.js.map +1 -1
- package/lib/utils/StreamUtil.d.ts +1 -1
- package/lib/utils/StreamUtil.js +2 -2
- package/lib/utils/StreamUtil.js.map +1 -1
- package/lib/utils/__retry.d.ts +1 -0
- package/lib/utils/__retry.js +30 -0
- package/lib/utils/__retry.js.map +1 -0
- package/lib/utils/__retry.spec.d.ts +1 -0
- package/lib/utils/__retry.spec.js +172 -0
- package/lib/utils/__retry.spec.js.map +1 -0
- package/package.json +1 -1
- package/src/orchestrate/call.ts +88 -114
- package/src/orchestrate/describe.ts +7 -65
- package/src/orchestrate/initialize.ts +4 -64
- package/src/orchestrate/select.ts +111 -138
- package/src/utils/AssistantMessageEmptyError.ts +13 -0
- package/src/utils/ChatGptCompletionMessageUtil.ts +1 -1
- package/src/utils/ChatGptCompletionStreamingUtil.spec.ts +908 -0
- package/src/utils/ChatGptCompletionStreamingUtil.ts +90 -0
- package/src/utils/MPSC.ts +8 -6
- package/src/utils/StreamUtil.ts +2 -2
- package/src/utils/__retry.spec.ts +198 -0
- package/src/utils/__retry.ts +18 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatGptCompletionStreamingUtil.spec.js","sourceRoot":"","sources":["../../src/utils/ChatGptCompletionStreamingUtil.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/MPSC.js
CHANGED
|
@@ -15,13 +15,15 @@ class MPSC {
|
|
|
15
15
|
constructor() {
|
|
16
16
|
this.queue = new AsyncQueue_1.AsyncQueue();
|
|
17
17
|
this.consumer = new ReadableStream({
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
start: (controller) => __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
while (true) {
|
|
20
|
+
const { value, done } = yield this.queue.dequeue();
|
|
21
|
+
if (done === true) {
|
|
22
|
+
controller.close();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
controller.enqueue(value);
|
|
23
26
|
}
|
|
24
|
-
controller.enqueue(value);
|
|
25
27
|
}),
|
|
26
28
|
});
|
|
27
29
|
}
|
package/lib/utils/MPSC.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MPSC.js","sourceRoot":"","sources":["../../src/utils/MPSC.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA0C;AAE1C,MAAa,IAAI;IAIf;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAU,EAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAI;YACpC,
|
|
1
|
+
{"version":3,"file":"MPSC.js","sourceRoot":"","sources":["../../src/utils/MPSC.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA0C;AAE1C,MAAa,IAAI;IAIf;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAU,EAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAI;YACpC,KAAK,EAAE,CAAO,UAAU,EAAE,EAAE;gBAC1B,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBAClB,UAAU,CAAC,KAAK,EAAE,CAAC;wBACnB,OAAO;oBACT,CAAC;oBACD,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAA;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAAQ;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEK,UAAU;;YACd,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC;KAAA;IAEK,cAAc;;YAClB,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QACpC,CAAC;KAAA;CACF;AAvCD,oBAuCC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
declare function readAll<T>(stream: ReadableStream<T>): Promise<T[]>;
|
|
7
7
|
declare function reduce<T, R = T>(stream: ReadableStream<T>, reducer: (acc: T | R, cur: T) => R, initial?: R): Promise<R | null>;
|
|
8
|
-
declare function from<T>(value: T): ReadableStream<T>;
|
|
8
|
+
declare function from<T>(...value: T[]): ReadableStream<T>;
|
|
9
9
|
export declare function toAsyncGenerator<T>(value: T): AsyncGenerator<T, undefined, undefined>;
|
|
10
10
|
export declare function streamDefaultReaderToAsyncGenerator<T>(reader: ReadableStreamDefaultReader<T>): AsyncGenerator<Awaited<T>, undefined, undefined>;
|
|
11
11
|
declare function transform<T, R>(stream: ReadableStream<T>, transformer: (value: T) => R): ReadableStream<R>;
|
package/lib/utils/StreamUtil.js
CHANGED
|
@@ -79,10 +79,10 @@ function reduce(stream, reducer, initial) {
|
|
|
79
79
|
return acc;
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
|
-
function from(value) {
|
|
82
|
+
function from(...value) {
|
|
83
83
|
const stream = new ReadableStream({
|
|
84
84
|
start: (controller) => {
|
|
85
|
-
controller.enqueue(
|
|
85
|
+
value.forEach(v => controller.enqueue(v));
|
|
86
86
|
controller.close();
|
|
87
87
|
},
|
|
88
88
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamUtil.js","sourceRoot":"","sources":["../../src/utils/StreamUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,4CAEC;AAED,kFAQC;AA3DD;;;;GAIG;AAEH,SAAe,OAAO,CAAI,MAAyB;;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA;AAED,SAAe,MAAM,CAAW,MAAyB,EAAE,OAAkC,EAAE,OAAW;;;QACxG,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,mCAAmC,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,GAAG,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,CAAiB,CAAC;;YAE5C,KAA0B,eAAA,aAAA,cAAA,QAAQ,CAAA,cAAA,kFAAE,CAAC;gBAAX,wBAAQ;gBAAR,WAAQ;gBAAvB,MAAM,KAAK,KAAA,CAAA;gBACpB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACjB,GAAG,GAAG,KAAK,CAAC;oBACZ,SAAS;gBACX,CAAC;gBAED,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;;;;;;;;;QAED,OAAO,GAAQ,CAAC;IAClB,CAAC;CAAA;AAED,SAAS,IAAI,CAAI,
|
|
1
|
+
{"version":3,"file":"StreamUtil.js","sourceRoot":"","sources":["../../src/utils/StreamUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,4CAEC;AAED,kFAQC;AA3DD;;;;GAIG;AAEH,SAAe,OAAO,CAAI,MAAyB;;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA;AAED,SAAe,MAAM,CAAW,MAAyB,EAAE,OAAkC,EAAE,OAAW;;;QACxG,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,mCAAmC,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,GAAG,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,CAAiB,CAAC;;YAE5C,KAA0B,eAAA,aAAA,cAAA,QAAQ,CAAA,cAAA,kFAAE,CAAC;gBAAX,wBAAQ;gBAAR,WAAQ;gBAAvB,MAAM,KAAK,KAAA,CAAA;gBACpB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACjB,GAAG,GAAG,KAAK,CAAC;oBACZ,SAAS;gBACX,CAAC;gBAED,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;;;;;;;;;QAED,OAAO,GAAQ,CAAC;IAClB,CAAC;CAAA;AAED,SAAS,IAAI,CAAI,GAAG,KAAU;IAC5B,MAAM,MAAM,GAAG,IAAI,cAAc,CAAI;QACnC,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE;YACpB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAuB,gBAAgB,CAAI,KAAQ;;QACjD,oBAAM,KAAK,CAAA,CAAC;IACd,CAAC;CAAA;AAED,SAAuB,mCAAmC,CAAI,MAAsC;;QAClG,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,cAAM,MAAM,CAAC,IAAI,EAAE,CAAA,CAAC;YAC5C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM;YACR,CAAC;YACD,oBAAM,KAAK,CAAA,CAAC;QACd,CAAC;IACH,CAAC;CAAA;AAED,SAAS,SAAS,CAAO,MAAyB,EAAE,WAA4B;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,OAAO,IAAI,cAAc,CAAI;QAC3B,IAAI,EAAE,CAAO,UAAU,EAAE,EAAE;YACzB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC;iBACI,CAAC;gBACJ,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,CAAA;KACF,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,UAAU,GAAG;IACxB,OAAO;IACP,MAAM;IACN,IAAI;IACJ,SAAS;CACV,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.__get_retry = __get_retry;
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
function __get_retry(limit) {
|
|
17
|
+
const retryFn = (fn_1, prevError_1, ...args_1) => __awaiter(this, [fn_1, prevError_1, ...args_1], void 0, function* (fn, prevError, attempt = 0) {
|
|
18
|
+
try {
|
|
19
|
+
return yield fn(prevError);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (attempt >= limit - 1) {
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
return retryFn(fn, error, attempt + 1);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return retryFn;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=__retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"__retry.js","sourceRoot":"","sources":["../../src/utils/__retry.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,kCAcC;AAjBD;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAa;IACvC,MAAM,OAAO,GAAG,+BAAyG,EAAE,oEAAjG,EAAuC,EAAE,SAAmB,EAAE,UAAkB,CAAC;QACzG,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAA,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const __retry_1 = require("./__retry");
|
|
13
|
+
describe("__get_retry", () => {
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
vi.clearAllMocks();
|
|
16
|
+
});
|
|
17
|
+
describe("success cases", () => {
|
|
18
|
+
it("should not retry when successful on first attempt", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
const mockFn = vi.fn().mockResolvedValue("success");
|
|
20
|
+
const retryFn = (0, __retry_1.__get_retry)(3);
|
|
21
|
+
const result = yield retryFn(mockFn);
|
|
22
|
+
expect(result).toBe("success");
|
|
23
|
+
expect(mockFn).toHaveBeenCalledTimes(1);
|
|
24
|
+
expect(mockFn).toHaveBeenCalledWith(undefined);
|
|
25
|
+
}));
|
|
26
|
+
it("should call exactly 2 times when successful on second attempt", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
const mockFn = vi.fn()
|
|
28
|
+
.mockRejectedValueOnce(new Error("First failure"))
|
|
29
|
+
.mockResolvedValue("success");
|
|
30
|
+
const retryFn = (0, __retry_1.__get_retry)(3);
|
|
31
|
+
const result = yield retryFn(mockFn);
|
|
32
|
+
expect(result).toBe("success");
|
|
33
|
+
expect(mockFn).toHaveBeenCalledTimes(2);
|
|
34
|
+
expect(mockFn).toHaveBeenNthCalledWith(1, undefined);
|
|
35
|
+
expect(mockFn).toHaveBeenNthCalledWith(2, new Error("First failure"));
|
|
36
|
+
}));
|
|
37
|
+
it("should call limit times when successful on last attempt", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
|
+
const mockFn = vi.fn()
|
|
39
|
+
.mockRejectedValueOnce(new Error("First failure"))
|
|
40
|
+
.mockRejectedValueOnce(new Error("Second failure"))
|
|
41
|
+
.mockResolvedValue("success");
|
|
42
|
+
const retryFn = (0, __retry_1.__get_retry)(3);
|
|
43
|
+
const result = yield retryFn(mockFn);
|
|
44
|
+
expect(result).toBe("success");
|
|
45
|
+
expect(mockFn).toHaveBeenCalledTimes(3);
|
|
46
|
+
expect(mockFn).toHaveBeenNthCalledWith(1, undefined);
|
|
47
|
+
expect(mockFn).toHaveBeenNthCalledWith(2, new Error("First failure"));
|
|
48
|
+
expect(mockFn).toHaveBeenNthCalledWith(3, new Error("Second failure"));
|
|
49
|
+
}));
|
|
50
|
+
});
|
|
51
|
+
describe("failure cases", () => {
|
|
52
|
+
it("should throw last error after limit attempts", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
|
+
const error1 = new Error("First failure");
|
|
54
|
+
const error2 = new Error("Second failure");
|
|
55
|
+
const error3 = new Error("Third failure");
|
|
56
|
+
const mockFn = vi.fn()
|
|
57
|
+
.mockRejectedValueOnce(error1)
|
|
58
|
+
.mockRejectedValueOnce(error2)
|
|
59
|
+
.mockRejectedValueOnce(error3);
|
|
60
|
+
const retryFn = (0, __retry_1.__get_retry)(3);
|
|
61
|
+
yield expect(retryFn(mockFn)).rejects.toThrow("Third failure");
|
|
62
|
+
expect(mockFn).toHaveBeenCalledTimes(3);
|
|
63
|
+
expect(mockFn).toHaveBeenNthCalledWith(1, undefined);
|
|
64
|
+
expect(mockFn).toHaveBeenNthCalledWith(2, error1);
|
|
65
|
+
expect(mockFn).toHaveBeenNthCalledWith(3, error2);
|
|
66
|
+
}));
|
|
67
|
+
it("should throw error immediately when limit is 1", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
68
|
+
const error = new Error("Immediate failure");
|
|
69
|
+
const mockFn = vi.fn().mockRejectedValue(error);
|
|
70
|
+
const retryFn = (0, __retry_1.__get_retry)(1);
|
|
71
|
+
yield expect(retryFn(mockFn)).rejects.toThrow("Immediate failure");
|
|
72
|
+
expect(mockFn).toHaveBeenCalledTimes(1);
|
|
73
|
+
expect(mockFn).toHaveBeenCalledWith(undefined);
|
|
74
|
+
}));
|
|
75
|
+
});
|
|
76
|
+
describe("prevError propagation", () => {
|
|
77
|
+
it("should pass previous error as prevError correctly", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
|
+
const error1 = new Error("First error");
|
|
79
|
+
const error2 = new Error("Second error");
|
|
80
|
+
const mockFn = vi.fn()
|
|
81
|
+
.mockRejectedValueOnce(error1)
|
|
82
|
+
.mockRejectedValueOnce(error2)
|
|
83
|
+
.mockResolvedValue("success");
|
|
84
|
+
const retryFn = (0, __retry_1.__get_retry)(3);
|
|
85
|
+
const result = yield retryFn(mockFn);
|
|
86
|
+
expect(result).toBe("success");
|
|
87
|
+
expect(mockFn).toHaveBeenCalledTimes(3);
|
|
88
|
+
expect(mockFn).toHaveBeenNthCalledWith(1, undefined);
|
|
89
|
+
expect(mockFn).toHaveBeenNthCalledWith(2, error1);
|
|
90
|
+
expect(mockFn).toHaveBeenNthCalledWith(3, error2);
|
|
91
|
+
}));
|
|
92
|
+
it("should use initial prevError in first call when provided", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
93
|
+
const initialError = new Error("Initial error");
|
|
94
|
+
const mockFn = vi.fn().mockResolvedValue("success");
|
|
95
|
+
const retryFn = (0, __retry_1.__get_retry)(3);
|
|
96
|
+
const result = yield retryFn(mockFn, initialError);
|
|
97
|
+
expect(result).toBe("success");
|
|
98
|
+
expect(mockFn).toHaveBeenCalledTimes(1);
|
|
99
|
+
expect(mockFn).toHaveBeenCalledWith(initialError);
|
|
100
|
+
}));
|
|
101
|
+
});
|
|
102
|
+
describe("different error types", () => {
|
|
103
|
+
it("should handle string errors correctly", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
104
|
+
const mockFn = vi.fn()
|
|
105
|
+
.mockRejectedValueOnce("String error")
|
|
106
|
+
.mockResolvedValue("success");
|
|
107
|
+
const retryFn = (0, __retry_1.__get_retry)(2);
|
|
108
|
+
const result = yield retryFn(mockFn);
|
|
109
|
+
expect(result).toBe("success");
|
|
110
|
+
expect(mockFn).toHaveBeenCalledTimes(2);
|
|
111
|
+
expect(mockFn).toHaveBeenNthCalledWith(2, "String error");
|
|
112
|
+
}));
|
|
113
|
+
it("should handle null errors correctly", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
114
|
+
const mockFn = vi.fn()
|
|
115
|
+
.mockRejectedValueOnce(null)
|
|
116
|
+
.mockResolvedValue("success");
|
|
117
|
+
const retryFn = (0, __retry_1.__get_retry)(2);
|
|
118
|
+
const result = yield retryFn(mockFn);
|
|
119
|
+
expect(result).toBe("success");
|
|
120
|
+
expect(mockFn).toHaveBeenCalledTimes(2);
|
|
121
|
+
expect(mockFn).toHaveBeenNthCalledWith(2, null);
|
|
122
|
+
}));
|
|
123
|
+
it("should handle undefined errors correctly", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
124
|
+
const mockFn = vi.fn()
|
|
125
|
+
.mockRejectedValueOnce(undefined)
|
|
126
|
+
.mockResolvedValue("success");
|
|
127
|
+
const retryFn = (0, __retry_1.__get_retry)(2);
|
|
128
|
+
const result = yield retryFn(mockFn);
|
|
129
|
+
expect(result).toBe("success");
|
|
130
|
+
expect(mockFn).toHaveBeenCalledTimes(2);
|
|
131
|
+
expect(mockFn).toHaveBeenNthCalledWith(2, undefined);
|
|
132
|
+
}));
|
|
133
|
+
});
|
|
134
|
+
describe("recursive call verification", () => {
|
|
135
|
+
it("should occur recursive calls in correct order", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
136
|
+
const callOrder = [];
|
|
137
|
+
const mockFn = vi.fn()
|
|
138
|
+
.mockImplementationOnce(() => {
|
|
139
|
+
callOrder.push("first call");
|
|
140
|
+
throw new Error("First failure");
|
|
141
|
+
})
|
|
142
|
+
.mockImplementationOnce(() => {
|
|
143
|
+
callOrder.push("second call");
|
|
144
|
+
throw new Error("Second failure");
|
|
145
|
+
})
|
|
146
|
+
.mockImplementationOnce(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
147
|
+
callOrder.push("third call");
|
|
148
|
+
return Promise.resolve("success");
|
|
149
|
+
}));
|
|
150
|
+
const retryFn = (0, __retry_1.__get_retry)(3);
|
|
151
|
+
const result = yield retryFn(mockFn);
|
|
152
|
+
expect(result).toBe("success");
|
|
153
|
+
expect(callOrder).toEqual(["first call", "second call", "third call"]);
|
|
154
|
+
expect(mockFn).toHaveBeenCalledTimes(3);
|
|
155
|
+
}));
|
|
156
|
+
});
|
|
157
|
+
describe("type safety", () => {
|
|
158
|
+
it("should handle different return types correctly", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
159
|
+
const stringFn = vi.fn().mockResolvedValue("string result");
|
|
160
|
+
const numberFn = vi.fn().mockResolvedValue(42);
|
|
161
|
+
const objectFn = vi.fn().mockResolvedValue({ key: "value" });
|
|
162
|
+
const retryFn = (0, __retry_1.__get_retry)(3);
|
|
163
|
+
const stringResult = yield retryFn(stringFn);
|
|
164
|
+
const numberResult = yield retryFn(numberFn);
|
|
165
|
+
const objectResult = yield retryFn(objectFn);
|
|
166
|
+
expect(stringResult).toBe("string result");
|
|
167
|
+
expect(numberResult).toBe(42);
|
|
168
|
+
expect(objectResult).toEqual({ key: "value" });
|
|
169
|
+
}));
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
//# sourceMappingURL=__retry.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"__retry.spec.js","sourceRoot":"","sources":["../../src/utils/__retry.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/orchestrate/call.ts
CHANGED
|
@@ -23,9 +23,11 @@ import { AgenticaSystemPrompt } from "../constants/AgenticaSystemPrompt";
|
|
|
23
23
|
import { isAgenticaContext } from "../context/internal/isAgenticaContext";
|
|
24
24
|
import { createAssistantMessageEvent, createCallEvent, createExecuteEvent, createJsonParseErrorEvent, createValidateEvent } from "../factory/events";
|
|
25
25
|
import { decodeHistory, decodeUserMessageContent } from "../factory/histories";
|
|
26
|
-
import {
|
|
26
|
+
import { __get_retry } from "../utils/__retry";
|
|
27
|
+
import { AssistantMessageEmptyError, AssistantMessageEmptyWithReasoningError } from "../utils/AssistantMessageEmptyError";
|
|
27
28
|
import { ChatGptCompletionMessageUtil } from "../utils/ChatGptCompletionMessageUtil";
|
|
28
|
-
import {
|
|
29
|
+
import { reduceStreamingWithDispatch } from "../utils/ChatGptCompletionStreamingUtil";
|
|
30
|
+
import { StreamUtil, toAsyncGenerator } from "../utils/StreamUtil";
|
|
29
31
|
|
|
30
32
|
import { cancelFunctionFromContext } from "./internal/cancelFunctionFromContext";
|
|
31
33
|
|
|
@@ -33,131 +35,103 @@ export async function call<Model extends ILlmSchema.Model>(
|
|
|
33
35
|
ctx: AgenticaContext<Model> | MicroAgenticaContext<Model>,
|
|
34
36
|
operations: AgenticaOperation<Model>[],
|
|
35
37
|
): Promise<AgenticaExecuteEvent<Model>[]> {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
// USER INPUT
|
|
46
|
-
{
|
|
47
|
-
role: "user",
|
|
48
|
-
content: ctx.prompt.contents.map(decodeUserMessageContent),
|
|
49
|
-
},
|
|
50
|
-
// SYSTEM PROMPT
|
|
51
|
-
...(ctx.config?.systemPrompt?.execute === null
|
|
52
|
-
? []
|
|
53
|
-
: [{
|
|
54
|
-
role: "system",
|
|
55
|
-
content: ctx.config?.systemPrompt?.execute?.(ctx.histories as MicroAgenticaHistory<Model>[])
|
|
56
|
-
?? AgenticaSystemPrompt.EXECUTE,
|
|
57
|
-
} satisfies OpenAI.ChatCompletionSystemMessageParam]),
|
|
58
|
-
],
|
|
59
|
-
// STACKED FUNCTIONS
|
|
60
|
-
tools: operations.map(
|
|
61
|
-
s =>
|
|
62
|
-
({
|
|
63
|
-
type: "function",
|
|
64
|
-
function: {
|
|
65
|
-
name: s.name,
|
|
66
|
-
|
|
67
|
-
description: s.function.description,
|
|
68
|
-
parameters: (
|
|
69
|
-
(
|
|
70
|
-
"separated" in s.function
|
|
71
|
-
&& s.function.separated !== undefined
|
|
72
|
-
)
|
|
73
|
-
? (s.function.separated.llm
|
|
74
|
-
?? ({
|
|
75
|
-
type: "object",
|
|
76
|
-
properties: {},
|
|
77
|
-
required: [],
|
|
78
|
-
additionalProperties: false,
|
|
79
|
-
$defs: {},
|
|
80
|
-
} satisfies IChatGptSchema.IParameters))
|
|
81
|
-
|
|
82
|
-
: s.function.parameters) as Record<string, any>,
|
|
83
|
-
},
|
|
84
|
-
}) as OpenAI.ChatCompletionTool,
|
|
85
|
-
),
|
|
86
|
-
tool_choice: "auto",
|
|
87
|
-
// parallel_tool_calls: false,
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
const selectContext: ({
|
|
91
|
-
content: string;
|
|
92
|
-
mpsc: MPSC<string>;
|
|
93
|
-
})[] = [];
|
|
94
|
-
const nullableCompletion = await StreamUtil.reduce<OpenAI.ChatCompletionChunk, Promise<OpenAI.ChatCompletion>>(stream, async (accPromise, chunk) => {
|
|
95
|
-
const acc = await accPromise;
|
|
96
|
-
|
|
97
|
-
const registerContext = (
|
|
98
|
-
choices: OpenAI.ChatCompletionChunk.Choice[],
|
|
99
|
-
) => {
|
|
100
|
-
for (const choice of choices) {
|
|
101
|
-
/**
|
|
102
|
-
* @TODO fix it
|
|
103
|
-
* Sometimes, the complete message arrives along with a finish reason.
|
|
104
|
-
*/
|
|
105
|
-
if (choice.finish_reason != null) {
|
|
106
|
-
selectContext[choice.index]?.mpsc.close();
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
38
|
+
const _retryFn = __get_retry(ctx.config?.retry ?? AgenticaConstant.RETRY);
|
|
39
|
+
const retryFn = async (fn: (prevError?: unknown) => Promise<OpenAI.ChatCompletion>) => {
|
|
40
|
+
return _retryFn(fn).catch((e) => {
|
|
41
|
+
if (e instanceof AssistantMessageEmptyError) {
|
|
42
|
+
return Symbol("emptyAssistantMessage");
|
|
43
|
+
}
|
|
44
|
+
throw e;
|
|
45
|
+
});
|
|
46
|
+
};
|
|
109
47
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
48
|
+
const completion = await retryFn(async (prevError) => {
|
|
49
|
+
const stream: ReadableStream<OpenAI.ChatCompletionChunk> = await ctx.request("call", {
|
|
50
|
+
messages: [
|
|
51
|
+
// COMMON SYSTEM PROMPT
|
|
52
|
+
{
|
|
53
|
+
role: "system",
|
|
54
|
+
content: AgenticaDefaultPrompt.write(ctx.config),
|
|
55
|
+
} satisfies OpenAI.ChatCompletionSystemMessageParam,
|
|
56
|
+
// PREVIOUS HISTORIES
|
|
57
|
+
...ctx.histories.map(decodeHistory).flat(),
|
|
58
|
+
// USER INPUT
|
|
59
|
+
{
|
|
60
|
+
role: "user",
|
|
61
|
+
content: ctx.prompt.contents.map(decodeUserMessageContent),
|
|
62
|
+
},
|
|
63
|
+
...(prevError instanceof AssistantMessageEmptyWithReasoningError ? [
|
|
64
|
+
{
|
|
65
|
+
role: "assistant",
|
|
66
|
+
content: prevError.reasoning,
|
|
67
|
+
} satisfies OpenAI.ChatCompletionMessageParam,
|
|
68
|
+
] : []),
|
|
69
|
+
// SYSTEM PROMPT
|
|
70
|
+
...(ctx.config?.systemPrompt?.execute === null
|
|
71
|
+
? []
|
|
72
|
+
: [{
|
|
73
|
+
role: "system",
|
|
74
|
+
content: ctx.config?.systemPrompt?.execute?.(ctx.histories as MicroAgenticaHistory<Model>[])
|
|
75
|
+
?? AgenticaSystemPrompt.EXECUTE,
|
|
76
|
+
} satisfies OpenAI.ChatCompletionSystemMessageParam]),
|
|
77
|
+
],
|
|
78
|
+
// STACKED FUNCTIONS
|
|
79
|
+
tools: operations.map(
|
|
80
|
+
s =>
|
|
81
|
+
({
|
|
82
|
+
type: "function",
|
|
83
|
+
function: {
|
|
84
|
+
name: s.name,
|
|
113
85
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
86
|
+
description: s.function.description,
|
|
87
|
+
parameters: (
|
|
88
|
+
(
|
|
89
|
+
"separated" in s.function
|
|
90
|
+
&& s.function.separated !== undefined
|
|
91
|
+
)
|
|
92
|
+
? (s.function.separated.llm
|
|
93
|
+
?? ({
|
|
94
|
+
type: "object",
|
|
95
|
+
properties: {},
|
|
96
|
+
required: [],
|
|
97
|
+
additionalProperties: false,
|
|
98
|
+
$defs: {},
|
|
99
|
+
} satisfies IChatGptSchema.IParameters))
|
|
119
100
|
|
|
120
|
-
|
|
101
|
+
: s.function.parameters) as Record<string, any>,
|
|
102
|
+
},
|
|
103
|
+
}) as OpenAI.ChatCompletionTool,
|
|
104
|
+
),
|
|
105
|
+
tool_choice: "auto",
|
|
106
|
+
// parallel_tool_calls: false,
|
|
107
|
+
});
|
|
121
108
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
mpsc.produce(choice.delta.content);
|
|
109
|
+
const completion = await reduceStreamingWithDispatch(stream, (props) => {
|
|
110
|
+
const event: AgenticaAssistantMessageEvent = createAssistantMessageEvent(props);
|
|
111
|
+
ctx.dispatch(event);
|
|
112
|
+
});
|
|
127
113
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
await mpsc.waitClosed();
|
|
134
|
-
return selectContext[choice.index]!.content;
|
|
135
|
-
},
|
|
136
|
-
});
|
|
137
|
-
ctx.dispatch(event);
|
|
114
|
+
const allAssistantMessagesEmpty = completion.choices.every(v => v.message.tool_calls == null && v.message.content === "");
|
|
115
|
+
if (allAssistantMessagesEmpty) {
|
|
116
|
+
const firstChoice = completion.choices.at(0);
|
|
117
|
+
if ((firstChoice?.message as { reasoning?: string })?.reasoning != null) {
|
|
118
|
+
throw new AssistantMessageEmptyWithReasoningError((firstChoice?.message as { reasoning?: string })?.reasoning ?? "");
|
|
138
119
|
}
|
|
139
|
-
|
|
140
|
-
if (acc.object === "chat.completion.chunk") {
|
|
141
|
-
registerContext([acc, chunk].flatMap(v => v.choices));
|
|
142
|
-
return ChatGptCompletionMessageUtil.merge([acc, chunk]);
|
|
120
|
+
throw new AssistantMessageEmptyError();
|
|
143
121
|
}
|
|
144
|
-
|
|
145
|
-
return ChatGptCompletionMessageUtil.accumulate(acc, chunk);
|
|
122
|
+
return completion;
|
|
146
123
|
});
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if(emptyAssistantMessages.length > 0) {
|
|
150
|
-
emptyAssistantMessages.forEach(v => {
|
|
124
|
+
|
|
125
|
+
if (typeof completion === "symbol") {
|
|
151
126
|
const event: AgenticaAssistantMessageEvent = createAssistantMessageEvent({
|
|
152
|
-
stream: toAsyncGenerator(
|
|
127
|
+
stream: toAsyncGenerator(""),
|
|
153
128
|
done: () => true,
|
|
154
|
-
get: () =>
|
|
129
|
+
get: () => "",
|
|
155
130
|
join: async () => {
|
|
156
|
-
return
|
|
131
|
+
return "";
|
|
157
132
|
},
|
|
158
|
-
});
|
|
159
|
-
ctx.dispatch(event);
|
|
160
133
|
});
|
|
134
|
+
ctx.dispatch(event);
|
|
161
135
|
return [];
|
|
162
136
|
}
|
|
163
137
|
|