indusagi-coding-agent 0.1.23 → 0.1.24

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 (213) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +2 -0
  3. package/dist/cli/args.d.ts +117 -1
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +221 -52
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/config-selector.d.ts +58 -2
  8. package/dist/cli/config-selector.d.ts.map +1 -1
  9. package/dist/cli/config-selector.js +130 -12
  10. package/dist/cli/config-selector.js.map +1 -1
  11. package/dist/cli/file-processor.d.ts +70 -2
  12. package/dist/cli/file-processor.d.ts.map +1 -1
  13. package/dist/cli/file-processor.js +240 -15
  14. package/dist/cli/file-processor.js.map +1 -1
  15. package/dist/cli/list-models.d.ts +63 -3
  16. package/dist/cli/list-models.d.ts.map +1 -1
  17. package/dist/cli/list-models.js +202 -27
  18. package/dist/cli/list-models.js.map +1 -1
  19. package/dist/cli/login-handler.d.ts +82 -8
  20. package/dist/cli/login-handler.d.ts.map +1 -1
  21. package/dist/cli/login-handler.js +410 -77
  22. package/dist/cli/login-handler.js.map +1 -1
  23. package/dist/cli/session-picker.d.ts +74 -2
  24. package/dist/cli/session-picker.d.ts.map +1 -1
  25. package/dist/cli/session-picker.js +236 -12
  26. package/dist/cli/session-picker.js.map +1 -1
  27. package/dist/core/agent-session.d.ts +214 -9
  28. package/dist/core/agent-session.d.ts.map +1 -1
  29. package/dist/core/agent-session.js +214 -9
  30. package/dist/core/agent-session.js.map +1 -1
  31. package/dist/core/bash-executor.d.ts +302 -12
  32. package/dist/core/bash-executor.d.ts.map +1 -1
  33. package/dist/core/bash-executor.js +302 -12
  34. package/dist/core/bash-executor.js.map +1 -1
  35. package/dist/core/diagnostics.d.ts +191 -0
  36. package/dist/core/diagnostics.d.ts.map +1 -1
  37. package/dist/core/diagnostics.js +142 -0
  38. package/dist/core/diagnostics.js.map +1 -1
  39. package/dist/core/event-bus.d.ts +146 -0
  40. package/dist/core/event-bus.d.ts.map +1 -1
  41. package/dist/core/event-bus.js +93 -0
  42. package/dist/core/event-bus.js.map +1 -1
  43. package/dist/core/export-html/ansi-to-html.d.ts +4 -0
  44. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  45. package/dist/core/export-html/ansi-to-html.js +4 -0
  46. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  47. package/dist/core/export-html/index.d.ts +128 -0
  48. package/dist/core/export-html/index.d.ts.map +1 -1
  49. package/dist/core/export-html/index.js +128 -0
  50. package/dist/core/export-html/index.js.map +1 -1
  51. package/dist/core/export-html/tool-renderer.d.ts +4 -0
  52. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  53. package/dist/core/export-html/tool-renderer.js +4 -0
  54. package/dist/core/export-html/tool-renderer.js.map +1 -1
  55. package/dist/core/keybindings.d.ts +142 -0
  56. package/dist/core/keybindings.d.ts.map +1 -1
  57. package/dist/core/keybindings.js +142 -0
  58. package/dist/core/keybindings.js.map +1 -1
  59. package/dist/core/model-registry.d.ts +98 -1
  60. package/dist/core/model-registry.d.ts.map +1 -1
  61. package/dist/core/model-registry.js +98 -1
  62. package/dist/core/model-registry.js.map +1 -1
  63. package/dist/core/model-resolver.d.ts +99 -1
  64. package/dist/core/model-resolver.d.ts.map +1 -1
  65. package/dist/core/model-resolver.js +99 -1
  66. package/dist/core/model-resolver.js.map +1 -1
  67. package/dist/core/prompt-templates.js.map +1 -1
  68. package/dist/core/session-manager.d.ts +127 -0
  69. package/dist/core/session-manager.d.ts.map +1 -1
  70. package/dist/core/session-manager.js +125 -0
  71. package/dist/core/session-manager.js.map +1 -1
  72. package/dist/core/skills.js.map +1 -1
  73. package/dist/core/subagents.js.map +1 -1
  74. package/dist/core/tools/bash.d.ts +391 -11
  75. package/dist/core/tools/bash.d.ts.map +1 -1
  76. package/dist/core/tools/bash.js +269 -2
  77. package/dist/core/tools/bash.js.map +1 -1
  78. package/dist/core/tools/edit.d.ts +284 -6
  79. package/dist/core/tools/edit.d.ts.map +1 -1
  80. package/dist/core/tools/edit.js +238 -0
  81. package/dist/core/tools/edit.js.map +1 -1
  82. package/dist/core/tools/find.d.ts +169 -5
  83. package/dist/core/tools/find.d.ts.map +1 -1
  84. package/dist/core/tools/find.js +136 -0
  85. package/dist/core/tools/find.js.map +1 -1
  86. package/dist/core/tools/grep.d.ts +285 -5
  87. package/dist/core/tools/grep.d.ts.map +1 -1
  88. package/dist/core/tools/grep.js +247 -0
  89. package/dist/core/tools/grep.js.map +1 -1
  90. package/dist/core/tools/ls.d.ts +6 -0
  91. package/dist/core/tools/ls.d.ts.map +1 -1
  92. package/dist/core/tools/ls.js +6 -0
  93. package/dist/core/tools/ls.js.map +1 -1
  94. package/dist/core/tools/read.d.ts +308 -7
  95. package/dist/core/tools/read.d.ts.map +1 -1
  96. package/dist/core/tools/read.js +231 -0
  97. package/dist/core/tools/read.js.map +1 -1
  98. package/dist/core/tools/webfetch.d.ts +118 -3
  99. package/dist/core/tools/webfetch.d.ts.map +1 -1
  100. package/dist/core/tools/webfetch.js +118 -3
  101. package/dist/core/tools/webfetch.js.map +1 -1
  102. package/dist/core/tools/websearch.d.ts +130 -3
  103. package/dist/core/tools/websearch.d.ts.map +1 -1
  104. package/dist/core/tools/websearch.js +130 -3
  105. package/dist/core/tools/websearch.js.map +1 -1
  106. package/dist/core/tools/write.d.ts +251 -5
  107. package/dist/core/tools/write.d.ts.map +1 -1
  108. package/dist/core/tools/write.js +210 -0
  109. package/dist/core/tools/write.js.map +1 -1
  110. package/dist/modes/interactive/components/assistant-message.d.ts +164 -1
  111. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  112. package/dist/modes/interactive/components/assistant-message.js +164 -1
  113. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  114. package/dist/modes/interactive/components/bash-execution.d.ts +297 -1
  115. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  116. package/dist/modes/interactive/components/bash-execution.js +297 -1
  117. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  118. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  119. package/dist/modes/interactive/components/tool-execution.js +251 -1
  120. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  121. package/dist/modes/interactive/components/user-message.d.ts +186 -1
  122. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  123. package/dist/modes/interactive/components/user-message.js +186 -1
  124. package/dist/modes/interactive/components/user-message.js.map +1 -1
  125. package/dist/modes/interactive/interactive-mode.d.ts +1567 -13
  126. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  127. package/dist/modes/interactive/interactive-mode.js +1567 -13
  128. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  129. package/dist/modes/interactive/theme/theme.d.ts +422 -0
  130. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  131. package/dist/modes/interactive/theme/theme.js +422 -0
  132. package/dist/modes/interactive/theme/theme.js.map +1 -1
  133. package/dist/modes/print-mode.d.ts +538 -5
  134. package/dist/modes/print-mode.d.ts.map +1 -1
  135. package/dist/modes/print-mode.js +538 -5
  136. package/dist/modes/print-mode.js.map +1 -1
  137. package/dist/modes/rpc/rpc-client.d.ts +921 -8
  138. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  139. package/dist/modes/rpc/rpc-client.js +921 -8
  140. package/dist/modes/rpc/rpc-client.js.map +1 -1
  141. package/dist/modes/rpc/rpc-mode.d.ts +802 -9
  142. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  143. package/dist/modes/rpc/rpc-mode.js +802 -9
  144. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  145. package/dist/modes/rpc/rpc-types.d.ts +356 -3
  146. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  147. package/dist/modes/rpc/rpc-types.js +356 -3
  148. package/dist/modes/rpc/rpc-types.js.map +1 -1
  149. package/dist/modes/shared.d.ts +386 -0
  150. package/dist/modes/shared.d.ts.map +1 -0
  151. package/dist/modes/shared.js +543 -0
  152. package/dist/modes/shared.js.map +1 -0
  153. package/dist/utils/array.d.ts +389 -0
  154. package/dist/utils/array.d.ts.map +1 -0
  155. package/dist/utils/array.js +585 -0
  156. package/dist/utils/array.js.map +1 -0
  157. package/dist/utils/color-formatter.d.ts +318 -0
  158. package/dist/utils/color-formatter.d.ts.map +1 -0
  159. package/dist/utils/color-formatter.js +442 -0
  160. package/dist/utils/color-formatter.js.map +1 -0
  161. package/dist/utils/data-transformer.d.ts +326 -0
  162. package/dist/utils/data-transformer.d.ts.map +1 -0
  163. package/dist/utils/data-transformer.js +512 -0
  164. package/dist/utils/data-transformer.js.map +1 -0
  165. package/dist/utils/date-formatter.d.ts +281 -0
  166. package/dist/utils/date-formatter.d.ts.map +1 -0
  167. package/dist/utils/date-formatter.js +503 -0
  168. package/dist/utils/date-formatter.js.map +1 -0
  169. package/dist/utils/error-handler.d.ts +541 -0
  170. package/dist/utils/error-handler.d.ts.map +1 -0
  171. package/dist/utils/error-handler.js +726 -0
  172. package/dist/utils/error-handler.js.map +1 -0
  173. package/dist/utils/file-operations.d.ts +297 -0
  174. package/dist/utils/file-operations.d.ts.map +1 -0
  175. package/dist/utils/file-operations.js +505 -0
  176. package/dist/utils/file-operations.js.map +1 -0
  177. package/dist/utils/frontmatter.d.ts +268 -6
  178. package/dist/utils/frontmatter.d.ts.map +1 -1
  179. package/dist/utils/frontmatter.js +500 -21
  180. package/dist/utils/frontmatter.js.map +1 -1
  181. package/dist/utils/json-formatter.d.ts +259 -0
  182. package/dist/utils/json-formatter.d.ts.map +1 -0
  183. package/dist/utils/json-formatter.js +517 -0
  184. package/dist/utils/json-formatter.js.map +1 -0
  185. package/dist/utils/logger.d.ts +176 -0
  186. package/dist/utils/logger.d.ts.map +1 -0
  187. package/dist/utils/logger.js +346 -0
  188. package/dist/utils/logger.js.map +1 -0
  189. package/dist/utils/markdown-formatter.d.ts +211 -0
  190. package/dist/utils/markdown-formatter.d.ts.map +1 -0
  191. package/dist/utils/markdown-formatter.js +482 -0
  192. package/dist/utils/markdown-formatter.js.map +1 -0
  193. package/dist/utils/path-validator.d.ts +603 -0
  194. package/dist/utils/path-validator.d.ts.map +1 -0
  195. package/dist/utils/path-validator.js +870 -0
  196. package/dist/utils/path-validator.js.map +1 -0
  197. package/dist/utils/string-formatter.d.ts +609 -0
  198. package/dist/utils/string-formatter.d.ts.map +1 -0
  199. package/dist/utils/string-formatter.js +806 -0
  200. package/dist/utils/string-formatter.js.map +1 -0
  201. package/dist/utils/type-guards.d.ts +629 -0
  202. package/dist/utils/type-guards.d.ts.map +1 -0
  203. package/dist/utils/type-guards.js +662 -0
  204. package/dist/utils/type-guards.js.map +1 -0
  205. package/docs/COMPLETE-GUIDE.md +300 -0
  206. package/docs/MODES-ARCHITECTURE.md +565 -0
  207. package/docs/PRINT-MODE-GUIDE.md +456 -0
  208. package/docs/RPC-GUIDE.md +705 -0
  209. package/docs/UTILS-IMPLEMENTATION-SUMMARY.md +647 -0
  210. package/docs/UTILS-MODULE-OVERVIEW.md +1480 -0
  211. package/docs/UTILS-QA-CHECKLIST.md +1061 -0
  212. package/docs/UTILS-USAGE-GUIDE.md +1419 -0
  213. package/package.json +1 -1
