smoltalk 0.0.13 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classes/ToolCall.d.ts +1 -0
- package/dist/classes/ToolCall.js +3 -0
- package/dist/classes/message/AssistantMessage.d.ts +1 -0
- package/dist/classes/message/AssistantMessage.js +12 -0
- package/dist/classes/message/DeveloperMessage.d.ts +1 -0
- package/dist/classes/message/DeveloperMessage.js +6 -0
- package/dist/classes/message/SystemMessage.d.ts +1 -0
- package/dist/classes/message/SystemMessage.js +6 -0
- package/dist/classes/message/ToolMessage.d.ts +1 -0
- package/dist/classes/message/ToolMessage.js +7 -0
- package/dist/classes/message/UserMessage.d.ts +1 -0
- package/dist/classes/message/UserMessage.js +6 -0
- package/dist/classes/message/index.d.ts +1 -0
- package/dist/classes/message/index.js +16 -0
- package/dist/clients/baseClient.js +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
package/dist/classes/ToolCall.js
CHANGED
|
@@ -34,6 +34,7 @@ export declare class AssistantMessage extends BaseMessage implements MessageClas
|
|
|
34
34
|
refusal: string | null | undefined;
|
|
35
35
|
toolCalls: Record<string, any>[] | undefined;
|
|
36
36
|
};
|
|
37
|
+
static fromJSON(json: any): AssistantMessage;
|
|
37
38
|
toOpenAIMessage(): ChatCompletionMessageParam;
|
|
38
39
|
toGoogleMessage(): Content;
|
|
39
40
|
toOllamaMessage(): Message;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseMessage } from "./BaseMessage.js";
|
|
2
|
+
import { ToolCall } from "../ToolCall.js";
|
|
2
3
|
export class AssistantMessage extends BaseMessage {
|
|
3
4
|
_role = "assistant";
|
|
4
5
|
_content;
|
|
@@ -52,6 +53,17 @@ export class AssistantMessage extends BaseMessage {
|
|
|
52
53
|
toolCalls: this.toolCalls?.map((tc) => tc.toJSON()),
|
|
53
54
|
};
|
|
54
55
|
}
|
|
56
|
+
static fromJSON(json) {
|
|
57
|
+
return new AssistantMessage(json.content, {
|
|
58
|
+
name: json.name,
|
|
59
|
+
audio: json.audio,
|
|
60
|
+
refusal: json.refusal,
|
|
61
|
+
toolCalls: json.toolCalls
|
|
62
|
+
? json.toolCalls.map((tcJson) => ToolCall.fromJSON(tcJson))
|
|
63
|
+
: undefined,
|
|
64
|
+
rawData: json.rawData,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
55
67
|
toOpenAIMessage() {
|
|
56
68
|
return {
|
|
57
69
|
role: this.role,
|
|
@@ -21,6 +21,7 @@ export declare class DeveloperMessage extends BaseMessage implements MessageClas
|
|
|
21
21
|
content: string | TextPart[];
|
|
22
22
|
name: string | undefined;
|
|
23
23
|
};
|
|
24
|
+
static fromJSON(json: any): DeveloperMessage;
|
|
24
25
|
toOpenAIMessage(): ChatCompletionMessageParam;
|
|
25
26
|
toGoogleMessage(): Content;
|
|
26
27
|
toOllamaMessage(): Message;
|
|
@@ -31,6 +31,12 @@ export class DeveloperMessage extends BaseMessage {
|
|
|
31
31
|
name: this.name,
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
+
static fromJSON(json) {
|
|
35
|
+
return new DeveloperMessage(json.content, {
|
|
36
|
+
name: json.name,
|
|
37
|
+
rawData: json.rawData,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
34
40
|
toOpenAIMessage() {
|
|
35
41
|
return { role: this.role, content: this.content, name: this.name };
|
|
36
42
|
}
|
|
@@ -21,6 +21,7 @@ export declare class SystemMessage extends BaseMessage implements MessageClass {
|
|
|
21
21
|
content: string | TextPart[];
|
|
22
22
|
name: string | undefined;
|
|
23
23
|
};
|
|
24
|
+
static fromJSON(json: any): SystemMessage;
|
|
24
25
|
toOpenAIMessage(): ChatCompletionMessageParam;
|
|
25
26
|
toGoogleMessage(): Content;
|
|
26
27
|
toOllamaMessage(): Message;
|
|
@@ -31,6 +31,12 @@ export class SystemMessage extends BaseMessage {
|
|
|
31
31
|
name: this.name,
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
+
static fromJSON(json) {
|
|
35
|
+
return new SystemMessage(json.content, {
|
|
36
|
+
name: json.name,
|
|
37
|
+
rawData: json.rawData,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
34
40
|
toOpenAIMessage() {
|
|
35
41
|
return { role: this.role, content: this.content, name: this.name };
|
|
36
42
|
}
|
|
@@ -25,6 +25,7 @@ export declare class ToolMessage extends BaseMessage implements MessageClass {
|
|
|
25
25
|
name: string;
|
|
26
26
|
tool_call_id: string;
|
|
27
27
|
};
|
|
28
|
+
static fromJSON(json: any): ToolMessage;
|
|
28
29
|
toOpenAIMessage(): ChatCompletionMessageParam;
|
|
29
30
|
toGoogleMessage(): Content;
|
|
30
31
|
toOllamaMessage(): Message;
|
|
@@ -37,6 +37,13 @@ export class ToolMessage extends BaseMessage {
|
|
|
37
37
|
tool_call_id: this.tool_call_id,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
+
static fromJSON(json) {
|
|
41
|
+
return new ToolMessage(json.content, {
|
|
42
|
+
tool_call_id: json.tool_call_id,
|
|
43
|
+
name: json.name,
|
|
44
|
+
rawData: json.rawData,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
40
47
|
toOpenAIMessage() {
|
|
41
48
|
return {
|
|
42
49
|
role: this.role,
|
|
@@ -20,6 +20,7 @@ export declare class UserMessage extends BaseMessage implements MessageClass {
|
|
|
20
20
|
content: string;
|
|
21
21
|
name: string | undefined;
|
|
22
22
|
};
|
|
23
|
+
static fromJSON(json: any): UserMessage;
|
|
23
24
|
toOpenAIMessage(): ChatCompletionMessageParam;
|
|
24
25
|
toGoogleMessage(): Content;
|
|
25
26
|
toOllamaMessage(): Message;
|
|
@@ -29,6 +29,12 @@ export class UserMessage extends BaseMessage {
|
|
|
29
29
|
name: this.name,
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
+
static fromJSON(json) {
|
|
33
|
+
return new UserMessage(json.content, {
|
|
34
|
+
name: json.name,
|
|
35
|
+
rawData: json.rawData,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
32
38
|
toOpenAIMessage() {
|
|
33
39
|
return {
|
|
34
40
|
role: this.role,
|
|
@@ -10,6 +10,7 @@ export * from "./DeveloperMessage.js";
|
|
|
10
10
|
export * from "./SystemMessage.js";
|
|
11
11
|
export * from "./ToolMessage.js";
|
|
12
12
|
export * from "./UserMessage.js";
|
|
13
|
+
export declare function messageFromJSON(json: any): UserMessage | AssistantMessage | DeveloperMessage | SystemMessage | ToolMessage;
|
|
13
14
|
export declare function userMessage(content: string, options?: {
|
|
14
15
|
name?: string;
|
|
15
16
|
rawData?: any;
|
|
@@ -9,6 +9,22 @@ export * from "./DeveloperMessage.js";
|
|
|
9
9
|
export * from "./SystemMessage.js";
|
|
10
10
|
export * from "./ToolMessage.js";
|
|
11
11
|
export * from "./UserMessage.js";
|
|
12
|
+
export function messageFromJSON(json) {
|
|
13
|
+
switch (json.role) {
|
|
14
|
+
case "user":
|
|
15
|
+
return UserMessage.fromJSON(json);
|
|
16
|
+
case "assistant":
|
|
17
|
+
return AssistantMessage.fromJSON(json);
|
|
18
|
+
case "developer":
|
|
19
|
+
return DeveloperMessage.fromJSON(json);
|
|
20
|
+
case "system":
|
|
21
|
+
return SystemMessage.fromJSON(json);
|
|
22
|
+
case "tool":
|
|
23
|
+
return ToolMessage.fromJSON(json);
|
|
24
|
+
default:
|
|
25
|
+
throw new Error(`Unknown message role: ${json.role}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
12
28
|
export function userMessage(content, options = {}) {
|
|
13
29
|
return new UserMessage(content, options);
|
|
14
30
|
}
|
|
@@ -25,7 +25,7 @@ export class BaseClient {
|
|
|
25
25
|
}
|
|
26
26
|
for (const [toolName, count] of Object.entries(toolCallCounts)) {
|
|
27
27
|
if (count >= this.config.toolLoopDetection.maxConsecutive &&
|
|
28
|
-
!this.config.toolLoopDetection.excludeTools.includes(toolName)) {
|
|
28
|
+
!(this.config.toolLoopDetection.excludeTools ?? []).includes(toolName)) {
|
|
29
29
|
const intervention = this.config.toolLoopDetection.intervention || "remove-tool";
|
|
30
30
|
const logger = getLogger();
|
|
31
31
|
logger.warn(`Tool loop detected for tool "${toolName}" called ${count} times. Intervention: ${intervention}`);
|
package/dist/types.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export type ToolLoopDetection = {
|
|
|
39
39
|
enabled: boolean;
|
|
40
40
|
maxConsecutive: number;
|
|
41
41
|
intervention?: "remove-tool" | "remove-all-tools" | "throw-error" | "halt-execution";
|
|
42
|
-
excludeTools
|
|
42
|
+
excludeTools?: string[];
|
|
43
43
|
};
|
|
44
44
|
export type BaseClientConfig = SmolConfig & {};
|
|
45
45
|
export type PromptResult = {
|