@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.
Files changed (152) hide show
  1. package/.env.development +6 -0
  2. package/.env.test +7 -0
  3. package/README.md +11 -0
  4. package/context_system.md +498 -0
  5. package/dist/agent/src/agent/agent.js +169 -87
  6. package/dist/agent/src/agent/agentUtils.js +24 -18
  7. package/dist/agent/src/agent/compressingContextManager.js +10 -14
  8. package/dist/agent/src/agent/context.js +101 -127
  9. package/dist/agent/src/agent/contextWithWorkspace.js +133 -0
  10. package/dist/agent/src/agent/documentSummarizer.js +126 -0
  11. package/dist/agent/src/agent/dummyLLM.js +25 -22
  12. package/dist/agent/src/agent/imageGenLLM.js +22 -25
  13. package/dist/agent/src/agent/imageGenerator.js +2 -10
  14. package/dist/agent/src/agent/llm.js +1 -1
  15. package/dist/agent/src/agent/openAILLM.js +15 -12
  16. package/dist/agent/src/agent/openAILLMStreaming.js +73 -39
  17. package/dist/agent/src/agent/repeatLLM.js +16 -7
  18. package/dist/agent/src/agent/sudoMcpServerManager.js +21 -9
  19. package/dist/agent/src/agent/tokenCounter.js +390 -0
  20. package/dist/agent/src/agent/tokenCounter.test.js +206 -0
  21. package/dist/agent/src/agent/toolSettings.js +17 -0
  22. package/dist/agent/src/agent/tools/calculatorTool.js +45 -0
  23. package/dist/agent/src/agent/tools/contentExtractors/pdfToText.js +55 -0
  24. package/dist/agent/src/agent/tools/datetimeTool.js +38 -0
  25. package/dist/agent/src/agent/tools/fileManager/fileManagerTool.js +156 -0
  26. package/dist/agent/src/agent/tools/fileManager/index.js +31 -0
  27. package/dist/agent/src/agent/tools/fileManager/memoryFileManager.js +102 -0
  28. package/dist/agent/src/{chat/data → agent/tools/fileManager}/mimeTypes.js +3 -1
  29. package/dist/agent/src/agent/tools/fileManager/prompt.js +33 -0
  30. package/dist/agent/src/{chat/data/dbSessionFileModels.js → agent/tools/fileManager/types.js} +7 -0
  31. package/dist/agent/src/agent/tools/index.js +64 -0
  32. package/dist/agent/src/agent/tools/openUrlTool.js +57 -0
  33. package/dist/agent/src/agent/tools/renderTool.js +89 -0
  34. package/dist/agent/src/agent/tools/utils.js +61 -0
  35. package/dist/agent/src/{chat/utils/search.js → agent/tools/webSearch.js} +1 -2
  36. package/dist/agent/src/agent/tools/webSearchTool.js +40 -0
  37. package/dist/agent/src/chat/client/chatClient.js +63 -2
  38. package/dist/agent/src/chat/client/connection.js +6 -1
  39. package/dist/agent/src/chat/client/index.js +4 -1
  40. package/dist/agent/src/chat/client/sessionClient.js +28 -9
  41. package/dist/agent/src/chat/constants.js +8 -0
  42. package/dist/agent/src/chat/data/dbSessionFiles.js +11 -6
  43. package/dist/agent/src/chat/data/dbSessionMessages.js +11 -0
  44. package/dist/agent/src/chat/protocol/messages.js +9 -0
  45. package/dist/agent/src/chat/server/chatContextManager.js +186 -156
  46. package/dist/agent/src/chat/server/conversation.js +3 -0
  47. package/dist/agent/src/chat/server/imageGeneratorTools.js +39 -16
  48. package/dist/agent/src/chat/server/openAIRouterLLM.js +111 -0
  49. package/dist/agent/src/chat/server/openSession.js +253 -91
  50. package/dist/agent/src/chat/server/promptRefiner.js +86 -0
  51. package/dist/agent/src/chat/server/server.js +10 -2
  52. package/dist/agent/src/chat/server/sessionFileManager.js +22 -221
  53. package/dist/agent/src/chat/server/sessionRegistry.js +152 -6
  54. package/dist/agent/src/chat/server/sessionRegistry.test.js +1 -1
  55. package/dist/agent/src/chat/server/titleGenerator.js +112 -0
  56. package/dist/agent/src/chat/server/titleGenerator.test.js +113 -0
  57. package/dist/agent/src/chat/server/tools.js +64 -253
  58. package/dist/agent/src/chat/utils/approvalManager.js +6 -3
  59. package/dist/agent/src/chat/utils/multiAsyncQueue.js +3 -0
  60. package/dist/agent/src/test/agent.test.js +16 -17
  61. package/dist/agent/src/test/chatContextManager.test.js +44 -30
  62. package/dist/agent/src/test/clientServerConnection.test.js +1 -2
  63. package/dist/agent/src/test/compressingContextManager.test.js +22 -36
  64. package/dist/agent/src/test/context.test.js +55 -17
  65. package/dist/agent/src/test/contextTestTools.js +87 -0
  66. package/dist/agent/src/test/dbMcpServerConfigs.test.js +4 -4
  67. package/dist/agent/src/test/dbSessionFiles.test.js +17 -17
  68. package/dist/agent/src/test/testTools.js +6 -1
  69. package/dist/agent/src/test/tools.test.js +27 -9
  70. package/dist/agent/src/tool/agentChat.js +5 -2
  71. package/dist/agent/src/tool/chatMain.js +56 -15
  72. package/dist/agent/src/tool/commandPrompt.js +2 -2
  73. package/dist/agent/src/tool/files.js +7 -8
  74. package/package.json +4 -1
  75. package/scripts/test_chat +195 -173
  76. package/src/agent/agent.ts +257 -137
  77. package/src/agent/agentUtils.ts +32 -20
  78. package/src/agent/compressingContextManager.ts +13 -44
  79. package/src/agent/context.ts +165 -159
  80. package/src/agent/contextWithWorkspace.ts +162 -0
  81. package/src/agent/documentSummarizer.ts +157 -0
  82. package/src/agent/dummyLLM.ts +27 -23
  83. package/src/agent/imageGenLLM.ts +28 -32
  84. package/src/agent/imageGenerator.ts +3 -18
  85. package/src/agent/llm.ts +2 -2
  86. package/src/agent/openAILLM.ts +17 -13
  87. package/src/agent/openAILLMStreaming.ts +99 -43
  88. package/src/agent/repeatLLM.ts +19 -7
  89. package/src/agent/sudoMcpServerManager.ts +41 -20
  90. package/src/agent/test_data/harrypotter.txt +6065 -0
  91. package/src/agent/tokenCounter.test.ts +243 -0
  92. package/src/agent/tokenCounter.ts +483 -0
  93. package/src/agent/toolSettings.ts +24 -0
  94. package/src/agent/tools/calculatorTool.ts +50 -0
  95. package/src/agent/tools/contentExtractors/pdfToText.ts +60 -0
  96. package/src/agent/tools/datetimeTool.ts +41 -0
  97. package/src/agent/tools/fileManager/fileManagerTool.ts +199 -0
  98. package/src/agent/tools/fileManager/index.ts +50 -0
  99. package/src/agent/tools/fileManager/memoryFileManager.ts +120 -0
  100. package/src/{chat/data → agent/tools/fileManager}/mimeTypes.ts +3 -1
  101. package/src/agent/tools/fileManager/prompt.ts +38 -0
  102. package/src/{chat/data/dbSessionFileModels.ts → agent/tools/fileManager/types.ts} +76 -0
  103. package/src/agent/tools/index.ts +49 -0
  104. package/src/agent/tools/openUrlTool.ts +62 -0
  105. package/src/agent/tools/renderTool.ts +92 -0
  106. package/src/agent/tools/utils.ts +74 -0
  107. package/src/{chat/utils/search.ts → agent/tools/webSearch.ts} +0 -1
  108. package/src/agent/tools/webSearchTool.ts +44 -0
  109. package/src/chat/client/chatClient.ts +92 -3
  110. package/src/chat/client/connection.ts +11 -1
  111. package/src/chat/client/index.ts +3 -0
  112. package/src/chat/client/sessionClient.ts +40 -11
  113. package/src/chat/client/sessionFiles.ts +1 -1
  114. package/src/chat/constants.ts +6 -0
  115. package/src/chat/data/dataModels.ts +12 -0
  116. package/src/chat/data/dbSessionFiles.ts +12 -4
  117. package/src/chat/data/dbSessionMessages.ts +34 -0
  118. package/src/chat/protocol/messages.ts +94 -14
  119. package/src/chat/server/chatContextManager.ts +255 -221
  120. package/src/chat/server/connectionManager.ts +1 -1
  121. package/src/chat/server/conversation.ts +3 -0
  122. package/src/chat/server/imageGeneratorTools.ts +62 -30
  123. package/src/chat/server/openAIRouterLLM.ts +168 -0
  124. package/src/chat/server/openSession.ts +381 -138
  125. package/src/chat/server/promptRefiner.ts +106 -0
  126. package/src/chat/server/server.ts +9 -2
  127. package/src/chat/server/sessionFileManager.ts +35 -306
  128. package/src/chat/server/sessionRegistry.test.ts +0 -1
  129. package/src/chat/server/sessionRegistry.ts +228 -4
  130. package/src/chat/server/titleGenerator.test.ts +103 -0
  131. package/src/chat/server/titleGenerator.ts +143 -0
  132. package/src/chat/server/tools.ts +92 -281
  133. package/src/chat/utils/approvalManager.ts +9 -3
  134. package/src/chat/utils/multiAsyncQueue.ts +4 -0
  135. package/src/test/agent.test.ts +25 -30
  136. package/src/test/chatContextManager.test.ts +68 -38
  137. package/src/test/clientServerConnection.test.ts +0 -2
  138. package/src/test/compressingContextManager.test.ts +29 -34
  139. package/src/test/context.test.ts +59 -15
  140. package/src/test/contextTestTools.ts +95 -0
  141. package/src/test/dbMcpServerConfigs.test.ts +4 -4
  142. package/src/test/dbSessionFiles.test.ts +16 -16
  143. package/src/test/testTools.ts +8 -3
  144. package/src/test/tools.test.ts +30 -5
  145. package/src/tool/agentChat.ts +12 -3
  146. package/src/tool/chatMain.ts +59 -18
  147. package/src/tool/commandPrompt.ts +2 -2
  148. package/src/tool/files.ts +1 -3
  149. package/dist/agent/src/agent/tools.js +0 -44
  150. package/src/agent/tools.ts +0 -57
  151. /package/dist/agent/src/{chat/utils → agent/tools/contentExtractors}/htmlToText.js +0 -0
  152. /package/src/{chat/utils → agent/tools/contentExtractors}/htmlToText.ts +0 -0