@@ -1,8 +1,123 @@
1
1
  /**
2
- * Web Fetch Tool
2
+ * Web Fetch Tool - Retrieve and transform content from URLs
3
3
  *
4
- * Fetches content from a specified URL.
5
- * Supports text, markdown, and HTML format options.
4
+ * @module core/tools/webfetch
5
+ * @description
6
+ * Implements the web fetch tool for the agent. Retrieves content from URLs with:
7
+ * - Multiple format options (text, markdown, HTML)
8
+ * - HTML to markdown conversion
9
+ * - Response size limiting
10
+ * - Timeout enforcement
11
+ * - Custom fetch implementations
12
+ * - Error handling and validation
13
+ *
14
+ * ## Tool Interface
15
+ *
16
+ * **Input Parameters:**
17
+ * - `url` (required): URL to fetch (must start with http:// or https://)
18
+ * - `format` (optional): Output format (text, markdown, html; default: markdown)
19
+ * - `timeout` (optional): Timeout in seconds (max 120; default: 30)
20
+ *
21
+ * **Output:**
22
+ * - Content in requested format
23
+ * - Details: Original URL, format, content type, bytes fetched
24
+ * - Error if URL invalid, fetch fails, or timeout
25
+ *
26
+ * **Error Behavior:**
27
+ * - Invalid URL: Tool error "Invalid URL"
28
+ * - Network error: Tool error "Failed to fetch URL"
29
+ * - Timeout: Tool error "Request timed out after N seconds"
30
+ * - Large response: Tool error "Response too large (N > 5MB)"
31
+ *
32
+ * ## Usage in Agent
33
+ *
34
+ * The agent uses this tool to:
35
+ * - Research topics from web pages
36
+ * - Fetch API documentation
37
+ * - Get current information (news, status pages)
38
+ * - Read blog posts and articles
39
+ * - Access public datasets and APIs
40
+ *
41
+ * ## Features
42
+ *
43
+ * **Format Options:**
44
+ * - **text**: Plain text (HTML stripped)
45
+ * - **markdown**: Readable markdown (converted from HTML)
46
+ * - **html**: Raw HTML (unmodified)
47
+ *
48
+ * **HTML to Markdown:**
49
+ * - Preserves heading structure
50
+ * - Converts lists and tables
51
+ * - Preserves links with markdown syntax
52
+ * - Removes scripts and styles
53
+ * - Cleans up extra whitespace
54
+ *
55
+ * **Response Safety:**
56
+ * - Size limited to 5MB by default
57
+ * - Timeout enforcement (max 120s)
58
+ * - Character encoding detection
59
+ * - Error handling for network issues
60
+ *
61
+ * **User-Agent:**
62
+ * - Standard browser user-agent
63
+ * - Identifies as coding agent
64
+ * - Follows robots.txt appropriately
65
+ *
66
+ * ## Security
67
+ *
68
+ * **URL validation:**
69
+ * - Only http and https allowed
70
+ * - No file:// or data: URLs
71
+ * - Localhost URLs allowed (for local services)
72
+ *
73
+ * **Response safety:**
74
+ * - Size limited (prevents OOM)
75
+ * - Timeout prevents hangs
76
+ * - Character encoding validated
77
+ * - JavaScript/scripts not executed
78
+ *
79
+ * **Data safety:**
80
+ * - No cookies sent by default
81
+ * - No authentication (caller provides if needed)
82
+ * - HTTPS preferred over HTTP
83
+ *
84
+ * ## Examples
85
+ *
86
+ * ### Fetch webpage as markdown
87
+ * ```typescript
88
+ * // Agent calls: webfetch {
89
+ * // url: "https://example.com",
90
+ * // format: "markdown"
91
+ * // }
92
+ * // Returns: Page content as markdown
93
+ * ```
94
+ *
95
+ * ### Fetch with timeout
96
+ * ```typescript
97
+ * // Agent calls: webfetch {
98
+ * // url: "https://api.example.com/data",
99
+ * // timeout: 10
100
+ * // }
101
+ * // Returns: Content or error after 10 seconds
102
+ * ```
103
+ *
104
+ * ### Fetch raw HTML
105
+ * ```typescript
106
+ * // Agent calls: webfetch {
107
+ * // url: "https://example.com",
108
+ * // format: "html"
109
+ * // }
110
+ * // Returns: Raw HTML content
111
+ * ```
112
+ *
113
+ * ## Attribution
114
+ *
115
+ * Based on: indusagi-agent webfetch tool
116
+ * Modifications:
117
+ * - Added HTML to markdown conversion
118
+ * - Added format options
119
+ * - Added custom operations interface
120
+ * - Improved error handling and messages
6
121
  */
