@llumiverse/core 0.15.0 → 0.16.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 (113) hide show
  1. package/README.md +3 -3
  2. package/lib/cjs/CompletionStream.js +31 -10
  3. package/lib/cjs/CompletionStream.js.map +1 -1
  4. package/lib/cjs/Driver.js +19 -21
  5. package/lib/cjs/Driver.js.map +1 -1
  6. package/lib/cjs/async.js +3 -2
  7. package/lib/cjs/async.js.map +1 -1
  8. package/lib/cjs/formatters/index.js +1 -3
  9. package/lib/cjs/formatters/index.js.map +1 -1
  10. package/lib/cjs/formatters/{claude.js → nova.js} +33 -37
  11. package/lib/cjs/formatters/nova.js.map +1 -0
  12. package/lib/cjs/formatters/openai.js +36 -6
  13. package/lib/cjs/formatters/openai.js.map +1 -1
  14. package/lib/cjs/index.js +1 -0
  15. package/lib/cjs/index.js.map +1 -1
  16. package/lib/cjs/options/bedrock.js +343 -0
  17. package/lib/cjs/options/bedrock.js.map +1 -0
  18. package/lib/cjs/options/groq.js +37 -0
  19. package/lib/cjs/options/groq.js.map +1 -0
  20. package/lib/cjs/options/openai.js +123 -0
  21. package/lib/cjs/options/openai.js.map +1 -0
  22. package/lib/cjs/options/vertexai.js +257 -0
  23. package/lib/cjs/options/vertexai.js.map +1 -0
  24. package/lib/cjs/options.js +54 -0
  25. package/lib/cjs/options.js.map +1 -0
  26. package/lib/cjs/types.js +34 -1
  27. package/lib/cjs/types.js.map +1 -1
  28. package/lib/esm/CompletionStream.js +31 -10
  29. package/lib/esm/CompletionStream.js.map +1 -1
  30. package/lib/esm/Driver.js +20 -22
  31. package/lib/esm/Driver.js.map +1 -1
  32. package/lib/esm/async.js +3 -2
  33. package/lib/esm/async.js.map +1 -1
  34. package/lib/esm/formatters/index.js +1 -3
  35. package/lib/esm/formatters/index.js.map +1 -1
  36. package/lib/esm/formatters/{claude.js → nova.js} +32 -36
  37. package/lib/esm/formatters/nova.js.map +1 -0
  38. package/lib/esm/formatters/openai.js +36 -6
  39. package/lib/esm/formatters/openai.js.map +1 -1
  40. package/lib/esm/index.js +1 -0
  41. package/lib/esm/index.js.map +1 -1
  42. package/lib/esm/options/bedrock.js +340 -0
  43. package/lib/esm/options/bedrock.js.map +1 -0
  44. package/lib/esm/options/groq.js +34 -0
  45. package/lib/esm/options/groq.js.map +1 -0
  46. package/lib/esm/options/openai.js +120 -0
  47. package/lib/esm/options/openai.js.map +1 -0
  48. package/lib/esm/options/vertexai.js +253 -0
  49. package/lib/esm/options/vertexai.js.map +1 -0
  50. package/lib/esm/options.js +50 -0
  51. package/lib/esm/options.js.map +1 -0
  52. package/lib/esm/types.js +33 -0
  53. package/lib/esm/types.js.map +1 -1
  54. package/lib/types/CompletionStream.d.ts +1 -1
  55. package/lib/types/CompletionStream.d.ts.map +1 -1
  56. package/lib/types/Driver.d.ts +5 -4
  57. package/lib/types/Driver.d.ts.map +1 -1
  58. package/lib/types/async.d.ts +3 -2
  59. package/lib/types/async.d.ts.map +1 -1
  60. package/lib/types/formatters/generic.d.ts.map +1 -1
  61. package/lib/types/formatters/index.d.ts +1 -3
  62. package/lib/types/formatters/index.d.ts.map +1 -1
  63. package/lib/types/formatters/nova.d.ts +40 -0
  64. package/lib/types/formatters/nova.d.ts.map +1 -0
  65. package/lib/types/formatters/openai.d.ts +13 -1
  66. package/lib/types/formatters/openai.d.ts.map +1 -1
  67. package/lib/types/index.d.ts +1 -0
  68. package/lib/types/index.d.ts.map +1 -1
  69. package/lib/types/options/bedrock.d.ts +32 -0
  70. package/lib/types/options/bedrock.d.ts.map +1 -0
  71. package/lib/types/options/groq.d.ts +12 -0
  72. package/lib/types/options/groq.d.ts.map +1 -0
  73. package/lib/types/options/openai.d.ts +21 -0
  74. package/lib/types/options/openai.d.ts.map +1 -0
  75. package/lib/types/options/vertexai.d.ts +52 -0
  76. package/lib/types/options/vertexai.d.ts.map +1 -0
  77. package/lib/types/options.d.ts +14 -0
  78. package/lib/types/options.d.ts.map +1 -0
  79. package/lib/types/types.d.ts +133 -49
  80. package/lib/types/types.d.ts.map +1 -1
  81. package/package.json +6 -6
  82. package/src/CompletionStream.ts +31 -11
  83. package/src/Driver.ts +29 -25
  84. package/src/async.ts +7 -5
  85. package/src/formatters/index.ts +1 -3
  86. package/src/formatters/nova.ts +141 -0
  87. package/src/formatters/openai.ts +52 -12
  88. package/src/index.ts +2 -1
  89. package/src/options/bedrock.ts +388 -0
  90. package/src/options/groq.ts +47 -0
  91. package/src/options/openai.ts +148 -0
  92. package/src/options/vertexai.ts +312 -0
  93. package/src/options.ts +62 -0
  94. package/src/types.ts +167 -52
  95. package/lib/cjs/formatters/claude.js.map +0 -1
  96. package/lib/cjs/formatters/llama2.js +0 -48
  97. package/lib/cjs/formatters/llama2.js.map +0 -1
  98. package/lib/cjs/formatters/llama3.js +0 -42
  99. package/lib/cjs/formatters/llama3.js.map +0 -1
  100. package/lib/esm/formatters/claude.js.map +0 -1
  101. package/lib/esm/formatters/llama2.js +0 -45
  102. package/lib/esm/formatters/llama2.js.map +0 -1
  103. package/lib/esm/formatters/llama3.js +0 -39
  104. package/lib/esm/formatters/llama3.js.map +0 -1
  105. package/lib/types/formatters/claude.d.ts +0 -25
  106. package/lib/types/formatters/claude.d.ts.map +0 -1
  107. package/lib/types/formatters/llama2.d.ts +0 -4
  108. package/lib/types/formatters/llama2.d.ts.map +0 -1
  109. package/lib/types/formatters/llama3.d.ts +0 -7
  110. package/lib/types/formatters/llama3.d.ts.map +0 -1
  111. package/src/formatters/claude.ts +0 -131
  112. package/src/formatters/llama2.ts +0 -58
  113. package/src/formatters/llama3.ts +0 -55
