openai 4.14.2 → 4.15.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 (120) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +114 -1
  3. package/core.d.ts +1 -0
  4. package/core.d.ts.map +1 -1
  5. package/core.js +5 -1
  6. package/core.js.map +1 -1
  7. package/core.mjs +5 -1
  8. package/core.mjs.map +1 -1
  9. package/index.d.mts +2 -0
  10. package/index.d.ts +2 -0
  11. package/index.d.ts.map +1 -1
  12. package/index.js +2 -0
  13. package/index.js.map +1 -1
  14. package/index.mjs +2 -0
  15. package/index.mjs.map +1 -1
  16. package/lib/AbstractChatCompletionRunner.d.ts +111 -0
  17. package/lib/AbstractChatCompletionRunner.d.ts.map +1 -0
  18. package/lib/AbstractChatCompletionRunner.js +386 -0
  19. package/lib/AbstractChatCompletionRunner.js.map +1 -0
  20. package/lib/AbstractChatCompletionRunner.mjs +382 -0
  21. package/lib/AbstractChatCompletionRunner.mjs.map +1 -0
  22. package/lib/ChatCompletionRunFunctions.test.d.ts +2 -0
  23. package/lib/ChatCompletionRunFunctions.test.d.ts.map +1 -0
  24. package/lib/ChatCompletionRunFunctions.test.js +1850 -0
  25. package/lib/ChatCompletionRunFunctions.test.js.map +1 -0
  26. package/lib/ChatCompletionRunFunctions.test.mjs +1845 -0
  27. package/lib/ChatCompletionRunFunctions.test.mjs.map +1 -0
  28. package/lib/ChatCompletionRunner.d.ts +17 -0
  29. package/lib/ChatCompletionRunner.d.ts.map +1 -0
  30. package/lib/ChatCompletionRunner.js +19 -0
  31. package/lib/ChatCompletionRunner.js.map +1 -0
  32. package/lib/ChatCompletionRunner.mjs +15 -0
  33. package/lib/ChatCompletionRunner.mjs.map +1 -0
  34. package/lib/ChatCompletionStream.d.ts +111 -0
  35. package/lib/ChatCompletionStream.d.ts.map +1 -0
  36. package/lib/ChatCompletionStream.js +210 -0
  37. package/lib/ChatCompletionStream.js.map +1 -0
  38. package/lib/ChatCompletionStream.mjs +206 -0
  39. package/lib/ChatCompletionStream.mjs.map +1 -0
  40. package/lib/ChatCompletionStreamingRunner.d.ts +20 -0
  41. package/lib/ChatCompletionStreamingRunner.d.ts.map +1 -0
  42. package/lib/ChatCompletionStreamingRunner.js +18 -0
  43. package/lib/ChatCompletionStreamingRunner.js.map +1 -0
  44. package/lib/ChatCompletionStreamingRunner.mjs +14 -0
  45. package/lib/ChatCompletionStreamingRunner.mjs.map +1 -0
  46. package/lib/RunnableFunction.d.ts +70 -0
  47. package/lib/RunnableFunction.d.ts.map +1 -0
  48. package/lib/RunnableFunction.js +22 -0
  49. package/lib/RunnableFunction.js.map +1 -0
  50. package/lib/RunnableFunction.mjs +17 -0
  51. package/lib/RunnableFunction.mjs.map +1 -0
  52. package/lib/jsonschema.d.ts +106 -0
  53. package/lib/jsonschema.d.ts.map +1 -0
  54. package/lib/jsonschema.js +11 -0
  55. package/lib/jsonschema.js.map +1 -0
  56. package/lib/jsonschema.mjs +10 -0
  57. package/lib/jsonschema.mjs.map +1 -0
  58. package/package.json +1 -1
  59. package/resources/beta/beta.d.ts +9 -0
  60. package/resources/beta/beta.d.ts.map +1 -0
  61. package/resources/beta/beta.js +40 -0
  62. package/resources/beta/beta.js.map +1 -0
  63. package/resources/beta/beta.mjs +13 -0
  64. package/resources/beta/beta.mjs.map +1 -0
  65. package/resources/beta/chat/chat.d.ts +9 -0
  66. package/resources/beta/chat/chat.d.ts.map +1 -0
  67. package/resources/beta/chat/chat.js +40 -0
  68. package/resources/beta/chat/chat.js.map +1 -0
  69. package/resources/beta/chat/chat.mjs +13 -0
  70. package/resources/beta/chat/chat.mjs.map +1 -0
  71. package/resources/beta/chat/completions.d.ts +28 -0
  72. package/resources/beta/chat/completions.d.ts.map +1 -0
  73. package/resources/beta/chat/completions.js +32 -0
  74. package/resources/beta/chat/completions.js.map +1 -0
  75. package/resources/beta/chat/completions.mjs +24 -0
  76. package/resources/beta/chat/completions.mjs.map +1 -0
  77. package/resources/beta/chat/index.d.ts +3 -0
  78. package/resources/beta/chat/index.d.ts.map +1 -0
  79. package/resources/beta/chat/index.js +9 -0
  80. package/resources/beta/chat/index.js.map +1 -0
  81. package/resources/beta/chat/index.mjs +4 -0
  82. package/resources/beta/chat/index.mjs.map +1 -0
  83. package/resources/beta/index.d.ts +3 -0
  84. package/resources/beta/index.d.ts.map +1 -0
  85. package/resources/beta/index.js +9 -0
  86. package/resources/beta/index.js.map +1 -0
  87. package/resources/beta/index.mjs +4 -0
  88. package/resources/beta/index.mjs.map +1 -0
  89. package/resources/index.d.ts +1 -0
  90. package/resources/index.d.ts.map +1 -1
  91. package/resources/index.js +3 -1
  92. package/resources/index.js.map +1 -1
  93. package/resources/index.mjs +1 -0
  94. package/resources/index.mjs.map +1 -1
  95. package/src/core.ts +11 -2
  96. package/src/index.ts +3 -0
  97. package/src/lib/AbstractChatCompletionRunner.ts +488 -0
  98. package/src/lib/ChatCompletionRunFunctions.test.ts +1987 -0
  99. package/src/lib/ChatCompletionRunner.ts +42 -0
  100. package/src/lib/ChatCompletionStream.ts +327 -0
  101. package/src/lib/ChatCompletionStreamingRunner.ts +43 -0
  102. package/src/lib/RunnableFunction.ts +96 -0
  103. package/src/lib/jsonschema.ts +148 -0
  104. package/src/resources/beta/beta.ts +12 -0
  105. package/src/resources/beta/chat/chat.ts +12 -0
  106. package/src/resources/beta/chat/completions.ts +70 -0
  107. package/src/resources/beta/chat/index.ts +4 -0
  108. package/src/resources/beta/index.ts +4 -0
  109. package/src/resources/index.ts +1 -0
  110. package/src/streaming.ts +13 -4
  111. package/src/version.ts +1 -1
  112. package/streaming.d.ts +13 -0
  113. package/streaming.d.ts.map +1 -1
  114. package/streaming.js +13 -4
  115. package/streaming.js.map +1 -1
  116. package/streaming.mjs +13 -4
  117. package/streaming.mjs.map +1 -1
  118. package/version.d.ts +1 -1
  119. package/version.js +1 -1
  120. package/version.mjs +1 -1
