@amodalai/runtime 0.2.0 → 0.2.1

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 (209) hide show
  1. package/dist/src/__fixtures__/README.md +4 -0
  2. package/dist/src/__fixtures__/e2e.test.d.ts +6 -0
  3. package/dist/src/__fixtures__/e2e.test.js +211 -0
  4. package/dist/src/__fixtures__/e2e.test.js.map +1 -0
  5. package/dist/src/__fixtures__/smoke-agent/automations/delivery-callback-test.json +9 -0
  6. package/dist/src/__fixtures__/smoke-agent/connections/mock-mcp/spec.json +1 -1
  7. package/dist/src/__fixtures__/smoke.test.js +715 -29
  8. package/dist/src/__fixtures__/smoke.test.js.map +1 -1
  9. package/dist/src/__fixtures__/test-env.d.ts +27 -0
  10. package/dist/src/__fixtures__/test-env.js +64 -0
  11. package/dist/src/__fixtures__/test-env.js.map +1 -0
  12. package/dist/src/__fixtures__/test-helpers.d.ts +30 -0
  13. package/dist/src/__fixtures__/test-helpers.js +120 -0
  14. package/dist/src/__fixtures__/test-helpers.js.map +1 -0
  15. package/dist/src/agent/agent-types.d.ts +22 -0
  16. package/dist/src/agent/agent-types.js.map +1 -1
  17. package/dist/src/agent/automation-bridge.d.ts +9 -0
  18. package/dist/src/agent/automation-bridge.js +26 -0
  19. package/dist/src/agent/automation-bridge.js.map +1 -1
  20. package/dist/src/agent/automation-bridge.test.js +63 -0
  21. package/dist/src/agent/automation-bridge.test.js.map +1 -1
  22. package/dist/src/agent/local-server.d.ts +0 -7
  23. package/dist/src/agent/local-server.js +230 -86
  24. package/dist/src/agent/local-server.js.map +1 -1
  25. package/dist/src/agent/local-server.test.js +14 -8
  26. package/dist/src/agent/local-server.test.js.map +1 -1
  27. package/dist/src/agent/loop-types.d.ts +81 -2
  28. package/dist/src/agent/loop-types.js +4 -0
  29. package/dist/src/agent/loop-types.js.map +1 -1
  30. package/dist/src/agent/loop.js +16 -3
  31. package/dist/src/agent/loop.js.map +1 -1
  32. package/dist/src/agent/loop.test.js +572 -8
  33. package/dist/src/agent/loop.test.js.map +1 -1
  34. package/dist/src/agent/proactive/delivery-router.d.ts +68 -0
  35. package/dist/src/agent/proactive/delivery-router.js +337 -0
  36. package/dist/src/agent/proactive/delivery-router.js.map +1 -0
  37. package/dist/src/agent/proactive/delivery-router.test.d.ts +6 -0
  38. package/dist/src/agent/proactive/delivery-router.test.js +455 -0
  39. package/dist/src/agent/proactive/delivery-router.test.js.map +1 -0
  40. package/dist/src/agent/proactive/proactive-runner.d.ts +23 -1
  41. package/dist/src/agent/proactive/proactive-runner.js +42 -10
  42. package/dist/src/agent/proactive/proactive-runner.js.map +1 -1
  43. package/dist/src/agent/proactive/proactive-runner.test.js +0 -2
  44. package/dist/src/agent/proactive/proactive-runner.test.js.map +1 -1
  45. package/dist/src/agent/routes/admin-chat-abort.test.d.ts +6 -0
  46. package/dist/src/agent/routes/admin-chat-abort.test.js +206 -0
  47. package/dist/src/agent/routes/admin-chat-abort.test.js.map +1 -0
  48. package/dist/src/agent/routes/admin-chat.js +0 -2
  49. package/dist/src/agent/routes/admin-chat.js.map +1 -1
  50. package/dist/src/agent/routes/task.test.js +0 -2
  51. package/dist/src/agent/routes/task.test.js.map +1 -1
  52. package/dist/src/agent/snapshot-server.js +0 -2
  53. package/dist/src/agent/snapshot-server.js.map +1 -1
  54. package/dist/src/agent/states/compacting.js +5 -3
  55. package/dist/src/agent/states/compacting.js.map +1 -1
  56. package/dist/src/agent/states/confirming.js +3 -0
  57. package/dist/src/agent/states/confirming.js.map +1 -1
  58. package/dist/src/agent/states/dispatching.js +45 -1
  59. package/dist/src/agent/states/dispatching.js.map +1 -1
  60. package/dist/src/agent/states/executing.js +225 -81
  61. package/dist/src/agent/states/executing.js.map +1 -1
  62. package/dist/src/agent/states/streaming.js +14 -0
  63. package/dist/src/agent/states/streaming.js.map +1 -1
  64. package/dist/src/agent/states/thinking.d.ts +1 -1
  65. package/dist/src/agent/states/thinking.js +246 -29
  66. package/dist/src/agent/states/thinking.js.map +1 -1
  67. package/dist/src/agent/token-estimate.d.ts +20 -6
  68. package/dist/src/agent/token-estimate.js +24 -3
  69. package/dist/src/agent/token-estimate.js.map +1 -1
  70. package/dist/src/agent/token-estimate.test.d.ts +6 -0
  71. package/dist/src/agent/token-estimate.test.js +44 -0
  72. package/dist/src/agent/token-estimate.test.js.map +1 -0
  73. package/dist/src/api/create-agent.js +0 -3
  74. package/dist/src/api/create-agent.js.map +1 -1
  75. package/dist/src/api/types.d.ts +0 -2
  76. package/dist/src/env-ref.d.ts +13 -0
  77. package/dist/src/env-ref.js +31 -0
  78. package/dist/src/env-ref.js.map +1 -0
  79. package/dist/src/env-ref.test.d.ts +6 -0
  80. package/dist/src/env-ref.test.js +34 -0
  81. package/dist/src/env-ref.test.js.map +1 -0
  82. package/dist/src/errors.d.ts +15 -0
  83. package/dist/src/errors.js +22 -0
  84. package/dist/src/errors.js.map +1 -1
  85. package/dist/src/errors.test.js +2 -2
  86. package/dist/src/errors.test.js.map +1 -1
  87. package/dist/src/events/event-bus.d.ts +54 -0
  88. package/dist/src/events/event-bus.js +84 -0
  89. package/dist/src/events/event-bus.js.map +1 -0
  90. package/dist/src/events/event-bus.test.d.ts +6 -0
  91. package/dist/src/events/event-bus.test.js +112 -0
  92. package/dist/src/events/event-bus.test.js.map +1 -0
  93. package/dist/src/events/events-route.d.ts +36 -0
  94. package/dist/src/events/events-route.js +80 -0
  95. package/dist/src/events/events-route.js.map +1 -0
  96. package/dist/src/events/events-route.test.d.ts +6 -0
  97. package/dist/src/events/events-route.test.js +134 -0
  98. package/dist/src/events/events-route.test.js.map +1 -0
  99. package/dist/src/events/store-event-wrapper.d.ts +19 -0
  100. package/dist/src/events/store-event-wrapper.js +57 -0
  101. package/dist/src/events/store-event-wrapper.js.map +1 -0
  102. package/dist/src/events/store-event-wrapper.test.d.ts +6 -0
  103. package/dist/src/events/store-event-wrapper.test.js +91 -0
  104. package/dist/src/events/store-event-wrapper.test.js.map +1 -0
  105. package/dist/src/middleware/auth.d.ts +0 -2
  106. package/dist/src/middleware/auth.js.map +1 -1
  107. package/dist/src/providers/search-provider.d.ts +64 -0
  108. package/dist/src/providers/search-provider.js +174 -0
  109. package/dist/src/providers/search-provider.js.map +1 -0
  110. package/dist/src/providers/types.d.ts +8 -0
  111. package/dist/src/routes/ai-stream.d.ts +15 -0
  112. package/dist/src/routes/ai-stream.js +9 -0
  113. package/dist/src/routes/ai-stream.js.map +1 -1
  114. package/dist/src/routes/chat-stream.d.ts +6 -0
  115. package/dist/src/routes/chat-stream.js +2 -0
  116. package/dist/src/routes/chat-stream.js.map +1 -1
  117. package/dist/src/routes/chat.d.ts +6 -0
  118. package/dist/src/routes/chat.js +2 -0
  119. package/dist/src/routes/chat.js.map +1 -1
  120. package/dist/src/routes/session-resolver.d.ts +5 -0
  121. package/dist/src/routes/session-resolver.js +1 -15
  122. package/dist/src/routes/session-resolver.js.map +1 -1
  123. package/dist/src/routes/session-resolver.test.js +7 -6
  124. package/dist/src/routes/session-resolver.test.js.map +1 -1
  125. package/dist/src/server.d.ts +6 -0
  126. package/dist/src/server.js +2 -0
  127. package/dist/src/server.js.map +1 -1
  128. package/dist/src/session/drizzle-session-store.d.ts +56 -0
  129. package/dist/src/session/drizzle-session-store.js +203 -0
  130. package/dist/src/session/drizzle-session-store.js.map +1 -0
  131. package/dist/src/session/manager.d.ts +6 -3
  132. package/dist/src/session/manager.js +46 -16
  133. package/dist/src/session/manager.js.map +1 -1
  134. package/dist/src/session/manager.test.js +12 -18
  135. package/dist/src/session/manager.test.js.map +1 -1
  136. package/dist/src/session/pglite-session-store.d.ts +23 -0
  137. package/dist/src/session/pglite-session-store.js +70 -0
  138. package/dist/src/session/pglite-session-store.js.map +1 -0
  139. package/dist/src/session/postgres-session-store.d.ts +44 -0
  140. package/dist/src/session/postgres-session-store.js +138 -0
  141. package/dist/src/session/postgres-session-store.js.map +1 -0
  142. package/dist/src/session/session-builder.d.ts +0 -2
  143. package/dist/src/session/session-builder.js +22 -2
  144. package/dist/src/session/session-builder.js.map +1 -1
  145. package/dist/src/session/session-builder.test.js +0 -2
  146. package/dist/src/session/session-builder.test.js.map +1 -1
  147. package/dist/src/session/session-store-selector.d.ts +49 -0
  148. package/dist/src/session/session-store-selector.js +60 -0
  149. package/dist/src/session/session-store-selector.js.map +1 -0
  150. package/dist/src/session/session-store-selector.test.d.ts +6 -0
  151. package/dist/src/session/session-store-selector.test.js +79 -0
  152. package/dist/src/session/session-store-selector.test.js.map +1 -0
  153. package/dist/src/session/store.d.ts +146 -32
  154. package/dist/src/session/store.js +126 -138
  155. package/dist/src/session/store.js.map +1 -1
  156. package/dist/src/session/store.test.js +385 -107
  157. package/dist/src/session/store.test.js.map +1 -1
  158. package/dist/src/session/tool-context-factory.d.ts +3 -2
  159. package/dist/src/session/tool-context-factory.js +1 -2
  160. package/dist/src/session/tool-context-factory.js.map +1 -1
  161. package/dist/src/session/tool-context-factory.test.js +1 -4
  162. package/dist/src/session/tool-context-factory.test.js.map +1 -1
  163. package/dist/src/session/types.d.ts +13 -6
  164. package/dist/src/stores/schema.d.ts +0 -34
  165. package/dist/src/stores/schema.js +6 -4
  166. package/dist/src/stores/schema.js.map +1 -1
  167. package/dist/src/tools/admin-file-tools.d.ts +29 -0
  168. package/dist/src/tools/admin-file-tools.js +525 -11
  169. package/dist/src/tools/admin-file-tools.js.map +1 -1
  170. package/dist/src/tools/admin-file-tools.test.js +373 -4
  171. package/dist/src/tools/admin-file-tools.test.js.map +1 -1
  172. package/dist/src/tools/custom-tool-adapter.test.js +0 -1
  173. package/dist/src/tools/custom-tool-adapter.test.js.map +1 -1
  174. package/dist/src/tools/dispatch-tool.d.ts +4 -4
  175. package/dist/src/tools/fetch-url-tool.d.ts +23 -0
  176. package/dist/src/tools/fetch-url-tool.js +333 -0
  177. package/dist/src/tools/fetch-url-tool.js.map +1 -0
  178. package/dist/src/tools/fetch-url-tool.test.d.ts +6 -0
  179. package/dist/src/tools/fetch-url-tool.test.js +228 -0
  180. package/dist/src/tools/fetch-url-tool.test.js.map +1 -0
  181. package/dist/src/tools/mcp-tool-adapter.test.js +0 -1
  182. package/dist/src/tools/mcp-tool-adapter.test.js.map +1 -1
  183. package/dist/src/tools/registry.test.js +0 -1
  184. package/dist/src/tools/registry.test.js.map +1 -1
  185. package/dist/src/tools/request-tool.test.js +0 -1
  186. package/dist/src/tools/request-tool.test.js.map +1 -1
  187. package/dist/src/tools/store-tools.test.js +0 -1
  188. package/dist/src/tools/store-tools.test.js.map +1 -1
  189. package/dist/src/tools/types.d.ts +20 -2
  190. package/dist/src/tools/web-search-tool.d.ts +31 -0
  191. package/dist/src/tools/web-search-tool.js +170 -0
  192. package/dist/src/tools/web-search-tool.js.map +1 -0
  193. package/dist/src/tools/web-search-tool.test.d.ts +6 -0
  194. package/dist/src/tools/web-search-tool.test.js +153 -0
  195. package/dist/src/tools/web-search-tool.test.js.map +1 -0
  196. package/dist/src/tools/web-tools-shared.d.ts +21 -0
  197. package/dist/src/tools/web-tools-shared.js +32 -0
  198. package/dist/src/tools/web-tools-shared.js.map +1 -0
  199. package/dist/src/types.d.ts +20 -0
  200. package/dist/src/types.js +13 -0
  201. package/dist/src/types.js.map +1 -1
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/package.json +17 -3
  204. package/dist/src/agent/session-store.d.ts +0 -71
  205. package/dist/src/agent/session-store.js +0 -151
  206. package/dist/src/agent/session-store.js.map +0 -1
  207. package/dist/src/session/admin-file-tools.d.ts +0 -136
  208. package/dist/src/session/admin-file-tools.js +0 -240
  209. package/dist/src/session/admin-file-tools.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"custom-tool-adapter.test.js","sourceRoot":"","sources":["../../../src/tools/custom-tool-adapter.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAKtE,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,SAA+B;IAC/C,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;gBACtD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;aACtD;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,CAAC,UAAU,CAAC;QACjB,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,OAAO;QACjB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;QACrB,kBAAkB,EAAE,KAAK;QACzB,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,MAAM;QACvB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,SAAkB,EAAE,EAAE,EAAE,IAAI,EAAE;IAClD,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,SAA6C;IACnE,OAAO;QACL,MAAM,EAAE;YACN,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrB,SAAS,EAAE;oBACT,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE;wBACf,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;wBACrE,eAAe,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;qBACvC;iBACF;aACF,CAAC;YACF,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;oBAChB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;iBACxE,CAAC;SACH;QACD,YAAY,EAAE;YACZ,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SAC1C;QACD,KAAK,EAAE,UAAU;QACjB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,SAAgC;IACvD,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACZ,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACZ,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;QAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,UAAU;QACpB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,0BAA0B,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;YAE/E,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,yDAAyD;YACzD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,GAAG,GAAG,0BAA0B,CACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAC5B,YAAY,EAAE,EACd,cAAc,EAAE,CACjB,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,GAAG,GAAG,0BAA0B,CACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAC3B,YAAY,EAAE,EACd,cAAc,EAAE,CACjB,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;YACrF,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAC/E,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;YAE9B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YAEzD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACjE,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAE/E,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC5D,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;YAC7B,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC;aAC7C,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAE/E,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC5D,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,IAAI,QAAkC,CAAC;QAEvC,UAAU,CAAC,GAAG,EAAE;YACd,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACnC,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;aAC9C,CAAC,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;oBAChE,MAAM,MAAM,GAAG,MAAO,GAA+D,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;oBAC3H,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC;aACH,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAC/E,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;YAEzC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAA0B,CAAC;YACpE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC1D,MAAM,CAAE,IAAI,CAAC,OAAkC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACzF,MAAM,CAAE,IAAI,CAAC,OAAkC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;oBAChE,MAAO,GAA+D,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBACxG,CAAC,CAAC;aACH,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAE/E,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC7C,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;oBAChE,MAAO,GAAsF;yBAC1F,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvD,CAAC,CAAC;aACH,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAC5B,QAAQ,EACR,cAAc,EAAE,CACjB,CAAC;YAEF,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC7C,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,QAAQ,CAAC,iBAAiB,CAAC;gBACzB,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;aAC5C,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;oBAChE,MAAO,GAA+D,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAC9G,CAAC,CAAC;aACH,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAE/E,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC7C,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAC/D,GAA8E;qBAC5E,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAC1D;aACF,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;YAExD,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,oBAAoB,CACvD,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CACvE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAC/D,GAA8E;qBAC5E,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CACxC;aACF,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CACpC,QAAQ,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAClE,CAAC;YAEF,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC7C,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACvC,IAAI,SAA6B,CAAC;YAElC,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;oBAChE,SAAS,GAAI,GAAkD,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAChF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;gBACtB,CAAC,CAAC;aACH,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAC/E,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;YAEzC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvC,EAAE,CAAC,aAAa,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,IAAI,SAAS,GAAuB,uBAAuB,CAAC;YAE5D,MAAM,QAAQ,GAAuB;gBACnC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;oBAChE,SAAS,GAAI,GAAkD,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC5E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;gBACtB,CAAC,CAAC;aACH,CAAC;YACF,MAAM,GAAG,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAC/E,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;YAEzC,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"custom-tool-adapter.test.js","sourceRoot":"","sources":["../../../src/tools/custom-tool-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -29,14 +29,14 @@ declare const DispatchParamsSchema: z.ZodObject<{
29
29
  /** Max turns for the child agent (default: 10) */
30
30
  max_turns: z.ZodOptional<z.ZodNumber>;
31
31
  }, "strip", z.ZodTypeAny, {
32
- agent_name: string;
33
- tools: string[];
34
32
  prompt: string;
33
+ tools: string[];
34
+ agent_name: string;
35
35
  max_turns?: number | undefined;
36
36
  }, {
37
- agent_name: string;
38
- tools: string[];
39
37
  prompt: string;
38
+ tools: string[];
39
+ agent_name: string;
40
40
  max_turns?: number | undefined;
41
41
  }>;
42
42
  export type DispatchParams = z.infer<typeof DispatchParamsSchema>;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { z } from 'zod';
7
+ import { FETCH_URL_TOOL_NAME } from '@amodalai/core';
8
+ import type { ToolDefinition } from './types.js';
9
+ export { FETCH_URL_TOOL_NAME };
10
+ declare const FetchUrlParamsSchema: z.ZodObject<{
11
+ url: z.ZodString;
12
+ prompt: z.ZodOptional<z.ZodString>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ url: string;
15
+ prompt?: string | undefined;
16
+ }, {
17
+ url: string;
18
+ prompt?: string | undefined;
19
+ }>;
20
+ type FetchUrlParams = z.infer<typeof FetchUrlParamsSchema>;
21
+ /** Reset rate-limit state (test helper). */
22
+ export declare function resetRateLimitForTesting(): void;
23
+ export declare function createFetchUrlTool(): ToolDefinition<FetchUrlParams>;
@@ -0,0 +1,333 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * fetch_url tool — grounded URL fetch via Gemini urlContext, with a local
8
+ * fetch + Readability fallback for internal URLs or Gemini failures.
9
+ *
10
+ * Flow:
11
+ * 1. If the URL targets a private network (localhost / RFC1918 / .local)
12
+ * OR `ctx.searchProvider` is unavailable, run the local fallback.
13
+ * 2. Otherwise try Gemini urlContext first. If that fails or returns
14
+ * empty content, fall through to the local fallback.
15
+ * 3. Local fallback uses linkedom + Mozilla Readability to extract the
16
+ * main content, then returns it as text/markdown.
17
+ *
18
+ * Per-hostname rate limiting: 10 requests / 60 seconds, in-memory.
19
+ */
20
+ import { Readability } from '@mozilla/readability';
21
+ import { parseHTML } from 'linkedom';
22
+ import { z } from 'zod';
23
+ import { FETCH_URL_TOOL_NAME } from '@amodalai/core';
24
+ import { log } from '../logger.js';
25
+ import { ToolExecutionError } from '../errors.js';
26
+ import { truncateToTokens, MAX_WEB_TOOL_RESULT_TOKENS } from './web-tools-shared.js';
27
+ export { FETCH_URL_TOOL_NAME };
28
+ // ---------------------------------------------------------------------------
29
+ // Constants
30
+ // ---------------------------------------------------------------------------
31
+ /** Timeout for the local fetch fallback (ms). */
32
+ const LOCAL_FETCH_TIMEOUT_MS = 10_000;
33
+ /** Max response body size for the local fetch fallback (bytes). */
34
+ const LOCAL_FETCH_MAX_BYTES = 1_000_000;
35
+ /** Rate-limit window size (ms). */
36
+ const RATE_LIMIT_WINDOW_MS = 60_000;
37
+ /** Max requests per hostname per window. */
38
+ const RATE_LIMIT_MAX_REQUESTS = 10;
39
+ // ---------------------------------------------------------------------------
40
+ // Internal error type for the local fetch path
41
+ // ---------------------------------------------------------------------------
42
+ /**
43
+ * Internal signaling error thrown by `fetchLocally()`. Always caught and
44
+ * re-wrapped in `ToolExecutionError` at the tool boundary — it never escapes
45
+ * the module. Carrying the hostname/status/size on the error lets the
46
+ * wrapping layer include that context in the structured error response.
47
+ */
48
+ class LocalFetchError extends Error {
49
+ context;
50
+ constructor(message, context) {
51
+ super(message);
52
+ this.name = 'LocalFetchError';
53
+ this.context = context;
54
+ }
55
+ }
56
+ // ---------------------------------------------------------------------------
57
+ // Params schema
58
+ // ---------------------------------------------------------------------------
59
+ const FetchUrlParamsSchema = z.object({
60
+ url: z
61
+ .string()
62
+ .url()
63
+ .describe('Absolute URL to fetch. Must be http:// or https://.'),
64
+ prompt: z
65
+ .string()
66
+ .optional()
67
+ .describe('Optional extraction prompt: what specifically to pull from the page. When omitted, the full page is rendered as markdown.'),
68
+ });
69
+ // ---------------------------------------------------------------------------
70
+ // Rate limiter (per-hostname sliding window)
71
+ // ---------------------------------------------------------------------------
72
+ const hostRequestTimestamps = new Map();
73
+ function checkRateLimit(hostname) {
74
+ const now = Date.now();
75
+ const cutoff = now - RATE_LIMIT_WINDOW_MS;
76
+ const timestamps = (hostRequestTimestamps.get(hostname) ?? []).filter((t) => t > cutoff);
77
+ if (timestamps.length >= RATE_LIMIT_MAX_REQUESTS) {
78
+ const oldest = timestamps[0] ?? now;
79
+ return { ok: false, retryAtMs: oldest + RATE_LIMIT_WINDOW_MS };
80
+ }
81
+ timestamps.push(now);
82
+ hostRequestTimestamps.set(hostname, timestamps);
83
+ return { ok: true };
84
+ }
85
+ /** Reset rate-limit state (test helper). */
86
+ export function resetRateLimitForTesting() {
87
+ hostRequestTimestamps.clear();
88
+ }
89
+ // ---------------------------------------------------------------------------
90
+ // Private network detection
91
+ // ---------------------------------------------------------------------------
92
+ const PRIVATE_IPV4_PREFIXES = ['10.', '192.168.'];
93
+ function isPrivateNetworkHost(hostname) {
94
+ const lower = hostname.toLowerCase();
95
+ if (lower === 'localhost' || lower.endsWith('.local') || lower.endsWith('.localhost')) {
96
+ return true;
97
+ }
98
+ if (lower === '127.0.0.1' || lower === '::1' || lower === '[::1]') {
99
+ return true;
100
+ }
101
+ if (lower.startsWith('127.'))
102
+ return true;
103
+ for (const prefix of PRIVATE_IPV4_PREFIXES) {
104
+ if (lower.startsWith(prefix))
105
+ return true;
106
+ }
107
+ // 172.16.0.0 – 172.31.255.255
108
+ if (lower.startsWith('172.')) {
109
+ const parts = lower.split('.');
110
+ const second = parts[1];
111
+ if (second !== undefined) {
112
+ const n = Number(second);
113
+ if (Number.isInteger(n) && n >= 16 && n <= 31)
114
+ return true;
115
+ }
116
+ }
117
+ return false;
118
+ }
119
+ // ---------------------------------------------------------------------------
120
+ // Local fetch + Readability fallback
121
+ // ---------------------------------------------------------------------------
122
+ async function fetchLocally(url, signal) {
123
+ const combinedSignal = AbortSignal.any([signal, AbortSignal.timeout(LOCAL_FETCH_TIMEOUT_MS)]);
124
+ const response = await fetch(url, {
125
+ signal: combinedSignal,
126
+ headers: {
127
+ 'User-Agent': 'Amodal/fetch_url',
128
+ 'Accept': 'text/html,application/xhtml+xml,text/plain;q=0.9,*/*;q=0.5',
129
+ },
130
+ redirect: 'follow',
131
+ });
132
+ if (!response.ok) {
133
+ throw new LocalFetchError(`HTTP ${String(response.status)} ${response.statusText}`, {
134
+ url,
135
+ status: response.status,
136
+ statusText: response.statusText,
137
+ });
138
+ }
139
+ // Enforce size limit while reading. `content-length` can be absent
140
+ // (chunked responses), so we also stream-check via the returned bytes.
141
+ const contentLength = response.headers.get('content-length');
142
+ if (contentLength !== null) {
143
+ const declared = Number(contentLength);
144
+ if (Number.isFinite(declared) && declared > LOCAL_FETCH_MAX_BYTES) {
145
+ throw new LocalFetchError(`Response too large: ${String(declared)} bytes (limit ${String(LOCAL_FETCH_MAX_BYTES)})`, { url, declaredBytes: declared, limit: LOCAL_FETCH_MAX_BYTES });
146
+ }
147
+ }
148
+ const buffer = await response.arrayBuffer();
149
+ if (buffer.byteLength > LOCAL_FETCH_MAX_BYTES) {
150
+ throw new LocalFetchError(`Response too large: ${String(buffer.byteLength)} bytes (limit ${String(LOCAL_FETCH_MAX_BYTES)})`, { url, actualBytes: buffer.byteLength, limit: LOCAL_FETCH_MAX_BYTES });
151
+ }
152
+ const html = new TextDecoder('utf-8', { fatal: false }).decode(buffer);
153
+ return extractWithReadability(html, url);
154
+ }
155
+ function extractWithReadability(html, url) {
156
+ const { document } = parseHTML(html);
157
+ // linkedom returns a linkedom-typed `Document`; Readability declares the
158
+ // DOM-lib `Document` type. They are structurally compatible at runtime.
159
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- linkedom→DOM boundary for Readability
160
+ const article = new Readability(document).parse();
161
+ if (article?.textContent && article.textContent.trim().length > 0) {
162
+ const title = article.title ? `# ${article.title}\n\n` : '';
163
+ return `${title}${article.textContent.trim()}\n\n_Source: ${url}_`;
164
+ }
165
+ // Readability couldn't extract — fall back to walking the parsed DOM.
166
+ // We use the DOM's own structure (via linkedom) instead of regex-based
167
+ // tag stripping, which is both safer and simpler: scripts/styles are
168
+ // removed structurally, entities are already decoded by the parser, and
169
+ // there is no risk of partial-match reinjection. This path runs only
170
+ // when Readability returns nothing useful.
171
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- linkedom's Document types are loose
172
+ const doc = document;
173
+ // Remove non-content elements whose textContent would otherwise be
174
+ // concatenated into the output (scripts, styles, embedded templates).
175
+ const nonContent = doc.querySelectorAll('script, style, noscript, template');
176
+ for (const el of nonContent) {
177
+ el.remove();
178
+ }
179
+ const rawText = doc.body?.textContent ?? doc.textContent ?? '';
180
+ const text = rawText.replace(/\s+/g, ' ').trim();
181
+ return `${text}\n\n_Source: ${url}_`;
182
+ }
183
+ function parseAndClassify(rawUrl) {
184
+ // URL constructor throws on malformed input — validated upstream by Zod,
185
+ // but we re-parse here to extract hostname.
186
+ const parsed = new URL(rawUrl);
187
+ return {
188
+ hostname: parsed.hostname,
189
+ isPrivate: isPrivateNetworkHost(parsed.hostname),
190
+ };
191
+ }
192
+ // ---------------------------------------------------------------------------
193
+ // Primary path (Gemini urlContext)
194
+ // ---------------------------------------------------------------------------
195
+ async function fetchViaSearchProvider(provider, url, userPrompt, signal) {
196
+ const result = await provider.fetchUrl(url, {
197
+ ...(userPrompt ? { prompt: userPrompt } : {}),
198
+ signal,
199
+ });
200
+ return result.text;
201
+ }
202
+ // ---------------------------------------------------------------------------
203
+ // Factory
204
+ // ---------------------------------------------------------------------------
205
+ export function createFetchUrlTool() {
206
+ return {
207
+ description: `Fetch the content of a specific URL. Returns the page content as markdown. Use when you need the actual content of a web page, documentation, or API response you already know the URL for.
208
+
209
+ When to use:
210
+ - You have a specific URL the user referenced or web_search surfaced
211
+ - You need the full content of a documentation page or article
212
+ - Retrieving a raw text or JSON resource
213
+
214
+ When NOT to use:
215
+ - Searching — use web_search
216
+ - Hitting a configured API connection — use the request tool
217
+ - The URL is a user-protected resource (auth/cookies required)`,
218
+ parameters: FetchUrlParamsSchema,
219
+ readOnly: true,
220
+ metadata: { category: 'system' },
221
+ async execute(params, ctx) {
222
+ const started = Date.now();
223
+ const { url, prompt } = params;
224
+ let parsed;
225
+ try {
226
+ parsed = parseAndClassify(url);
227
+ }
228
+ catch (err) {
229
+ return {
230
+ status: 'error',
231
+ content: `Invalid URL: ${err instanceof Error ? err.message : 'parse failed'}`,
232
+ };
233
+ }
234
+ const protocol = new URL(url).protocol;
235
+ if (protocol !== 'http:' && protocol !== 'https:') {
236
+ return {
237
+ status: 'error',
238
+ content: `Only http:// and https:// URLs are supported (got ${protocol}).`,
239
+ };
240
+ }
241
+ // Rate limit check
242
+ const limitCheck = checkRateLimit(parsed.hostname);
243
+ if (!limitCheck.ok) {
244
+ const retryInSec = Math.max(1, Math.ceil(((limitCheck.retryAtMs ?? Date.now()) - Date.now()) / 1000));
245
+ log.warn('fetch_url_rate_limited', {
246
+ session: ctx.sessionId,
247
+ hostname: parsed.hostname,
248
+ retry_in_sec: retryInSec,
249
+ });
250
+ return {
251
+ status: 'error',
252
+ content: `Rate limited for ${parsed.hostname}. Try again in ${String(retryInSec)}s.`,
253
+ };
254
+ }
255
+ // Decide path. The condition narrows `ctx.searchProvider` inside the
256
+ // primary branch so we can use it without a non-null assertion.
257
+ let usedFallback = false;
258
+ let text;
259
+ if (!parsed.isPrivate && ctx.searchProvider) {
260
+ const provider = ctx.searchProvider;
261
+ try {
262
+ text = await fetchViaSearchProvider(provider, url, prompt, ctx.signal);
263
+ // Empty response from Gemini → try local
264
+ if (!text || text.trim().length === 0) {
265
+ text = await fetchLocally(url, ctx.signal);
266
+ usedFallback = true;
267
+ }
268
+ }
269
+ catch (primaryErr) {
270
+ log.warn('fetch_url_primary_failed', {
271
+ session: ctx.sessionId,
272
+ hostname: parsed.hostname,
273
+ error: primaryErr instanceof Error ? primaryErr.message : String(primaryErr),
274
+ });
275
+ try {
276
+ text = await fetchLocally(url, ctx.signal);
277
+ usedFallback = true;
278
+ }
279
+ catch (fallbackErr) {
280
+ log.error('fetch_url_failed', {
281
+ session: ctx.sessionId,
282
+ hostname: parsed.hostname,
283
+ duration_ms: Date.now() - started,
284
+ path: 'fallback',
285
+ error: fallbackErr instanceof Error ? fallbackErr.message : String(fallbackErr),
286
+ });
287
+ throw new ToolExecutionError('fetch_url failed (primary + fallback)', {
288
+ toolName: FETCH_URL_TOOL_NAME,
289
+ callId: ctx.sessionId,
290
+ cause: fallbackErr,
291
+ context: { primaryError: primaryErr instanceof Error ? primaryErr.message : String(primaryErr) },
292
+ });
293
+ }
294
+ }
295
+ }
296
+ else {
297
+ // Private network or no searchProvider configured — local only.
298
+ try {
299
+ text = await fetchLocally(url, ctx.signal);
300
+ usedFallback = true;
301
+ }
302
+ catch (err) {
303
+ log.error('fetch_url_failed', {
304
+ session: ctx.sessionId,
305
+ hostname: parsed.hostname,
306
+ duration_ms: Date.now() - started,
307
+ path: 'local',
308
+ error: err instanceof Error ? err.message : String(err),
309
+ });
310
+ throw new ToolExecutionError('fetch_url failed (local fetch)', {
311
+ toolName: FETCH_URL_TOOL_NAME,
312
+ callId: ctx.sessionId,
313
+ cause: err,
314
+ });
315
+ }
316
+ }
317
+ const content = truncateToTokens(text, MAX_WEB_TOOL_RESULT_TOKENS);
318
+ log.info('fetch_url', {
319
+ session: ctx.sessionId,
320
+ hostname: parsed.hostname,
321
+ duration_ms: Date.now() - started,
322
+ bytes: text.length,
323
+ used_fallback: usedFallback,
324
+ });
325
+ return {
326
+ status: 'ok',
327
+ content,
328
+ used_fallback: usedFallback,
329
+ };
330
+ },
331
+ };
332
+ }
333
+ //# sourceMappingURL=fetch-url-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-url-tool.js","sourceRoot":"","sources":["../../../src/tools/fetch-url-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export {};