@@ -1,32 +1,37 @@
1
- import { PromptRole } from "../index.js";
2
- import { readStreamAsBase64 } from "../stream.js";
1
+ import { PromptRole, readStreamAsBase64 } from "../index.js";
2
+ //import { readStreamAsBase64 } from "../stream.js";
3
3
  import { getJSONSafetyNotice } from "./commons.js";
4
4
  /**
5
- * A formatter user by Bedrock to format prompts for claude related models
5
+ * A formatter used by Bedrock to format prompts for nova related models
6
6
  */
7
- export async function formatClaudePrompt(segments, schema) {
7
+ export async function formatNovaPrompt(segments, schema) {
8
8
  const system = [];
9
9
  const safety = [];
10
10
  const messages = [];
11
- //TODO type: 'image' -> detect from f.mime_type
11
+ let negative = "";
12
+ let mask = "";
12
13
  for (const segment of segments) {
13
14
  const parts = [];
14
15
  if (segment.files)
15
16
  for (const f of segment.files) {
17
+ //TODO add video support
18
+ if (!f.mime_type?.startsWith('image')) {
19
+ continue;
20
+ }
16
21
  const source = await f.getStream();
17
22
  const data = await readStreamAsBase64(source);
23
+ const format = f.mime_type?.split('/')[1] || 'png';
18
24
  parts.push({
19
- type: 'image',
20
- source: {
21
- type: "base64",
22
- media_type: f.mime_type || 'image/png',
23
- data
25
+ image: {
26
+ format: format,
27
+ source: {
28
+ bytes: data
29
+ }
24
30
  }
25
31
  });
26
32
  }
27
33
  if (segment.content) {
28
34
  parts.push({
29
- type: "text",
30
35
  text: segment.content
31
36
  });
32
37
  }
@@ -37,10 +42,17 @@ export async function formatClaudePrompt(segments, schema) {
37
42
  safety.push(segment.content);
38
43
  }
39
44
  else if (messages.length > 0 && messages[messages.length - 1].role === segment.role) {
45
+ //Maybe can remove for nova?
40
46
  //concatenate messages of the same role (Claude requires alternative user and assistant roles)
41
47
  messages[messages.length - 1].content.push(...parts);
42
48
  }
43
- else {
49
+ else if (segment.role === PromptRole.negative) {
50
+ negative = negative.concat(segment.content, ', ');
51
+ }
52
+ else if (segment.role === PromptRole.mask) {
53
+ mask = mask.concat(segment.content, ' ');
54
+ }
55
+ else if (segment.role !== PromptRole.tool) {
44
56
  messages.push({
45
57
  role: segment.role,
46
58
  content: parts
@@ -57,44 +69,28 @@ export async function formatClaudePrompt(segments, schema) {
57
69
  if (!systemMessage) {
58
70
  throw new Error('Prompt must contain at least one message');
59
71
  }
60
- messages.push({ content: [{ type: "text", text: systemMessage }], role: 'user' });
72
+ messages.push({ content: [{ text: systemMessage }], role: 'user' });
61
73
  systemMessage = safety.join('\n');
62
74
  }
63
75
  else if (safety.length > 0) {
64
76
  systemMessage = systemMessage + '\n\nIMPORTANT: ' + safety.join('\n');
65
77
  }
66
- /*if (schema) {
67
- messages.push({
68
- role: "user",
69
- content: [{
70
- type: "text",
71
- text: getJSONSafetyNotice(schema)
72
- }]
73
- });
74
- }*/
75
- /*start Claude's message to amke sure it answers properly in JSON
76
- if enabled, this requires to add the { to Claude's response*/
78
+ /*start Nova's message to amke sure it answers properly in JSON
79
+ if enabled, this requires to add the { to Nova's response*/
77
80
  if (schema) {
78
81
  messages.push({
79
82
  role: "assistant",
80
83
  content: [{
81
- type: "text",
82
84
  text: "{"
83
85
  }]
84
86
  });
85
87
  }
86
88
  // put system mesages first and safety last
87
89
  return {
88
- system: systemMessage,
89
- messages
90
+ system: systemMessage ? [{ text: systemMessage }] : [{ text: "" }],
91
+ messages: messages,
92
+ negative: negative || undefined,
93
+ mask: mask || undefined,
90
94
  };
91
95
  }
92
- // export function claude(messages: PromptSegment[], schema?: JSONSchema4) {
93
- // const prompt = genericColonSeparator(messages, schema, {
94
- // user: "\nHuman",
95
- // assistant: "\nAssistant",
96
- // system: "\nHuman",
97
- // });
98
- // return "\n\n" + prompt + "\n\nAssistant:";
99
- // }
100
- //# sourceMappingURL=claude.js.map
96
+ //# sourceMappingURL=nova.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nova.js","sourceRoot":"","sources":["../../../src/formatters/nova.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export function formatOpenAILikeTextPrompt(segments) {
16
16
  else if (msg.role === PromptRole.safety) {
17
17
  safety.push({ content: "IMPORTANT: " + msg.content, role: "system" });
18
18
  }
19
- else {
19
+ else if (msg.role !== PromptRole.negative && msg.role !== PromptRole.mask && msg.role !== PromptRole.tool) {
20
20
  user.push({
21
21
  content: msg.content,
22
22
  role: msg.role || 'user',
@@ -26,7 +26,7 @@ export function formatOpenAILikeTextPrompt(segments) {
26
26
  // put system mesages first and safety last
27
27
  return system.concat(user).concat(safety);
28
28
  }
29
- export async function formatOpenAILikeMultimodalPrompt(segments) {
29
+ export async function formatOpenAILikeMultimodalPrompt(segments, opts) {
30
30
  const system = [];
31
31
  const safety = [];
32
32
  const others = [];
@@ -38,8 +38,11 @@ export async function formatOpenAILikeMultimodalPrompt(segments) {
38
38
  const stream = await file.getStream();
39
39
  const data = await readStreamAsBase64(stream);
40
40
  parts.push({
41
- image_url: { url: `data:${file.mime_type || "image/jpeg"};base64,${data}` },
42
- type: "image_url"
41
+ type: "image_url",
42
+ image_url: {
43
+ url: `data:${file.mime_type || "image/jpeg"};base64,${data}`,
44
+ //detail: "auto" //This is modified just before execution to "low" | "high" | "auto"
45
+ },
43
46
  });
44
47
  }
45
48
  }
@@ -54,6 +57,14 @@ export async function formatOpenAILikeMultimodalPrompt(segments) {
54
57
  role: "system",
55
58
  content: parts
56
59
  });
60
+ if (opts.useToolForFormatting && opts.schema) {
61
+ system.forEach(s => {
62
+ s.content.forEach(c => {
63
+ if (c.type === "text")
64
+ c.text = "TOOL: " + c.text;
65
+ });
66
+ });
67
+ }
57
68
  }
58
69
  else if (msg.role === PromptRole.safety) {
59
70
  const safetyMsg = {
@@ -66,14 +77,33 @@ export async function formatOpenAILikeMultimodalPrompt(segments) {
66
77
  });
67
78
  system.push(safetyMsg);
68
79
  }
69
- else {
80
+ else if (msg.role === PromptRole.tool) {
81
+ if (!msg.tool_use_id) {
82
+ throw new Error("Tool use id is required for tool messages");
83
+ }
84
+ others.push({
85
+ role: "tool",
86
+ tool_call_id: msg.tool_use_id,
87
+ content: msg.content
88
+ });
89
+ }
90
+ else if (msg.role !== PromptRole.negative && msg.role !== PromptRole.mask) {
70
91
  others.push({
71
92
  role: msg.role ?? 'user',
72
93
  content: parts
73
94
  });
74
95
  }
75
96
  }
97
+ if (opts.result_schema && !opts.useToolForFormatting) {
98
+ system.push({
99
+ role: "system",
100
+ content: [{
101
+ type: "text",
102
+ text: "IMPORTANT: only answer using JSON, and respecting the schema included below, between the <response_schema> tags. " + `<response_schema>${JSON.stringify(opts.result_schema)}</response_schema>`
103
+ }]
104
+ });
105
+ }
76
106
  // put system mesages first and safety last
77
- return system.concat(others).concat(safety);
107
+ return [].concat(system).concat(others).concat(safety);
78
108
  }
79
109
  //# sourceMappingURL=openai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/formatters/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/formatters/openai.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -2,4 +2,5 @@ export * from "./Driver.js";
2
2
  export * from "./json.js";
3
3
  export * from "./stream.js";
4
4
  export * from "./types.js";
5
+ export * from "./options.js";
5
6
  //# 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,aAAa,CAAC;AAC5B,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;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,340 @@
1
+ import { OptionType } from "../types.js";
2
+ import { textOptionsFallback } from "../options.js";
3
+ function getMaxTokensLimit(model, option) {
4
+ // Claude models
5
+ if (model.includes("claude")) {
6
+ if (model.includes("3-7")) {
7
+ if (option && option?.thinking_mode) {
8
+ return 128000;
9
+ }
10
+ else {
11
+ return 8192;
12
+ }
13
+ }
14
+ else if (model.includes("3-5")) {
15
+ if (model.includes("claude-3-5-sonnet")) {
16
+ return 4096;
17
+ }
18
+ return 8192;
19
+ }
20
+ else {
21
+ return 4096;
22
+ }
23
+ }
24
+ // Amazon models
25
+ else if (model.includes("amazon")) {
26
+ if (model.includes("titan")) {
27
+ if (model.includes("lite")) {
28
+ return 4096;
29
+ }
30
+ else if (model.includes("express")) {
31
+ return 8192;
32
+ }
33
+ else if (model.includes("premier")) {
34
+ return 3072;
35
+ }
36
+ }
37
+ else if (model.includes("nova")) {
38
+ return 5000;
39
+ }
40
+ }
41
+ // Mistral models
42
+ else if (model.includes("mistral")) {
43
+ if (model.includes("8x7b")) {
44
+ return 4096;
45
+ }
46
+ return 8192;
47
+ }
48
+ // AI21 models
49
+ else if (model.includes("ai21")) {
50
+ if (model.includes("j2")) {
51
+ if (model.includes("large") || model.includes("mid") || model.includes("ultra")) {
52
+ return 8191;
53
+ }
54
+ return 2048;
55
+ }
56
+ if (model.includes("jamba")) {
57
+ return 4096;
58
+ }
59
+ }
60
+ // Cohere models
61
+ else if (model.includes("cohere.command")) {
62
+ if (model.includes("command-r")) {
63
+ return 128000;
64
+ }
65
+ return 4096;
66
+ }
67
+ // Meta models
68
+ else if (model.includes("llama")) {
69
+ if (model.includes("3-70b") || model.includes("3-8b")) {
70
+ return 2048;
71
+ }
72
+ return 8192;
73
+ }
74
+ // Default fallback
75
+ return undefined;
76
+ }
77
+ export function getBedrockOptions(model, option) {
78
+ if (model.includes("canvas")) {
79
+ const tasktypeList = {
80
+ name: "taskType",
81
+ type: OptionType.enum,
82
+ enum: {
83
+ "Text-To-Image": "TEXT_IMAGE",
84
+ "Text-To-Image-with-Image-Conditioning": "TEXT_IMAGE_WITH_IMAGE_CONDITIONING",
85
+ "Color-Guided-Generation": "COLOR_GUIDED_GENERATION",
86
+ "Image-Variation": "IMAGE_VARIATION",
87
+ "Inpainting": "INPAINTING",
88
+ "Outpainting": "OUTPAINTING",
89
+ "Background-Removal": "BACKGROUND_REMOVAL",
90
+ },
91
+ default: "TEXT_IMAGE",
92
+ description: "The type of task to perform",
93
+ refresh: true,
94
+ };
95
+ let otherOptions = [
96
+ { name: "width", type: OptionType.numeric, min: 320, max: 4096, default: 512, step: 16, integer: true, description: "The width of the generated image" },
97
+ { name: "height", type: OptionType.numeric, min: 320, max: 4096, default: 512, step: 16, integer: true, description: "The height of the generated image" },
98
+ {
99
+ name: "quality",
100
+ type: OptionType.enum,
101
+ enum: { "standard": "standard", "premium": "premium" },
102
+ default: "standard",
103
+ description: "The quality of the generated image"
104
+ },
105
+ { name: "cfgScale", type: OptionType.numeric, min: 1.1, max: 10.0, default: 6.5, step: 0.1, integer: false, description: "The scale of the generated image" },
106
+ { name: "seed", type: OptionType.numeric, min: 0, max: 858993459, default: 12, integer: true, description: "The seed of the generated image" },
107
+ { name: "numberOfImages", type: OptionType.numeric, min: 1, max: 5, default: 1, integer: true, description: "The number of images to generate" },
108
+ ];
109
+ let dependentOptions = [];
110
+ switch (option?.taskType ?? "TEXT_IMAGE") {
111
+ case "TEXT_IMAGE_WITH_IMAGE_CONDITIONING":
112
+ dependentOptions.push({
113
+ name: "controlMode", type: OptionType.enum, enum: { "CANNY_EDGE": "CANNY_EDGE", "SEGMENTATION": "SEGMENTATION" },
114
+ default: "CANNY_EDGE", description: "The control mode of the generated image"
115
+ }, { name: "controlStrength", type: OptionType.numeric, min: 0, max: 1, default: 0.7, description: "The control strength of the generated image" });
116
+ break;
117
+ case "COLOR_GUIDED_GENERATION":
118
+ dependentOptions.push({ name: "colors", type: OptionType.string_list, value: [], description: "Hexadecimal color values to guide generation" });
119
+ break;
120
+ case "IMAGE_VARIATION":
121
+ dependentOptions.push({ name: "similarityStrength", type: OptionType.numeric, min: 0.2, max: 1, default: 0.7, description: "The similarity strength of the generated image" });
122
+ break;
123
+ case "INPAINTING":
124
+ //No changes
125
+ break;
126
+ case "OUTPAINTING":
127
+ dependentOptions.push({
128
+ name: "outPaintingMode", type: OptionType.enum, enum: { "DEFAULT": "DEFAULT", "PRECISE": "PRECISE" },
129
+ default: "default", description: "The outpainting mode of the generated image"
130
+ });
131
+ break;
132
+ case "BACKGROUND_REMOVAL":
133
+ dependentOptions = [];
134
+ otherOptions = [];
135
+ break;
136
+ }
137
+ return {
138
+ _option_id: "bedrock-nova-canvas",
139
+ options: [
140
+ tasktypeList,
141
+ ...otherOptions,
142
+ ...dependentOptions,
143
+ ]
144
+ };
145
+ }
146
+ else {
147
+ const max_tokens_limit = getMaxTokensLimit(model, option);
148
+ //Not canvas, i.e normal AWS bedrock converse
149
+ const baseConverseOptions = [
150
+ {
151
+ name: "max_tokens",
152
+ type: OptionType.numeric,
153
+ min: 1,
154
+ max: max_tokens_limit,
155
+ integer: true,
156
+ step: 200,
157
+ description: "The maximum number of tokens to generate",
158
+ },
159
+ {
160
+ name: "temperature",
161
+ type: OptionType.numeric,
162
+ min: 0.0,
163
+ default: 0.7,
164
+ step: 0.1,
165
+ description: "A higher temperature biases toward less likely tokens, making the model more creative"
166
+ },
167
+ {
168
+ name: "top_p",
169
+ type: OptionType.numeric,
170
+ min: 0,
171
+ max: 1,
172
+ step: 0.1,
173
+ description: "Limits token sampling to the cumulative probability of the top p tokens"
174
+ },
175
+ {
176
+ name: "stop_sequence",
177
+ type: OptionType.string_list,
178
+ value: [],
179
+ description: "The generation will halt if one of the stop sequences is output"
180
+ }
181
+ ];
182
+ if (model.includes("claude")) {
183
+ const claudeConverseOptions = [
184
+ {
185
+ name: "top_k",
186
+ type: OptionType.numeric,
187
+ min: 1,
188
+ integer: true,
189
+ step: 1,
190
+ description: "Limits token sampling to the top k tokens"
191
+ },
192
+ ];
193
+ if (model.includes("3-7")) {
194
+ const claudeModeOptions = [
195
+ {
196
+ name: "thinking_mode",
197
+ type: OptionType.boolean,
198
+ default: false,
199
+ description: "If true, use the extended reasoning mode"
200
+ },
201
+ ];
202
+ const claudeThinkingOptions = option?.thinking_mode ? [
203
+ {
204
+ name: "thinking_budget_tokens",
205
+ type: OptionType.numeric,
206
+ min: 1024,
207
+ default: 4000,
208
+ integer: true,
209
+ step: 100,
210
+ description: "The target number of tokens to use for reasoning, not a hard limit."
211
+ },
212
+ ] : [];
213
+ return {
214
+ _option_id: "bedrock-claude",
215
+ options: [
216
+ ...baseConverseOptions,
217
+ ...claudeConverseOptions,
218
+ ...claudeModeOptions,
219
+ ...claudeThinkingOptions
220
+ ]
221
+ };
222
+ }
223
+ return {
224
+ _option_id: "bedrock-claude",
225
+ options: [...baseConverseOptions, ...claudeConverseOptions]
226
+ };
227
+ }
228
+ else if (model.includes("amazon")) {
229
+ //Titan models also exists but does not support any additional options
230
+ if (model.includes("nova")) {
231
+ const novaConverseOptions = [
232
+ {
233
+ name: "top_k",
234
+ type: OptionType.numeric,
235
+ min: 1,
236
+ integer: true,
237
+ step: 1,
238
+ description: "Limits token sampling to the top k tokens"
239
+ },
240
+ ];
241
+ return {
242
+ _option_id: "bedrock-nova",
243
+ options: [...baseConverseOptions, ...novaConverseOptions]
244
+ };
245
+ }
246
+ }
247
+ else if (model.includes("mistral")) {
248
+ //7b and 8x7b instruct
249
+ if (model.includes("7b")) {
250
+ const mistralConverseOptions = [
251
+ {
252
+ name: "top_k",
253
+ type: OptionType.numeric,
254
+ min: 1,
255
+ integer: true,
256
+ step: 1,
257
+ description: "Limits token sampling to the top k tokens"
258
+ },
259
+ ];
260
+ return {
261
+ _option_id: "bedrock-mistral",
262
+ options: [...baseConverseOptions, ...mistralConverseOptions]
263
+ };
264
+ }
265
+ //Other models such as Mistral Small, Large and Large 2
266
+ //Support no additional options
267
+ }
268
+ else if (model.includes("ai21")) {
269
+ const ai21ConverseOptions = [
270
+ {
271
+ name: "presence_penalty",
272
+ type: OptionType.numeric,
273
+ min: -2,
274
+ max: 2,
275
+ default: 0,
276
+ step: 0.1,
277
+ description: "A higher presence penalty encourages the model to talk about new topics"
278
+ },
279
+ {
280
+ name: "frequency_penalty",
281
+ type: OptionType.numeric,
282
+ min: -2,
283
+ max: 2,
284
+ default: 0,
285
+ step: 0.1,
286
+ description: "A higher frequency penalty encourages the model to use less common words"
287
+ },
288
+ ];
289
+ return {
290
+ _option_id: "bedrock-ai21",
291
+ options: [...baseConverseOptions, ...ai21ConverseOptions]
292
+ };
293
+ }
294
+ else if (model.includes("cohere.command")) {
295
+ const cohereCommandOptions = [
296
+ {
297
+ name: "top_k",
298
+ type: OptionType.numeric,
299
+ min: 1,
300
+ integer: true,
301
+ step: 1,
302
+ description: "Limits token sampling to the top k tokens"
303
+ },
304
+ ];
305
+ if (model.includes("command-r")) {
306
+ const cohereCommandROptions = [
307
+ {
308
+ name: "frequency_penalty",
309
+ type: OptionType.numeric,
310
+ min: -2,
311
+ max: 2,
312
+ default: 0,
313
+ step: 0.1,
314
+ description: "A higher frequency penalty encourages the model to use less common words"
315
+ },
316
+ {
317
+ name: "presence_penalty",
318
+ type: OptionType.numeric,
319
+ min: -2,
320
+ max: 2,
321
+ default: 0,
322
+ step: 0.1,
323
+ description: "A higher presence penalty encourages the model to talk about new topics"
324
+ },
325
+ ];
326
+ return {
327
+ _option_id: "bedrock-cohere-command",
328
+ options: [...baseConverseOptions, ...cohereCommandOptions, ...cohereCommandROptions]
329
+ };
330
+ }
331
+ }
332
+ //Fallback to converse standard.
333
+ return {
334
+ _option_id: "bedrock-converse",
335
+ options: baseConverseOptions
336
+ };
337
+ }
338
+ return textOptionsFallback;
339
+ }
340
+ //# sourceMappingURL=bedrock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../../src/options/bedrock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { OptionType, SharedOptions } from "../types.js";
2
+ import { textOptionsFallback } from "../options.js";
3
+ export function getGroqOptions(model, _option) {
4
+ if (model.includes("deepseek") && model.includes("r1")) {
5
+ const commonOptions = [
6
+ {
7
+ name: SharedOptions.max_tokens, type: OptionType.numeric, min: 1, max: 131072,
8
+ integer: true, description: "The maximum number of tokens to generate",
9
+ },
10
+ {
11
+ name: SharedOptions.temperature, type: OptionType.numeric, min: 0.0, default: 0.7, max: 2.0,
12
+ integer: false, step: 0.1, description: "A higher temperature biases toward less likely tokens, making the model more creative. A lower temperature than other models is recommended for deepseek R1, 0.3-0.7 approximately.",
13
+ },
14
+ {
15
+ name: SharedOptions.top_p, type: OptionType.numeric, min: 0, max: 1,
16
+ integer: false, step: 0.1, description: "Limits token sampling to the cumulative probability of the top p tokens",
17
+ },
18
+ {
19
+ name: SharedOptions.stop_sequence, type: OptionType.string_list, value: [],
20
+ description: "The generation will halt if one of the stop sequences is output",
21
+ },
22
+ {
23
+ name: "reasoning_format", type: OptionType.enum, enum: { "Parsed": "parsed", "Raw": "raw", "Hidden": "hidden" },
24
+ default: "parsed", description: "Controls how the reasoning is returned.",
25
+ },
26
+ ];
27
+ return {
28
+ _option_id: "groq-deepseek-thinking",
29
+ options: commonOptions,
30
+ };
31
+ }
32
+ return textOptionsFallback;
33
+ }
34
+ //# sourceMappingURL=groq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groq.js","sourceRoot":"","sources":["../../../src/options/groq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAcpD,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,OAAsB;IAChE,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,aAAa,GAA0B;YACzC;gBACI,IAAI,EAAE,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM;gBAC7E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,0CAA0C;aACzE;YACD;gBACI,IAAI,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;gBAC3F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,qLAAqL;aAChO;YACD;gBACI,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gBACnE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,yEAAyE;aACpH;YACD;gBACI,IAAI,EAAE,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;gBAC1E,WAAW,EAAE,iEAAiE;aACjF;YACD;gBACI,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBAC/G,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC;aAC5E;SACJ,CAAC;QAEF,OAAO;YACH,UAAU,EAAE,wBAAwB;YACpC,OAAO,EAAE,aAAa;SACzB,CAAC;IACN,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC/B,CAAC"}