package/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+
2
+ import * as Core from 'openai/core';
3
+ import { type CompletionUsage } from 'openai/resources/completions';
4
+ import { type Completions, type ChatCompletion, type ChatCompletionMessage, type ChatCompletionMessageParam, type ChatCompletionCreateParams } from 'openai/resources/chat/completions';
5
+ import { APIUserAbortError, OpenAIError } from 'openai/error';
6
+ import { type BaseFunctionsArgs } from "./RunnableFunction.js";
7
+ import { ChatCompletionFunctionRunnerParams } from "./ChatCompletionRunner.js";
8
+ import { ChatCompletionStreamingFunctionRunnerParams } from "./ChatCompletionStreamingRunner.js";
9
+ export declare abstract class AbstractChatCompletionRunner<Events extends CustomEvents<any> = AbstractChatCompletionRunnerEvents> {
10
+ #private;
11
+ controller: AbortController;
12
+ protected _chatCompletions: ChatCompletion[];
13
+ messages: (ChatCompletionMessage | ChatCompletionMessageParam)[];
14
+ constructor();
15
+ protected _run(executor: () => Promise<any>): void;
16
+ protected _addChatCompletion(chatCompletion: ChatCompletion): ChatCompletion;
17
+ protected _addMessage(message: ChatCompletionMessage | ChatCompletionMessageParam, emit?: boolean): void;
18
+ protected _connected(): void;
19
+ get ended(): boolean;
20
+ get errored(): boolean;
21
+ get aborted(): boolean;
22
+ abort(): void;
23
+ /**
24
+ * Adds the listener function to the end of the listeners array for the event.
25
+ * No checks are made to see if the listener has already been added. Multiple calls passing
26
+ * the same combination of event and listener will result in the listener being added, and
27
+ * called, multiple times.
28
+ * @returns this ChatCompletionStream, so that calls can be chained
29
+ */
30
+ on<Event extends keyof Events>(event: Event, listener: ListenerForEvent<Events, Event>): this;
31
+ /**
32
+ * Removes the specified listener from the listener array for the event.
33
+ * off() will remove, at most, one instance of a listener from the listener array. If any single
34
+ * listener has been added multiple times to the listener array for the specified event, then
35
+ * off() must be called multiple times to remove each instance.
36
+ * @returns this ChatCompletionStream, so that calls can be chained
37
+ */
38
+ off<Event extends keyof Events>(event: Event, listener: ListenerForEvent<Events, Event>): this;
39
+ /**
40
+ * Adds a one-time listener function for the event. The next time the event is triggered,
41
+ * this listener is removed and then invoked.
42
+ * @returns this ChatCompletionStream, so that calls can be chained
43
+ */
44
+ once<Event extends keyof Events>(event: Event, listener: ListenerForEvent<Events, Event>): this;
45
+ /**
46
+ * This is similar to `.once()`, but returns a Promise that resolves the next time
47
+ * the event is triggered, instead of calling a listener callback.
48
+ * @returns a Promise that resolves the next time given event is triggered,
49
+ * or rejects if an error is emitted. (If you request the 'error' event,
50
+ * returns a promise that resolves with the error).
51
+ *
52
+ * Example:
53
+ *
54
+ * const message = await stream.emitted('message') // rejects if the stream errors
55
+ */
56
+ emitted<Event extends keyof Events>(event: Event): Promise<EventParameters<Events, Event> extends [infer Param] ? Param : EventParameters<Events, Event> extends [] ? void : EventParameters<Events, Event>>;
57
+ done(): Promise<void>;
58
+ /**
59
+ * @returns a promise that resolves with the final ChatCompletion, or rejects
60
+ * if an error occurred or the stream ended prematurely without producing a ChatCompletion.
61
+ */
62
+ finalChatCompletion(): Promise<ChatCompletion>;
63
+ /**
64
+ * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects
65
+ * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
66
+ */
67
+ finalContent(): Promise<string | null>;
68
+ /**
69
+ * @returns a promise that resolves with the the final ChatCompletionMessage, or rejects
70
+ * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
71
+ */
72
+ finalMessage(): Promise<ChatCompletionMessage>;
73
+ /**
74
+ * @returns a promise that resolves with the content of the final FunctionCall, or rejects
75
+ * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
76
+ */
77
+ finalFunctionCall(): Promise<ChatCompletionMessage.FunctionCall | undefined>;
78
+ finalFunctionCallResult(): Promise<string | undefined>;
79
+ totalUsage(): Promise<CompletionUsage>;
80
+ allChatCompletions(): ChatCompletion[];
81
+ protected _emit<Event extends keyof Events>(event: Event, ...args: EventParameters<Events, Event>): void;
82
+ protected _emitFinal(): void;
83
+ protected _createChatCompletion(completions: Completions, params: ChatCompletionCreateParams, options?: Core.RequestOptions): Promise<ChatCompletion>;
84
+ protected _runChatCompletion(completions: Completions, params: ChatCompletionCreateParams, options?: Core.RequestOptions): Promise<ChatCompletion>;
85
+ protected _runFunctions<FunctionsArgs extends BaseFunctionsArgs>(completions: Completions, params: ChatCompletionFunctionRunnerParams<FunctionsArgs> | ChatCompletionStreamingFunctionRunnerParams<FunctionsArgs>, options?: Core.RequestOptions & {
86
+ maxChatCompletions?: number;
87
+ }): Promise<void>;
88
+ }
89
+ type CustomEvents<Event extends string> = {
90
+ [k in Event]: k extends keyof AbstractChatCompletionRunnerEvents ? AbstractChatCompletionRunnerEvents[k] : (...args: any[]) => void;
91
+ };
92
+ type ListenerForEvent<Events extends CustomEvents<any>, Event extends keyof Events> = Event extends keyof AbstractChatCompletionRunnerEvents ? AbstractChatCompletionRunnerEvents[Event] : Events[Event];
93
+ type EventParameters<Events extends CustomEvents<any>, Event extends keyof Events> = Parameters<ListenerForEvent<Events, Event>>;
94
+ export interface AbstractChatCompletionRunnerEvents {
95
+ connect: () => void;
96
+ functionCall: (functionCall: ChatCompletionMessage.FunctionCall) => void;
97
+ message: (message: ChatCompletionMessage | ChatCompletionMessageParam) => void;
98
+ chatCompletion: (completion: ChatCompletion) => void;
99
+ finalContent: (contentSnapshot: string) => void;
100
+ finalMessage: (message: ChatCompletionMessage | ChatCompletionMessageParam) => void;
101
+ finalChatCompletion: (completion: ChatCompletion) => void;
102
+ finalFunctionCall: (functionCall: ChatCompletionMessage.FunctionCall) => void;
103
+ functionCallResult: (content: string) => void;
104
+ finalFunctionCallResult: (content: string) => void;
105
+ error: (error: OpenAIError) => void;
106
+ abort: (error: APIUserAbortError) => void;
107
+ end: () => void;
108
+ totalUsage: (usage: CompletionUsage) => void;
109
+ }
110
+ export {};
111
+ //# sourceMappingURL=AbstractChatCompletionRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractChatCompletionRunner.d.ts","sourceRoot":"","sources":["../src/lib/AbstractChatCompletionRunner.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,2CAA2C,EAAE,MAAM,iCAAiC,CAAC;AAE9F,8BAAsB,4BAA4B,CAChD,MAAM,SAAS,YAAY,CAAC,GAAG,CAAC,GAAG,kCAAkC;;IAErE,UAAU,EAAE,eAAe,CAAyB;IAYpD,SAAS,CAAC,gBAAgB,EAAE,cAAc,EAAE,CAAM;IAClD,QAAQ,EAAE,CAAC,qBAAqB,GAAG,0BAA0B,CAAC,EAAE,CAAM;;IA0BtE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;IAW3C,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,cAAc,GAAG,cAAc;IAQ5E,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,0BAA0B,EAAE,IAAI,UAAO;IAY9F,SAAS,CAAC,UAAU;IAMpB,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,KAAK;IAIL;;;;;;OAMG;IACH,EAAE,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI;IAO7F;;;;;;OAMG;IACH,GAAG,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI;IAQ9F;;;;OAIG;IACH,IAAI,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI;IAO/F;;;;;;;;;;OAUG;IACH,OAAO,CAAC,KAAK,SAAS,MAAM,MAAM,EAChC,KAAK,EAAE,KAAK,GACX,OAAO,CACR,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,GAC1D,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,GAChD,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CACjC;IAQK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,cAAc,CAAC;IAepD;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK5C;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAcpD;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,qBAAqB,CAAC,YAAY,GAAG,SAAS,CAAC;IAY5E,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAqBtD,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;IAK5C,kBAAkB,IAAI,cAAc,EAAE;IAoBtC,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;IAkCjG,SAAS,CAAC,UAAU;cAmBJ,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,GAC5B,OAAO,CAAC,cAAc,CAAC;cAcV,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,GAC5B,OAAO,CAAC,cAAc,CAAC;cAOV,aAAa,CAAC,aAAa,SAAS,iBAAiB,EACnE,WAAW,EAAE,WAAW,EACxB,MAAM,EACF,kCAAkC,CAAC,aAAa,CAAC,GACjD,2CAA2C,CAAC,aAAa,CAAC,EAC9D,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE;CAwElE;AAED,KAAK,YAAY,CAAC,KAAK,SAAS,MAAM,IAAI;KACvC,CAAC,IAAI,KAAK,GAAG,CAAC,SAAS,MAAM,kCAAkC,GAAG,kCAAkC,CAAC,CAAC,CAAC,GACtG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;CAC3B,CAAC;AAEF,KAAK,gBAAgB,CACnB,MAAM,SAAS,YAAY,CAAC,GAAG,CAAC,EAChC,KAAK,SAAS,MAAM,MAAM,IACxB,KAAK,SAAS,MAAM,kCAAkC,GAAG,kCAAkC,CAAC,KAAK,CAAC,GACpG,MAAM,CAAC,KAAK,CAAC,CAAC;AAMhB,KAAK,eAAe,CAAC,MAAM,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,MAAM,MAAM,IAAI,UAAU,CAC7F,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAChC,CAAC;AAEF,MAAM,WAAW,kCAAkC;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC,YAAY,KAAK,IAAI,CAAC;IACzE,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,GAAG,0BAA0B,KAAK,IAAI,CAAC;IAC/E,cAAc,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IACrD,YAAY,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,CAAC,OAAO,EAAE,qBAAqB,GAAG,0BAA0B,KAAK,IAAI,CAAC;IACpF,mBAAmB,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1D,iBAAiB,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC,YAAY,KAAK,IAAI,CAAC;IAC9E,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1C,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,UAAU,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CAC9C"}
@@ -0,0 +1,386 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _AbstractChatCompletionRunner_instances, _AbstractChatCompletionRunner_connectedPromise, _AbstractChatCompletionRunner_resolveConnectedPromise, _AbstractChatCompletionRunner_rejectConnectedPromise, _AbstractChatCompletionRunner_endPromise, _AbstractChatCompletionRunner_resolveEndPromise, _AbstractChatCompletionRunner_rejectEndPromise, _AbstractChatCompletionRunner_listeners, _AbstractChatCompletionRunner_ended, _AbstractChatCompletionRunner_errored, _AbstractChatCompletionRunner_aborted, _AbstractChatCompletionRunner_catchingPromiseCreated, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalFunctionCall, _AbstractChatCompletionRunner_getFinalFunctionCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_handleError;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AbstractChatCompletionRunner = void 0;
16
+ const error_1 = require("openai/error");
17
+ const RunnableFunction_1 = require("./RunnableFunction.js");
18
+ class AbstractChatCompletionRunner {
19
+ constructor() {
20
+ _AbstractChatCompletionRunner_instances.add(this);
21
+ this.controller = new AbortController();
22
+ _AbstractChatCompletionRunner_connectedPromise.set(this, void 0);
23
+ _AbstractChatCompletionRunner_resolveConnectedPromise.set(this, () => { });
24
+ _AbstractChatCompletionRunner_rejectConnectedPromise.set(this, () => { });
25
+ _AbstractChatCompletionRunner_endPromise.set(this, void 0);
26
+ _AbstractChatCompletionRunner_resolveEndPromise.set(this, () => { });
27
+ _AbstractChatCompletionRunner_rejectEndPromise.set(this, () => { });
28
+ _AbstractChatCompletionRunner_listeners.set(this, {});
29
+ this._chatCompletions = [];
30
+ this.messages = [];
31
+ _AbstractChatCompletionRunner_ended.set(this, false);
32
+ _AbstractChatCompletionRunner_errored.set(this, false);
33
+ _AbstractChatCompletionRunner_aborted.set(this, false);
34
+ _AbstractChatCompletionRunner_catchingPromiseCreated.set(this, false);
35
+ _AbstractChatCompletionRunner_handleError.set(this, (error) => {
36
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_errored, true, "f");
37
+ if (error instanceof Error && error.name === 'AbortError') {
38
+ error = new error_1.APIUserAbortError();
39
+ }
40
+ if (error instanceof error_1.APIUserAbortError) {
41
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_aborted, true, "f");
42
+ this._emit('abort', error);
43
+ }
44
+ const openAIError = error instanceof error_1.OpenAIError ? error : (new error_1.OpenAIError(error instanceof Error ? error.message : String(error)));
45
+ this._emit('error', openAIError);
46
+ });
47
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_connectedPromise, new Promise((resolve, reject) => {
48
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_resolveConnectedPromise, resolve, "f");
49
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_rejectConnectedPromise, reject, "f");
50
+ }), "f");
51
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_endPromise, new Promise((resolve, reject) => {
52
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_resolveEndPromise, resolve, "f");
53
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_rejectEndPromise, reject, "f");
54
+ }), "f");
55
+ // Don't let these promises cause unhandled rejection errors.
56
+ // we will manually cause an unhandled rejection error later
57
+ // if the user hasn't registered any error listener or called
58
+ // any promise-returning method.
59
+ __classPrivateFieldGet(this, _AbstractChatCompletionRunner_connectedPromise, "f").catch(() => { });
60
+ __classPrivateFieldGet(this, _AbstractChatCompletionRunner_endPromise, "f").catch(() => { });
61
+ }
62
+ _run(executor) {
63
+ // Unfortunately if we call `executor()` immediately we get runtime errors about
64
+ // references to `this` before the `super()` constructor call returns.
65
+ setTimeout(() => {
66
+ executor().then(() => {
67
+ this._emitFinal();
68
+ this._emit('end');
69
+ }, __classPrivateFieldGet(this, _AbstractChatCompletionRunner_handleError, "f"));
70
+ }, 0);
71
+ }
72
+ _addChatCompletion(chatCompletion) {
73
+ this._chatCompletions.push(chatCompletion);
74
+ this._emit('chatCompletion', chatCompletion);
75
+ const message = chatCompletion.choices[0]?.message;
76
+ if (message)
77
+ this._addMessage(message);
78
+ return chatCompletion;
79
+ }
80
+ _addMessage(message, emit = true) {
81
+ this.messages.push(message);
82
+ if (emit) {
83
+ this._emit('message', message);
84
+ if (message.role === 'function' && message.content) {
85
+ this._emit('functionCallResult', message.content);
86
+ }
87
+ else if (message.function_call) {
88
+ this._emit('functionCall', message.function_call);
89
+ }
90
+ }
91
+ }
92
+ _connected() {
93
+ if (this.ended)
94
+ return;
95
+ __classPrivateFieldGet(this, _AbstractChatCompletionRunner_resolveConnectedPromise, "f").call(this);
96
+ this._emit('connect');
97
+ }
98
+ get ended() {
99
+ return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_ended, "f");
100
+ }
101
+ get errored() {
102
+ return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_errored, "f");
103
+ }
104
+ get aborted() {
105
+ return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_aborted, "f");
106
+ }
107
+ abort() {
108
+ this.controller.abort();
109
+ }
110
+ /**
111
+ * Adds the listener function to the end of the listeners array for the event.
112
+ * No checks are made to see if the listener has already been added. Multiple calls passing
113
+ * the same combination of event and listener will result in the listener being added, and
114
+ * called, multiple times.
115
+ * @returns this ChatCompletionStream, so that calls can be chained
116
+ */
117
+ on(event, listener) {
118
+ const listeners = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] || (__classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] = []);
119
+ listeners.push({ listener });
120
+ return this;
121
+ }
122
+ /**
123
+ * Removes the specified listener from the listener array for the event.
124
+ * off() will remove, at most, one instance of a listener from the listener array. If any single
125
+ * listener has been added multiple times to the listener array for the specified event, then
126
+ * off() must be called multiple times to remove each instance.
127
+ * @returns this ChatCompletionStream, so that calls can be chained
128
+ */
129
+ off(event, listener) {
130
+ const listeners = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event];
131
+ if (!listeners)
132
+ return this;
133
+ const index = listeners.findIndex((l) => l.listener === listener);
134
+ if (index >= 0)
135
+ listeners.splice(index, 1);
136
+ return this;
137
+ }
138
+ /**
139
+ * Adds a one-time listener function for the event. The next time the event is triggered,
140
+ * this listener is removed and then invoked.
141
+ * @returns this ChatCompletionStream, so that calls can be chained
142
+ */
143
+ once(event, listener) {
144
+ const listeners = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] || (__classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] = []);
145
+ listeners.push({ listener, once: true });
146
+ return this;
147
+ }
148
+ /**
149
+ * This is similar to `.once()`, but returns a Promise that resolves the next time
150
+ * the event is triggered, instead of calling a listener callback.
151
+ * @returns a Promise that resolves the next time given event is triggered,
152
+ * or rejects if an error is emitted. (If you request the 'error' event,
153
+ * returns a promise that resolves with the error).
154
+ *
155
+ * Example:
156
+ *
157
+ * const message = await stream.emitted('message') // rejects if the stream errors
158
+ */
159
+ emitted(event) {
160
+ return new Promise((resolve, reject) => {
161
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_catchingPromiseCreated, true, "f");
162
+ if (event !== 'error')
163
+ this.once('error', reject);
164
+ this.once(event, resolve);
165
+ });
166
+ }
167
+ async done() {
168
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_catchingPromiseCreated, true, "f");
169
+ await __classPrivateFieldGet(this, _AbstractChatCompletionRunner_endPromise, "f");
170
+ }
171
+ /**
172
+ * @returns a promise that resolves with the final ChatCompletion, or rejects
173
+ * if an error occurred or the stream ended prematurely without producing a ChatCompletion.
174
+ */
175
+ async finalChatCompletion() {
176
+ await this.done();
177
+ const completion = this._chatCompletions[this._chatCompletions.length - 1];
178
+ if (!completion)
179
+ throw new error_1.OpenAIError('stream ended without producing a ChatCompletion');
180
+ return completion;
181
+ }
182
+ /**
183
+ * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects
184
+ * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
185
+ */
186
+ async finalContent() {
187
+ await this.done();
188
+ return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalContent).call(this);
189
+ }
190
+ /**
191
+ * @returns a promise that resolves with the the final ChatCompletionMessage, or rejects
192
+ * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
193
+ */
194
+ async finalMessage() {
195
+ await this.done();
196
+ const message = this.messages[this.messages.length - 1];
197
+ if (!message)
198
+ throw new error_1.OpenAIError('stream ended without producing a ChatCompletionMessage');
199
+ return message;
200
+ }
201
+ /**
202
+ * @returns a promise that resolves with the content of the final FunctionCall, or rejects
203
+ * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
204
+ */
205
+ async finalFunctionCall() {
206
+ await this.done();
207
+ return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalFunctionCall).call(this);
208
+ }
209
+ async finalFunctionCallResult() {
210
+ await this.done();
211
+ return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalFunctionCallResult).call(this);
212
+ }
213
+ async totalUsage() {
214
+ await this.done();
215
+ return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_calculateTotalUsage).call(this);
216
+ }
217
+ allChatCompletions() {
218
+ return [...this._chatCompletions];
219
+ }
220
+ _emit(event, ...args) {
221
+ // make sure we don't emit any events after end
222
+ if (__classPrivateFieldGet(this, _AbstractChatCompletionRunner_ended, "f"))
223
+ return;
224
+ if (event === 'end') {
225
+ __classPrivateFieldSet(this, _AbstractChatCompletionRunner_ended, true, "f");
226
+ __classPrivateFieldGet(this, _AbstractChatCompletionRunner_resolveEndPromise, "f").call(this);
227
+ }
228
+ const listeners = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event];
229
+ if (listeners) {
230
+ __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] = listeners.filter((l) => !l.once);
231
+ listeners.forEach(({ listener }) => listener(...args));
232
+ }
233
+ if (event === 'error') {
234
+ // NOTE: _emit('error', error) should only be called from #handleError().
235
+ const error = args[0];
236
+ if (!__classPrivateFieldGet(this, _AbstractChatCompletionRunner_catchingPromiseCreated, "f") && !listeners?.length) {
237
+ // Trigger an unhandled rejection if the user hasn't registered any error handlers.
238
+ // If you are seeing stack traces here, make sure to handle errors via either:
239
+ // - runner.on('error', () => ...)
240
+ // - await runner.done()
241
+ // - await runner.finalChatCompletion()
242
+ // - etc.
243
+ Promise.reject(error);
244
+ }
245
+ __classPrivateFieldGet(this, _AbstractChatCompletionRunner_rejectConnectedPromise, "f").call(this, error);
246
+ __classPrivateFieldGet(this, _AbstractChatCompletionRunner_rejectEndPromise, "f").call(this, error);
247
+ this._emit('end');
248
+ }
249
+ }
250
+ _emitFinal() {
251
+ const completion = this._chatCompletions[this._chatCompletions.length - 1];
252
+ if (completion)
253
+ this._emit('finalChatCompletion', completion);
254
+ const finalMessage = this.messages[this.messages.length - 1];
255
+ if (finalMessage)
256
+ this._emit('finalMessage', finalMessage);
257
+ const finalContent = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalContent).call(this);
258
+ if (finalContent)
259
+ this._emit('finalContent', finalContent);
260
+ const finalFunctionCall = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalFunctionCall).call(this);
261
+ if (finalFunctionCall)
262
+ this._emit('finalFunctionCall', finalFunctionCall);
263
+ const finalFunctionCallResult = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalFunctionCallResult).call(this);
264
+ if (finalFunctionCallResult != null)
265
+ this._emit('finalFunctionCallResult', finalFunctionCallResult);
266
+ if (this._chatCompletions.some((c) => c.usage)) {
267
+ this._emit('totalUsage', __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_calculateTotalUsage).call(this));
268
+ }
269
+ }
270
+ async _createChatCompletion(completions, params, options) {
271
+ const signal = options?.signal;
272
+ if (signal) {
273
+ if (signal.aborted)
274
+ this.controller.abort();
275
+ signal.addEventListener('abort', () => this.controller.abort());
276
+ }
277
+ const chatCompletion = await completions.create({ ...params, stream: false }, { ...options, signal: this.controller.signal });
278
+ this._connected();
279
+ return this._addChatCompletion(chatCompletion);
280
+ }
281
+ async _runChatCompletion(completions, params, options) {
282
+ for (const message of params.messages) {
283
+ this._addMessage(message, false);
284
+ }
285
+ return await this._createChatCompletion(completions, params, options);
286
+ }
287
+ async _runFunctions(completions, params, options) {
288
+ const { function_call = 'auto', stream, ...restParams } = params;
289
+ const isSingleFunctionCall = typeof function_call !== 'string' && function_call?.name;
290
+ const functionsByName = {};
291
+ for (const f of params.functions) {
292
+ functionsByName[f.name || f.function.name] = f;
293
+ }
294
+ const functions = params.functions.map((f) => ({
295
+ name: f.name || f.function.name,
296
+ parameters: f.parameters,
297
+ description: f.description,
298
+ }));
299
+ for (const message of params.messages) {
300
+ this._addMessage(message, false);
301
+ }
302
+ for (let i = 0; i < (options?.maxChatCompletions ?? 5); ++i) {
303
+ const chatCompletion = await this._createChatCompletion(completions, {
304
+ ...restParams,
305
+ function_call,
306
+ functions,
307
+ messages: [...this.messages],
308
+ }, options);
309
+ const message = chatCompletion.choices[0]?.message;
310
+ if (!message) {
311
+ throw new error_1.OpenAIError(`missing message in ChatCompletion response`);
312
+ }
313
+ if (!message.function_call)
314
+ return;
315
+ const { name, arguments: args } = message.function_call;
316
+ const fn = functionsByName[name];
317
+ if (!fn || (typeof function_call !== 'string' && name !== function_call?.name)) {
318
+ this._addMessage({
319
+ role: 'function',
320
+ name,
321
+ content: `Invalid function_call: ${JSON.stringify(name)}. Available options are: ${functions
322
+ .map((f) => JSON.stringify(f.name))
323
+ .join(', ')}. Please try again`,
324
+ });
325
+ if (isSingleFunctionCall)
326
+ return;
327
+ continue;
328
+ }
329
+ let parsed;
330
+ try {
331
+ parsed = (0, RunnableFunction_1.isRunnableFunctionWithParse)(fn) ? await fn.parse(args) : args;
332
+ }
333
+ catch (error) {
334
+ this._addMessage({
335
+ role: 'function',
336
+ name,
337
+ content: error instanceof Error ? error.message : String(error),
338
+ });
339
+ continue;
340
+ }
341
+ const rawContent = await fn.function(parsed, this);
342
+ const content = typeof rawContent === 'string' ? rawContent
343
+ : rawContent === undefined ? 'undefined'
344
+ : JSON.stringify(rawContent);
345
+ this._addMessage({ role: 'function', name, content });
346
+ if (isSingleFunctionCall)
347
+ return;
348
+ }
349
+ }
350
+ }
351
+ exports.AbstractChatCompletionRunner = AbstractChatCompletionRunner;
352
+ _AbstractChatCompletionRunner_connectedPromise = new WeakMap(), _AbstractChatCompletionRunner_resolveConnectedPromise = new WeakMap(), _AbstractChatCompletionRunner_rejectConnectedPromise = new WeakMap(), _AbstractChatCompletionRunner_endPromise = new WeakMap(), _AbstractChatCompletionRunner_resolveEndPromise = new WeakMap(), _AbstractChatCompletionRunner_rejectEndPromise = new WeakMap(), _AbstractChatCompletionRunner_listeners = new WeakMap(), _AbstractChatCompletionRunner_ended = new WeakMap(), _AbstractChatCompletionRunner_errored = new WeakMap(), _AbstractChatCompletionRunner_aborted = new WeakMap(), _AbstractChatCompletionRunner_catchingPromiseCreated = new WeakMap(), _AbstractChatCompletionRunner_handleError = new WeakMap(), _AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletionRunner_getFinalContent = function _AbstractChatCompletionRunner_getFinalContent() {
353
+ for (let i = this.messages.length - 1; i >= 0; i--) {
354
+ const message = this.messages[i];
355
+ if (message?.role === 'assistant')
356
+ return message.content;
357
+ }
358
+ return null;
359
+ }, _AbstractChatCompletionRunner_getFinalFunctionCall = function _AbstractChatCompletionRunner_getFinalFunctionCall() {
360
+ for (let i = this.messages.length - 1; i >= 0; i--) {
361
+ const message = this.messages[i];
362
+ if (message?.function_call)
363
+ return message.function_call;
364
+ }
365
+ }, _AbstractChatCompletionRunner_getFinalFunctionCallResult = function _AbstractChatCompletionRunner_getFinalFunctionCallResult() {
366
+ for (let i = this.messages.length - 1; i >= 0; i--) {
367
+ const message = this.messages[i];
368
+ if (message?.role === 'function' && message.content != null)
369
+ return message.content;
370
+ }
371
+ }, _AbstractChatCompletionRunner_calculateTotalUsage = function _AbstractChatCompletionRunner_calculateTotalUsage() {
372
+ const total = {
373
+ completion_tokens: 0,
374
+ prompt_tokens: 0,
375
+ total_tokens: 0,
376
+ };
377
+ for (const { usage } of this._chatCompletions) {
378
+ if (usage) {
379
+ total.completion_tokens += usage.completion_tokens;
380
+ total.prompt_tokens += usage.prompt_tokens;
381
+ total.total_tokens += usage.total_tokens;
382
+ }
383
+ }
384
+ return total;
385
+ };
386
+ //# sourceMappingURL=AbstractChatCompletionRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractChatCompletionRunner.js","sourceRoot":"","sources":["../src/lib/AbstractChatCompletionRunner.ts"],"names":[],"mappings":"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"}