@@ -13,8 +13,9 @@ import {
13
13
  TeamParticipant,
14
14
  UserMessageData,
15
15
  SessionDescriptor,
16
+ CustomMcpServerDescriptor,
16
17
  } from "../data/dataModels";
17
- import { SessionFileDescriptor } from "../data/dbSessionFileModels";
18
+ import { SessionFileDescriptor } from "../../agent/tools/fileManager";
18
19
  import {
19
20
  AssistantMessageParam,
20
21
  MessageParam,
@@ -114,6 +115,23 @@ export type ClientControlRemoveTeamUser = {
114
115
  target_team_id: string;
115
116
  } & ClientToServerBase;
116
117
 
118
+ export type ClientControlAddCustomMcpServer = {
119
+ type: "control_add_custom_mcp_server";
120
+ server_name: string;
121
+ description: string;
122
+ url: string;
123
+ };
124
+
125
+ export type ClientControlRemoveCustomMcpServer = {
126
+ type: "control_remove_custom_mcp_server";
127
+ server_name: string;
128
+ };
129
+
130
+ export type ClientControlRefinePrompt = {
131
+ type: "control_refine_prompt";
132
+ prompt: string;
133
+ } & ClientToServerBase;
134
+
117
135
  export type ClientControlMessage =
118
136
  | ClientControlAgentProfileCreate
119
137
  | ClientControlAgentProfileDelete
@@ -123,7 +141,10 @@ export type ClientControlMessage =
123
141
  | ClientControlTeamCreate
124
142
  | ClientControlSessionDelete
125
143
  | ClientControlAddTeamUser
126
- | ClientControlRemoveTeamUser;
144
+ | ClientControlRemoveTeamUser
145
+ | ClientControlAddCustomMcpServer
146
+ | ClientControlRemoveCustomMcpServer
147
+ | ClientControlRefinePrompt;
127
148
 
128
149
  //
129
150
  // Messages for specific sessions
@@ -131,9 +152,14 @@ export type ClientControlMessage =
131
152
 
132
153
  export type ClientUserMessage = {
133
154
  type: "msg";
134
- race_mode?: boolean;
155
+ race_mode?: string;
135
156
  } & UserMessageData;
136
157
 
158
+ /// Signal any currently running agent to stop
159
+ export type ClientStop = {
160
+ type: "stop";
161
+ };
162
+
137
163
  export type ClientSetWorkspace = {
138
164
  type: "set_workspace";
139
165
  } & UserMessageData;
@@ -217,12 +243,6 @@ export type ClientSetAgentPaused = {
217
243
  paused: boolean;
218
244
  };
219
245
 
220
- export type ClientAddMcpServerFromUrl = {
221
- type: "add_mcp_server_from_url";
222
- server_name: string;
223
- url: string;
224
- };
225
-
226
246
  export type ClientGetMcpResource = {
227
247
  type: "get_mcp_resource";
228
248
  client_message_id: string;
@@ -248,6 +268,7 @@ export type ClientRaceModeResult = {
248
268
 
249
269
  export type ClientSessionMessageData =
250
270
  | ClientUserMessage
271
+ | ClientStop
251
272
  | ClientSetWorkspace
252
273
  | ClientAddMcpServer
253
274
  | ClientRemoveMcpServer
@@ -263,10 +284,10 @@ export type ClientSessionMessageData =
263
284
  | ClientSetSystemPrompt
264
285
  | ClientSetModel
265
286
  | ClientSetAgentPaused
266
- | ClientAddMcpServerFromUrl
267
287
  | ClientGetMcpResource
268
288
  | ClientSetMcpServerConfig
269
- | ClientShareSession;
289
+ | ClientShareSession
290
+ | ClientRaceModeResult;
270
291
 
271
292
  export type ClientSessionMessage = ClientSessionMessageBase &
272
293
  ClientSessionMessageData;
@@ -291,6 +312,9 @@ export function isClientControlMessage(
291
312
  case "control_team_create":
292
313
  case "control_add_team_user":
293
314
  case "control_remove_team_user":
315
+ case "control_add_custom_mcp_server":
316
+ case "control_remove_custom_mcp_server":
317
+ case "control_refine_prompt":
294
318
  return true;
295
319
  default: {
296
320
  const _: never = msg;
@@ -367,6 +391,7 @@ export type ServerUserMessage = {
367
391
  user_uuid: string;
368
392
  user_nickname: string;
369
393
  message_idx: number;
394
+ race_mode?: string;
370
395
  } & UserMessageData &
371
396
  ServerSessionMessage;
372
397
 
@@ -380,13 +405,14 @@ export type ServerAgentMessageChunk = {
380
405
  type: "agent_msg_chunk";
381
406
  message: string;
382
407
  message_idx: number;
383
- alternative?: string;
384
408
  end: boolean;
409
+ alt?: string;
385
410
  } & ServerSessionMessage;
386
411
 
387
412
  export type ServerReasoningChunk = {
388
413
  type: "agent_reasoning_chunk";
389
414
  reasoning: string;
415
+ alt?: string;
390
416
  } & ServerSessionMessage;
391
417
 
392
418
  //
@@ -409,18 +435,21 @@ export type ServerUserLeft = {
409
435
  export type ServerToolCall = {
410
436
  type: "tool_call";
411
437
  tool_call: MessageToolCall;
438
+ alt?: string;
412
439
  } & ServerSessionMessage;
413
440
 
414
441
  export type ServerToolCallApprovalResult = {
415
442
  type: "tool_call_approval_result";
416
443
  id: string;
417
444
  result: boolean;
445
+ alt?: string;
418
446
  } & ServerSessionMessage;
419
447
 
420
448
  export type ServerToolCallResult = {
421
449
  type: "tool_call_result";
422
450
  message_idx: number;
423
451
  result: ToolMessageParam;
452
+ alt?: string;
424
453
  } & ServerSessionMessage;
425
454
 
426
455
  export type ServerToolAutoApprovalSet = {
@@ -557,6 +586,12 @@ export type ServerMcpResource = {
557
586
  contents: ResourceContent[];
558
587
  } & ServerSessionMessage;
559
588
 
589
+ export type ServerContextUsage = {
590
+ type: "context_usage";
591
+ used_tokens: number;
592
+ max_tokens: number;
593
+ } & ServerSessionMessage;
594
+
560
595
  export type ServerToClientStateUpdate =
561
596
  | ServerMcpServerAdded
562
597
  | ServerMcpServerRemoved
@@ -568,7 +603,8 @@ export type ServerToClientStateUpdate =
568
603
  | ServerUserAdded
569
604
  | ServerUserRemoved
570
605
  | ServerSessionShared
571
- | ServerMcpResource;
606
+ | ServerMcpResource
607
+ | ServerContextUsage;
572
608
 
573
609
  //
574
610
  // actions
@@ -584,6 +620,7 @@ export type ServerApproveToolCall = {
584
620
  type: "approve_tool_call";
585
621
  id: string;
586
622
  tool_call: MessageToolCall;
623
+ alt?: string;
587
624
  } & ServerSessionMessage;
588
625
 
589
626
  export type ServerRenderHTML = {
@@ -591,10 +628,26 @@ export type ServerRenderHTML = {
591
628
  html: string;
592
629
  } & ServerSessionMessage;
593
630
 
631
+ export type ServerEditorUpdate = {
632
+ type: "editor_update";
633
+ operation: "replace" | "append" | "prepend" | "replace_selection";
634
+ content: string;
635
+ format: "markdown";
636
+ selectionId?: string;
637
+ } & ServerSessionMessage;
638
+
639
+ export type ServerRaceModeGetResult = {
640
+ type: "race_mode_get_result";
641
+ message_id: string;
642
+ alts: string[];
643
+ } & ServerSessionMessage;
644
+
594
645
  export type ServerToClientActions =
595
646
  | ServerAuthenticate
596
647
  | ServerApproveToolCall
597
- | ServerRenderHTML;
648
+ | ServerRenderHTML
649
+ | ServerEditorUpdate
650
+ | ServerRaceModeGetResult;
598
651
 
599
652
  //
600
653
  // Control-level messages (session management)
@@ -641,6 +694,7 @@ export type ServerControlSessionList = {
641
694
  user_sessions: Array<SessionDescriptor>;
642
695
  user_agents: Array<SavedAgentProfile>;
643
696
  team_sessions: Array<TeamInfo>;
697
+ custom_mcp_servers: Record<string, CustomMcpServerDescriptor>;
644
698
  } & ControlResponseMessage;
645
699
 
646
700
  /**
@@ -662,6 +716,23 @@ export type ServerControlSessionDeleted = {
662
716
  team_uuid?: string;
663
717
  } & ControlResponseMessage;
664
718
 
719
+ export type ServerControlCustomMcpServerAdded = {
720
+ type: "control_custom_mcp_server_added";
721
+ server_name: string;
722
+ url: string;
723
+ };
724
+
725
+ export type ServerControlCustomMcpServerRemoved = {
726
+ type: "control_custom_mcp_server_removed";
727
+ server_name: string;
728
+ };
729
+
730
+ export type ServerControlRefinePromptResult = {
731
+ type: "control_refine_prompt_result";
732
+ refined_prompt: string;
733
+ client_message_id: string;
734
+ };
735
+
665
736
  /**
666
737
  * Connection-level errors
667
738
  * Error in response to an invalid request from the client
@@ -681,6 +752,9 @@ export type ServerControlMessage =
681
752
  | ServerControlAgentProfileDeleted
682
753
  | ServerControlTeamCreated
683
754
  | ServerControlTeamMembersUpdated
755
+ | ServerControlCustomMcpServerAdded
756
+ | ServerControlCustomMcpServerRemoved
757
+ | ServerControlRefinePromptResult
684
758
  | ServerControlError;
685
759
 
686
760
  export type ServerSessionScopedMessage =
@@ -713,6 +787,9 @@ export function isServerControlMessage(
713
787
  case "control_session_deleted":
714
788
  case "control_team_created":
715
789
  case "control_team_members_updated":
790
+ case "control_custom_mcp_server_added":
791
+ case "control_custom_mcp_server_removed":
792
+ case "control_refine_prompt_result":
716
793
  case "control_error":
717
794
  return true;
718
795
  default: {
@@ -776,8 +853,11 @@ export function isServerSessionScopedMessage(
776
853
  case "authenticate":
777
854
  case "approve_tool_call":
778
855
  case "render_html":
856
+ case "editor_update":
857
+ case "race_mode_get_result":
779
858
  case "session_shared":
780
859
  case "mcp_resource":
860
+ case "context_usage":
781
861
  return true;
782
862
 
783
863
  default: {