node-llama-cpp 3.10.0 → 3.12.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 (98) hide show
  1. package/README.md +1 -1
  2. package/dist/bindings/AddonTypes.d.ts +4 -2
  3. package/dist/bindings/Llama.d.ts +5 -1
  4. package/dist/bindings/Llama.js +22 -3
  5. package/dist/bindings/Llama.js.map +1 -1
  6. package/dist/bindings/getLlama.d.ts +40 -2
  7. package/dist/bindings/getLlama.js +16 -7
  8. package/dist/bindings/getLlama.js.map +1 -1
  9. package/dist/bindings/types.d.ts +6 -2
  10. package/dist/bindings/types.js +16 -1
  11. package/dist/bindings/types.js.map +1 -1
  12. package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +1 -1
  13. package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +1 -1
  14. package/dist/bindings/utils/getLlamaWithoutBackend.js +1 -1
  15. package/dist/bindings/utils/getLlamaWithoutBackend.js.map +1 -1
  16. package/dist/chatWrappers/HarmonyChatWrapper.d.ts +78 -0
  17. package/dist/chatWrappers/HarmonyChatWrapper.js +527 -0
  18. package/dist/chatWrappers/HarmonyChatWrapper.js.map +1 -0
  19. package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +4 -2
  20. package/dist/chatWrappers/utils/resolveChatWrapper.js +21 -6
  21. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
  22. package/dist/cli/commands/ChatCommand.d.ts +2 -1
  23. package/dist/cli/commands/ChatCommand.js +21 -7
  24. package/dist/cli/commands/ChatCommand.js.map +1 -1
  25. package/dist/cli/commands/CompleteCommand.d.ts +2 -1
  26. package/dist/cli/commands/CompleteCommand.js +21 -7
  27. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  28. package/dist/cli/commands/InfillCommand.d.ts +2 -1
  29. package/dist/cli/commands/InfillCommand.js +21 -7
  30. package/dist/cli/commands/InfillCommand.js.map +1 -1
  31. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +23 -2
  32. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  33. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.d.ts +1 -0
  34. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +16 -5
  35. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -1
  36. package/dist/cli/recommendedModels.js +22 -0
  37. package/dist/cli/recommendedModels.js.map +1 -1
  38. package/dist/config.d.ts +1 -1
  39. package/dist/evaluator/LlamaChat/LlamaChat.js +246 -31
  40. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  41. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +2 -2
  42. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  43. package/dist/evaluator/LlamaCompletion.js +2 -2
  44. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  45. package/dist/evaluator/LlamaContext/LlamaContext.js +17 -17
  46. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  47. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js +5 -5
  48. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js.map +1 -1
  49. package/dist/evaluator/LlamaEmbeddingContext.js +1 -1
  50. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
  51. package/dist/evaluator/LlamaModel/LlamaModel.js +3 -3
  52. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
  53. package/dist/evaluator/LlamaRankingContext.js +1 -1
  54. package/dist/evaluator/LlamaRankingContext.js.map +1 -1
  55. package/dist/gguf/fileReaders/GgufFsFileReader.js +1 -1
  56. package/dist/gguf/fileReaders/GgufFsFileReader.js.map +1 -1
  57. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +1 -1
  58. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -1
  59. package/dist/gguf/insights/GgufInsights.js +22 -3
  60. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  61. package/dist/gguf/types/GgufMetadataTypes.d.ts +25 -2
  62. package/dist/gguf/types/GgufMetadataTypes.js +23 -0
  63. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  64. package/dist/gguf/types/GgufTensorInfoTypes.d.ts +2 -1
  65. package/dist/gguf/types/GgufTensorInfoTypes.js +1 -0
  66. package/dist/gguf/types/GgufTensorInfoTypes.js.map +1 -1
  67. package/dist/gguf/utils/getGgufFileTypeName.d.ts +1 -1
  68. package/dist/gguf/utils/ggufQuantNames.js +1 -0
  69. package/dist/gguf/utils/ggufQuantNames.js.map +1 -1
  70. package/dist/index.d.ts +4 -3
  71. package/dist/index.js +2 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/tsconfig.tsbuildinfo +1 -1
  74. package/dist/types.d.ts +144 -2
  75. package/dist/types.js.map +1 -1
  76. package/dist/utils/LruCache.d.ts +1 -1
  77. package/dist/utils/ReplHistory.js +1 -1
  78. package/dist/utils/ReplHistory.js.map +1 -1
  79. package/dist/utils/gbnfJson/types.d.ts +1 -1
  80. package/dist/utils/gbnfJson/types.js.map +1 -1
  81. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +2 -0
  82. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -1
  83. package/dist/utils/getBuildDefaults.d.ts +1 -1
  84. package/dist/utils/getChatWrapperSegmentDefinition.js +2 -0
  85. package/dist/utils/getChatWrapperSegmentDefinition.js.map +1 -1
  86. package/dist/utils/isLockfileActive.js +2 -2
  87. package/dist/utils/isLockfileActive.js.map +1 -1
  88. package/dist/utils/utilTypes.d.ts +10 -0
  89. package/dist/utils/waitForLockfileRelease.js +3 -3
  90. package/dist/utils/waitForLockfileRelease.js.map +1 -1
  91. package/dist/utils/withLockfile.js +1 -1
  92. package/dist/utils/withLockfile.js.map +1 -1
  93. package/llama/addon/addon.cpp +31 -0
  94. package/llama/binariesGithubRelease.json +1 -1
  95. package/llama/gitRelease.bundle +0 -0
  96. package/llama/llama.cpp.info.json +1 -1
  97. package/package.json +22 -20
  98. package/templates/packed/electron-typescript-react.json +1 -1
