orbitx 0.0.3 → 0.0.4
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/{src/core/ai-provider.ts → dist/core/ai-provider.d.ts} +19 -25
- package/dist/core/ai-provider.d.ts.map +1 -0
- package/dist/core/ai-provider.js +4 -0
- package/dist/core/ai-provider.js.map +1 -0
- package/dist/core/base-agent.d.ts +53 -0
- package/dist/core/base-agent.d.ts.map +1 -0
- package/{src/core/base-agent.ts → dist/core/base-agent.js} +197 -269
- package/dist/core/base-agent.js.map +1 -0
- package/dist/core/deepseek-provider.d.ts +9 -0
- package/dist/core/deepseek-provider.d.ts.map +1 -0
- package/{src/core/deepseek-provider.ts → dist/core/deepseek-provider.js} +60 -71
- package/dist/core/deepseek-provider.js.map +1 -0
- package/dist/core/mcp-client.d.ts +21 -0
- package/dist/core/mcp-client.d.ts.map +1 -0
- package/{src/core/mcp-client.ts → dist/core/mcp-client.js} +90 -113
- package/dist/core/mcp-client.js.map +1 -0
- package/dist/core/mcp-computer.d.ts +4 -0
- package/dist/core/mcp-computer.d.ts.map +1 -0
- package/{src/core/mcp-computer.ts → dist/core/mcp-computer.js} +5 -5
- package/dist/core/mcp-computer.js.map +1 -0
- package/dist/core/mcp-connection.d.ts +6 -0
- package/dist/core/mcp-connection.d.ts.map +1 -0
- package/dist/core/mcp-connection.js +10 -0
- package/dist/core/mcp-connection.js.map +1 -0
- package/dist/core/mcp-ipc-connection.d.ts +20 -0
- package/dist/core/mcp-ipc-connection.d.ts.map +1 -0
- package/{src/core/mcp-ipc-connection.ts → dist/core/mcp-ipc-connection.js} +126 -153
- package/dist/core/mcp-ipc-connection.js.map +1 -0
- package/dist/core/mcp-server.d.ts +9 -0
- package/dist/core/mcp-server.d.ts.map +1 -0
- package/{src/core/mcp-server.ts → dist/core/mcp-server.js} +45 -49
- package/dist/core/mcp-server.js.map +1 -0
- package/dist/core/mcp.d.ts +29 -0
- package/dist/core/mcp.d.ts.map +1 -0
- package/dist/core/mcp.js +11 -0
- package/dist/core/mcp.js.map +1 -0
- package/dist/core/ollama-provider.d.ts +9 -0
- package/dist/core/ollama-provider.d.ts.map +1 -0
- package/{src/core/ollama-provider.ts → dist/core/ollama-provider.js} +59 -70
- package/dist/core/ollama-provider.js.map +1 -0
- package/dist/core/skill.d.ts +15 -0
- package/dist/core/skill.d.ts.map +1 -0
- package/dist/core/skill.js +11 -0
- package/dist/core/skill.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +16 -17
- package/dist/index.js.map +1 -0
- package/dist/templates/researcher.d.ts +27 -0
- package/dist/templates/researcher.d.ts.map +1 -0
- package/dist/templates/researcher.js +70 -0
- package/dist/templates/researcher.js.map +1 -0
- package/dist/templates/simple.d.ts +27 -0
- package/dist/templates/simple.d.ts.map +1 -0
- package/dist/templates/simple.js +35 -0
- package/dist/templates/simple.js.map +1 -0
- package/dist/tests/mcp.test.d.ts +2 -0
- package/dist/tests/mcp.test.d.ts.map +1 -0
- package/{src/tests/mcp.test.ts → dist/tests/mcp.test.js} +55 -73
- package/dist/tests/mcp.test.js.map +1 -0
- package/dist/tools/fs/index.d.ts +3 -0
- package/dist/tools/fs/index.d.ts.map +1 -0
- package/dist/tools/fs/index.js +3 -0
- package/dist/tools/fs/index.js.map +1 -0
- package/dist/tools/fs/read-file.d.ts +4 -0
- package/dist/tools/fs/read-file.d.ts.map +1 -0
- package/{src/tools/fs/read-file.ts → dist/tools/fs/read-file.js} +49 -54
- package/dist/tools/fs/read-file.js.map +1 -0
- package/dist/tools/fs/write-file.d.ts +4 -0
- package/dist/tools/fs/write-file.d.ts.map +1 -0
- package/{src/tools/fs/write-file.ts → dist/tools/fs/write-file.js} +68 -73
- package/dist/tools/fs/write-file.js.map +1 -0
- package/dist/tools/utils/get-current-time.d.ts +4 -0
- package/dist/tools/utils/get-current-time.d.ts.map +1 -0
- package/{src/tools/utils/get-current-time.ts → dist/tools/utils/get-current-time.js} +40 -45
- package/dist/tools/utils/get-current-time.js.map +1 -0
- package/dist/tools/utils/index.d.ts +2 -0
- package/dist/tools/utils/index.d.ts.map +1 -0
- package/dist/tools/utils/index.js +2 -0
- package/dist/tools/utils/index.js.map +1 -0
- package/dist/tools/www/fetch.d.ts +4 -0
- package/dist/tools/www/fetch.d.ts.map +1 -0
- package/{src/tools/www/fetch.ts → dist/tools/www/fetch.js} +147 -161
- package/dist/tools/www/fetch.js.map +1 -0
- package/dist/tools/www/index.d.ts +4 -0
- package/dist/tools/www/index.d.ts.map +1 -0
- package/dist/tools/www/index.js +4 -0
- package/dist/tools/www/index.js.map +1 -0
- package/dist/tools/www/read-web-page.d.ts +4 -0
- package/dist/tools/www/read-web-page.d.ts.map +1 -0
- package/{src/tools/www/read-web-page.ts → dist/tools/www/read-web-page.js} +330 -350
- package/dist/tools/www/read-web-page.js.map +1 -0
- package/dist/tools/www/web-search.d.ts +4 -0
- package/dist/tools/www/web-search.d.ts.map +1 -0
- package/{src/tools/www/web-search.ts → dist/tools/www/web-search.js} +82 -102
- package/dist/tools/www/web-search.js.map +1 -0
- package/package.json +19 -5
- package/.env.example +0 -1
- package/orbitx.png +0 -0
- package/public/index.html +0 -397
- package/src/core/mcp-connection.ts +0 -12
- package/src/core/mcp.ts +0 -23
- package/src/core/skill.ts +0 -16
- package/src/templates/researcher.ts +0 -73
- package/src/templates/simple.ts +0 -64
- package/src/tools/fs/index.ts +0 -2
- package/src/tools/utils/index.ts +0 -1
- package/src/tools/www/index.ts +0 -3
- package/tsconfig.json +0 -34
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
export interface Message {
|
|
2
|
-
role: "user" | "system" | "assistant" | "tool";
|
|
3
|
-
content?: string;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
export
|
|
19
|
-
|
|
20
|
-
messages: Message[],
|
|
21
|
-
streamCallback?: StreamCallback
|
|
22
|
-
): Promise<ChatResponse>;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export default AIProvider;
|
|
1
|
+
export interface Message {
|
|
2
|
+
role: "user" | "system" | "assistant" | "tool";
|
|
3
|
+
content?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ChatResponse {
|
|
6
|
+
content: string;
|
|
7
|
+
inputTokens: number;
|
|
8
|
+
outputTokens: number;
|
|
9
|
+
}
|
|
10
|
+
export type StreamCallback = (chunk: {
|
|
11
|
+
role: "assistant" | "tool";
|
|
12
|
+
content: string;
|
|
13
|
+
done: boolean;
|
|
14
|
+
}) => void;
|
|
15
|
+
export declare abstract class AIProvider {
|
|
16
|
+
abstract chat(messages: Message[], streamCallback?: StreamCallback): Promise<ChatResponse>;
|
|
17
|
+
}
|
|
18
|
+
export default AIProvider;
|
|
19
|
+
//# sourceMappingURL=ai-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-provider.d.ts","sourceRoot":"","sources":["../../src/core/ai-provider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IACjC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACjB,KAAK,IAAI,CAAC;AAEX,8BAAsB,UAAU;IAC5B,QAAQ,CAAC,IAAI,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,cAAc,GAChC,OAAO,CAAC,YAAY,CAAC;CAC3B;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-provider.js","sourceRoot":"","sources":["../../src/core/ai-provider.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAgB,UAAU;CAK/B;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { AIProvider, Message, StreamCallback } from "./ai-provider";
|
|
2
|
+
import type MCPClient from "./mcp-client";
|
|
3
|
+
import type MCPTool from "./mcp";
|
|
4
|
+
import type Skill from "./skill";
|
|
5
|
+
export interface ParsedToolCall {
|
|
6
|
+
id: string;
|
|
7
|
+
tool: string;
|
|
8
|
+
inputs: Record<string, any>;
|
|
9
|
+
}
|
|
10
|
+
export type ExtractedSegment = {
|
|
11
|
+
type: "text";
|
|
12
|
+
context: string;
|
|
13
|
+
} | {
|
|
14
|
+
type: "tool";
|
|
15
|
+
context: ParsedToolCall;
|
|
16
|
+
};
|
|
17
|
+
export declare class BaseAgent {
|
|
18
|
+
#private;
|
|
19
|
+
constructor({ instruction, allowedTools, aiProvider, mcpClient, initData, skills, maxMemorizeToken }: {
|
|
20
|
+
instruction: string;
|
|
21
|
+
allowedTools: MCPTool[];
|
|
22
|
+
aiProvider: AIProvider;
|
|
23
|
+
mcpClient: MCPClient;
|
|
24
|
+
skills?: Skill[];
|
|
25
|
+
maxMemorizeToken?: number;
|
|
26
|
+
initData?: {
|
|
27
|
+
memory: string;
|
|
28
|
+
messagesFull: Message[];
|
|
29
|
+
fullInputMissTokens: number;
|
|
30
|
+
fullInputHitTokens: number;
|
|
31
|
+
fullOutputTokens: number;
|
|
32
|
+
messagesCompact: Message[];
|
|
33
|
+
currentInputMissTokens: number;
|
|
34
|
+
currentInputHitTokens: number;
|
|
35
|
+
currentOutputTokens: number;
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
run(prompt: string, streamCallback?: StreamCallback): Promise<void>;
|
|
39
|
+
getCurrentTotalTokens(): {
|
|
40
|
+
total: number;
|
|
41
|
+
inputHit: number;
|
|
42
|
+
inputMiss: number;
|
|
43
|
+
output: number;
|
|
44
|
+
};
|
|
45
|
+
getFullTotalTokens(): {
|
|
46
|
+
total: number;
|
|
47
|
+
inputHit: number;
|
|
48
|
+
inputMiss: number;
|
|
49
|
+
output: number;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export default BaseAgent;
|
|
53
|
+
//# sourceMappingURL=base-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,gBAAgB,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AAEhD,qBAAa,SAAS;;gBAwBN,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,QAU/D,EAAE,MAAW,EAAE,gBAAwB,EAAE,EAAE;QACxC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,OAAO,EAAE,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,SAAS,CAAC;QACrB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE;YACP,MAAM,EAAE,MAAM,CAAC;YACf,YAAY,EAAE,OAAO,EAAE,CAAC;YACxB,mBAAmB,EAAE,MAAM,CAAC;YAC5B,kBAAkB,EAAE,MAAM,CAAC;YAC3B,gBAAgB,EAAE,MAAM,CAAC;YACzB,eAAe,EAAE,OAAO,EAAE,CAAC;YAC3B,sBAAsB,EAAE,MAAM,CAAC;YAC/B,qBAAqB,EAAE,MAAM,CAAC;YAC9B,mBAAmB,EAAE,MAAM,CAAC;SAC/B,CAAA;KACJ;IAoJK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DzE,qBAAqB;;;;;;IASrB,kBAAkB;;;;;;CAQrB;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -1,160 +1,108 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
"tool" in result &&
|
|
107
|
-
"inputs" in result &&
|
|
108
|
-
typeof result.tool === "string"
|
|
109
|
-
) {
|
|
110
|
-
const text = str.slice(textStart, i);
|
|
111
|
-
if (text.trim().length > 0) {
|
|
112
|
-
segments.push({ type: "text", context: text });
|
|
113
|
-
}
|
|
114
|
-
segments.push({ type: "tool", context: result as ParsedToolCall });
|
|
115
|
-
|
|
116
|
-
i = j;
|
|
117
|
-
textStart = j + 1;
|
|
118
|
-
cursor = j + 1;
|
|
119
|
-
}
|
|
120
|
-
} catch {
|
|
121
|
-
// not valid JSON, skip
|
|
122
|
-
}
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
const remaining = str.slice(textStart);
|
|
129
|
-
if (remaining.trim().length > 0) {
|
|
130
|
-
segments.push({ type: "text", context: remaining });
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return segments;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
async #buildSystemPrompt(): Promise<string> {
|
|
137
|
-
const tools = (await this.#mcpClient.getTools())
|
|
138
|
-
.filter(t => this.#allowedTools.includes(t.name));
|
|
139
|
-
|
|
140
|
-
const toolBlock = tools.map(t => {
|
|
141
|
-
const params = t.inputs.map(ti =>
|
|
142
|
-
`${ti.name}${ti.required ? "" : "?"}:${ti.type}${ti.default !== undefined ? `=${JSON.stringify(ti.default)}` : ""} // ${ti.description}`
|
|
143
|
-
).join(", ");
|
|
144
|
-
|
|
145
|
-
const example: Record<string, unknown> = {};
|
|
146
|
-
t.inputs.forEach(ti => {
|
|
147
|
-
example[ti.name] = ti.default !== undefined ? ti.default
|
|
148
|
-
: ti.type === "string" ? "..."
|
|
149
|
-
: ti.type === "number" ? 0
|
|
150
|
-
: ti.type === "boolean" ? true
|
|
151
|
-
: ti.type === "array" ? []
|
|
152
|
-
: {};
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
return `${t.name}(${params || ""})\n${t.description}\nex: {"tool":"${t.name}","inputs":${JSON.stringify(example)}}`;
|
|
156
|
-
}).join("\n\n");
|
|
157
|
-
|
|
1
|
+
export class BaseAgent {
|
|
2
|
+
#maxMemorizeToken = 16000;
|
|
3
|
+
#instruction = "";
|
|
4
|
+
#allowedTools = [];
|
|
5
|
+
#skills = [];
|
|
6
|
+
#memory = "";
|
|
7
|
+
#messagesFull = [];
|
|
8
|
+
#fullInputMissTokens = 0;
|
|
9
|
+
#fullInputHitTokens = 0;
|
|
10
|
+
#fullOutputTokens = 0;
|
|
11
|
+
#messagesCompact = [];
|
|
12
|
+
#currentInputMissTokens = 0;
|
|
13
|
+
#currentInputHitTokens = 0;
|
|
14
|
+
#currentLastOutputTokens = 0;
|
|
15
|
+
#currentOutputTokens = 0;
|
|
16
|
+
#mcpClient;
|
|
17
|
+
#aiProvider;
|
|
18
|
+
constructor({ instruction, allowedTools, aiProvider, mcpClient, initData = {
|
|
19
|
+
memory: "",
|
|
20
|
+
messagesFull: [],
|
|
21
|
+
fullInputMissTokens: 0,
|
|
22
|
+
fullInputHitTokens: 0,
|
|
23
|
+
fullOutputTokens: 0,
|
|
24
|
+
messagesCompact: [],
|
|
25
|
+
currentInputMissTokens: 0,
|
|
26
|
+
currentInputHitTokens: 0,
|
|
27
|
+
currentOutputTokens: 0,
|
|
28
|
+
}, skills = [], maxMemorizeToken = 16000 }) {
|
|
29
|
+
this.#instruction = instruction;
|
|
30
|
+
this.#allowedTools = allowedTools.map(t => t.getOptions().name);
|
|
31
|
+
this.#aiProvider = aiProvider;
|
|
32
|
+
this.#mcpClient = mcpClient;
|
|
33
|
+
this.#memory = initData.memory;
|
|
34
|
+
this.#messagesFull = initData.messagesFull;
|
|
35
|
+
this.#fullInputMissTokens = initData.fullInputMissTokens;
|
|
36
|
+
this.#fullInputHitTokens = initData.fullInputHitTokens;
|
|
37
|
+
this.#fullOutputTokens = initData.fullOutputTokens;
|
|
38
|
+
this.#messagesCompact = initData.messagesCompact;
|
|
39
|
+
this.#currentInputMissTokens = initData.currentInputMissTokens;
|
|
40
|
+
this.#currentInputHitTokens = initData.currentInputHitTokens;
|
|
41
|
+
this.#currentOutputTokens = initData.currentOutputTokens;
|
|
42
|
+
this.#maxMemorizeToken = maxMemorizeToken;
|
|
43
|
+
this.#skills = skills;
|
|
44
|
+
}
|
|
45
|
+
#extractJson(str) {
|
|
46
|
+
const segments = [];
|
|
47
|
+
let cursor = 0;
|
|
48
|
+
let textStart = 0;
|
|
49
|
+
for (let i = 0; i < str.length; i++) {
|
|
50
|
+
if (str[i] !== "{")
|
|
51
|
+
continue;
|
|
52
|
+
let brace = 0;
|
|
53
|
+
for (let j = i; j < str.length; j++) {
|
|
54
|
+
if (str[j] === "{")
|
|
55
|
+
brace++;
|
|
56
|
+
if (str[j] === "}")
|
|
57
|
+
brace--;
|
|
58
|
+
if (brace === 0) {
|
|
59
|
+
const candidate = str.slice(i, j + 1);
|
|
60
|
+
try {
|
|
61
|
+
const result = JSON.parse(candidate);
|
|
62
|
+
if (result &&
|
|
63
|
+
typeof result === "object" &&
|
|
64
|
+
"tool" in result &&
|
|
65
|
+
"inputs" in result &&
|
|
66
|
+
typeof result.tool === "string") {
|
|
67
|
+
const text = str.slice(textStart, i);
|
|
68
|
+
if (text.trim().length > 0) {
|
|
69
|
+
segments.push({ type: "text", context: text });
|
|
70
|
+
}
|
|
71
|
+
segments.push({ type: "tool", context: result });
|
|
72
|
+
i = j;
|
|
73
|
+
textStart = j + 1;
|
|
74
|
+
cursor = j + 1;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// not valid JSON, skip
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const remaining = str.slice(textStart);
|
|
85
|
+
if (remaining.trim().length > 0) {
|
|
86
|
+
segments.push({ type: "text", context: remaining });
|
|
87
|
+
}
|
|
88
|
+
return segments;
|
|
89
|
+
}
|
|
90
|
+
async #buildSystemPrompt() {
|
|
91
|
+
const tools = (await this.#mcpClient.getTools())
|
|
92
|
+
.filter(t => this.#allowedTools.includes(t.name));
|
|
93
|
+
const toolBlock = tools.map(t => {
|
|
94
|
+
const params = t.inputs.map(ti => `${ti.name}${ti.required ? "" : "?"}:${ti.type}${ti.default !== undefined ? `=${JSON.stringify(ti.default)}` : ""} // ${ti.description}`).join(", ");
|
|
95
|
+
const example = {};
|
|
96
|
+
t.inputs.forEach(ti => {
|
|
97
|
+
example[ti.name] = ti.default !== undefined ? ti.default
|
|
98
|
+
: ti.type === "string" ? "..."
|
|
99
|
+
: ti.type === "number" ? 0
|
|
100
|
+
: ti.type === "boolean" ? true
|
|
101
|
+
: ti.type === "array" ? []
|
|
102
|
+
: {};
|
|
103
|
+
});
|
|
104
|
+
return `${t.name}(${params || ""})\n${t.description}\nex: {"tool":"${t.name}","inputs":${JSON.stringify(example)}}`;
|
|
105
|
+
}).join("\n\n");
|
|
158
106
|
return `You are an assistant with tools. CRITICAL RULES:
|
|
159
107
|
1. Think step by step.
|
|
160
108
|
${tools.length > 0 && `2. EVERY tool call MUST include a UNIQUE 10-digit random ID in the format: {"id":"1234567890", "tool":"<name>","inputs":{...}}
|
|
@@ -170,7 +118,7 @@ TOOLS:
|
|
|
170
118
|
${toolBlock}
|
|
171
119
|
`}
|
|
172
120
|
|
|
173
|
-
${this.#skills
|
|
121
|
+
${this.#skills && `
|
|
174
122
|
SKILLS:
|
|
175
123
|
${this.#skills.map(skill => (`${skill.getSkill().name} - ${skill.getSkill().description}
|
|
176
124
|
${skill.getSkill().instructions}
|
|
@@ -182,116 +130,96 @@ ${this.#memory || "(empty)"}
|
|
|
182
130
|
|
|
183
131
|
INSTRUCTIONS:
|
|
184
132
|
${this.#instruction}
|
|
185
|
-
`;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
#buildMemoryPrompt(): string {
|
|
133
|
+
`;
|
|
134
|
+
}
|
|
135
|
+
#buildMemoryPrompt() {
|
|
189
136
|
return `Summarize all important facts and pending tasks from this conversation.
|
|
190
137
|
Output only this JSON line, nothing else:
|
|
191
|
-
{"tool":"set_memory","inputs":{"new_memory":"<compact summary>"}}`;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
.
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
this.#
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
this.#
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
this.#
|
|
243
|
-
this.#
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
this.#
|
|
255
|
-
this.#
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
return {
|
|
280
|
-
total: this.#currentInputHitTokens + this.#currentInputMissTokens + this.#currentOutputTokens,
|
|
281
|
-
inputHit: this.#currentInputHitTokens,
|
|
282
|
-
inputMiss: this.#currentInputMissTokens,
|
|
283
|
-
output: this.#currentOutputTokens
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
getFullTotalTokens() {
|
|
288
|
-
return {
|
|
289
|
-
total: this.#fullInputHitTokens + this.#fullInputMissTokens + this.#fullOutputTokens,
|
|
290
|
-
inputHit: this.#fullInputHitTokens,
|
|
291
|
-
inputMiss: this.#fullInputMissTokens,
|
|
292
|
-
output: this.#fullOutputTokens
|
|
293
|
-
};
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
export default BaseAgent;
|
|
138
|
+
{"tool":"set_memory","inputs":{"new_memory":"<compact summary>"}}`;
|
|
139
|
+
}
|
|
140
|
+
async #extractToolCalls(content) {
|
|
141
|
+
return await this.#extractJson(content)
|
|
142
|
+
.filter((r) => r.type === "tool")
|
|
143
|
+
.map((t) => t.context);
|
|
144
|
+
}
|
|
145
|
+
async #dispatchTool(toolCall) {
|
|
146
|
+
if (toolCall.tool === "set_memory") {
|
|
147
|
+
if (typeof toolCall.inputs?.new_memory === "string") {
|
|
148
|
+
this.#memory = toolCall.inputs.new_memory;
|
|
149
|
+
return "Memory updated.";
|
|
150
|
+
}
|
|
151
|
+
return `Error: set_memory requires new_memory:string, got ${JSON.stringify(toolCall.inputs)}`;
|
|
152
|
+
}
|
|
153
|
+
if (this.#allowedTools.includes(toolCall.tool)) {
|
|
154
|
+
return JSON.stringify({ id: toolCall.id, output: await this.#mcpClient.callTool(toolCall.tool, toolCall.inputs) });
|
|
155
|
+
}
|
|
156
|
+
return `Error: tool "${toolCall.tool}" not found or not allowed.`;
|
|
157
|
+
}
|
|
158
|
+
async run(prompt, streamCallback) {
|
|
159
|
+
let toolsCalls = [];
|
|
160
|
+
do {
|
|
161
|
+
const systemPrompt = await this.#buildSystemPrompt();
|
|
162
|
+
const chat = await this.#aiProvider.chat([
|
|
163
|
+
{ role: "system", content: systemPrompt },
|
|
164
|
+
...this.#messagesCompact,
|
|
165
|
+
{ role: "user", content: prompt }
|
|
166
|
+
], streamCallback);
|
|
167
|
+
this.#messagesFull.push({ role: "user", content: prompt });
|
|
168
|
+
this.#messagesCompact.push({ role: "user", content: prompt });
|
|
169
|
+
this.#messagesFull.push({ role: "assistant", content: chat.content });
|
|
170
|
+
this.#messagesCompact.push({ role: "assistant", content: chat.content });
|
|
171
|
+
this.#currentInputHitTokens += this.#currentInputMissTokens;
|
|
172
|
+
this.#currentInputMissTokens += chat.inputTokens - this.#currentInputMissTokens;
|
|
173
|
+
this.#currentOutputTokens += chat.outputTokens;
|
|
174
|
+
this.#currentLastOutputTokens = chat.outputTokens;
|
|
175
|
+
toolsCalls = await this.#extractToolCalls(chat.content);
|
|
176
|
+
for (const toolCall of toolsCalls) {
|
|
177
|
+
const toolResponse = await this.#dispatchTool(toolCall);
|
|
178
|
+
this.#messagesFull.push({ role: "system", content: toolResponse });
|
|
179
|
+
this.#messagesCompact.push({ role: "system", content: toolResponse });
|
|
180
|
+
streamCallback?.({ role: "tool", content: toolResponse, done: true });
|
|
181
|
+
}
|
|
182
|
+
if (this.#currentInputMissTokens + this.#currentLastOutputTokens > this.#maxMemorizeToken) {
|
|
183
|
+
const memChat = await this.#aiProvider.chat([
|
|
184
|
+
{ role: "system", content: systemPrompt },
|
|
185
|
+
...this.#messagesCompact,
|
|
186
|
+
{ role: "user", content: this.#buildMemoryPrompt() }
|
|
187
|
+
]);
|
|
188
|
+
this.#currentInputHitTokens += this.#currentInputMissTokens;
|
|
189
|
+
this.#currentInputMissTokens += memChat.inputTokens - this.#currentInputMissTokens;
|
|
190
|
+
this.#currentOutputTokens += memChat.outputTokens;
|
|
191
|
+
for (const mc of await this.#extractToolCalls(memChat.content)) {
|
|
192
|
+
const toolResponse = await this.#dispatchTool(mc);
|
|
193
|
+
streamCallback?.({ role: "tool", content: toolResponse, done: true });
|
|
194
|
+
}
|
|
195
|
+
this.#messagesCompact = [];
|
|
196
|
+
this.#fullInputHitTokens += this.#currentInputHitTokens;
|
|
197
|
+
this.#fullInputMissTokens += this.#currentInputMissTokens;
|
|
198
|
+
this.#fullOutputTokens += this.#currentOutputTokens;
|
|
199
|
+
this.#currentInputHitTokens = 0;
|
|
200
|
+
this.#currentInputMissTokens = 0;
|
|
201
|
+
this.#currentOutputTokens = 0;
|
|
202
|
+
this.#currentLastOutputTokens = 0;
|
|
203
|
+
}
|
|
204
|
+
prompt = "";
|
|
205
|
+
} while (toolsCalls.length > 0);
|
|
206
|
+
}
|
|
207
|
+
getCurrentTotalTokens() {
|
|
208
|
+
return {
|
|
209
|
+
total: this.#currentInputHitTokens + this.#currentInputMissTokens + this.#currentOutputTokens,
|
|
210
|
+
inputHit: this.#currentInputHitTokens,
|
|
211
|
+
inputMiss: this.#currentInputMissTokens,
|
|
212
|
+
output: this.#currentOutputTokens
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
getFullTotalTokens() {
|
|
216
|
+
return {
|
|
217
|
+
total: this.#fullInputHitTokens + this.#fullInputMissTokens + this.#fullOutputTokens,
|
|
218
|
+
inputHit: this.#fullInputHitTokens,
|
|
219
|
+
inputMiss: this.#fullInputMissTokens,
|
|
220
|
+
output: this.#fullOutputTokens
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
export default BaseAgent;
|
|
225
|
+
//# sourceMappingURL=base-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import AIProvider, { type Message, type ChatResponse, type StreamCallback } from "./ai-provider";
|
|
2
|
+
export declare class DeepSeekProvider extends AIProvider {
|
|
3
|
+
private client;
|
|
4
|
+
private model;
|
|
5
|
+
constructor(apiKey: string, model?: string);
|
|
6
|
+
chat(messages: Message[], streamCallback?: StreamCallback): Promise<ChatResponse>;
|
|
7
|
+
}
|
|
8
|
+
export default DeepSeekProvider;
|
|
9
|
+
//# sourceMappingURL=deepseek-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../src/core/deepseek-provider.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,EAAE,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEjG,qBAAa,gBAAiB,SAAQ,UAAU;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA4B;IASzD,IAAI,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,cAAc,GAChC,OAAO,CAAC,YAAY,CAAC;CAiD3B;AAED,eAAe,gBAAgB,CAAC"}
|