7
122
  import type { AgentTool } from "indusagi/agent";
8
123
  declare const webFetchSchema: import("@sinclair/typebox").TObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"webfetch.d.ts","sourceRoot":"","sources":["../../../src/core/tools/webfetch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQhD,QAAA,MAAM,cAAc;;;;EAclB,CAAC;AAEH,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IACnC,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC;QAClG,WAAW,EAAE,WAAW,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH;;OAEG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C;;OAEG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAgKD,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC,OAAO,cAAc,CAAC,CAgJlG;AAED,6BAA6B;AAC7B,eAAO,MAAM,YAAY;;;;QAAuB,CAAC"}
1
+ {"version":3,"file":"webfetch.d.ts","sourceRoot":"","sources":["../../../src/core/tools/webfetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwHG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQhD,QAAA,MAAM,cAAc;;;;EAclB,CAAC;AAEH,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IACnC,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC;QAClG,WAAW,EAAE,WAAW,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH;;OAEG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C;;OAEG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAgKD,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC,OAAO,cAAc,CAAC,CAgJlG;AAED,6BAA6B;AAC7B,eAAO,MAAM,YAAY;;;;QAAuB,CAAC"}
@@ -1,8 +1,123 @@
1
1
  /**
2
- * Web Fetch Tool
2
+ * Web Fetch Tool - Retrieve and transform content from URLs
3
3
  *
4
- * Fetches content from a specified URL.
5
- * Supports text, markdown, and HTML format options.
4
+ * @module core/tools/webfetch
5
+ * @description
6
+ * Implements the web fetch tool for the agent. Retrieves content from URLs with:
7
+ * - Multiple format options (text, markdown, HTML)
8
+ * - HTML to markdown conversion
9
+ * - Response size limiting
10
+ * - Timeout enforcement
11
+ * - Custom fetch implementations
12
+ * - Error handling and validation
13
+ *
14
+ * ## Tool Interface
15
+ *
16
+ * **Input Parameters:**
17
+ * - `url` (required): URL to fetch (must start with http:// or https://)
18
+ * - `format` (optional): Output format (text, markdown, html; default: markdown)
19
+ * - `timeout` (optional): Timeout in seconds (max 120; default: 30)
20
+ *
21
+ * **Output:**
22
+ * - Content in requested format
23
+ * - Details: Original URL, format, content type, bytes fetched
24
+ * - Error if URL invalid, fetch fails, or timeout
25
+ *
26
+ * **Error Behavior:**
27
+ * - Invalid URL: Tool error "Invalid URL"
28
+ * - Network error: Tool error "Failed to fetch URL"
29
+ * - Timeout: Tool error "Request timed out after N seconds"
30
+ * - Large response: Tool error "Response too large (N > 5MB)"
31
+ *
32
+ * ## Usage in Agent
33
+ *
34
+ * The agent uses this tool to:
35
+ * - Research topics from web pages
36
+ * - Fetch API documentation
37
+ * - Get current information (news, status pages)
38
+ * - Read blog posts and articles
39
+ * - Access public datasets and APIs
40
+ *
41
+ * ## Features
42
+ *
43
+ * **Format Options:**
44
+ * - **text**: Plain text (HTML stripped)
45
+ * - **markdown**: Readable markdown (converted from HTML)
46
+ * - **html**: Raw HTML (unmodified)
47
+ *
48
+ * **HTML to Markdown:**
49
+ * - Preserves heading structure
50
+ * - Converts lists and tables
51
+ * - Preserves links with markdown syntax
52
+ * - Removes scripts and styles
53
+ * - Cleans up extra whitespace
54
+ *
55
+ * **Response Safety:**
56
+ * - Size limited to 5MB by default
57
+ * - Timeout enforcement (max 120s)
58
+ * - Character encoding detection
59
+ * - Error handling for network issues
60
+ *
61
+ * **User-Agent:**
62
+ * - Standard browser user-agent
63
+ * - Identifies as coding agent
64
+ * - Follows robots.txt appropriately
65
+ *
66
+ * ## Security
67
+ *
68
+ * **URL validation:**
69
+ * - Only http and https allowed
70
+ * - No file:// or data: URLs
71
+ * - Localhost URLs allowed (for local services)
72
+ *
73
+ * **Response safety:**
74
+ * - Size limited (prevents OOM)
75
+ * - Timeout prevents hangs
76
+ * - Character encoding validated
77
+ * - JavaScript/scripts not executed
78
+ *
79
+ * **Data safety:**
80
+ * - No cookies sent by default
81
+ * - No authentication (caller provides if needed)
82
+ * - HTTPS preferred over HTTP
83
+ *
84
+ * ## Examples
85
+ *
86
+ * ### Fetch webpage as markdown
87
+ * ```typescript
88
+ * // Agent calls: webfetch {
89
+ * // url: "https://example.com",
90
+ * // format: "markdown"
91
+ * // }
92
+ * // Returns: Page content as markdown
93
+ * ```
94
+ *
95
+ * ### Fetch with timeout
96
+ * ```typescript
97
+ * // Agent calls: webfetch {
98
+ * // url: "https://api.example.com/data",
99
+ * // timeout: 10
100
+ * // }
101
+ * // Returns: Content or error after 10 seconds
102
+ * ```
103
+ *
104
+ * ### Fetch raw HTML
105
+ * ```typescript
106
+ * // Agent calls: webfetch {
107
+ * // url: "https://example.com",
108
+ * // format: "html"
109
+ * // }
110
+ * // Returns: Raw HTML content
111
+ * ```
112
+ *
113
+ * ## Attribution
114
+ *
115
+ * Based on: indusagi-agent webfetch tool
116
+ * Modifications:
117
+ * - Added HTML to markdown conversion
118
+ * - Added format options
119
+ * - Added custom operations interface
120
+ * - Improved error handling and messages
6
121
  */
7
122
  import { Type } from "@sinclair/typebox";
8
123
  const MAX_RESPONSE_SIZE = 5 * 1024 * 1024; // 5MB
@@ -1 +1 @@
1
- {"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../../src/core/tools/webfetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webfetch.js","sourceRoot":"","sources":["../../../src/core/tools/webfetch.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,135 @@
1
1
  /**
2
- * Web Search Tool
2
+ * Web Search Tool - Real-time search using Exa AI API
3
3
  *
4
- * Performs real-time web searches using Exa AI API.
5
- * Provides up-to-date information for current events and recent data.
4
+ * @module core/tools/websearch
5
+ * @description
6
+ * Implements the web search tool for the agent. Performs real-time web searches with:
7
+ * - Query-based information retrieval
8
+ * - Configurable result count
9
+ * - Search type options (fast, deep, auto)
10
+ * - Live crawling options
11
+ * - LLM-optimized context
12
+ * - Exa AI API integration
13
+ *
14
+ * ## Tool Interface
15
+ *
16
+ * **Input Parameters:**
17
+ * - `query` (required): Search query
18
+ * - `numResults` (optional): Number of results (1-10; default: 8)
19
+ * - `livecrawl` (optional): Crawling mode (fallback, preferred; default: fallback)
20
+ * - `type` (optional): Search type (auto, fast, deep; default: auto)
21
+ * - `contextMaxCharacters` (optional): Max context chars (default: 10000)
22
+ *
23
+ * **Output:**
24
+ * - Search results with snippets
25
+ * - URLs and relevance info
26
+ * - LLM-optimized context string
27
+ * - Error if API fails or disabled
28
+ *
29
+ * **Error Behavior:**
30
+ * - No API key: Tool error "Web search not available (no API key)"
31
+ * - Network error: Tool error "Search failed: ..."
32
+ * - API error: Tool error "Search API error: ..."
33
+ * - Timeout: Tool error "Search request timed out"
34
+ *
35
+ * ## Usage in Agent
36
+ *
37
+ * The agent uses this tool to:
38
+ * - Search for current information
39
+ * - Find recent news and events
40
+ * - Look up facts and statistics
41
+ * - Research new topics
42
+ * - Answer questions about current events
43
+ *
44
+ * ## Features
45
+ *
46
+ * **Search Types:**
47
+ * - **auto**: Balanced search (recommended)
48
+ * - **fast**: Quick results, less comprehensive
49
+ * - **deep**: Comprehensive search, more thorough
50
+ *
51
+ * **Live Crawling:**
52
+ * - **fallback**: Use cached content, crawl if needed
53
+ * - **preferred**: Prioritize live crawling for fresh content
54
+ *
55
+ * **LLM Optimization:**
56
+ * - Context formatted for language models
57
+ * - Configurable max characters
58
+ * - Snippets and relevance info included
59
+ * - Structured for easy parsing
60
+ *
61
+ * **Result Limiting:**
62
+ * - Min 1, max 10 results
63
+ * - Default 8 results
64
+ * - Configurable per query
65
+ *
66
+ * ## Security
67
+ *
68
+ * **API Authentication:**
69
+ * - Requires Exa AI API key
70
+ * - Key from environment variable or options
71
+ * - No key = tool not available
72
+ *
73
+ * **Query Validation:**
74
+ * - Non-empty query required
75
+ * - No injection attacks (sent to API as-is)
76
+ * - Safe to include user input
77
+ *
78
+ * **Rate Limiting:**
79
+ * - API enforces rate limits
80
+ * - Errors returned if exceeded
81
+ * - Exponential backoff recommended
82
+ *
83
+ * ## Customization
84
+ *
85
+ * **Custom Search Provider:**
86
+ * ```typescript
87
+ * const customTool = createWebSearchTool({
88
+ * operations: {
89
+ * search: async (request, signal) => {
90
+ * // Custom search implementation
91
+ * return JSON.stringify(results);
92
+ * },
93
+ * },
94
+ * });
95
+ * ```
96
+ *
97
+ * ## Examples
98
+ *
99
+ * ### Basic search
100
+ * ```typescript
101
+ * // Agent calls: websearch {query: "latest news about AI"}
102
+ * // Returns: Top 8 news results
103
+ * ```
104
+ *
105
+ * ### Deep search with more results
106
+ * ```typescript
107
+ * // Agent calls: websearch {
108
+ * // query: "TypeScript generics best practices",
109
+ * // numResults: 10,
110
+ * // type: "deep"
111
+ * // }
112
+ * // Returns: 10 comprehensive results
113
+ * ```
114
+ *
115
+ * ### Fast search with live crawling
116
+ * ```typescript
117
+ * // Agent calls: websearch {
118
+ * // query: "stock market today",
119
+ * // type: "fast",
120
+ * // livecrawl: "preferred"
121
+ * // }
122
+ * // Returns: Quick results with live data
123
+ * ```
124
+ *
125
+ * ## Attribution
126
+ *
127
+ * Based on: indusagi-agent websearch tool
128
+ * Modifications:
129
+ * - Added search type options
130
+ * - Added live crawl configuration
131
+ * - Added context optimization
132
+ * - Improved error handling
6
133
  */
7
134
  import type { AgentTool } from "indusagi/agent";
8
135
  declare const webSearchSchema: import("@sinclair/typebox").TObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"websearch.d.ts","sourceRoot":"","sources":["../../../src/core/tools/websearch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAYhD,QAAA,MAAM,eAAe;;;;;;EA6BnB,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACpC,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7E;AAED,UAAU,gBAAgB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE;YACV,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,SAAS,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;YACrC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;YAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;SAC9B,CAAC;KACF,CAAC;CACF;AAqED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC,OAAO,eAAe,CAAC,CAoErG;AAED,8BAA8B;AAC9B,eAAO,MAAM,aAAa;;;;;;QAAwB,CAAC"}
1
+ {"version":3,"file":"websearch.d.ts","sourceRoot":"","sources":["../../../src/core/tools/websearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAYhD,QAAA,MAAM,eAAe;;;;;;EA6BnB,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACpC,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7E;AAED,UAAU,gBAAgB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE;YACV,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,SAAS,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;YACrC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;YAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;SAC9B,CAAC;KACF,CAAC;CACF;AAqED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC,OAAO,eAAe,CAAC,CAoErG;AAED,8BAA8B;AAC9B,eAAO,MAAM,aAAa;;;;;;QAAwB,CAAC"}
@@ -1,8 +1,135 @@
1
1
  /**
2
- * Web Search Tool
2
+ * Web Search Tool - Real-time search using Exa AI API
3
3
  *
4
- * Performs real-time web searches using Exa AI API.
5
- * Provides up-to-date information for current events and recent data.
4
+ * @module core/tools/websearch
5
+ * @description
6
+ * Implements the web search tool for the agent. Performs real-time web searches with:
7
+ * - Query-based information retrieval
8
+ * - Configurable result count
9
+ * - Search type options (fast, deep, auto)
10
+ * - Live crawling options
11
+ * - LLM-optimized context
12
+ * - Exa AI API integration
13
+ *
14
+ * ## Tool Interface
15
+ *
16
+ * **Input Parameters:**
17
+ * - `query` (required): Search query
18
+ * - `numResults` (optional): Number of results (1-10; default: 8)
19
+ * - `livecrawl` (optional): Crawling mode (fallback, preferred; default: fallback)
20
+ * - `type` (optional): Search type (auto, fast, deep; default: auto)
21
+ * - `contextMaxCharacters` (optional): Max context chars (default: 10000)
22
+ *
23
+ * **Output:**
24
+ * - Search results with snippets
25
+ * - URLs and relevance info
26
+ * - LLM-optimized context string
27
+ * - Error if API fails or disabled
28
+ *
29
+ * **Error Behavior:**
30
+ * - No API key: Tool error "Web search not available (no API key)"
31
+ * - Network error: Tool error "Search failed: ..."
32
+ * - API error: Tool error "Search API error: ..."
33
+ * - Timeout: Tool error "Search request timed out"
34
+ *
35
+ * ## Usage in Agent
36
+ *
37
+ * The agent uses this tool to:
38
+ * - Search for current information
39
+ * - Find recent news and events
40
+ * - Look up facts and statistics
41
+ * - Research new topics
42
+ * - Answer questions about current events
43
+ *
44
+ * ## Features
45
+ *
46
+ * **Search Types:**
47
+ * - **auto**: Balanced search (recommended)
48
+ * - **fast**: Quick results, less comprehensive
49
+ * - **deep**: Comprehensive search, more thorough
50
+ *
51
+ * **Live Crawling:**
52
+ * - **fallback**: Use cached content, crawl if needed
53
+ * - **preferred**: Prioritize live crawling for fresh content
54
+ *
55
+ * **LLM Optimization:**
56
+ * - Context formatted for language models
57
+ * - Configurable max characters
58
+ * - Snippets and relevance info included
59
+ * - Structured for easy parsing
60
+ *
61
+ * **Result Limiting:**
62
+ * - Min 1, max 10 results
63
+ * - Default 8 results
64
+ * - Configurable per query
65
+ *
66
+ * ## Security
67
+ *
68
+ * **API Authentication:**
69
+ * - Requires Exa AI API key
70
+ * - Key from environment variable or options
71
+ * - No key = tool not available
72
+ *
73
+ * **Query Validation:**
74
+ * - Non-empty query required
75
+ * - No injection attacks (sent to API as-is)
76
+ * - Safe to include user input
77
+ *
78
+ * **Rate Limiting:**
79
+ * - API enforces rate limits
80
+ * - Errors returned if exceeded
81
+ * - Exponential backoff recommended
82
+ *
83
+ * ## Customization
84
+ *
85
+ * **Custom Search Provider:**
86
+ * ```typescript
87
+ * const customTool = createWebSearchTool({
88
+ * operations: {
89
+ * search: async (request, signal) => {
90
+ * // Custom search implementation
91
+ * return JSON.stringify(results);
92
+ * },
93
+ * },
94
+ * });
95
+ * ```
96
+ *
97
+ * ## Examples
98
+ *
99
+ * ### Basic search
100
+ * ```typescript
101
+ * // Agent calls: websearch {query: "latest news about AI"}
102
+ * // Returns: Top 8 news results
103
+ * ```
104
+ *
105
+ * ### Deep search with more results
106
+ * ```typescript
107
+ * // Agent calls: websearch {
108
+ * // query: "TypeScript generics best practices",
109
+ * // numResults: 10,
110
+ * // type: "deep"
111
+ * // }
112
+ * // Returns: 10 comprehensive results
113
+ * ```
114
+ *
115
+ * ### Fast search with live crawling
116
+ * ```typescript
117
+ * // Agent calls: websearch {
118
+ * // query: "stock market today",
119
+ * // type: "fast",
120
+ * // livecrawl: "preferred"
121
+ * // }
122
+ * // Returns: Quick results with live data
123
+ * ```
124
+ *
125
+ * ## Attribution
126
+ *
127
+ * Based on: indusagi-agent websearch tool
128
+ * Modifications:
129
+ * - Added search type options
130
+ * - Added live crawl configuration
131
+ * - Added context optimization
132
+ * - Improved error handling
6
133
  */
7
134
  import { Type } from "@sinclair/typebox";
8
135
  const API_CONFIG = {
@@ -1 +1 @@
1
- {"version":3,"file":"websearch.js","sourceRoot":"","sources":["../../../src/core/tools/websearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websearch.js","sourceRoot":"","sources":["../../../src/core/tools/websearch.ts"],"names":[],"mappings":"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"}