@xalia/agent 0.6.8 → 0.6.10
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/.env.development +6 -0
- package/.env.test +7 -0
- package/README.md +11 -0
- package/context_system.md +498 -0
- package/dist/agent/src/agent/agent.js +169 -87
- package/dist/agent/src/agent/agentUtils.js +24 -18
- package/dist/agent/src/agent/compressingContextManager.js +10 -14
- package/dist/agent/src/agent/context.js +101 -127
- package/dist/agent/src/agent/contextWithWorkspace.js +133 -0
- package/dist/agent/src/agent/documentSummarizer.js +126 -0
- package/dist/agent/src/agent/dummyLLM.js +25 -22
- package/dist/agent/src/agent/imageGenLLM.js +22 -25
- package/dist/agent/src/agent/imageGenerator.js +2 -10
- package/dist/agent/src/agent/llm.js +1 -1
- package/dist/agent/src/agent/openAILLM.js +15 -12
- package/dist/agent/src/agent/openAILLMStreaming.js +73 -39
- package/dist/agent/src/agent/repeatLLM.js +16 -7
- package/dist/agent/src/agent/sudoMcpServerManager.js +21 -9
- package/dist/agent/src/agent/tokenCounter.js +390 -0
- package/dist/agent/src/agent/tokenCounter.test.js +206 -0
- package/dist/agent/src/agent/toolSettings.js +17 -0
- package/dist/agent/src/agent/tools/calculatorTool.js +45 -0
- package/dist/agent/src/agent/tools/contentExtractors/pdfToText.js +55 -0
- package/dist/agent/src/agent/tools/datetimeTool.js +38 -0
- package/dist/agent/src/agent/tools/fileManager/fileManagerTool.js +156 -0
- package/dist/agent/src/agent/tools/fileManager/index.js +31 -0
- package/dist/agent/src/agent/tools/fileManager/memoryFileManager.js +102 -0
- package/dist/agent/src/{chat/data → agent/tools/fileManager}/mimeTypes.js +3 -1
- package/dist/agent/src/agent/tools/fileManager/prompt.js +33 -0
- package/dist/agent/src/{chat/data/dbSessionFileModels.js → agent/tools/fileManager/types.js} +7 -0
- package/dist/agent/src/agent/tools/index.js +64 -0
- package/dist/agent/src/agent/tools/openUrlTool.js +57 -0
- package/dist/agent/src/agent/tools/renderTool.js +89 -0
- package/dist/agent/src/agent/tools/utils.js +61 -0
- package/dist/agent/src/{chat/utils/search.js → agent/tools/webSearch.js} +1 -2
- package/dist/agent/src/agent/tools/webSearchTool.js +40 -0
- package/dist/agent/src/chat/client/chatClient.js +63 -2
- package/dist/agent/src/chat/client/connection.js +6 -1
- package/dist/agent/src/chat/client/index.js +4 -1
- package/dist/agent/src/chat/client/sessionClient.js +28 -9
- package/dist/agent/src/chat/constants.js +8 -0
- package/dist/agent/src/chat/data/dbSessionFiles.js +11 -6
- package/dist/agent/src/chat/data/dbSessionMessages.js +11 -0
- package/dist/agent/src/chat/protocol/messages.js +9 -0
- package/dist/agent/src/chat/server/chatContextManager.js +186 -156
- package/dist/agent/src/chat/server/conversation.js +3 -0
- package/dist/agent/src/chat/server/imageGeneratorTools.js +39 -16
- package/dist/agent/src/chat/server/openAIRouterLLM.js +111 -0
- package/dist/agent/src/chat/server/openSession.js +253 -91
- package/dist/agent/src/chat/server/promptRefiner.js +86 -0
- package/dist/agent/src/chat/server/server.js +10 -2
- package/dist/agent/src/chat/server/sessionFileManager.js +22 -221
- package/dist/agent/src/chat/server/sessionRegistry.js +152 -6
- package/dist/agent/src/chat/server/sessionRegistry.test.js +1 -1
- package/dist/agent/src/chat/server/titleGenerator.js +112 -0
- package/dist/agent/src/chat/server/titleGenerator.test.js +113 -0
- package/dist/agent/src/chat/server/tools.js +64 -253
- package/dist/agent/src/chat/utils/approvalManager.js +6 -3
- package/dist/agent/src/chat/utils/multiAsyncQueue.js +3 -0
- package/dist/agent/src/test/agent.test.js +16 -17
- package/dist/agent/src/test/chatContextManager.test.js +44 -30
- package/dist/agent/src/test/clientServerConnection.test.js +1 -2
- package/dist/agent/src/test/compressingContextManager.test.js +22 -36
- package/dist/agent/src/test/context.test.js +55 -17
- package/dist/agent/src/test/contextTestTools.js +87 -0
- package/dist/agent/src/test/dbMcpServerConfigs.test.js +4 -4
- package/dist/agent/src/test/dbSessionFiles.test.js +17 -17
- package/dist/agent/src/test/testTools.js +6 -1
- package/dist/agent/src/test/tools.test.js +27 -9
- package/dist/agent/src/tool/agentChat.js +5 -2
- package/dist/agent/src/tool/chatMain.js +56 -15
- package/dist/agent/src/tool/commandPrompt.js +2 -2
- package/dist/agent/src/tool/files.js +7 -8
- package/package.json +4 -1
- package/scripts/test_chat +195 -173
- package/src/agent/agent.ts +257 -137
- package/src/agent/agentUtils.ts +32 -20
- package/src/agent/compressingContextManager.ts +13 -44
- package/src/agent/context.ts +165 -159
- package/src/agent/contextWithWorkspace.ts +162 -0
- package/src/agent/documentSummarizer.ts +157 -0
- package/src/agent/dummyLLM.ts +27 -23
- package/src/agent/imageGenLLM.ts +28 -32
- package/src/agent/imageGenerator.ts +3 -18
- package/src/agent/llm.ts +2 -2
- package/src/agent/openAILLM.ts +17 -13
- package/src/agent/openAILLMStreaming.ts +99 -43
- package/src/agent/repeatLLM.ts +19 -7
- package/src/agent/sudoMcpServerManager.ts +41 -20
- package/src/agent/test_data/harrypotter.txt +6065 -0
- package/src/agent/tokenCounter.test.ts +243 -0
- package/src/agent/tokenCounter.ts +483 -0
- package/src/agent/toolSettings.ts +24 -0
- package/src/agent/tools/calculatorTool.ts +50 -0
- package/src/agent/tools/contentExtractors/pdfToText.ts +60 -0
- package/src/agent/tools/datetimeTool.ts +41 -0
- package/src/agent/tools/fileManager/fileManagerTool.ts +199 -0
- package/src/agent/tools/fileManager/index.ts +50 -0
- package/src/agent/tools/fileManager/memoryFileManager.ts +120 -0
- package/src/{chat/data → agent/tools/fileManager}/mimeTypes.ts +3 -1
- package/src/agent/tools/fileManager/prompt.ts +38 -0
- package/src/{chat/data/dbSessionFileModels.ts → agent/tools/fileManager/types.ts} +76 -0
- package/src/agent/tools/index.ts +49 -0
- package/src/agent/tools/openUrlTool.ts +62 -0
- package/src/agent/tools/renderTool.ts +92 -0
- package/src/agent/tools/utils.ts +74 -0
- package/src/{chat/utils/search.ts → agent/tools/webSearch.ts} +0 -1
- package/src/agent/tools/webSearchTool.ts +44 -0
- package/src/chat/client/chatClient.ts +92 -3
- package/src/chat/client/connection.ts +11 -1
- package/src/chat/client/index.ts +3 -0
- package/src/chat/client/sessionClient.ts +40 -11
- package/src/chat/client/sessionFiles.ts +1 -1
- package/src/chat/constants.ts +6 -0
- package/src/chat/data/dataModels.ts +12 -0
- package/src/chat/data/dbSessionFiles.ts +12 -4
- package/src/chat/data/dbSessionMessages.ts +34 -0
- package/src/chat/protocol/messages.ts +94 -14
- package/src/chat/server/chatContextManager.ts +255 -221
- package/src/chat/server/connectionManager.ts +1 -1
- package/src/chat/server/conversation.ts +3 -0
- package/src/chat/server/imageGeneratorTools.ts +62 -30
- package/src/chat/server/openAIRouterLLM.ts +168 -0
- package/src/chat/server/openSession.ts +381 -138
- package/src/chat/server/promptRefiner.ts +106 -0
- package/src/chat/server/server.ts +9 -2
- package/src/chat/server/sessionFileManager.ts +35 -306
- package/src/chat/server/sessionRegistry.test.ts +0 -1
- package/src/chat/server/sessionRegistry.ts +228 -4
- package/src/chat/server/titleGenerator.test.ts +103 -0
- package/src/chat/server/titleGenerator.ts +143 -0
- package/src/chat/server/tools.ts +92 -281
- package/src/chat/utils/approvalManager.ts +9 -3
- package/src/chat/utils/multiAsyncQueue.ts +4 -0
- package/src/test/agent.test.ts +25 -30
- package/src/test/chatContextManager.test.ts +68 -38
- package/src/test/clientServerConnection.test.ts +0 -2
- package/src/test/compressingContextManager.test.ts +29 -34
- package/src/test/context.test.ts +59 -15
- package/src/test/contextTestTools.ts +95 -0
- package/src/test/dbMcpServerConfigs.test.ts +4 -4
- package/src/test/dbSessionFiles.test.ts +16 -16
- package/src/test/testTools.ts +8 -3
- package/src/test/tools.test.ts +30 -5
- package/src/tool/agentChat.ts +12 -3
- package/src/tool/chatMain.ts +59 -18
- package/src/tool/commandPrompt.ts +2 -2
- package/src/tool/files.ts +1 -3
- package/dist/agent/src/agent/tools.js +0 -44
- package/src/agent/tools.ts +0 -57
- /package/dist/agent/src/{chat/utils → agent/tools/contentExtractors}/htmlToText.js +0 -0
- /package/src/{chat/utils → agent/tools/contentExtractors}/htmlToText.ts +0 -0
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
McpServer,
|
|
15
15
|
} from "@xalia/xmcp/sdk";
|
|
16
16
|
import { Client as McpClient } from "@modelcontextprotocol/sdk/client/index.js";
|
|
17
|
+
import { CustomMcpServerDescriptor } from "../chat/data/dataModels";
|
|
17
18
|
|
|
18
19
|
const DEVELOPMENT: boolean = process.env.DEVELOPMENT === "1";
|
|
19
20
|
|
|
@@ -31,7 +32,7 @@ class SanitizedServerBrief extends McpServerBrief {
|
|
|
31
32
|
readonly originalName: string;
|
|
32
33
|
|
|
33
34
|
private constructor() {
|
|
34
|
-
super("dummy", "dummy", "dummy", false, {}, "dummy",
|
|
35
|
+
super("dummy", "dummy", "dummy", false, {}, "dummy", null, null, undefined);
|
|
35
36
|
this.originalName = "dummy";
|
|
36
37
|
}
|
|
37
38
|
|
|
@@ -79,7 +80,8 @@ export class SkillManager extends McpServerManager implements ISkillManager {
|
|
|
79
80
|
displayName: string
|
|
80
81
|
) => void,
|
|
81
82
|
// Redirect to this page after successful authorization
|
|
82
|
-
private authorized_url: string | undefined
|
|
83
|
+
private authorized_url: string | undefined,
|
|
84
|
+
private customMcpServers: Record<string, CustomMcpServerDescriptor>
|
|
83
85
|
) {
|
|
84
86
|
super();
|
|
85
87
|
}
|
|
@@ -96,7 +98,8 @@ export class SkillManager extends McpServerManager implements ISkillManager {
|
|
|
96
98
|
) => void,
|
|
97
99
|
sudoMcpUrl?: string,
|
|
98
100
|
sudoMcpApiKey?: string,
|
|
99
|
-
authorized_url?: string
|
|
101
|
+
authorized_url?: string,
|
|
102
|
+
customMcpServers?: Record<string, CustomMcpServerDescriptor>
|
|
100
103
|
): Promise<SkillManager> {
|
|
101
104
|
// TODO: Keep it on here and pass to `McpServerManager.addMcpServer`
|
|
102
105
|
const apiClient = new ApiClient(
|
|
@@ -106,31 +109,29 @@ export class SkillManager extends McpServerManager implements ISkillManager {
|
|
|
106
109
|
// Fetch server list
|
|
107
110
|
const servers = await apiClient.listServers();
|
|
108
111
|
|
|
112
|
+
customMcpServers = customMcpServers || {};
|
|
109
113
|
if (DEVELOPMENT) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"Local Dev Server",
|
|
114
|
+
customMcpServers["local_dev"] = {
|
|
115
|
+
name: "local_dev",
|
|
116
|
+
description:
|
|
114
117
|
"A local mcp server using streamable-HTTP for development use. " +
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
"",
|
|
119
|
-
null,
|
|
120
|
-
null,
|
|
121
|
-
DEV_MCP_SERVER_URL
|
|
122
|
-
)
|
|
123
|
-
);
|
|
118
|
+
`URL: ${DEV_MCP_SERVER_URL}`,
|
|
119
|
+
url: DEV_MCP_SERVER_URL,
|
|
120
|
+
};
|
|
124
121
|
}
|
|
125
122
|
|
|
126
|
-
const [mcpServers, mcpServersMap] = buildServersList(
|
|
123
|
+
const [mcpServers, mcpServersMap] = buildServersList(
|
|
124
|
+
servers,
|
|
125
|
+
customMcpServers
|
|
126
|
+
);
|
|
127
127
|
return new SkillManager(
|
|
128
128
|
apiClient,
|
|
129
129
|
mcpServers,
|
|
130
130
|
mcpServersMap,
|
|
131
131
|
new Map(),
|
|
132
132
|
openUrl,
|
|
133
|
-
authorized_url
|
|
133
|
+
authorized_url,
|
|
134
|
+
customMcpServers
|
|
134
135
|
);
|
|
135
136
|
}
|
|
136
137
|
|
|
@@ -188,7 +189,10 @@ export class SkillManager extends McpServerManager implements ISkillManager {
|
|
|
188
189
|
*/
|
|
189
190
|
public async refresh(): Promise<void> {
|
|
190
191
|
const servers = await this.apiClient.listServers();
|
|
191
|
-
const [mcpServers, mcpServersMap] = buildServersList(
|
|
192
|
+
const [mcpServers, mcpServersMap] = buildServersList(
|
|
193
|
+
servers,
|
|
194
|
+
this.customMcpServers
|
|
195
|
+
);
|
|
192
196
|
this.serverBriefs = mcpServers;
|
|
193
197
|
this.serverBriefsMap = mcpServersMap;
|
|
194
198
|
this.toolCache = new Map();
|
|
@@ -321,7 +325,8 @@ async function connectServer(
|
|
|
321
325
|
* holding the original name in a new field).
|
|
322
326
|
*/
|
|
323
327
|
function buildServersList(
|
|
324
|
-
serverList: McpServerBrief[]
|
|
328
|
+
serverList: McpServerBrief[],
|
|
329
|
+
customServers: Record<string, CustomMcpServerDescriptor>
|
|
325
330
|
): [SanitizedServerBrief[], { [serverName: string]: SanitizedServerBrief }] {
|
|
326
331
|
const servers: SanitizedServerBrief[] = [];
|
|
327
332
|
const serversMap: { [serverName: string]: SanitizedServerBrief } = {};
|
|
@@ -332,6 +337,22 @@ function buildServersList(
|
|
|
332
337
|
serversMap[ss.name] = ss;
|
|
333
338
|
}
|
|
334
339
|
|
|
340
|
+
for (const [name, desc] of Object.entries(customServers)) {
|
|
341
|
+
const brief = new McpServerBrief(
|
|
342
|
+
name,
|
|
343
|
+
desc.name,
|
|
344
|
+
desc.description,
|
|
345
|
+
false,
|
|
346
|
+
{},
|
|
347
|
+
"",
|
|
348
|
+
null,
|
|
349
|
+
null,
|
|
350
|
+
desc.url
|
|
351
|
+
);
|
|
352
|
+
const ss = SanitizedServerBrief.fromServerBrief(brief);
|
|
353
|
+
servers.push(ss);
|
|
354
|
+
serversMap[ss.name] = ss;
|
|
355
|
+
}
|
|
335
356
|
return [servers, serversMap];
|
|
336
357
|
}
|
|
337
358
|
|