@xalia/agent 0.6.9 → 0.6.11
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/README.md +11 -0
- package/dist/agent/src/agent/agent.js +77 -18
- package/dist/agent/src/agent/agentUtils.js +3 -2
- 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 -19
- 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 +68 -37
- package/dist/agent/src/agent/repeatLLM.js +16 -7
- 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 +28 -0
- package/dist/agent/src/chat/client/index.js +4 -1
- package/dist/agent/src/chat/client/sessionClient.js +28 -2
- package/dist/agent/src/chat/constants.js +8 -0
- package/dist/agent/src/chat/data/dbSessionFiles.js +11 -6
- package/dist/agent/src/chat/protocol/messages.js +5 -0
- package/dist/agent/src/chat/server/chatContextManager.js +45 -25
- package/dist/agent/src/chat/server/conversation.js +3 -0
- package/dist/agent/src/chat/server/imageGeneratorTools.js +20 -8
- package/dist/agent/src/chat/server/openAIRouterLLM.js +0 -3
- package/dist/agent/src/chat/server/openSession.js +218 -55
- package/dist/agent/src/chat/server/promptRefiner.js +86 -0
- package/dist/agent/src/chat/server/server.js +5 -1
- package/dist/agent/src/chat/server/sessionFileManager.js +22 -221
- package/dist/agent/src/chat/server/sessionRegistry.js +87 -0
- 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 +63 -287
- 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 +15 -3
- 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 +34 -7
- package/dist/agent/src/tool/commandPrompt.js +2 -2
- package/dist/agent/src/tool/files.js +7 -8
- package/package.json +8 -2
- package/.env.development +0 -1
- package/.prettierrc.json +0 -11
- package/dist/agent/src/agent/tools.js +0 -44
- package/eslint.config.mjs +0 -38
- package/scripts/chat_server +0 -8
- package/scripts/git_message +0 -31
- package/scripts/git_wip +0 -21
- package/scripts/pr_message +0 -18
- package/scripts/pr_review +0 -16
- package/scripts/setup_chat +0 -90
- package/scripts/shutdown_chat_server +0 -42
- package/scripts/start_chat_server +0 -24
- package/scripts/sudomcp_import +0 -23
- package/scripts/test_chat +0 -308
- package/src/agent/agent.ts +0 -624
- package/src/agent/agentUtils.ts +0 -285
- package/src/agent/compressingContextManager.ts +0 -129
- package/src/agent/context.ts +0 -265
- package/src/agent/contextWithWorkspace.ts +0 -162
- package/src/agent/dummyLLM.ts +0 -126
- package/src/agent/iAgentEventHandler.ts +0 -64
- package/src/agent/imageGenLLM.ts +0 -97
- package/src/agent/imageGenerator.ts +0 -45
- package/src/agent/iplatform.ts +0 -18
- package/src/agent/llm.ts +0 -74
- package/src/agent/mcpServerManager.ts +0 -541
- package/src/agent/nullAgentEventHandler.ts +0 -26
- package/src/agent/nullPlatform.ts +0 -13
- package/src/agent/openAI.ts +0 -123
- package/src/agent/openAILLM.ts +0 -95
- package/src/agent/openAILLMStreaming.ts +0 -609
- package/src/agent/promptProvider.ts +0 -87
- package/src/agent/repeatLLM.ts +0 -50
- package/src/agent/sudoMcpServerManager.ts +0 -361
- package/src/agent/tokenAuth.ts +0 -50
- package/src/agent/tools.ts +0 -57
- package/src/chat/client/chatClient.ts +0 -922
- package/src/chat/client/connection.test.ts +0 -241
- package/src/chat/client/connection.ts +0 -286
- package/src/chat/client/constants.ts +0 -1
- package/src/chat/client/index.ts +0 -18
- package/src/chat/client/interfaces.ts +0 -34
- package/src/chat/client/sessionClient.ts +0 -537
- package/src/chat/client/sessionFiles.ts +0 -142
- package/src/chat/client/teamManager.ts +0 -29
- package/src/chat/data/apiKeyManager.ts +0 -76
- package/src/chat/data/dataModels.ts +0 -101
- package/src/chat/data/database.ts +0 -997
- package/src/chat/data/dbMcpServerConfigs.ts +0 -59
- package/src/chat/data/dbSessionFileModels.ts +0 -113
- package/src/chat/data/dbSessionFiles.ts +0 -99
- package/src/chat/data/dbSessionMessages.ts +0 -102
- package/src/chat/data/mimeTypes.ts +0 -58
- package/src/chat/protocol/connectionMessages.ts +0 -49
- package/src/chat/protocol/constants.ts +0 -55
- package/src/chat/protocol/errors.ts +0 -16
- package/src/chat/protocol/messages.ts +0 -846
- package/src/chat/server/README.md +0 -127
- package/src/chat/server/chatContextManager.ts +0 -639
- package/src/chat/server/connectionManager.test.ts +0 -246
- package/src/chat/server/connectionManager.ts +0 -506
- package/src/chat/server/conversation.ts +0 -316
- package/src/chat/server/errorUtils.ts +0 -28
- package/src/chat/server/imageGeneratorTools.ts +0 -160
- package/src/chat/server/openAIRouterLLM.ts +0 -171
- package/src/chat/server/openSession.ts +0 -1689
- package/src/chat/server/openSessionMessageSender.ts +0 -4
- package/src/chat/server/server.ts +0 -175
- package/src/chat/server/sessionFileManager.ts +0 -422
- package/src/chat/server/sessionRegistry.test.ts +0 -137
- package/src/chat/server/sessionRegistry.ts +0 -1425
- package/src/chat/server/test-utils/mockFactories.ts +0 -422
- package/src/chat/server/tools.ts +0 -397
- package/src/chat/utils/agentSessionMap.ts +0 -76
- package/src/chat/utils/approvalManager.ts +0 -183
- package/src/chat/utils/asyncLock.ts +0 -43
- package/src/chat/utils/asyncQueue.ts +0 -62
- package/src/chat/utils/htmlToText.ts +0 -61
- package/src/chat/utils/multiAsyncQueue.ts +0 -62
- package/src/chat/utils/responseAwaiter.ts +0 -181
- package/src/chat/utils/search.ts +0 -139
- package/src/chat/utils/userResolver.ts +0 -48
- package/src/chat/utils/websocket.ts +0 -16
- package/src/index.ts +0 -0
- package/src/test/agent.test.ts +0 -590
- package/src/test/approvalManager.test.ts +0 -141
- package/src/test/chatContextManager.test.ts +0 -527
- package/src/test/clientServerConnection.test.ts +0 -205
- package/src/test/compressingContextManager.test.ts +0 -77
- package/src/test/context.test.ts +0 -150
- package/src/test/contextTestTools.ts +0 -95
- package/src/test/conversation.test.ts +0 -109
- package/src/test/db.test.ts +0 -363
- package/src/test/dbMcpServerConfigs.test.ts +0 -112
- package/src/test/dbSessionFiles.test.ts +0 -258
- package/src/test/dbSessionMessages.test.ts +0 -85
- package/src/test/dbTestTools.ts +0 -157
- package/src/test/imageLoad.test.ts +0 -15
- package/src/test/mcpServerManager.test.ts +0 -114
- package/src/test/multiAsyncQueue.test.ts +0 -183
- package/src/test/openaiStreaming.test.ts +0 -177
- package/src/test/prompt.test.ts +0 -27
- package/src/test/promptProvider.test.ts +0 -33
- package/src/test/responseAwaiter.test.ts +0 -103
- package/src/test/sudoMcpServerManager.test.ts +0 -63
- package/src/test/testTools.ts +0 -171
- package/src/test/tools.test.ts +0 -39
- package/src/tool/agentChat.ts +0 -194
- package/src/tool/agentMain.ts +0 -180
- package/src/tool/chatMain.ts +0 -594
- package/src/tool/commandPrompt.ts +0 -264
- package/src/tool/files.ts +0 -84
- package/src/tool/main.ts +0 -25
- package/src/tool/nodePlatform.ts +0 -73
- package/src/tool/options.ts +0 -144
- package/src/tool/prompt.ts +0 -101
- package/test_data/background_test_profile.json +0 -6
- package/test_data/background_test_script.json +0 -11
- package/test_data/dummyllm_script_crash.json +0 -32
- package/test_data/dummyllm_script_image_gen.json +0 -19
- package/test_data/dummyllm_script_image_gen_fe.json +0 -29
- package/test_data/dummyllm_script_invoke_image_gen_tool.json +0 -37
- package/test_data/dummyllm_script_render_tool.json +0 -29
- package/test_data/dummyllm_script_simplecalc.json +0 -28
- package/test_data/dummyllm_script_test_auto_approve.json +0 -81
- package/test_data/dummyllm_script_test_simplecalc_addition.json +0 -29
- package/test_data/frog.png +0 -0
- package/test_data/frog.png.b64 +0 -1
- package/test_data/git_message_profile.json +0 -4
- package/test_data/git_wip_system.txt +0 -5
- package/test_data/image_gen_test_profile.json +0 -5
- package/test_data/pr_message_profile.json +0 -4
- package/test_data/pr_review_profile.json +0 -4
- package/test_data/prompt_simplecalc.txt +0 -1
- package/test_data/simplecalc_profile.json +0 -4
- package/test_data/sudomcp_import_profile.json +0 -4
- package/test_data/test_script_profile.json +0 -8
- package/tsconfig.json +0 -13
- package/vitest.config.ts +0 -39
- /package/dist/agent/src/{chat/utils → agent/tools/contentExtractors}/htmlToText.js +0 -0
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
# Chat Server Design
|
|
2
|
-
|
|
3
|
-
## 3-Layer Design
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
7
|
-
│ Transport Layer │
|
|
8
|
-
│ ConnectionManager: WebSocket lifecycle, protocol routing │
|
|
9
|
-
│ - Physical connection management (1 connection = 1 client) │
|
|
10
|
-
│ - User authentication and client-to-user mapping │
|
|
11
|
-
│ - Message delivery to specific connection sets │
|
|
12
|
-
└─────────────────────────────────────────────────────────────┘
|
|
13
|
-
│
|
|
14
|
-
▼
|
|
15
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
16
|
-
│ Session Layer │
|
|
17
|
-
│ SessionRegistry: User membership and session coordination │
|
|
18
|
-
│ - User-session membership (Set<userId> per session) │
|
|
19
|
-
│ - Session instance creation and lifecycle │
|
|
20
|
-
│ - Cross-layer message routing and coordination │
|
|
21
|
-
└─────────────────────────────────────────────────────────────┘
|
|
22
|
-
│
|
|
23
|
-
▼
|
|
24
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
25
|
-
│ Business Logic Layer │
|
|
26
|
-
│ Session: Agent interaction and conversation processing │
|
|
27
|
-
│ - AI Agent and conversation management │
|
|
28
|
-
│ - MCP server integration and tool approvals │
|
|
29
|
-
│ - All communication via MessageBroker interface │
|
|
30
|
-
└─────────────────────────────────────────────────────────────┘
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Message Flow
|
|
34
|
-
|
|
35
|
-
**User sends message:**
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
Client → ConnectionManager → SessionRegistry → Session → MessageBroker → All users' clients
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
**User joins session:**
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
Client → ConnectionManager → SessionRegistry.addUserToSession() → Session.onUserJoined() → MessageBroker
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Design Sketch
|
|
48
|
-
|
|
49
|
-
1. ConnectionManager (Transport Layer)
|
|
50
|
-
|
|
51
|
-
```typescript
|
|
52
|
-
class ConnectionManager {
|
|
53
|
-
private connections: Map<connectionId, WebSocketConnection>;
|
|
54
|
-
private userClients: Map<userId, Set<connectionId>>;
|
|
55
|
-
|
|
56
|
-
// Core responsibilities:
|
|
57
|
-
handleConnection(ws: WebSocket, apiKey: string): Promise<void>;
|
|
58
|
-
routeMessage(connectionId: string, message: ClientToServer): void;
|
|
59
|
-
getUserConnections(userId: string): connectionId[];
|
|
60
|
-
broadcastToConnections(
|
|
61
|
-
connectionIds: connectionId[],
|
|
62
|
-
message: ServerToClient,
|
|
63
|
-
): void;
|
|
64
|
-
|
|
65
|
-
// Delegates session-level messages to SessionRegistry
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
2. SessionRegistry (Session Layer)
|
|
70
|
-
|
|
71
|
-
```typescript
|
|
72
|
-
class SessionRegistry {
|
|
73
|
-
private sessions: Map<sessionId, Session>;
|
|
74
|
-
private userSessions: Map<userId, Set<sessionId>>;
|
|
75
|
-
private sessionUsers: Map<sessionId, Set<userId>>;
|
|
76
|
-
|
|
77
|
-
// Core responsibilities:
|
|
78
|
-
createSession(
|
|
79
|
-
sessionId: string,
|
|
80
|
-
ownerId: string,
|
|
81
|
-
agentProfile: AgentProfile,
|
|
82
|
-
): Session;
|
|
83
|
-
addUserToSession(userId: string, sessionId: string): void;
|
|
84
|
-
removeUserFromSession(userId: string, sessionId: string): void;
|
|
85
|
-
getSessionUsers(sessionId: string): Set<userId>;
|
|
86
|
-
processSessionMessage(
|
|
87
|
-
sessionId: string,
|
|
88
|
-
userId: string,
|
|
89
|
-
message: ClientSessionMessage,
|
|
90
|
-
): void;
|
|
91
|
-
|
|
92
|
-
// Creates and manages Session instances
|
|
93
|
-
// Single source of truth for user-session membership
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
3. Session (Business Logic Layer)
|
|
98
|
-
|
|
99
|
-
```ts
|
|
100
|
-
class Session {
|
|
101
|
-
private agent: Agent;
|
|
102
|
-
private messageQueue: AsyncQueue;
|
|
103
|
-
private messageBroker: MessageBroker; // Injected interface
|
|
104
|
-
|
|
105
|
-
// Core responsibilities:
|
|
106
|
-
processMessage(userId: string, message: ClientToServer): Promise<void>;
|
|
107
|
-
onUserJoined(userId: string): void;
|
|
108
|
-
onUserLeft(userId: string): void;
|
|
109
|
-
|
|
110
|
-
// All external communication via messageBroker:
|
|
111
|
-
// - messageBroker.sendToUser()
|
|
112
|
-
// - messageBroker.queueUserMessageForAgent()
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
4. Key Interface: MessageBroker
|
|
117
|
-
|
|
118
|
-
```ts
|
|
119
|
-
interface MessageBroker {
|
|
120
|
-
sendToUser(userId: string, message: ServerToClient): void;
|
|
121
|
-
queueUserMessageForAgent(
|
|
122
|
-
sessionId: string,
|
|
123
|
-
userId: string,
|
|
124
|
-
message: ClientMessage,
|
|
125
|
-
): void;
|
|
126
|
-
}
|
|
127
|
-
```
|