@llumiverse/core 0.8.3 → 0.9.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.
- package/lib/cjs/async.js +21 -1
- package/lib/cjs/async.js.map +1 -1
- package/lib/cjs/json.js +190 -4
- package/lib/cjs/json.js.map +1 -1
- package/lib/cjs/types.js +1 -0
- package/lib/cjs/types.js.map +1 -1
- package/lib/cjs/validation.js +1 -1
- package/lib/cjs/validation.js.map +1 -1
- package/lib/esm/async.js +19 -0
- package/lib/esm/async.js.map +1 -1
- package/lib/esm/json.js +187 -3
- package/lib/esm/json.js.map +1 -1
- package/lib/esm/types.js +1 -0
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/validation.js +2 -2
- package/lib/esm/validation.js.map +1 -1
- package/lib/types/Driver.d.ts +1 -1
- package/lib/types/Driver.d.ts.map +1 -1
- package/lib/types/async.d.ts +5 -0
- package/lib/types/async.d.ts.map +1 -1
- package/lib/types/json.d.ts +15 -1
- package/lib/types/json.d.ts.map +1 -1
- package/lib/types/types.d.ts +6 -2
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/Driver.ts +1 -1
- package/src/async.ts +19 -0
- package/src/json.ts +186 -4
- package/src/types.ts +6 -1
- package/src/validation.ts +2 -2
package/lib/cjs/async.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformAsyncIterator = exports.EventStream = exports.oneAsyncIterator = exports.asyncMap = void 0;
|
|
3
|
+
exports.transformAsyncIterator = exports.EventStream = exports.transformSSEStream = exports.oneAsyncIterator = exports.asyncMap = void 0;
|
|
4
4
|
async function* asyncMap(asyncIterable, callback) {
|
|
5
5
|
let i = 0;
|
|
6
6
|
for await (const val of asyncIterable)
|
|
@@ -15,6 +15,26 @@ function oneAsyncIterator(value) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
exports.oneAsyncIterator = oneAsyncIterator;
|
|
18
|
+
/**
|
|
19
|
+
* Given a ReadableStream of server seent events, tran
|
|
20
|
+
*/
|
|
21
|
+
function transformSSEStream(stream, transform) {
|
|
22
|
+
// on node and bun the readablestream is an async iterable
|
|
23
|
+
return stream.pipeThrough(new TransformStream({
|
|
24
|
+
transform(event, controller) {
|
|
25
|
+
if (event.type === 'event' && event.data && event.data !== '[DONE]') {
|
|
26
|
+
try {
|
|
27
|
+
controller.enqueue(transform(event.data) ?? '');
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
// double check for the last event whicb is not a JSON - at this time togetherai and mistralai returrns the string [DONE]
|
|
31
|
+
// do nothing - happens if data is not a JSON - the last event data is the [DONE] string
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
exports.transformSSEStream = transformSSEStream;
|
|
18
38
|
class EventStream {
|
|
19
39
|
queue = [];
|
|
20
40
|
pending;
|
package/lib/cjs/async.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/async.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/async.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/json.js
CHANGED
|
@@ -1,14 +1,200 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseJSON = void 0;
|
|
3
|
+
exports.parseJSON = exports.JsonParser = exports.extractAndParseJSON = void 0;
|
|
4
4
|
function extractJsonFromText(text) {
|
|
5
5
|
const start = text.indexOf("{");
|
|
6
6
|
const end = text.lastIndexOf("}");
|
|
7
|
-
|
|
7
|
+
text = text.substring(start, end + 1);
|
|
8
|
+
return text.replace(/\\n/g, "");
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
+
function extractAndParseJSON(text) {
|
|
11
|
+
return parseJSON(extractJsonFromText(text));
|
|
12
|
+
}
|
|
13
|
+
exports.extractAndParseJSON = extractAndParseJSON;
|
|
14
|
+
const RX_DQUOTE = /^"([^"\\]|\\.)*"/us;
|
|
15
|
+
const RX_SQUOTE = /^'([^'\\]|\\.)*'/us;
|
|
16
|
+
const RX_NUMBER = /^-?\d+(\.\d+)?/;
|
|
17
|
+
const RX_BOOLEAN = /^true|false/;
|
|
18
|
+
const RX_NULL = /^null/;
|
|
19
|
+
const RX_KEY = /^[$_a-zA-Z][$_a-zA-Z0-9]*/;
|
|
20
|
+
const RX_PUNCTUATION = /^\s*([\[\]{}:,])\s*/;
|
|
21
|
+
function fixText(value) {
|
|
22
|
+
return value.replaceAll('\n', '\\n').replaceAll('\r', '\\r');
|
|
23
|
+
}
|
|
24
|
+
function decodeSingleQuotedString(value) {
|
|
25
|
+
return JSON.parse('"' + value.slice(1, -1).replaceAll(/(?<!\\)"/g, '\\"') + '"');
|
|
26
|
+
}
|
|
27
|
+
class JsonParser {
|
|
28
|
+
text;
|
|
29
|
+
pos = 0;
|
|
30
|
+
constructor(text) {
|
|
31
|
+
this.text = text;
|
|
32
|
+
}
|
|
33
|
+
skip(n) {
|
|
34
|
+
this.text = this.text.substring(n);
|
|
35
|
+
this.pos += n;
|
|
36
|
+
}
|
|
37
|
+
tryReadPunctuation() {
|
|
38
|
+
const m = RX_PUNCTUATION.exec(this.text);
|
|
39
|
+
if (m) {
|
|
40
|
+
this.skip(m[0].length);
|
|
41
|
+
return m[1];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
readKey() {
|
|
45
|
+
const first = this.text.charCodeAt(0);
|
|
46
|
+
if (first === 34) { // "
|
|
47
|
+
const m = RX_DQUOTE.exec(this.text);
|
|
48
|
+
if (m) {
|
|
49
|
+
this.skip(m[0].length);
|
|
50
|
+
return JSON.parse(m[0]);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else if (first === 39) { // '
|
|
54
|
+
const m = RX_SQUOTE.exec(this.text);
|
|
55
|
+
if (m) {
|
|
56
|
+
this.skip(m[0].length);
|
|
57
|
+
return decodeSingleQuotedString(m[0]);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const m = RX_KEY.exec(this.text);
|
|
62
|
+
if (m) {
|
|
63
|
+
this.skip(m[0].length);
|
|
64
|
+
return m[0];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
throw new Error('Expected a key at position ' + this.pos + ' but found ' + this.text);
|
|
68
|
+
}
|
|
69
|
+
readScalar() {
|
|
70
|
+
const first = this.text.charCodeAt(0);
|
|
71
|
+
if (first === 34) { // "
|
|
72
|
+
const m = RX_DQUOTE.exec(this.text);
|
|
73
|
+
if (m) {
|
|
74
|
+
this.skip(m[0].length);
|
|
75
|
+
return JSON.parse(fixText(m[0]));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else if (first === 39) { // '
|
|
79
|
+
const m = RX_SQUOTE.exec(this.text);
|
|
80
|
+
if (m) {
|
|
81
|
+
this.skip(m[0].length);
|
|
82
|
+
return decodeSingleQuotedString(fixText(m[0]));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
let m = RX_NUMBER.exec(this.text);
|
|
87
|
+
if (m) {
|
|
88
|
+
this.skip(m[0].length);
|
|
89
|
+
return parseFloat(m[0]);
|
|
90
|
+
}
|
|
91
|
+
m = RX_BOOLEAN.exec(this.text);
|
|
92
|
+
if (m) {
|
|
93
|
+
this.skip(m[0].length);
|
|
94
|
+
return m[0] === 'true';
|
|
95
|
+
}
|
|
96
|
+
m = RX_NULL.exec(this.text);
|
|
97
|
+
if (m) {
|
|
98
|
+
this.skip(m[0].length);
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
throw new Error('Expected a value at position ' + this.pos + ' but found ' + this.text);
|
|
103
|
+
}
|
|
104
|
+
readObject() {
|
|
105
|
+
let key;
|
|
106
|
+
const obj = {};
|
|
107
|
+
while (true) {
|
|
108
|
+
if (!key) { // read key
|
|
109
|
+
const p = this.tryReadPunctuation();
|
|
110
|
+
if (p === '}') {
|
|
111
|
+
return obj;
|
|
112
|
+
}
|
|
113
|
+
else if (p === ',') {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
else if (p) {
|
|
117
|
+
throw new Error('Expected a key at position ' + this.pos + ' but found ' + this.text);
|
|
118
|
+
}
|
|
119
|
+
key = this.readKey();
|
|
120
|
+
if (!key) {
|
|
121
|
+
throw new Error('Expected a key at position ' + this.pos + ' but found ' + this.text);
|
|
122
|
+
}
|
|
123
|
+
if (this.tryReadPunctuation() !== ':') {
|
|
124
|
+
throw new Error('Expected a colon at position ' + this.pos + ' but found ' + this.text);
|
|
125
|
+
}
|
|
126
|
+
;
|
|
127
|
+
}
|
|
128
|
+
else { // read value
|
|
129
|
+
const value = this.readValue();
|
|
130
|
+
if (value === undefined) {
|
|
131
|
+
throw new Error('Expected a value at position ' + this.pos + ' but found ' + this.text);
|
|
132
|
+
}
|
|
133
|
+
obj[key] = value;
|
|
134
|
+
key = undefined;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
readArray() {
|
|
139
|
+
const ar = [];
|
|
140
|
+
while (true) {
|
|
141
|
+
const p = this.tryReadPunctuation();
|
|
142
|
+
if (p === ',') {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
else if (p === ']') {
|
|
146
|
+
return ar;
|
|
147
|
+
}
|
|
148
|
+
else if (p === '[') {
|
|
149
|
+
ar.push(this.readArray());
|
|
150
|
+
}
|
|
151
|
+
else if (p === '{') {
|
|
152
|
+
ar.push(this.readObject());
|
|
153
|
+
}
|
|
154
|
+
else if (!p) {
|
|
155
|
+
ar.push(this.readScalar());
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
throw new Error('Expected a value at position ' + this.pos + ' but found ' + this.text);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
readValue() {
|
|
163
|
+
const p = this.tryReadPunctuation();
|
|
164
|
+
if (p === '{') {
|
|
165
|
+
return this.readObject();
|
|
166
|
+
}
|
|
167
|
+
else if (p === '[') {
|
|
168
|
+
return this.readArray();
|
|
169
|
+
}
|
|
170
|
+
else if (!p) {
|
|
171
|
+
return this.readScalar();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
static parse(text) {
|
|
175
|
+
const parser = new JsonParser(text);
|
|
176
|
+
const r = parser.readValue();
|
|
177
|
+
if (r === undefined) {
|
|
178
|
+
throw new Error('Not a valid JSON');
|
|
179
|
+
}
|
|
180
|
+
return r;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
exports.JsonParser = JsonParser;
|
|
10
184
|
function parseJSON(text) {
|
|
11
|
-
|
|
185
|
+
text = text.trim();
|
|
186
|
+
try {
|
|
187
|
+
return JSON.parse(text);
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
// use a relaxed parser
|
|
191
|
+
try {
|
|
192
|
+
return JsonParser.parse(text);
|
|
193
|
+
}
|
|
194
|
+
catch (err2) { // throw the original error
|
|
195
|
+
throw err;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
12
198
|
}
|
|
13
199
|
exports.parseJSON = parseJSON;
|
|
14
200
|
//# sourceMappingURL=json.js.map
|
package/lib/cjs/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/json.ts"],"names":[],"mappings":";;;AACA,SAAS,mBAAmB,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/json.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/types.js
CHANGED
|
@@ -54,6 +54,7 @@ var BuiltinProviders;
|
|
|
54
54
|
BuiltinProviders["bedrock"] = "bedrock";
|
|
55
55
|
BuiltinProviders["vertexai"] = "vertexai";
|
|
56
56
|
BuiltinProviders["togetherai"] = "togetherai";
|
|
57
|
+
BuiltinProviders["mistralai"] = "mistralai";
|
|
57
58
|
//virtual = 'virtual',
|
|
58
59
|
//cohere = 'cohere',
|
|
59
60
|
})(BuiltinProviders || (exports.BuiltinProviders = BuiltinProviders = {}));
|
package/lib/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAwDA,yCAAyC;AACzC,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,qCAAuB,CAAA;AAC3B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AA8BD,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;IAC3B,oCAAmB,CAAA;AACvB,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAiBD,IAAY,SAkBX;AAlBD,WAAY,SAAS;IACjB,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,sCAAyB,CAAA;IACzB,mDAAsC,CAAA;IACtC,uCAA0B,CAAA;IAC1B,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,oCAAuB,CAAA;IACvB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,wBAAW,CAAA;IACX,uCAA0B,CAAA;IAC1B,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,gCAAmB,CAAA;AACvB,CAAC,EAlBW,SAAS,yBAAT,SAAS,QAkBpB;AAED,oEAAoE;AACpE,MAAM;AAEN,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,kDAAiC,CAAA;AACrC,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAED,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IACxB,qCAAiB,CAAA;IACjB,qDAAiC,CAAA;IACjC,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;IACrB,6CAAyB,CAAA;IACzB,2CAAuB,CAAA;IACvB,0BAA0B;IAC1B,oBAAoB;AACxB,CAAC,EAVW,gBAAgB,gCAAhB,gBAAgB,QAU3B;AAwBD,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;AAC3B,CAAC,EALW,iBAAiB,iCAAjB,iBAAiB,QAK5B"}
|
package/lib/cjs/validation.js
CHANGED
|
@@ -16,7 +16,7 @@ function validateResult(data, schema) {
|
|
|
16
16
|
let json;
|
|
17
17
|
if (typeof data === "string") {
|
|
18
18
|
try {
|
|
19
|
-
json = (0, json_js_1.
|
|
19
|
+
json = (0, json_js_1.extractAndParseJSON)(data);
|
|
20
20
|
}
|
|
21
21
|
catch (error) {
|
|
22
22
|
throw new ValidationError("json_error", error.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AACpD,uCAAgD;AAGhD,MAAa,eAAgB,SAAQ,KAAK;IAE3B;IADX,YACW,IAAuC,EAC9C,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAA;QAHP,SAAI,GAAJ,IAAI,CAAmC;QAI9C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IACjC,CAAC;CACJ;AARD,0CAQC;AAED,SAAgB,cAAc,CAAC,IAAS,EAAE,MAAmB;IACzD,IAAI,IAAI,CAAC;IACT,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,IAAI,GAAG,IAAA,6BAAmB,EAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,IAAI,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1D,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,UAAU,GAAG,IAAA,sBAAQ,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACrB,kBAAkB,EAClB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAnBD,wCAmBC"}
|
package/lib/esm/async.js
CHANGED
|
@@ -10,6 +10,25 @@ export function oneAsyncIterator(value) {
|
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Given a ReadableStream of server seent events, tran
|
|
15
|
+
*/
|
|
16
|
+
export function transformSSEStream(stream, transform) {
|
|
17
|
+
// on node and bun the readablestream is an async iterable
|
|
18
|
+
return stream.pipeThrough(new TransformStream({
|
|
19
|
+
transform(event, controller) {
|
|
20
|
+
if (event.type === 'event' && event.data && event.data !== '[DONE]') {
|
|
21
|
+
try {
|
|
22
|
+
controller.enqueue(transform(event.data) ?? '');
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
// double check for the last event whicb is not a JSON - at this time togetherai and mistralai returrns the string [DONE]
|
|
26
|
+
// do nothing - happens if data is not a JSON - the last event data is the [DONE] string
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
13
32
|
export class EventStream {
|
|
14
33
|
queue = [];
|
|
15
34
|
pending;
|
package/lib/esm/async.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/async.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/async.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/json.js
CHANGED
|
@@ -1,10 +1,194 @@
|
|
|
1
1
|
function extractJsonFromText(text) {
|
|
2
2
|
const start = text.indexOf("{");
|
|
3
3
|
const end = text.lastIndexOf("}");
|
|
4
|
-
|
|
4
|
+
text = text.substring(start, end + 1);
|
|
5
|
+
return text.replace(/\\n/g, "");
|
|
6
|
+
}
|
|
7
|
+
export function extractAndParseJSON(text) {
|
|
8
|
+
return parseJSON(extractJsonFromText(text));
|
|
9
|
+
}
|
|
10
|
+
const RX_DQUOTE = /^"([^"\\]|\\.)*"/us;
|
|
11
|
+
const RX_SQUOTE = /^'([^'\\]|\\.)*'/us;
|
|
12
|
+
const RX_NUMBER = /^-?\d+(\.\d+)?/;
|
|
13
|
+
const RX_BOOLEAN = /^true|false/;
|
|
14
|
+
const RX_NULL = /^null/;
|
|
15
|
+
const RX_KEY = /^[$_a-zA-Z][$_a-zA-Z0-9]*/;
|
|
16
|
+
const RX_PUNCTUATION = /^\s*([\[\]{}:,])\s*/;
|
|
17
|
+
function fixText(value) {
|
|
18
|
+
return value.replaceAll('\n', '\\n').replaceAll('\r', '\\r');
|
|
19
|
+
}
|
|
20
|
+
function decodeSingleQuotedString(value) {
|
|
21
|
+
return JSON.parse('"' + value.slice(1, -1).replaceAll(/(?<!\\)"/g, '\\"') + '"');
|
|
22
|
+
}
|
|
23
|
+
export class JsonParser {
|
|
24
|
+
text;
|
|
25
|
+
pos = 0;
|
|
26
|
+
constructor(text) {
|
|
27
|
+
this.text = text;
|
|
28
|
+
}
|
|
29
|
+
skip(n) {
|
|
30
|
+
this.text = this.text.substring(n);
|
|
31
|
+
this.pos += n;
|
|
32
|
+
}
|
|
33
|
+
tryReadPunctuation() {
|
|
34
|
+
const m = RX_PUNCTUATION.exec(this.text);
|
|
35
|
+
if (m) {
|
|
36
|
+
this.skip(m[0].length);
|
|
37
|
+
return m[1];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
readKey() {
|
|
41
|
+
const first = this.text.charCodeAt(0);
|
|
42
|
+
if (first === 34) { // "
|
|
43
|
+
const m = RX_DQUOTE.exec(this.text);
|
|
44
|
+
if (m) {
|
|
45
|
+
this.skip(m[0].length);
|
|
46
|
+
return JSON.parse(m[0]);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (first === 39) { // '
|
|
50
|
+
const m = RX_SQUOTE.exec(this.text);
|
|
51
|
+
if (m) {
|
|
52
|
+
this.skip(m[0].length);
|
|
53
|
+
return decodeSingleQuotedString(m[0]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const m = RX_KEY.exec(this.text);
|
|
58
|
+
if (m) {
|
|
59
|
+
this.skip(m[0].length);
|
|
60
|
+
return m[0];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
throw new Error('Expected a key at position ' + this.pos + ' but found ' + this.text);
|
|
64
|
+
}
|
|
65
|
+
readScalar() {
|
|
66
|
+
const first = this.text.charCodeAt(0);
|
|
67
|
+
if (first === 34) { // "
|
|
68
|
+
const m = RX_DQUOTE.exec(this.text);
|
|
69
|
+
if (m) {
|
|
70
|
+
this.skip(m[0].length);
|
|
71
|
+
return JSON.parse(fixText(m[0]));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (first === 39) { // '
|
|
75
|
+
const m = RX_SQUOTE.exec(this.text);
|
|
76
|
+
if (m) {
|
|
77
|
+
this.skip(m[0].length);
|
|
78
|
+
return decodeSingleQuotedString(fixText(m[0]));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
let m = RX_NUMBER.exec(this.text);
|
|
83
|
+
if (m) {
|
|
84
|
+
this.skip(m[0].length);
|
|
85
|
+
return parseFloat(m[0]);
|
|
86
|
+
}
|
|
87
|
+
m = RX_BOOLEAN.exec(this.text);
|
|
88
|
+
if (m) {
|
|
89
|
+
this.skip(m[0].length);
|
|
90
|
+
return m[0] === 'true';
|
|
91
|
+
}
|
|
92
|
+
m = RX_NULL.exec(this.text);
|
|
93
|
+
if (m) {
|
|
94
|
+
this.skip(m[0].length);
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
throw new Error('Expected a value at position ' + this.pos + ' but found ' + this.text);
|
|
99
|
+
}
|
|
100
|
+
readObject() {
|
|
101
|
+
let key;
|
|
102
|
+
const obj = {};
|
|
103
|
+
while (true) {
|
|
104
|
+
if (!key) { // read key
|
|
105
|
+
const p = this.tryReadPunctuation();
|
|
106
|
+
if (p === '}') {
|
|
107
|
+
return obj;
|
|
108
|
+
}
|
|
109
|
+
else if (p === ',') {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
else if (p) {
|
|
113
|
+
throw new Error('Expected a key at position ' + this.pos + ' but found ' + this.text);
|
|
114
|
+
}
|
|
115
|
+
key = this.readKey();
|
|
116
|
+
if (!key) {
|
|
117
|
+
throw new Error('Expected a key at position ' + this.pos + ' but found ' + this.text);
|
|
118
|
+
}
|
|
119
|
+
if (this.tryReadPunctuation() !== ':') {
|
|
120
|
+
throw new Error('Expected a colon at position ' + this.pos + ' but found ' + this.text);
|
|
121
|
+
}
|
|
122
|
+
;
|
|
123
|
+
}
|
|
124
|
+
else { // read value
|
|
125
|
+
const value = this.readValue();
|
|
126
|
+
if (value === undefined) {
|
|
127
|
+
throw new Error('Expected a value at position ' + this.pos + ' but found ' + this.text);
|
|
128
|
+
}
|
|
129
|
+
obj[key] = value;
|
|
130
|
+
key = undefined;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
readArray() {
|
|
135
|
+
const ar = [];
|
|
136
|
+
while (true) {
|
|
137
|
+
const p = this.tryReadPunctuation();
|
|
138
|
+
if (p === ',') {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
else if (p === ']') {
|
|
142
|
+
return ar;
|
|
143
|
+
}
|
|
144
|
+
else if (p === '[') {
|
|
145
|
+
ar.push(this.readArray());
|
|
146
|
+
}
|
|
147
|
+
else if (p === '{') {
|
|
148
|
+
ar.push(this.readObject());
|
|
149
|
+
}
|
|
150
|
+
else if (!p) {
|
|
151
|
+
ar.push(this.readScalar());
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
throw new Error('Expected a value at position ' + this.pos + ' but found ' + this.text);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
readValue() {
|
|
159
|
+
const p = this.tryReadPunctuation();
|
|
160
|
+
if (p === '{') {
|
|
161
|
+
return this.readObject();
|
|
162
|
+
}
|
|
163
|
+
else if (p === '[') {
|
|
164
|
+
return this.readArray();
|
|
165
|
+
}
|
|
166
|
+
else if (!p) {
|
|
167
|
+
return this.readScalar();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
static parse(text) {
|
|
171
|
+
const parser = new JsonParser(text);
|
|
172
|
+
const r = parser.readValue();
|
|
173
|
+
if (r === undefined) {
|
|
174
|
+
throw new Error('Not a valid JSON');
|
|
175
|
+
}
|
|
176
|
+
return r;
|
|
177
|
+
}
|
|
5
178
|
}
|
|
6
|
-
//TODO LAX parse JSON
|
|
7
179
|
export function parseJSON(text) {
|
|
8
|
-
|
|
180
|
+
text = text.trim();
|
|
181
|
+
try {
|
|
182
|
+
return JSON.parse(text);
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
// use a relaxed parser
|
|
186
|
+
try {
|
|
187
|
+
return JsonParser.parse(text);
|
|
188
|
+
}
|
|
189
|
+
catch (err2) { // throw the original error
|
|
190
|
+
throw err;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
9
193
|
}
|
|
10
194
|
//# sourceMappingURL=json.js.map
|
package/lib/esm/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/json.ts"],"names":[],"mappings":"AACA,SAAS,mBAAmB,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/json.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/types.js
CHANGED
|
@@ -51,6 +51,7 @@ export var BuiltinProviders;
|
|
|
51
51
|
BuiltinProviders["bedrock"] = "bedrock";
|
|
52
52
|
BuiltinProviders["vertexai"] = "vertexai";
|
|
53
53
|
BuiltinProviders["togetherai"] = "togetherai";
|
|
54
|
+
BuiltinProviders["mistralai"] = "mistralai";
|
|
54
55
|
//virtual = 'virtual',
|
|
55
56
|
//cohere = 'cohere',
|
|
56
57
|
})(BuiltinProviders || (BuiltinProviders = {}));
|
package/lib/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAwDA,yCAAyC;AACzC,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,qCAAuB,CAAA;AAC3B,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AA8BD,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;IAC3B,oCAAmB,CAAA;AACvB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAiBD,MAAM,CAAN,IAAY,SAkBX;AAlBD,WAAY,SAAS;IACjB,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,sCAAyB,CAAA;IACzB,mDAAsC,CAAA;IACtC,uCAA0B,CAAA;IAC1B,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,oCAAuB,CAAA;IACvB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,wBAAW,CAAA;IACX,uCAA0B,CAAA;IAC1B,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,gCAAmB,CAAA;AACvB,CAAC,EAlBW,SAAS,KAAT,SAAS,QAkBpB;AAED,oEAAoE;AACpE,MAAM;AAEN,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,kDAAiC,CAAA;AACrC,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED,MAAM,CAAN,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IACxB,qCAAiB,CAAA;IACjB,qDAAiC,CAAA;IACjC,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;IACrB,6CAAyB,CAAA;IACzB,2CAAuB,CAAA;IACvB,0BAA0B;IAC1B,oBAAoB;AACxB,CAAC,EAVW,gBAAgB,KAAhB,gBAAgB,QAU3B;AAwBD,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;AAC3B,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B"}
|
package/lib/esm/validation.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { validate } from "json-schema";
|
|
2
|
-
import {
|
|
2
|
+
import { extractAndParseJSON } from "./json.js";
|
|
3
3
|
export class ValidationError extends Error {
|
|
4
4
|
code;
|
|
5
5
|
constructor(code, message) {
|
|
@@ -12,7 +12,7 @@ export function validateResult(data, schema) {
|
|
|
12
12
|
let json;
|
|
13
13
|
if (typeof data === "string") {
|
|
14
14
|
try {
|
|
15
|
-
json =
|
|
15
|
+
json = extractAndParseJSON(data);
|
|
16
16
|
}
|
|
17
17
|
catch (error) {
|
|
18
18
|
throw new ValidationError("json_error", error.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAE3B;IADX,YACW,IAAuC,EAC9C,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAA;QAHP,SAAI,GAAJ,IAAI,CAAmC;QAI9C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IACjC,CAAC;CACJ;AAED,MAAM,UAAU,cAAc,CAAC,IAAS,EAAE,MAAmB;IACzD,IAAI,IAAI,CAAC;IACT,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,IAAI,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1D,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACrB,kBAAkB,EAClB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
package/lib/types/Driver.d.ts
CHANGED
|
@@ -57,7 +57,7 @@ export declare abstract class AbstractDriver<OptionsT extends DriverOptions = Dr
|
|
|
57
57
|
protected canStream(_options: ExecutionOptions): Promise<boolean>;
|
|
58
58
|
abstract requestCompletion(prompt: PromptT, options: ExecutionOptions): Promise<Completion>;
|
|
59
59
|
abstract requestCompletionStream(prompt: PromptT, options: ExecutionOptions): Promise<AsyncIterable<string>>;
|
|
60
|
-
abstract listModels(params
|
|
60
|
+
abstract listModels(params?: ModelSearchPayload): Promise<AIModel[]>;
|
|
61
61
|
abstract listTrainableModels(): Promise<AIModel[]>;
|
|
62
62
|
abstract validateConnection(): Promise<boolean>;
|
|
63
63
|
abstract generateEmbeddings(content: string, model?: string): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Driver.d.ts","sourceRoot":"","sources":["../../src/Driver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Driver.d.ts","sourceRoot":"","sources":["../../src/Driver.ts"],"names":[],"mappings":"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"}
|
package/lib/types/async.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import type { ServerSentEvent } from "api-fetch-client";
|
|
1
2
|
export declare function asyncMap<T, R>(asyncIterable: AsyncIterable<T>, callback: (value: T, index: number) => R): AsyncGenerator<Awaited<R>, void, unknown>;
|
|
2
3
|
export declare function oneAsyncIterator<T>(value: T): AsyncIterable<T>;
|
|
4
|
+
/**
|
|
5
|
+
* Given a ReadableStream of server seent events, tran
|
|
6
|
+
*/
|
|
7
|
+
export declare function transformSSEStream(stream: ReadableStream<ServerSentEvent>, transform: (data: string) => string): ReadableStream<string> & AsyncIterable<string>;
|
|
3
8
|
export declare class EventStream<T, ReturnT = any> implements AsyncIterable<T> {
|
|
4
9
|
private queue;
|
|
5
10
|
private pending?;
|
package/lib/types/async.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../src/async.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../src/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,wBAAuB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,6CAI9G;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAM9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAc/J;AAED,qBAAa,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,GAAG,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAElE,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,OAAO,CAAC,CAGd;IACF,OAAO,CAAC,IAAI,CAAS;IAGrB,IAAI,CAAC,KAAK,EAAE,CAAC;IAYb;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;IAQrB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CA0BlE;AAID;;;;IAII;AACJ,wBAAuB,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAC9C,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC,EACnC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACxC,aAAa,CAAC,CAAC,CAAC,CAIlB"}
|
package/lib/types/json.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function
|
|
1
|
+
export declare function extractAndParseJSON(text: string): Json;
|
|
2
2
|
export type JsonPrimative = string | number | boolean | null;
|
|
3
3
|
export type JsonArray = Json[];
|
|
4
4
|
export type JsonObject = {
|
|
@@ -6,4 +6,18 @@ export type JsonObject = {
|
|
|
6
6
|
};
|
|
7
7
|
export type JsonComposite = JsonArray | JsonObject;
|
|
8
8
|
export type Json = JsonPrimative | JsonComposite;
|
|
9
|
+
export declare class JsonParser {
|
|
10
|
+
text: string;
|
|
11
|
+
pos: number;
|
|
12
|
+
constructor(text: string);
|
|
13
|
+
skip(n: number): void;
|
|
14
|
+
tryReadPunctuation(): string | undefined;
|
|
15
|
+
readKey(): any;
|
|
16
|
+
readScalar(): any;
|
|
17
|
+
readObject(): any;
|
|
18
|
+
readArray(): any[];
|
|
19
|
+
readValue(): any;
|
|
20
|
+
static parse(text: string): any;
|
|
21
|
+
}
|
|
22
|
+
export declare function parseJSON(text: string): Json;
|
|
9
23
|
//# sourceMappingURL=json.d.ts.map
|
package/lib/types/json.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/json.ts"],"names":[],"mappings":"AAQA,wBAAgB,
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/json.ts"],"names":[],"mappings":"AAQA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC;AAC/B,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AACjD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,IAAI,GAAG,aAAa,GAAG,aAAa,CAAC;AAqBjD,qBAAa,UAAU;IAGA,IAAI,EAAE,MAAM;IAF/B,GAAG,EAAE,MAAM,CAAK;gBAEG,IAAI,EAAE,MAAM;IAE/B,IAAI,CAAC,CAAC,EAAE,MAAM;IAKd,kBAAkB;IAQlB,OAAO;IAwBP,UAAU;IAkCV,UAAU;IA+BV,SAAS;IAoBT,SAAS;IAWT,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM;CAQ5B;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAY5C"}
|
package/lib/types/types.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ export interface ResultValidationError {
|
|
|
10
10
|
export interface Completion<ResultT = any> {
|
|
11
11
|
result: ResultT;
|
|
12
12
|
token_usage?: ExecutionTokenUsage;
|
|
13
|
-
execution_time?: number;
|
|
14
13
|
/**
|
|
15
14
|
* Set only if a result validation error occured, otherwise if the result is valid the error field is undefined
|
|
16
15
|
* This can only be set if the resultSchema is set and the reuslt could not be parsed as a json or if the result does not match the schema
|
|
@@ -19,6 +18,10 @@ export interface Completion<ResultT = any> {
|
|
|
19
18
|
}
|
|
20
19
|
export interface ExecutionResponse<PromptT = any> extends Completion {
|
|
21
20
|
prompt: PromptT;
|
|
21
|
+
/**
|
|
22
|
+
* The time it took to execute the request in seconds
|
|
23
|
+
*/
|
|
24
|
+
execution_time?: number;
|
|
22
25
|
}
|
|
23
26
|
export interface CompletionStream<PromptT = any> extends AsyncIterable<string> {
|
|
24
27
|
completion: ExecutionResponse<PromptT> | undefined;
|
|
@@ -120,7 +123,8 @@ export declare enum BuiltinProviders {
|
|
|
120
123
|
replicate = "replicate",
|
|
121
124
|
bedrock = "bedrock",
|
|
122
125
|
vertexai = "vertexai",
|
|
123
|
-
togetherai = "togetherai"
|
|
126
|
+
togetherai = "togetherai",
|
|
127
|
+
mistralai = "mistralai"
|
|
124
128
|
}
|
|
125
129
|
export interface DataSource {
|
|
126
130
|
name: string;
|
package/lib/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,kBAAkB,GAAG,YAAY,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU,CAAC,OAAO,GAAG,GAAG;IAErC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llumiverse/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Provide an universal API to LLMs. Support for existing LLMs can be added by writing a driver.",
|
|
6
6
|
"files": [
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@types/eventsource": "^1.1.15",
|
|
66
66
|
"@types/json-schema": "^7.0.15",
|
|
67
|
+
"api-fetch-client": "^0.8.6",
|
|
67
68
|
"ts-dual-module": "^0.6.2",
|
|
68
69
|
"typescript": "^5.3.3",
|
|
69
70
|
"vitest": "^1.2.2"
|
package/src/Driver.ts
CHANGED
|
@@ -196,7 +196,7 @@ export abstract class AbstractDriver<OptionsT extends DriverOptions = DriverOpti
|
|
|
196
196
|
abstract requestCompletionStream(prompt: PromptT, options: ExecutionOptions): Promise<AsyncIterable<string>>;
|
|
197
197
|
|
|
198
198
|
//list models available for this environement
|
|
199
|
-
abstract listModels(params
|
|
199
|
+
abstract listModels(params?: ModelSearchPayload): Promise<AIModel[]>;
|
|
200
200
|
|
|
201
201
|
abstract listTrainableModels(): Promise<AIModel[]>;
|
|
202
202
|
|
package/src/async.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ServerSentEvent } from "api-fetch-client";
|
|
1
2
|
|
|
2
3
|
export async function* asyncMap<T, R>(asyncIterable: AsyncIterable<T>, callback: (value: T, index: number) => R) {
|
|
3
4
|
let i = 0;
|
|
@@ -13,6 +14,24 @@ export function oneAsyncIterator<T>(value: T): AsyncIterable<T> {
|
|
|
13
14
|
}
|
|
14
15
|
}
|
|
15
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Given a ReadableStream of server seent events, tran
|
|
19
|
+
*/
|
|
20
|
+
export function transformSSEStream(stream: ReadableStream<ServerSentEvent>, transform: (data: string) => string): ReadableStream<string> & AsyncIterable<string> {
|
|
21
|
+
// on node and bun the readablestream is an async iterable
|
|
22
|
+
return stream.pipeThrough(new TransformStream<ServerSentEvent, string>({
|
|
23
|
+
transform(event: ServerSentEvent, controller) {
|
|
24
|
+
if (event.type === 'event' && event.data && event.data !== '[DONE]') {
|
|
25
|
+
try {
|
|
26
|
+
controller.enqueue(transform(event.data) ?? '');
|
|
27
|
+
} catch (err) {
|
|
28
|
+
// double check for the last event whicb is not a JSON - at this time togetherai and mistralai returrns the string [DONE]
|
|
29
|
+
// do nothing - happens if data is not a JSON - the last event data is the [DONE] string
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
})) as ReadableStream<string> & AsyncIterable<string>;
|
|
34
|
+
}
|
|
16
35
|
|
|
17
36
|
export class EventStream<T, ReturnT = any> implements AsyncIterable<T>{
|
|
18
37
|
|
package/src/json.ts
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
function extractJsonFromText(text: string): string {
|
|
3
3
|
const start = text.indexOf("{");
|
|
4
4
|
const end = text.lastIndexOf("}");
|
|
5
|
-
|
|
5
|
+
text = text.substring(start, end + 1);
|
|
6
|
+
return text.replace(/\\n/g, "");
|
|
6
7
|
}
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return JSON.parse(extractJsonFromText(text));
|
|
9
|
+
export function extractAndParseJSON(text: string): Json {
|
|
10
|
+
return parseJSON(extractJsonFromText(text));
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export type JsonPrimative = string | number | boolean | null;
|
|
@@ -15,3 +15,185 @@ export type JsonArray = Json[];
|
|
|
15
15
|
export type JsonObject = { [key: string]: Json };
|
|
16
16
|
export type JsonComposite = JsonArray | JsonObject;
|
|
17
17
|
export type Json = JsonPrimative | JsonComposite;
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
const RX_DQUOTE = /^"([^"\\]|\\.)*"/us;
|
|
23
|
+
const RX_SQUOTE = /^'([^'\\]|\\.)*'/us;
|
|
24
|
+
const RX_NUMBER = /^-?\d+(\.\d+)?/;
|
|
25
|
+
const RX_BOOLEAN = /^true|false/;
|
|
26
|
+
const RX_NULL = /^null/;
|
|
27
|
+
const RX_KEY = /^[$_a-zA-Z][$_a-zA-Z0-9]*/;
|
|
28
|
+
const RX_PUNCTUATION = /^\s*([\[\]{}:,])\s*/;
|
|
29
|
+
|
|
30
|
+
function fixText(value: string) {
|
|
31
|
+
return value.replaceAll('\n', '\\n').replaceAll('\r', '\\r');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function decodeSingleQuotedString(value: string) {
|
|
35
|
+
return JSON.parse('"' + value.slice(1, -1).replaceAll(/(?<!\\)"/g, '\\"') + '"');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export class JsonParser {
|
|
39
|
+
pos: number = 0;
|
|
40
|
+
|
|
41
|
+
constructor(public text: string) { }
|
|
42
|
+
|
|
43
|
+
skip(n: number) {
|
|
44
|
+
this.text = this.text.substring(n);
|
|
45
|
+
this.pos += n;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
tryReadPunctuation() {
|
|
49
|
+
const m = RX_PUNCTUATION.exec(this.text);
|
|
50
|
+
if (m) {
|
|
51
|
+
this.skip(m[0].length);
|
|
52
|
+
return m[1];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
readKey() {
|
|
57
|
+
const first = this.text.charCodeAt(0);
|
|
58
|
+
if (first === 34) { // "
|
|
59
|
+
const m = RX_DQUOTE.exec(this.text);
|
|
60
|
+
if (m) {
|
|
61
|
+
this.skip(m[0].length);
|
|
62
|
+
return JSON.parse(m[0]);
|
|
63
|
+
}
|
|
64
|
+
} else if (first === 39) { // '
|
|
65
|
+
const m = RX_SQUOTE.exec(this.text);
|
|
66
|
+
if (m) {
|
|
67
|
+
this.skip(m[0].length);
|
|
68
|
+
return decodeSingleQuotedString(m[0]);
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
const m = RX_KEY.exec(this.text);
|
|
72
|
+
if (m) {
|
|
73
|
+
this.skip(m[0].length);
|
|
74
|
+
return m[0];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
throw new Error('Expected a key at position ' + this.pos + ' but found ' + this.text);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
readScalar() {
|
|
81
|
+
const first = this.text.charCodeAt(0);
|
|
82
|
+
if (first === 34) { // "
|
|
83
|
+
const m = RX_DQUOTE.exec(this.text);
|
|
84
|
+
if (m) {
|
|
85
|
+
this.skip(m[0].length);
|
|
86
|
+
return JSON.parse(fixText(m[0]));
|
|
87
|
+
}
|
|
88
|
+
} else if (first === 39) { // '
|
|
89
|
+
const m = RX_SQUOTE.exec(this.text);
|
|
90
|
+
if (m) {
|
|
91
|
+
this.skip(m[0].length);
|
|
92
|
+
return decodeSingleQuotedString(fixText(m[0]));
|
|
93
|
+
}
|
|
94
|
+
} else {
|
|
95
|
+
let m = RX_NUMBER.exec(this.text);
|
|
96
|
+
if (m) {
|
|
97
|
+
this.skip(m[0].length);
|
|
98
|
+
return parseFloat(m[0]);
|
|
99
|
+
}
|
|
100
|
+
m = RX_BOOLEAN.exec(this.text);
|
|
101
|
+
if (m) {
|
|
102
|
+
this.skip(m[0].length);
|
|
103
|
+
return m[0] === 'true';
|
|
104
|
+
}
|
|
105
|
+
m = RX_NULL.exec(this.text);
|
|
106
|
+
if (m) {
|
|
107
|
+
this.skip(m[0].length);
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
throw new Error('Expected a value at position ' + this.pos + ' but found ' + this.text);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
readObject() {
|
|
115
|
+
let key: string | undefined;
|
|
116
|
+
const obj: any = {};
|
|
117
|
+
while (true) {
|
|
118
|
+
if (!key) { // read key
|
|
119
|
+
const p = this.tryReadPunctuation();
|
|
120
|
+
if (p === '}') {
|
|
121
|
+
return obj;
|
|
122
|
+
} else if (p === ',') {
|
|
123
|
+
continue;
|
|
124
|
+
} else if (p) {
|
|
125
|
+
throw new Error('Expected a key at position ' + this.pos + ' but found ' + this.text);
|
|
126
|
+
}
|
|
127
|
+
key = this.readKey();
|
|
128
|
+
if (!key) {
|
|
129
|
+
throw new Error('Expected a key at position ' + this.pos + ' but found ' + this.text);
|
|
130
|
+
}
|
|
131
|
+
if (this.tryReadPunctuation() !== ':') {
|
|
132
|
+
throw new Error('Expected a colon at position ' + this.pos + ' but found ' + this.text);
|
|
133
|
+
};
|
|
134
|
+
} else { // read value
|
|
135
|
+
const value = this.readValue();
|
|
136
|
+
if (value === undefined) {
|
|
137
|
+
throw new Error('Expected a value at position ' + this.pos + ' but found ' + this.text);
|
|
138
|
+
}
|
|
139
|
+
obj[key] = value;
|
|
140
|
+
key = undefined;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
readArray() {
|
|
146
|
+
const ar: any[] = [];
|
|
147
|
+
while (true) {
|
|
148
|
+
const p = this.tryReadPunctuation();
|
|
149
|
+
if (p === ',') {
|
|
150
|
+
continue;
|
|
151
|
+
} else if (p === ']') {
|
|
152
|
+
return ar;
|
|
153
|
+
} else if (p === '[') {
|
|
154
|
+
ar.push(this.readArray());
|
|
155
|
+
} else if (p === '{') {
|
|
156
|
+
ar.push(this.readObject());
|
|
157
|
+
} else if (!p) {
|
|
158
|
+
ar.push(this.readScalar());
|
|
159
|
+
} else {
|
|
160
|
+
throw new Error('Expected a value at position ' + this.pos + ' but found ' + this.text);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
readValue() {
|
|
166
|
+
const p = this.tryReadPunctuation();
|
|
167
|
+
if (p === '{') {
|
|
168
|
+
return this.readObject();
|
|
169
|
+
} else if (p === '[') {
|
|
170
|
+
return this.readArray();
|
|
171
|
+
} else if (!p) {
|
|
172
|
+
return this.readScalar();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
static parse(text: string) {
|
|
177
|
+
const parser = new JsonParser(text);
|
|
178
|
+
const r = parser.readValue();
|
|
179
|
+
if (r === undefined) {
|
|
180
|
+
throw new Error('Not a valid JSON');
|
|
181
|
+
}
|
|
182
|
+
return r;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
export function parseJSON(text: string): Json {
|
|
188
|
+
text = text.trim();
|
|
189
|
+
try {
|
|
190
|
+
return JSON.parse(text);
|
|
191
|
+
} catch (err: any) {
|
|
192
|
+
// use a relaxed parser
|
|
193
|
+
try {
|
|
194
|
+
return JsonParser.parse(text);
|
|
195
|
+
} catch (err2: any) { // throw the original error
|
|
196
|
+
throw err;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface Completion<ResultT = any> {
|
|
|
12
12
|
// the driver impl must return the result and optionally the token_usage. the execution time is computed by the extended abstract driver
|
|
13
13
|
result: ResultT;
|
|
14
14
|
token_usage?: ExecutionTokenUsage;
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
/**
|
|
17
17
|
* Set only if a result validation error occured, otherwise if the result is valid the error field is undefined
|
|
18
18
|
* This can only be set if the resultSchema is set and the reuslt could not be parsed as a json or if the result does not match the schema
|
|
@@ -22,6 +22,10 @@ export interface Completion<ResultT = any> {
|
|
|
22
22
|
|
|
23
23
|
export interface ExecutionResponse<PromptT = any> extends Completion {
|
|
24
24
|
prompt: PromptT;
|
|
25
|
+
/**
|
|
26
|
+
* The time it took to execute the request in seconds
|
|
27
|
+
*/
|
|
28
|
+
execution_time?: number;
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
|
|
@@ -146,6 +150,7 @@ export enum BuiltinProviders {
|
|
|
146
150
|
bedrock = 'bedrock',
|
|
147
151
|
vertexai = 'vertexai',
|
|
148
152
|
togetherai = 'togetherai',
|
|
153
|
+
mistralai = 'mistralai',
|
|
149
154
|
//virtual = 'virtual',
|
|
150
155
|
//cohere = 'cohere',
|
|
151
156
|
}
|
package/src/validation.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JSONSchema4, validate } from "json-schema";
|
|
2
|
-
import {
|
|
2
|
+
import { extractAndParseJSON } from "./json.js";
|
|
3
3
|
import { ResultValidationError } from "./types.js";
|
|
4
4
|
|
|
5
5
|
export class ValidationError extends Error implements ResultValidationError {
|
|
@@ -16,7 +16,7 @@ export function validateResult(data: any, schema: JSONSchema4) {
|
|
|
16
16
|
let json;
|
|
17
17
|
if (typeof data === "string") {
|
|
18
18
|
try {
|
|
19
|
-
json =
|
|
19
|
+
json = extractAndParseJSON(data);
|
|
20
20
|
} catch (error: any) {
|
|
21
21
|
throw new ValidationError("json_error", error.message)
|
|
22
22
|
}
|