@@ -0,0 +1,78 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ import { ChatModelFunctions, ChatModelResponse, ChatWrapperGenerateContextStateOptions, ChatWrapperGeneratedContextState, ChatWrapperSettings } from "../types.js";
3
+ import { LlamaText } from "../utils/LlamaText.js";
4
+ export declare class HarmonyChatWrapper extends ChatWrapper {
5
+ readonly wrapperName: string;
6
+ readonly modelIdentity: string | null;
7
+ readonly cuttingKnowledgeDate?: Date | (() => Date) | null;
8
+ readonly todayDate: Date | (() => Date) | null;
9
+ readonly reasoningEffort: "high" | "medium" | "low" | null;
10
+ readonly requiredChannels: {
11
+ analysis: boolean;
12
+ commentary: boolean;
13
+ final: boolean;
14
+ };
15
+ readonly keepOnlyLastThought: boolean;
16
+ readonly settings: ChatWrapperSettings;
17
+ constructor(options?: {
18
+ /**
19
+ * The model identity to use in the internal system message.
20
+ *
21
+ * Set to `null` to disable.
22
+ *
23
+ * Defaults to `"You are ChatGPT, a large language model trained by OpenAI."`
24
+ */
25
+ modelIdentity?: string | null;
26
+ /**
27
+ * Set to `null` to disable
28
+ *
29
+ * Defaults to `new Date("2024-06-01T00:00:00Z")`
30
+ */
31
+ cuttingKnowledgeDate?: Date | (() => Date) | number | string | null;
32
+ /**
33
+ * Set to `null` to disable
34
+ *
35
+ * Defaults to the current date
36
+ */
37
+ todayDate?: Date | (() => Date) | number | string | null;
38
+ /**
39
+ * The amount of reasoning to instruct the model to use.
40
+ *
41
+ * Not enforced, it's up to the model to follow this instruction.
42
+ *
43
+ * Set to `null` to omit the instruction.
44
+ *
45
+ * Defaults to `"medium"`.
46
+ */
47
+ reasoningEffort?: "high" | "medium" | "low" | null;
48
+ requiredChannels?: {
49
+ /**
50
+ * Defaults to `true`
51
+ */
52
+ analysis?: boolean;
53
+ /**
54
+ * Defaults to `true`
55
+ */
56
+ commentary?: boolean;
57
+ /**
58
+ * Defaults to `true`
59
+ */
60
+ final?: boolean;
61
+ };
62
+ /**
63
+ * Whether to keep only the chain of thought from the last model response.
64
+ *
65
+ * Setting this to `false` will keep all the chain of thoughts from the model responses in the context state.
66
+ *
67
+ * Defaults to `true`.
68
+ */
69
+ keepOnlyLastThought?: boolean;
70
+ });
71
+ generateContextState({ chatHistory, availableFunctions, documentFunctionParams }: ChatWrapperGenerateContextStateOptions): ChatWrapperGeneratedContextState;
72
+ generateFunctionCall(name: string, params: any): LlamaText;
73
+ generateFunctionCallResult(functionName: string, functionParams: any, result: any): LlamaText;
74
+ generateModelResponseText(modelResponse: ChatModelResponse["response"], useRawValues?: boolean): LlamaText;
75
+ generateAvailableFunctionsSystemText(availableFunctions: ChatModelFunctions, { documentParams }: {
76
+ documentParams?: boolean;
77
+ }): import("../utils/LlamaText.js")._LlamaText;
78
+ }
@@ -0,0 +1,527 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ import { SpecialToken, LlamaText, SpecialTokensText } from "../utils/LlamaText.js";
3
+ import { ChatModelFunctionsDocumentationGenerator } from "./utils/ChatModelFunctionsDocumentationGenerator.js";
4
+ import { jsonDumps } from "./utils/jsonDumps.js";
5
+ const defaultModelIdentity = "You are ChatGPT, a large language model trained by OpenAI.";
6
+ const defaultCuttingKnowledgeDate = new Date("2024-06-01T00:00:00Z");
7
+ const defaultReasoningEffort = "medium";
8
+ // source: https://github.com/openai/harmony, https://cookbook.openai.com/articles/openai-harmony,
9
+ // https://github.com/openai/openai-cookbook/blob/main/articles/openai-harmony.md
10
+ export class HarmonyChatWrapper extends ChatWrapper {
11
+ wrapperName = "Harmony";
12
+ modelIdentity;
13
+ cuttingKnowledgeDate;
14
+ todayDate;
15
+ reasoningEffort;
16
+ requiredChannels;
17
+ keepOnlyLastThought;
18
+ /** @internal */ _jinjaFlags;
19
+ settings = {
20
+ supportsSystemMessages: true,
21
+ functions: {
22
+ call: {
23
+ optionalPrefixSpace: true,
24
+ prefix: LlamaText(new SpecialTokensText(" to="), "functions."),
25
+ paramsPrefix: LlamaText(new SpecialTokensText("<|constrain|>json<|message|>")),
26
+ suffix: LlamaText(new SpecialTokensText("<|call|>")),
27
+ emptyCallParamsPlaceholder: {}
28
+ },
29
+ result: {
30
+ prefix: LlamaText(new SpecialTokensText("<|start|>"), "functions.{{functionName}}", new SpecialTokensText(" to=assistant<|channel|>commentary<|message|>")),
31
+ suffix: LlamaText(new SpecialTokensText("<|end|>"))
32
+ }
33
+ },
34
+ segments: {
35
+ thought: {
36
+ prefix: LlamaText(new SpecialTokensText("<|channel|>analysis<|message|>")),
37
+ suffix: LlamaText(new SpecialTokensText("<|end|>"))
38
+ },
39
+ comment: {
40
+ prefix: LlamaText(new SpecialTokensText("<|channel|>commentary<|message|>")),
41
+ suffix: LlamaText(new SpecialTokensText("<|end|>"))
42
+ }
43
+ }
44
+ };
45
+ constructor(options = {}) {
46
+ super();
47
+ const { modelIdentity = defaultModelIdentity, cuttingKnowledgeDate = defaultCuttingKnowledgeDate, todayDate = () => new Date(), reasoningEffort = defaultReasoningEffort, requiredChannels = {}, keepOnlyLastThought = true, _jinjaFlags = {} } = options;
48
+ this.modelIdentity = modelIdentity;
49
+ this.cuttingKnowledgeDate = cuttingKnowledgeDate == null
50
+ ? null
51
+ : cuttingKnowledgeDate instanceof Function
52
+ ? cuttingKnowledgeDate
53
+ : new Date(cuttingKnowledgeDate);
54
+ this.todayDate = todayDate == null
55
+ ? null
56
+ : todayDate instanceof Function
57
+ ? todayDate
58
+ : new Date(todayDate);
59
+ this.reasoningEffort = reasoningEffort;
60
+ this.requiredChannels = {
61
+ analysis: requiredChannels.analysis ?? true,
62
+ commentary: requiredChannels.commentary ?? true,
63
+ final: requiredChannels.final ?? true
64
+ };
65
+ this.keepOnlyLastThought = keepOnlyLastThought;
66
+ this._jinjaFlags = {
67
+ emptyLastModelResponseIsFinalMessage: false,
68
+ useSpecialTokensForFullSystemMessage: false,
69
+ disableNonFinalFinalMessages: false,
70
+ useNonFinalFinalMessage: false,
71
+ noFinalMessages: false,
72
+ ..._jinjaFlags
73
+ };
74
+ }
75
+ generateContextState({ chatHistory, availableFunctions, documentFunctionParams }) {
76
+ const hasFunctions = Object.keys(availableFunctions ?? {}).length > 0;
77
+ const modifiedChatHistory = chatHistory.slice();
78
+ let systemMessage = LlamaText();
79
+ if (modifiedChatHistory[0]?.type === "system") {
80
+ systemMessage = LlamaText.fromJSON(modifiedChatHistory[0].text);
81
+ modifiedChatHistory.shift();
82
+ }
83
+ const contextContent = [
84
+ this._getPreamble(hasFunctions)
85
+ ];
86
+ if (systemMessage.values.length > 0 || hasFunctions)
87
+ contextContent.push(LlamaText([
88
+ new SpecialTokensText("<|start|>developer<|message|>"),
89
+ this._getFirstDeveloperMessage(systemMessage, availableFunctions, { documentParams: documentFunctionParams }),
90
+ new SpecialTokensText("<|end|>")
91
+ ]));
92
+ let needsTriggers = true;
93
+ for (let i = 0; i < modifiedChatHistory.length; i++) {
94
+ const isLastItem = i === modifiedChatHistory.length - 1;
95
+ const item = modifiedChatHistory[i];
96
+ if (item == null)
97
+ continue;
98
+ if (item.type === "system") {
99
+ contextContent.push(LlamaText([
100
+ new SpecialTokensText("<|start|>developer<|message|>"),
101
+ LlamaText.fromJSON(item.text),
102
+ isLastItem
103
+ ? LlamaText([])
104
+ : new SpecialTokensText("<|end|>")
105
+ ]));
106
+ if (isLastItem)
107
+ needsTriggers = false;
108
+ }
109
+ else if (item.type === "user") {
110
+ contextContent.push(LlamaText([
111
+ new SpecialTokensText("<|start|>user<|message|>"),
112
+ item.text,
113
+ isLastItem
114
+ ? LlamaText([])
115
+ : new SpecialTokensText("<|end|>")
116
+ ]));
117
+ if (isLastItem)
118
+ needsTriggers = false;
119
+ }
120
+ else if (item.type === "model") {
121
+ const { res, needsTriggers: modelNeedsTriggers } = this._getModelResponse(item.response, true, isLastItem, this.keepOnlyLastThought);
122
+ if (isLastItem)
123
+ needsTriggers = modelNeedsTriggers;
124
+ contextContent.push(res);
125
+ }
126
+ else
127
+ void item;
128
+ }
129
+ const contextText = LlamaText(contextContent);
130
+ if (!needsTriggers)
131
+ return {
132
+ contextText,
133
+ stopGenerationTriggers: [
134
+ LlamaText(new SpecialToken("EOS")),
135
+ LlamaText(new SpecialTokensText("<|return|>")),
136
+ LlamaText("<|return|>")
137
+ ],
138
+ detectFunctionCalls: false,
139
+ rerender: {
140
+ triggers: [
141
+ LlamaText(new SpecialTokensText("<|end|>"))
142
+ ],
143
+ action: "closeResponseItem"
144
+ }
145
+ };
146
+ return {
147
+ contextText,
148
+ stopGenerationTriggers: [
149
+ LlamaText(new SpecialToken("EOS")),
150
+ LlamaText(new SpecialTokensText("<|return|>")),
151
+ LlamaText("<|return|>")
152
+ ],
153
+ prefixTriggers: [
154
+ {
155
+ type: "segment",
156
+ segmentType: "thought",
157
+ triggers: [
158
+ LlamaText(new SpecialTokensText("<|channel|>analysis<|message|>"))
159
+ ]
160
+ }, {
161
+ type: "segment",
162
+ segmentType: "comment",
163
+ triggers: [
164
+ // the trigger here includes the `<|message|>` part
165
+ // to not conflict with the `<|channel|>commentary to=` prefix used for function calls
166
+ LlamaText(new SpecialTokensText("<|channel|>commentary<|message|>"))
167
+ ]
168
+ }, {
169
+ type: "response",
170
+ triggers: [
171
+ LlamaText(new SpecialTokensText("<|channel|>final"))
172
+ ],
173
+ inject: LlamaText(new SpecialTokensText("<|message|>"))
174
+ },
175
+ ...(!hasFunctions ? [] : [{
176
+ type: "functionCall",
177
+ triggers: [
178
+ LlamaText(new SpecialTokensText("<|channel|>commentary to="))
179
+ ],
180
+ replaceTrigger: true,
181
+ inject: LlamaText(new SpecialTokensText("<|channel|>commentary"))
182
+ }, {
183
+ type: "functionCall",
184
+ triggers: [
185
+ LlamaText(new SpecialTokensText("<|channel|>analysis to="))
186
+ ],
187
+ replaceTrigger: true,
188
+ inject: LlamaText(new SpecialTokensText("<|channel|>analysis"))
189
+ }])
190
+ ],
191
+ noPrefixTrigger: {
192
+ type: "response",
193
+ inject: LlamaText(new SpecialTokensText("<|channel|>final<|message|>"))
194
+ },
195
+ detectFunctionCalls: false,
196
+ rerender: {
197
+ triggers: [
198
+ LlamaText(new SpecialTokensText("<|end|>"))
199
+ ],
200
+ action: "closeResponseItem"
201
+ }
202
+ };
203
+ }
204
+ generateFunctionCall(name, params) {
205
+ const emptyCallParamsPlaceholder = this.settings.functions.call.emptyCallParamsPlaceholder;
206
+ return LlamaText([
207
+ new SpecialTokensText("<|start|>assistant<|channel|>commentary to="),
208
+ "functions.", name,
209
+ this.settings.functions.call.paramsPrefix,
210
+ params === undefined
211
+ ? (emptyCallParamsPlaceholder === undefined || emptyCallParamsPlaceholder === "")
212
+ ? ""
213
+ : jsonDumps(emptyCallParamsPlaceholder)
214
+ : jsonDumps(params),
215
+ this.settings.functions.call.suffix
216
+ ]);
217
+ }
218
+ generateFunctionCallResult(functionName, functionParams, result) {
219
+ return LlamaText([
220
+ new SpecialTokensText("<|start|>"),
221
+ "functions.", functionName,
222
+ new SpecialTokensText(" to=assistant<|channel|>commentary<|message|>"),
223
+ (result === undefined
224
+ ? ""
225
+ : jsonDumps(result)),
226
+ new SpecialTokensText("<|end|>")
227
+ ]);
228
+ }
229
+ generateModelResponseText(modelResponse, useRawValues = true) {
230
+ const { res } = this._getModelResponse(modelResponse, useRawValues, false, false);
231
+ const [start, ...rest] = res.values;
232
+ let newStart = start;
233
+ let newEnd = rest.pop();
234
+ if (newStart instanceof SpecialTokensText && newStart.value.startsWith("<|start|>assistant"))
235
+ newStart = new SpecialTokensText(newStart.value.slice("<|start|>assistant".length));
236
+ if (newEnd instanceof SpecialTokensText && newEnd.value.startsWith("<|end|>"))
237
+ newEnd = new SpecialTokensText(newEnd.value.slice("<|end|>".length));
238
+ else if (newEnd instanceof SpecialTokensText && newEnd.value.startsWith("<|return|>"))
239
+ newEnd = new SpecialTokensText(newEnd.value.slice("<|return|>".length));
240
+ return LlamaText([
241
+ newStart ?? [],
242
+ ...rest,
243
+ newEnd ?? []
244
+ ]);
245
+ }
246
+ generateAvailableFunctionsSystemText(availableFunctions, { documentParams = true }) {
247
+ const functionsDocumentationGenerator = new ChatModelFunctionsDocumentationGenerator(availableFunctions);
248
+ if (!functionsDocumentationGenerator.hasAnyFunctions)
249
+ return LlamaText([]);
250
+ return LlamaText.joinValues("\n", [
251
+ "# Tools",
252
+ "",
253
+ "## functions",
254
+ "",
255
+ "namespace functions {",
256
+ "",
257
+ functionsDocumentationGenerator
258
+ .getTypeScriptFunctionTypes({ documentParams })
259
+ .split("\n")
260
+ .map((line) => line.trim())
261
+ .join("\n"),
262
+ "",
263
+ "} // namespace functions"
264
+ ]);
265
+ }
266
+ /** @internal */
267
+ _getFirstDeveloperMessage(systemPrompt, availableFunctions, { documentParams = true } = {}) {
268
+ const functionsDocumentationGenerator = new ChatModelFunctionsDocumentationGenerator(availableFunctions);
269
+ if (!functionsDocumentationGenerator.hasAnyFunctions && systemPrompt.values.length === 0)
270
+ return LlamaText([]);
271
+ if (!functionsDocumentationGenerator.hasAnyFunctions)
272
+ return LlamaText([
273
+ this._jinjaFlags.useSpecialTokensForFullSystemMessage
274
+ ? new SpecialTokensText("# Instructions\n\n")
275
+ : "# Instruction\n\n",
276
+ systemPrompt
277
+ ]);
278
+ return LlamaText([
279
+ this._jinjaFlags.useSpecialTokensForFullSystemMessage
280
+ ? new SpecialTokensText("# Instructions\n\n")
281
+ : "# Instructions\n\n",
282
+ systemPrompt.values.length > 0
283
+ ? [systemPrompt, "\n\n"]
284
+ : [],
285
+ this.generateAvailableFunctionsSystemText(availableFunctions ?? {}, { documentParams })
286
+ ]);
287
+ }
288
+ /** @internal */
289
+ _getModelResponse(modelResponse, useRawValues, isLastItem, keepOnlyLastThought) {
290
+ const res = [];
291
+ let canEnableTriggers = true;
292
+ for (let index = 0; index < modelResponse.length; index++) {
293
+ const isLastResponse = index === modelResponse.length - 1;
294
+ const response = modelResponse[index];
295
+ if (response == null)
296
+ continue;
297
+ else if (response === "" && (!isLastResponse || !isLastItem))
298
+ continue;
299
+ if (typeof response === "string") {
300
+ if (isLastItem && isLastResponse) {
301
+ if (response === "" && !this._jinjaFlags.emptyLastModelResponseIsFinalMessage)
302
+ canEnableTriggers = true;
303
+ else if (!this._jinjaFlags.useNonFinalFinalMessage) {
304
+ res.push(LlamaText([
305
+ new SpecialTokensText("<|start|>assistant<|channel|>final<|message|>"),
306
+ response
307
+ ]));
308
+ canEnableTriggers = false;
309
+ }
310
+ else {
311
+ res.push(LlamaText([
312
+ new SpecialTokensText("<|start|>assistant<|message|>"),
313
+ response
314
+ ]));
315
+ canEnableTriggers = false;
316
+ }
317
+ }
318
+ else if (!this._jinjaFlags.noFinalMessages && (isLastResponse || !this._jinjaFlags.disableNonFinalFinalMessages))
319
+ res.push(LlamaText([
320
+ new SpecialTokensText("<|start|>assistant<|channel|>final<|message|>"),
321
+ response,
322
+ new SpecialTokensText("<|end|>")
323
+ ]));
324
+ else
325
+ res.push(LlamaText([
326
+ new SpecialTokensText("<|start|>assistant<|message|>"),
327
+ response,
328
+ new SpecialTokensText("<|end|>")
329
+ ]));
330
+ }
331
+ else if (response.type === "segment") {
332
+ if (response.ended && response.raw != null && useRawValues)
333
+ res.push(LlamaText([
334
+ new SpecialTokensText("<|start|>assistant"),
335
+ LlamaText.fromJSON(response.raw)
336
+ ]));
337
+ else if (response.segmentType === "thought") {
338
+ if (keepOnlyLastThought && !isLastItem)
339
+ continue;
340
+ res.push(LlamaText([
341
+ new SpecialTokensText("<|start|>assistant<|channel|>analysis<|message|>"),
342
+ response.text,
343
+ (isLastItem && !response.ended)
344
+ ? LlamaText([])
345
+ : new SpecialTokensText("<|end|>")
346
+ ]));
347
+ if (isLastItem && isLastResponse && !response.ended)
348
+ canEnableTriggers = false;
349
+ }
350
+ else if (response.segmentType === "comment") {
351
+ res.push(LlamaText([
352
+ new SpecialTokensText("<|start|>assistant<|channel|>commentary<|message|>"),
353
+ response.text,
354
+ (isLastItem && !response.ended)
355
+ ? LlamaText([])
356
+ : new SpecialTokensText("<|end|>")
357
+ ]));
358
+ if (isLastItem && isLastResponse && !response.ended)
359
+ canEnableTriggers = false;
360
+ }
361
+ else
362
+ void response.segmentType;
363
+ }
364
+ else if (response.type === "functionCall") {
365
+ res.push(LlamaText([
366
+ (response.rawCall != null && useRawValues)
367
+ ? LlamaText.fromJSON(response.rawCall)
368
+ : this.generateFunctionCall(response.name, response.params),
369
+ this.generateFunctionCallResult(response.name, response.params, response.result)
370
+ ]));
371
+ }
372
+ else
373
+ void response;
374
+ }
375
+ const needsTriggers = canEnableTriggers && isLastItem;
376
+ if (needsTriggers)
377
+ res.push(LlamaText([
378
+ new SpecialTokensText("<|start|>assistant")
379
+ ]));
380
+ return {
381
+ res: LlamaText(res),
382
+ needsTriggers
383
+ };
384
+ }
385
+ /** @internal */
386
+ _getPreamble(hasFunctions) {
387
+ const formatCutoff = (date, timezone) => {
388
+ const month = date.toLocaleDateString("en-US", { month: "numeric", timeZone: timezone }).padStart(2, "0");
389
+ const year = date.toLocaleDateString("en-US", { year: "numeric", timeZone: timezone }).padStart(4, "0");
390
+ return `${year}-${month}`;
391
+ };
392
+ const lines = [];
393
+ if (this.modelIdentity != null && this.modelIdentity !== "")
394
+ lines.push(this.modelIdentity);
395
+ if (this.cuttingKnowledgeDate != null) {
396
+ const date = this.cuttingKnowledgeDate instanceof Function
397
+ ? this.cuttingKnowledgeDate()
398
+ : this.cuttingKnowledgeDate;
399
+ lines.push(`Knowledge cutoff: ${formatCutoff(date, "UTC")}`);
400
+ if (this._jinjaFlags.formatting === 1)
401
+ lines.push([lines.shift(), lines.shift()].filter(Boolean).join(""));
402
+ }
403
+ if (this.todayDate != null) {
404
+ const date = this.todayDate instanceof Function
405
+ ? this.todayDate()
406
+ : this.todayDate;
407
+ lines.push(`Current date: ${formatDate(date, undefined)}`);
408
+ }
409
+ if (this.reasoningEffort != null) {
410
+ if (lines.length > 0)
411
+ lines.push("");
412
+ if (this._jinjaFlags.formatting === 1)
413
+ lines.push(`reasoning: ${this.reasoningEffort}`);
414
+ else
415
+ lines.push(`Reasoning: ${this.reasoningEffort}`);
416
+ }
417
+ if (this.requiredChannels.analysis || this.requiredChannels.commentary || this.requiredChannels.final) {
418
+ const channels = [
419
+ ...(this.requiredChannels.analysis ? ["analysis"] : []),
420
+ ...(this.requiredChannels.commentary ? ["commentary"] : []),
421
+ ...(this.requiredChannels.final ? ["final"] : [])
422
+ ];
423
+ if (lines.length > 0)
424
+ lines.push("");
425
+ lines.push(`# Valid channels: ${channels.join(", ")}. Channel must be included for every message.`);
426
+ if ((this.requiredChannels.commentary && hasFunctions) || this._jinjaFlags.formatting === 1)
427
+ lines.push("Calls to these tools must go to the commentary channel: 'functions'.");
428
+ }
429
+ return LlamaText([
430
+ new SpecialTokensText("<|start|>system<|message|>"),
431
+ this._jinjaFlags.useSpecialTokensForFullSystemMessage
432
+ ? new SpecialTokensText(lines.join("\n"))
433
+ : lines.join("\n"),
434
+ new SpecialTokensText("<|end|>")
435
+ ]);
436
+ }
437
+ /** @internal */
438
+ static _getOptionConfigurationsToTestIfCanSupersedeJinjaTemplate() {
439
+ const jinjaParameters = {
440
+ "model_identity": defaultModelIdentity,
441
+ "reasoning_effort": defaultReasoningEffort
442
+ };
443
+ return [
444
+ [{}, {}],
445
+ [{ _jinjaFlags: { emptyLastModelResponseIsFinalMessage: true } }, {}],
446
+ [{}, {}, { additionalRenderParameters: jinjaParameters }],
447
+ [{ _jinjaFlags: { emptyLastModelResponseIsFinalMessage: true } }, {}, { additionalRenderParameters: jinjaParameters }],
448
+ [{ _jinjaFlags: { useSpecialTokensForFullSystemMessage: true } }, {}, { additionalRenderParameters: jinjaParameters }],
449
+ [
450
+ { _jinjaFlags: { emptyLastModelResponseIsFinalMessage: true, useSpecialTokensForFullSystemMessage: true } },
451
+ {},
452
+ { additionalRenderParameters: jinjaParameters }
453
+ ],
454
+ [
455
+ {
456
+ _jinjaFlags: {
457
+ emptyLastModelResponseIsFinalMessage: true,
458
+ useSpecialTokensForFullSystemMessage: true,
459
+ disableNonFinalFinalMessages: true
460
+ }
461
+ },
462
+ {},
463
+ { additionalRenderParameters: jinjaParameters }
464
+ ],
465
+ [
466
+ {
467
+ _jinjaFlags: {
468
+ emptyLastModelResponseIsFinalMessage: true,
469
+ useSpecialTokensForFullSystemMessage: true,
470
+ disableNonFinalFinalMessages: true,
471
+ useNonFinalFinalMessage: true
472
+ }
473
+ },
474
+ {},
475
+ { additionalRenderParameters: jinjaParameters }
476
+ ],
477
+ [
478
+ {
479
+ _jinjaFlags: {
480
+ emptyLastModelResponseIsFinalMessage: true,
481
+ useSpecialTokensForFullSystemMessage: true,
482
+ useNonFinalFinalMessage: true
483
+ }
484
+ },
485
+ {},
486
+ { additionalRenderParameters: jinjaParameters }
487
+ ],
488
+ [
489
+ {
490
+ _jinjaFlags: {
491
+ emptyLastModelResponseIsFinalMessage: true,
492
+ useSpecialTokensForFullSystemMessage: true,
493
+ useNonFinalFinalMessage: true,
494
+ noFinalMessages: true
495
+ }
496
+ },
497
+ {},
498
+ { additionalRenderParameters: jinjaParameters }
499
+ ],
500
+ [
501
+ {
502
+ _jinjaFlags: {
503
+ emptyLastModelResponseIsFinalMessage: true,
504
+ useSpecialTokensForFullSystemMessage: true,
505
+ useNonFinalFinalMessage: true,
506
+ noFinalMessages: true,
507
+ formatting: 1
508
+ }
509
+ },
510
+ {},
511
+ { additionalRenderParameters: jinjaParameters }
512
+ ],
513
+ [{ todayDate: null }, {}, {}],
514
+ [{ cuttingKnowledgeDate: null }, {}, {}],
515
+ [{ reasoningEffort: null }, {}, {}],
516
+ [{ todayDate: null, cuttingKnowledgeDate: null }, {}, {}],
517
+ [{ todayDate: null, cuttingKnowledgeDate: null, reasoningEffort: null }, {}, {}]
518
+ ];
519
+ }
520
+ }
521
+ function formatDate(date, timezone) {
522
+ const day = date.toLocaleDateString("en-US", { day: "numeric", timeZone: timezone }).padStart(2, "0");
523
+ const month = date.toLocaleDateString("en-US", { month: "numeric", timeZone: timezone }).padStart(2, "0");
524
+ const year = date.toLocaleDateString("en-US", { year: "numeric", timeZone: timezone }).padStart(4, "0");
525
+ return `${year}-${month}-${day}`;
526
+ }
527
+ //# sourceMappingURL=HarmonyChatWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HarmonyChatWrapper.js","sourceRoot":"","sources":["../../src/chatWrappers/HarmonyChatWrapper.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,13 @@ import { MistralChatWrapper } from "../MistralChatWrapper.js";
15
15
  import { Tokenizer } from "../../types.js";
