@llumiverse/core 0.12.3 → 0.14.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 (95) hide show
  1. package/README.md +13 -11
  2. package/lib/cjs/CompletionStream.js +6 -8
  3. package/lib/cjs/CompletionStream.js.map +1 -1
  4. package/lib/cjs/Driver.js +20 -16
  5. package/lib/cjs/Driver.js.map +1 -1
  6. package/lib/cjs/async.js +9 -6
  7. package/lib/cjs/async.js.map +1 -1
  8. package/lib/cjs/formatters/claude.js +53 -15
  9. package/lib/cjs/formatters/claude.js.map +1 -1
  10. package/lib/cjs/formatters/commons.js +2 -3
  11. package/lib/cjs/formatters/commons.js.map +1 -1
  12. package/lib/cjs/formatters/generic.js +2 -2
  13. package/lib/cjs/formatters/generic.js.map +1 -1
  14. package/lib/cjs/formatters/index.js +2 -1
  15. package/lib/cjs/formatters/index.js.map +1 -1
  16. package/lib/cjs/formatters/llama2.js +1 -2
  17. package/lib/cjs/formatters/llama2.js.map +1 -1
  18. package/lib/cjs/formatters/llama3.js +42 -0
  19. package/lib/cjs/formatters/llama3.js.map +1 -0
  20. package/lib/cjs/formatters/openai.js +59 -5
  21. package/lib/cjs/formatters/openai.js.map +1 -1
  22. package/lib/cjs/index.js +1 -0
  23. package/lib/cjs/index.js.map +1 -1
  24. package/lib/cjs/json.js +3 -3
  25. package/lib/cjs/json.js.map +1 -1
  26. package/lib/cjs/resolver.js +45 -0
  27. package/lib/cjs/resolver.js.map +1 -0
  28. package/lib/cjs/stream.js +11 -0
  29. package/lib/cjs/stream.js.map +1 -0
  30. package/lib/cjs/types.js.map +1 -1
  31. package/lib/cjs/validation.js +43 -6
  32. package/lib/cjs/validation.js.map +1 -1
  33. package/lib/esm/CompletionStream.js +6 -8
  34. package/lib/esm/CompletionStream.js.map +1 -1
  35. package/lib/esm/Driver.js +19 -15
  36. package/lib/esm/Driver.js.map +1 -1
  37. package/lib/esm/async.js +4 -1
  38. package/lib/esm/async.js.map +1 -1
  39. package/lib/esm/formatters/claude.js +52 -13
  40. package/lib/esm/formatters/claude.js.map +1 -1
  41. package/lib/esm/formatters/commons.js +1 -1
  42. package/lib/esm/formatters/commons.js.map +1 -1
  43. package/lib/esm/formatters/index.js +2 -1
  44. package/lib/esm/formatters/index.js.map +1 -1
  45. package/lib/esm/formatters/llama3.js +39 -0
  46. package/lib/esm/formatters/llama3.js.map +1 -0
  47. package/lib/esm/formatters/openai.js +57 -3
  48. package/lib/esm/formatters/openai.js.map +1 -1
  49. package/lib/esm/index.js +1 -0
  50. package/lib/esm/index.js.map +1 -1
  51. package/lib/esm/resolver.js +42 -0
  52. package/lib/esm/resolver.js.map +1 -0
  53. package/lib/esm/stream.js +8 -0
  54. package/lib/esm/stream.js.map +1 -0
  55. package/lib/esm/types.js.map +1 -1
  56. package/lib/esm/validation.js +38 -4
  57. package/lib/esm/validation.js.map +1 -1
  58. package/lib/types/CompletionStream.d.ts +5 -5
  59. package/lib/types/CompletionStream.d.ts.map +1 -1
  60. package/lib/types/Driver.d.ts +5 -5
  61. package/lib/types/Driver.d.ts.map +1 -1
  62. package/lib/types/async.d.ts +1 -1
  63. package/lib/types/async.d.ts.map +1 -1
  64. package/lib/types/formatters/claude.d.ts +12 -6
  65. package/lib/types/formatters/claude.d.ts.map +1 -1
  66. package/lib/types/formatters/index.d.ts +2 -1
  67. package/lib/types/formatters/index.d.ts.map +1 -1
  68. package/lib/types/formatters/llama3.d.ts +7 -0
  69. package/lib/types/formatters/llama3.d.ts.map +1 -0
  70. package/lib/types/formatters/openai.d.ts +18 -1
  71. package/lib/types/formatters/openai.d.ts.map +1 -1
  72. package/lib/types/index.d.ts +1 -0
  73. package/lib/types/index.d.ts.map +1 -1
  74. package/lib/types/resolver.d.ts +2 -0
  75. package/lib/types/resolver.d.ts.map +1 -0
  76. package/lib/types/stream.d.ts +2 -0
  77. package/lib/types/stream.d.ts.map +1 -0
  78. package/lib/types/types.d.ts +9 -6
  79. package/lib/types/types.d.ts.map +1 -1
  80. package/lib/types/validation.d.ts +1 -2
  81. package/lib/types/validation.d.ts.map +1 -1
  82. package/package.json +87 -85
  83. package/src/CompletionStream.ts +4 -10
  84. package/src/Driver.ts +28 -27
  85. package/src/async.ts +5 -1
  86. package/src/formatters/claude.ts +68 -19
  87. package/src/formatters/commons.ts +1 -1
  88. package/src/formatters/index.ts +5 -3
  89. package/src/formatters/llama3.ts +55 -0
  90. package/src/formatters/openai.ts +93 -6
  91. package/src/index.ts +2 -1
  92. package/src/resolver.ts +39 -0
  93. package/src/stream.ts +8 -0
  94. package/src/types.ts +16 -13
  95. package/src/validation.ts +48 -7
