@casual-simulation/aux-records 3.4.6-alpha.14668890889 → 3.5.0-alpha.15119114602
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/AIController.js +835 -890
- package/AIController.js.map +1 -1
- package/AIHumeInterface.js +43 -54
- package/AIHumeInterface.js.map +1 -1
- package/AIOpenAIRealtimeInterface.js +60 -71
- package/AIOpenAIRealtimeInterface.js.map +1 -1
- package/AnthropicAIChatInterface.js +96 -142
- package/AnthropicAIChatInterface.js.map +1 -1
- package/AuthController.d.ts +3 -2
- package/AuthController.js +1907 -1933
- package/AuthController.js.map +1 -1
- package/AuthStore.d.ts +1 -10
- package/BlockadeLabsGenerateSkyboxInterface.js +57 -72
- package/BlockadeLabsGenerateSkyboxInterface.js.map +1 -1
- package/CachingConfigStore.js +30 -45
- package/CachingConfigStore.js.map +1 -1
- package/CachingPolicyStore.d.ts +8 -2
- package/CachingPolicyStore.js +108 -135
- package/CachingPolicyStore.js.map +1 -1
- package/ComIdConfig.d.ts +18 -18
- package/ComIdConfig.js.map +1 -1
- package/ConsoleAuthMessenger.js +7 -20
- package/ConsoleAuthMessenger.js.map +1 -1
- package/DataRecordsController.d.ts +2 -2
- package/DataRecordsController.js +369 -377
- package/DataRecordsController.js.map +1 -1
- package/DataRecordsStore.d.ts +1 -1
- package/DataRecordsStore.js +1 -1
- package/DataRecordsStore.js.map +1 -1
- package/EventRecordsController.js +226 -240
- package/EventRecordsController.js.map +1 -1
- package/FileRecordsController.d.ts +13 -2
- package/FileRecordsController.js +458 -450
- package/FileRecordsController.js.map +1 -1
- package/GoogleAIChatInterface.js +133 -179
- package/GoogleAIChatInterface.js.map +1 -1
- package/LivekitController.js +43 -54
- package/LivekitController.js.map +1 -1
- package/LoomController.js +64 -75
- package/LoomController.js.map +1 -1
- package/MemoryAuthMessenger.js +10 -23
- package/MemoryAuthMessenger.js.map +1 -1
- package/MemoryCache.js +18 -35
- package/MemoryCache.js.map +1 -1
- package/MemoryFileRecordsLookup.js +105 -125
- package/MemoryFileRecordsLookup.js.map +1 -1
- package/MemoryModerationJobProvider.js +17 -30
- package/MemoryModerationJobProvider.js.map +1 -1
- package/MemoryRateLimiter.js +12 -27
- package/MemoryRateLimiter.js.map +1 -1
- package/MemoryStore.d.ts +18 -6
- package/MemoryStore.js +1879 -1997
- package/MemoryStore.js.map +1 -1
- package/MetricsStore.d.ts +2 -2
- package/ModerationController.js +186 -200
- package/ModerationController.js.map +1 -1
- package/OpenAIChatInterface.js +105 -135
- package/OpenAIChatInterface.js.map +1 -1
- package/OpenAIImageInterface.js +57 -51
- package/OpenAIImageInterface.js.map +1 -1
- package/PolicyController.d.ts +150 -10
- package/PolicyController.js +1546 -1299
- package/PolicyController.js.map +1 -1
- package/PolicyStore.d.ts +110 -2
- package/PolicyStore.js +36 -1
- package/PolicyStore.js.map +1 -1
- package/PrivoClient.js +398 -435
- package/PrivoClient.js.map +1 -1
- package/RateLimitController.js +25 -36
- package/RateLimitController.js.map +1 -1
- package/RecordsClient.js +51 -74
- package/RecordsClient.js.map +1 -1
- package/RecordsController.d.ts +2 -42
- package/RecordsController.js +1026 -1182
- package/RecordsController.js.map +1 -1
- package/RecordsServer.d.ts +196 -27
- package/RecordsServer.js +1701 -1343
- package/RecordsServer.js.map +1 -1
- package/RecordsStore.d.ts +1 -10
- package/RecordsStore.js.map +1 -1
- package/ServerConfig.d.ts +339 -195
- package/ServerConfig.js +13 -0
- package/ServerConfig.js.map +1 -1
- package/SloydInterface.js +62 -75
- package/SloydInterface.js.map +1 -1
- package/StabilityAIImageInterface.js +150 -167
- package/StabilityAIImageInterface.js.map +1 -1
- package/SubscriptionConfigBuilder.d.ts +6 -1
- package/SubscriptionConfigBuilder.js +22 -0
- package/SubscriptionConfigBuilder.js.map +1 -1
- package/SubscriptionConfiguration.d.ts +266 -169
- package/SubscriptionConfiguration.js +101 -79
- package/SubscriptionConfiguration.js.map +1 -1
- package/SubscriptionController.d.ts +2 -1
- package/SubscriptionController.js +643 -650
- package/SubscriptionController.js.map +1 -1
- package/SystemNotificationMessenger.d.ts +21 -4
- package/SystemNotificationMessenger.js +36 -30
- package/SystemNotificationMessenger.js.map +1 -1
- package/TestUtils.d.ts +9 -1
- package/TestUtils.js +105 -129
- package/TestUtils.js.map +1 -1
- package/Utils.d.ts +2 -16
- package/Utils.js +21 -22
- package/Utils.js.map +1 -1
- package/crud/CrudHelpers.js +17 -26
- package/crud/CrudHelpers.js.map +1 -1
- package/crud/CrudRecordsController.d.ts +1 -1
- package/crud/CrudRecordsController.js +259 -267
- package/crud/CrudRecordsController.js.map +1 -1
- package/crud/CrudRecordsControllerTests.js +174 -185
- package/crud/CrudRecordsControllerTests.js.map +1 -1
- package/crud/CrudRecordsStore.d.ts +7 -3
- package/crud/MemoryCrudRecordsStore.d.ts +4 -4
- package/crud/MemoryCrudRecordsStore.js +98 -118
- package/crud/MemoryCrudRecordsStore.js.map +1 -1
- package/crud/sub/MemorySubCrudRecordsStore.d.ts +24 -0
- package/crud/sub/MemorySubCrudRecordsStore.js +146 -0
- package/crud/sub/MemorySubCrudRecordsStore.js.map +1 -0
- package/crud/sub/SubCrudRecordsController.d.ts +182 -0
- package/crud/sub/SubCrudRecordsController.js +360 -0
- package/crud/sub/SubCrudRecordsController.js.map +1 -0
- package/crud/sub/SubCrudRecordsControllerTests.d.ts +39 -0
- package/crud/sub/SubCrudRecordsControllerTests.js +821 -0
- package/crud/sub/SubCrudRecordsControllerTests.js.map +1 -0
- package/crud/sub/SubCrudRecordsStore.d.ts +95 -0
- package/{forms/index.js → crud/sub/SubCrudRecordsStore.js} +2 -2
- package/crud/sub/SubCrudRecordsStore.js.map +1 -0
- package/crud/sub/index.d.ts +3 -0
- package/crud/sub/index.js +20 -0
- package/{forms → crud/sub}/index.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/notifications/MemoryNotificationRecordsStore.js +189 -198
- package/notifications/MemoryNotificationRecordsStore.js.map +1 -1
- package/notifications/NotificationRecordsController.js +438 -460
- package/notifications/NotificationRecordsController.js.map +1 -1
- package/notifications/NotificationRecordsStore.d.ts +2 -1
- package/notifications/WebPushInterface.d.ts +0 -1
- package/notifications/WebPushInterface.js +0 -1
- package/notifications/WebPushInterface.js.map +1 -1
- package/package.json +6 -6
- package/packages/MemoryPackageRecordsStore.d.ts +10 -0
- package/packages/MemoryPackageRecordsStore.js +38 -0
- package/packages/MemoryPackageRecordsStore.js.map +1 -0
- package/packages/PackageRecordsController.d.ts +26 -0
- package/packages/PackageRecordsController.js +49 -0
- package/packages/PackageRecordsController.js.map +1 -0
- package/packages/PackageRecordsStore.d.ts +32 -0
- package/packages/PackageRecordsStore.js +19 -0
- package/packages/PackageRecordsStore.js.map +1 -0
- package/packages/index.d.ts +4 -0
- package/packages/index.js +21 -0
- package/packages/index.js.map +1 -0
- package/packages/version/MemoryPackageVersionRecordsStore.d.ts +21 -0
- package/packages/version/MemoryPackageVersionRecordsStore.js +177 -0
- package/packages/version/MemoryPackageVersionRecordsStore.js.map +1 -0
- package/packages/version/PackageVersionRecordsController.d.ts +144 -0
- package/packages/version/PackageVersionRecordsController.js +656 -0
- package/packages/version/PackageVersionRecordsController.js.map +1 -0
- package/packages/version/PackageVersionRecordsStore.d.ts +342 -0
- package/packages/version/PackageVersionRecordsStore.js +126 -0
- package/packages/version/PackageVersionRecordsStore.js.map +1 -0
- package/packages/version/index.d.ts +4 -0
- package/packages/version/index.js +21 -0
- package/packages/version/index.js.map +1 -0
- package/tracing/TracingDecorators.js +31 -40
- package/tracing/TracingDecorators.js.map +1 -1
- package/webhooks/MemoryWebhookRecordsStore.js +56 -72
- package/webhooks/MemoryWebhookRecordsStore.js.map +1 -1
- package/webhooks/WebhookEnvironment.d.ts +3 -3
- package/webhooks/WebhookRecordsController.d.ts +2 -1
- package/webhooks/WebhookRecordsController.js +389 -382
- package/webhooks/WebhookRecordsController.js.map +1 -1
- package/webhooks/WebhookRecordsStore.d.ts +2 -1
- package/websockets/InstRecordsStore.d.ts +50 -0
- package/websockets/InstRecordsStore.js +17 -0
- package/websockets/InstRecordsStore.js.map +1 -1
- package/websockets/MemoryTempInstRecordsStore.d.ts +5 -0
- package/websockets/MemoryTempInstRecordsStore.js +168 -179
- package/websockets/MemoryTempInstRecordsStore.js.map +1 -1
- package/websockets/MemoryWebsocketConnectionStore.js +98 -135
- package/websockets/MemoryWebsocketConnectionStore.js.map +1 -1
- package/websockets/MemoryWebsocketMessenger.js +29 -48
- package/websockets/MemoryWebsocketMessenger.js.map +1 -1
- package/websockets/SplitInstRecordsStore.d.ts +4 -1
- package/websockets/SplitInstRecordsStore.js +167 -185
- package/websockets/SplitInstRecordsStore.js.map +1 -1
- package/websockets/TemporaryInstRecordsStore.d.ts +19 -1
- package/websockets/TemporaryInstRecordsStore.js +17 -0
- package/websockets/TemporaryInstRecordsStore.js.map +1 -1
- package/websockets/WebsocketController.d.ts +147 -3
- package/websockets/WebsocketController.js +1735 -1391
- package/websockets/WebsocketController.js.map +1 -1
- package/websockets/index.d.ts +0 -1
- package/websockets/index.js +0 -1
- package/websockets/index.js.map +1 -1
- package/AAGUID.d.ts +0 -11
- package/AAGUID.js +0 -116
- package/AAGUID.js.map +0 -1
- package/AuthUtils.d.ts +0 -162
- package/AuthUtils.js +0 -327
- package/AuthUtils.js.map +0 -1
- package/forms/FormError.d.ts +0 -43
- package/forms/FormError.js +0 -56
- package/forms/FormError.js.map +0 -1
- package/forms/index.d.ts +0 -2
- package/websockets/Utils.d.ts +0 -33
- package/websockets/Utils.js +0 -82
- package/websockets/Utils.js.map +0 -1
package/OpenAIChatInterface.js
CHANGED
|
@@ -4,35 +4,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
17
|
-
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
18
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
19
|
-
var m = o[Symbol.asyncIterator], i;
|
|
20
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
21
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
22
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
23
|
-
};
|
|
24
|
-
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
25
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
26
|
-
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
27
|
-
return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
28
|
-
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
29
|
-
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
30
|
-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
31
|
-
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
32
|
-
function fulfill(value) { resume("next", value); }
|
|
33
|
-
function reject(value) { resume("throw", value); }
|
|
34
|
-
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
35
|
-
};
|
|
36
7
|
/* CasualOS is a set of web-based tools designed to facilitate the creation of real-time, multi-user, context-aware interactive experiences.
|
|
37
8
|
*
|
|
38
9
|
* Copyright (c) 2019-2025 Casual Simulation, Inc.
|
|
@@ -84,93 +55,19 @@ export class OpenAIChatInterface {
|
|
|
84
55
|
});
|
|
85
56
|
this._additionalProperties = (_b = options.additionalProperties) !== null && _b !== void 0 ? _b : {};
|
|
86
57
|
}
|
|
87
|
-
chat(request) {
|
|
88
|
-
var _a, _b;
|
|
89
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
try {
|
|
91
|
-
if (this._options.name) {
|
|
92
|
-
const span = trace.getActiveSpan();
|
|
93
|
-
if (span) {
|
|
94
|
-
span.setAttribute('chat.interface.name', this._options.name);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
const result = yield axios.post(`${this._baseUrl}chat/completions`, Object.assign(Object.assign({}, this._additionalProperties), { model: request.model, messages: request.messages.map((m) => ({
|
|
98
|
-
role: m.role,
|
|
99
|
-
content: typeof m.content === 'string'
|
|
100
|
-
? m.content
|
|
101
|
-
: m.content.map((c) => 'text' in c
|
|
102
|
-
? {
|
|
103
|
-
type: 'text',
|
|
104
|
-
text: c.text,
|
|
105
|
-
}
|
|
106
|
-
: 'url' in c
|
|
107
|
-
? {
|
|
108
|
-
type: 'image_url',
|
|
109
|
-
image_url: {
|
|
110
|
-
url: c.url,
|
|
111
|
-
},
|
|
112
|
-
}
|
|
113
|
-
: {
|
|
114
|
-
type: 'image_url',
|
|
115
|
-
image_url: {
|
|
116
|
-
url: `data:${c.mimeType ||
|
|
117
|
-
'image/png'};base64,${c.base64}`,
|
|
118
|
-
},
|
|
119
|
-
}),
|
|
120
|
-
name: m.author,
|
|
121
|
-
function_call: m.functionCall,
|
|
122
|
-
})), temperature: request.temperature, top_p: request.topP, presence_penalty: request.presencePenalty, frequency_penalty: request.frequencyPenalty, stop: request.stopWords, user: request.userId }), {
|
|
123
|
-
headers: {
|
|
124
|
-
Authorization: `Bearer ${this._options.apiKey}`,
|
|
125
|
-
},
|
|
126
|
-
});
|
|
127
|
-
console.log(`[${this._name}] [${request.userId}] [chat]: Total tokens: ${result.data.usage.total_tokens}`);
|
|
128
|
-
console.log(`[${this._name}] [${request.userId}] [chat]: Usage:`, result.data.usage);
|
|
129
|
-
let choices = result.data.choices.map((c) => ({
|
|
130
|
-
role: c.message.role,
|
|
131
|
-
content: c.message.content,
|
|
132
|
-
author: c.message.name,
|
|
133
|
-
functionCall: c.message.function_call,
|
|
134
|
-
finishReason: c.finishReason,
|
|
135
|
-
}));
|
|
136
|
-
return {
|
|
137
|
-
choices: choices,
|
|
138
|
-
totalTokens: (_b = (_a = result.data.usage) === null || _a === void 0 ? void 0 : _a.total_tokens) !== null && _b !== void 0 ? _b : 0,
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
catch (err) {
|
|
142
|
-
if (axios.isAxiosError(err)) {
|
|
143
|
-
if (err.response.status === 400) {
|
|
144
|
-
const span = trace.getActiveSpan();
|
|
145
|
-
span === null || span === void 0 ? void 0 : span.recordException(err);
|
|
146
|
-
span === null || span === void 0 ? void 0 : span.setStatus({ code: SpanStatusCode.ERROR });
|
|
147
|
-
console.error(`[${this._name}] [${request.userId}] [chat]: Bad request: ${err.response.data.error.message}`);
|
|
148
|
-
return {
|
|
149
|
-
choices: [
|
|
150
|
-
{
|
|
151
|
-
role: 'system',
|
|
152
|
-
content: `Error: ${err.response.data.error.message}`,
|
|
153
|
-
},
|
|
154
|
-
],
|
|
155
|
-
totalTokens: 0,
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
handleAxiosErrors(err);
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
chatStream(request) {
|
|
58
|
+
async chat(request) {
|
|
164
59
|
var _a, _b;
|
|
165
|
-
|
|
166
|
-
var _c, e_1, _d, _e;
|
|
60
|
+
try {
|
|
167
61
|
if (this._options.name) {
|
|
168
62
|
const span = trace.getActiveSpan();
|
|
169
63
|
if (span) {
|
|
170
64
|
span.setAttribute('chat.interface.name', this._options.name);
|
|
171
65
|
}
|
|
172
66
|
}
|
|
173
|
-
const
|
|
67
|
+
const result = await axios.post(`${this._baseUrl}chat/completions`, {
|
|
68
|
+
...this._additionalProperties,
|
|
69
|
+
model: request.model,
|
|
70
|
+
messages: request.messages.map((m) => ({
|
|
174
71
|
role: m.role,
|
|
175
72
|
content: typeof m.content === 'string'
|
|
176
73
|
? m.content
|
|
@@ -189,39 +86,112 @@ export class OpenAIChatInterface {
|
|
|
189
86
|
: {
|
|
190
87
|
type: 'image_url',
|
|
191
88
|
image_url: {
|
|
192
|
-
url: `data:${c.mimeType ||
|
|
89
|
+
url: `data:${c.mimeType ||
|
|
90
|
+
'image/png'};base64,${c.base64}`,
|
|
193
91
|
},
|
|
194
92
|
}),
|
|
195
93
|
name: m.author,
|
|
196
|
-
|
|
197
|
-
})),
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
94
|
+
function_call: m.functionCall,
|
|
95
|
+
})),
|
|
96
|
+
temperature: request.temperature,
|
|
97
|
+
top_p: request.topP,
|
|
98
|
+
presence_penalty: request.presencePenalty,
|
|
99
|
+
frequency_penalty: request.frequencyPenalty,
|
|
100
|
+
stop: request.stopWords,
|
|
101
|
+
user: request.userId,
|
|
102
|
+
}, {
|
|
103
|
+
headers: {
|
|
104
|
+
Authorization: `Bearer ${this._options.apiKey}`,
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
console.log(`[${this._name}] [${request.userId}] [chat]: Total tokens: ${result.data.usage.total_tokens}`);
|
|
108
|
+
console.log(`[${this._name}] [${request.userId}] [chat]: Usage:`, result.data.usage);
|
|
109
|
+
let choices = result.data.choices.map((c) => ({
|
|
110
|
+
role: c.message.role,
|
|
111
|
+
content: c.message.content,
|
|
112
|
+
author: c.message.name,
|
|
113
|
+
functionCall: c.message.function_call,
|
|
114
|
+
finishReason: c.finishReason,
|
|
115
|
+
}));
|
|
116
|
+
return {
|
|
117
|
+
choices: choices,
|
|
118
|
+
totalTokens: (_b = (_a = result.data.usage) === null || _a === void 0 ? void 0 : _a.total_tokens) !== null && _b !== void 0 ? _b : 0,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
if (axios.isAxiosError(err)) {
|
|
123
|
+
if (err.response.status === 400) {
|
|
124
|
+
const span = trace.getActiveSpan();
|
|
125
|
+
span === null || span === void 0 ? void 0 : span.recordException(err);
|
|
126
|
+
span === null || span === void 0 ? void 0 : span.setStatus({ code: SpanStatusCode.ERROR });
|
|
127
|
+
console.error(`[${this._name}] [${request.userId}] [chat]: Bad request: ${err.response.data.error.message}`);
|
|
128
|
+
return {
|
|
129
|
+
choices: [
|
|
130
|
+
{
|
|
131
|
+
role: 'system',
|
|
132
|
+
content: `Error: ${err.response.data.error.message}`,
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
totalTokens: 0,
|
|
136
|
+
};
|
|
215
137
|
}
|
|
216
138
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
139
|
+
handleAxiosErrors(err);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async *chatStream(request) {
|
|
143
|
+
var _a, _b;
|
|
144
|
+
if (this._options.name) {
|
|
145
|
+
const span = trace.getActiveSpan();
|
|
146
|
+
if (span) {
|
|
147
|
+
span.setAttribute('chat.interface.name', this._options.name);
|
|
223
148
|
}
|
|
149
|
+
}
|
|
150
|
+
const res = await this._client.chat.completions.create({
|
|
151
|
+
...this._additionalProperties,
|
|
152
|
+
model: request.model,
|
|
153
|
+
messages: request.messages.map((m) => ({
|
|
154
|
+
role: m.role,
|
|
155
|
+
content: typeof m.content === 'string'
|
|
156
|
+
? m.content
|
|
157
|
+
: m.content.map((c) => 'text' in c
|
|
158
|
+
? {
|
|
159
|
+
type: 'text',
|
|
160
|
+
text: c.text,
|
|
161
|
+
}
|
|
162
|
+
: 'url' in c
|
|
163
|
+
? {
|
|
164
|
+
type: 'image_url',
|
|
165
|
+
image_url: {
|
|
166
|
+
url: c.url,
|
|
167
|
+
},
|
|
168
|
+
}
|
|
169
|
+
: {
|
|
170
|
+
type: 'image_url',
|
|
171
|
+
image_url: {
|
|
172
|
+
url: `data:${c.mimeType || 'image/png'};base64,${c.base64}`,
|
|
173
|
+
},
|
|
174
|
+
}),
|
|
175
|
+
name: m.author,
|
|
176
|
+
function: m.functionCall,
|
|
177
|
+
})),
|
|
178
|
+
stream: true,
|
|
179
|
+
stream_options: {
|
|
180
|
+
include_usage: true,
|
|
181
|
+
},
|
|
224
182
|
});
|
|
183
|
+
for await (const chunk of res) {
|
|
184
|
+
yield {
|
|
185
|
+
choices: chunk.choices.map((c) => ({
|
|
186
|
+
content: c.delta.content,
|
|
187
|
+
role: c.delta.role,
|
|
188
|
+
finishReason: c.finish_reason,
|
|
189
|
+
functionCall: c.delta
|
|
190
|
+
.function_call,
|
|
191
|
+
})),
|
|
192
|
+
totalTokens: (_b = (_a = chunk.usage) === null || _a === void 0 ? void 0 : _a.total_tokens) !== null && _b !== void 0 ? _b : 0,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
225
195
|
}
|
|
226
196
|
}
|
|
227
197
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIChatInterface.js","sourceRoot":"","sources":["OpenAIChatInterface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenAIChatInterface.js","sourceRoot":"","sources":["OpenAIChatInterface.ts"],"names":[],"mappings":"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"}
|
package/OpenAIImageInterface.js
CHANGED
|
@@ -1,18 +1,26 @@
|
|
|
1
|
+
/* CasualOS is a set of web-based tools designed to facilitate the creation of real-time, multi-user, context-aware interactive experiences.
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) 2019-2025 Casual Simulation, Inc.
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as
|
|
7
|
+
* published by the Free Software Foundation, either version 3 of the
|
|
8
|
+
* License, or (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
1
18
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
19
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
20
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
21
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
22
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
23
|
};
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
24
|
import axios from 'axios';
|
|
17
25
|
import { handleAxiosErrors } from './Utils';
|
|
18
26
|
import { traced } from './tracing/TracingDecorators';
|
|
@@ -32,51 +40,49 @@ export class OpenAIImageInterface {
|
|
|
32
40
|
constructor(options) {
|
|
33
41
|
this._options = options;
|
|
34
42
|
}
|
|
35
|
-
generateImage(request) {
|
|
43
|
+
async generateImage(request) {
|
|
36
44
|
var _a, _b, _c, _d, _e;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
};
|
|
75
|
-
}
|
|
45
|
+
try {
|
|
46
|
+
const size = `${(_b = (_a = request.width) !== null && _a !== void 0 ? _a : this._options.defaultWidth) !== null && _b !== void 0 ? _b : 1024}x${(_d = (_c = request.height) !== null && _c !== void 0 ? _c : this._options.defaultHeight) !== null && _d !== void 0 ? _d : 1024}`;
|
|
47
|
+
console.log(`[OpenAIImageInterface] [${request.userId}] [generateImage]: Generating image...`);
|
|
48
|
+
const result = await axios.post('https://api.openai.com/v1/images/generations', {
|
|
49
|
+
model: request.model,
|
|
50
|
+
prompt: request.prompt,
|
|
51
|
+
n: (_e = request.numberOfImages) !== null && _e !== void 0 ? _e : 1,
|
|
52
|
+
size,
|
|
53
|
+
response_format: 'b64_json',
|
|
54
|
+
user: request.userId,
|
|
55
|
+
}, {
|
|
56
|
+
headers: {
|
|
57
|
+
Authorization: `Bearer ${this._options.apiKey}`,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
console.log(`[OpenAIImageInterface] [${request.userId}] [generateImage]: Done!`);
|
|
61
|
+
const images = result.data.data.map((d) => ({
|
|
62
|
+
base64: d.b64_json,
|
|
63
|
+
mimeType: 'image/png',
|
|
64
|
+
}));
|
|
65
|
+
return {
|
|
66
|
+
success: true,
|
|
67
|
+
images,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
if (axios.isAxiosError(err)) {
|
|
72
|
+
if (err.response.status === 400) {
|
|
73
|
+
const span = trace.getActiveSpan();
|
|
74
|
+
span === null || span === void 0 ? void 0 : span.recordException(err);
|
|
75
|
+
span === null || span === void 0 ? void 0 : span.setStatus({ code: SpanStatusCode.ERROR });
|
|
76
|
+
console.error(`[OpenAIChatInterface] [${request.userId}] [generateImage]: Bad request: ${err.response.data.error.message}`);
|
|
77
|
+
return {
|
|
78
|
+
success: false,
|
|
79
|
+
errorCode: 'invalid_request',
|
|
80
|
+
errorMessage: err.response.data.error.message,
|
|
81
|
+
};
|
|
76
82
|
}
|
|
77
|
-
handleAxiosErrors(err);
|
|
78
83
|
}
|
|
79
|
-
|
|
84
|
+
handleAxiosErrors(err);
|
|
85
|
+
}
|
|
80
86
|
}
|
|
81
87
|
}
|
|
82
88
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIImageInterface.js","sourceRoot":"","sources":["OpenAIImageInterface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenAIImageInterface.js","sourceRoot":"","sources":["OpenAIImageInterface.ts"],"names":[],"mappings":"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"}
|