16
16
  import { LlamaModel } from "../../evaluator/LlamaModel/LlamaModel.js";
17
17
  import { QwenChatWrapper } from "../QwenChatWrapper.js";
18
+ import { HarmonyChatWrapper } from "../HarmonyChatWrapper.js";
18
19
  import type { GgufFileInfo } from "../../gguf/types/GgufFileInfoTypes.js";
19
- export declare const specializedChatWrapperTypeNames: readonly ["general", "deepSeek", "qwen", "llama3.2-lightweight", "llama3.1", "llama3", "llama2Chat", "mistral", "alpacaChat", "functionary", "chatML", "falconChat", "gemma"];
20
+ export declare const specializedChatWrapperTypeNames: readonly ["general", "deepSeek", "qwen", "llama3.2-lightweight", "llama3.1", "llama3", "llama2Chat", "mistral", "alpacaChat", "functionary", "chatML", "falconChat", "gemma", "harmony"];
20
21
  export type SpecializedChatWrapperTypeName = (typeof specializedChatWrapperTypeNames)[number];
21
22
  export declare const templateChatWrapperTypeNames: readonly ["template", "jinjaTemplate"];
22
23
  export type TemplateChatWrapperTypeName = (typeof templateChatWrapperTypeNames)[number];
23
- export declare const resolvableChatWrapperTypeNames: readonly ["auto", "general", "deepSeek", "qwen", "llama3.2-lightweight", "llama3.1", "llama3", "llama2Chat", "mistral", "alpacaChat", "functionary", "chatML", "falconChat", "gemma", "template", "jinjaTemplate"];
24
+ export declare const resolvableChatWrapperTypeNames: readonly ["auto", "general", "deepSeek", "qwen", "llama3.2-lightweight", "llama3.1", "llama3", "llama2Chat", "mistral", "alpacaChat", "functionary", "chatML", "falconChat", "gemma", "harmony", "template", "jinjaTemplate"];
24
25
  export type ResolvableChatWrapperTypeName = (typeof resolvableChatWrapperTypeNames)[number];
25
26
  export declare const chatWrappers: Readonly<{
26
27
  readonly general: typeof GeneralChatWrapper;
@@ -36,6 +37,7 @@ export declare const chatWrappers: Readonly<{
36
37
  readonly chatML: typeof ChatMLChatWrapper;
37
38
  readonly falconChat: typeof FalconChatWrapper;
38
39
  readonly gemma: typeof GemmaChatWrapper;
40
+ readonly harmony: typeof HarmonyChatWrapper;
39
41
  readonly template: typeof TemplateChatWrapper;
40
42
  readonly jinjaTemplate: typeof JinjaTemplateChatWrapper;
41
43
  }>;