agent-world 0.11.1 → 0.12.0

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 (267) hide show
  1. package/README.md +17 -7
  2. package/dist/cli/commands.d.ts +109 -0
  3. package/dist/cli/commands.js +2024 -0
  4. package/dist/cli/display.d.ts +124 -0
  5. package/dist/cli/display.js +381 -0
  6. package/dist/cli/hitl.d.ts +33 -0
  7. package/dist/cli/hitl.js +81 -0
  8. package/dist/cli/index.d.ts +2 -0
  9. package/dist/cli/stream.d.ts +41 -0
  10. package/dist/cli/stream.js +222 -0
  11. package/dist/core/activity-tracker.d.ts +16 -0
  12. package/dist/core/activity-tracker.d.ts.map +1 -0
  13. package/dist/core/activity-tracker.js +91 -0
  14. package/dist/core/activity-tracker.js.map +1 -0
  15. package/dist/core/ai-commands.d.ts +16 -0
  16. package/dist/core/ai-commands.d.ts.map +1 -0
  17. package/dist/core/ai-commands.js +24 -0
  18. package/dist/core/ai-commands.js.map +1 -0
  19. package/dist/core/ai-sdk-patch.d.ts +24 -0
  20. package/dist/core/ai-sdk-patch.d.ts.map +1 -0
  21. package/dist/core/ai-sdk-patch.js +169 -0
  22. package/dist/core/ai-sdk-patch.js.map +1 -0
  23. package/dist/core/anthropic-direct.d.ts +52 -0
  24. package/dist/core/anthropic-direct.d.ts.map +1 -0
  25. package/dist/core/anthropic-direct.js +301 -0
  26. package/dist/core/anthropic-direct.js.map +1 -0
  27. package/dist/core/approval-cache.d.ts +104 -0
  28. package/dist/core/approval-cache.d.ts.map +1 -0
  29. package/dist/core/approval-cache.js +150 -0
  30. package/dist/core/approval-cache.js.map +1 -0
  31. package/dist/core/chat-constants.d.ts +20 -0
  32. package/dist/core/chat-constants.d.ts.map +1 -0
  33. package/dist/core/chat-constants.js +22 -0
  34. package/dist/core/chat-constants.js.map +1 -0
  35. package/dist/core/create-agent-tool.d.ts +66 -0
  36. package/dist/core/create-agent-tool.d.ts.map +1 -0
  37. package/dist/core/create-agent-tool.js +212 -0
  38. package/dist/core/create-agent-tool.js.map +1 -0
  39. package/dist/core/events/approval-checker.d.ts +61 -0
  40. package/dist/core/events/approval-checker.d.ts.map +1 -0
  41. package/dist/core/events/approval-checker.js +226 -0
  42. package/dist/core/events/approval-checker.js.map +1 -0
  43. package/dist/core/events/index.d.ts +25 -0
  44. package/dist/core/events/index.d.ts.map +1 -0
  45. package/dist/core/events/index.js +30 -0
  46. package/dist/core/events/index.js.map +1 -0
  47. package/dist/core/events/memory-manager.d.ts +73 -0
  48. package/dist/core/events/memory-manager.d.ts.map +1 -0
  49. package/dist/core/events/memory-manager.js +1218 -0
  50. package/dist/core/events/memory-manager.js.map +1 -0
  51. package/dist/core/events/mention-logic.d.ts +39 -0
  52. package/dist/core/events/mention-logic.d.ts.map +1 -0
  53. package/dist/core/events/mention-logic.js +163 -0
  54. package/dist/core/events/mention-logic.js.map +1 -0
  55. package/dist/core/events/orchestrator.d.ts +69 -0
  56. package/dist/core/events/orchestrator.d.ts.map +1 -0
  57. package/dist/core/events/orchestrator.js +883 -0
  58. package/dist/core/events/orchestrator.js.map +1 -0
  59. package/dist/core/events/persistence.d.ts +41 -0
  60. package/dist/core/events/persistence.d.ts.map +1 -0
  61. package/dist/core/events/persistence.js +296 -0
  62. package/dist/core/events/persistence.js.map +1 -0
  63. package/dist/core/events/publishers.d.ts +81 -0
  64. package/dist/core/events/publishers.d.ts.map +1 -0
  65. package/dist/core/events/publishers.js +272 -0
  66. package/dist/core/events/publishers.js.map +1 -0
  67. package/dist/core/events/subscribers.d.ts +45 -0
  68. package/dist/core/events/subscribers.d.ts.map +1 -0
  69. package/dist/core/events/subscribers.js +288 -0
  70. package/dist/core/events/subscribers.js.map +1 -0
  71. package/dist/core/events/tool-bridge-logging.d.ts +28 -0
  72. package/dist/core/events/tool-bridge-logging.d.ts.map +1 -0
  73. package/dist/core/events/tool-bridge-logging.js +94 -0
  74. package/dist/core/events/tool-bridge-logging.js.map +1 -0
  75. package/dist/core/events-metadata.d.ts +72 -0
  76. package/dist/core/events-metadata.d.ts.map +1 -0
  77. package/dist/core/events-metadata.js +167 -0
  78. package/dist/core/events-metadata.js.map +1 -0
  79. package/dist/core/events.d.ts +186 -0
  80. package/dist/core/events.d.ts.map +1 -0
  81. package/dist/core/events.js +1248 -0
  82. package/dist/core/events.js.map +1 -0
  83. package/dist/core/export.d.ts +106 -0
  84. package/dist/core/export.d.ts.map +1 -0
  85. package/dist/core/export.js +705 -0
  86. package/dist/core/export.js.map +1 -0
  87. package/dist/core/file-tools.d.ts +114 -0
  88. package/dist/core/file-tools.d.ts.map +1 -0
  89. package/dist/core/file-tools.js +370 -0
  90. package/dist/core/file-tools.js.map +1 -0
  91. package/dist/core/google-direct.d.ts +58 -0
  92. package/dist/core/google-direct.d.ts.map +1 -0
  93. package/dist/core/google-direct.js +298 -0
  94. package/dist/core/google-direct.js.map +1 -0
  95. package/dist/core/hitl.d.ts +54 -0
  96. package/dist/core/hitl.d.ts.map +1 -0
  97. package/dist/core/hitl.js +153 -0
  98. package/dist/core/hitl.js.map +1 -0
  99. package/dist/core/index.d.ts +59 -0
  100. package/dist/core/index.d.ts.map +1 -0
  101. package/dist/core/index.js +70 -0
  102. package/dist/core/index.js.map +1 -0
  103. package/dist/core/llm-config.d.ts +128 -0
  104. package/dist/core/llm-config.d.ts.map +1 -0
  105. package/dist/core/llm-config.js +164 -0
  106. package/dist/core/llm-config.js.map +1 -0
  107. package/dist/core/llm-manager.d.ts +163 -0
  108. package/dist/core/llm-manager.d.ts.map +1 -0
  109. package/dist/core/llm-manager.js +669 -0
  110. package/dist/core/llm-manager.js.map +1 -0
  111. package/dist/core/load-skill-tool.d.ts +55 -0
  112. package/dist/core/load-skill-tool.d.ts.map +1 -0
  113. package/dist/core/load-skill-tool.js +468 -0
  114. package/dist/core/load-skill-tool.js.map +1 -0
  115. package/dist/core/logger.d.ts +88 -0
  116. package/dist/core/logger.d.ts.map +1 -0
  117. package/dist/core/logger.js +358 -0
  118. package/dist/core/logger.js.map +1 -0
  119. package/dist/core/managers.d.ts +131 -0
  120. package/dist/core/managers.d.ts.map +1 -0
  121. package/dist/core/managers.js +1223 -0
  122. package/dist/core/managers.js.map +1 -0
  123. package/dist/core/mcp-server-registry.d.ts +304 -0
  124. package/dist/core/mcp-server-registry.d.ts.map +1 -0
  125. package/dist/core/mcp-server-registry.js +1769 -0
  126. package/dist/core/mcp-server-registry.js.map +1 -0
  127. package/dist/core/mcp-tools.d.ts +56 -0
  128. package/dist/core/mcp-tools.d.ts.map +1 -0
  129. package/dist/core/mcp-tools.js +186 -0
  130. package/dist/core/mcp-tools.js.map +1 -0
  131. package/dist/core/message-prep.d.ts +81 -0
  132. package/dist/core/message-prep.d.ts.map +1 -0
  133. package/dist/core/message-prep.js +223 -0
  134. package/dist/core/message-prep.js.map +1 -0
  135. package/dist/core/message-processing-control.d.ts +54 -0
  136. package/dist/core/message-processing-control.d.ts.map +1 -0
  137. package/dist/core/message-processing-control.js +139 -0
  138. package/dist/core/message-processing-control.js.map +1 -0
  139. package/dist/core/openai-direct.d.ts +80 -0
  140. package/dist/core/openai-direct.d.ts.map +1 -0
  141. package/dist/core/openai-direct.js +374 -0
  142. package/dist/core/openai-direct.js.map +1 -0
  143. package/dist/core/shell-cmd-tool.d.ts +235 -0
  144. package/dist/core/shell-cmd-tool.d.ts.map +1 -0
  145. package/dist/core/shell-cmd-tool.js +1157 -0
  146. package/dist/core/shell-cmd-tool.js.map +1 -0
  147. package/dist/core/shell-process-registry.d.ts +88 -0
  148. package/dist/core/shell-process-registry.d.ts.map +1 -0
  149. package/dist/core/shell-process-registry.js +309 -0
  150. package/dist/core/shell-process-registry.js.map +1 -0
  151. package/dist/core/skill-registry.d.ts +75 -0
  152. package/dist/core/skill-registry.d.ts.map +1 -0
  153. package/dist/core/skill-registry.js +369 -0
  154. package/dist/core/skill-registry.js.map +1 -0
  155. package/dist/core/skill-script-runner.d.ts +89 -0
  156. package/dist/core/skill-script-runner.d.ts.map +1 -0
  157. package/dist/core/skill-script-runner.js +274 -0
  158. package/dist/core/skill-script-runner.js.map +1 -0
  159. package/dist/core/skill-selector.d.ts +65 -0
  160. package/dist/core/skill-selector.d.ts.map +1 -0
  161. package/dist/core/skill-selector.js +190 -0
  162. package/dist/core/skill-selector.js.map +1 -0
  163. package/dist/core/skill-settings.d.ts +20 -0
  164. package/dist/core/skill-settings.d.ts.map +1 -0
  165. package/dist/core/skill-settings.js +40 -0
  166. package/dist/core/skill-settings.js.map +1 -0
  167. package/dist/core/storage/agent-storage.d.ts +134 -0
  168. package/dist/core/storage/agent-storage.d.ts.map +1 -0
  169. package/dist/core/storage/agent-storage.js +498 -0
  170. package/dist/core/storage/agent-storage.js.map +1 -0
  171. package/dist/core/storage/eventStorage/fileEventStorage.d.ts +100 -0
  172. package/dist/core/storage/eventStorage/fileEventStorage.d.ts.map +1 -0
  173. package/dist/core/storage/eventStorage/fileEventStorage.js +494 -0
  174. package/dist/core/storage/eventStorage/fileEventStorage.js.map +1 -0
  175. package/dist/core/storage/eventStorage/index.d.ts +31 -0
  176. package/dist/core/storage/eventStorage/index.d.ts.map +1 -0
  177. package/dist/core/storage/eventStorage/index.js +31 -0
  178. package/dist/core/storage/eventStorage/index.js.map +1 -0
  179. package/dist/core/storage/eventStorage/memoryEventStorage.d.ts +87 -0
  180. package/dist/core/storage/eventStorage/memoryEventStorage.d.ts.map +1 -0
  181. package/dist/core/storage/eventStorage/memoryEventStorage.js +244 -0
  182. package/dist/core/storage/eventStorage/memoryEventStorage.js.map +1 -0
  183. package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts +45 -0
  184. package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts.map +1 -0
  185. package/dist/core/storage/eventStorage/sqliteEventStorage.js +301 -0
  186. package/dist/core/storage/eventStorage/sqliteEventStorage.js.map +1 -0
  187. package/dist/core/storage/eventStorage/types.d.ts +142 -0
  188. package/dist/core/storage/eventStorage/types.d.ts.map +1 -0
  189. package/dist/core/storage/eventStorage/types.js +43 -0
  190. package/dist/core/storage/eventStorage/types.js.map +1 -0
  191. package/dist/core/storage/eventStorage/validation.d.ts +30 -0
  192. package/dist/core/storage/eventStorage/validation.d.ts.map +1 -0
  193. package/dist/core/storage/eventStorage/validation.js +68 -0
  194. package/dist/core/storage/eventStorage/validation.js.map +1 -0
  195. package/dist/core/storage/legacy-migrations.d.ts +45 -0
  196. package/dist/core/storage/legacy-migrations.d.ts.map +1 -0
  197. package/dist/core/storage/legacy-migrations.js +295 -0
  198. package/dist/core/storage/legacy-migrations.js.map +1 -0
  199. package/dist/core/storage/memory-storage.d.ts +105 -0
  200. package/dist/core/storage/memory-storage.d.ts.map +1 -0
  201. package/dist/core/storage/memory-storage.js +415 -0
  202. package/dist/core/storage/memory-storage.js.map +1 -0
  203. package/dist/core/storage/migration-runner.d.ts +96 -0
  204. package/dist/core/storage/migration-runner.d.ts.map +1 -0
  205. package/dist/core/storage/migration-runner.js +306 -0
  206. package/dist/core/storage/migration-runner.js.map +1 -0
  207. package/dist/core/storage/queue-storage.d.ts +147 -0
  208. package/dist/core/storage/queue-storage.d.ts.map +1 -0
  209. package/dist/core/storage/queue-storage.js +290 -0
  210. package/dist/core/storage/queue-storage.js.map +1 -0
  211. package/dist/core/storage/skill-storage.d.ts +136 -0
  212. package/dist/core/storage/skill-storage.d.ts.map +1 -0
  213. package/dist/core/storage/skill-storage.js +474 -0
  214. package/dist/core/storage/skill-storage.js.map +1 -0
  215. package/dist/core/storage/sqlite-schema.d.ts +95 -0
  216. package/dist/core/storage/sqlite-schema.d.ts.map +1 -0
  217. package/dist/core/storage/sqlite-schema.js +156 -0
  218. package/dist/core/storage/sqlite-schema.js.map +1 -0
  219. package/dist/core/storage/sqlite-storage.d.ts +146 -0
  220. package/dist/core/storage/sqlite-storage.d.ts.map +1 -0
  221. package/dist/core/storage/sqlite-storage.js +709 -0
  222. package/dist/core/storage/sqlite-storage.js.map +1 -0
  223. package/dist/core/storage/storage-factory.d.ts +61 -0
  224. package/dist/core/storage/storage-factory.d.ts.map +1 -0
  225. package/dist/core/storage/storage-factory.js +794 -0
  226. package/dist/core/storage/storage-factory.js.map +1 -0
  227. package/dist/core/storage/validation.d.ts +36 -0
  228. package/dist/core/storage/validation.d.ts.map +1 -0
  229. package/dist/core/storage/validation.js +79 -0
  230. package/dist/core/storage/validation.js.map +1 -0
  231. package/dist/core/storage/world-storage.d.ts +114 -0
  232. package/dist/core/storage/world-storage.d.ts.map +1 -0
  233. package/dist/core/storage/world-storage.js +378 -0
  234. package/dist/core/storage/world-storage.js.map +1 -0
  235. package/dist/core/subscription.d.ts +43 -0
  236. package/dist/core/subscription.d.ts.map +1 -0
  237. package/dist/core/subscription.js +227 -0
  238. package/dist/core/subscription.js.map +1 -0
  239. package/dist/core/tool-utils.d.ts +80 -0
  240. package/dist/core/tool-utils.d.ts.map +1 -0
  241. package/dist/core/tool-utils.js +273 -0
  242. package/dist/core/tool-utils.js.map +1 -0
  243. package/dist/core/types.d.ts +595 -0
  244. package/dist/core/types.d.ts.map +1 -0
  245. package/dist/core/types.js +158 -0
  246. package/dist/core/types.js.map +1 -0
  247. package/dist/core/utils.d.ts +138 -0
  248. package/dist/core/utils.d.ts.map +1 -0
  249. package/dist/core/utils.js +478 -0
  250. package/dist/core/utils.js.map +1 -0
  251. package/dist/core/world-class.d.ts +43 -0
  252. package/dist/core/world-class.d.ts.map +1 -0
  253. package/dist/core/world-class.js +90 -0
  254. package/dist/core/world-class.js.map +1 -0
  255. package/dist/index.d.ts +18 -0
  256. package/dist/public/assets/agent-sprites-DJFgj-zP.png +0 -0
  257. package/dist/public/assets/border-KHK37r8y.svg +83 -0
  258. package/dist/public/assets/index-C9kPXL6G.css +1 -0
  259. package/dist/public/assets/index-DOQEHGWt.js +96 -0
  260. package/dist/public/index.html +21 -0
  261. package/dist/server/api.d.ts +2 -0
  262. package/dist/server/api.js +1124 -0
  263. package/dist/server/index.d.ts +29 -0
  264. package/dist/server/sse-handler.d.ts +62 -0
  265. package/dist/server/sse-handler.js +234 -0
  266. package/package.json +15 -3
  267. package/scripts/launch-electron.js +0 -58
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../core/export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * File Tools Module - Built-in workspace inspection tools for LLM workflows.
3
+ *
4
+ * Features:
5
+ * - Exposes built-in `read_file`, `list_files`, and `grep` tool definitions
6
+ * - Supports bounded line-based file reads with offset and limit
7
+ * - Provides deterministic directory listing with optional hidden-file support
8
+ * - Performs recursive text search with plain-text or regex matching
9
+ * - Supports optional glob-like include filtering for `grep`
10
+ *
11
+ * Implementation Notes:
12
+ * - Paths resolve relative to runtime working directory context when provided
13
+ * - Tool outputs are JSON strings for deterministic downstream parsing
14
+ * - Search depth and output volume are bounded to avoid runaway scans
15
+ * - Errors are returned as tool-friendly `Error:` strings
16
+ *
17
+ * Recent Changes:
18
+ * - 2026-02-19: Aligned file-tool path behavior with `shell_cmd`: `list_files` now defaults to trusted working directory when `path` is omitted, and `read_file` accepts `path` alias.
19
+ * - 2026-02-16: Switched `list_files` scanning to `fast-glob` with depth control and default ignore rules.
20
+ * - 2026-02-16: Added optional `recursive` mode to `list_files` for nested directory traversal in a single call.
21
+ * - 2026-02-16: `list_files` now includes hidden dot-prefixed entries by default (set `includeHidden: false` to exclude).
22
+ * - 2026-02-16: Switched `path` import to namespace style for Vitest mock compatibility.
23
+ * - 2026-02-16: Initial implementation of built-in file inspection tools.
24
+ * - 2026-02-16: Enhanced `list_files` empty-directory and not-found reporting with structured flags.
25
+ */
26
+ type ToolContext = {
27
+ workingDirectory?: string;
28
+ world?: {
29
+ variables?: string;
30
+ };
31
+ };
32
+ export declare function createReadFileToolDefinition(): {
33
+ description: string;
34
+ parameters: {
35
+ type: string;
36
+ properties: {
37
+ filePath: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ path: {
42
+ type: string;
43
+ description: string;
44
+ };
45
+ offset: {
46
+ type: string;
47
+ description: string;
48
+ };
49
+ limit: {
50
+ type: string;
51
+ description: string;
52
+ };
53
+ };
54
+ required: never[];
55
+ additionalProperties: boolean;
56
+ };
57
+ execute: (args: any, _sequenceId?: string, _parentToolCall?: string, context?: ToolContext) => Promise<string>;
58
+ };
59
+ export declare function createListFilesToolDefinition(): {
60
+ description: string;
61
+ parameters: {
62
+ type: string;
63
+ properties: {
64
+ path: {
65
+ type: string;
66
+ description: string;
67
+ };
68
+ includeHidden: {
69
+ type: string;
70
+ description: string;
71
+ };
72
+ recursive: {
73
+ type: string;
74
+ description: string;
75
+ };
76
+ };
77
+ required: never[];
78
+ additionalProperties: boolean;
79
+ };
80
+ execute: (args: any, _sequenceId?: string, _parentToolCall?: string, context?: ToolContext) => Promise<string>;
81
+ };
82
+ export declare function createGrepToolDefinition(): {
83
+ description: string;
84
+ parameters: {
85
+ type: string;
86
+ properties: {
87
+ query: {
88
+ type: string;
89
+ description: string;
90
+ };
91
+ isRegexp: {
92
+ type: string;
93
+ description: string;
94
+ };
95
+ directoryPath: {
96
+ type: string;
97
+ description: string;
98
+ };
99
+ includePattern: {
100
+ type: string;
101
+ description: string;
102
+ };
103
+ maxResults: {
104
+ type: string;
105
+ description: string;
106
+ };
107
+ };
108
+ required: string[];
109
+ additionalProperties: boolean;
110
+ };
111
+ execute: (args: any, _sequenceId?: string, _parentToolCall?: string, context?: ToolContext) => Promise<string>;
112
+ };
113
+ export {};
114
+ //# sourceMappingURL=file-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-tools.d.ts","sourceRoot":"","sources":["../../core/file-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAUH,KAAK,WAAW,GAAG;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAoLF,wBAAgB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;oBA2BlB,GAAG,gBAAgB,MAAM,oBAAoB,MAAM,YAAY,WAAW;EAmCnG;AAED,wBAAgB,6BAA6B;;;;;;;;;;;;;;;;;;;;;oBAuBnB,GAAG,gBAAgB,MAAM,oBAAoB,MAAM,YAAY,WAAW;EA4CnG;AAED,wBAAgB,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA+Bd,GAAG,gBAAgB,MAAM,oBAAoB,MAAM,YAAY,WAAW;EA0DnG"}
@@ -0,0 +1,370 @@
1
+ /**
2
+ * File Tools Module - Built-in workspace inspection tools for LLM workflows.
3
+ *
4
+ * Features:
5
+ * - Exposes built-in `read_file`, `list_files`, and `grep` tool definitions
6
+ * - Supports bounded line-based file reads with offset and limit
7
+ * - Provides deterministic directory listing with optional hidden-file support
8
+ * - Performs recursive text search with plain-text or regex matching
9
+ * - Supports optional glob-like include filtering for `grep`
10
+ *
11
+ * Implementation Notes:
12
+ * - Paths resolve relative to runtime working directory context when provided
13
+ * - Tool outputs are JSON strings for deterministic downstream parsing
14
+ * - Search depth and output volume are bounded to avoid runaway scans
15
+ * - Errors are returned as tool-friendly `Error:` strings
16
+ *
17
+ * Recent Changes:
18
+ * - 2026-02-19: Aligned file-tool path behavior with `shell_cmd`: `list_files` now defaults to trusted working directory when `path` is omitted, and `read_file` accepts `path` alias.
19
+ * - 2026-02-16: Switched `list_files` scanning to `fast-glob` with depth control and default ignore rules.
20
+ * - 2026-02-16: Added optional `recursive` mode to `list_files` for nested directory traversal in a single call.
21
+ * - 2026-02-16: `list_files` now includes hidden dot-prefixed entries by default (set `includeHidden: false` to exclude).
22
+ * - 2026-02-16: Switched `path` import to namespace style for Vitest mock compatibility.
23
+ * - 2026-02-16: Initial implementation of built-in file inspection tools.
24
+ * - 2026-02-16: Enhanced `list_files` empty-directory and not-found reporting with structured flags.
25
+ */
26
+ import { promises as fs } from 'fs';
27
+ import * as path from 'path';
28
+ import fg from 'fast-glob';
29
+ import { resolveTrustedShellWorkingDirectory, validateShellDirectoryRequest, } from './shell-cmd-tool.js';
30
+ const DEFAULT_READ_LIMIT = 200;
31
+ const MAX_READ_LIMIT = 2000;
32
+ const DEFAULT_GREP_MAX_RESULTS = 200;
33
+ const MAX_GREP_MAX_RESULTS = 2000;
34
+ const MAX_GREP_FILE_BYTES = 1024 * 1024;
35
+ function clamp(value, min, max) {
36
+ return Math.max(min, Math.min(max, value));
37
+ }
38
+ function getTrustedWorkingDirectory(context) {
39
+ return resolveTrustedShellWorkingDirectory({
40
+ workingDirectory: context?.workingDirectory,
41
+ world: context?.world,
42
+ });
43
+ }
44
+ function resolveTargetPath(inputPath, trustedWorkingDirectory) {
45
+ if (!inputPath || typeof inputPath !== 'string') {
46
+ throw new Error('Missing required path parameter');
47
+ }
48
+ const baseDirectory = trustedWorkingDirectory;
49
+ return path.resolve(baseDirectory, inputPath);
50
+ }
51
+ function ensurePathWithinTrustedDirectory(resolvedPath, trustedWorkingDirectory) {
52
+ const validation = validateShellDirectoryRequest(resolvedPath, trustedWorkingDirectory);
53
+ if (!validation.valid) {
54
+ throw new Error(validation.error);
55
+ }
56
+ }
57
+ function escapeRegExp(value) {
58
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
59
+ }
60
+ function normalizePath(value) {
61
+ return value.replace(/\\/g, '/');
62
+ }
63
+ function toUtf8String(value) {
64
+ if (typeof value === 'string') {
65
+ return value;
66
+ }
67
+ if (Buffer.isBuffer(value)) {
68
+ return value.toString('utf8');
69
+ }
70
+ if (value === null || value === undefined) {
71
+ return '';
72
+ }
73
+ return String(value);
74
+ }
75
+ function toArray(value) {
76
+ return Array.isArray(value) ? value : [];
77
+ }
78
+ function globToRegExp(pattern) {
79
+ const normalized = normalizePath(pattern.trim());
80
+ let source = '^';
81
+ for (let index = 0; index < normalized.length; index += 1) {
82
+ const current = normalized[index];
83
+ const next = normalized[index + 1];
84
+ if (current === '*' && next === '*') {
85
+ source += '.*';
86
+ index += 1;
87
+ continue;
88
+ }
89
+ if (current === '*') {
90
+ source += '[^/]*';
91
+ continue;
92
+ }
93
+ if (current === '?') {
94
+ source += '.';
95
+ continue;
96
+ }
97
+ source += escapeRegExp(current);
98
+ }
99
+ source += '$';
100
+ return new RegExp(source, 'i');
101
+ }
102
+ function shouldIncludeFile(relativePath, includePattern) {
103
+ if (!includePattern || !includePattern.trim()) {
104
+ return true;
105
+ }
106
+ const normalizedRelativePath = normalizePath(relativePath);
107
+ const patterns = includePattern
108
+ .split(',')
109
+ .map((entry) => entry.trim())
110
+ .filter(Boolean);
111
+ if (patterns.length === 0) {
112
+ return true;
113
+ }
114
+ return patterns.some((pattern) => {
115
+ if (!pattern.includes('*') && !pattern.includes('?')) {
116
+ return normalizedRelativePath.includes(normalizePath(pattern));
117
+ }
118
+ return globToRegExp(pattern).test(normalizedRelativePath);
119
+ });
120
+ }
121
+ async function collectFilesRecursively(directoryPath) {
122
+ const files = [];
123
+ const stack = [directoryPath];
124
+ while (stack.length > 0) {
125
+ const currentDirectory = stack.pop();
126
+ if (!currentDirectory)
127
+ continue;
128
+ const rawEntries = await fs.readdir(currentDirectory, { withFileTypes: true });
129
+ const entries = toArray(rawEntries);
130
+ for (const entry of entries) {
131
+ const fullPath = path.join(currentDirectory, entry.name);
132
+ if (entry.isDirectory()) {
133
+ stack.push(fullPath);
134
+ continue;
135
+ }
136
+ if (entry.isFile()) {
137
+ files.push(fullPath);
138
+ }
139
+ }
140
+ }
141
+ return files;
142
+ }
143
+ async function searchInFile(options) {
144
+ const { filePath, relativePath, matcher, matches, maxResults } = options;
145
+ const stat = await fs.stat(filePath);
146
+ if (stat.size > MAX_GREP_FILE_BYTES) {
147
+ return;
148
+ }
149
+ const rawContent = await fs.readFile(filePath, 'utf8');
150
+ const content = toUtf8String(rawContent);
151
+ if (content.includes('\u0000')) {
152
+ return;
153
+ }
154
+ const lines = content.split(/\r?\n/);
155
+ for (let index = 0; index < lines.length; index += 1) {
156
+ const lineContent = lines[index] ?? '';
157
+ matcher.lastIndex = 0;
158
+ if (!matcher.test(lineContent)) {
159
+ continue;
160
+ }
161
+ matches.push({
162
+ path: normalizePath(relativePath),
163
+ line: index + 1,
164
+ content: lineContent,
165
+ });
166
+ if (matches.length >= maxResults) {
167
+ return;
168
+ }
169
+ }
170
+ }
171
+ export function createReadFileToolDefinition() {
172
+ return {
173
+ description: 'Read a file for context gathering. Supports line-based pagination with optional offset and limit. Paths resolve within the trusted working-directory scope.',
174
+ parameters: {
175
+ type: 'object',
176
+ properties: {
177
+ filePath: {
178
+ type: 'string',
179
+ description: 'File path to read. Relative paths resolve from runtime working directory.',
180
+ },
181
+ path: {
182
+ type: 'string',
183
+ description: 'Alias for filePath.',
184
+ },
185
+ offset: {
186
+ type: 'number',
187
+ description: '1-based line number to start reading from (default: 1).',
188
+ },
189
+ limit: {
190
+ type: 'number',
191
+ description: `Maximum number of lines to return (default: ${DEFAULT_READ_LIMIT}, max: ${MAX_READ_LIMIT}).`,
192
+ },
193
+ },
194
+ required: [],
195
+ additionalProperties: false,
196
+ },
197
+ execute: async (args, _sequenceId, _parentToolCall, context) => {
198
+ try {
199
+ const trustedWorkingDirectory = getTrustedWorkingDirectory(context);
200
+ const requestedFilePath = String(args.filePath ?? args.path ?? '').trim();
201
+ if (!requestedFilePath) {
202
+ return 'Error: read_file failed - filePath is required';
203
+ }
204
+ const resolvedPath = resolveTargetPath(requestedFilePath, trustedWorkingDirectory);
205
+ ensurePathWithinTrustedDirectory(resolvedPath, trustedWorkingDirectory);
206
+ const rawContent = await fs.readFile(resolvedPath, 'utf8');
207
+ const fileContent = toUtf8String(rawContent);
208
+ const lines = fileContent.split(/\r?\n/);
209
+ const offset = clamp(Number(args.offset ?? 1), 1, Number.MAX_SAFE_INTEGER);
210
+ const limit = clamp(Number(args.limit ?? DEFAULT_READ_LIMIT), 1, MAX_READ_LIMIT);
211
+ const startIndex = offset - 1;
212
+ const endIndex = startIndex + limit;
213
+ const selectedLines = startIndex < lines.length ? lines.slice(startIndex, endIndex) : [];
214
+ return JSON.stringify({
215
+ filePath: resolvedPath,
216
+ offset,
217
+ limit,
218
+ totalLines: lines.length,
219
+ content: selectedLines.join('\n'),
220
+ }, null, 2);
221
+ }
222
+ catch (error) {
223
+ const message = error instanceof Error ? error.message : String(error);
224
+ return `Error: read_file failed - ${message}`;
225
+ }
226
+ },
227
+ };
228
+ }
229
+ export function createListFilesToolDefinition() {
230
+ return {
231
+ description: 'List files and directories available in a directory path for quick workspace exploration. Defaults to trusted working directory when path is omitted. Use recursive=true to include nested entries.',
232
+ parameters: {
233
+ type: 'object',
234
+ properties: {
235
+ path: {
236
+ type: 'string',
237
+ description: 'Optional directory path to list. Relative paths resolve from runtime working directory. Defaults to trusted working directory.',
238
+ },
239
+ includeHidden: {
240
+ type: 'boolean',
241
+ description: 'Include dot-prefixed files and folders when true (default: true).',
242
+ },
243
+ recursive: {
244
+ type: 'boolean',
245
+ description: 'When true, include nested entries recursively (default: false).',
246
+ },
247
+ },
248
+ required: [],
249
+ additionalProperties: false,
250
+ },
251
+ execute: async (args, _sequenceId, _parentToolCall, context) => {
252
+ try {
253
+ const trustedWorkingDirectory = getTrustedWorkingDirectory(context);
254
+ const requestedPath = String(args.path ?? '.');
255
+ const resolvedPath = resolveTargetPath(requestedPath, trustedWorkingDirectory);
256
+ ensurePathWithinTrustedDirectory(resolvedPath, trustedWorkingDirectory);
257
+ const includeHidden = Boolean(args.includeHidden ?? true);
258
+ const recursive = Boolean(args.recursive ?? false);
259
+ const items = await fg(['**/*'], {
260
+ cwd: resolvedPath,
261
+ deep: recursive ? Infinity : 1,
262
+ ignore: ['**/node_modules/**', '**/.git/**', '**/dist/**'],
263
+ onlyFiles: false,
264
+ markDirectories: true,
265
+ dot: includeHidden,
266
+ });
267
+ const normalizedItems = items
268
+ .map((entry) => normalizePath(entry))
269
+ .sort((left, right) => left.localeCompare(right));
270
+ return JSON.stringify({
271
+ requestedPath,
272
+ path: resolvedPath,
273
+ recursive,
274
+ total: normalizedItems.length,
275
+ entries: normalizedItems,
276
+ found: normalizedItems.length > 0,
277
+ message: normalizedItems.length > 0 ? undefined : 'No files or directories found in the requested path.',
278
+ }, null, 2);
279
+ }
280
+ catch (error) {
281
+ if (error?.code === 'ENOENT') {
282
+ return `Error: list_files failed - Directory not found: ${String(args.path)}`;
283
+ }
284
+ const message = error instanceof Error ? error.message : String(error);
285
+ return `Error: list_files failed - ${message}`;
286
+ }
287
+ },
288
+ };
289
+ }
290
+ export function createGrepToolDefinition() {
291
+ return {
292
+ description: 'Search text across files to find destinations. Supports plain text or regex queries with optional include filtering.',
293
+ parameters: {
294
+ type: 'object',
295
+ properties: {
296
+ query: {
297
+ type: 'string',
298
+ description: 'Text or regex pattern to search for.',
299
+ },
300
+ isRegexp: {
301
+ type: 'boolean',
302
+ description: 'When true, treat query as regular expression (default: false).',
303
+ },
304
+ directoryPath: {
305
+ type: 'string',
306
+ description: 'Optional root directory for recursive search (default: current working directory).',
307
+ },
308
+ includePattern: {
309
+ type: 'string',
310
+ description: 'Optional include pattern (glob-like). Supports comma-separated patterns.',
311
+ },
312
+ maxResults: {
313
+ type: 'number',
314
+ description: `Maximum matches to return (default: ${DEFAULT_GREP_MAX_RESULTS}, max: ${MAX_GREP_MAX_RESULTS}).`,
315
+ },
316
+ },
317
+ required: ['query'],
318
+ additionalProperties: false,
319
+ },
320
+ execute: async (args, _sequenceId, _parentToolCall, context) => {
321
+ try {
322
+ const query = String(args.query ?? '').trim();
323
+ if (!query) {
324
+ return 'Error: grep failed - query must be a non-empty string';
325
+ }
326
+ const trustedWorkingDirectory = getTrustedWorkingDirectory(context);
327
+ const isRegexp = Boolean(args.isRegexp ?? false);
328
+ const directoryPath = args.directoryPath
329
+ ? resolveTargetPath(String(args.directoryPath), trustedWorkingDirectory)
330
+ : trustedWorkingDirectory;
331
+ ensurePathWithinTrustedDirectory(directoryPath, trustedWorkingDirectory);
332
+ const includePattern = typeof args.includePattern === 'string' ? args.includePattern : undefined;
333
+ const maxResults = clamp(Number(args.maxResults ?? DEFAULT_GREP_MAX_RESULTS), 1, MAX_GREP_MAX_RESULTS);
334
+ const matcher = isRegexp ? new RegExp(query, 'i') : new RegExp(escapeRegExp(query), 'i');
335
+ const allFiles = await collectFilesRecursively(directoryPath);
336
+ const matches = [];
337
+ for (const filePath of allFiles) {
338
+ const relativePath = path.relative(directoryPath, filePath);
339
+ if (!shouldIncludeFile(relativePath, includePattern)) {
340
+ continue;
341
+ }
342
+ await searchInFile({
343
+ filePath,
344
+ relativePath,
345
+ matcher,
346
+ matches,
347
+ maxResults,
348
+ });
349
+ if (matches.length >= maxResults) {
350
+ break;
351
+ }
352
+ }
353
+ return JSON.stringify({
354
+ query,
355
+ isRegexp,
356
+ directoryPath,
357
+ includePattern: includePattern ?? null,
358
+ totalMatches: matches.length,
359
+ truncated: matches.length >= maxResults,
360
+ matches,
361
+ }, null, 2);
362
+ }
363
+ catch (error) {
364
+ const message = error instanceof Error ? error.message : String(error);
365
+ return `Error: grep failed - ${message}`;
366
+ }
367
+ },
368
+ };
369
+ }
370
+ //# sourceMappingURL=file-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-tools.js","sourceRoot":"","sources":["../../core/file-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Google Direct Integration Module - Pure Client (LLM Provider Refactoring Phase 4)
3
+ *
4
+ * Features:
5
+ * - Direct Google Generative AI API integration
6
+ * - Streaming and non-streaming responses returning LLMResponse
7
+ * - Function/tool calling detection (NO execution)
8
+ * - Proper error handling and retry logic
9
+ * - Browser-safe configuration injection
10
+ * - Pure client: only calls APIs and returns structured data
11
+ *
12
+ * Implementation Details:
13
+ * - Uses official @google/generative-ai package for reliable API access
14
+ * - Converts AI SDK message format to Google Generative AI format
15
+ * - Returns LLMResponse with type='text' or type='tool_calls'
16
+ * - Streaming support with chunk-by-chunk processing via onChunk callback
17
+ * - Error handling with descriptive messages
18
+ * - Configuration injection from llm-config module
19
+ * - NO event emission, NO storage, NO tool execution
20
+ *
21
+ * Recent Changes:
22
+ * - 2026-02-15: Stopped replaying historical tool call/response parts as Google `functionCall`/`functionResponse` in conversation conversion to avoid 400 errors requiring `thought_signature` on replayed calls.
23
+ * - 2026-02-13: Added transport-level AbortSignal wiring to Google SDK request options where supported.
24
+ * - 2026-02-13: Added abort-signal checks for streaming and non-streaming execution paths.
25
+ * - 2025-11-09: Phase 4 - Removed ALL tool execution logic (~200 lines)
26
+ * - Provider is now a pure client - only API calls and data transformation
27
+ * - Returns LLMResponse interface with type discriminator
28
+ * - Filters invalid function calls (empty/missing names) and logs warnings
29
+ * - Note: Google API doesn't provide usage information in response
30
+ * - 2025-11-08: Removed ALL event emission from provider
31
+ * - Streaming uses onChunk callback instead of direct SSE emission
32
+ */
33
+ import { GoogleGenerativeAI, GenerativeModel } from '@google/generative-ai';
34
+ import { World, Agent, ChatMessage, LLMResponse } from './types.js';
35
+ import { GoogleConfig } from './llm-config.js';
36
+ /**
37
+ * Google client factory
38
+ */
39
+ export declare function createGoogleClient(config: GoogleConfig): GoogleGenerativeAI;
40
+ /**
41
+ * Create Google model instance
42
+ */
43
+ export declare function createGoogleModel(client: GoogleGenerativeAI, modelName: string, tools?: any[]): GenerativeModel;
44
+ /**
45
+ * Streaming Google response handler - Pure client (no tool execution)
46
+ * Returns LLMResponse with type='text' or type='tool_calls'
47
+ */
48
+ export declare function streamGoogleResponse(client: GoogleGenerativeAI, model: string, messages: ChatMessage[], agent: Agent, mcpTools: Record<string, any>, world: World, onChunk: (content: string) => void, messageId: string, abortSignal?: AbortSignal): Promise<LLMResponse>;
49
+ /**
50
+ * Non-streaming Google response handler - Pure client (no tool execution)
51
+ * Returns LLMResponse with type='text' or type='tool_calls'
52
+ */
53
+ export declare function generateGoogleResponse(client: GoogleGenerativeAI, model: string, messages: ChatMessage[], agent: Agent, mcpTools: Record<string, any>, world: World, abortSignal?: AbortSignal): Promise<LLMResponse>;
54
+ /**
55
+ * Factory function to create Google client for agent
56
+ */
57
+ export declare function createGoogleClientForAgent(agent: Agent): GoogleGenerativeAI;
58
+ //# sourceMappingURL=google-direct.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-direct.d.ts","sourceRoot":"","sources":["../../core/google-direct.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAwB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOrE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAE3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,eAAe,CAK/G;AAsED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,WAAW,CAAC,CAuGtB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,KAAK,EAAE,KAAK,EACZ,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,WAAW,CAAC,CAiGtB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB,CAG3E"}