@@ -1,13 +1,14 @@
1
1
  import { PromptRole } from "../index.js";
2
+ import { readStreamAsBase64 } from "../stream.js";
2
3
  /**
3
4
  * OpenAI text only prompts
4
5
  * @param segments
5
6
  * @returns
6
7
  */
7
- export function formatOpenAILikePrompt(segments) {
8
+ export function formatOpenAILikeTextPrompt(segments) {
8
9
  const system = [];
9
- const others = [];
10
10
  const safety = [];
11
+ const user = [];
11
12
  for (const msg of segments) {
12
13
  if (msg.role === PromptRole.system) {
13
14
  system.push({ content: msg.content, role: "system" });
@@ -16,7 +17,60 @@ export function formatOpenAILikePrompt(segments) {
16
17
  safety.push({ content: "IMPORTANT: " + msg.content, role: "system" });
17
18
  }
18
19
  else {
19
- others.push({ content: msg.content, role: "user" });
20
+ user.push({
21
+ content: msg.content,
22
+ role: msg.role || 'user',
23
+ });
24
+ }
25
+ }
26
+ // put system mesages first and safety last
27
+ return system.concat(user).concat(safety);
28
+ }
29
+ export async function formatOpenAILikeMultimodalPrompt(segments) {
30
+ const system = [];
31
+ const safety = [];
32
+ const others = [];
33
+ for (const msg of segments) {
34
+ const parts = [];
35
+ //generate the parts based on promptsegment
36
+ if (msg.files) {
37
+ for (const file of msg.files) {
38
+ const stream = await file.getStream();
39
+ const data = await readStreamAsBase64(stream);
40
+ parts.push({
41
+ image_url: { url: `data:${file.mime_type || "image/jpeg"};base64,${data}` },
42
+ type: "image_url"
43
+ });
44
+ }
45
+ }
46
+ else {
47
+ parts.push({
48
+ text: msg.content,
49
+ type: "text"
50
+ });
51
+ }
52
+ if (msg.role === PromptRole.system) {
53
+ system.push({
54
+ role: "system",
55
+ content: parts
56
+ });
57
+ }
58
+ else if (msg.role === PromptRole.safety) {
59
+ const safetyMsg = {
60
+ role: "system",
61
+ content: parts
62
+ };
63
+ safetyMsg.content.forEach(c => {
64
+ if (c.type === "text")
65
+ c.text = "DO NOT IGNORE - IMPORTANT: " + c.text;
66
+ });
67
+ system.push(safetyMsg);
68
+ }
69
+ else {
70
+ others.push({
71
+ role: msg.role ?? 'user',
72
+ content: parts
73
+ });
20
74
  }
21
75
  }
22
76
  // put system mesages first and safety last
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/formatters/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAyB;IAC5D,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,2CAA2C;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/formatters/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AA4BlD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAyB;IAChE,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAwB,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC;gBACN,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,MAAM;aAC3B,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAED,2CAA2C;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,QAAyB;IAC5E,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAEzB,MAAM,KAAK,GAAuD,EAAE,CAAC;QAErE,2CAA2C;QAC3C,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC;oBACP,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC,SAAS,IAAI,YAAY,WAAW,IAAI,EAAE,EAAE;oBAC3E,IAAI,EAAE,WAAW;iBACpB,CAAC,CAAA;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,IAAI,EAAE,MAAM;aACf,CAAC,CAAA;QACN,CAAC;QAID,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,KAAK;aACjB,CAAC,CAAA;QAEN,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,SAAS,GAAkB;gBAC7B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,KAAK;aACjB,CAAA;YAED,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;oBAAE,CAAC,CAAC,IAAI,GAAG,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC;YAC3E,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAE1B,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,MAAM;gBACxB,OAAO,EAAE,KAAK;aACjB,CAAC,CAAA;QACN,CAAC;IAIL,CAAC;IAED,2CAA2C;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEhD,CAAC"}
package/lib/esm/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./Driver.js";
2
2
  export * from "./json.js";
3
+ export * from "./stream.js";
3
4
  export * from "./types.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Get the property named by "name" of the given object
3
+ * If an array is idnexed using a string key then a map is done and an array with the content of the properties with that name are returned
4
+ * Ex: docs.text => will return an array of text properties of the docs array
5
+ * @param object the obejct
6
+ * @param name the name of the property.
7
+ * @returns the property value
8
+ */
9
+ function _prop(object, name) {
10
+ if (object === undefined) {
11
+ return undefined;
12
+ }
13
+ if (Array.isArray(object)) {
14
+ const index = +name;
15
+ if (isNaN(index)) {
16
+ // map array to property
17
+ return object.map(item => item[name]);
18
+ }
19
+ else {
20
+ return object[index];
21
+ }
22
+ }
23
+ else {
24
+ return object[name];
25
+ }
26
+ }
27
+ export function resolveField(object, path) {
28
+ let p = object;
29
+ if (!p)
30
+ return p;
31
+ if (!path.length)
32
+ return p;
33
+ const last = path.length - 1;
34
+ for (let i = 0; i < last; i++) {
35
+ p = _prop(p, path[i]);
36
+ if (!p) {
37
+ return undefined;
38
+ }
39
+ }
40
+ return _prop(p, path[last]);
41
+ }
42
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,SAAS,KAAK,CAAC,MAAW,EAAE,IAAY;IACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACf,wBAAwB;YACxB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;AAEL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAW,EAAE,IAAc;IACpD,IAAI,CAAC,GAAG,MAAa,CAAC;IACtB,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export async function readStreamAsBase64(stream) {
2
+ const out = [];
3
+ for await (const chunk of stream) {
4
+ out.push(Buffer.from(chunk));
5
+ }
6
+ return Buffer.concat(out).toString('base64');
7
+ }
8
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAsB;IAC3D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAa,EAAE,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAmJA,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;AA0BD,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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAmJA,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;AAgCD,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;AA2BD,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"}
@@ -1,5 +1,17 @@
1
- import { validate } from "json-schema";
1
+ import { Ajv } from 'ajv';
2
+ import addFormats from 'ajv-formats';
2
3
  import { extractAndParseJSON } from "./json.js";
4
+ import { resolveField } from './resolver.js';
5
+ const ajv = new Ajv({
6
+ coerceTypes: 'array',
7
+ allowDate: true,
8
+ strict: false,
9
+ useDefaults: true,
10
+ removeAdditional: "failing"
11
+ });
12
+ //use ts ignore to avoid error with ESM and ajv-formats
13
+ // @ts-ignore This expression is not callable
14
+ addFormats(ajv);
3
15
  export class ValidationError extends Error {
4
16
  code;
5
17
  constructor(code, message) {
@@ -21,9 +33,31 @@ export function validateResult(data, schema) {
21
33
  else {
22
34
  json = data;
23
35
  }
24
- const validation = validate(json, schema);
25
- if (!validation.valid) {
26
- throw new ValidationError("validation_error", validation.errors.map(e => e.message).join(",\n"));
36
+ const validate = ajv.compile(schema);
37
+ const valid = validate(json);
38
+ if (!valid && validate.errors) {
39
+ let errors = [];
40
+ for (const e of validate.errors) {
41
+ const path = e.instancePath.split("/").slice(1);
42
+ const value = resolveField(json, path);
43
+ const schemaPath = e.schemaPath.split("/").slice(1);
44
+ const schemaFieldFormat = resolveField(schema, schemaPath);
45
+ const schemaField = resolveField(schema, schemaPath.slice(0, -3));
46
+ //ignore date if empty or null
47
+ if (!value
48
+ && ["date", "date-time"].includes(schemaFieldFormat)
49
+ && !schemaField?.required?.includes(path[path.length - 1])) {
50
+ continue;
51
+ }
52
+ else {
53
+ errors.push(e);
54
+ }
55
+ }
56
+ //console.log("Errors", errors)
57
+ if (errors.length > 0) {
58
+ const errorsMessage = errors.map(e => `${e.instancePath}: ${e.message}\n${JSON.stringify(e.params)}`).join(",\n\n");
59
+ throw new ValidationError("validation_error", errorsMessage);
60
+ }
27
61
  }
28
62
  return json;
29
63
  }
@@ -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,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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,20 @@
1
1
  import { AbstractDriver } from "./Driver.js";
2
- import { ExecutionResponse, CompletionStream, DriverOptions, ExecutionOptions, PromptSegment } from "./types.js";
2
+ import { CompletionStream, DriverOptions, ExecutionOptions, ExecutionResponse } from "./types.js";
3
3
  export declare class DefaultCompletionStream<PromptT = any> implements CompletionStream<PromptT> {
4
4
  driver: AbstractDriver<DriverOptions, PromptT>;
5
+ prompt: PromptT;
5
6
  options: ExecutionOptions;
6
7
  chunks: string[];
7
- prompt: PromptT;
8
8
  completion: ExecutionResponse<PromptT> | undefined;
9
- constructor(driver: AbstractDriver<DriverOptions, PromptT>, segments: PromptSegment[], options: ExecutionOptions);
9
+ constructor(driver: AbstractDriver<DriverOptions, PromptT>, prompt: PromptT, options: ExecutionOptions);
10
10
  [Symbol.asyncIterator](): AsyncGenerator<string, void, unknown>;
11
11
  }
12
12
  export declare class FallbackCompletionStream<PromptT = any> implements CompletionStream<PromptT> {
13
13
  driver: AbstractDriver<DriverOptions, PromptT>;
14
- options: ExecutionOptions;
15
14
  prompt: PromptT;
15
+ options: ExecutionOptions;
16
16
  completion: ExecutionResponse<PromptT> | undefined;
17
- constructor(driver: AbstractDriver<DriverOptions, PromptT>, segments: PromptSegment[], options: ExecutionOptions);
17
+ constructor(driver: AbstractDriver<DriverOptions, PromptT>, prompt: PromptT, options: ExecutionOptions);
18
18
  [Symbol.asyncIterator](): AsyncGenerator<string, void, unknown>;
19
19
  }
20
20
  //# sourceMappingURL=CompletionStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompletionStream.d.ts","sourceRoot":"","sources":["../../src/CompletionStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjH,qBAAa,uBAAuB,CAAC,OAAO,GAAG,GAAG,CAAE,YAAW,gBAAgB,CAAC,OAAO,CAAC;IAMjE,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC;IAEtD,OAAO,EAAE,gBAAgB;IANpC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;gBAEhC,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,EAC7D,QAAQ,EAAE,aAAa,EAAE,EAClB,OAAO,EAAE,gBAAgB;IAM7B,CAAC,MAAM,CAAC,aAAa,CAAC;CAwChC;AAED,qBAAa,wBAAwB,CAAC,OAAO,GAAG,GAAG,CAAE,YAAW,gBAAgB,CAAC,OAAO,CAAC;IAKlE,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC;IAEtD,OAAO,EAAE,gBAAgB;IALpC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;gBAEhC,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,EAC7D,QAAQ,EAAE,aAAa,EAAE,EAClB,OAAO,EAAE,gBAAgB;IAK7B,CAAC,MAAM,CAAC,aAAa,CAAC;CAYhC"}
1
+ {"version":3,"file":"CompletionStream.d.ts","sourceRoot":"","sources":["../../src/CompletionStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElG,qBAAa,uBAAuB,CAAC,OAAO,GAAG,GAAG,CAAE,YAAW,gBAAgB,CAAC,OAAO,CAAC;IAKjE,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC;IACtD,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,gBAAgB;IALpC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;gBAEhC,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,EACtD,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,gBAAgB;IAI7B,CAAC,MAAM,CAAC,aAAa,CAAC;CAyChC;AAED,qBAAa,wBAAwB,CAAC,OAAO,GAAG,GAAG,CAAE,YAAW,gBAAgB,CAAC,OAAO,CAAC;IAIlE,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC;IACtD,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,gBAAgB;IAJpC,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;gBAEhC,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,EACtD,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,gBAAgB;IAG7B,CAAC,MAAM,CAAC,aAAa,CAAC;CAYhC"}
@@ -12,8 +12,8 @@ export interface Driver<PromptT = unknown> {
12
12
  * @param completion
13
13
  * @param model the model to train
14
14
  */
15
- createTrainingPrompt(options: TrainingPromptOptions): string;
16
- createPrompt(segments: PromptSegment[], opts: PromptOptions): PromptT;
15
+ createTrainingPrompt(options: TrainingPromptOptions): Promise<string>;
16
+ createPrompt(segments: PromptSegment[], opts: PromptOptions): Promise<PromptT>;
17
17
  execute(segments: PromptSegment[], options: ExecutionOptions): Promise<ExecutionResponse<PromptT>>;
18
18
  stream(segments: PromptSegment[], options: ExecutionOptions): Promise<CompletionStream<PromptT>>;
19
19
  startTraining(dataset: DataSource, options: TrainingOptions): Promise<TrainingJob>;
@@ -32,7 +32,7 @@ export declare abstract class AbstractDriver<OptionsT extends DriverOptions = Dr
32
32
  logger: Logger;
33
33
  abstract provider: string;
34
34
  constructor(opts: OptionsT);
35
- createTrainingPrompt(options: TrainingPromptOptions): string;
35
+ createTrainingPrompt(options: TrainingPromptOptions): Promise<string>;
36
36
  startTraining(_dataset: DataSource, _options: TrainingOptions): Promise<TrainingJob>;
37
37
  cancelTraining(_jobId: string): Promise<TrainingJob>;
38
38
  getTrainingJob(_jobId: string): Promise<TrainingJob>;
@@ -46,8 +46,8 @@ export declare abstract class AbstractDriver<OptionsT extends DriverOptions = Dr
46
46
  * @param options
47
47
  * @returns
48
48
  */
49
- protected formatPrompt(segments: PromptSegment[], opts: PromptOptions): PromptT;
50
- createPrompt(segments: PromptSegment[], opts: PromptOptions): PromptT;
49
+ protected formatPrompt(segments: PromptSegment[], opts: PromptOptions): Promise<PromptT>;
50
+ createPrompt(segments: PromptSegment[], opts: PromptOptions): Promise<PromptT>;
51
51
  /**
52
52
  * Must be overrided if the implementation cannot stream.
53
53
  * Some implementation may be able to stream for certain models but not for others.
@@ -1 +1 @@
1
- {"version":3,"file":"Driver.d.ts","sourceRoot":"","sources":["../../src/Driver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACH,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,EACN,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,qBAAqB,EACxB,MAAM,YAAY,CAAC;AAkBpB,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,UAQlE;AAUD,MAAM,WAAW,MAAM,CAAC,OAAO,GAAG,OAAO;IAErC;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAAC;IAE7D,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IAEtE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAInG,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjG,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEnF,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAGpD,UAAU,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAG5D,mBAAmB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAG1C,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAGvC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAE7E;AAED;;GAEG;AACH,8BAAsB,cAAc,CAAC,QAAQ,SAAS,aAAa,GAAG,aAAa,EAAE,OAAO,GAAG,OAAO,CAAE,YAAW,MAAM,CAAC,OAAO,CAAC;IAC9H,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE,QAAQ;IAK1B,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM;IAQ5D,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpF,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAetD,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAMlG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAiBzF,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAUtG;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO;IAQxE,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO;IAI5E;;;;;;;;OAQG;IACH,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,gBAAgB;IAI9C;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI/C,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAE3F,QAAQ,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAG5G,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAGpE,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAG/C,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAErF"}
1
+ {"version":3,"file":"Driver.d.ts","sourceRoot":"","sources":["../../src/Driver.ts"],"names":[],"mappings":"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"}
@@ -22,5 +22,5 @@ export declare class EventStream<T, ReturnT = any> implements AsyncIterable<T> {
22
22
  * @param originalGenerator
23
23
  * @param transform
24
24
  **/
25
- export declare function transformAsyncIterator<T, V>(originalGenerator: AsyncIterable<T>, transform: (value: T) => V | Promise<V>): AsyncIterable<V>;
25
+ export declare function transformAsyncIterator<T, V>(originalGenerator: AsyncIterable<T>, transform: (value: T) => V | Promise<V>, initCallback?: () => V | Promise<V>): AsyncIterable<V>;
26
26
  //# sourceMappingURL=async.d.ts.map
@@ -1 +1 @@
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"}
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,EACvC,YAAY,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACpC,aAAa,CAAC,CAAC,CAAC,CAOlB"}
@@ -2,11 +2,16 @@ import { JSONSchema4 } from "json-schema";
2
2
  import { PromptSegment } from "../index.js";
3
3
  export interface ClaudeMessage {
4
4
  role: 'user' | 'assistant';
5
- content: {
6
- type: "image" | "text";
7
- source?: string;
8
- text?: string;
9
- }[];
5
+ content: ClaudeMessagePart[];
6
+ }
7
+ interface ClaudeMessagePart {
8
+ type: "image" | "text";
9
+ source?: {
10
+ type: "base64";
11
+ media_type: string;
12
+ data: string;
13
+ };
14
+ text?: string;
10
15
  }
11
16
  export interface ClaudeMessagesPrompt {
12
17
  system?: string;
@@ -15,5 +20,6 @@ export interface ClaudeMessagesPrompt {
15
20
  /**
16
21
  * A formatter user by Bedrock to format prompts for claude related models
17
22
  */
18
- export declare function formatClaudePrompt(segments: PromptSegment[], schema?: JSONSchema4): ClaudeMessagesPrompt;
23
+ export declare function formatClaudePrompt(segments: PromptSegment[], schema?: JSONSchema4): Promise<ClaudeMessagesPrompt>;
24
+ export {};
19
25
  //# sourceMappingURL=claude.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/formatters/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAc,aAAa,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QACL,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;KAChB,EAAE,CAAA;CACN;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC5B;AAED;;GAEG;AAEH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,oBAAoB,CAiDxG"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/formatters/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAc,aAAa,EAAE,MAAM,aAAa,CAAC;AAIxD,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC/B;AAED,UAAU,iBAAiB;IACvB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QACL,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC5B;AAED;;GAEG;AAEH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2FvH"}
@@ -1,9 +1,10 @@
1
1
  import { JSONSchema4 } from "json-schema";
2
2
  import { PromptSegment } from "../types.js";
3
3
  export type PromptFormatter<T = any> = (messages: PromptSegment[], schema?: JSONSchema4) => T;
4
+ export * from "./claude.js";
4
5
  export * from "./commons.js";
5
6
  export * from "./generic.js";
6
7
  export * from "./llama2.js";
7
- export * from "./claude.js";
8
+ export * from "./llama3.js";
8
9
  export * from "./openai.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/formatters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,CAAC,CAAC;AAE9F,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/formatters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,CAAC,CAAC;AAE9F,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { JSONSchema4 } from "json-schema";
2
+ import { PromptSegment } from "../index.js";
3
+ /**
4
+ * A formatter user by Bedrock to format prompts for claude related models
5
+ */
6
+ export declare function formatLlama3Prompt(segments: PromptSegment[], schema?: JSONSchema4): Promise<string>;
7
+ //# sourceMappingURL=llama3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llama3.d.ts","sourceRoot":"","sources":["../../../src/formatters/llama3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAc,aAAa,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AAEH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBzG"}
@@ -3,10 +3,27 @@ export interface OpenAITextMessage {
3
3
  content: string;
4
4
  role: "system" | "user" | "assistant";
5
5
  }
6
+ export interface OpenAIMessage {
7
+ content: (OpenAIContentPartText | OpenAIContentPartImage)[];
8
+ role: "system" | "user" | "assistant";
9
+ name?: string;
10
+ }
11
+ export interface OpenAIContentPartText {
12
+ type: "text";
13
+ text: string;
14
+ }
15
+ export interface OpenAIContentPartImage {
16
+ type: "image_url";
17
+ image_url: {
18
+ detail?: 'auto' | 'low' | 'high';
19
+ url: string;
20
+ };
21
+ }
6
22
  /**
7
23
  * OpenAI text only prompts
8
24
  * @param segments
9
25
  * @returns
10
26
  */
11
- export declare function formatOpenAILikePrompt(segments: PromptSegment[]): OpenAITextMessage[];
27
+ export declare function formatOpenAILikeTextPrompt(segments: PromptSegment[]): OpenAITextMessage[];
28
+ export declare function formatOpenAILikeMultimodalPrompt(segments: PromptSegment[]): Promise<OpenAIMessage[]>;
12
29
  //# sourceMappingURL=openai.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/formatters/openai.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;CACzC;AACD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,uBAiB/D"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/formatters/openai.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,CAAC,qBAAqB,GAAG,sBAAsB,CAAC,EAAE,CAAA;IAC3D,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;QAChC,GAAG,EAAE,MAAM,CAAA;KACd,CAAA;CACJ;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,iBAAiB,EAAE,CAoBzF;AAED,wBAAsB,gCAAgC,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CA4D1G"}
@@ -1,4 +1,5 @@
1
1
  export * from "./Driver.js";
2
2
  export * from "./json.js";
3
+ export * from "./stream.js";
3
4
  export * from "./types.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function resolveField(object: any, path: string[]): any;
2
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"AA0BA,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAYvD"}
@@ -0,0 +1,2 @@
1
+ export declare function readStreamAsBase64(stream: ReadableStream): Promise<string>;
2
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AACA,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,cAAc,mBAM9D"}
@@ -1,6 +1,6 @@
1
1
  import { JSONSchema4 } from "json-schema";
2
- import { JSONObject } from "./json.js";
3
2
  import { PromptFormatter } from "./formatters/index.js";
3
+ import { JSONObject } from "./json.js";
4
4
  export interface EmbeddingsOptions {
5
5
  /**
6
6
  * The content to generate the embeddings for. Required.
@@ -48,7 +48,7 @@ export interface Completion<ResultT = any> {
48
48
  finish_reason?: "stop" | "length" | string;
49
49
  /**
50
50
  * Set only if a result validation error occured, otherwise if the result is valid the error field is undefined
51
- * 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
51
+ * This can only be set if the result_schema is set and the reuslt could not be parsed as a json or if the result does not match the schema
52
52
  */
53
53
  error?: ResultValidationError;
54
54
  /**
@@ -82,7 +82,7 @@ export interface PromptOptions {
82
82
  * If no one is specified the driver will choose a formatter compatible with the target model
83
83
  */
84
84
  format?: PromptFormatter;
85
- resultSchema?: JSONSchema4;
85
+ result_schema?: JSONSchema4;
86
86
  }
87
87
  export interface ExecutionOptions extends PromptOptions {
88
88
  temperature?: number;
@@ -132,6 +132,7 @@ export declare enum PromptRole {
132
132
  export interface PromptSegment {
133
133
  role: PromptRole;
134
134
  content: string;
135
+ files?: DataSource[];
135
136
  }
136
137
  export interface ExecutionTokenUsage {
137
138
  prompt?: number;
@@ -148,8 +149,9 @@ export interface AIModel<ProviderKeys = string> {
148
149
  tags?: string[];
149
150
  owner?: string;
150
151
  status?: AIModelStatus;
151
- canStream?: boolean;
152
- isCustom?: boolean;
152
+ can_stream?: boolean;
153
+ is_custom?: boolean;
154
+ is_multimodal?: boolean;
153
155
  }
154
156
  export declare enum AIModelStatus {
155
157
  Available = "available",
@@ -192,7 +194,8 @@ export declare enum ModelType {
192
194
  }
193
195
  export interface DataSource {
194
196
  name: string;
195
- getStream(): ReadableStream<Uint8Array | string>;
197
+ mime_type?: string;
198
+ getStream(): Promise<ReadableStream<Uint8Array | string>>;
196
199
  getURL(): Promise<string>;
197
200
  }
198
201
  export interface TrainingOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import { JSONSchema4 } from "json-schema";
2
1
  import { ResultValidationError } from "./types.js";
3
2
  export declare class ValidationError extends Error implements ResultValidationError {
4
3
  code: 'validation_error' | 'json_error';
5
4
  constructor(code: 'validation_error' | 'json_error', message: string);
6
5
  }
7
- export declare function validateResult(data: any, schema: JSONSchema4): any;
6
+ export declare function validateResult(data: any, schema: Object): any;
8
7
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,qBAAa,eAAgB,SAAQ,KAAM,YAAW,qBAAqB;IAE5D,IAAI,EAAE,kBAAkB,GAAG,YAAY;gBAAvC,IAAI,EAAE,kBAAkB,GAAG,YAAY,EAC9C,OAAO,EAAE,MAAM;CAKtB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,OAmB5D"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAgBnD,qBAAa,eAAgB,SAAQ,KAAM,YAAW,qBAAqB;IAE5D,IAAI,EAAE,kBAAkB,GAAG,YAAY;gBAAvC,IAAI,EAAE,kBAAkB,GAAG,YAAY,EAC9C,OAAO,EAAE,MAAM;CAKtB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OA4CvD"}